Skip to content

Commit 9206688

Browse files
committed
Add mini tree for 2-prong masses in Ds task
1 parent 2dff492 commit 9206688

2 files changed

Lines changed: 60 additions & 3 deletions

File tree

PWGHF/Core/HfHelper.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,30 @@ struct HfHelper {
271271
return RecoDecay::m(std::array{candidate.pVectorProng1(), candidate.pVectorProng2()}, std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassKPlus});
272272
}
273273

274+
template <typename T>
275+
static auto massKFirstPiPairDsToKKPi(const T& candidate)
276+
{
277+
return RecoDecay::m(std::array{candidate.pVectorProng0(), candidate.pVectorProng2()}, std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus});
278+
}
279+
280+
template <typename T>
281+
static auto massKFirstPiPairDsToPiKK(const T& candidate)
282+
{
283+
return RecoDecay::m(std::array{candidate.pVectorProng0(), candidate.pVectorProng2()}, std::array{o2::constants::physics::MassPiPlus, o2::constants::physics::MassKPlus});
284+
}
285+
286+
template <typename T>
287+
static auto massKSecondPiPairDsToKKPi(const T& candidate)
288+
{
289+
return RecoDecay::m(std::array{candidate.pVectorProng1(), candidate.pVectorProng2()}, std::array{o2::constants::physics::MassKPlus, o2::constants::physics::MassPiPlus});
290+
}
291+
292+
template <typename T>
293+
static auto massKSecondPiPairDsToPiKK(const T& candidate)
294+
{
295+
return RecoDecay::m(std::array{candidate.pVectorProng0(), candidate.pVectorProng1()}, std::array{o2::constants::physics::MassPiPlus, o2::constants::physics::MassKPlus});
296+
}
297+
274298
template <typename T>
275299
static auto deltaMassPhiDsToKKPi(const T& candidate)
276300
{

PWGHF/D2H/Tasks/taskDs.cxx

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,10 @@ namespace o2::aod
9898
namespace hf_cand_ds_mini
9999
{
100100
DECLARE_SOA_COLUMN(Pt, pt, float); //! Transverse momentum of D-meson candidate (GeV/c)
101-
DECLARE_SOA_COLUMN(M, m, float); //! Invariant mass of D-meson candidates (GeV/c)
101+
DECLARE_SOA_COLUMN(M, m, float); //! Invariant mass of D-meson candidates (GeV/c2)
102+
DECLARE_SOA_COLUMN(MassKaKa, massKaKa, float); //! Invariant mass of kaon pairs (GeV/c2)
103+
DECLARE_SOA_COLUMN(MassKaFirstPi, massKaFirstPi, float); //! Invariant mass of kaon(first) pion (GeV/c2)
104+
DECLARE_SOA_COLUMN(MassKaSecondPi, massKaSecondPi, float); //! Invariant mass of kaon(second) pion (GeV/c2)
102105
DECLARE_SOA_COLUMN(Centrality, centrality, float); //! Centrality of collision
103106
DECLARE_SOA_COLUMN(ImpactParameter, impactParameter, float); //! Impact parameter of D-meson candidate
104107
DECLARE_SOA_COLUMN(ImpactParameterMc, impactParameterMc, float); //! Generated impact parameter of D-meson candidate
@@ -114,6 +117,11 @@ DECLARE_SOA_TABLE(HfCandDsMinis, "AOD", "HFDSMINI", //! Table with few Ds proper
114117
hf_cand_ds_mini::Pt,
115118
hf_cand_ds_mini::Centrality);
116119

120+
DECLARE_SOA_TABLE(HfCandDsMassMinis, "AOD", "HFDSMASSMINI", //! Table with Ds 2-prong masses
121+
hf_cand_ds_mini::MassKaKa,
122+
hf_cand_ds_mini::MassKaFirstPi,
123+
hf_cand_ds_mini::MassKaSecondPi);
124+
117125
DECLARE_SOA_TABLE(HfCandDsDlMinis, "AOD", "HFDSDLMINI", //! Table with decay length Ds properties
118126
hf_cand_ds_mini::DecayLength,
119127
hf_cand_ds_mini::DecayLengthXY,
@@ -142,6 +150,7 @@ concept HasDsMlInfo = requires(T candidate) {
142150
/// Ds± analysis task
143151
struct HfTaskDs {
144152
Produces<aod::HfCandDsMinis> hfCandDsMinis;
153+
Produces<aod::HfCandDsMassMinis> hfCandDsMassMinis;
145154
Produces<aod::HfCandDsDlMinis> hfCandDsDlMinis;
146155
Produces<aod::HfCandDsD0Minis> hfCandDsD0Minis;
147156
Produces<aod::HfCandDsMcMinis> hfCandDsMcMinis;
@@ -592,10 +601,22 @@ struct HfTaskDs {
592601
template <typename Coll, typename Cand>
593602
void fillMiniTrees(const Cand& candidate, FinalState finalState)
594603
{
595-
auto mass = finalState == FinalState::KKPi ? HfHelper::invMassDsToKKPi(candidate) : HfHelper::invMassDsToPiKK(candidate);
604+
float mass{-1.f}, massKaKa{-1.f}, massKaFirstPi{-1.f}, massKaSecondPi{-1.f};
605+
if (finalState == FinalState::KKPi) {
606+
mass = HfHelper::invMassDsToKKPi(candidate);
607+
massKaKa = HfHelper::massKKPairDsToKKPi(candidate);
608+
massKaFirstPi = massKFirstPiPairDsToKKPi(candidate);
609+
massKaSecondPi = massKSecondPiPairDsToKKPi(candidate);
610+
} else {
611+
mass = HfHelper::invMassDsToPiKK(candidate);
612+
massKaKa = HfHelper::massKKPairDsToPiKK(candidate);
613+
massKaFirstPi = massKFirstPiPairDsToPiKK(candidate);
614+
massKaSecondPi = massKSecondPiPairDsToPiKK(candidate);
615+
}
596616
auto pt = candidate.pt();
597617

598618
hfCandDsMinis(mass, pt, evaluateCentralityCand<Coll>(candidate));
619+
hfCandDsMassMinis(mass, massKaKa, massKaFirstPi, massKaSecondPi);
599620
if (miniTrees.extendWithDecayLength) {
600621
hfCandDsDlMinis(candidate.decayLength(), candidate.decayLengthXY(), candidate.decayLengthNormalised(), candidate.decayLengthXYNormalised());
601622
}
@@ -607,10 +628,22 @@ struct HfTaskDs {
607628
template <typename Coll, typename Cand>
608629
void fillMiniTreesMc(const Cand& candidate, DataType dataType, FinalState finalState, const CandDsMcGen& mcParticles, int indexMother)
609630
{
610-
auto mass = finalState == FinalState::KKPi ? HfHelper::invMassDsToKKPi(candidate) : HfHelper::invMassDsToPiKK(candidate);
631+
float mass{-1.f}, massKaKa{-1.f}, massKaFirstPi{-1.f}, massKaSecondPi{-1.f};
632+
if (finalState == FinalState::KKPi) {
633+
mass = HfHelper::invMassDsToKKPi(candidate);
634+
massKaKa = HfHelper::massKKPairDsToKKPi(candidate);
635+
massKaFirstPi = massKFirstPiPairDsToKKPi(candidate);
636+
massKaSecondPi = massKSecondPiPairDsToKKPi(candidate);
637+
} else {
638+
mass = HfHelper::invMassDsToPiKK(candidate);
639+
massKaKa = HfHelper::massKKPairDsToPiKK(candidate);
640+
massKaFirstPi = massKFirstPiPairDsToPiKK(candidate);
641+
massKaSecondPi = massKSecondPiPairDsToPiKK(candidate);
642+
}
611643
auto pt = candidate.pt();
612644

613645
hfCandDsMinis(mass, pt, evaluateCentralityCand<Coll>(candidate));
646+
hfCandDsMassMinis(mass, massKaKa, massKaFirstPi, massKaSecondPi);
614647
if (miniTrees.extendWithDecayLength) {
615648
hfCandDsDlMinis(candidate.decayLength(), candidate.decayLengthXY(), candidate.decayLengthNormalised(), candidate.decayLengthXYNormalised());
616649
}

0 commit comments

Comments
 (0)