@@ -115,6 +115,9 @@ DECLARE_SOA_COLUMN(FlagMc, flagMc, int8_t); //! MC match
115115DECLARE_SOA_COLUMN (OriginMcRec, originMcRec, int8_t ); // ! MC origin for reconstructed candidates
116116DECLARE_SOA_COLUMN (FlagMcDecayChanRec, flagMcDecayChanRec, int8_t ); // ! Resonant MC decay channel for reconstructed candidates
117117DECLARE_SOA_COLUMN (OriginMcGen, originMcGen, int8_t ); // ! MC origin for generated particles
118+ DECLARE_SOA_COLUMN (FlagMcDecayChanGen, flagMcDecayChanGen, int8_t ); // ! Resonant MC decay channel for generated candidates
119+ DECLARE_SOA_COLUMN (CtGen, ctGen, float ); // ! Generated ct computed wrt to c-deuteron production vertex, which can be either PV (prompt) or B-hadron decay vertex (non-prompt)
120+ DECLARE_SOA_COLUMN (CtRec, ctRec, float ); // ! Reconstructed ct computed wrt to PV
118121DECLARE_SOA_COLUMN (Cent, cent, float ); // ! Centrality
119122DECLARE_SOA_COLUMN (VtxZ, vtxZ, float ); // ! Vertex Z
120123DECLARE_SOA_COLUMN (GIndexCol, gIndexCol , int ); // ! Global index for the collision
@@ -142,11 +145,13 @@ DECLARE_SOA_TABLE(HfCandCdLite, "AOD", "HFCANDCDLITE",
142145 full::NSigmaTpcPr,
143146 full::NSigmaItsDe,
144147 full::NSigmaTofDe,
148+ full::CtRec,
145149 full::CandidateSelFlag,
146150 full::CandidateSign,
147151 full::FlagMc,
148152 full::OriginMcRec,
149153 full::FlagMcDecayChanRec,
154+ full::CtGen,
150155 full::Cent);
151156
152157// full table for local Rotation & Event Mixing
@@ -174,11 +179,13 @@ DECLARE_SOA_TABLE(HfCandCdFull, "AOD", "HFCANDCDFULL",
174179 full::NSigmaTofPi,
175180 full::NSigmaTpcKa,
176181 full::NSigmaTofKa,
182+ full::CtRec,
177183 full::CandidateSelFlag,
178184 full::CandidateSign,
179185 full::FlagMc,
180186 full::OriginMcRec,
181187 full::FlagMcDecayChanRec,
188+ full::CtGen,
182189 full::Cent,
183190 full::VtxZ,
184191 full::GIndexCol,
@@ -191,6 +198,8 @@ DECLARE_SOA_TABLE(HfCandCdGen, "AOD", "HFCANDCDGEN",
191198 full::Y,
192199 full::FlagMc,
193200 full::OriginMcGen,
201+ full::FlagMcDecayChanGen,
202+ full::CtGen,
194203 full::Cent,
195204 full::VtxZ,
196205 full::McCollisionId);
@@ -243,10 +252,11 @@ struct HfTaskCd {
243252 ConfigurableAxis thnAxisRapidity{" thnAxisRapidity" , {20 , -1 , 1 }, " Cand. rapidity bins" };
244253 ConfigurableAxis thnConfigAxisGenPtB{" thnConfigAxisGenPtB" , {1000 , 0 , 100 }, " Gen Pt B" };
245254 ConfigurableAxis thnConfigAxisNumPvContr{" thnConfigAxisNumPvContr" , {200 , -0.5 , 199.5 }, " Number of PV contributors" };
255+ ConfigurableAxis thnConfigAxisCt{" thnConfigAxisCt" , {500 , 0 ., 5000 .}, " " };
246256
247- constexpr static double MassCDeuteron = 3.226 ;
248257 constexpr static std::string_view SignalFolders[] = {" signal" , " prompt" , " nonprompt" };
249258 constexpr static std::string_view SignalSuffixes[] = {" " , " Prompt" , " NonPrompt" };
259+ const float cmToMum = 1 .e4 ;
250260
251261 enum SignalClasses : int {
252262 Signal = 0 ,
@@ -257,30 +267,30 @@ struct HfTaskCd {
257267 HistogramRegistry registry{
258268 " registry" ,
259269 {// / mass candidate
260- {" Data/hMass" , " 3-prong candidates;inv. mass (de K #pi) (GeV/#it{c}^{2})" , {HistType::kTH1F , {{400 , 2.4 , 4.4 }}}},
270+ {" Data/hMass" , " 3-prong candidates;inv. mass (de K #pi) (GeV/#it{c}^{2})" , {HistType::kTH1D , {{400 , 2.4 , 4.4 }}}},
261271 // / pT
262- {" Data/hPt" , " 3-prong candidates;candidate #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}}},
263- {" Data/hPtProng0" , " 3-prong candidates;prong 0 #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}}},
264- {" Data/hPtProng1" , " 3-prong candidates;prong 1 #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}}},
265- {" Data/hPtProng2" , " 3-prong candidates;prong 2 #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}}},
272+ {" Data/hPt" , " 3-prong candidates;candidate #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
273+ {" Data/hPtProng0" , " 3-prong candidates;prong 0 #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
274+ {" Data/hPtProng1" , " 3-prong candidates;prong 1 #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
275+ {" Data/hPtProng2" , " 3-prong candidates;prong 2 #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}}},
266276 // / DCAxy to prim. vertex prongs
267- {" Data/hd0Prong0" , " 3-prong candidates;prong 0 DCAxy to prim. vertex (cm);entries" , {HistType::kTH1F , {{600 , -0.4 , 0.4 }}}},
268- {" Data/hd0Prong1" , " 3-prong candidates;prong 1 DCAxy to prim. vertex (cm);entries" , {HistType::kTH1F , {{600 , -0.4 , 0.4 }}}},
269- {" Data/hd0Prong2" , " 3-prong candidates;prong 2 DCAxy to prim. vertex (cm);entries" , {HistType::kTH1F , {{600 , -0.4 , 0.4 }}}},
277+ {" Data/hd0Prong0" , " 3-prong candidates;prong 0 DCAxy to prim. vertex (cm);entries" , {HistType::kTH1D , {{600 , -0.4 , 0.4 }}}},
278+ {" Data/hd0Prong1" , " 3-prong candidates;prong 1 DCAxy to prim. vertex (cm);entries" , {HistType::kTH1D , {{600 , -0.4 , 0.4 }}}},
279+ {" Data/hd0Prong2" , " 3-prong candidates;prong 2 DCAxy to prim. vertex (cm);entries" , {HistType::kTH1D , {{600 , -0.4 , 0.4 }}}},
270280 // / decay length candidate
271- {" Data/hDecLength" , " 3-prong candidates;decay length (cm);entries" , {HistType::kTH1F , {{400 , 0 ., 1 .}}}},
281+ {" Data/hDecLength" , " 3-prong candidates;decay length (cm);entries" , {HistType::kTH1D , {{400 , 0 ., 1 .}}}},
272282 // / decay length xy candidate
273- {" Data/hDecLengthxy" , " 3-prong candidates;decay length xy (cm);entries" , {HistType::kTH1F , {{400 , 0 ., 1 .}}}},
283+ {" Data/hDecLengthxy" , " 3-prong candidates;decay length xy (cm);entries" , {HistType::kTH1D , {{400 , 0 ., 1 .}}}},
274284 // / cosine of pointing angle
275- {" Data/hCPA" , " 3-prong candidates;cosine of pointing angle;entries" , {HistType::kTH1F , {{110 , -1.1 , 1.1 }}}},
285+ {" Data/hCPA" , " 3-prong candidates;cosine of pointing angle;entries" , {HistType::kTH1D , {{110 , -1.1 , 1.1 }}}},
276286 // / cosine of pointing angle xy
277- {" Data/hCPAxy" , " 3-prong candidates;cosine of pointing angle xy;entries" , {HistType::kTH1F , {{110 , -1.1 , 1.1 }}}},
287+ {" Data/hCPAxy" , " 3-prong candidates;cosine of pointing angle xy;entries" , {HistType::kTH1D , {{110 , -1.1 , 1.1 }}}},
278288 // / Chi 2 PCA to sec. vertex
279- {" Data/hDca2" , " 3-prong candidates;prong Chi2PCA to sec. vertex (cm);entries" , {HistType::kTH1F , {{400 , 0 ., 20 .}}}},
289+ {" Data/hDca2" , " 3-prong candidates;prong Chi2PCA to sec. vertex (cm);entries" , {HistType::kTH1D , {{400 , 0 ., 20 .}}}},
280290 // / eta
281- {" Data/hEta" , " 3-prong candidates;#it{#eta};entries" , {HistType::kTH1F , {{100 , -2 ., 2 .}}}},
291+ {" Data/hEta" , " 3-prong candidates;#it{#eta};entries" , {HistType::kTH1D , {{100 , -2 ., 2 .}}}},
282292 // / phi
283- {" Data/hPhi" , " 3-prong candidates;#it{#Phi};entries" , {HistType::kTH1F , {{100 , 0 ., 6.3 }}}}}};
293+ {" Data/hPhi" , " 3-prong candidates;#it{#Phi};entries" , {HistType::kTH1D , {{100 , 0 ., 6.3 }}}}}};
284294
285295 HistogramRegistry qaRegistry{" QAHistos" , {}, OutputObjHandlingPolicy::AnalysisObject};
286296
@@ -308,28 +318,28 @@ struct HfTaskCd {
308318 }
309319 };
310320
311- addHistogramsRec (" hMass" , " inv. mass (de K #pi) (GeV/#it{c}^{2})" , " " , {HistType::kTH1F , {{400 , 2.4 , 4.4 }}});
312- addHistogramsRec (" hPt" , " #it{p}_{T}^{rec.} (GeV/#it{c})" , " entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}});
313- addHistogramsGen (" hPt" , " #it{p}_{T}^{gen.} (GeV/#it{c})" , " entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}});
321+ addHistogramsRec (" hMass" , " inv. mass (de K #pi) (GeV/#it{c}^{2})" , " " , {HistType::kTH1D , {{400 , 2.4 , 4.4 }}});
322+ addHistogramsRec (" hPt" , " #it{p}_{T}^{rec.} (GeV/#it{c})" , " entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}});
323+ addHistogramsGen (" hPt" , " #it{p}_{T}^{gen.} (GeV/#it{c})" , " entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}});
314324 if (!isData) {
315- registry.add (" MC/generated/signal/hPtGenSig" , " 3-prong candidates (matched);#it{p}_{T}^{gen.} (GeV/#it{c});entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}});
325+ registry.add (" MC/generated/signal/hPtGenSig" , " 3-prong candidates (matched);#it{p}_{T}^{gen.} (GeV/#it{c});entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}});
316326 }
317- addHistogramsRec (" hPtProng0" , " prong 0 #it{p}_{T} (GeV/#it{c})" , " entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}});
318- addHistogramsRec (" hPtProng1" , " prong 1 #it{p}_{T} (GeV/#it{c})" , " entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}});
319- addHistogramsRec (" hPtProng2" , " prong 2 #it{p}_{T} (GeV/#it{c})" , " entries" , {HistType::kTH1F , {{360 , 0 ., 36 .}}});
320- addHistogramsRec (" hd0Prong0" , " prong 0 DCAxy to prim. vertex (cm)" , " entries" , {HistType::kTH1F , {{600 , -0.4 , 0.4 }}});
321- addHistogramsRec (" hd0Prong1" , " prong 1 DCAxy to prim. vertex (cm)" , " entries" , {HistType::kTH1F , {{600 , -0.4 , 0.4 }}});
322- addHistogramsRec (" hd0Prong2" , " prong 2 DCAxy to prim. vertex (cm)" , " entries" , {HistType::kTH1F , {{600 , -0.4 , 0.4 }}});
323- addHistogramsRec (" hDecLength" , " decay length (cm)" , " entries" , {HistType::kTH1F , {{400 , 0 ., 1 .}}});
324- addHistogramsRec (" hDecLengthxy" , " decay length xy (cm)" , " entries" , {HistType::kTH1F , {{400 , 0 ., 1 .}}});
325- addHistogramsRec (" hCPA" , " cosine of pointing angle" , " entries" , {HistType::kTH1F , {{110 , -1.1 , 1.1 }}});
326- addHistogramsRec (" hCPAxy" , " cosine of pointing angle xy" , " entries" , {HistType::kTH1F , {{110 , -1.1 , 1.1 }}});
327- addHistogramsRec (" hDca2" , " prong Chi2PCA to sec. vertex (cm)" , " entries" , {HistType::kTH1F , {{400 , 0 ., 20 .}}});
328- addHistogramsRec (" hEta" , " #it{#eta}" , " entries" , {HistType::kTH1F , {{100 , -2 ., 2 .}}});
329- addHistogramsGen (" hEta" , " #it{#eta}" , " entries" , {HistType::kTH1F , {{100 , -2 ., 2 .}}});
330- addHistogramsGen (" hY" , " #it{y}" , " entries" , {HistType::kTH1F , {{100 , -2 ., 2 .}}});
331- addHistogramsRec (" hPhi" , " #it{#Phi}" , " entries" , {HistType::kTH1F , {{100 , 0 ., 6.3 }}});
332- addHistogramsGen (" hPhi" , " #it{#Phi}" , " entries" , {HistType::kTH1F , {{100 , 0 ., 6.3 }}});
327+ addHistogramsRec (" hPtProng0" , " prong 0 #it{p}_{T} (GeV/#it{c})" , " entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}});
328+ addHistogramsRec (" hPtProng1" , " prong 1 #it{p}_{T} (GeV/#it{c})" , " entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}});
329+ addHistogramsRec (" hPtProng2" , " prong 2 #it{p}_{T} (GeV/#it{c})" , " entries" , {HistType::kTH1D , {{360 , 0 ., 36 .}}});
330+ addHistogramsRec (" hd0Prong0" , " prong 0 DCAxy to prim. vertex (cm)" , " entries" , {HistType::kTH1D , {{600 , -0.4 , 0.4 }}});
331+ addHistogramsRec (" hd0Prong1" , " prong 1 DCAxy to prim. vertex (cm)" , " entries" , {HistType::kTH1D , {{600 , -0.4 , 0.4 }}});
332+ addHistogramsRec (" hd0Prong2" , " prong 2 DCAxy to prim. vertex (cm)" , " entries" , {HistType::kTH1D , {{600 , -0.4 , 0.4 }}});
333+ addHistogramsRec (" hDecLength" , " decay length (cm)" , " entries" , {HistType::kTH1D , {{400 , 0 ., 1 .}}});
334+ addHistogramsRec (" hDecLengthxy" , " decay length xy (cm)" , " entries" , {HistType::kTH1D , {{400 , 0 ., 1 .}}});
335+ addHistogramsRec (" hCPA" , " cosine of pointing angle" , " entries" , {HistType::kTH1D , {{110 , -1.1 , 1.1 }}});
336+ addHistogramsRec (" hCPAxy" , " cosine of pointing angle xy" , " entries" , {HistType::kTH1D , {{110 , -1.1 , 1.1 }}});
337+ addHistogramsRec (" hDca2" , " prong Chi2PCA to sec. vertex (cm)" , " entries" , {HistType::kTH1D , {{400 , 0 ., 20 .}}});
338+ addHistogramsRec (" hEta" , " #it{#eta}" , " entries" , {HistType::kTH1D , {{100 , -2 ., 2 .}}});
339+ addHistogramsGen (" hEta" , " #it{#eta}" , " entries" , {HistType::kTH1D , {{100 , -2 ., 2 .}}});
340+ addHistogramsGen (" hY" , " #it{y}" , " entries" , {HistType::kTH1D , {{100 , -2 ., 2 .}}});
341+ addHistogramsRec (" hPhi" , " #it{#Phi}" , " entries" , {HistType::kTH1D , {{100 , 0 ., 6.3 }}});
342+ addHistogramsGen (" hPhi" , " #it{#Phi}" , " entries" , {HistType::kTH1D , {{100 , 0 ., 6.3 }}});
333343
334344 // / mass candidate
335345 if (isData) {
@@ -398,10 +408,11 @@ struct HfTaskCd {
398408 const AxisSpec thnAxisCentrality{thnConfigAxisCentrality, " centrality (FT0C)" };
399409 const AxisSpec thnAxisY{thnAxisRapidity, " rapidity" };
400410 const AxisSpec thnAxisPtB{thnConfigAxisGenPtB, " #it{p}_{T}^{B} (GeV/#it{c})" };
411+ const AxisSpec thnAxisCt{thnConfigAxisCt, " #it{ct} (#mum)" };
401412 const AxisSpec thnAxisTracklets{thnConfigAxisNumPvContr, " Number of PV contributors" };
402413
403414 std::vector axesStd{thnAxisMass, thnAxisPt, thnAxisPtProng0, thnAxisPtProng1, thnAxisPtProng2, thnAxisChi2PCA, thnAxisDecLength, thnAxisCPA, thnAxisCentrality};
404- std::vector axesGen{thnAxisPt, thnAxisCentrality, thnAxisY, thnAxisTracklets, thnAxisPtB};
415+ std::vector axesGen{thnAxisPt, thnAxisCentrality, thnAxisY, thnAxisTracklets, thnAxisCt, thnAxisPtB};
405416 registry.add (" hnCdVars" , isData ? " THn for Reconstructed Cd candidates for data" : " THn for Reconstructed Cd candidates for MC" , HistType::kTHnSparseF , axesStd);
406417 if (!isData) {
407418 registry.add (" hnCdVarsGen" , " THn for Generated Cd" , HistType::kTHnSparseF , axesGen);
@@ -476,14 +487,28 @@ struct HfTaskCd {
476487 const int64_t timeStamp = bc.timestamp ();
477488
478489 for (const auto & candidate : groupedCdCandidates) {
490+ if (candidate.flagMcMatchRec () == 0 ) { // we skip combinatorial background
491+ continue ;
492+ }
479493 if (!TESTBIT (candidate.hfflag (), aod::hf_cand_3prong::DecayType::CdToDeKPi)) {
480494 continue ;
481495 }
482- const auto yCd = RecoDecay::y (candidate.pVector (), MassCDeuteron);
496+ const auto yCd = RecoDecay::y (candidate.pVector (), o2::constants::physics:: MassCDeuteron);
483497 if (yCandRecoMax >= 0 . && std::abs (yCd) > yCandRecoMax) {
484498 continue ;
485499 }
486500
501+ float ctGen{-1 .f }, ptGen{-1 .f };
502+ int pdgCodeProng0{0 };
503+ if (candidate.flagMcMatchRec () == hf_decay::hf_cand_3prong::DecayChannelMain::CDeuteronToDeKPi) {
504+ const auto & mcParticleProng0 = candidate.template prong0_as <HFTracksMc>().template mcParticle_as <CandCdMcGen>();
505+ pdgCodeProng0 = std::abs (mcParticleProng0.pdgCode ());
506+ const auto indexMother = RecoDecay::getMother (mcParticles, mcParticleProng0, o2::constants::physics::Pdg::kCDeuteron , true );
507+ const auto particleMother = mcParticles.rawIteratorAt (indexMother);
508+ ctGen = RecoDecay::ct (std::array{particleMother.px (), particleMother.py (), particleMother.pz ()}, RecoDecay::distance (std::array{particleMother.vx (), particleMother.vy (), particleMother.vz ()}, std::array{mcParticleProng0.vx (), mcParticleProng0.vy (), mcParticleProng0.vz ()}), o2::constants::physics::MassCDeuteron) * cmToMum;
509+ ptGen = particleMother.pt ();
510+ }
511+
487512 if (fillCandLiteTree || fillCandFullTree) {
488513 float invMassCd = 0 .f ;
489514 float invMassLc = 0 .f ;
@@ -566,11 +591,13 @@ struct HfTaskCd {
566591 nSigmaTpcPr,
567592 nSigmaItsDe,
568593 nSigmaTofDe,
594+ candidate.ct (o2::constants::physics::MassCDeuteron),
569595 candFlag,
570596 candSign,
571597 candidate.flagMcMatchRec (),
572598 candidate.originMcRec (),
573599 candidate.flagMcDecayChanRec (),
600+ ctGen,
574601 o2::hf_centrality::getCentralityColl (collision));
575602 }
576603
@@ -599,11 +626,13 @@ struct HfTaskCd {
599626 nSigmaTofPi,
600627 nSigmaTpcKa,
601628 nSigmaTofKa,
629+ candidate.ct (o2::constants::physics::MassCDeuteron),
602630 candFlag,
603631 candSign,
604632 candidate.flagMcMatchRec (),
605633 candidate.originMcRec (),
606634 candidate.flagMcDecayChanRec (),
635+ ctGen,
607636 o2::hf_centrality::getCentralityColl (collision),
608637 collision.posZ (),
609638 collision.globalIndex (),
@@ -615,11 +644,7 @@ struct HfTaskCd {
615644 continue ;
616645 }
617646
618- const auto & mcParticleProng0 = candidate.template prong0_as <HFTracksMc>().template mcParticle_as <McParticles3ProngMatched>();
619- const auto pdgCodeProng0 = std::abs (mcParticleProng0.pdgCode ());
620- const auto indexMother = RecoDecay::getMother (mcParticles, mcParticleProng0, o2::constants::physics::Pdg::kCDeuteron , true );
621- const auto particleMother = mcParticles.rawIteratorAt (indexMother);
622- registry.fill (HIST (" MC/generated/signal/hPtGenSig" ), particleMother.pt ());
647+ registry.fill (HIST (" MC/generated/signal/hPtGenSig" ), ptGen);
623648
624649 fillHistogramsRecSig<Signal>(candidate);
625650 if (candidate.originMcRec () == RecoDecay::OriginType::Prompt) {
@@ -664,7 +689,7 @@ struct HfTaskCd {
664689 if (std::abs (particle.flagMcMatchGen ()) != hf_decay::hf_cand_3prong::DecayChannelMain::CDeuteronToDeKPi) {
665690 continue ;
666691 }
667- const auto yGen = RecoDecay::y (particle.pVector (), MassCDeuteron);
692+ const auto yGen = RecoDecay::y (particle.pVector (), o2::constants::physics:: MassCDeuteron);
668693 if (yCandGenMax >= 0 . && std::abs (yGen) > yCandGenMax) {
669694 continue ;
670695 }
@@ -677,6 +702,8 @@ struct HfTaskCd {
677702 }
678703 const float cent = o2::hf_centrality::getCentralityGenColl (recoCollsPerMcColl);
679704 const float ptGenB = particle.originMcGen () == RecoDecay::OriginType::Prompt ? -1 .f : mcParticles.rawIteratorAt (particle.idxBhadMotherPart ()).pt ();
705+ const auto firstDau = particle.template daughters_as <CandCdMcGen>().begin ();
706+ const float ctGen = RecoDecay::ct (std::array{particle.px (), particle.py (), particle.pz ()}, RecoDecay::distance (std::array{particle.vx (), particle.vy (), particle.vz ()}, std::array{firstDau.vx (), firstDau.vy (), firstDau.vz ()}), o2::constants::physics::MassCDeuteron) * cmToMum;
680707
681708 fillHistogramsGen<Signal>(particle, yGen);
682709 if (particle.originMcGen () == RecoDecay::OriginType::Prompt) {
@@ -686,7 +713,7 @@ struct HfTaskCd {
686713 }
687714
688715 if (fillTHn) {
689- std::vector<double > valuesToFill{particle.pt (), cent, yGen, static_cast <double >(numPvContributors), ptGenB};
716+ std::vector<double > valuesToFill{particle.pt (), cent, yGen, static_cast <double >(numPvContributors), ctGen, ptGenB};
690717 registry.get <THnSparse>(HIST (" hnCdVarsGen" ))->Fill (valuesToFill.data ());
691718 }
692719
@@ -697,6 +724,8 @@ struct HfTaskCd {
697724 yGen,
698725 particle.flagMcMatchGen (),
699726 particle.originMcGen (),
727+ particle.flagMcDecayChanGen (),
728+ ctGen,
700729 cent,
701730 vtxZ,
702731 particle.mcCollision ().globalIndex ());
@@ -916,11 +945,13 @@ struct HfTaskCd {
916945 nSigmaTpcPr,
917946 nSigmaItsDe,
918947 nSigmaTofDe,
948+ candidate.ct (o2::constants::physics::MassCDeuteron),
919949 candFlag,
920950 candSign,
921951 0 ,
922952 0 ,
923953 -1 ,
954+ -1 .f ,
924955 cent);
925956 }
926957
@@ -950,11 +981,13 @@ struct HfTaskCd {
950981 nSigmaTofPi,
951982 nSigmaTpcKa,
952983 nSigmaTofKa,
984+ candidate.ct (o2::constants::physics::MassCDeuteron),
953985 candFlag,
954986 candSign,
955987 0 ,
956988 0 ,
957989 -1 ,
990+ -1 .f ,
958991 cent,
959992 collision.posZ (),
960993 collision.globalIndex (),
0 commit comments