From 5f567bcd41e3926dbce0a13a21474eb630d927eb Mon Sep 17 00:00:00 2001 From: maciacco Date: Thu, 13 Aug 2026 12:05:45 +0200 Subject: [PATCH 1/4] add dedicated table for non-pid ebye studies in lf --- PWGLF/DataModel/LFEbyeTables.h | 19 +++++++++++++++++++ PWGLF/TableProducer/Nuspex/ebyeMaker.cxx | 15 +++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/PWGLF/DataModel/LFEbyeTables.h b/PWGLF/DataModel/LFEbyeTables.h index 541bcbe5f50..e8549d6025f 100644 --- a/PWGLF/DataModel/LFEbyeTables.h +++ b/PWGLF/DataModel/LFEbyeTables.h @@ -160,6 +160,25 @@ DECLARE_SOA_TABLE(McMiniTrkTables, "AOD", "MCMINITRKTABLE", LFEbyeTable::GenEtaMask, LFEbyeTable::IsReco); using McMiniTrkTable = McMiniTrkTables::iterator; + +DECLARE_SOA_TABLE(MiniChTables, "AOD", "MINICHTABLE", + o2::soa::Index<>, + LFEbyeTable::MiniCollTableId, + LFEbyeTable::Pt, + LFEbyeTable::EtaMask, + LFEbyeTable::SelMask); +using MiniChTable = MiniChTables::iterator; + +DECLARE_SOA_TABLE(McMiniChTables, "AOD", "MCMINICHTABLE", + o2::soa::Index<>, + LFEbyeTable::MiniCollTableId, + LFEbyeTable::Pt, + LFEbyeTable::EtaMask, + LFEbyeTable::SelMask, + LFEbyeTable::GenPt, + LFEbyeTable::GenEtaMask, + LFEbyeTable::IsReco); +using McMiniChTable = McMiniChTables::iterator; } // namespace o2::aod #endif // PWGLF_DATAMODEL_LFEBYETABLES_H_ diff --git a/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx b/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx index c363d84e3f3..738660d8919 100644 --- a/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx +++ b/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx @@ -214,6 +214,8 @@ struct EbyeMaker { Produces mcNucleiEbyeTable; Produces mcLambdaEbyeTable; Produces mcMiniTrkTable; + Produces miniChTable; + Produces mcMiniChTable; std::mt19937 gen32; std::vector candidateV0s; std::array, 2> candidateTracks; @@ -498,6 +500,14 @@ struct EbyeMaker { candidateTrack.pdgcode > 0 ? candidateTrack.genpt : -candidateTrack.genpt, static_cast(candidateTrack.geneta * 100), candidateTrack.isreco); + mcMiniChTable( + miniCollTable.lastIndex(), + candidateTrack.pt, + static_cast(candidateTrack.eta * 100), + selMask, + candidateTrack.pdgcode > 0 ? candidateTrack.genpt : -candidateTrack.genpt, + static_cast(candidateTrack.geneta * 100), + candidateTrack.isreco); } else if (!isMc) { miniTrkTable( miniCollTable.lastIndex(), @@ -505,6 +515,11 @@ struct EbyeMaker { static_cast(candidateTrack.eta * 100), selMask, candidateTrack.outerPID); + miniChTable( + miniCollTable.lastIndex(), + candidateTrack.pt, + static_cast(candidateTrack.eta * 100), + selMask); } } From 15324310931b715ae21669b9095d9a6b675988c8 Mon Sep 17 00:00:00 2001 From: maciacco Date: Thu, 13 Aug 2026 12:25:42 +0200 Subject: [PATCH 2/4] fix cpp errors (megalinter) --- PWGLF/TableProducer/Nuspex/ebyeMaker.cxx | 28 +++++++++++------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx b/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx index 738660d8919..2c785589746 100644 --- a/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx +++ b/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx @@ -223,12 +223,12 @@ struct EbyeMaker { o2::vertexing::DCAFitterN<2> fitter; std::vector classIds; - int mRunNumber; - float dBz; - uint8_t nTrackletsColl; - uint8_t nTracksColl; - uint8_t nChPartGen; - int nTracksCollFull; + int mRunNumber{-999}; + float dBz{-999.f}; + uint8_t nTrackletsColl{0u}; + uint8_t nTracksColl{0u}; + uint8_t nChPartGen{0u}; + int nTracksCollFull{-999}; Configurable cfgMaterialCorrection{"cfgMaterialCorrection", static_cast(o2::base::Propagator::MatCorrType::USEMatCorrNONE), "Type of material correction"}; Configurable> cfgBetheBlochParams{"cfgBetheBlochParams", {kBetheBlochDefault[0], 2, 6, particleNamesPar, betheBlochParNames}, "TPC Bethe-Bloch parameterisation for deuteron"}; @@ -308,11 +308,11 @@ struct EbyeMaker { Configurable> cfgTrackSels{"cfgTrackSels", {kTrackSels, 1, 12, particleName, trackSelsNames}, "Track selections"}; Configurable> cfgDcaSelsParam{"cfgDcaSelsParam", {kDcaSelsParam[0], 3, 3, dcaSelsNames, dcaParNames}, "DCA threshold settings"}; - std::array ptMin; - std::array ptTof; - std::array ptMax; - std::array nSigmaTpcCutLow; - std::array nSigmaTpcCutUp; + std::array ptMin{0}; + std::array ptTof{0}; + std::array ptMax{0}; + std::array nSigmaTpcCutLow{0}; + std::array nSigmaTpcCutUp{0}; HistogramRegistry histos{"histos", {}, OutputObjHandlingPolicy::AnalysisObject}; @@ -698,7 +698,6 @@ struct EbyeMaker { } if (lambdaPtMax > lambdaPtMin) { - std::vector trkId; for (const auto& v0 : V0s) { auto posTrack = v0.posTrack_as(); auto negTrack = v0.negTrack_as(); @@ -946,7 +945,7 @@ struct EbyeMaker { candV0.genpt = genPt; candV0.geneta = mcPart.eta(); candV0.pdgcode = pdgCode; - auto it = find_if(candidateV0s.begin(), candidateV0s.end(), [&](CandidateV0 v0) { return v0.mcIndex == mcPart.globalIndex(); }); + auto it = find_if(candidateV0s.begin(), candidateV0s.end(), [&](CandidateV0 &v0) { return v0.mcIndex == mcPart.globalIndex(); }); if (it != candidateV0s.end()) { continue; } else { @@ -960,7 +959,6 @@ struct EbyeMaker { } if ((!mcPart.isPhysicalPrimary() && !doprocessMiniMcRun2)) continue; - auto genPt = std::hypot(mcPart.px(), mcPart.py()); CandidateTrack candTrack; candTrack.genpt = genPt; candTrack.geneta = mcPart.eta(); @@ -970,7 +968,7 @@ struct EbyeMaker { else if (mcPart.has_mothers() && iP == 0 && kUsePID) candTrack.pdgcodemoth = getPartTypeMother(mcPart); - auto it = find_if(candidateTracks[iP].begin(), candidateTracks[iP].end(), [&](CandidateTrack trk) { return trk.mcIndex == mcPart.globalIndex(); }); + auto it = find_if(candidateTracks[iP].begin(), candidateTracks[iP].end(), [&](CandidateTrack &trk) { return trk.mcIndex == mcPart.globalIndex(); }); if (it != candidateTracks[iP].end()) { continue; } else { From 7b183d49ba5de9898bb5de220a7749c79b5929bd Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Thu, 13 Aug 2026 10:27:18 +0000 Subject: [PATCH 3/4] Please consider the following formatting changes --- PWGLF/TableProducer/Nuspex/ebyeMaker.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx b/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx index 2c785589746..b8c0c566fd3 100644 --- a/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx +++ b/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx @@ -945,7 +945,7 @@ struct EbyeMaker { candV0.genpt = genPt; candV0.geneta = mcPart.eta(); candV0.pdgcode = pdgCode; - auto it = find_if(candidateV0s.begin(), candidateV0s.end(), [&](CandidateV0 &v0) { return v0.mcIndex == mcPart.globalIndex(); }); + auto it = find_if(candidateV0s.begin(), candidateV0s.end(), [&](CandidateV0& v0) { return v0.mcIndex == mcPart.globalIndex(); }); if (it != candidateV0s.end()) { continue; } else { @@ -968,7 +968,7 @@ struct EbyeMaker { else if (mcPart.has_mothers() && iP == 0 && kUsePID) candTrack.pdgcodemoth = getPartTypeMother(mcPart); - auto it = find_if(candidateTracks[iP].begin(), candidateTracks[iP].end(), [&](CandidateTrack &trk) { return trk.mcIndex == mcPart.globalIndex(); }); + auto it = find_if(candidateTracks[iP].begin(), candidateTracks[iP].end(), [&](CandidateTrack& trk) { return trk.mcIndex == mcPart.globalIndex(); }); if (it != candidateTracks[iP].end()) { continue; } else { From 002ed809d5df6731bccfc87bebba15505d1021c5 Mon Sep 17 00:00:00 2001 From: maciacco Date: Thu, 13 Aug 2026 12:48:31 +0200 Subject: [PATCH 4/4] fix cpp errors (2) --- PWGLF/TableProducer/Nuspex/ebyeMaker.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx b/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx index b8c0c566fd3..61a6eb70cad 100644 --- a/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx +++ b/PWGLF/TableProducer/Nuspex/ebyeMaker.cxx @@ -678,7 +678,7 @@ struct EbyeMaker { continue; } - if (trackPt <= ptTof[iP] || (trackPt > ptTof[iP] && hasTof)) { + if (trackPt <= ptTof[iP] || hasTof) { CandidateTrack candTrack; candTrack.pt = track.sign() > 0. ? trackPt : -trackPt; candTrack.eta = trackEta; @@ -945,7 +945,7 @@ struct EbyeMaker { candV0.genpt = genPt; candV0.geneta = mcPart.eta(); candV0.pdgcode = pdgCode; - auto it = find_if(candidateV0s.begin(), candidateV0s.end(), [&](CandidateV0& v0) { return v0.mcIndex == mcPart.globalIndex(); }); + auto it = find_if(candidateV0s.begin(), candidateV0s.end(), [&](const CandidateV0& v0) { return v0.mcIndex == mcPart.globalIndex(); }); if (it != candidateV0s.end()) { continue; } else { @@ -968,7 +968,7 @@ struct EbyeMaker { else if (mcPart.has_mothers() && iP == 0 && kUsePID) candTrack.pdgcodemoth = getPartTypeMother(mcPart); - auto it = find_if(candidateTracks[iP].begin(), candidateTracks[iP].end(), [&](CandidateTrack& trk) { return trk.mcIndex == mcPart.globalIndex(); }); + auto it = find_if(candidateTracks[iP].begin(), candidateTracks[iP].end(), [&](const CandidateTrack& trk) { return trk.mcIndex == mcPart.globalIndex(); }); if (it != candidateTracks[iP].end()) { continue; } else { @@ -1026,7 +1026,7 @@ struct EbyeMaker { float centrality = collision.centRun2V0M(); const float centTriggerEdges[]{10.f, 30.f, 50.f}; - if (!(collision.sel7() && collision.alias_bit(kINT7)) && (!kINT7Intervals || (kINT7Intervals && ((centrality >= centTriggerEdges[0] && centrality < centTriggerEdges[1]) || centrality > centTriggerEdges[2])))) + if (!(collision.sel7() && collision.alias_bit(kINT7)) && (!kINT7Intervals || ((centrality >= centTriggerEdges[0] && centrality < centTriggerEdges[1]) || centrality > centTriggerEdges[2]))) continue; float centralityCl0 = collision.centRun2CL0();