Skip to content

Commit b4cf386

Browse files
authored
[PWGHF] Add flag to remove ambiguous candidates (#9725)
1 parent 291a667 commit b4cf386

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

PWGHF/HFC/TableProducer/correlatorDMesonPairs.cxx

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ struct HfCorrelatorDMesonPairs {
7373
Configurable<bool> selectSignalRegionOnly{"selectSignalRegionOnly", false, "only use events close to PDG peak"};
7474
Configurable<float> massCut{"massCut", 0.05, "Maximum deviation from PDG peak allowed for signal region"};
7575
Configurable<bool> daughterTracksCutFlag{"daughterTracksCutFlag", false, "Flag to add cut on daughter tracks"};
76+
Configurable<bool> removeAmbiguous{"removeAmbiguous", false, "Flag to remove ambiguous candidates"};
7677

7778
// ML inference
7879
Configurable<bool> applyMl{"applyMl", false, "Flag to apply ML selections"};
@@ -123,6 +124,7 @@ struct HfCorrelatorDMesonPairs {
123124
{"hEta", "D meson candidates;candidate #it{#eta};entries", hTH1Y},
124125
{"hPhi", "D meson candidates;candidate #it{#varphi};entries", hTH1Phi},
125126
{"hY", "D meson candidates;candidate #it{y};entries", hTH1Y},
127+
{"hPVContrib", "D meson candidates;candidate Number of PV contributors;entries", hTH1NContrib},
126128
// MC Gen plots
127129
{"hPtCandMcGen", "D meson candidates MC Gen;candidate #it{p}_{T} (GeV/#it{c});entries", hTH1Pt},
128130
{"hPtCandAfterCutMcGen", "D meson candidates after pT cut;candidate #it{p}_{T} (GeV/#it{c});entries", hTH1Pt},
@@ -131,12 +133,12 @@ struct HfCorrelatorDMesonPairs {
131133
{"hPtVsYVsNContribMcGen", "D meson candidates MC Gen;candidate #it{p}_{T} (GeV/#it{c});#it{y};Number of contributors", hTH3PtVsYVsNContrib},
132134
{"hPtVsYVsNContribMcGenPrompt", "D meson candidates MC Gen Prompt;candidate #it{p}_{T} (GeV/#it{c});#it{y};Number of contributors", hTH3PtVsYVsNContrib},
133135
{"hPtVsYVsNContribMcGenNonPrompt", "D meson candidates MC Gen Prompt;candidate #it{p}_{T} (GeV/#it{c});#it{y};Number of contributors", hTH3PtVsYVsNContrib},
134-
{"hNContribMcGen", "D meson candidates MC Gen;Number of contributors", hTH1NContrib},
136+
{"hNContribMcGen", "D meson candidates MC Gen;Number of PV contributors", hTH1NContrib},
135137
// MC Rec plots
136138
{"hPtVsYVsNContribMcRec", "D meson candidates MC Rec;candidate #it{p}_{T} (GeV/#it{c});#it{y};Number of contributors", hTH3PtVsYVsNContrib},
137139
{"hPtVsYVsNContribMcRecPrompt", "D meson candidates MC Rec Prompt;candidate #it{p}_{T} (GeV/#it{c});#it{y};Number of contributors", hTH3PtVsYVsNContrib},
138140
{"hPtVsYVsNContribMcRecNonPrompt", "D meson candidates MC Rec Non-prompt;candidate #it{p}_{T} (GeV/#it{c});#it{y};Number of contributors", hTH3PtVsYVsNContrib},
139-
{"hNContribMcRec", "D meson candidates MC Rec;Number of contributors", hTH1NContrib},
141+
{"hNContribMcRec", "D meson candidates MC Rec;Number of PV contributors", hTH1NContrib},
140142
// PID plots ----- Not definitively here
141143
{"PID/hTofNSigmaPi", "(TOFsignal-time#pi)/tofSigPid;p[GeV/c];(TOFsignal-time#pi)/tofSigPid", hTH2Pid},
142144
{"PID/hTofNSigmaKa", "(TOFsignal-timeK)/tofSigPid;p[GeV/c];(TOFsignal-timeK)/tofSigPid", hTH2Pid},
@@ -576,12 +578,18 @@ struct HfCorrelatorDMesonPairs {
576578
}
577579
}
578580

581+
// Remove ambiguous D0 candidates if flag is true
582+
if (removeAmbiguous && (isDCand1 && isDbarCand1)) {
583+
continue;
584+
}
585+
579586
registry.fill(HIST("hPtProng0"), candidate1.ptProng0());
580587
registry.fill(HIST("hPtProng1"), candidate1.ptProng1());
581588
registry.fill(HIST("hEta"), candidate1.eta());
582589
registry.fill(HIST("hPhi"), candidate1.phi());
583590
registry.fill(HIST("hY"), candidate1.y(MassD0));
584591
registry.fill(HIST("hPtCandAfterCut"), candidate1.pt());
592+
registry.fill(HIST("hPVContrib"), collision.numContrib());
585593

586594
if (isDCand1) {
587595
registry.fill(HIST("hMass"), hfHelper.invMassD0ToPiK(candidate1), candidate1.pt());
@@ -635,6 +643,11 @@ struct HfCorrelatorDMesonPairs {
635643
continue;
636644
}
637645

646+
// Remove ambiguous D0 candidates if flag is true
647+
if (removeAmbiguous && (isDCand2 && isDbarCand2)) {
648+
continue;
649+
}
650+
638651
fillEntry(isDCand1, isDbarCand1, isDCand2, isDbarCand2, candidateType1, candidateType2, hfHelper.yD0(candidate1), hfHelper.yD0(candidate2),
639652
candidate1.pt(), candidate2.pt(), candidate1.phi(), candidate2.phi(), hfHelper.invMassD0ToPiK(candidate1), hfHelper.invMassD0barToKPi(candidate1),
640653
hfHelper.invMassD0ToPiK(candidate2), hfHelper.invMassD0barToKPi(candidate2));
@@ -719,6 +732,11 @@ struct HfCorrelatorDMesonPairs {
719732
}
720733
}
721734

735+
// Remove ambiguous D0 candidates if flag is true
736+
if (removeAmbiguous && (isDCand1 && isDbarCand1)) {
737+
continue;
738+
}
739+
722740
if (isTrueDCand1) {
723741
registry.fill(HIST("hStatusSinglePart"), 5);
724742
} else if (isTrueDbarCand1) {
@@ -821,6 +839,11 @@ struct HfCorrelatorDMesonPairs {
821839
continue;
822840
}
823841

842+
// Remove ambiguous D0 candidates if flag is true
843+
if (removeAmbiguous && (isDCand2 && isDbarCand2)) {
844+
continue;
845+
}
846+
824847
// Fill tables
825848
fillEntry(isDCand1, isDbarCand1, isDCand2, isDbarCand2, candidateType1, candidateType2, yCandidate1, yCandidate2, phiCandidate1, phiCandidate2,
826849
ptCandidate1, ptCandidate2, massD0Cand1, massD0barCand1, massD0Cand2, massD0barCand2);

0 commit comments

Comments
 (0)