@@ -78,8 +78,7 @@ DECLARE_SOA_COLUMN(D0MD, d0MD, float);
7878DECLARE_SOA_COLUMN (D0PtD, d0PtD, float );
7979DECLARE_SOA_COLUMN (D0EtaD, d0EtaD, float );
8080DECLARE_SOA_COLUMN (D0PhiD, d0PhiD, float );
81- DECLARE_SOA_COLUMN (D0MatchedFrom, d0MatchedFrom, int );
82- DECLARE_SOA_COLUMN (D0SelectedAs, d0SelectedAs, int );
81+ DECLARE_SOA_COLUMN (D0Category, d0Category, int );
8382DECLARE_SOA_COLUMN (D0DecayChannel, d0DecayChannel, int8_t );
8483} // namespace d0Info
8584
@@ -106,9 +105,7 @@ DECLARE_SOA_TABLE(D0McDTables, "AOD", "D0MCDTABLE",
106105 d0Info::D0Eta,
107106 d0Info::D0Phi,
108107 d0Info::D0Y ,
109- d0Info::D0MatchedFrom,
110- d0Info::D0SelectedAs,
111- d0Info::D0DecayChannel);
108+ d0Info::D0Category);
112109
113110DECLARE_SOA_TABLE (D0McPTables, " AOD" , " D0MCPTABLE" ,
114111 o2::soa::Index<>,
@@ -349,6 +346,7 @@ struct JetCorrelationD0 {
349346
350347 int matchedFrom = 0 ;
351348 int selectedAs = 0 ;
349+ int category; // 0 signal, 1 reflection, 2-5 correlated backgrounds
352350
353351 if (d0DecayChannel > 0 ) { // matched to a D0 on truth level (any channel)
354352 matchedFrom = 1 ;
@@ -360,6 +358,28 @@ struct JetCorrelationD0 {
360358 } else if (d0Candidate.candidateSelFlag () & BIT (1 )) { // CandidateSelFlag == BIT(1) -> selected as D0bar
361359 selectedAs = -1 ;
362360 }
361+ if ((d0DecayChannel == 1 ) && (selectedAs == matchedFrom)) {
362+ category = 0 ; // signal -> D0 or D0bar, π+ K− π+
363+ }
364+ if ((d0DecayChannel == 1 ) && (selectedAs == -1 *matchedFrom)) {
365+ category = 1 ; // reflection
366+ }
367+ if (d0DecayChannel == 2 ) {
368+ category = 2 ; // corr bkg: π+ K− π0
369+ }
370+
371+ if (d0DecayChannel == 3 ) {
372+ category = 3 ; // corr bkg: π+ π−
373+ }
374+ if (d0DecayChannel == 4 ) {
375+ category = 4 ; // corr bkg: π+ π− π0
376+ }
377+ if (d0DecayChannel == 5 ) {
378+ category = 5 ; // corr bkg: K+ K−
379+ }
380+
381+
382+
363383
364384 tableD0McDetector (tableCollision.lastIndex (), // might want to add some more detector level D0 quantities like prompt or non prompt info
365385 scores[2 ],
@@ -370,9 +390,7 @@ struct JetCorrelationD0 {
370390 d0Candidate.eta (),
371391 d0Candidate.phi (),
372392 d0Candidate.y (),
373- matchedFrom,
374- selectedAs,
375- d0DecayChannel);
393+ category);
376394 for (const auto & jet : jets) {
377395 if (jet.pt () < jetPtCutMin) {
378396 continue ;
0 commit comments