@@ -52,7 +52,7 @@ AxisSpec axisDeltaPhi = {64, -o2::constants::math::PIHalf, 3. * o2::constants::m
5252AxisSpec axisPtD = {10 , 0 ., 10 ., " " };
5353AxisSpec axisPtHadron = {11 , 0 ., 11 ., " " };
5454AxisSpec axisPoolBin = {9 , 0 ., 9 ., " " };
55- AxisSpec axisCorrelationState = {2 , 0 ., 1 ., " " };
55+ AxisSpec axisCorrelationState = {2 , 0 ., 2 ., " " };
5656ConfigurableAxis axisMass{" axisMass" , {250 , 1 .65f , 2 .15f }, " " };
5757
5858// definition of vectors for standard ptbin and invariant mass configurables
@@ -180,7 +180,16 @@ struct HfTaskCorrelationD0Hadrons {
180180 // Toward Transverse Away
181181 {" hToward" , " Toward invmass; ptD; correlationState;entries" , {HistType::kTH3F , {{axisMass}, {axisPtD}, {axisCorrelationState}}}},
182182 {" hTransverse" , " Transverse invmass; ptD; correlationState;entries" , {HistType::kTH3F , {{axisMass}, {axisPtD}, {axisCorrelationState}}}},
183- {" hAway" , " Away invmass; ptD; correlationState;entries" , {HistType::kTH3F , {{axisMass}, {axisPtD}, {axisCorrelationState}}}}}};
183+ {" hAway" , " Away invmass; ptD; correlationState;entries" , {HistType::kTH3F , {{axisMass}, {axisPtD}, {axisCorrelationState}}}},
184+
185+ // Toward Transverse Away for McRec
186+ {" hTowardRec" , " Toward invmass; ptD; correlationState;entries" , {HistType::kTH3F , {{axisMass}, {axisPtD}, {axisCorrelationState}}}},
187+ {" hTransverseRec" , " Transverse invmass; ptD; correlationState;entries" , {HistType::kTH3F , {{axisMass}, {axisPtD}, {axisCorrelationState}}}},
188+ {" hAwayRec" , " Away invmass; ptD; correlationState;entries" , {HistType::kTH3F , {{axisMass}, {axisPtD}, {axisCorrelationState}}}},
189+ // Toward Transverse Away for McGen
190+ {" hTowardGen" , " Toward invmass; ptD; correlationState;entries" , {HistType::kTH3F , {{axisMass}, {axisPtD}, {axisCorrelationState}}}},
191+ {" hTransverseGen" , " Transverse invmass; ptD; correlationState;entries" , {HistType::kTH3F , {{axisMass}, {axisPtD}, {axisCorrelationState}}}},
192+ {" hAwayGen" , " Away invmass; ptD; correlationState;entries" , {HistType::kTH3F , {{axisMass}, {axisPtD}, {axisCorrelationState}}}}}};
184193 void init (InitContext&)
185194 {
186195 int nBinsPtAxis = binsCorrelations->size () - 1 ;
@@ -395,12 +404,32 @@ struct HfTaskCorrelationD0Hadrons {
395404 int signalStatus = pairEntry.signalStatus ();
396405 int ptBinD = o2::analysis::findBin (binsCorrelations, ptD);
397406 int poolBin = pairEntry.poolBin ();
407+ bool isAutoCorrelated = pairEntry.isAutoCorrelated ();
398408
399409 double efficiencyWeight = 1 .;
400410 if (applyEfficiency) {
401411 efficiencyWeight = 1 . / (efficiencyDmeson->at (o2::analysis::findBin (binsEfficiency, ptD)));
402412 }
403-
413+ if (isTowardTransverseAway) {
414+ // Divide into three regions: toward, transverse, and away
415+ if (ptHadron < leadingParticlePtMin) {
416+ continue ;
417+ }
418+ Region region = getRegion (deltaPhi);
419+ switch (region) {
420+ case Toward:
421+ registry.fill (HIST (" hTowardRec" ), massD, ptD, isAutoCorrelated, efficiencyWeight);
422+ break ;
423+ case Away:
424+ registry.fill (HIST (" hAwayRec" ), massD, ptD, isAutoCorrelated, efficiencyWeight);
425+ break ;
426+ case Transverse:
427+ registry.fill (HIST (" hTransverseRec" ), massD, ptD, isAutoCorrelated, efficiencyWeight);
428+ break ;
429+ default :
430+ break ;
431+ }
432+ }
404433 // fill correlation plots for signal/bagkground correlations
405434 if (pairEntry.signalStatus ()) {
406435 registry.fill (HIST (" hCorrel2DVsPtRecSig" ), deltaPhi, deltaEta, ptD, ptHadron, efficiencyWeight);
@@ -589,14 +618,35 @@ struct HfTaskCorrelationD0Hadrons {
589618 double ptD = pairEntry.ptD ();
590619 double ptHadron = pairEntry.ptHadron ();
591620 int poolBin = pairEntry.poolBin ();
621+ double massD = pairEntry.mD ();
622+ bool isAutoCorrelated = pairEntry.isAutoCorrelated ();
592623 // reject entries outside pT ranges of interest
593624 if (o2::analysis::findBin (binsCorrelations, ptD) < 0 ) {
594625 continue ;
595626 }
596627 if (ptHadron > ptHadronMax) {
597628 ptHadron = ptHadronMax + 0.5 ;
598629 }
599-
630+ if (isTowardTransverseAway) {
631+ // Divide into three regions: toward, transverse, and away
632+ if (ptHadron < leadingParticlePtMin) {
633+ continue ;
634+ }
635+ Region region = getRegion (deltaPhi);
636+ switch (region) {
637+ case Toward:
638+ registry.fill (HIST (" hTowardGen" ), massD, ptD, isAutoCorrelated);
639+ break ;
640+ case Away:
641+ registry.fill (HIST (" hAwayGen" ), massD, ptD, isAutoCorrelated);
642+ break ;
643+ case Transverse:
644+ registry.fill (HIST (" hTransverseGen" ), massD, ptD, isAutoCorrelated);
645+ break ;
646+ default :
647+ break ;
648+ }
649+ }
600650 registry.fill (HIST (" hCorrel2DVsPtGen" ), deltaPhi, deltaEta, ptD, ptHadron, poolBin);
601651 registry.fill (HIST (" hCorrel2DPtIntGen" ), deltaPhi, deltaEta);
602652 registry.fill (HIST (" hDeltaEtaPtIntGen" ), deltaEta);
0 commit comments