@@ -263,15 +263,24 @@ struct HfTaskDstarToD0Pi {
263263 }
264264 }
265265
266- // D0toPiKPi0 study
266+ // inclusive D0ToPiKPi0 study
267267 if (doprocessMcWML && studyD0ToPiKPi0 && isCentStudy) {
268- registry.add (" D0toPiKPi0 /hDeltaInvMassVsPtVsCentVsBDTScore" , " #Delta #it{M}_{inv} Vs Pt Vs Cent Vs BDTScore for D0toPiKPi0 " , {HistType::kTHnSparseF , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }, {axisCentrality}, {axisBDTScoreBackground}, {axisBDTScorePrompt}, {axisBDTScoreNonPrompt}}}, true );
268+ registry.add (" D0ToPiKPi0 /hDeltaInvMassVsPtVsCentVsBDTScore" , " #Delta #it{M}_{inv} Vs Pt Vs Cent Vs BDTScore for D0ToPiKPi0 " , {HistType::kTHnSparseF , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }, {axisCentrality}, {axisBDTScoreBackground}, {axisBDTScorePrompt}, {axisBDTScoreNonPrompt}}}, true );
269269 } else if (doprocessMcWoMl && studyD0ToPiKPi0 && isCentStudy) {
270- registry.add (" D0toPiKPi0 /hDeltaInvMassDstar3D" , " #Delta #it{M}_{inv} D* Candidate for D0toPiKPi0 ; inv. mass ((#pi #pi k) - (#pi k)) (GeV/#it{c}^{2});#it{p}_{T} (GeV/#it{c}); FT0M centrality" , {HistType::kTH3F , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }, {axisCentrality}}}, true );
270+ registry.add (" D0ToPiKPi0 /hDeltaInvMassDstar3D" , " #Delta #it{M}_{inv} D* Candidate for D0ToPiKPi0 ; inv. mass ((#pi #pi k) - (#pi k)) (GeV/#it{c}^{2});#it{p}_{T} (GeV/#it{c}); FT0M centrality" , {HistType::kTH3F , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }, {axisCentrality}}}, true );
271271 } else if (doprocessMcWML && studyD0ToPiKPi0 && !isCentStudy) {
272- registry.add (" D0toPiKPi0 /hDeltaInvMassVsPtVsBDTScore" , " #Delta #it{M}_{inv} Vs Pt Vs BDTScore for D0toPiKPi0 " , {HistType::kTHnSparseF , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }, {axisBDTScoreBackground}, {axisBDTScorePrompt}, {axisBDTScoreNonPrompt}}}, true );
272+ registry.add (" D0ToPiKPi0 /hDeltaInvMassVsPtVsBDTScore" , " #Delta #it{M}_{inv} Vs Pt Vs BDTScore for D0ToPiKPi0 " , {HistType::kTHnSparseF , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }, {axisBDTScoreBackground}, {axisBDTScorePrompt}, {axisBDTScoreNonPrompt}}}, true );
273273 } else if (doprocessMcWoMl && studyD0ToPiKPi0 && !isCentStudy) {
274- registry.add (" D0toPiKPi0/hDeltaInvMassDstar2D" , " #Delta #it{M}_{inv} D* Candidate for D0toPiKPi0; inv. mass ((#pi #pi k) - (#pi k)) (GeV/#it{c}^{2});#it{p}_{T} (GeV/#it{c})" , {HistType::kTH2F , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }}}, true );
274+ registry.add (" D0ToPiKPi0/hDeltaInvMassDstar2D" , " #Delta #it{M}_{inv} D* Candidate for D0ToPiKPi0; inv. mass ((#pi #pi k) - (#pi k)) (GeV/#it{c}^{2});#it{p}_{T} (GeV/#it{c})" , {HistType::kTH2F , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }}}, true );
275+ }
276+
277+ // differential (prompt/Non-prompt) D0ToPiKPi0 study
278+ if (doprocessMcWML && studyD0ToPiKPi0) {
279+ registry.add (" D0ToPiKPi0/hPromptDeltaInvMassVsPtVsBDTScore" , " Prompt #Delta #it{M}_{inv} Vs Pt Vs BDTScore for D0ToPiKPi0" , {HistType::kTHnSparseF , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }, {axisBDTScoreBackground}, {axisBDTScorePrompt}, {axisBDTScoreNonPrompt}}}, true );
280+ registry.add (" D0ToPiKPi0/hNonPromptDeltaInvMassVsPtVsBDTScore" , " Non-Prompt #Delta #it{M}_{inv} Vs Pt Vs BDTScore for D0ToPiKPi0" , {HistType::kTHnSparseF , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }, {axisBDTScoreBackground}, {axisBDTScorePrompt}, {axisBDTScoreNonPrompt}}}, true );
281+ } else if (doprocessMcWoMl && studyD0ToPiKPi0) {
282+ registry.add (" D0ToPiKPi0/hPromptDeltaInvMassDstar2D" , " Prompt #Delta #it{M}_{inv} D* Candidate for D0ToPiKPi0; inv. mass ((#pi #pi k) - (#pi k)) (GeV/#it{c}^{2});#it{p}_{T} (GeV/#it{c})" , {HistType::kTH2F , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }}}, true );
283+ registry.add (" D0ToPiKPi0/hNonPromptDeltaInvMassDstar2D" , " Non-Prompt #Delta #it{M}_{inv} D* Candidate for D0ToPiKPi0; inv. mass ((#pi #pi k) - (#pi k)) (GeV/#it{c}^{2});#it{p}_{T} (GeV/#it{c})" , {HistType::kTH2F , {{axisDeltaInvMass}, {vecPtBins, " #it{p}_{T} (GeV/#it{c})" }}}, true );
275284 }
276285
277286 // if weights to be applied
@@ -557,23 +566,34 @@ struct HfTaskDstarToD0Pi {
557566 } else if (std::abs (candDstarMcRec.flagMcMatchRec ()) == hf_decay::hf_cand_dstar::DecayChannelMain::DstarToPiKPiPi0 && std::abs (candDstarMcRec.flagMcMatchRecD0 ()) == hf_decay::hf_cand_2prong::DecayChannelMain::D0ToPiKPi0) {
558567 // Aplly all selection to study D*->D0(piKpi0)pi channel same as signal channel
559568 // MC Matched but to D*->D0(piKpi0)pi channel
569+ auto deltaMDstar = std::abs (candDstarMcRec.invMassDstar () - candDstarMcRec.invMassD0 ());
560570 if constexpr (ApplyMl) {
571+ auto bdtScore = candDstarMcRec.mlProbDstarToD0Pi ();
572+ // inclusive study
561573 if (studyD0ToPiKPi0 && isCentStudy && candDstarMcRec.isSelDstarToD0Pi ()) {
562- auto deltaMDstar = std::abs (candDstarMcRec.invMassDstar () - candDstarMcRec.invMassD0 ());
563- auto bdtScore = candDstarMcRec.mlProbDstarToD0Pi ();
564- registry.fill (HIST (" D0toPiKPi0/hDeltaInvMassVsPtVsCentVsBDTScore" ), deltaMDstar, candDstarMcRec.pt (), centrality, bdtScore[0 ], bdtScore[1 ], bdtScore[2 ]);
574+ registry.fill (HIST (" D0ToPiKPi0/hDeltaInvMassVsPtVsCentVsBDTScore" ), deltaMDstar, candDstarMcRec.pt (), centrality, bdtScore[0 ], bdtScore[1 ], bdtScore[2 ]);
565575 } else if (studyD0ToPiKPi0 && !isCentStudy && candDstarMcRec.isSelDstarToD0Pi ()) {
566- auto deltaMDstar = std::abs (candDstarMcRec.invMassDstar () - candDstarMcRec.invMassD0 ());
567- auto bdtScore = candDstarMcRec.mlProbDstarToD0Pi ();
568- registry.fill (HIST (" D0toPiKPi0/hDeltaInvMassVsPtVsBDTScore" ), deltaMDstar, candDstarMcRec.pt (), bdtScore[0 ], bdtScore[1 ], bdtScore[2 ]);
576+ registry.fill (HIST (" D0ToPiKPi0/hDeltaInvMassVsPtVsBDTScore" ), deltaMDstar, candDstarMcRec.pt (), bdtScore[0 ], bdtScore[1 ], bdtScore[2 ]);
577+ }
578+ // differential (prompt/Non-prompt) study
579+ if (studyD0ToPiKPi0 && candDstarMcRec.isSelDstarToD0Pi () && (candDstarMcRec.originMcRec () == RecoDecay::OriginType::Prompt)) {
580+ registry.fill (HIST (" D0ToPiKPi0/hPromptDeltaInvMassVsPtVsBDTScore" ), deltaMDstar, candDstarMcRec.pt (), bdtScore[0 ], bdtScore[1 ], bdtScore[2 ]);
581+ } else if (studyD0ToPiKPi0 && candDstarMcRec.isSelDstarToD0Pi () && (candDstarMcRec.originMcRec () == RecoDecay::OriginType::NonPrompt)) {
582+ registry.fill (HIST (" D0ToPiKPi0/hNonPromptDeltaInvMassVsPtVsBDTScore" ), deltaMDstar, candDstarMcRec.pt (), bdtScore[0 ], bdtScore[1 ], bdtScore[2 ]);
569583 }
584+
570585 } else {
586+ // inclusive study
571587 if (studyD0ToPiKPi0 && isCentStudy && candDstarMcRec.isSelDstarToD0Pi ()) {
572- auto deltaMDstar = std::abs (candDstarMcRec.invMassDstar () - candDstarMcRec.invMassD0 ());
573- registry.fill (HIST (" D0toPiKPi0/hDeltaInvMassDstar3D" ), deltaMDstar, candDstarMcRec.pt (), centrality);
588+ registry.fill (HIST (" D0ToPiKPi0/hDeltaInvMassDstar3D" ), deltaMDstar, candDstarMcRec.pt (), centrality);
574589 } else if (studyD0ToPiKPi0 && !isCentStudy && candDstarMcRec.isSelDstarToD0Pi ()) {
575- auto deltaMDstar = std::abs (candDstarMcRec.invMassDstar () - candDstarMcRec.invMassD0 ());
576- registry.fill (HIST (" D0toPiKPi0/hDeltaInvMassDstar2D" ), deltaMDstar, candDstarMcRec.pt ());
590+ registry.fill (HIST (" D0ToPiKPi0/hDeltaInvMassDstar2D" ), deltaMDstar, candDstarMcRec.pt ());
591+ }
592+ // differential (prompt/Non-prompt) study
593+ if (studyD0ToPiKPi0 && candDstarMcRec.isSelDstarToD0Pi () && (candDstarMcRec.originMcRec () == RecoDecay::OriginType::Prompt)) {
594+ registry.fill (HIST (" D0ToPiKPi0/hPromptDeltaInvMassDstar2D" ), deltaMDstar, candDstarMcRec.pt ());
595+ } else if (studyD0ToPiKPi0 && candDstarMcRec.isSelDstarToD0Pi () && (candDstarMcRec.originMcRec () == RecoDecay::OriginType::NonPrompt)) {
596+ registry.fill (HIST (" D0ToPiKPi0/hNonPromptDeltaInvMassDstar2D" ), deltaMDstar, candDstarMcRec.pt ());
577597 }
578598 }
579599 } else { // MC Unmatched (Baground at Reconstruction Level)
0 commit comments