Skip to content

Commit 45cb080

Browse files
committed
Feat: add different types of mT
1 parent c508a2e commit 45cb080

File tree

2 files changed

+33
-7
lines changed

2 files changed

+33
-7
lines changed

PWGCF/Femto/Core/modes.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,15 @@ enum class System : uint32_t {
6666
};
6767

6868
enum class MomentumType : o2::aod::femtodatatypes::MomentumType {
69-
kPt, // transverse momentum
70-
kPAtPv, // momentum at primary vertex
71-
kPTpc, // momentum at inner wall of tpc
69+
kPt = 0, // transverse momentum
70+
kPAtPv = 1, // momentum at primary vertex
71+
kPTpc = 2, // momentum at inner wall of tpc
7272
};
7373

7474
enum class TransverseMassType : o2::aod::femtodatatypes::TransverseMassType {
75-
kAveragePdgMass,
76-
kReducedPdgMass,
77-
kMt4Vector
75+
kAveragePdgMass = 0,
76+
kReducedPdgMass = 1,
77+
kMt4Vector = 2
7878
};
7979

8080
enum class Particle : o2::aod::femtodatatypes::ParticleType {

PWGCF/Femto/Core/pairHistManager.h

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ struct ConfPairBinning : o2::framework::ConfigurableGroup {
114114
o2::framework::ConfigurableAxis pt2{"pt2", {{100, 0, 6}}, "Pt binning for particle 2"};
115115
o2::framework::ConfigurableAxis mass1{"mass1", {{100, 0, 2}}, "Mass binning for particle 1 (if particle has mass getter)"};
116116
o2::framework::ConfigurableAxis mass2{"mass2", {{100, 0, 2}}, "Mass binning for particle 2 (if particle has mass getter)"};
117+
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)"};
117118
};
118119

119120
struct ConfPairCuts : o2::framework::ConfigurableGroup {
@@ -254,6 +255,9 @@ class PairHistManager
254255
mPlotKstarVsMass2VsMult = ConfPairBinning.plotKstarVsMass2VsMult.value;
255256
mPlotKstarVsMass1VsMass2VsMult = ConfPairBinning.plotKstarVsMass1VsMass2VsMult.value;
256257

258+
// transverse mass type
259+
mMtType = static_cast<modes::TransverseMassType>(ConfPairBinning.transverseMassType.value);
260+
257261
// values for cuts
258262
mKstarMin = ConfPairCuts.kstarMin.value;
259263
mKstarMax = ConfPairCuts.kstarMax.value;
@@ -276,6 +280,7 @@ class PairHistManager
276280
mPdgMass1 = o2::analysis::femto::utils::getMass(PdgParticle1);
277281
mPdgMass2 = o2::analysis::femto::utils::getMass(PdgParticle2);
278282
mPdgAverageMass = (mPdgMass1 + mPdgMass2) / 2.f;
283+
mPdgReducedMass = (mPdgMass1 * mPdgMass2) / (mPdgMass1 + mPdgMass2);
279284
}
280285
void setCharge(int chargeAbsParticle1, int chargeAbsParticle2)
281286
{
@@ -298,7 +303,7 @@ class PairHistManager
298303
mKt = partSum.Pt() / 2.f;
299304

300305
// set mT
301-
mMt = std::hypot(mKt, mPdgAverageMass);
306+
computeMt(partSum);
302307

303308
// Boost particle to the pair rest frame (Prf) and calculate k* (would be equivalent using particle 2)
304309
// make a copy of particle 1
@@ -488,10 +493,31 @@ class PairHistManager
488493
}
489494
}
490495

496+
void computeMt(ROOT::Math::PtEtaPhiMVector const& PairMomentum)
497+
{
498+
switch (mMtType) {
499+
case modes::TransverseMassType::kAveragePdgMass:
500+
mMt = std::hypot(PairMomentum.Pt() / 2.f, mPdgAverageMass);
501+
break;
502+
case modes::TransverseMassType::kReducedPdgMass:
503+
mMt = std::hypot(PairMomentum.Pt() / 2.f, mPdgReducedMass);
504+
break;
505+
case modes::TransverseMassType::kMt4Vector:
506+
mMt = PairMomentum.Mt() / 2.f;
507+
break;
508+
default:
509+
mMt = std::hypot(mKt, mPdgAverageMass);
510+
};
511+
}
512+
491513
o2::framework::HistogramRegistry* mHistogramRegistry = nullptr;
492514
float mPdgMass1 = 0.f;
493515
float mPdgMass2 = 0.f;
516+
517+
modes::TransverseMassType mMtType = modes::TransverseMassType::kAveragePdgMass;
494518
float mPdgAverageMass = 0.f;
519+
float mPdgReducedMass = 0.f;
520+
495521
int mAbsCharge1 = 1;
496522
int mAbsCharge2 = 1;
497523
ROOT::Math::PtEtaPhiMVector mParticle1{};

0 commit comments

Comments
 (0)