Skip to content

Commit ca8d7b6

Browse files
IgorPtakalibuild
andauthored
[PWGCF] Add Bertsch-Pratt LCMS decomposition for MC data (#16951)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent f86101a commit ca8d7b6

1 file changed

Lines changed: 26 additions & 1 deletion

File tree

PWGCF/Femto/Core/pairHistManager.h

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,9 @@ enum PairHist {
125125
kTrueKstarVsMtVsPt1VsPt2,
126126
kTrueKstarVsMtVsPt1VsPt2VsMult,
127127
kTrueKstarVsMtVsPt1VsPt2VsMultVsCent,
128+
kTrueQoutVsQout,
129+
kTrueQsideVsQside,
130+
kTrueQlongVsQlong,
128131

129132
// mixing qa
130133
kSeNpart1VsNpart2, // number of unique particles 1 vs unique number of particles 2 in each same event
@@ -315,6 +318,9 @@ constexpr std::array<histmanager::HistInfo<PairHist>, kPairHistogramLast>
315318
{kQside, o2::framework::HistType::kTH1F, "hQside", "q_{side} in LCMS; q_{side} (GeV/#it{c}); Entries"},
316319
{kQlong, o2::framework::HistType::kTH1F, "hQlong", "q_{long} in LCMS; q_{long} (GeV/#it{c}); Entries"},
317320
{kQoutQsideQlong, o2::framework::HistType::kTH3F, "hQoutQsideQlong", "Bertsch-Pratt 3D; q_{out} (GeV/#it{c}); q_{side} (GeV/#it{c}); q_{long} (GeV/#it{c})"},
321+
{kTrueQoutVsQout, o2::framework::HistType::kTH2F, "hTrueQoutVsQout", "q_{out,True} vs q_{out}; q_{out,True} (GeV/#it{c}); q_{out} (GeV/#it{c})"},
322+
{kTrueQsideVsQside, o2::framework::HistType::kTH2F, "hTrueQsideVsQside", "q_{side,True} vs q_{side}; q_{side,True} (GeV/#it{c}); q_{side} (GeV/#it{c})"},
323+
{kTrueQlongVsQlong, o2::framework::HistType::kTH2F, "hTrueQlongVsQlong", "q_{long,True} vs q_{long}; q_{long,True} (GeV/#it{c}); q_{long} (GeV/#it{c})"},
318324
}};
319325

320326
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
@@ -378,7 +384,10 @@ constexpr std::array<histmanager::HistInfo<PairHist>, kPairHistogramLast>
378384
{kTrueMtVsMt, {(conf).mt, (conf).mt}}, \
379385
{kTrueMinvVsMinv, {(conf).massInv, (conf).massInv}}, \
380386
{kTrueMultVsMult, {(conf).multiplicity, (conf).multiplicity}}, \
381-
{kTrueCentVsCent, {(conf).centrality, (conf).centrality}},
387+
{kTrueCentVsCent, {(conf).centrality, (conf).centrality}}, \
388+
{kTrueQoutVsQout, {(conf).qout, (conf).qout}}, \
389+
{kTrueQsideVsQside, {(conf).qside, (conf).qside}}, \
390+
{kTrueQlongVsQlong, {(conf).qlong, (conf).qlong}},
382391

383392
// pure mc-truth pair (no reco counterpart) — reuses the same analysis binning,
384393
// since there is no separate "true" axis (conf)iguration: the truth value IS the
@@ -682,6 +691,11 @@ class PairHistManager
682691
mTrueMt = getMt(mTrueParticle1, mTrueParticle2);
683692
mTrueMinv = getMinv(mTrueParticle1, mTrueParticle2);
684693
mTrueKstar = getKstar(mTrueParticle1, mTrueParticle2);
694+
695+
if (mPlotBertschPratt) {
696+
std::tie(mTrueQout, mTrueQside, mTrueQlong) =
697+
computeBertschPrattLCMS(mTrueParticle1, mTrueParticle2);
698+
}
685699
}
686700

687701
template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
@@ -939,6 +953,12 @@ class PairHistManager
939953
mHistogramRegistry->add(mcDir + getHistNameV2(kTrueMinvVsMinv, HistTable), getHistDesc(kTrueMinvVsMinv, HistTable), getHistType(kTrueMinvVsMinv, HistTable), {Specs.at(kTrueMinvVsMinv)});
940954
mHistogramRegistry->add(mcDir + getHistNameV2(kTrueMultVsMult, HistTable), getHistDesc(kTrueMultVsMult, HistTable), getHistType(kTrueMultVsMult, HistTable), {Specs.at(kTrueMultVsMult)});
941955
mHistogramRegistry->add(mcDir + getHistNameV2(kTrueCentVsCent, HistTable), getHistDesc(kTrueCentVsCent, HistTable), getHistType(kTrueCentVsCent, HistTable), {Specs.at(kTrueCentVsCent)});
956+
957+
if (mPlotBertschPratt) {
958+
mHistogramRegistry->add(mcDir + getHistNameV2(kTrueQoutVsQout, HistTable), getHistDesc(kTrueQoutVsQout, HistTable), getHistType(kTrueQoutVsQout, HistTable), {Specs.at(kTrueQoutVsQout)});
959+
mHistogramRegistry->add(mcDir + getHistNameV2(kTrueQsideVsQside, HistTable), getHistDesc(kTrueQsideVsQside, HistTable), getHistType(kTrueQsideVsQside, HistTable), {Specs.at(kTrueQsideVsQside)});
960+
mHistogramRegistry->add(mcDir + getHistNameV2(kTrueQlongVsQlong, HistTable), getHistDesc(kTrueQlongVsQlong, HistTable), getHistType(kTrueQlongVsQlong, HistTable), {Specs.at(kTrueQlongVsQlong)});
961+
}
942962
}
943963

944964
// pure mc-truth pair (no reco counterpart, kMc without kReco) — reuses the
@@ -1115,6 +1135,11 @@ class PairHistManager
11151135
mHistogramRegistry->fill(HIST(prefix) + HIST(McDir) + HIST(getHistName(kTrueMultVsMult, HistTable)), mTrueMult, mMult);
11161136
mHistogramRegistry->fill(HIST(prefix) + HIST(McDir) + HIST(getHistName(kTrueCentVsCent, HistTable)), mTrueCent, mCent);
11171137
}
1138+
if (mHasMcPair && mPlotBertschPratt) {
1139+
mHistogramRegistry->fill(HIST(prefix) + HIST(McDir) + HIST(getHistName(kTrueQoutVsQout, HistTable)), mTrueQout, mQout);
1140+
mHistogramRegistry->fill(HIST(prefix) + HIST(McDir) + HIST(getHistName(kTrueQsideVsQside, HistTable)), mTrueQside, mQside);
1141+
mHistogramRegistry->fill(HIST(prefix) + HIST(McDir) + HIST(getHistName(kTrueQlongVsQlong, HistTable)), mTrueQlong, mQlong);
1142+
}
11181143
}
11191144

11201145
// pure mc-truth pair fill (kMc without kReco) — uses the same mTrue* members

0 commit comments

Comments
 (0)