Skip to content

Commit fe680a3

Browse files
authored
fixing background candidate rejection in jet finder (#15117)
1 parent e39db2d commit fe680a3

File tree

2 files changed

+12
-16
lines changed

2 files changed

+12
-16
lines changed

PWGJE/JetFinders/jetFinderHF.h

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -210,21 +210,19 @@ struct JetFinderHFTask {
210210
o2::framework::PresliceOptional<o2::soa::Filtered<JetTracksSubTable>> perDielectronMcCandidate = o2::aod::bkgdielectronmc::candidateId;
211211

212212
// function that generalically processes Data and reco level events
213-
template <bool isEvtWiseSub, typename T, typename U, typename V, typename M, typename N, typename O>
213+
template <bool isMC, bool isEvtWiseSub, typename T, typename U, typename V, typename M, typename N, typename O>
214214
void analyseCharged(T const& collision, U const& tracks, V const& candidate, M& jetsTableInput, N& constituentsTableInput, O& /*originalTracks*/, float minJetPt, float maxJetPt)
215215
{
216216
if (!jetderiveddatautilities::selectCollision(collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections) || !jetderiveddatautilities::selectTrigger(collision, triggerMaskBits)) {
217217
return;
218218
}
219219
inputParticles.clear();
220220

221-
if constexpr (jetcandidateutilities::isCandidate<V>()) {
221+
if constexpr (!isMC) {
222222
if (!jetfindingutilities::analyseCandidate(inputParticles, candidate, candPtMin, candPtMax, candYMin, candYMax)) {
223223
return;
224224
}
225-
}
226-
227-
if constexpr (jetcandidateutilities::isMcCandidate<V>()) {
225+
} else {
228226
if (!jetfindingutilities::analyseCandidateMC(inputParticles, candidate, candPtMin, candPtMax, candYMin, candYMax, rejectBackgroundMCDCandidates)) {
229227
return;
230228
}
@@ -269,31 +267,31 @@ struct JetFinderHFTask {
269267
void processChargedJetsData(o2::soa::Filtered<o2::aod::JetCollisions>::iterator const& collision, o2::soa::Filtered<o2::aod::JetTracks> const& tracks, CandidateTableData const& candidates)
270268
{
271269
for (typename CandidateTableData::iterator const& candidate : candidates) { // why can the type not be auto? try const auto
272-
analyseCharged<false>(collision, tracks, candidate, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
270+
analyseCharged<false, false>(collision, tracks, candidate, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
273271
}
274272
}
275273
PROCESS_SWITCH(JetFinderHFTask, processChargedJetsData, "charged hf jet finding on data", false);
276274

277275
void processChargedEvtWiseSubJetsData(o2::soa::Filtered<o2::aod::JetCollisions>::iterator const& collision, o2::soa::Filtered<JetTracksSubTable> const& tracks, CandidateTableData const& candidates)
278276
{
279277
for (typename CandidateTableData::iterator const& candidate : candidates) {
280-
analyseCharged<true>(collision, jetcandidateutilities::slicedPerCandidate(tracks, candidate, perD0Candidate, perDplusCandidate, perDsCandidate, perDstarCandidate, perLcCandidate, perB0Candidate, perBplusCandidate, perXicToXiPiPiCandidate, perDielectronCandidate), candidate, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, tracks, jetEWSPtMin, jetEWSPtMax);
278+
analyseCharged<false, true>(collision, jetcandidateutilities::slicedPerCandidate(tracks, candidate, perD0Candidate, perDplusCandidate, perDsCandidate, perDstarCandidate, perLcCandidate, perB0Candidate, perBplusCandidate, perXicToXiPiPiCandidate, perDielectronCandidate), candidate, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, tracks, jetEWSPtMin, jetEWSPtMax);
281279
}
282280
}
283281
PROCESS_SWITCH(JetFinderHFTask, processChargedEvtWiseSubJetsData, "charged hf jet finding on data with event-wise constituent subtraction", false);
284282

285283
void processChargedJetsMCD(o2::soa::Filtered<o2::aod::JetCollisions>::iterator const& collision, o2::soa::Filtered<o2::aod::JetTracks> const& tracks, CandidateTableMCD const& candidates)
286284
{
287285
for (typename CandidateTableMCD::iterator const& candidate : candidates) {
288-
analyseCharged<false>(collision, tracks, candidate, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
286+
analyseCharged<true, false>(collision, tracks, candidate, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
289287
}
290288
}
291289
PROCESS_SWITCH(JetFinderHFTask, processChargedJetsMCD, "charged hf jet finding on MC detector level", false);
292290

293291
void processChargedEvtWiseSubJetsMCD(o2::soa::Filtered<o2::aod::JetCollisions>::iterator const& collision, o2::soa::Filtered<JetTracksSubTable> const& tracks, CandidateTableMCD const& candidates)
294292
{
295293
for (typename CandidateTableMCD::iterator const& candidate : candidates) {
296-
analyseCharged<true>(collision, jetcandidateutilities::slicedPerCandidate(tracks, candidate, perD0Candidate, perDplusCandidate, perDsCandidate, perDstarCandidate, perLcCandidate, perB0Candidate, perBplusCandidate, perXicToXiPiPiCandidate, perDielectronCandidate), candidate, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, tracks, jetEWSPtMin, jetEWSPtMax);
294+
analyseCharged<true, true>(collision, jetcandidateutilities::slicedPerCandidate(tracks, candidate, perD0Candidate, perDplusCandidate, perDsCandidate, perDstarCandidate, perLcCandidate, perB0Candidate, perBplusCandidate, perXicToXiPiPiCandidate, perDielectronCandidate), candidate, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, tracks, jetEWSPtMin, jetEWSPtMax);
297295
}
298296
}
299297
PROCESS_SWITCH(JetFinderHFTask, processChargedEvtWiseSubJetsMCD, "charged hf jet finding on MC detector level with event-wise constituent subtraction", false);

PWGJE/JetFinders/jetFinderHFHFBar.h

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ struct JetFinderHFHFBarTask {
208208
o2::framework::PresliceOptional<o2::soa::Filtered<JetTracksSubTable>> perDielectronMcCandidate = o2::aod::bkgdielectronmc::candidateId;
209209

210210
// function that generalically processes Data and reco level events
211-
template <bool isEvtWiseSub, typename T, typename U, typename V, typename M, typename N, typename O>
211+
template <bool isMC, bool isEvtWiseSub, typename T, typename U, typename V, typename M, typename N, typename O>
212212
void analyseCharged(T const& collision, U const& tracks, V const& candidate, V const& candidateBar, M& jetsTableInput, N& constituentsTableInput, O& /*originalTracks*/, float minJetPt, float maxJetPt)
213213
{
214214
if (candidate.globalIndex() == candidateBar.globalIndex() || candidate.candidateSelFlag() == candidateBar.candidateSelFlag()) {
@@ -224,13 +224,11 @@ struct JetFinderHFHFBarTask {
224224
}
225225
inputParticles.clear();
226226

227-
if constexpr (jetcandidateutilities::isCandidate<V>()) {
227+
if constexpr (!isMC) {
228228
if (!jetfindingutilities::analyseCandidate(inputParticles, candidate, candPtMin, candPtMax, candYMin, candYMax) || !jetfindingutilities::analyseCandidate(inputParticles, candidateBar, candPtMin, candPtMax, candYMin, candYMax)) {
229229
return;
230230
}
231-
}
232-
233-
if constexpr (jetcandidateutilities::isMcCandidate<V>()) {
231+
} else {
234232
if (!jetfindingutilities::analyseCandidateMC(inputParticles, candidate, candPtMin, candPtMax, candYMin, candYMax, rejectBackgroundMCDCandidates) || !jetfindingutilities::analyseCandidateMC(inputParticles, candidateBar, candPtMin, candPtMax, candYMin, candYMax, rejectBackgroundMCDCandidates)) {
235233
return;
236234
}
@@ -282,7 +280,7 @@ struct JetFinderHFHFBarTask {
282280
for (; candidateBarIterator != candidates.end(); ++candidateBarIterator) {
283281
typename CandidateTableData::iterator const& candidate = *candidateIterator;
284282
typename CandidateTableData::iterator const& candidateBar = *candidateBarIterator;
285-
analyseCharged<false>(collision, tracks, candidate, candidateBar, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
283+
analyseCharged<false, false>(collision, tracks, candidate, candidateBar, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
286284
}
287285
}
288286
}
@@ -296,7 +294,7 @@ struct JetFinderHFHFBarTask {
296294
for (; candidateBarIterator != candidates.end(); ++candidateBarIterator) {
297295
typename CandidateTableMCD::iterator const& candidate = *candidateIterator;
298296
typename CandidateTableMCD::iterator const& candidateBar = *candidateBarIterator;
299-
analyseCharged<false>(collision, tracks, candidate, candidateBar, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
297+
analyseCharged<true, false>(collision, tracks, candidate, candidateBar, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
300298
}
301299
}
302300
}

0 commit comments

Comments
 (0)