Skip to content

Commit 3cb9fde

Browse files
committed
Feat: add histograms for angles between pairs
1 parent 3f1cd40 commit 3cb9fde

1 file changed

Lines changed: 142 additions & 0 deletions

File tree

‎PWGCF/Femto/Core/pairHistManager.h‎

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
#include <Framework/HistogramSpec.h>
3030
#include <Framework/Logger.h>
3131

32+
#include <Math/Vector3D.h> // IWYU pragma: keep (do not replace with Math/Vector3Dfwd.h)
33+
#include <Math/Vector3Dfwd.h>
3234
#include <Math/Vector4D.h> // IWYU pragma: keep (do not replace with Math/Vector4Dfwd.h)
3335
#include <Math/Vector4Dfwd.h>
3436
#include <TH1.h>
@@ -105,6 +107,19 @@ enum PairHist {
105107
kKstarVsMtVsMinvVsKtVsPt1VsPt2VsMultVsCent,
106108
// dalitz plots
107109
kDalitz, // between a track and pos/neg daughter of another particle
110+
// angles
111+
kAlpha, // angle between pT1 and pT2 of the paritcles in the lab frame
112+
kAlphaVsKstar,
113+
kAlphaVsKt,
114+
kAlphaVsMt,
115+
kBetaLab, // angle between kT and kstar in lab frame
116+
kBetaLabVsKstar,
117+
kBetaLabVsKt,
118+
kBetaLabVsMt,
119+
kKstarVsAlphaVsMtVsMult,
120+
kKstarVsAlphaVsMtVsPt1VsPt2VsMult,
121+
kKstarVsBetaLabVsMtVsMult,
122+
kKstarVsBetaLabVsMtVsPt1VsPt2VsMult,
108123
// reco-vs-mc-truth correlation (requires BOTH a reco pair and matched mc info)
109124
kTrueKstarVsKstar,
110125
kTrueKtVsKt,
@@ -213,6 +228,14 @@ struct ConfPairBinning : o2::framework::ConfigurableGroup {
213228
o2::framework::Configurable<bool> plotKstarVsMtVsMinvVsKtVsPt1VsPt2VsMultVsCent{"plotKstarVsMtVsMinvVsKtVsPt1VsPt2VsMultVsCent", false, "(Reco) Enable 8D histogram (Kstar Vs Mt Vs Minv Vs Kt Vs Pt1 Vs Pt2 Vs Mult Vs Cent)"};
214229
o2::framework::Configurable<bool> plotDalitz{"plotDalitz", false, "(Reco) Enable dalitz plot. Not supported for pure mc-truth pairs (no trackTable/daughter structure)"};
215230
o2::framework::Configurable<bool> plotDeltaEtaDeltaPhi{"plotDeltaEtaDeltaPhi", false, "(Reco/Mc) Plot #Delta#phi vs #Delta#eta"};
231+
o2::framework::Configurable<bool> plotAlpha{"plotAlpha", false, "(Reco/Mc) Plot alpha (angle between pT1 and pT2) 1D distribution, and (if plot2D) vs kstar/kT/mT"};
232+
o2::framework::ConfigurableAxis alpha{"alpha", {{180, -o2::constants::math::PI, o2::constants::math::PI}}, "alpha (angle between pT1 and pT2)"};
233+
o2::framework::Configurable<bool> plotKstarVsAlphaVsMtVsMult{"plotKstarVsAlphaVsMtVsMult", false, "(Reco/Mc) Enable 4D histogram (Kstar Vs Alpha Vs Mt Vs Mult)"};
234+
o2::framework::Configurable<bool> plotKstarVsAlphaVsMtVsPt1VsPt2VsMult{"plotKstarVsAlphaVsMtVsPt1VsPt2VsMult", false, "(Reco/Mc) Enable 6D histogram (Kstar Vs Alpha Vs Mt Vs Pt1 Vs Pt2 Vs Mult)"};
235+
o2::framework::Configurable<bool> plotBetaLab{"plotBetaLab", false, "(Reco/Mc) Plot betaLab (angle between kT and k* in lab frame) 1D distribution, and (if plot2D) vs kstar/kT/mT"};
236+
o2::framework::ConfigurableAxis betaLab{"betaLab", {{90, 0.f, o2::constants::math::PI}}, "betaLab (angle between kT and k* in lab frame)"};
237+
o2::framework::Configurable<bool> plotKstarVsBetaLabVsMtVsMult{"plotKstarVsBetaLabVsMtVsMult", false, "(Reco/Mc) Enable 4D histogram (Kstar Vs BetaLab Vs Mt Vs Mult)"};
238+
o2::framework::Configurable<bool> plotKstarVsBetaLabVsMtVsPt1VsPt2VsMult{"plotKstarVsBetaLabVsMtVsPt1VsPt2VsMult", false, "(Reco/Mc) Enable 6D histogram (Kstar Vs BetaLab Vs Mt Vs Pt1 Vs Pt2 Vs Mult)"};
216239
o2::framework::ConfigurableAxis kstar{"kstar", {{600, 0, 6}}, "kstar"};
217240
o2::framework::ConfigurableAxis kt{"kt", {{600, 0, 6}}, "kt"};
218241
o2::framework::ConfigurableAxis mt{"mt", {{500, 0.8, 5.8}}, "mt"};
@@ -355,6 +378,19 @@ constexpr std::array<histmanager::HistInfo<PairHist>, kPairHistogramLast>
355378
{kMeVtz1VsMult1VsCent1VsVtz2VsMult2VsCent2, o2::framework::HistType::kTHnSparseF, "hVtz1VsMult1VsCent1VsVtz2VsMult2VsCent2", "Mixing bins; V_{z,1} (cm); multiplicity_{1}; centrality_{1} (%); V_{z,2} (cm); multiplicity_{2}; centrality_{2} (%)"},
356379
// angular
357380
{kDeltaEtaDeltaPhi, o2::framework::HistType::kTH2F, "hDeltaEtaDeltaPhi", "#Delta#phi vs #Delta#eta; #Delta#phi; #Delta#eta"},
381+
// angles
382+
{kAlpha, o2::framework::HistType::kTH1F, "hAlpha", "angle between p_{T,1} and p_{T,2}; #alpha; Entries"},
383+
{kAlphaVsKstar, o2::framework::HistType::kTH2F, "hAlphaVsKstar", "#alpha vs k*; #alpha; k* (GeV/#it{c})"},
384+
{kAlphaVsKt, o2::framework::HistType::kTH2F, "hAlphaVsKt", "#alpha vs k_{T}; #alpha; k_{T} (GeV/#it{c})"},
385+
{kAlphaVsMt, o2::framework::HistType::kTH2F, "hAlphaVsMt", "#alpha vs m_{T}; #alpha; m_{T} (GeV/#it{c}^{2})"},
386+
{kBetaLab, o2::framework::HistType::kTH1F, "hBetaLab", "angle between k_{T} and k* (lab frame); #beta_{lab}; Entries"},
387+
{kBetaLabVsKstar, o2::framework::HistType::kTH2F, "hBetaLabVsKstar", "#beta_{lab} vs k*; #beta_{lab}; k* (GeV/#it{c})"},
388+
{kBetaLabVsKt, o2::framework::HistType::kTH2F, "hBetaLabVsKt", "#beta_{lab} vs k_{T}; #beta_{lab}; k_{T} (GeV/#it{c})"},
389+
{kBetaLabVsMt, o2::framework::HistType::kTH2F, "hBetaLabVsMt", "#beta_{lab} vs m_{T}; #beta_{lab}; m_{T} (GeV/#it{c}^{2})"},
390+
{kKstarVsAlphaVsMtVsMult, o2::framework::HistType::kTHnSparseF, "hKstarVsAlphaVsMtVsMult", "k* vs #alpha vs m_{T} vs multiplicity; k* (GeV/#it{c}); #alpha; m_{T} (GeV/#it{c}^{2}); Multiplicity;"},
391+
{kKstarVsAlphaVsMtVsPt1VsPt2VsMult, o2::framework::HistType::kTHnSparseF, "hKstarVsAlphaVsMtVsPt1VsPt2VsMult", "k* vs #alpha vs m_{T} vs p_{T,1} vs p_{T,2} vs multiplicity; k* (GeV/#it{c}); #alpha; m_{T} (GeV/#it{c}^{2}); p_{T,1} (GeV/#it{c}); p_{T,2} (GeV/#it{c}); Multiplicity;"},
392+
{kKstarVsBetaLabVsMtVsMult, o2::framework::HistType::kTHnSparseF, "hKstarVsBetaLabVsMtVsMult", "k* vs #beta_{lab} vs m_{T} vs multiplicity; k* (GeV/#it{c}); #beta_{lab}; m_{T} (GeV/#it{c}^{2}); Multiplicity;"},
393+
{kKstarVsBetaLabVsMtVsPt1VsPt2VsMult, o2::framework::HistType::kTHnSparseF, "hKstarVsBetaLabVsMtVsPt1VsPt2VsMult", "k* vs #beta_{lab} vs m_{T} vs p_{T,1} vs p_{T,2} vs multiplicity; k* (GeV/#it{c}); #beta_{lab}; m_{T} (GeV/#it{c}^{2}); p_{T,1} (GeV/#it{c}); p_{T,2} (GeV/#it{c}); Multiplicity;"},
358394
// Bertsch-Pratt 3D decomposition in LCMS
359395
{kQout, o2::framework::HistType::kTH1F, "hQout", "q_{out} in LCMS; q_{out} (GeV/#it{c}); Entries"},
360396
{kQside, o2::framework::HistType::kTH1F, "hQside", "q_{side} in LCMS; q_{side} (GeV/#it{c}); Entries"},
@@ -410,6 +446,18 @@ constexpr std::array<histmanager::HistInfo<PairHist>, kPairHistogramLast>
410446
{kKstarVsMtVsMinvVsKtVsPt1VsPt2VsMultVsCent, {(confAnalysis).kstar, (confAnalysis).mt, (confAnalysis).massInv, (confAnalysis).kt, (confAnalysis).pt1, (confAnalysis).pt2, (confAnalysis).multiplicity, (confAnalysis).centrality}}, \
411447
{kDalitz, {(confAnalysis).kstar, (confAnalysis).dalitzMtot, (confAnalysis).dalitzM12, (confAnalysis).dalitzM13}}, \
412448
{kDeltaEtaDeltaPhi, {(confAnalysis).binningDeltaPhi, (confAnalysis).binningDeltaEta}}, \
449+
{kAlpha, {(confAnalysis).alpha}}, \
450+
{kAlphaVsKstar, {(confAnalysis).alpha, (confAnalysis).kstar}}, \
451+
{kAlphaVsKt, {(confAnalysis).alpha, (confAnalysis).kt}}, \
452+
{kAlphaVsMt, {(confAnalysis).alpha, (confAnalysis).mt}}, \
453+
{kBetaLab, {(confAnalysis).betaLab}}, \
454+
{kBetaLabVsKstar, {(confAnalysis).betaLab, (confAnalysis).kstar}}, \
455+
{kBetaLabVsKt, {(confAnalysis).betaLab, (confAnalysis).kt}}, \
456+
{kBetaLabVsMt, {(confAnalysis).betaLab, (confAnalysis).mt}}, \
457+
{kKstarVsAlphaVsMtVsMult, {(confAnalysis).kstar, (confAnalysis).alpha, (confAnalysis).mt, (confAnalysis).multiplicity}}, \
458+
{kKstarVsAlphaVsMtVsPt1VsPt2VsMult, {(confAnalysis).kstar, (confAnalysis).alpha, (confAnalysis).mt, (confAnalysis).pt1, (confAnalysis).pt2, (confAnalysis).multiplicity}}, \
459+
{kKstarVsBetaLabVsMtVsMult, {(confAnalysis).kstar, (confAnalysis).betaLab, (confAnalysis).mt, (confAnalysis).multiplicity}}, \
460+
{kKstarVsBetaLabVsMtVsPt1VsPt2VsMult, {(confAnalysis).kstar, (confAnalysis).betaLab, (confAnalysis).mt, (confAnalysis).pt1, (confAnalysis).pt2, (confAnalysis).multiplicity}}, \
413461
{kQout, {(confAnalysis).qout}}, \
414462
{kQside, {(confAnalysis).qside}}, \
415463
{kQlong, {(confAnalysis).qlong}}, \
@@ -588,6 +636,12 @@ class PairHistManager
588636

589637
mPlotDalitz = ConfPairBinning.plotDalitz.value;
590638
mPlotDeltaEtaDeltaPhi = ConfPairBinning.plotDeltaEtaDeltaPhi.value;
639+
mPlotAlpha = ConfPairBinning.plotAlpha.value;
640+
mPlotKstarVsAlphaVsMtVsMult = ConfPairBinning.plotKstarVsAlphaVsMtVsMult.value;
641+
mPlotKstarVsAlphaVsMtVsPt1VsPt2VsMult = ConfPairBinning.plotKstarVsAlphaVsMtVsPt1VsPt2VsMult.value;
642+
mPlotBetaLab = ConfPairBinning.plotBetaLab.value;
643+
mPlotKstarVsBetaLabVsMtVsMult = ConfPairBinning.plotKstarVsBetaLabVsMtVsMult.value;
644+
mPlotKstarVsBetaLabVsMtVsPt1VsPt2VsMult = ConfPairBinning.plotKstarVsBetaLabVsMtVsPt1VsPt2VsMult.value;
591645
mPlotBertschPratt = ConfPairBinning.plotBertschPratt.value;
592646
mPlotEventShape = ConfPairBinning.plotEventShape.value;
593647

@@ -1004,6 +1058,34 @@ class PairHistManager
10041058
if (mPlotDeltaEtaDeltaPhi) {
10051059
mHistogramRegistry->add(analysisDir + getHistNameV2(kDeltaEtaDeltaPhi, HistTable), getHistDesc(kDeltaEtaDeltaPhi, HistTable), getHistType(kDeltaEtaDeltaPhi, HistTable), {Specs.at(kDeltaEtaDeltaPhi)});
10061060
}
1061+
if (mPlotAlpha) {
1062+
mHistogramRegistry->add(analysisDir + getHistNameV2(kAlpha, HistTable), getHistDesc(kAlpha, HistTable), getHistType(kAlpha, HistTable), {Specs.at(kAlpha)});
1063+
if (mPlot2d) {
1064+
mHistogramRegistry->add(analysisDir + getHistNameV2(kAlphaVsKstar, HistTable), getHistDesc(kAlphaVsKstar, HistTable), getHistType(kAlphaVsKstar, HistTable), {Specs.at(kAlphaVsKstar)});
1065+
mHistogramRegistry->add(analysisDir + getHistNameV2(kAlphaVsKt, HistTable), getHistDesc(kAlphaVsKt, HistTable), getHistType(kAlphaVsKt, HistTable), {Specs.at(kAlphaVsKt)});
1066+
mHistogramRegistry->add(analysisDir + getHistNameV2(kAlphaVsMt, HistTable), getHistDesc(kAlphaVsMt, HistTable), getHistType(kAlphaVsMt, HistTable), {Specs.at(kAlphaVsMt)});
1067+
}
1068+
}
1069+
if (mPlotKstarVsAlphaVsMtVsMult) {
1070+
mHistogramRegistry->add(analysisDir + getHistNameV2(kKstarVsAlphaVsMtVsMult, HistTable), getHistDesc(kKstarVsAlphaVsMtVsMult, HistTable), getHistType(kKstarVsAlphaVsMtVsMult, HistTable), {Specs.at(kKstarVsAlphaVsMtVsMult)});
1071+
}
1072+
if (mPlotKstarVsAlphaVsMtVsPt1VsPt2VsMult) {
1073+
mHistogramRegistry->add(analysisDir + getHistNameV2(kKstarVsAlphaVsMtVsPt1VsPt2VsMult, HistTable), getHistDesc(kKstarVsAlphaVsMtVsPt1VsPt2VsMult, HistTable), getHistType(kKstarVsAlphaVsMtVsPt1VsPt2VsMult, HistTable), {Specs.at(kKstarVsAlphaVsMtVsPt1VsPt2VsMult)});
1074+
}
1075+
if (mPlotBetaLab) {
1076+
mHistogramRegistry->add(analysisDir + getHistNameV2(kBetaLab, HistTable), getHistDesc(kBetaLab, HistTable), getHistType(kBetaLab, HistTable), {Specs.at(kBetaLab)});
1077+
if (mPlot2d) {
1078+
mHistogramRegistry->add(analysisDir + getHistNameV2(kBetaLabVsKstar, HistTable), getHistDesc(kBetaLabVsKstar, HistTable), getHistType(kBetaLabVsKstar, HistTable), {Specs.at(kBetaLabVsKstar)});
1079+
mHistogramRegistry->add(analysisDir + getHistNameV2(kBetaLabVsKt, HistTable), getHistDesc(kBetaLabVsKt, HistTable), getHistType(kBetaLabVsKt, HistTable), {Specs.at(kBetaLabVsKt)});
1080+
mHistogramRegistry->add(analysisDir + getHistNameV2(kBetaLabVsMt, HistTable), getHistDesc(kBetaLabVsMt, HistTable), getHistType(kBetaLabVsMt, HistTable), {Specs.at(kBetaLabVsMt)});
1081+
}
1082+
}
1083+
if (mPlotKstarVsBetaLabVsMtVsMult) {
1084+
mHistogramRegistry->add(analysisDir + getHistNameV2(kKstarVsBetaLabVsMtVsMult, HistTable), getHistDesc(kKstarVsBetaLabVsMtVsMult, HistTable), getHistType(kKstarVsBetaLabVsMtVsMult, HistTable), {Specs.at(kKstarVsBetaLabVsMtVsMult)});
1085+
}
1086+
if (mPlotKstarVsBetaLabVsMtVsPt1VsPt2VsMult) {
1087+
mHistogramRegistry->add(analysisDir + getHistNameV2(kKstarVsBetaLabVsMtVsPt1VsPt2VsMult, HistTable), getHistDesc(kKstarVsBetaLabVsMtVsPt1VsPt2VsMult, HistTable), getHistType(kKstarVsBetaLabVsMtVsPt1VsPt2VsMult, HistTable), {Specs.at(kKstarVsBetaLabVsMtVsPt1VsPt2VsMult)});
1088+
}
10071089
if (mPlotBertschPratt) {
10081090
mHistogramRegistry->add(analysisDir + getHistNameV2(kQout, HistTable), getHistDesc(kQout, HistTable), getHistType(kQout, HistTable), {Specs.at(kQout)});
10091091
mHistogramRegistry->add(analysisDir + getHistNameV2(kQside, HistTable), getHistDesc(kQside, HistTable), getHistType(kQside, HistTable), {Specs.at(kQside)});
@@ -1262,6 +1344,13 @@ class PairHistManager
12621344
mDeltaPhi = RecoDecay::constrainAngle(particle1.phi() - particle2.phi(), -o2::constants::math::PIHalf);
12631345
}
12641346

1347+
if (mPlotAlpha || mPlotKstarVsAlphaVsMtVsMult || mPlotKstarVsAlphaVsMtVsPt1VsPt2VsMult) {
1348+
mAlpha = getAlpha(mParticle1, mParticle2);
1349+
}
1350+
if (mPlotBetaLab || mPlotKstarVsBetaLabVsMtVsMult || mPlotKstarVsBetaLabVsMtVsPt1VsPt2VsMult) {
1351+
mBetaLab = getBetaLab(mParticle1, mParticle2);
1352+
}
1353+
12651354
if (mPlotDalitz) {
12661355
if constexpr (modes::isEqual(particleType1, modes::Particle::kTrack) && (modes::isEqual(particleType2, modes::Particle::kV0) || modes::isEqual(particleType2, modes::Particle::kTwoTrackResonance) || modes::isEqual(particleType2, modes::Particle::kCharmHadron)) &&
12671356
requires(T2 p) { p.posDauId(); p.negDauId(); }) {
@@ -1372,6 +1461,34 @@ class PairHistManager
13721461
if (mPlotDeltaEtaDeltaPhi) {
13731462
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kDeltaEtaDeltaPhi, HistTable)), mDeltaPhi, mDeltaEta);
13741463
}
1464+
if (mPlotAlpha) {
1465+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kAlpha, HistTable)), mAlpha);
1466+
if (mPlot2d) {
1467+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kAlphaVsKstar, HistTable)), mAlpha, mKstar);
1468+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kAlphaVsKt, HistTable)), mAlpha, mKt);
1469+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kAlphaVsMt, HistTable)), mAlpha, mMt);
1470+
}
1471+
}
1472+
if (mPlotKstarVsAlphaVsMtVsMult) {
1473+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kKstarVsAlphaVsMtVsMult, HistTable)), mKstar, mAlpha, mMt, mMult);
1474+
}
1475+
if (mPlotKstarVsAlphaVsMtVsPt1VsPt2VsMult) {
1476+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kKstarVsAlphaVsMtVsPt1VsPt2VsMult, HistTable)), mKstar, mAlpha, mMt, mParticle1.Pt(), mParticle2.Pt(), mMult);
1477+
}
1478+
if (mPlotBetaLab) {
1479+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kBetaLab, HistTable)), mBetaLab);
1480+
if (mPlot2d) {
1481+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kBetaLabVsKstar, HistTable)), mBetaLab, mKstar);
1482+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kBetaLabVsKt, HistTable)), mBetaLab, mKt);
1483+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kBetaLabVsMt, HistTable)), mBetaLab, mMt);
1484+
}
1485+
}
1486+
if (mPlotKstarVsBetaLabVsMtVsMult) {
1487+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kKstarVsBetaLabVsMtVsMult, HistTable)), mKstar, mBetaLab, mMt, mMult);
1488+
}
1489+
if (mPlotKstarVsBetaLabVsMtVsPt1VsPt2VsMult) {
1490+
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kKstarVsBetaLabVsMtVsPt1VsPt2VsMult, HistTable)), mKstar, mBetaLab, mMt, mParticle1.Pt(), mParticle2.Pt(), mMult);
1491+
}
13751492
if (mPlotBertschPratt) {
13761493
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kQout, HistTable)), mQout);
13771494
mHistogramRegistry->fill(HIST(prefix) + HIST(AnalysisDir) + HIST(getHistName(kQside, HistTable)), mQside);
@@ -1537,6 +1654,22 @@ class PairHistManager
15371654
return static_cast<float>(0.5 * std::sqrt(std::max(0.0, kallen) / s));
15381655
}
15391656

1657+
float getAlpha(ROOT::Math::PtEtaPhiMVector const& part1, ROOT::Math::PtEtaPhiMVector const& part2)
1658+
{
1659+
return static_cast<float>(RecoDecay::constrainAngle(part2.phi() - part1.phi(), -o2::constants::math::PI));
1660+
}
1661+
1662+
float getBetaLab(ROOT::Math::PtEtaPhiMVector const& part1, ROOT::Math::PtEtaPhiMVector const& part2)
1663+
{
1664+
ROOT::Math::XYZVector p1(part1.Px(), part1.Py(), part1.Pz());
1665+
ROOT::Math::XYZVector p2(part2.Px(), part2.Py(), part2.Pz());
1666+
1667+
ROOT::Math::XYZVector kstar = p1 - p2;
1668+
ROOT::Math::XYZVector kt = p1 + p2;
1669+
1670+
return static_cast<float>(std::acos(kstar.Dot(kt) / std::sqrt(kstar.Mag2() * kt.Mag2())));
1671+
}
1672+
15401673
std::tuple<float, float, float> computeBertschPrattLCMS(ROOT::Math::PtEtaPhiMVector const& part1, ROOT::Math::PtEtaPhiMVector const& part2)
15411674
{
15421675
const ROOT::Math::PxPyPzEVector p1(part1);
@@ -1700,6 +1833,8 @@ class PairHistManager
17001833
double mMass12 = 0.;
17011834
double mMass13 = 0.;
17021835
double mMassTot2 = 0.;
1836+
float mAlpha = 0.f;
1837+
float mBetaLab = 0.f;
17031838

17041839
// mc (used for both reco-vs-truth correlation AND pure mc-truth-only pairs —
17051840
// for the latter, these are simply the primary/only kinematic values, not a
@@ -1762,6 +1897,13 @@ class PairHistManager
17621897
bool mPlotDalitz = false;
17631898
bool mPlotDeltaEtaDeltaPhi = false;
17641899

1900+
bool mPlotAlpha = false;
1901+
bool mPlotKstarVsAlphaVsMtVsMult = false;
1902+
bool mPlotKstarVsAlphaVsMtVsPt1VsPt2VsMult = false;
1903+
bool mPlotBetaLab = false;
1904+
bool mPlotKstarVsBetaLabVsMtVsMult = false;
1905+
bool mPlotKstarVsBetaLabVsMtVsPt1VsPt2VsMult = false;
1906+
17651907
bool mPlotBertschPratt = false;
17661908

17671909
bool mPlotEventShape = false;

0 commit comments

Comments
 (0)