@@ -94,6 +94,8 @@ struct HfTaskD0 {
9494 Configurable<bool > storeCentrality{" storeCentrality" , false , " Flag to store centrality information" };
9595 Configurable<bool > storeOccupancyAndIR{" storeOccupancyAndIR" , false , " Flag to store occupancy information and interaction rate" };
9696 Configurable<bool > storeTrackQuality{" storeTrackQuality" , false , " Flag to store track quality information" };
97+ Configurable<bool > storeZdcEnergy{" storeZdcEnergy" , false , " Flag to store ZDC energy info" };
98+ Configurable<bool > storeZdcTime{" storeZdcTime" , true , " Flag to store ZDC time info" };
9799 // ML inference
98100 Configurable<bool > applyMl{" applyMl" , false , " Flag to apply ML selections" };
99101 Configurable<std::string> ccdbUrl{" ccdbUrl" , " http://alice-ccdb.cern.ch" , " url of the ccdb repository" };
@@ -121,6 +123,7 @@ struct HfTaskD0 {
121123 using CollisionsWithMcLabels = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels>;
122124 using CollisionsWithMcLabelsCent = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels, aod::CentFT0Ms, aod::CentFT0Cs>;
123125 using TracksSelQuality = soa::Join<aod::TracksExtra, aod::TracksWMc>;
126+ using TracksWPid = soa::Join<aod::Tracks, aod::TracksPidPi, aod::PidTpcTofFullPi, aod::TracksPidKa, aod::PidTpcTofFullKa>;
124127
125128 Filter filterD0Flag = (o2::aod::hf_track_index::hfflag & static_cast <uint8_t >(BIT(aod::hf_cand_2prong::DecayType::D0ToPiK))) != static_cast <uint8_t >(0 );
126129
@@ -161,6 +164,7 @@ struct HfTaskD0 {
161164 ConfigurableAxis thnConfigAxisFV0A{" thnConfigAxisFV0A" , {2001 , -1.5 , 1999.5 }, " axis for FV0-A amplitude (a.u.)" };
162165 ConfigurableAxis thnConfigAxisFDD{" thnConfigAxisFDD" , {200 , 0 ., 4000 .}, " axis for FDD amplitude (a.u.)" };
163166 ConfigurableAxis thnConfigAxisZN{" thnConfigAxisZN" , {510 , -1.5 , 49.5 }, " axis for ZN energy (a.u.)" };
167+ ConfigurableAxis thnConfigAxisTimeZN{" thnConfigAxisTimeZN" , {700 , -35 ., 35 .}, " axis for ZN energy (a.u.)" };
164168
165169 HistogramRegistry registry{
166170 " registry" ,
@@ -248,7 +252,10 @@ struct HfTaskD0 {
248252 LOGP (fatal, " DCAFitterN and KFParticle can not be enabled at a time." );
249253 }
250254 if ((storeCentrality || storeOccupancyAndIR) && !(doprocessDataWithDCAFitterNCent || doprocessMcWithDCAFitterNCent || doprocessDataWithDCAFitterNMlCent || doprocessMcWithDCAFitterNMlCent || doprocessDataWithDCAFitterNWithUpc || doprocessDataWithDCAFitterNMlWithUpc)) {
251- LOGP (fatal, " Can't enable the storeCentrality and storeOccupancu without cent process or UPC process" );
255+ LOGP (fatal, " Can't enable the storeCentrality and storeOccupancy without cent process or UPC process" );
256+ }
257+ if ((storeZdcEnergy || storeZdcTime) && !(doprocessDataWithDCAFitterNWithUpc || doprocessDataWithDCAFitterNMlWithUpc)) {
258+ LOGP (fatal, " Can't enable the storeZdcEnergy and storeZdcTime without UPC process" );
252259 }
253260 auto vbins = (std::vector<double >)binsPt;
254261 registry.add (" hMass" , " 2-prong candidates;inv. mass (#pi K) (GeV/#it{c}^{2});entries" , {HistType::kTH2F , {{500 , 0 ., 5 .}, {vbins, " #it{p}_{T} (GeV/#it{c})" }}});
@@ -309,8 +316,10 @@ struct HfTaskD0 {
309316 const AxisSpec thnAxisFV0A{thnConfigAxisFV0A, " FV0-A amplitude" };
310317 const AxisSpec thnAxisFDDA{thnConfigAxisFDD, " FDD-A amplitude" };
311318 const AxisSpec thnAxisFDDC{thnConfigAxisFDD, " FDD-C amplitude" };
312- const AxisSpec thnAxisZNA{thnConfigAxisZN, " ZNA energy" };
313- const AxisSpec thnAxisZNC{thnConfigAxisZN, " ZNC energy" };
319+ const AxisSpec thnAxisEnergyZNA{thnConfigAxisZN, " ZNA energy" };
320+ const AxisSpec thnAxisEnergyZNC{thnConfigAxisZN, " ZNC energy" };
321+ const AxisSpec thnAxisTimeZNA{thnConfigAxisTimeZN, " ZNA Time" };
322+ const AxisSpec thnAxisTimeZNC{thnConfigAxisTimeZN, " ZNC Time" };
314323
315324 if (doprocessMcWithDCAFitterN || doprocessMcWithDCAFitterNCent || doprocessMcWithKFParticle || doprocessMcWithDCAFitterNMl || doprocessMcWithDCAFitterNMlCent || doprocessMcWithKFParticleMl) {
316325 std::vector<AxisSpec> axesAcc = {thnAxisGenPtD, thnAxisGenPtB, thnAxisY, thnAxisOrigin, thnAxisNumPvContr};
@@ -367,9 +376,15 @@ struct HfTaskD0 {
367376 axes.push_back (thnAxisFV0A);
368377 axes.push_back (thnAxisFDDA);
369378 axes.push_back (thnAxisFDDC);
370- axes.push_back (thnAxisZNA);
371- axes.push_back (thnAxisZNC);
372379 axes.push_back (thnAxisNumPvContr);
380+ if (storeZdcEnergy) {
381+ axes.push_back (thnAxisEnergyZNA);
382+ axes.push_back (thnAxisEnergyZNC);
383+ }
384+ if (storeZdcTime) {
385+ axes.push_back (thnAxisTimeZNA);
386+ axes.push_back (thnAxisTimeZNC);
387+ }
373388 }
374389
375390 if (applyMl) {
@@ -381,9 +396,39 @@ struct HfTaskD0 {
381396 }
382397
383398 registry.add (" Data/fitInfo/ampFT0A_vs_ampFT0C" , " FT0-A vs FT0-C amplitude;FT0-A amplitude (a.u.);FT0-C amplitude (a.u.)" , {HistType::kTH2F , {{2500 , 0 ., 250 }, {2500 , 0 ., 250 }}});
384- registry.add (" Data/zdc/energyZNA_vs_energyZNC" , " ZNA vs ZNC common energy;E_{ZNA}^{common} (a.u.);E_{ZNC}^{common} (a.u.)" , {HistType::kTH2F , {{200 , 0 ., 20 }, {200 , 0 ., 20 }}});
399+ registry.add (" Data/zdc/energyZNA_vs_energyZNC" , " ZNA vs ZNC common energy;E_{ZNA}^{common} (a.u.);E_{ZNC}^{common} (a.u.)" , {HistType::kTH2F , {{200 , 0 ., 200 }, {1000 , 0 ., 2000 }}});
400+ registry.add (" Data/zdc/timeZNA_vs_timeZNC" , " ZNA vs ZNC time;ZNA Time;ZNC time" , {HistType::kTH2F , {{700 , -35 ., 35 .}, {700 , -35 ., 35 .}}});
385401 registry.add (" Data/hUpcGapAfterSelection" , " UPC gap type after selection;Gap type;Counts" , {HistType::kTH1F , {{7 , -1.5 , 5.5 }}});
386- registry.add (" Data/hGapVsEta" , " UPC gap vs Eta;Gap type;Eta" , {HistType::kTH2F , {{7 , -1.5 , 5.5 }, {50 , -1 ., 1 .}}});
402+ registry.add (" Data/hGapVsEtaTrack0" , " UPC gap vs Eta;Gap type;Eta" , {HistType::kTH2F , {{7 , -1.5 , 5.5 }, {50 , -1 ., 1 .}}});
403+ registry.add (" Data/hGapVsEtaTrack1" , " UPC gap vs Eta;Gap type;Eta" , {HistType::kTH2F , {{7 , -1.5 , 5.5 }, {50 , -1 ., 1 .}}});
404+
405+ registry.add (" Data/hTPCnSigProng0Pion_GapA" , " Gap A Prong 0;P (GeV/c) ;TPC nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
406+ registry.add (" Data/hTPCnSigProng1Kaon_GapA" , " Gap A Prong 1;P (GeV/c) ;TPC nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
407+ registry.add (" Data/hTPCnSigProng0Kaon_GapA" , " Gap A Prong 0;P (GeV/c) ;TPC nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
408+ registry.add (" Data/hTPCnSigProng1Pion_GapA" , " Gap A Prong 1;P (GeV/c) ;TPC nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
409+ registry.add (" Data/hTPCnSigProng0Pion_GapC" , " Gap C Prong 0;P (GeV/c) ;TPC nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
410+ registry.add (" Data/hTPCnSigProng1Kaon_GapC" , " Gap C Prong 1;P (GeV/c) ;TPC nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
411+ registry.add (" Data/hTPCnSigProng0Kaon_GapC" , " Gap C Prong 0;P (GeV/c) ;TPC nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
412+ registry.add (" Data/hTPCnSigProng1Pion_GapC" , " Gap C Prong 1;P (GeV/c) ;TPC nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
413+
414+ registry.add (" Data/hTOFnSigProng0Pion_GapA" , " Gap A Prong 0;P (GeV/c) ;TOF nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
415+ registry.add (" Data/hTOFnSigProng1Kaon_GapA" , " Gap A Prong 1;P (GeV/c) ;TOF nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
416+ registry.add (" Data/hTOFnSigProng0Kaon_GapA" , " Gap A Prong 0;P (GeV/c) ;TOF nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
417+ registry.add (" Data/hTOFnSigProng1Pion_GapA" , " Gap A Prong 1;P (GeV/c) ;TOF nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
418+ registry.add (" Data/hTOFnSigProng0Pion_GapC" , " Gap C Prong 0;P (GeV/c) ;TOF nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
419+ registry.add (" Data/hTOFnSigProng1Kaon_GapC" , " Gap C Prong 1;P (GeV/c) ;TOF nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
420+ registry.add (" Data/hTOFnSigProng0Kaon_GapC" , " Gap C Prong 0;P (GeV/c) ;TOF nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
421+ registry.add (" Data/hTOFnSigProng1Pion_GapC" , " Gap C Prong 1;P (GeV/c) ;TOF nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {120 , -6 ., 6 .}}});
422+
423+ registry.add (" Data/hTpcTofnSigProng0Pion_GapA" , " Gap A Prong 0;P (GeV/c) ;TpcTof nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {50 , 0 ., 10 .}}});
424+ registry.add (" Data/hTpcTofnSigProng1Kaon_GapA" , " Gap A Prong 1;P (GeV/c) ;TpcTof nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {50 , 0 ., 10 .}}});
425+ registry.add (" Data/hTpcTofnSigProng0Kaon_GapA" , " Gap A Prong 0;P (GeV/c) ;TpcTof nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {50 , 0 ., 10 .}}});
426+ registry.add (" Data/hTpcTofnSigProng1Pion_GapA" , " Gap A Prong 1;P (GeV/c) ;TpcTof nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {50 , 0 ., 10 .}}});
427+ registry.add (" Data/hTpcTofnSigProng0Pion_GapC" , " Gap C Prong 0;P (GeV/c) ;TpcTof nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {50 , 0 ., 10 .}}});
428+ registry.add (" Data/hTpcTofnSigProng1Kaon_GapC" , " Gap C Prong 1;P (GeV/c) ;TpcTof nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {50 , 0 ., 10 .}}});
429+ registry.add (" Data/hTpcTofnSigProng0Kaon_GapC" , " Gap C Prong 0;P (GeV/c) ;TpcTof nSigma Pion" , {HistType::kTH2F , {{100 , 0 , 50 }, {50 , 0 ., 10 .}}});
430+ registry.add (" Data/hTpcTofnSigProng1Pion_GapC" , " Gap C Prong 1;P (GeV/c) ;TpcTof nSigma Kaon" , {HistType::kTH2F , {{100 , 0 , 50 }, {50 , 0 ., 10 .}}});
431+
387432 registry.add (" Data/hGapVsRap" , " UPC gap vs Eta;Gap type;Eta" , {HistType::kTH2F , {{7 , -1.5 , 5.5 }, {50 , -1 ., 1 .}}});
388433
389434 hfEvSel.addHistograms (registry);
@@ -579,7 +624,8 @@ struct HfTaskD0 {
579624 BCsType const & bcs,
580625 aod::FT0s const & ft0s,
581626 aod::FV0As const & fv0as,
582- aod::FDDs const & fdds)
627+ aod::FDDs const & fdds,
628+ TracksWPid const &)
583629 {
584630 for (const auto & collision : collisions) {
585631 float centrality{-1 .f };
@@ -599,7 +645,6 @@ struct HfTaskD0 {
599645 if (gapResult.bc ) {
600646 bcForUPC = *(gapResult.bc );
601647 }
602-
603648 // Get FIT information from the UPC BC
604649 upchelpers::FITInfo fitInfo{};
605650 udhelpers::getFITinfo (fitInfo, bcForUPC, bcs, ft0s, fv0as, fdds);
@@ -608,13 +653,18 @@ struct HfTaskD0 {
608653 const bool hasZdc = bcForUPC.has_zdc ();
609654 float zdcEnergyZNA = -1 .f ;
610655 float zdcEnergyZNC = -1 .f ;
656+ float zdcTimeZNA = -999 .f ;
657+ float zdcTimeZNC = -999 .f ;
658+
611659 if (hasZdc) {
612660 const auto & zdc = bcForUPC.zdc ();
613661 zdcEnergyZNA = zdc.energyCommonZNA ();
614662 zdcEnergyZNC = zdc.energyCommonZNC ();
663+ zdcTimeZNA = zdc.timeZNA ();
664+ zdcTimeZNC = zdc.timeZNC ();
615665 registry.fill (HIST (" Data/zdc/energyZNA_vs_energyZNC" ), zdcEnergyZNA, zdcEnergyZNC);
666+ registry.fill (HIST (" Data/zdc/timeZNA_vs_timeZNC" ), zdcTimeZNA, zdcTimeZNC);
616667 }
617-
618668 registry.fill (HIST (" Data/fitInfo/ampFT0A_vs_ampFT0C" ), fitInfo.ampFT0A , fitInfo.ampFT0C );
619669 registry.fill (HIST (" Data/hUpcGapAfterSelection" ), gap);
620670
@@ -637,9 +687,50 @@ struct HfTaskD0 {
637687 const float massD0 = HfHelper::invMassD0ToPiK (candidate);
638688 const float massD0bar = HfHelper::invMassD0barToKPi (candidate);
639689 const auto ptCandidate = candidate.pt ();
640- registry.fill (HIST (" Data/hGapVsEta" ), gap, candidate.eta ());
690+
691+ auto track0 = candidate.template prong0_as <TracksWPid>();
692+ auto track1 = candidate.template prong1_as <TracksWPid>();
693+
694+ registry.fill (HIST (" Data/hGapVsEtaTrack0" ), gap, track0.eta ());
695+ registry.fill (HIST (" Data/hGapVsEtaTrack1" ), gap, track1.eta ());
641696 registry.fill (HIST (" Data/hGapVsRap" ), gap, HfHelper::yD0 (candidate));
642697
698+ if (gap == 0 && candidate.isSelD0 () >= selectionFlagD0) { // A side // D0 --> K-Pi+
699+ registry.fill (HIST (" Data/hTPCnSigProng0Pion_GapA" ), track0.p (), track0.tpcNSigmaPi ());
700+ registry.fill (HIST (" Data/hTPCnSigProng1Kaon_GapA" ), track1.p (), track1.tpcNSigmaKa ());
701+ registry.fill (HIST (" Data/hTOFnSigProng0Pion_GapA" ), track0.p (), track0.tofNSigmaPi ());
702+ registry.fill (HIST (" Data/hTOFnSigProng1Kaon_GapA" ), track1.p (), track1.tofNSigmaKa ());
703+ registry.fill (HIST (" Data/hTpcTofnSigProng0Pion_GapA" ), track0.p (), track0.tpcTofNSigmaPi ());
704+ registry.fill (HIST (" Data/hTpcTofnSigProng1Kaon_GapA" ), track1.p (), track1.tpcTofNSigmaKa ());
705+ }
706+
707+ if (gap == 0 && candidate.isSelD0bar () >= selectionFlagD0) { // A side // D0-bar --> K+Pi-
708+ registry.fill (HIST (" Data/hTPCnSigProng0Kaon_GapA" ), track0.p (), track0.tpcNSigmaKa ());
709+ registry.fill (HIST (" Data/hTPCnSigProng1Pion_GapA" ), track1.p (), track1.tpcNSigmaPi ());
710+ registry.fill (HIST (" Data/hTOFnSigProng0Kaon_GapA" ), track0.p (), track0.tofNSigmaKa ());
711+ registry.fill (HIST (" Data/hTOFnSigProng1Pion_GapA" ), track1.p (), track1.tofNSigmaPi ());
712+ registry.fill (HIST (" Data/hTpcTofnSigProng0Kaon_GapA" ), track0.p (), track0.tpcTofNSigmaKa ());
713+ registry.fill (HIST (" Data/hTpcTofnSigProng1Pion_GapA" ), track1.p (), track1.tpcTofNSigmaPi ());
714+ }
715+
716+ if (gap == 1 && candidate.isSelD0 () >= selectionFlagD0) { // C side // D0 --> K-Pi+
717+ registry.fill (HIST (" Data/hTPCnSigProng0Pion_GapC" ), track0.p (), track0.tpcNSigmaPi ());
718+ registry.fill (HIST (" Data/hTPCnSigProng1Kaon_GapC" ), track1.p (), track1.tpcNSigmaKa ());
719+ registry.fill (HIST (" Data/hTOFnSigProng0Pion_GapC" ), track0.p (), track0.tofNSigmaPi ());
720+ registry.fill (HIST (" Data/hTOFnSigProng1Kaon_GapC" ), track1.p (), track1.tofNSigmaKa ());
721+ registry.fill (HIST (" Data/hTpcTofnSigProng0Pion_GapC" ), track0.p (), track0.tpcTofNSigmaPi ());
722+ registry.fill (HIST (" Data/hTpcTofnSigProng1Kaon_GapC" ), track1.p (), track1.tpcTofNSigmaKa ());
723+ }
724+
725+ if (gap == 1 && candidate.isSelD0bar () >= selectionFlagD0) { // C side // D0-bar --> K+Pi-
726+ registry.fill (HIST (" Data/hTPCnSigProng0Kaon_GapC" ), track0.p (), track0.tpcNSigmaKa ());
727+ registry.fill (HIST (" Data/hTPCnSigProng1Pion_GapC" ), track1.p (), track1.tpcNSigmaPi ());
728+ registry.fill (HIST (" Data/hTOFnSigProng0Kaon_GapC" ), track0.p (), track0.tofNSigmaKa ());
729+ registry.fill (HIST (" Data/hTOFnSigProng1Pion_GapC" ), track1.p (), track1.tofNSigmaPi ());
730+ registry.fill (HIST (" Data/hTpcTofnSigProng0Kaon_GapC" ), track0.p (), track0.tpcTofNSigmaKa ());
731+ registry.fill (HIST (" Data/hTpcTofnSigProng1Pion_GapC" ), track1.p (), track1.tpcTofNSigmaPi ());
732+ }
733+
643734 if (candidate.isSelD0 () >= selectionFlagD0) {
644735 registry.fill (HIST (" hMass" ), massD0, ptCandidate);
645736 registry.fill (HIST (" hMassFinerBinning" ), massD0, ptCandidate);
@@ -654,11 +745,13 @@ struct HfTaskD0 {
654745 // Fill THnSparse with structure matching histogram axes: [mass, pt, (mlScores if FillMl), rapidity, d0Type, (cent if storeCentrality), (occ, ir if storeOccupancyAndIR), gapType, FT0A, FT0C, FV0A, FDDA, FDDC, ZNA, ZNC]
655746 auto fillTHnData = [&](float mass, int d0Type) {
656747 // Pre-calculate vector size to avoid reallocations
657- constexpr int NAxesBase = 13 ; // mass, pt, rapidity, d0Type, gapType, FT0A, FT0C, FV0A, FDDA, FDDC, ZNA, ZNC, nPVcontr
748+ constexpr int NAxesBase = 11 ; // mass, pt, rapidity, d0Type, gapType, FT0A, FT0C, FV0A, FDDA, FDDC, ZNA, ZNC, nPVcontr
658749 constexpr int NAxesMl = FillMl ? 3 : 0 ; // 3 ML scores if FillMl
659750 int const nAxesCent = storeCentrality ? 1 : 0 ; // centrality if storeCentrality
660751 int const nAxesOccIR = storeOccupancyAndIR ? 2 : 0 ; // occupancy and IR if storeOccupancyAndIR
661- int const nAxesTotal = NAxesBase + NAxesMl + nAxesCent + nAxesOccIR;
752+ int const nAxesZdcEnergy = storeZdcEnergy ? 2 : 0 ; // ZDC energy if storeZdcEnergy
753+ int const nAxesZdcTime = storeZdcTime ? 2 : 0 ; // ZDC time if storeZdctime
754+ int const nAxesTotal = NAxesBase + NAxesMl + nAxesCent + nAxesOccIR + nAxesZdcEnergy + nAxesZdcTime;
662755
663756 std::vector<double > valuesToFill;
664757 valuesToFill.reserve (nAxesTotal);
@@ -689,10 +782,15 @@ struct HfTaskD0 {
689782 valuesToFill.push_back (static_cast <double >(fitInfo.ampFV0A ));
690783 valuesToFill.push_back (static_cast <double >(fitInfo.ampFDDA ));
691784 valuesToFill.push_back (static_cast <double >(fitInfo.ampFDDC ));
692- valuesToFill.push_back (static_cast <double >(zdcEnergyZNA));
693- valuesToFill.push_back (static_cast <double >(zdcEnergyZNC));
694785 valuesToFill.push_back (static_cast <double >(numPvContributors));
695-
786+ if (storeZdcEnergy) {
787+ valuesToFill.push_back (static_cast <double >(zdcEnergyZNA));
788+ valuesToFill.push_back (static_cast <double >(zdcEnergyZNC));
789+ }
790+ if (storeZdcTime) {
791+ valuesToFill.push_back (static_cast <double >(zdcTimeZNA));
792+ valuesToFill.push_back (static_cast <double >(zdcTimeZNC));
793+ }
696794 if constexpr (FillMl) {
697795 registry.get <THnSparse>(HIST (" hBdtScoreVsMassVsPtVsPtBVsYVsOriginVsD0Type" ))->Fill (valuesToFill.data ());
698796 } else {
@@ -1181,9 +1279,11 @@ struct HfTaskD0 {
11811279 aod::FT0s const & ft0s,
11821280 aod::FV0As const & fv0as,
11831281 aod::FDDs const & fdds,
1184- aod::Zdcs const & /* zdcs*/ )
1282+ TracksWPid const & tracks,
1283+ aod::Zdcs const & /* zdcs*/
1284+ )
11851285 {
1186- runAnalysisPerCollisionDataWithUpc<false >(collisions, selectedD0Candidates, bcs, ft0s, fv0as, fdds);
1286+ runAnalysisPerCollisionDataWithUpc<false >(collisions, selectedD0Candidates, bcs, ft0s, fv0as, fdds, tracks );
11871287 }
11881288 PROCESS_SWITCH (HfTaskD0, processDataWithDCAFitterNWithUpc, " Process real data with DCAFitterN w/o ML with UPC" , false );
11891289
@@ -1194,9 +1294,10 @@ struct HfTaskD0 {
11941294 aod::FT0s const & ft0s,
11951295 aod::FV0As const & fv0as,
11961296 aod::FDDs const & fdds,
1297+ TracksWPid const & tracks,
11971298 aod::Zdcs const & /* zdcs*/ )
11981299 {
1199- runAnalysisPerCollisionDataWithUpc<true >(collisions, selectedD0CandidatesMl, bcs, ft0s, fv0as, fdds);
1300+ runAnalysisPerCollisionDataWithUpc<true >(collisions, selectedD0CandidatesMl, bcs, ft0s, fv0as, fdds, tracks );
12001301 }
12011302 PROCESS_SWITCH (HfTaskD0, processDataWithDCAFitterNMlWithUpc, " Process real data with DCAFitterN and ML with UPC" , false );
12021303};
0 commit comments