Skip to content

Commit a3ca81e

Browse files
authored
[PWGJE] Adding bkg indexing to jetCorrelationD0 task (#17318)
1 parent 9ffa18c commit a3ca81e

1 file changed

Lines changed: 23 additions & 8 deletions

File tree

PWGJE/Tasks/jetCorrelationD0.cxx

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include <cstdint>
3737
#include <cstdlib>
3838
#include <string>
39+
#include <type_traits>
3940
#include <vector>
4041

4142
#include <math.h>
@@ -86,8 +87,7 @@ DECLARE_SOA_COLUMN(D0MD, d0MD, float);
8687
DECLARE_SOA_COLUMN(D0PtD, d0PtD, float);
8788
DECLARE_SOA_COLUMN(D0EtaD, d0EtaD, float);
8889
DECLARE_SOA_COLUMN(D0PhiD, d0PhiD, float);
89-
DECLARE_SOA_COLUMN(D0MatchedFrom, d0MatchedFrom, int);
90-
DECLARE_SOA_COLUMN(D0SelectedAs, d0SelectedAs, int);
90+
DECLARE_SOA_COLUMN(D0Category, d0Category, int);
9191
DECLARE_SOA_COLUMN(D0DecayChannel, d0DecayChannel, int8_t);
9292
} // namespace d0Info
9393

@@ -114,9 +114,7 @@ DECLARE_SOA_TABLE(D0McDTables, "AOD", "D0MCDTABLE",
114114
d0Info::D0Eta,
115115
d0Info::D0Phi,
116116
d0Info::D0Y,
117-
d0Info::D0MatchedFrom,
118-
d0Info::D0SelectedAs,
119-
d0Info::D0DecayChannel);
117+
d0Info::D0Category);
120118

121119
DECLARE_SOA_TABLE(D0McPTables, "AOD", "D0MCPTABLE",
122120
o2::soa::Index<>,
@@ -357,6 +355,12 @@ struct JetCorrelationD0 {
357355

358356
int matchedFrom = 0;
359357
int selectedAs = 0;
358+
int category = -1; // -1 undefined, 0 signal, 1 reflection, 2-5 correlated backgrounds
359+
constexpr int kD0ToKPi = 1;
360+
constexpr int kD0ToKPiPi = 2;
361+
constexpr int kD0ToPiPi = 3;
362+
constexpr int kD0ToPiPiPi = 4;
363+
constexpr int kD0ToKK = 5;
360364

361365
if (d0DecayChannel > 0) { // matched to a D0 on truth level (any channel)
362366
matchedFrom = 1;
@@ -368,6 +372,19 @@ struct JetCorrelationD0 {
368372
} else if (d0Candidate.candidateSelFlag() & BIT(1)) { // CandidateSelFlag == BIT(1) -> selected as D0bar
369373
selectedAs = -1;
370374
}
375+
if ((std::abs(d0DecayChannel) == kD0ToKPi) && (matchedFrom != 0) && (selectedAs == matchedFrom)) {
376+
category = 0; // signal -> D0 or D0bar, π+ K−
377+
} else if ((d0DecayChannel == kD0ToKPi) && (selectedAs == -1 * matchedFrom)) {
378+
category = 1; // reflection
379+
} else if (d0DecayChannel == kD0ToKPiPi) {
380+
category = 2; // corr bkg: π+ K− π0
381+
} else if (d0DecayChannel == kD0ToPiPi) {
382+
category = 3; // corr bkg: π+ π−
383+
} else if (d0DecayChannel == kD0ToPiPiPi) {
384+
category = 4; // corr bkg: π+ π− π0
385+
} else if (d0DecayChannel == kD0ToKK) {
386+
category = 5; // corr bkg: K+ K−
387+
}
371388

372389
tableD0McDetector(tableCollision.lastIndex(), // might want to add some more detector level D0 quantities like prompt or non prompt info
373390
scores[2],
@@ -378,9 +395,7 @@ struct JetCorrelationD0 {
378395
d0Candidate.eta(),
379396
d0Candidate.phi(),
380397
d0Candidate.y(),
381-
matchedFrom,
382-
selectedAs,
383-
d0DecayChannel);
398+
category);
384399
for (const auto& jet : jets) {
385400
if (jet.pt() < jetPtCutMin) {
386401
continue;

0 commit comments

Comments
 (0)