From 7b9b97868e67a29f6b9491b75feddb6dc57c0cc3 Mon Sep 17 00:00:00 2001 From: Sara Pucillo Date: Thu, 27 Nov 2025 09:22:03 +0100 Subject: [PATCH 1/4] Fix build errors PR 13987 --- PWGLF/DataModel/LFInJets.h | 17 +- PWGLF/TableProducer/Strangeness/lfinjets.cxx | 10 ++ PWGLF/Tasks/Strangeness/strangenessInJets.cxx | 162 +++++++++++++++++- 3 files changed, 176 insertions(+), 13 deletions(-) diff --git a/PWGLF/DataModel/LFInJets.h b/PWGLF/DataModel/LFInJets.h index fa8de7a3bf6..532c43c1e1f 100644 --- a/PWGLF/DataModel/LFInJets.h +++ b/PWGLF/DataModel/LFInJets.h @@ -11,6 +11,7 @@ /// /// \brief Derived Data table for LF in jets analysis /// \author Francesca Ercolessi (francesca.ercolessi@cern.ch) +/// \author Sara Pucillo (sara.pucillo@cern.ch) #ifndef PWGLF_DATAMODEL_LFINJETS_H_ #define PWGLF_DATAMODEL_LFINJETS_H_ @@ -23,8 +24,8 @@ namespace o2::aod namespace lfinjets { -DECLARE_SOA_COLUMN(Sign, sign, int); DECLARE_SOA_COLUMN(Pt, pt, float); +DECLARE_SOA_COLUMN(Sign, sign, int); DECLARE_SOA_COLUMN(MassLambda, masslambda, float); DECLARE_SOA_COLUMN(MassAntiLambda, massantilambda, float); DECLARE_SOA_COLUMN(MassK0Short, massk0short, float); @@ -37,6 +38,10 @@ DECLARE_SOA_COLUMN(NTPCSigmaNegPr, ntpcsigmanegpr, float); DECLARE_SOA_COLUMN(NTPCSigmaPosPr, ntpcsigmapospr, float); DECLARE_SOA_COLUMN(NTPCSigmaNegPi, ntpcsigmanegpi, float); DECLARE_SOA_COLUMN(NTPCSigmaPosPi, ntpcsigmapospi, float); +DECLARE_SOA_COLUMN(NTOFSigmaNegPr, ntofsigmanegpr, float); +DECLARE_SOA_COLUMN(NTOFSigmaPosPr, ntofsigmapospr, float); +DECLARE_SOA_COLUMN(NTOFSigmaNegPi, ntofsigmanegpi, float); +DECLARE_SOA_COLUMN(NTOFSigmaPosPi, ntofsigmapospi, float); DECLARE_SOA_COLUMN(MultFT0M, multft0m, float); DECLARE_SOA_COLUMN(V0PosTPCCrossedRows, v0postpcCrossedRows, float); DECLARE_SOA_COLUMN(V0NegTPCCrossedRows, v0negtpcCrossedRows, float); @@ -46,7 +51,6 @@ DECLARE_SOA_COLUMN(V0PosTPCChi2, v0posTPCChi2, float); DECLARE_SOA_COLUMN(V0PosITSlayers, v0posITSlayers, int); DECLARE_SOA_COLUMN(MassXi, massxi, float); DECLARE_SOA_COLUMN(MassOmega, massomega, float); -DECLARE_SOA_COLUMN(MassLambdaDau, masslambdadau, float); DECLARE_SOA_COLUMN(CascRadius, cascradius, float); DECLARE_SOA_COLUMN(CascCosPA, casccospa, float); DECLARE_SOA_COLUMN(DCABachToPV, dcabachtopv, float); @@ -54,6 +58,8 @@ DECLARE_SOA_COLUMN(DCACascDaughters, dcacascdaughters, float); DECLARE_SOA_COLUMN(DCAV0ToPV, dcav0topv, float); DECLARE_SOA_COLUMN(NTPCSigmaBachPi, ntpcsigmabachpi, float); DECLARE_SOA_COLUMN(NTPCSigmaBachKa, ntpcsigmabachka, float); +DECLARE_SOA_COLUMN(NTOFSigmaBachPi, ntofsigmabachpi, float); +DECLARE_SOA_COLUMN(NTOFSigmaBachKa, ntofsigmabachka, float); DECLARE_SOA_COLUMN(BachTPCCrossedRows, bachtpcCrossedRows, float); DECLARE_SOA_COLUMN(BachTPCChi2, bachTPCChi2, float); DECLARE_SOA_COLUMN(BachITSlayers, bachITSlayers, int); @@ -67,17 +73,20 @@ DECLARE_SOA_TABLE(V0InJets, "AOD", "V0INJETS", lfinjets::V0Radius, lfinjets::V0CosPA, lfinjets::V0DCAPosToPV, lfinjets::V0DCANegToPV, lfinjets::V0DCAV0Daughters, lfinjets::NTPCSigmaNegPr, lfinjets::NTPCSigmaPosPr, lfinjets::NTPCSigmaNegPi, lfinjets::NTPCSigmaPosPi, + lfinjets::NTOFSigmaNegPr, lfinjets::NTOFSigmaPosPr, lfinjets::NTOFSigmaNegPi, lfinjets::NTOFSigmaPosPi, lfinjets::MultFT0M, lfinjets::V0PosTPCCrossedRows, lfinjets::V0NegTPCCrossedRows, lfinjets::V0NegTPCChi2, lfinjets::V0NegITSlayers, lfinjets::V0PosTPCChi2, lfinjets::V0PosITSlayers, lfinjets::IsUE, lfinjets::IsJC); DECLARE_SOA_TABLE(CascInJets, "AOD", "CASCINJETS", - lfinjets::Pt, lfinjets::Sign, lfinjets::MassXi, lfinjets::MassOmega, lfinjets::MassLambdaDau, + lfinjets::Pt, lfinjets::Sign, lfinjets::MassXi, lfinjets::MassOmega, lfinjets::MassLambda, lfinjets::CascRadius, lfinjets::CascCosPA, lfinjets::V0Radius, lfinjets::V0CosPA, lfinjets::V0DCAPosToPV, lfinjets::V0DCANegToPV, lfinjets::DCABachToPV, lfinjets::DCACascDaughters, lfinjets::V0DCAV0Daughters, lfinjets::DCAV0ToPV, lfinjets::NTPCSigmaNegPr, lfinjets::NTPCSigmaPosPr, lfinjets::NTPCSigmaNegPi, lfinjets::NTPCSigmaPosPi, - lfinjets::NTPCSigmaBachPi, lfinjets::NTPCSigmaBachKa, lfinjets::MultFT0M, + lfinjets::NTPCSigmaBachPi, lfinjets::NTPCSigmaBachKa, + lfinjets::NTOFSigmaNegPr, lfinjets::NTOFSigmaPosPr, lfinjets::NTOFSigmaNegPi, lfinjets::NTOFSigmaPosPi, + lfinjets::NTOFSigmaBachPi, lfinjets::NTOFSigmaBachKa, lfinjets::MultFT0M, lfinjets::V0PosTPCCrossedRows, lfinjets::V0NegTPCCrossedRows, lfinjets::BachTPCCrossedRows, lfinjets::V0NegTPCChi2, lfinjets::V0NegITSlayers, lfinjets::V0PosTPCChi2, lfinjets::V0PosITSlayers, lfinjets::BachTPCChi2, lfinjets::BachITSlayers, diff --git a/PWGLF/TableProducer/Strangeness/lfinjets.cxx b/PWGLF/TableProducer/Strangeness/lfinjets.cxx index 37c5a301449..7b518ab2884 100644 --- a/PWGLF/TableProducer/Strangeness/lfinjets.cxx +++ b/PWGLF/TableProducer/Strangeness/lfinjets.cxx @@ -1149,6 +1149,10 @@ struct LFInJets { pos.tpcNSigmaPr(), neg.tpcNSigmaPi(), pos.tpcNSigmaPi(), + neg.tofNSigmaPr(), + pos.tofNSigmaPr(), + neg.tofNSigmaPi(), + pos.tofNSigmaPi(), collision.centFT0M(), pos.tpcNClsCrossedRows(), neg.tpcNClsCrossedRows(), @@ -1229,6 +1233,12 @@ struct LFInJets { pos.tpcNSigmaPi(), bach.tpcNSigmaPi(), bach.tpcNSigmaKa(), + neg.tofNSigmaPr(), + pos.tofNSigmaPr(), + neg.tofNSigmaPi(), + pos.tofNSigmaPi(), + bach.tofNSigmaPi(), + bach.tofNSigmaKa(), collision.centFT0M(), pos.tpcNClsCrossedRows(), neg.tpcNClsCrossedRows(), diff --git a/PWGLF/Tasks/Strangeness/strangenessInJets.cxx b/PWGLF/Tasks/Strangeness/strangenessInJets.cxx index d1921fdf28a..0294a345069 100644 --- a/PWGLF/Tasks/Strangeness/strangenessInJets.cxx +++ b/PWGLF/Tasks/Strangeness/strangenessInJets.cxx @@ -428,17 +428,17 @@ struct StrangenessInJets { return false; // Constants for identifying heavy-flavor (charm and bottom) content from PDG codes - static constexpr int kCharmQuark = 4; - static constexpr int kBottomQuark = 5; - static constexpr int hundreds = 100; - static constexpr int thousands = 1000; + static constexpr int CharmQuark = 4; + static constexpr int BottomQuark = 5; + static constexpr int Hundreds = 100; + static constexpr int Thousands = 1000; // Check if particle is from heavy-flavor decay bool fromHF = false; if (particle.has_mothers()) { auto mother = mcParticles.iteratorAt(particle.mothersIds()[0]); int motherPdg = std::abs(mother.pdgCode()); - fromHF = (motherPdg / hundreds == kCharmQuark || motherPdg / hundreds == kBottomQuark || motherPdg / thousands == kCharmQuark || motherPdg / thousands == kBottomQuark); + fromHF = (motherPdg / Hundreds == CharmQuark || motherPdg / Hundreds == BottomQuark || motherPdg / Thousands == CharmQuark || motherPdg / Thousands == BottomQuark); } // Select only physical primary particles or from heavy-flavor @@ -1255,8 +1255,8 @@ struct StrangenessInJets { continue; // Build 4-momentum assuming charged pion mass - static constexpr float kMassPionChargedSquared = o2::constants::physics::MassPionCharged * o2::constants::physics::MassPionCharged; - const double energy = std::sqrt(particle.p() * particle.p() + kMassPionChargedSquared); + static constexpr float MassPionChargedSquared = o2::constants::physics::MassPionCharged * o2::constants::physics::MassPionCharged; + const double energy = std::sqrt(particle.p() * particle.p() + MassPionChargedSquared); fastjet::PseudoJet fourMomentum(particle.px(), particle.py(), particle.pz(), energy); fourMomentum.set_user_index(particle.pdgCode()); fjParticles.emplace_back(fourMomentum); @@ -1773,7 +1773,7 @@ struct StrangenessInJets { // Postprocessing void processDerivedAnalysis(aod::V0InJets const& v0s, aod::CascInJets const& cascades) { - for (auto& v0 : v0s) { + for (const auto& v0 : v0s) { if (v0.v0negITSlayers() < minITSnCls || v0.v0posITSlayers() < minITSnCls) continue; @@ -1791,6 +1791,45 @@ struct StrangenessInJets { continue; if (std::fabs(v0.v0dcanegtopv()) < dcanegtoPVmin) continue; + // PID selections (TPC) -- K0s + if (v0.ntpcsigmapospi() < nsigmaTPCmin || v0.ntpcsigmapospi() > nsigmaTPCmax) + continue; + if (v0.ntpcsigmanegpi() < nsigmaTPCmin || v0.ntpcsigmanegpi() > nsigmaTPCmax) + continue; + + // PID selections (TOF) -- K0s + if (requireTOF) { + if (v0.ntofsigmapospi() < nsigmaTOFmin || v0.ntofsigmapospi() > nsigmaTOFmax) + continue; + if (v0.ntofsigmanegpi() < nsigmaTOFmin || v0.ntofsigmanegpi() > nsigmaTOFmax) + continue; + } + // PID selections (TPC): positive track = proton, negative track = pion -- Lam + if (v0.ntpcsigmapospr() < nsigmaTPCmin || v0.ntpcsigmapospr() > nsigmaTPCmax) + continue; + if (v0.ntpcsigmanegpi() < nsigmaTPCmin || v0.ntpcsigmanegpi() > nsigmaTPCmax) + continue; + + // PID selections (TOF): positive track = proton, negative track = pion -- Lam + if (requireTOF) { + if (v0.ntofsigmapospr() < nsigmaTOFmin || v0.ntofsigmapospr() > nsigmaTOFmax) + continue; + if (v0.ntofsigmanegpi() < nsigmaTOFmin || v0.ntofsigmanegpi() > nsigmaTOFmax) + continue; + } + // PID selections (TPC): negative track = proton, positive track = pion --- ALam + if (v0.ntpcsigmapospi() < nsigmaTPCmin || v0.ntpcsigmapospi() > nsigmaTPCmax) + continue; + if (v0.ntpcsigmanegpr() < nsigmaTPCmin || v0.ntpcsigmanegpr() > nsigmaTPCmax) + continue; + + // PID selections (TOF): negative track = proton, positive track = pion --- ALam + if (requireTOF) { + if (v0.ntofsigmapospi() < nsigmaTOFmin || v0.ntofsigmapospi() > nsigmaTOFmax) + continue; + if (v0.ntofsigmanegpr() < nsigmaTOFmin || v0.ntofsigmanegpr() > nsigmaTOFmax) + continue; + } if (v0.isUE()) { registryData.fill(HIST("K0s_in_ue"), v0.multft0m(), v0.pt(), v0.massk0short()); @@ -1803,7 +1842,7 @@ struct StrangenessInJets { } } - for (auto& casc : cascades) { + for (const auto& casc : cascades) { if (casc.v0negITSlayers() < minITSnCls || casc.v0posITSlayers() < minITSnCls || casc.bachITSlayers() < minITSnCls) continue; @@ -1828,6 +1867,111 @@ struct StrangenessInJets { continue; if (std::fabs(casc.dcabachtopv()) < dcabachtopvMin) continue; + if (std::fabs(casc.dcav0topv()) < dcaV0topvMin) + continue; + if (std::fabs(casc.dcacascdaughters()) > dcaCascDaughtersMax) + continue; + //Xi + // Xi+ selection (Xi+ -> antiL + pi+) + if (casc.sign() > 0) { + // PID selections (TPC) + if (casc.ntpcsigmanegpr() < nsigmaTPCmin || casc.ntpcsigmanegpr() > nsigmaTPCmax) + continue; + if (casc.ntpcsigmapospi() < nsigmaTPCmin || casc.ntpcsigmapospi() > nsigmaTPCmax) + continue; + + // PID selections (TOF) + if (requireTOF) { + if (casc.ntofsigmanegpr() < nsigmaTOFmin || casc.ntofsigmanegpr() > nsigmaTOFmax) + continue; + if (casc.ntofsigmapospi() < nsigmaTOFmin || casc.ntofsigmapospi() > nsigmaTOFmax) + continue; + } + } + // Xi- selection (Xi- -> L + pi-) + if (casc.sign() < 0) { + // PID selections (TPC) + if (casc.ntpcsigmapospr() < nsigmaTPCmin || casc.ntpcsigmapospr() > nsigmaTPCmax) + continue; + if (casc.ntpcsigmanegpi() < nsigmaTPCmin || casc.ntpcsigmanegpi() > nsigmaTPCmax) + continue; + + // PID selections (TOF) + if (requireTOF) { + if (casc.ntofsigmapospr() < nsigmaTOFmin || casc.ntofsigmapospr() > nsigmaTOFmax) + continue; + if (casc.ntofsigmanegpi() < nsigmaTOFmin || casc.ntofsigmanegpi() > nsigmaTOFmax) + continue; + } + } + + // PID selection on bachelor + if (casc.ntpcsigmabachpi() < nsigmaTPCmin || casc.ntpcsigmabachpi() > nsigmaTPCmax) + continue; + + // PID selections (TOF) + if (requireTOF) { + if (casc.ntofsigmabachpi() < nsigmaTOFmin || casc.ntofsigmabachpi() > nsigmaTOFmax) + continue; + } + // V0 mass window + if (std::fabs(casc.masslambda() - o2::constants::physics::MassLambda0) > deltaMassLambda) + continue; + // Reject candidates compatible with Omega + if (std::fabs(casc.massomega() - o2::constants::physics::MassOmegaMinus) < deltaMassOmega) + continue; + + //Omega + // Omega+ selection (Omega+ -> antiL + K+) + if (casc.sign() > 0) { + // PID selections (TPC) + if (casc.ntpcsigmanegpr() < nsigmaTPCmin || casc.ntpcsigmanegpr() > nsigmaTPCmax) + continue; + if (casc.ntpcsigmapospi() < nsigmaTPCmin || casc.ntpcsigmapospi() > nsigmaTPCmax) + continue; + + // PID selections (TOF) + if (requireTOF) { + if (casc.ntofsigmanegpr() < nsigmaTOFmin || casc.ntofsigmanegpr() > nsigmaTOFmax) + continue; + if (casc.ntofsigmapospi() < nsigmaTOFmin || casc.ntofsigmapospi() > nsigmaTOFmax) + continue; + } + } + + // Omega- selection (Omega- -> L + K-) + if (casc.sign() < 0) { + // PID selections (TPC) + if (casc.ntpcsigmapospr() < nsigmaTPCmin || casc.ntpcsigmapospr() > nsigmaTPCmax) + continue; + if (casc.ntpcsigmanegpi() < nsigmaTPCmin || casc.ntpcsigmanegpi() > nsigmaTPCmax) + continue; + + // PID selections (TOF) + if (requireTOF) { + if (casc.ntofsigmapospr() < nsigmaTOFmin || casc.ntofsigmapospr() > nsigmaTOFmax) + continue; + if (casc.ntofsigmanegpi() < nsigmaTOFmin || casc.ntofsigmanegpi() > nsigmaTOFmax) + continue; + } + } + + // PID selection on bachelor + if (casc.ntpcsigmabachka() < nsigmaTPCmin || casc.ntpcsigmabachka() > nsigmaTPCmax) + continue; + + // PID selections (TOF) + if (requireTOF) { + if (casc.ntofsigmabachka() < nsigmaTOFmin || casc.ntofsigmabachka() > nsigmaTOFmax) + continue; + } + // V0 mass window + if (std::fabs(casc.masslambda() - o2::constants::physics::MassLambda0) > deltaMassLambda) + continue; + + // Reject candidates compatible with Xi + if (std::fabs(casc.massxi() - o2::constants::physics::MassXiMinus) < deltaMassXi) + continue; if (casc.isUE()) { if (casc.sign() < 0) { From 2bc8b3f3f36378c32104bc5bf91d1ce37a914248 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Thu, 27 Nov 2025 08:22:48 +0000 Subject: [PATCH 2/4] Please consider the following formatting changes --- PWGLF/Tasks/Strangeness/strangenessInJets.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/strangenessInJets.cxx b/PWGLF/Tasks/Strangeness/strangenessInJets.cxx index 0294a345069..c9e34ae9092 100644 --- a/PWGLF/Tasks/Strangeness/strangenessInJets.cxx +++ b/PWGLF/Tasks/Strangeness/strangenessInJets.cxx @@ -1871,8 +1871,8 @@ struct StrangenessInJets { continue; if (std::fabs(casc.dcacascdaughters()) > dcaCascDaughtersMax) continue; - //Xi - // Xi+ selection (Xi+ -> antiL + pi+) + // Xi + // Xi+ selection (Xi+ -> antiL + pi+) if (casc.sign() > 0) { // PID selections (TPC) if (casc.ntpcsigmanegpr() < nsigmaTPCmin || casc.ntpcsigmanegpr() > nsigmaTPCmax) @@ -1915,14 +1915,14 @@ struct StrangenessInJets { continue; } // V0 mass window - if (std::fabs(casc.masslambda() - o2::constants::physics::MassLambda0) > deltaMassLambda) - continue; + if (std::fabs(casc.masslambda() - o2::constants::physics::MassLambda0) > deltaMassLambda) + continue; // Reject candidates compatible with Omega if (std::fabs(casc.massomega() - o2::constants::physics::MassOmegaMinus) < deltaMassOmega) continue; - //Omega - // Omega+ selection (Omega+ -> antiL + K+) + // Omega + // Omega+ selection (Omega+ -> antiL + K+) if (casc.sign() > 0) { // PID selections (TPC) if (casc.ntpcsigmanegpr() < nsigmaTPCmin || casc.ntpcsigmanegpr() > nsigmaTPCmax) From 33dc6f93299d6de037b81790a9db7461cc06ac61 Mon Sep 17 00:00:00 2001 From: spucillo <93769017+spucillo@users.noreply.github.com> Date: Sun, 25 Jan 2026 11:56:23 +0100 Subject: [PATCH 3/4] Update strangenessInJets.cxx Cascades in jets fix selections for derived data --- PWGLF/Tasks/Strangeness/strangenessInJets.cxx | 144 ++++++------------ 1 file changed, 43 insertions(+), 101 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/strangenessInJets.cxx b/PWGLF/Tasks/Strangeness/strangenessInJets.cxx index fb63d96da93..eee4b594ac7 100644 --- a/PWGLF/Tasks/Strangeness/strangenessInJets.cxx +++ b/PWGLF/Tasks/Strangeness/strangenessInJets.cxx @@ -1967,13 +1967,16 @@ struct StrangenessInJets { for (const auto& casc : cascades) { - if (casc.v0negITSlayers() < minITSnCls || casc.v0posITSlayers() < minITSnCls || casc.bachITSlayers() < minITSnCls) + // Track selections + if (requireITS && (casc.v0negITSlayers() < minITSnCls || casc.v0posITSlayers() < minITSnCls || casc.bachITSlayers() < minITSnCls)) continue; if (casc.v0negtpcCrossedRows() < minNCrossedRowsTPC || casc.v0postpcCrossedRows() < minNCrossedRowsTPC || casc.bachtpcCrossedRows() < minNCrossedRowsTPC) continue; if (casc.v0negTPCChi2() > maxChi2TPC || casc.v0posTPCChi2() > maxChi2TPC || casc.bachTPCChi2() > maxChi2TPC) continue; + + // Topological selections if (casc.v0cospa() < v0cospaMin) continue; if (casc.casccospa() < casccospaMin) @@ -1994,124 +1997,63 @@ struct StrangenessInJets { continue; if (std::fabs(casc.dcacascdaughters()) > dcaCascDaughtersMax) continue; - // Xi - // Xi+ selection (Xi+ -> antiL + pi+) - if (casc.sign() > 0) { - // PID selections (TPC) - if (casc.ntpcsigmanegpr() < nsigmaTPCmin || casc.ntpcsigmanegpr() > nsigmaTPCmax) - continue; - if (casc.ntpcsigmapospi() < nsigmaTPCmin || casc.ntpcsigmapospi() > nsigmaTPCmax) - continue; - // PID selections (TOF) - if (requireTOF) { - if (casc.ntofsigmanegpr() < nsigmaTOFmin || casc.ntofsigmanegpr() > nsigmaTOFmax) - continue; - if (casc.ntofsigmapospi() < nsigmaTOFmin || casc.ntofsigmapospi() > nsigmaTOFmax) - continue; - } - } - // Xi- selection (Xi- -> L + pi-) - if (casc.sign() < 0) { - // PID selections (TPC) - if (casc.ntpcsigmapospr() < nsigmaTPCmin || casc.ntpcsigmapospr() > nsigmaTPCmax) - continue; - if (casc.ntpcsigmanegpi() < nsigmaTPCmin || casc.ntpcsigmanegpi() > nsigmaTPCmax) - continue; + // PID selection + Bool_t isPIDXiminus = false, isPIDXiplus = false, isPIDOmminus = false, isPIDOmplus = false; - // PID selections (TOF) - if (requireTOF) { - if (casc.ntofsigmapospr() < nsigmaTOFmin || casc.ntofsigmapospr() > nsigmaTOFmax) - continue; - if (casc.ntofsigmanegpi() < nsigmaTOFmin || casc.ntofsigmanegpi() > nsigmaTOFmax) - continue; + // PID selection bachelor + Bool_t isPIDLam = false, isPIDALam = false; + if (casc.sign() > 0) { + // antiLambda: (p-)neg + (pi+)pos + if (casc.ntpcsigmanegpr() >= nsigmaTPCmin && casc.ntpcsigmanegpr() <= nsigmaTPCmax && + casc.ntpcsigmapospi() >= nsigmaTPCmin && casc.ntpcsigmapospi() <= nsigmaTPCmax) { + isPIDALam = true; + } + } else if (casc.sign() < 0) { + // lambda: (p+)pos + (pi-)neg + if (casc.ntpcsigmapospr() >= nsigmaTPCmin && casc.ntpcsigmapospr() <= nsigmaTPCmax && + casc.ntpcsigmanegpi() >= nsigmaTPCmin && casc.ntpcsigmanegpi() <= nsigmaTPCmax) { + isPIDLam = true; } } - // PID selection on bachelor - if (casc.ntpcsigmabachpi() < nsigmaTPCmin || casc.ntpcsigmabachpi() > nsigmaTPCmax) + if (!(isPIDLam || isPIDALam)) continue; - // PID selections (TOF) - if (requireTOF) { - if (casc.ntofsigmabachpi() < nsigmaTOFmin || casc.ntofsigmabachpi() > nsigmaTOFmax) - continue; - } // V0 mass window if (std::fabs(casc.masslambda() - o2::constants::physics::MassLambda0) > deltaMassLambda) continue; - // Reject candidates compatible with Omega - if (std::fabs(casc.massomega() - o2::constants::physics::MassOmegaMinus) < deltaMassOmega) - continue; - - // Omega - // Omega+ selection (Omega+ -> antiL + K+) - if (casc.sign() > 0) { - // PID selections (TPC) - if (casc.ntpcsigmanegpr() < nsigmaTPCmin || casc.ntpcsigmanegpr() > nsigmaTPCmax) - continue; - if (casc.ntpcsigmapospi() < nsigmaTPCmin || casc.ntpcsigmapospi() > nsigmaTPCmax) - continue; - // PID selections (TOF) - if (requireTOF) { - if (casc.ntofsigmanegpr() < nsigmaTOFmin || casc.ntofsigmanegpr() > nsigmaTOFmax) - continue; - if (casc.ntofsigmapospi() < nsigmaTOFmin || casc.ntofsigmapospi() > nsigmaTOFmax) - continue; - } - } + // PID selection on bachelor + const Bool_t isBachPi = + (casc.ntpcsigmabachpi() >= nsigmaTPCmin && casc.ntpcsigmabachpi() <= nsigmaTPCmax); - // Omega- selection (Omega- -> L + K-) - if (casc.sign() < 0) { - // PID selections (TPC) - if (casc.ntpcsigmapospr() < nsigmaTPCmin || casc.ntpcsigmapospr() > nsigmaTPCmax) - continue; - if (casc.ntpcsigmanegpi() < nsigmaTPCmin || casc.ntpcsigmanegpi() > nsigmaTPCmax) - continue; + const Bool_t isBachKa = + (casc.ntpcsigmabachka() >= nsigmaTPCmin && casc.ntpcsigmabachka() <= nsigmaTPCmax); - // PID selections (TOF) - if (requireTOF) { - if (casc.ntofsigmapospr() < nsigmaTOFmin || casc.ntofsigmapospr() > nsigmaTOFmax) - continue; - if (casc.ntofsigmanegpi() < nsigmaTOFmin || casc.ntofsigmanegpi() > nsigmaTOFmax) - continue; - } - } + // Cross-contamination rejection flags + const Bool_t isOmegaLike = (std::fabs(casc.massomega() - o2::constants::physics::MassOmegaMinus) < deltaMassOmega); + const Bool_t isXiLike = (std::fabs(casc.massxi() - o2::constants::physics::MassXiMinus) < deltaMassXi); - // PID selection on bachelor - if (casc.ntpcsigmabachka() < nsigmaTPCmin || casc.ntpcsigmabachka() > nsigmaTPCmax) - continue; - - // PID selections (TOF) - if (requireTOF) { - if (casc.ntofsigmabachka() < nsigmaTOFmin || casc.ntofsigmabachka() > nsigmaTOFmax) - continue; + // Final PID flags + if (casc.sign() > 0) { + if (isPIDALam && isBachPi && !isOmegaLike) isPIDXiplus = true; + if (isPIDALam && isBachKa && !isXiLike) isPIDOmplus = true; + } else if (casc.sign() < 0) { + if (isPIDLam && isBachPi && !isOmegaLike) isPIDXiminus = true; + if (isPIDLam && isBachKa && !isXiLike) isPIDOmminus = true; } - // V0 mass window - if (std::fabs(casc.masslambda() - o2::constants::physics::MassLambda0) > deltaMassLambda) - continue; - - // Reject candidates compatible with Xi - if (std::fabs(casc.massxi() - o2::constants::physics::MassXiMinus) < deltaMassXi) - continue; if (casc.isUE()) { - if (casc.sign() < 0) { - registryData.fill(HIST("XiNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massxi()); - registryData.fill(HIST("OmegaNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massomega()); - } else if (casc.sign() > 0) { - registryData.fill(HIST("XiPos_in_ue"), casc.multft0m(), casc.pt(), casc.massxi()); - registryData.fill(HIST("OmegaPos_in_ue"), casc.multft0m(), casc.pt(), casc.massomega()); - } + if (isPIDXiminus) registryData.fill(HIST("XiNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massxi()); + if (isPIDXiplus) registryData.fill(HIST("XiPos_in_ue"), casc.multft0m(), casc.pt(), casc.massxi()); + if (isPIDOmminus) registryData.fill(HIST("OmegaNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massomega()); + if (isPIDOmplus) registryData.fill(HIST("OmegaPos_in_ue"), casc.multft0m(), casc.pt(), casc.massomega()); } else if (casc.isJC()) { - if (casc.sign() < 0) { - registryData.fill(HIST("XiNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massxi()); - registryData.fill(HIST("OmegaNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massomega()); - } else if (casc.sign() > 0) { - registryData.fill(HIST("XiPos_in_jet"), casc.multft0m(), casc.pt(), casc.massxi()); - registryData.fill(HIST("OmegaPos_in_jet"), casc.multft0m(), casc.pt(), casc.massomega()); - } + if (isPIDXiminus) registryData.fill(HIST("XiNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massxi()); + if (isPIDXiplus) registryData.fill(HIST("XiPos_in_jet"), casc.multft0m(), casc.pt(), casc.massxi()); + if (isPIDOmminus) registryData.fill(HIST("OmegaNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massomega()); + if (isPIDOmplus) registryData.fill(HIST("OmegaPos_in_jet"), casc.multft0m(), casc.pt(), casc.massomega()); } } } From 1618a645a0393c9f3f1770281b9b08b4f85c6544 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Sun, 25 Jan 2026 10:57:55 +0000 Subject: [PATCH 4/4] Please consider the following formatting changes --- PWGLF/Tasks/Strangeness/strangenessInJets.cxx | 38 ++++++++++++------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/strangenessInJets.cxx b/PWGLF/Tasks/Strangeness/strangenessInJets.cxx index eee4b594ac7..1f6c8061b8e 100644 --- a/PWGLF/Tasks/Strangeness/strangenessInJets.cxx +++ b/PWGLF/Tasks/Strangeness/strangenessInJets.cxx @@ -2033,27 +2033,39 @@ struct StrangenessInJets { // Cross-contamination rejection flags const Bool_t isOmegaLike = (std::fabs(casc.massomega() - o2::constants::physics::MassOmegaMinus) < deltaMassOmega); - const Bool_t isXiLike = (std::fabs(casc.massxi() - o2::constants::physics::MassXiMinus) < deltaMassXi); + const Bool_t isXiLike = (std::fabs(casc.massxi() - o2::constants::physics::MassXiMinus) < deltaMassXi); // Final PID flags if (casc.sign() > 0) { - if (isPIDALam && isBachPi && !isOmegaLike) isPIDXiplus = true; - if (isPIDALam && isBachKa && !isXiLike) isPIDOmplus = true; + if (isPIDALam && isBachPi && !isOmegaLike) + isPIDXiplus = true; + if (isPIDALam && isBachKa && !isXiLike) + isPIDOmplus = true; } else if (casc.sign() < 0) { - if (isPIDLam && isBachPi && !isOmegaLike) isPIDXiminus = true; - if (isPIDLam && isBachKa && !isXiLike) isPIDOmminus = true; + if (isPIDLam && isBachPi && !isOmegaLike) + isPIDXiminus = true; + if (isPIDLam && isBachKa && !isXiLike) + isPIDOmminus = true; } if (casc.isUE()) { - if (isPIDXiminus) registryData.fill(HIST("XiNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massxi()); - if (isPIDXiplus) registryData.fill(HIST("XiPos_in_ue"), casc.multft0m(), casc.pt(), casc.massxi()); - if (isPIDOmminus) registryData.fill(HIST("OmegaNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massomega()); - if (isPIDOmplus) registryData.fill(HIST("OmegaPos_in_ue"), casc.multft0m(), casc.pt(), casc.massomega()); + if (isPIDXiminus) + registryData.fill(HIST("XiNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massxi()); + if (isPIDXiplus) + registryData.fill(HIST("XiPos_in_ue"), casc.multft0m(), casc.pt(), casc.massxi()); + if (isPIDOmminus) + registryData.fill(HIST("OmegaNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massomega()); + if (isPIDOmplus) + registryData.fill(HIST("OmegaPos_in_ue"), casc.multft0m(), casc.pt(), casc.massomega()); } else if (casc.isJC()) { - if (isPIDXiminus) registryData.fill(HIST("XiNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massxi()); - if (isPIDXiplus) registryData.fill(HIST("XiPos_in_jet"), casc.multft0m(), casc.pt(), casc.massxi()); - if (isPIDOmminus) registryData.fill(HIST("OmegaNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massomega()); - if (isPIDOmplus) registryData.fill(HIST("OmegaPos_in_jet"), casc.multft0m(), casc.pt(), casc.massomega()); + if (isPIDXiminus) + registryData.fill(HIST("XiNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massxi()); + if (isPIDXiplus) + registryData.fill(HIST("XiPos_in_jet"), casc.multft0m(), casc.pt(), casc.massxi()); + if (isPIDOmminus) + registryData.fill(HIST("OmegaNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massomega()); + if (isPIDOmplus) + registryData.fill(HIST("OmegaPos_in_jet"), casc.multft0m(), casc.pt(), casc.massomega()); } } }