From 7b9b97868e67a29f6b9491b75feddb6dc57c0cc3 Mon Sep 17 00:00:00 2001 From: Sara Pucillo Date: Thu, 27 Nov 2025 09:22:03 +0100 Subject: [PATCH 1/2] 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/2] 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)