@@ -122,6 +122,8 @@ struct HfCandidateCreatorCharmResoReduced {
122122 double massK0{0 .};
123123 double massLambda{0 .};
124124 double massProton{0 .};
125+ double massPion{0 .};
126+ double massKaon{0 .};
125127 double massDplus{0 .};
126128 double massDstar{0 .};
127129 double massD0{0 .};
@@ -165,6 +167,8 @@ struct HfCandidateCreatorCharmResoReduced {
165167 massK0 = o2::constants::physics::MassK0Short;
166168 massLambda = o2::constants::physics::MassLambda;
167169 massProton = o2::constants::physics::MassProton;
170+ massPion = o2::constants::physics::MassPiPlus;
171+ massKaon = o2::constants::physics::MassKPlus;
168172 massDplus = o2::constants::physics::MassDPlus;
169173 massDstar = o2::constants::physics::MassDStar;
170174 massD0 = o2::constants::physics::MassD0;
@@ -314,8 +318,12 @@ struct HfCandidateCreatorCharmResoReduced {
314318 float ptReso = RecoDecay::pt (RecoDecay::sumOfVec (pVecV0Tr, pVecD));
315319
316320 if constexpr (channel == DecayChannel::DstarTrack) {
317- invMassReso = RecoDecay::m (std::array{pVecD, pVecV0Tr}, std::array{massDstar, massProton});
318- registry.fill (HIST (" hMassDstarTrack" ), invMassReso, ptReso);
321+ if (candD.dType () > 0 ) {
322+ invMassReso = RecoDecay::m (std::array{candD.pVectorProng0 (), candD.pVectorProng1 (), candD.pVectorProng2 (), pVecV0Tr}, std::array{massPion, massKaon, massPion, massProton});
323+ } else {
324+ invMassReso = RecoDecay::m (std::array{candD.pVectorProng1 (), candD.pVectorProng0 (), candD.pVectorProng2 (), pVecV0Tr}, std::array{massPion, massKaon, massPion, massProton});
325+ }
326+ registry.fill (HIST (" hMassDstarTrack" ), invMassReso - invMassD, ptReso);
319327 } else {
320328 switch (channel) {
321329 case DecayChannel::Ds1ToDstarK0s:
0 commit comments