From 7b9b97868e67a29f6b9491b75feddb6dc57c0cc3 Mon Sep 17 00:00:00 2001 From: Sara Pucillo Date: Thu, 27 Nov 2025 09:22:03 +0100 Subject: [PATCH 1/9] 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/9] 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/9] 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/9] 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()); } } } From 71fabc41ca18409a047536a12038a1e0448dc7b8 Mon Sep 17 00:00:00 2001 From: spucillo <93769017+spucillo@users.noreply.github.com> Date: Tue, 3 Feb 2026 22:39:16 +0100 Subject: [PATCH 5/9] Add a configurable for Zvtx of the MC collision and for INEL > 0 selection --- .../cascadeAnalysisLightIonsDerivedData.cxx | 56 ++++++++++++++++--- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx b/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx index aba22a2f900..336089f3a7e 100644 --- a/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx +++ b/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx @@ -96,6 +96,9 @@ struct CascadeAnalysisLightIonsDerivedData { Configurable requireIsVertexTOFmatched{"requireIsVertexTOFmatched", false, "require events with at least one of vertex contributors matched to TOF"}; Configurable requireIsVertexTRDmatched{"requireIsVertexTRDmatched", false, "require events with at least one of vertex contributors matched to TRD"}; Configurable rejectSameBunchPileup{"rejectSameBunchPileup", true, "reject collisions in case of pileup with another collision in the same foundBC"}; + Configurable applyZVtxSelOnMCPV{"applyZVtxSelOnMCPV", false, "Apply Z-vtx cut on the PV of the generated collision?"}; + Configurable requireInel0{"requireInel0", false, "Enable INEL > 0 selection"}; + Configurable requireInel0OnMC{"requireInel0OnMC", false, "Enable INEL > 0 selection for MC gen events"}; // Track analysis Parameters Configurable minITSnCls{"minITSnCls", 4.0f, "min number of ITS clusters"}; @@ -129,6 +132,7 @@ struct CascadeAnalysisLightIonsDerivedData { Configurable minimumCascRadius{"minimumCascRadius", 1.1f, "Minimum Cascade Radius"}; Configurable v0masswindow{"v0masswindow", 0.005, "v0 mass window"}; Configurable competingmassrej{"competingmassrej", 0.008, "Competing mass rejection"}; + // Axes parameters ConfigurableAxis centEstimatorHistBin{"centEstimatorHistBin", {101, 0.0f, 101.0f}, ""}; ConfigurableAxis centralityBinning{"centralityBinning", {VARIABLE_WIDTH, 0.0f, 5.0f, 10.0f, 20.0f, 30.0f, 40.0f, 50.0f, 60.0f, 70.0f, 80.0f, 90.0f}, ""}; @@ -145,7 +149,7 @@ struct CascadeAnalysisLightIonsDerivedData { kNGlobal }; // For manual sliceBy - PresliceUnsorted> perMcCollision = aod::v0data::straMCCollisionId; + PresliceUnsorted> perMcCollision = aod::cascdata::straMCCollisionId; void init(InitContext const&) { @@ -183,6 +187,7 @@ struct CascadeAnalysisLightIonsDerivedData { registryData.get(HIST("number_of_events_data"))->GetXaxis()->SetBinLabel(8, "kIsVertexTOFmatched"); registryData.get(HIST("number_of_events_data"))->GetXaxis()->SetBinLabel(9, "kIsVertexTRDmatched"); registryData.get(HIST("number_of_events_data"))->GetXaxis()->SetBinLabel(10, "kNoSameBunchPileup"); + registryData.get(HIST("number_of_events_data"))->GetXaxis()->SetBinLabel(11, "kINELgr0"); registryData.add("number_of_events_data_vs_centrality", "number of events in data vs centrality", HistType::kTH2D, {{20, -0.5f, +19.5f}, {101, 0.0f, 101.0f}}); registryData.get(HIST("number_of_events_data_vs_centrality"))->GetXaxis()->SetBinLabel(1, "All collisions"); @@ -195,6 +200,7 @@ struct CascadeAnalysisLightIonsDerivedData { registryData.get(HIST("number_of_events_data_vs_centrality"))->GetXaxis()->SetBinLabel(8, "kIsVertexTOFmatched"); registryData.get(HIST("number_of_events_data_vs_centrality"))->GetXaxis()->SetBinLabel(9, "kIsVertexTRDmatched"); registryData.get(HIST("number_of_events_data_vs_centrality"))->GetXaxis()->SetBinLabel(10, "kNoSameBunchPileup"); + registryData.get(HIST("number_of_events_data_vs_centrality"))->GetXaxis()->SetBinLabel(11, "kINELgr0"); registryData.get(HIST("number_of_events_data_vs_centrality"))->GetYaxis()->SetTitle("Centrality (%)"); // QC Histograms @@ -244,6 +250,7 @@ struct CascadeAnalysisLightIonsDerivedData { registryMC.get(HIST("number_of_events_mc_rec"))->GetXaxis()->SetBinLabel(8, "kIsVertexTOFmatched"); registryMC.get(HIST("number_of_events_mc_rec"))->GetXaxis()->SetBinLabel(9, "kIsVertexTRDmatched"); registryMC.get(HIST("number_of_events_mc_rec"))->GetXaxis()->SetBinLabel(10, "kNoSameBunchPileup"); + registryMC.get(HIST("number_of_events_mc_rec"))->GetXaxis()->SetBinLabel(11, "kINELgr0"); registryMC.add("number_of_events_mc_rec_vs_centrality", "number of events in mc_rec vs centrality", HistType::kTH2D, {{20, -0.5f, +19.5f}, {101, 0.0f, 101.0f}}); registryMC.get(HIST("number_of_events_mc_rec_vs_centrality"))->GetXaxis()->SetBinLabel(1, "All collisions"); @@ -256,6 +263,7 @@ struct CascadeAnalysisLightIonsDerivedData { registryMC.get(HIST("number_of_events_mc_rec_vs_centrality"))->GetXaxis()->SetBinLabel(8, "kIsVertexTOFmatched"); registryMC.get(HIST("number_of_events_mc_rec_vs_centrality"))->GetXaxis()->SetBinLabel(9, "kIsVertexTRDmatched"); registryMC.get(HIST("number_of_events_mc_rec_vs_centrality"))->GetXaxis()->SetBinLabel(10, "kNoSameBunchPileup"); + registryMC.get(HIST("number_of_events_mc_rec_vs_centrality"))->GetXaxis()->SetBinLabel(11, "kINELgr0"); registryMC.get(HIST("number_of_events_mc_rec_vs_centrality"))->GetYaxis()->SetTitle("Centrality (%)"); // QC Histograms @@ -313,9 +321,11 @@ struct CascadeAnalysisLightIonsDerivedData { registryMC.add("h2dGenOmegaPlus", "h2dGenOmegaPlus", HistType::kTH2D, {centAxis, ptAxis}); // Histograms for event loss/splitting - registryMC.add("hGenEvents", "hGenEvents", HistType::kTH2D, {{axisNch}, {2, -0.5f, +1.5f}}); + registryMC.add("hGenEvents", "hGenEvents", HistType::kTH2D, {{axisNch}, {4, -0.5f, +3.5f}}); registryMC.get(HIST("hGenEvents"))->GetYaxis()->SetBinLabel(1, "All gen. events"); - registryMC.get(HIST("hGenEvents"))->GetYaxis()->SetBinLabel(2, "Gen. with at least 1 rec. events"); + registryMC.get(HIST("hGenEvents"))->GetYaxis()->SetBinLabel(2, "All gen. events in INEL > 0"); + registryMC.get(HIST("hGenEvents"))->GetYaxis()->SetBinLabel(3, "Gen. with at least 1 rec. events"); + registryMC.get(HIST("hGenEvents"))->GetYaxis()->SetBinLabel(4, "Gen. with at least 1 rec. events in INEL > 0"); registryMC.add("hGenEventCentrality", "hGenEventCentrality", kTH1D, {{101, 0.0f, 101.0f}}); registryMC.add("hCentralityVsNcoll_beforeEvSel", "hCentralityVsNcoll_beforeEvSel", HistType::kTH2D, {centAxis, {50, -0.5f, 49.5f}}); @@ -631,6 +641,10 @@ struct CascadeAnalysisLightIonsDerivedData { continue; } + if (requireInel0 && collision.multNTracksPVeta1() < 1) { + continue; + } + // Find the collision with the biggest nbr of PV contributors // Follows what was done here: https://github.com/AliceO2Group/O2Physics/blob/master/Common/TableProducer/mcCollsExtra.cxx#L93 if (biggestNContribs < collision.multPVTotalContributors()) { @@ -650,11 +664,16 @@ struct CascadeAnalysisLightIonsDerivedData { std::vector listBestCollisionIdx(mcCollisions.size()); for (auto const& mcCollision : mcCollisions) { // event selections - if (applyVtxZ && std::fabs(mcCollision.posZ()) > zVtx) + if (applyZVtxSelOnMCPV && std::fabs(mcCollision.posZ()) > zVtx) continue; registryMC.fill(HIST("hGenEvents"), mcCollision.multMCNParticlesEta05(), 0 /* all gen. events*/); + if (requireInel0OnMC && mcCollision.multMCNParticlesEta10() < 1) { + continue; + } + registryMC.fill(HIST("hGenEvents"), mcCollision.multMCNParticlesEta05(), 1 /* all gen. events in INEL > 0*/); + auto groupedCollisions = getGroupedCollisions(collisions, mcCollision.globalIndex()); // Check if there is at least one of the reconstructed collisions associated to this MC collision // If so, we consider it @@ -698,6 +717,10 @@ struct CascadeAnalysisLightIonsDerivedData { continue; } + if (requireInel0 && collision.multNTracksPVeta1() < 1) { + continue; + } + if (biggestNContribs < collision.multPVTotalContributors()) { biggestNContribs = collision.multPVTotalContributors(); if (centralityEstimator == Option::kFT0C) @@ -721,8 +744,8 @@ struct CascadeAnalysisLightIonsDerivedData { registryQC.fill(HIST("hVertexZGen"), mcCollision.posZ()); if (atLeastOne) { - registryMC.fill(HIST("hGenEvents"), mcCollision.multMCNParticlesEta05(), 1 /* at least 1 rec. event*/); - + registryMC.fill(HIST("hGenEvents"), mcCollision.multMCNParticlesEta05(), 2 /* at least 1 rec. event*/); + registryMC.fill(HIST("hGenEvents"), mcCollision.multMCNParticlesEta05(), 3 /* at least 1 rec. event in INEL > 0*/); registryMC.fill(HIST("hGenEventCentrality"), centralitydata); } } @@ -815,6 +838,12 @@ struct CascadeAnalysisLightIonsDerivedData { registryData.fill(HIST("number_of_events_data"), 9 /* Not at same bunch pile-up */); registryData.fill(HIST("number_of_events_data_vs_centrality"), 9, centrality); + if (requireInel0 && collision.multNTracksPVeta1() < 1) { + return; + } + registryData.fill(HIST("number_of_events_data"), 10 /* INEL > 0 */); + registryData.fill(HIST("number_of_events_data_vs_centrality"), 10, centrality); + // Store the Zvtx registryQC.fill(HIST("hVertexZdata"), collision.posZ()); @@ -959,6 +988,12 @@ struct CascadeAnalysisLightIonsDerivedData { registryMC.fill(HIST("number_of_events_mc_rec"), 9 /* Not at same bunch pile-up */); registryMC.fill(HIST("number_of_events_mc_rec_vs_centrality"), 9, centralityMcRec); + if (requireInel0 && collision.multNTracksPVeta1() < 1) { + continue; + } + registryMC.fill(HIST("number_of_events_mc_rec"), 10 /* INEL > 0 */); + registryMC.fill(HIST("number_of_events_mc_rec_vs_centrality"), 10, centralityMcRec); + // Store the Zvtx registryQC.fill(HIST("hVertexZRec"), RecCol.posZ()); @@ -1055,17 +1090,20 @@ struct CascadeAnalysisLightIonsDerivedData { if (!isPhysPrim) continue; - float ptmc = RecoDecay::sqrtSumOfSquares(cascMC.pxMC(), cascMC.pyMC()); + float ptmc = cascMC.ptMC(); auto mcCollision = cascMC.template straMCCollision_as(); // event selections - if (applyVtxZ && std::abs(mcCollision.posZ()) > zVtx) + if (applyZVtxSelOnMCPV && std::abs(mcCollision.posZ()) > zVtx) continue; - // Store the Zvtx registryQC.fill(HIST("hVertexZGen"), mcCollision.posZ()); + if (requireInel0OnMC && mcCollision.multMCNParticlesEta10() < 1) { + continue; + } + float centralityMC = 100.5f; if (listBestCollisionIdx[mcCollision.globalIndex()] > -1) { From 2adab618439b87a7dbda5f4cce8acca20fbab6ee Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Tue, 3 Feb 2026 21:40:48 +0000 Subject: [PATCH 6/9] Please consider the following formatting changes --- .../Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx b/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx index 336089f3a7e..2af7028e40e 100644 --- a/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx +++ b/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx @@ -670,7 +670,7 @@ struct CascadeAnalysisLightIonsDerivedData { registryMC.fill(HIST("hGenEvents"), mcCollision.multMCNParticlesEta05(), 0 /* all gen. events*/); if (requireInel0OnMC && mcCollision.multMCNParticlesEta10() < 1) { - continue; + continue; } registryMC.fill(HIST("hGenEvents"), mcCollision.multMCNParticlesEta05(), 1 /* all gen. events in INEL > 0*/); @@ -1101,7 +1101,7 @@ struct CascadeAnalysisLightIonsDerivedData { registryQC.fill(HIST("hVertexZGen"), mcCollision.posZ()); if (requireInel0OnMC && mcCollision.multMCNParticlesEta10() < 1) { - continue; + continue; } float centralityMC = 100.5f; From 2a8f650487986017646a96179d34b174dce5848e Mon Sep 17 00:00:00 2001 From: spucillo <93769017+spucillo@users.noreply.github.com> Date: Tue, 3 Feb 2026 22:59:04 +0100 Subject: [PATCH 7/9] Update cascadeAnalysisLightIonsDerivedData.cxx --- PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx b/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx index 2af7028e40e..acaeab2fdfe 100644 --- a/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx +++ b/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx @@ -42,6 +42,8 @@ #include #include #include +#include +#include using namespace o2; using namespace o2::framework; From 8a9ffdebd447b7ad27eb7fc1b160f978e6c61bbe Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Tue, 3 Feb 2026 21:59:51 +0000 Subject: [PATCH 8/9] Please consider the following formatting changes --- PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx b/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx index acaeab2fdfe..cb5ed2b9ca8 100644 --- a/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx +++ b/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx @@ -42,6 +42,7 @@ #include #include #include + #include #include From 6153fc057f6c3d035a9aad75b14a44f6b87afa0a Mon Sep 17 00:00:00 2001 From: SCHOTTER Romain <47983209+romainschotter@users.noreply.github.com> Date: Wed, 4 Feb 2026 00:47:22 +0100 Subject: [PATCH 9/9] Fix compilation error --- PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx b/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx index cb5ed2b9ca8..627a602a7d8 100644 --- a/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx +++ b/PWGLF/Tasks/Strangeness/cascadeAnalysisLightIonsDerivedData.cxx @@ -991,7 +991,7 @@ struct CascadeAnalysisLightIonsDerivedData { registryMC.fill(HIST("number_of_events_mc_rec"), 9 /* Not at same bunch pile-up */); registryMC.fill(HIST("number_of_events_mc_rec_vs_centrality"), 9, centralityMcRec); - if (requireInel0 && collision.multNTracksPVeta1() < 1) { + if (requireInel0 && RecCol.multNTracksPVeta1() < 1) { continue; } registryMC.fill(HIST("number_of_events_mc_rec"), 10 /* INEL > 0 */);