2020#include " PWGCF/Femto/Core/histManager.h"
2121#include " PWGCF/Femto/Core/modes.h"
2222
23+ #include < Common/Core/RecoDecay.h>
24+
25+ #include < CommonConstants/MathConstants.h>
2326#include < Framework/Configurable.h>
2427#include < Framework/HistogramRegistry.h>
2528#include < Framework/HistogramSpec.h>
@@ -105,6 +108,9 @@ enum PairHist {
105108 kMeNpart1VsNpart2 , // number of unique particles 1 vs number of unique particles 2 in each mixed event
106109 kMeVtz1VsMult1VsCent1VsVtz2VsMult2VsCent2 , // correlation of event properties in each mixing bin
107110
111+ // angular
112+ kDeltaEtaDeltaPhi ,
113+
108114 kPairHistogramLast
109115};
110116
@@ -150,6 +156,7 @@ struct ConfPairBinning : o2::framework::ConfigurableGroup {
150156 o2::framework::Configurable<bool > plotKstarVsMtVsMinv1VsPt1VsPt2VsMult{" plotKstarVsMtVsMinv1VsPt1VsPt2VsMult" , false , " Enable 6D histogram (Kstar Vs Mt Vs Minv Vs Pt1 Vs Pt2 Vs Mult)" };
151157 o2::framework::Configurable<bool > plotKstarVsMtVsMinv1VsPt1VsPt2VsMultVsCent{" plotKstarVsMtVsMinv1VsPt1VsPt2VsMultVsCent" , false , " Enable 7D histogram (Kstar Vs Mt Vs Minv Vs Pt1 Vs Pt2 Vs Mult Vs Cent)" };
152158 o2::framework::Configurable<bool > plotDalitz{" plotDalitz" , false , " Enable dalitz plot" };
159+ o2::framework::Configurable<bool > plotDeltaEtaDeltaPhi{" plotDeltaEtaDeltaPhi" , false , " Plot #Delta#phi vs #Delta#eta" };
153160 o2::framework::ConfigurableAxis kstar{" kstar" , {{600 , 0 , 6 }}, " kstar" };
154161 o2::framework::ConfigurableAxis kt{" kt" , {{600 , 0 , 6 }}, " kt" };
155162 o2::framework::ConfigurableAxis mt{" mt" , {{500 , 0.8 , 5.8 }}, " mt" };
@@ -164,6 +171,8 @@ struct ConfPairBinning : o2::framework::ConfigurableGroup {
164171 o2::framework::ConfigurableAxis dalitzM12{" dalitzM12" , {{100 , 0 , 10 }}, " Mass12 binning of darlitz plot" };
165172 o2::framework::ConfigurableAxis dalitzM13{" dalitzM13" , {{100 , 0 , 10 }}, " Mass13 binning of darlitz plot" };
166173 o2::framework::Configurable<int > transverseMassType{" transverseMassType" , static_cast <int >(modes::TransverseMassType::kAveragePdgMass ), " Type of transverse mass (0-> Average Pdg Mass, 1-> Reduced Pdg Mass, 2-> Mt from combined 4 vector)" };
174+ o2::framework::ConfigurableAxis binningDeltaEta{" binningDeltaEta" , {{35 , -1.6 , 1.6 }}, " Delta eta" };
175+ o2::framework::ConfigurableAxis binningDeltaPhi{" binningDeltaPhi" , {{35 , -o2::constants::math::PI / 2 , 3 * o2::constants::math::PI / 2 }}, " Delta phi" };
167176};
168177
169178struct ConfPairCuts : o2::framework::ConfigurableGroup {
@@ -238,6 +247,8 @@ constexpr std::array<histmanager::HistInfo<PairHist>, kPairHistogramLast>
238247 {kMeMixingWindowEffective , o2::framework::HistType::kTH1F , " hMeMixingWindowEffective" , " Effective Mixing Window; Effective Mixing Windown ; Entries" },
239248 {kMeNpart1VsNpart2 , o2::framework::HistType::kTH2F , " hMeNpart1VsNpart2" , " # unique particle 1 vs # unique partilce 2 in each mixing bin; # partilce 1; # particle 2" },
240249 {kMeVtz1VsMult1VsCent1VsVtz2VsMult2VsCent2 , o2::framework::HistType::kTHnSparseF , " hVtz1VsMult1VsCent1VsVtz2VsMult2VsCent2" , " Mixing bins; V_{z,1} (cm); multiplicity_{1}; centrality_{1} (%); V_{z,2} (cm); multiplicity_{2}; centrality_{2} (%)" },
250+ // angular
251+ {kDeltaEtaDeltaPhi , o2::framework::HistType::kTH2F , " hDeltaEtaDeltaPhi" , " #Delta#phi vs #Delta#eta; #Delta#phi; #Delta#eta" },
241252 }};
242253
243254#define PAIR_HIST_ANALYSIS_MAP (confAnalysis, confMixing ) \
@@ -277,6 +288,7 @@ constexpr std::array<histmanager::HistInfo<PairHist>, kPairHistogramLast>
277288 {kKstarVsMtVsMinvVsPt1VsPt2VsMult , {confAnalysis.kstar , confAnalysis.mt , confAnalysis.massInv , confAnalysis.pt1 , confAnalysis.pt2 , confAnalysis.multiplicity }}, \
278289 {kKstarVsMtVsMinvVsPt1VsPt2VsMultVsCent , {confAnalysis.kstar , confAnalysis.mt , confAnalysis.massInv , confAnalysis.pt1 , confAnalysis.pt2 , confAnalysis.multiplicity , confAnalysis.centrality }}, \
279290 {kDalitz , {confAnalysis.kstar , confAnalysis.dalitzMtot , confAnalysis.dalitzM12 , confAnalysis.dalitzM13 }}, \
291+ {kDeltaEtaDeltaPhi , {confAnalysis.binningDeltaPhi , confAnalysis.binningDeltaEta }}, \
280292 {kSeNpart1VsNpart2 , {confMixing.particleBinning , confMixing.particleBinning }}, \
281293 {kMeMixingWindowRaw , {confMixing.particleBinning }}, \
282294 {kMeMixingWindowEffective , {confMixing.particleBinning }}, \
@@ -374,6 +386,7 @@ class PairHistManager
374386 mPlotKstarVsMtVsMinvVsPt1VsPt2VsMultVsCent = ConfPairBinning.plotKstarVsMtVsMinv1VsPt1VsPt2VsMultVsCent .value ;
375387
376388 mPlotDalitz = ConfPairBinning.plotDalitz .value ;
389+ mPlotDeltaEtaDeltaPhi = ConfPairBinning.plotDeltaEtaDeltaPhi .value ;
377390
378391 // transverse mass type
379392 mMtType = static_cast <modes::TransverseMassType>(ConfPairBinning.transverseMassType .value );
@@ -474,6 +487,11 @@ class PairHistManager
474487 // set kstar
475488 mKstar = getKstar (mParticle1 , mParticle2 );
476489
490+ if (mPlotDeltaEtaDeltaPhi ) {
491+ mDeltaEta = particle1.eta () - particle2.eta ();
492+ mDeltaPhi = RecoDecay::constrainAngle (particle1.phi () - particle2.phi (), -o2::constants::math::PI / 2 );
493+ }
494+
477495 if (mPlotDalitz ) {
478496 if constexpr (modes::isEqual (particleType1, modes::Particle::kTrack ) && modes::isEqual (particleType2, modes::Particle::kV0 )) {
479497 auto posDaughter = trackTable.rawIteratorAt (particle2.posDauId () - trackTable.offset ());
@@ -713,6 +731,9 @@ class PairHistManager
713731 if (mPlotDalitz ) {
714732 mHistogramRegistry ->add (analysisDir + getHistNameV2 (kDalitz , HistTable), getHistDesc (kDalitz , HistTable), getHistType (kDalitz , HistTable), {Specs.at (kDalitz )});
715733 }
734+ if (mPlotDeltaEtaDeltaPhi ) {
735+ mHistogramRegistry ->add (analysisDir + getHistNameV2 (kDeltaEtaDeltaPhi , HistTable), getHistDesc (kDeltaEtaDeltaPhi , HistTable), getHistType (kDeltaEtaDeltaPhi , HistTable), {Specs.at (kDeltaEtaDeltaPhi )});
736+ }
716737 }
717738
718739 void initMc (std::map<PairHist, std::vector<o2::framework::AxisSpec>> const & Specs)
@@ -825,6 +846,9 @@ class PairHistManager
825846 if (mPlotDalitz ) {
826847 mHistogramRegistry ->fill (HIST (prefix) + HIST (AnalysisDir) + HIST (getHistName (kDalitz , HistTable)), mKstar , mMassTot2 , mMass12 , mMass13 );
827848 }
849+ if (mPlotDeltaEtaDeltaPhi ) {
850+ mHistogramRegistry ->fill (HIST (prefix) + HIST (AnalysisDir) + HIST (getHistName (kDeltaEtaDeltaPhi , HistTable)), mDeltaPhi , mDeltaEta );
851+ }
828852 }
829853
830854 void fillMc ()
@@ -963,6 +987,10 @@ class PairHistManager
963987 bool mPlotKstarVsMtVsMinvVsPt1VsPt2VsMultVsCent = false ;
964988
965989 bool mPlotDalitz = false ;
990+ bool mPlotDeltaEtaDeltaPhi = false ;
991+
992+ float mDeltaEta = 0 .f;
993+ float mDeltaPhi = 0 .f;
966994
967995 // qa
968996 bool mPairCorrelationQa = false ;
0 commit comments