@@ -46,9 +46,6 @@ const TString stringMCRecoDPrompt = "MC reco, prompt D+;";
4646const TString stringMCGenDPrompt = " MC gen, prompt D+;" ;
4747const TString stringMCRecoDFd = " MC reco, non-prompt D+;" ;
4848const TString stringMCGenDFd = " MC gen, non-prompt D+;" ;
49- constexpr int kPrompt = 1 ;
50- constexpr int kNonPrompt = 2 ;
51- constexpr int kFromB = 0 ; // 0 means from Beauty (non-prompt D+)
5249
5350const int npTBinsCorrelations = 8 ;
5451const double pTBinsCorrelations[npTBinsCorrelations + 1 ] = {0 ., 2 ., 4 ., 6 ., 8 ., 12 ., 16 ., 24 ., 99 .};
@@ -80,7 +77,7 @@ struct HfTaskCorrelationDplusHadrons {
8077 Configurable<int > selectionFlagDplus{" selectionFlagDplus" , 7 , " Selection Flag for D+" }; // 7 corresponds to topo+PID cuts
8178 Configurable<bool > selNoSameBunchPileUpColl{" selNoSameBunchPileUpColl" , true , " Flag for rejecting the collisions associated with the same bunch crossing" };
8279 Configurable<std::vector<int >> classMl{" classMl" , {0 , 1 , 2 }, " Indexes of ML scores to be stored. Three indexes max." };
83- Configurable<std::vector<double >> mlScorePromptorNonPrompt{ " mlScorePromptorNonPrompt " , {0.5 , 0.5 , 0.5 , 0.5 }, " Machine learning scores for prompt or Feed-down" };
80+ Configurable<std::vector<double >> mlScorePromptOrNonPrompt{ " mlScorePromptOrNonPrompt " , {0.5 , 0.5 , 0.5 , 0.5 }, " Machine learning scores for prompt or Feed-down" };
8481 Configurable<std::vector<double >> mlScoreBkg{" mlScoreBkg" , {0.5 , 0.5 , 0.5 , 0.5 }, " Machine learning scores for bkg" };
8582 // pT ranges for correlation plots: the default values are those embedded in hf_cuts_dplus_to_pi_k_pi (i.e. the mass pT bins), but can be redefined via json files
8683 Configurable<std::vector<double >> binsPtCorrelations{" binsPtCorrelations" , std::vector<double >{ptBinsCorrelationsVec}, " pT bin limits for correlation plots" };
@@ -308,14 +305,14 @@ struct HfTaskCorrelationDplusHadrons {
308305 float bdtScoreNonPrompt = candidate.mlScoreNonPrompt ();
309306 float bdtScoreBkg = candidate.mlScoreBkg ();
310307 int effBinD = o2::analysis::findBin (binsPtEfficiencyD, ptD);
311- float bdtScorePromptorNonPrompt = isPromptAnalysis ? bdtScorePrompt : bdtScoreNonPrompt;
308+ float bdtScorePromptOrNonPrompt = isPromptAnalysis ? bdtScorePrompt : bdtScoreNonPrompt;
312309
313310 // reject entries outside pT ranges of interest
314311 if (ptD < binsPtEfficiencyD->front () || ptD > binsPtEfficiencyD->back ()) {
315312 continue ;
316313 }
317314
318- if (bdtScorePromptorNonPrompt < mlScorePromptorNonPrompt ->at (effBinD) || bdtScoreBkg > mlScoreBkg->at (effBinD)) {
315+ if (bdtScorePromptOrNonPrompt < mlScorePromptOrNonPrompt ->at (effBinD) || bdtScoreBkg > mlScoreBkg->at (effBinD)) {
319316 continue ;
320317 }
321318 double efficiencyWeightD = 1 .;
@@ -347,14 +344,14 @@ struct HfTaskCorrelationDplusHadrons {
347344 double massD = pairEntry.mD ();
348345 int effBinD = o2::analysis::findBin (binsPtEfficiencyD, ptD);
349346 int pTBinD = o2::analysis::findBin (binsPtCorrelations, ptD);
350- float bdtScorePromptorNonPrompt = isPromptAnalysis ? bdtScorePrompt : bdtScoreNonPrompt;
347+ float bdtScorePromptOrNonPrompt = isPromptAnalysis ? bdtScorePrompt : bdtScoreNonPrompt;
351348
352349 // reject entries outside pT ranges of interest
353350 if (ptD < binsPtEfficiencyD->front () || ptD > binsPtEfficiencyD->back ()) {
354351 continue ;
355352 }
356353
357- if (bdtScorePromptorNonPrompt < mlScorePromptorNonPrompt ->at (effBinD) || bdtScoreBkg > mlScoreBkg->at (effBinD)) {
354+ if (bdtScorePromptOrNonPrompt < mlScorePromptOrNonPrompt ->at (effBinD) || bdtScoreBkg > mlScoreBkg->at (effBinD)) {
358355 continue ;
359356 }
360357 if (trackDcaXY > dcaXYTrackMax || trackDcaZ > dcaZTrackMax || trackTpcCrossedRows < nTpcCrossedRaws) {
@@ -411,13 +408,13 @@ struct HfTaskCorrelationDplusHadrons {
411408 float bdtScoreBkg = candidate.mlScoreBkg ();
412409 int effBinD = o2::analysis::findBin (binsPtEfficiencyD, ptD);
413410 bool isDplusPrompt = candidate.isPrompt ();
414- float bdtScorePromptorNonPrompt = isPromptAnalysis ? bdtScorePrompt : bdtScoreNonPrompt;
411+ float bdtScorePromptOrNonPrompt = isPromptAnalysis ? bdtScorePrompt : bdtScoreNonPrompt;
415412
416413 // reject entries outside pT ranges of interest
417414 if (ptD < binsPtEfficiencyD->front () || ptD > binsPtEfficiencyD->back ())
418415 continue ;
419416
420- if (bdtScorePromptorNonPrompt < mlScorePromptorNonPrompt ->at (effBinD) || bdtScoreBkg > mlScoreBkg->at (effBinD)) {
417+ if (bdtScorePromptOrNonPrompt < mlScorePromptOrNonPrompt ->at (effBinD) || bdtScoreBkg > mlScoreBkg->at (effBinD)) {
421418 continue ;
422419 }
423420 double efficiencyWeightD = 1 .;
@@ -465,13 +462,13 @@ struct HfTaskCorrelationDplusHadrons {
465462 int poolBin = pairEntry.poolBin ();
466463 int effBinD = o2::analysis::findBin (binsPtEfficiencyD, ptD);
467464 int pTBinD = o2::analysis::findBin (binsPtCorrelations, ptD);
468- float bdtScorePromptorNonPrompt = isPromptAnalysis ? bdtScorePrompt : bdtScoreNonPrompt;
465+ float bdtScorePromptOrNonPrompt = isPromptAnalysis ? bdtScorePrompt : bdtScoreNonPrompt;
469466
470467 // reject entries outside pT ranges of interest
471468 if (ptD < binsPtEfficiencyD->front () || ptD > binsPtEfficiencyD->back ())
472469 continue ;
473470
474- if (bdtScorePromptorNonPrompt < mlScorePromptorNonPrompt ->at (effBinD) || bdtScoreBkg > mlScoreBkg->at (effBinD)) {
471+ if (bdtScorePromptOrNonPrompt < mlScorePromptOrNonPrompt ->at (effBinD) || bdtScoreBkg > mlScoreBkg->at (effBinD)) {
475472 continue ;
476473 }
477474 if (trackDcaXY > dcaXYTrackMax || trackDcaZ > dcaZTrackMax || trackTpcCrossedRows < nTpcCrossedRaws) {
@@ -510,9 +507,9 @@ struct HfTaskCorrelationDplusHadrons {
510507 registry.fill (HIST (" hDeltaPhiPtIntSignalRegionMcRec" ), deltaPhi, efficiencyWeight);
511508 if (isPhysicalPrimary) {
512509 registry.fill (HIST (" hCorrel2DVsPtPhysicalPrimaryMcRec" ), deltaPhi, deltaEta, ptD, ptHadron, statusDplusPrompt, poolBin, efficiencyWeight);
513- if (statusDplusPrompt == kPrompt && statusPromptHadron == kPrompt ) {
510+ if (statusDplusPrompt == RecoDecay::OriginType::Prompt && statusPromptHadron == RecoDecay::OriginType::Prompt ) {
514511 registry.fill (HIST (" hCorrel2DVsPtSignalRegionPromptDplusPromptHadronMcRec" ), deltaPhi, deltaEta, ptD, ptHadron, poolBin, efficiencyWeight);
515- } else if (statusDplusPrompt == kFromB && statusPromptHadron == kNonPrompt ) {
512+ } else if (statusDplusPrompt != RecoDecay::OriginType::Prompt && statusPromptHadron == RecoDecay::OriginType::NonPrompt ) {
516513 registry.fill (HIST (" hCorrel2DVsPtSignalRegionNonPromptDplusNonPromptHadronMcRec" ), deltaPhi, deltaEta, ptD, ptHadron, poolBin, efficiencyWeight);
517514 }
518515 }
@@ -559,12 +556,12 @@ struct HfTaskCorrelationDplusHadrons {
559556 registry.fill (HIST (" hDeltaPhiPtIntMcGen" ), deltaPhi);
560557 if (isDplusPrompt) {
561558 registry.fill (HIST (" hCorrel2DVsPtMcGenPrompt" ), deltaPhi, deltaEta, ptD, ptHadron, poolBin);
562- if (statusPromptHadron == kPrompt ) {
559+ if (statusPromptHadron == RecoDecay::OriginType::Prompt ) {
563560 registry.fill (HIST (" hCorrel2DVsPtMcGenPromptDPromptHadron" ), deltaPhi, deltaEta, ptD, ptHadron, poolBin);
564561 }
565562 } else {
566563 registry.fill (HIST (" hCorrel2DVsPtMcGenNonPrompt" ), deltaPhi, deltaEta, ptD, ptHadron, poolBin);
567- if (statusPromptHadron == kNonPrompt ) {
564+ if (statusPromptHadron == RecoDecay::OriginType::NonPrompt ) {
568565 registry.fill (HIST (" hCorrel2DVsPtMcGenNonPromptDNonPromptHadron" ), deltaPhi, deltaEta, ptD, ptHadron, poolBin);
569566 }
570567 }
@@ -628,7 +625,7 @@ struct HfTaskCorrelationDplusHadrons {
628625 for (unsigned int iclass = 0 ; iclass < classMl->size (); iclass++) {
629626 outputMl[iclass] = candidate.mlProbDplusToPiKPi ()[classMl->at (iclass)];
630627 }
631- if (outputMl[0 ] > mlScoreBkg->at (o2::analysis::findBin (binsPtEfficiencyD, candidate.pt ())) || outputMl[idxBdtScore] < mlScorePromptorNonPrompt ->at (o2::analysis::findBin (binsPtEfficiencyD, candidate.pt ()))) {
628+ if (outputMl[0 ] > mlScoreBkg->at (o2::analysis::findBin (binsPtEfficiencyD, candidate.pt ())) || outputMl[idxBdtScore] < mlScorePromptOrNonPrompt ->at (o2::analysis::findBin (binsPtEfficiencyD, candidate.pt ()))) {
632629 continue ;
633630 }
634631 auto collision = candidate.template collision_as <soa::Join<aod::Collisions, aod::FT0Mults, aod::EvSels>>();
0 commit comments