From 07cbc7972f033df2c44197109d1f1fd47d3477c0 Mon Sep 17 00:00:00 2001 From: Francesco Mazzaschi Date: Fri, 4 Sep 2026 11:56:54 +0200 Subject: [PATCH 1/2] DoubleOmega task: Add further configurables --- .../Strangeness/doubleOmegaTreeCreator.cxx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx b/PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx index b1dc464905b..21e56ed0f1d 100644 --- a/PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx +++ b/PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx @@ -158,6 +158,7 @@ struct doubleOmegaTreeCreator { OutputObj zorroSummary{"zorroSummary"}; Configurable cfgSkimmedProcessing{"cfgSkimmedProcessing", false, "Skimmed dataset processing"}; + Configurable cfgApplyEventSelection{"cfgApplyEventSelection", true, "Apply the standard collision event selection"}; Configurable ccdburl{"ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"}; Configurable cfgMaterialCorrection{"cfgMaterialCorrection", static_cast(o2::base::Propagator::MatCorrType::USEMatCorrLUT), "Material correction for the raw V0/cascade fits"}; @@ -188,6 +189,7 @@ struct doubleOmegaTreeCreator { Configurable mXiWindow{"mXiWindow", 0.02f, "Xi mass window used by the cascade compatibility mode"}; Configurable mOmegaWindow{"mOmegaWindow", 0.01f, "Omega mass window"}; Configurable mLambdaWindow{"mLambdaWindow", 0.01f, "Lambda mass window"}; + Configurable maxDoubleOmegaMass{"maxDoubleOmegaMass", 3.6f, "Maximum double-Omega invariant mass (GeV/c^2)"}; Configurable minCosPAOmega{"minCosPAOmega", -1.f, "Minimum Omega cosPA relative to the double-Omega decay vertex"}; Configurable minCosPADirectLambda{"minCosPADirectLambda", -1.f, "Minimum direct-Lambda cosPA relative to the double-Omega decay vertex"}; Configurable minCosPADoubleOmega{"minCosPADoubleOmega", -1.f, "Minimum double-Omega cosPA relative to the primary vertex"}; @@ -586,16 +588,17 @@ struct doubleOmegaTreeCreator { cand.dcaZDirectLambdaToPV = dcaDirectLambda[1]; cand.dcaXYDirectKaonToPV = dcaDirectKaon[0]; cand.dcaZDirectKaonToPV = dcaDirectKaon[1]; + cand.mass = std::sqrt(std::max(0.f, massSquared)); if (cand.cosPAOmega < minCosPAOmega || cand.cosPADirectLambda < minCosPADirectLambda || cand.cosPADoubleOmega < minCosPADoubleOmega || std::hypot(decayVertex[0], decayVertex[1]) < minDoubleOmegaDecayRadius || std::abs(cand.dcaXYOmegaToPV) < dcaOmegaToPV || std::abs(cand.dcaXYDirectLambdaToPV) < dcaDirectLambdaToPV || - std::abs(cand.dcaXYDirectKaonToPV) < dcaKaonToPV) { + std::abs(cand.dcaXYDirectKaonToPV) < dcaKaonToPV || + cand.mass > maxDoubleOmegaMass) { return false; } - cand.mass = std::sqrt(std::max(0.f, massSquared)); cand.massOmega = omega.massOmega; cand.massXi = omega.massXi; return true; @@ -932,10 +935,11 @@ struct doubleOmegaTreeCreator { auto bc = collision.template bc_as(); initCCDB(bc); - if (!collision.sel8() || - std::abs(collision.posZ()) > zVtxMax || - !collision.selection_bit(aod::evsel::kNoITSROFrameBorder) || - !collision.selection_bit(aod::evsel::kNoTimeFrameBorder)) { + if (cfgApplyEventSelection && + (!collision.sel8() || + std::abs(collision.posZ()) > zVtxMax || + !collision.selection_bit(aod::evsel::kNoITSROFrameBorder) || + !collision.selection_bit(aod::evsel::kNoTimeFrameBorder))) { return false; } if (cfgSkimmedProcessing) { From ce80fc1e0f13eb3661d35210b7fd9b121db8b6e8 Mon Sep 17 00:00:00 2001 From: Francesco Mazzaschi Date: Fri, 4 Sep 2026 12:03:47 +0200 Subject: [PATCH 2/2] fix warnings --- PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx b/PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx index 21e56ed0f1d..021fee63251 100644 --- a/PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx +++ b/PWGLF/TableProducer/Strangeness/doubleOmegaTreeCreator.cxx @@ -49,6 +49,7 @@ #include #include #include +#include #include using namespace o2; @@ -902,7 +903,7 @@ struct doubleOmegaTreeCreator { const std::array sourceTrackIds{ lambdaKaonSource.posTrackId(), lambdaKaonSource.negTrackId(), lambdaKaonSource.bachelorId()}; bool sharesTrack = false; - for (const auto omegaTrackId : omegaTrackIds) { + for (const auto& omegaTrackId : omegaTrackIds) { if (std::find(sourceTrackIds.begin(), sourceTrackIds.end(), omegaTrackId) != sourceTrackIds.end()) { sharesTrack = true; break;