4242#include " ReconstructionDataFormats/Track.h"
4343
4444#include < TF1.h>
45- // #include <TLorentzVector.h>
4645
46+ #include < gsl/span>
4747#include < string>
4848
4949using namespace o2 ;
@@ -221,12 +221,30 @@ struct LFNucleiBATask {
221221 static constexpr int PDGTriton = o2::constants::physics::Pdg::kTriton ;
222222 static constexpr int PDGHelium = o2::constants::physics::Pdg::kHelium3 ;
223223 static constexpr int PDGAlpha = o2::constants::physics::Pdg::kAlpha ;
224+ static constexpr int PDGHyperTriton = o2::constants::physics::Pdg::kHyperTriton ;
224225 static constexpr float MassProtonVal = o2::constants::physics::MassProton;
225226 static constexpr float MassDeuteronVal = o2::constants::physics::MassDeuteron;
226227 static constexpr float MassTritonVal = o2::constants::physics::MassTriton;
227228 static constexpr float MassHeliumVal = o2::constants::physics::MassHelium3;
228229 static constexpr float MassAlphaVal = o2::constants::physics::MassAlpha;
229230
231+ // PDG of Mothers
232+ static constexpr int kPdgMotherlist [] = {
233+ PDGProton, // proton
234+ PDGPion, // pi+
235+ PDGKaon, // K+
236+ 311 , // K0
237+ PDGDeuteron, // deuteron
238+ PDGTriton, // triton
239+ PDGHelium, // He-3
240+ PDGAlpha, // Alpha
241+ 1000130270 , // Aluminium
242+ 1000140280 , // Silicon
243+ 1000260560 // Iron
244+ };
245+ static constexpr int kNumMotherlist = sizeof (kPdgMotherlist ) / sizeof (kPdgMotherlist [0 ]);
246+ static constexpr int kMaxNumMom = 4 ; // X: 0..4, overflow=5
247+
230248 template <typename TrackType>
231249 float averageClusterSizeTrk (const TrackType& track)
232250 {
@@ -825,24 +843,12 @@ struct LFNucleiBATask {
825843 histos.add <TH1>(" tracks/triton/h1antiTritonSpectraTrueTransport" , " #it{p}_{T} (#bar{t})" , HistType::kTH1F , {ptAxis});
826844 }
827845 if (enableHe) {
828- // histos.add<TH1>("tracks/helium/h1HeliumSpectraTrue", "#it{p}_{T}/z (He)", HistType::kTH1F, {ptZHeAxis});
829- // histos.add<TH1>("tracks/helium/h1HeliumSpectraTrueWPID", "#it{p}_{T}/z (He)", HistType::kTH1F, {ptZHeAxis});
830- // histos.add<TH1>("tracks/helium/h1HeliumSpectraTruePrim", "#it{p}_{T}/z (He)", HistType::kTH1F, {ptZHeAxis});
831- // histos.add<TH1>("tracks/helium/h1HeliumSpectraTrueSec", "#it{p}_{T}/z (He)", HistType::kTH1F, {ptZHeAxis});
832- // histos.add<TH1>("tracks/helium/h1HeliumSpectraTrueTransport", "#it{p}_{T}/z (He)", HistType::kTH1F, {ptZHeAxis});
833-
834846 histos.add <TH1>(" tracks/helium/h1HeliumSpectraTrue_Z2" , " #it{p}_{T} (He)" , HistType::kTH1F , {ptHeAxis});
835847 histos.add <TH1>(" tracks/helium/h1HeliumSpectraTrueWPID_Z2" , " #it{p}_{T} (He)" , HistType::kTH1F , {ptHeAxis});
836848 histos.add <TH1>(" tracks/helium/h1HeliumSpectraTruePrim_Z2" , " #it{p}_{T} (He)" , HistType::kTH1F , {ptHeAxis});
837849 histos.add <TH1>(" tracks/helium/h1HeliumSpectraTrueSec_Z2" , " #it{p}_{T} (He)" , HistType::kTH1F , {ptHeAxis});
838850 histos.add <TH1>(" tracks/helium/h1HeliumSpectraTrueTransport_Z2" , " #it{p}_{T} (He)" , HistType::kTH1F , {ptHeAxis});
839851
840- // histos.add<TH1>("tracks/helium/h1antiHeliumSpectraTrue", "#it{p}_{T}/z (He)", HistType::kTH1F, {ptZHeAxis});
841- // histos.add<TH1>("tracks/helium/h1antiHeliumSpectraTrueWPID", "#it{p}_{T}/z (He)", HistType::kTH1F, {ptZHeAxis});
842- // histos.add<TH1>("tracks/helium/h1antiHeliumSpectraTruePrim", "#it{p}_{T}/z (He)", HistType::kTH1F, {ptZHeAxis});
843- // histos.add<TH1>("tracks/helium/h1antiHeliumSpectraTrueSec", "#it{p}_{T}/z (He)", HistType::kTH1F, {ptZHeAxis});
844- // histos.add<TH1>("tracks/helium/h1antiHeliumSpectraTrueTransport", "#it{p}_{T}/z (He)", HistType::kTH1F, {ptZHeAxis});
845-
846852 histos.add <TH1>(" tracks/helium/h1antiHeliumSpectraTrue_Z2" , " #it{p}_{T} (He)" , HistType::kTH1F , {ptHeAxis});
847853 histos.add <TH1>(" tracks/helium/h1antiHeliumSpectraTrueWPID_Z2" , " #it{p}_{T} (He)" , HistType::kTH1F , {ptHeAxis});
848854 histos.add <TH1>(" tracks/helium/h1antiHeliumSpectraTruePrim_Z2" , " #it{p}_{T} (He)" , HistType::kTH1F , {ptHeAxis});
@@ -1138,6 +1144,25 @@ struct LFNucleiBATask {
11381144 histos.add <TH2>(" tracks/helium/dca/before/hDCAxyVsPtHeliumTruePrim" , " DCAxy vs Pt (He); #it{p}_{T} (GeV/#it{c}); DCAxy (cm)" , HistType::kTH2F , {{ptZHeAxis}, {dcaxyAxis}});
11391145 histos.add <TH2>(" tracks/helium/dca/before/hDCAxyVsPtHeliumTrueSec" , " DCAxy vs Pt (He); #it{p}_{T} (GeV/#it{c}); DCAxy (cm)" , HistType::kTH2F , {{ptZHeAxis}, {dcaxyAxis}});
11401146 histos.add <TH2>(" tracks/helium/dca/before/hDCAxyVsPtHeliumTrueMaterial" , " DCAxy vs Pt (He); #it{p}_{T} (GeV/#it{c}); DCAxy (cm)" , HistType::kTH2F , {{ptZHeAxis}, {dcaxyAxis}});
1147+
1148+ histos.add <TH2>(" tracks/helium/dca/before/hMomTrueMaterial" , " MC mothers;mother index;mother PDG" , HistType::kTH2I , {{kMaxNumMom + 2 , -0.5 , (double )kMaxNumMom + 1.5 }, {kNumMotherlist + 2 , -1.5 , (double )kNumMotherlist + 0.5 }});
1149+
1150+ // Fix for getting TH2 pointer
1151+ std::shared_ptr<TH2> hTemp = histos.get <TH2>(HIST (" tracks/helium/dca/before/hMomTrueMaterial" ));
1152+ TH2* hPDG = hTemp.get ();
1153+
1154+ TAxis* axPDG = hPDG->GetXaxis ();
1155+ for (int i = 0 ; i <= kMaxNumMom ; ++i) {
1156+ axPDG->SetBinLabel (i + 1 , Form (" %d" , i));
1157+ }
1158+ axPDG->SetBinLabel (kMaxNumMom + 2 , " >=5" );
1159+ TAxis* ayPDG = hPDG->GetYaxis ();
1160+ ayPDG->SetBinLabel (1 , " -1" ); // undefined
1161+ ayPDG->SetBinLabel (2 , " 0" ); // other
1162+ for (int i = 0 ; i < kNumMotherlist ; ++i) {
1163+ ayPDG->SetBinLabel (i + 3 , Form (" %d" , kPdgMotherlist [i]));
1164+ }
1165+
11411166 histos.add <TH2>(" tracks/helium/dca/before/hDCAxyVsPtHeliumTrueTransport" , " DCAxy vs Pt (He); #it{p}_{T} (GeV/#it{c}); DCAxy (cm)" , HistType::kTH2F , {{ptZHeAxis}, {dcaxyAxis}});
11421167
11431168 histos.add <TH2>(" tracks/helium/dca/before/hDCAxyVsPtantiHeliumTrue" , " DCAxy vs Pt (#bar{He}); #it{p}_{T} (GeV/#it{c}); DCAxy (cm)" , HistType::kTH2F , {{ptZHeAxis}, {dcaxyAxis}});
@@ -2099,7 +2124,7 @@ struct LFNucleiBATask {
20992124 template <bool IsMC, bool IsFilteredData, typename CollisionType, typename TracksType, typename ParticleType>
21002125 void fillHistograms (const CollisionType& event,
21012126 const TracksType& tracks,
2102- const ParticleType& /* particles*/ )
2127+ const ParticleType& particles)
21032128 {
21042129 histos.fill (HIST (" event/eventSkimming" ), 0.5 );
21052130 // Apply skimming
@@ -2219,14 +2244,13 @@ struct LFNucleiBATask {
22192244 histos.fill (HIST (" tracks/avgClusterSizePerCoslInvVsITSlayers" ), track.p (), averageClusterSizePerCoslInv (track), track.itsNCls ());
22202245 }
22212246
2222- if (track.itsNCls () < trkqcOptions.cfgCutITSClusters )
2223- continue ;
2224- if (track.tpcNClsCrossedRows () < trkqcOptions.cfgCutTPCXRows )
2225- continue ;
2226- if (track.tpcNClsFound () < trkqcOptions.cfgCutTPCClusters )
2227- continue ;
2228- if (track.tpcCrossedRowsOverFindableCls () < trkqcOptions.cfgCutTPCCROFnd )
2247+ if (track.itsNCls () < trkqcOptions.cfgCutITSClusters ||
2248+ track.tpcNClsCrossedRows () < trkqcOptions.cfgCutTPCXRows ||
2249+ track.tpcNClsFound () < trkqcOptions.cfgCutTPCClusters ||
2250+ track.tpcCrossedRowsOverFindableCls () < trkqcOptions.cfgCutTPCCROFnd ) {
22292251 continue ;
2252+ }
2253+
22302254 auto tpcChi2NclRange = (std::vector<float >)trkqcOptions.tpcChi2NclCuts ;
22312255 if ((track.tpcChi2NCl () < tpcChi2NclRange[0 ]) || (track.tpcChi2NCl () > tpcChi2NclRange[1 ]))
22322256 continue ;
@@ -2252,21 +2276,27 @@ struct LFNucleiBATask {
22522276 float shiftPtNeg = 0 .f ;
22532277
22542278 if (enablePtShiftHe && !fShiftPtHe ) {
2279+ // NOLINTNEXTLINE(cppcoreguidelines-owning-memory, modernize-make-unique)
22552280 fShiftPtHe = new TF1 (" fShiftPtHe" , " [0] * TMath::Exp([1] + [2] * x) + [3] + [4] * x" , 0 .f , 8 .f );
2256- auto par = (std::vector<float >)parShiftPtHe;
2257- fShiftPtHe ->SetParameters (par[0 ], par[1 ], par[2 ], par[3 ], par[4 ]);
2281+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-cstyle-cast)
2282+ auto parHe = (std::vector<float >)parShiftPtHe;
2283+ fShiftPtHe ->SetParameters (parHe[0 ], parHe[1 ], parHe[2 ], parHe[3 ], parHe[4 ]);
22582284 }
22592285
22602286 if (enablePtShiftHe && !fShiftPtantiHe ) {
2287+ // NOLINTNEXTLINE(cppcoreguidelines-owning-memory, modernize-make-unique)
22612288 fShiftPtantiHe = new TF1 (" fShiftPtantiHe" , " [0] * TMath::Exp([1] + [2] * x) + [3] + [4] * x" , 0 .f , 8 .f );
2262- auto par = (std::vector<float >)parShiftPtAntiHe;
2263- fShiftPtantiHe ->SetParameters (par[0 ], par[1 ], par[2 ], par[3 ], par[4 ]);
2289+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-cstyle-cast)
2290+ auto parAntiHe = (std::vector<float >)parShiftPtAntiHe;
2291+ fShiftPtantiHe ->SetParameters (parAntiHe[0 ], parAntiHe[1 ], parAntiHe[2 ], parAntiHe[3 ], parAntiHe[4 ]);
22642292 }
22652293
22662294 if (enablePtShiftAntiD && !fShiftAntiD ) {
2295+ // NOLINTNEXTLINE(cppcoreguidelines-owning-memory, modernize-make-unique)
22672296 fShiftAntiD = new TF1 (" fShiftAntiD" , " [0] * TMath::Exp([1] + [2] * x) + [3] + [4] * x" , 0 .f , 8 .f );
2268- auto par = (std::vector<float >)parShiftPtAntiD;
2269- fShiftAntiD ->SetParameters (par[0 ], par[1 ], par[2 ], par[3 ], par[4 ]);
2297+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-cstyle-cast)
2298+ auto parAntiD = (std::vector<float >)parShiftPtAntiD;
2299+ fShiftAntiD ->SetParameters (parAntiD[0 ], parAntiD[1 ], parAntiD[2 ], parAntiD[3 ], parAntiD[4 ]);
22702300 }
22712301
22722302 switch (unableAntiDPtShift) {
@@ -2282,9 +2312,11 @@ struct LFNucleiBATask {
22822312 }
22832313
22842314 if (enablePtShiftD && !fShiftD ) {
2315+ // NOLINTNEXTLINE(cppcoreguidelines-owning-memory, modernize-make-unique)
22852316 fShiftD = new TF1 (" fShiftD" , " [0] * TMath::Exp([1] + [2] * x) + [3] + [4] * x" , 0 .f , 8 .f );
2286- auto par = (std::vector<float >)parShiftPtD;
2287- fShiftD ->SetParameters (par[0 ], par[1 ], par[2 ], par[3 ], par[4 ]);
2317+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-cstyle-cast)
2318+ auto parD = (std::vector<float >)parShiftPtD;
2319+ fShiftD ->SetParameters (parD[0 ], parD[1 ], parD[2 ], parD[3 ], parD[4 ]);
22882320 }
22892321
22902322 switch (unableDPtShift) {
@@ -2475,11 +2507,16 @@ struct LFNucleiBATask {
24752507 }
24762508
24772509 // Rapidity cuts
2478- prRapCut = track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Proton)) > kinemOptions.cfgRapidityCutLow && track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Proton)) < kinemOptions.cfgRapidityCutHigh ;
2479- deRapCut = track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Deuteron)) > kinemOptions.cfgRapidityCutLow && track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Deuteron)) < kinemOptions.cfgRapidityCutHigh ;
2480- trRapCut = track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Triton)) > kinemOptions.cfgRapidityCutLow && track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Triton)) < kinemOptions.cfgRapidityCutHigh ;
2481- heRapCut = track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Helium3)) > kinemOptions.cfgRapidityCutLow && track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Helium3)) < kinemOptions.cfgRapidityCutHigh ;
2482- alRapCut = track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Alpha)) > kinemOptions.cfgRapidityCutLow && track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Alpha)) < kinemOptions.cfgRapidityCutHigh ;
2510+ auto rapCheck = [&](float m2z) {
2511+ const float rap = track.rapidity (m2z);
2512+ return (rap > kinemOptions.cfgRapidityCutLow ) && (rap < kinemOptions.cfgRapidityCutHigh );
2513+ };
2514+
2515+ prRapCut = rapCheck (MassProtonVal);
2516+ deRapCut = rapCheck (MassDeuteronVal);
2517+ trRapCut = rapCheck (MassTritonVal);
2518+ heRapCut = rapCheck (MassHeliumVal / 2.0 );
2519+ alRapCut = rapCheck (MassAlphaVal / 2.0 );
24832520
24842521 isDeuteron = enableDe && deRapCut;
24852522 isHelium = enableHe && heRapCut;
@@ -2615,6 +2652,7 @@ struct LFNucleiBATask {
26152652 }
26162653
26172654 if constexpr (IsMC) {
2655+ // auto const& mcParticles = particles;
26182656 bool isPhysPrim = false ;
26192657 bool isProdByGen = false ;
26202658 bool isWeakDecay = false ;
@@ -3037,6 +3075,8 @@ struct LFNucleiBATask {
30373075 break ;
30383076 }
30393077 }
3078+ } else {
3079+ (void )particles;
30403080 }
30413081 // Tracks DCA histos fill
30423082 if (outFlagOptions.makeDCABeforeCutPlots ) {
@@ -3114,15 +3154,23 @@ struct LFNucleiBATask {
31143154 }
31153155
31163156 if constexpr (IsMC) {
3157+ // auto const& mcParticles = particles;
31173158 bool isPhysPrim = false ;
31183159 bool isProdByGen = false ;
31193160 bool isWeakDecay = false ;
31203161 bool hasFakeHit = false ;
31213162
31223163 // PID
31233164 int pdgCode = 0 ;
3165+ int pdgMom = 0 ;
31243166 // gen Pt
31253167 float genPt = 0 ;
3168+ // Mothers variables
3169+ [[maybe_unused]] int firstMotherId = -1 ;
3170+ [[maybe_unused]] int firstMotherPdg = -1 ;
3171+ [[maybe_unused]] int pdgList[8 ];
3172+ [[maybe_unused]] int nSaved = 0 ;
3173+
31263174 if constexpr (IsFilteredData) {
31273175 isPhysPrim = track.isPhysicalPrimary ();
31283176 isProdByGen = track.producedByGenerator ();
@@ -3138,8 +3186,35 @@ struct LFNucleiBATask {
31383186 isProdByGen = track.mcParticle ().producedByGenerator ();
31393187 isWeakDecay = track.mcParticle ().getProcess () == 4 ;
31403188 pdgCode = track.mcParticle ().pdgCode ();
3141- genPt = track.mcParticle ().pt ();
31423189
3190+ // Access to MC particles mother
3191+ o2::aod::McParticles::iterator mc = particles.iteratorAt (track.mcParticleId ());
3192+ gsl::span<const int > motherIds = mc.mothersIds ();
3193+ const int nMothers = static_cast <int >(motherIds.size ());
3194+ firstMotherId = -1 ;
3195+ firstMotherPdg = -1 ;
3196+
3197+ // int pdgList[8];
3198+ nSaved = 0 ;
3199+
3200+ for (int iMom = 0 ; iMom < nMothers; ++iMom) {
3201+ int motherId = motherIds[iMom];
3202+ if (motherId < 0 || motherId >= particles.size ()) {
3203+ continue ; // added check on mother
3204+ }
3205+ o2::aod::McParticles::iterator mother = particles.iteratorAt (motherId);
3206+ pdgMom = mother.pdgCode ();
3207+
3208+ if (iMom == 0 ) {
3209+ firstMotherId = motherId;
3210+ firstMotherPdg = pdgMom;
3211+ }
3212+ if (nSaved < 8 ) {
3213+ pdgList[nSaved++] = pdgMom;
3214+ }
3215+ }
3216+
3217+ genPt = track.mcParticle ().pt ();
31433218 for (int i = 0 ; i < 10 ; i++) { // From ITS to TPC
31443219 if (track.mcMask () & 1 << i) {
31453220 hasFakeHit = true ;
@@ -3402,8 +3477,28 @@ struct LFNucleiBATask {
34023477 histos.fill (HIST (" tracks/helium/dca/before/hDCAxyVsPtHeliumTrueTransport" ), hePt, track.dcaXY ());
34033478 if (isWeakDecay)
34043479 histos.fill (HIST (" tracks/helium/dca/before/hDCAxyVsPtHeliumTrueSec" ), hePt, track.dcaXY ());
3405- else
3480+ else {
34063481 histos.fill (HIST (" tracks/helium/dca/before/hDCAxyVsPtHeliumTrueMaterial" ), hePt, track.dcaXY ());
3482+ if (!IsFilteredData) {
3483+ if (nSaved > 0 ) {
3484+ for (int i = 0 ; i < nSaved; ++i) {
3485+ int idxComp = (i <= kMaxNumMom ) ? i : (kMaxNumMom + 1 );
3486+ int pdgMom = pdgList[i];
3487+ int yVal = -1 ;
3488+ if (pdgMom != -1 ) {
3489+ yVal = 0 ;
3490+ for (int j = 0 ; j < kNumMotherlist ; ++j) {
3491+ if (kPdgMotherlist [j] == pdgMom) {
3492+ yVal = j + 1 ;
3493+ break ;
3494+ }
3495+ }
3496+ }
3497+ histos.fill (HIST (" tracks/helium/dca/before/hMomTrueMaterial" ), idxComp, yVal);
3498+ }
3499+ }
3500+ }
3501+ }
34073502 if (track.hasTOF () && outFlagOptions.doTOFplots ) {
34083503 histos.fill (HIST (" tracks/helium/dca/before/TOF/hDCAxyVsPtHeliumTrueTransport" ), hePt, track.dcaXY ());
34093504 if (isWeakDecay)
@@ -3682,6 +3777,8 @@ struct LFNucleiBATask {
36823777 }
36833778 break ;
36843779 }
3780+ } else {
3781+ (void )particles;
36853782 }
36863783
36873784 // DCA Cut
@@ -4553,11 +4650,8 @@ struct LFNucleiBATask {
45534650 histos.fill (HIST (" tracks/eff/helium/hPtHe" ), 2 * hePt);
45544651 histos.fill (HIST (" tracks/eff/helium/h2pVsTPCmomentumHe" ), heTPCmomentum, heP);
45554652 }
4556- // histos.fill(HIST("tracks/helium/h1HeliumSpectra"), hePt);
45574653 histos.fill (HIST (" tracks/helium/h1HeliumSpectra_Z2" ), 2 * hePt);
4558- // histos.fill(HIST("tracks/helium/h2HeliumYvsPt"), track.rapidity(o2::track::PID::getMass2Z(o2::track::PID::Helium3)), hePt);
45594654 histos.fill (HIST (" tracks/helium/h2HeliumYvsPt_Z2" ), track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Helium3)), 2 * hePt);
4560- // histos.fill(HIST("tracks/helium/h2HeliumEtavsPt"), track.eta(), hePt);
45614655 histos.fill (HIST (" tracks/helium/h2HeliumEtavsPt_Z2" ), track.eta (), 2 * hePt);
45624656 if (outFlagOptions.enablePIDplot )
45634657 histos.fill (HIST (" tracks/helium/h2TPCsignVsTPCmomentumHelium" ), heTPCmomentum, track.tpcSignal ());
@@ -4567,11 +4661,8 @@ struct LFNucleiBATask {
45674661 histos.fill (HIST (" tracks/eff/helium/hPtantiHe" ), 2 * antihePt);
45684662 histos.fill (HIST (" tracks/eff/helium/h2pVsTPCmomentumantiHe" ), antiheTPCmomentum, antiheP);
45694663 }
4570- // histos.fill(HIST("tracks/helium/h1antiHeliumSpectra"), antihePt);
45714664 histos.fill (HIST (" tracks/helium/h1antiHeliumSpectra_Z2" ), 2 * antihePt);
4572- // histos.fill(HIST("tracks/helium/h2antiHeliumYvsPt"), track.rapidity(o2::track::PID::getMass2Z(o2::track::PID::Helium3)), antihePt);
45734665 histos.fill (HIST (" tracks/helium/h2antiHeliumYvsPt_Z2" ), track.rapidity (o2::track::PID::getMass2Z (o2::track::PID::Helium3)), 2 * antihePt);
4574- // histos.fill(HIST("tracks/helium/h2antiHeliumEtavsPt"), track.eta(), antihePt);
45754666 histos.fill (HIST (" tracks/helium/h2antiHeliumEtavsPt_Z2" ), track.eta (), 2 * antihePt);
45764667 if (outFlagOptions.enablePIDplot )
45774668 histos.fill (HIST (" tracks/helium/h2TPCsignVsTPCmomentumantiHelium" ), antiheTPCmomentum, track.tpcSignal ());
@@ -4811,6 +4902,7 @@ struct LFNucleiBATask {
48114902 }
48124903
48134904 if constexpr (IsMC) {
4905+ // auto const& mcParticles = particles;
48144906 bool isPhysPrim = false ;
48154907 bool isProdByGen = false ;
48164908 bool isWeakDecay = false ;
@@ -5733,6 +5825,8 @@ struct LFNucleiBATask {
57335825 default :
57345826 break ;
57355827 }
5828+ } else {
5829+ (void )particles;
57365830 }
57375831 }
57385832 }
0 commit comments