Skip to content

Commit c04e323

Browse files
Ptak07alibuild
andauthored
[PWGCF] feat: integrate angular histograms into PairHistManager (#15973)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 3227a46 commit c04e323

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

PWGCF/Femto/Core/pairHistManager.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
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

169178
struct 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

Comments
 (0)