Skip to content

Commit f5bd8d3

Browse files
authored
Update correlatorDplusHadrons.cxx
Implementation of flag to perform prompt and Non-prompt D+-hadron correlation studies
1 parent 9b54659 commit f5bd8d3

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

PWGHF/HFC/TableProducer/correlatorDplusHadrons.cxx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ struct HfCorrelatorDplusHadrons {
163163
Produces<aod::Hadron> entryHadron;
164164

165165
Configurable<int> selectionFlagDplus{"selectionFlagDplus", 7, "Selection Flag for Dplus"}; // 7 corresponds to topo+PID cuts
166+
Configurable<bool> isPromptAnalysis{"isPromptAnalysis", true, "Flag for prompt D+-hadron correlations"};
166167
Configurable<int> numberEventsMixed{"numberEventsMixed", 5, "Number of events mixed in ME process"};
167168
Configurable<bool> applyEfficiency{"applyEfficiency", true, "Flag for applying D-meson efficiency weights"};
168169
Configurable<bool> removeDaughters{"removeDaughters", true, "Flag for removing D-meson daughters from correlations"};
@@ -344,7 +345,8 @@ struct HfCorrelatorDplusHadrons {
344345
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
345346
outputMl[iclass] = candidate.mlProbDplusToPiKPi()[classMl->at(iclass)];
346347
}
347-
entryDplusCandRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1]); // 0: BkgBDTScore, 1:PromptBDTScore
348+
if (isPromptAnalysis) entryDplusCandRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1]); // 0: BkgBDTScore, 1:PromptBDTScore
349+
else entryDplusCandRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[2]); // 0: BkgBDTScore, 2:FDBDTScore
348350
entryDplus(candidate.phi(), candidate.eta(), candidate.pt(), hfHelper.invMassDplusToPiKPi(candidate), poolBin, gCollisionId, timeStamp);
349351

350352
// Dplus-Hadron correlation dedicated section
@@ -366,7 +368,8 @@ struct HfCorrelatorDplusHadrons {
366368
track.pt(), poolBin);
367369
entryDplusHadronRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), false);
368370
entryDplusHadronGenInfo(false, false, 0);
369-
entryDplusHadronMlInfo(outputMl[0], outputMl[1]);
371+
if (isPromptAnalysis) entryDplusHadronMlInfo(outputMl[0], outputMl[1]);
372+
else entryDplusHadronMlInfo(outputMl[0], outputMl[2]);
370373
entryTrackRecoInfo(track.dcaXY(), track.dcaZ(), track.tpcNClsCrossedRows());
371374
if (cntDplus == 0) {
372375
entryHadron(track.phi(), track.eta(), track.pt(), poolBin, gCollisionId, timeStamp);
@@ -458,7 +461,8 @@ struct HfCorrelatorDplusHadrons {
458461
outputMl[iclass] = candidate.mlProbDplusToPiKPi()[classMl->at(iclass)];
459462
}
460463
registry.fill(HIST("hMassDplusMcRecSig"), hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), efficiencyWeightD);
461-
entryDplusCandRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1]);
464+
if (isPromptAnalysis) entryDplusCandRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[1]);
465+
else entryDplusCandRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), candidate.pt(), outputMl[0], outputMl[2]);
462466
entryDplusCandGenInfo(isDplusPrompt);
463467
} else {
464468
registry.fill(HIST("hPtCandMcRecBkg"), candidate.pt());
@@ -487,7 +491,8 @@ struct HfCorrelatorDplusHadrons {
487491
candidate.pt(),
488492
track.pt(), poolBin);
489493
entryDplusHadronRecoInfo(hfHelper.invMassDplusToPiKPi(candidate), isDplusSignal);
490-
entryDplusHadronMlInfo(outputMl[0], outputMl[1]);
494+
if (isPromptAnalysis) entryDplusHadronMlInfo(outputMl[0], outputMl[1]);
495+
else entryDplusHadronMlInfo(outputMl[0], outputMl[2]);
491496
if (track.has_mcParticle()) {
492497
auto mcParticle = track.template mcParticle_as<aod::McParticles>();
493498
isPhysicalPrimary = mcParticle.isPhysicalPrimary();
@@ -695,7 +700,8 @@ struct HfCorrelatorDplusHadrons {
695700
for (unsigned int iclass = 0; iclass < classMl->size(); iclass++) {
696701
outputMl[iclass] = candidate.mlProbDplusToPiKPi()[classMl->at(iclass)];
697702
}
698-
entryDplusHadronMlInfo(outputMl[0], outputMl[1]);
703+
if (isPromptAnalysis) entryDplusHadronMlInfo(outputMl[0], outputMl[1]);
704+
else entryDplusHadronMlInfo(outputMl[0], outputMl[2]);
699705
entryTrackRecoInfo(pAssoc.dcaXY(), pAssoc.dcaZ(), pAssoc.tpcNClsCrossedRows());
700706
}
701707
}

0 commit comments

Comments
 (0)