@@ -77,14 +77,17 @@ enum DecayTypeMc : uint8_t {
7777 Ds1ToDStarK0ToD0PiK0s = 0 ,
7878 Ds2StarToDplusK0s,
7979 Ds1ToDStarK0ToDPlusPi0K0s,
80- Ds1ToDStarK0ToD0PiK0sPart
80+ Ds1ToDStarK0ToD0PiK0sPart,
81+ Ds1ToDStarK0ToD0PiK0sOneMu
8182};
8283
8384enum PartialMatchMc : uint8_t {
8485 K0Matched = 0 ,
8586 D0Matched,
8687 DStarMatched,
87- DPlusMatched
88+ DPlusMatched,
89+ K0MuMatched,
90+ DStarMuMatched
8891};
8992
9093// / Creation of D-V0 pairs
@@ -534,6 +537,9 @@ struct HfDataCreatorCharmResoReduced {
534537 flag = sign * BIT (DecayTypeMc::Ds1ToDStarK0ToD0PiK0sPart);
535538 }
536539 }
540+ } else if (RecoDecay::getMatchedMCRec<false , true , true >(particlesMc, std::array{vecDaughtersReso[0 ], vecDaughtersReso[1 ], vecDaughtersReso[2 ], vecDaughtersReso[3 ], vecDaughtersReso[4 ]}, Pdg::kDS1 , std::array{+kPiPlus , -kKPlus , +kPiPlus , +kMuonPlus , -kPiPlus }, true , &sign, 4 ) > -1 ||
541+ RecoDecay::getMatchedMCRec<false , true , true >(particlesMc, std::array{vecDaughtersReso[0 ], vecDaughtersReso[1 ], vecDaughtersReso[2 ], vecDaughtersReso[3 ], vecDaughtersReso[4 ]}, Pdg::kDS1 , std::array{+kPiPlus , -kKPlus , +kPiPlus , +kPiPlus , -kMuonPlus }, true , &sign, 4 ) > -1 ) { // Verify if one of the pions decayed in a muon
542+ flag = sign * BIT (DecayTypeMc::Ds1ToDStarK0ToD0PiK0sOneMu);
537543 }
538544 if (flag != 0 ) {
539545 auto particleReso = particlesMc.iteratorAt (indexRecReso);
@@ -579,7 +585,8 @@ struct HfDataCreatorCharmResoReduced {
579585 if (RecoDecay::getMatchedMCRec<false , true >(particlesMc, std::array{vecDaughtersReso[3 ], vecDaughtersReso[4 ]}, kK0 , std::array{+kPiPlus , -kPiPlus }, true , &signV0, 2 ) > -1 ) {
580586 SETBIT (debug, PartialMatchMc::K0Matched);
581587 }
582- if (RecoDecay::getMatchedMCRec (particlesMc, std::array{vecDaughtersReso[0 ], vecDaughtersReso[1 ]}, Pdg::kD0 , std::array{+kPiPlus , -kKPlus }, true , &signD0, 1 ) > -1 ) {
588+ auto indexRecD0 = RecoDecay::getMatchedMCRec (particlesMc, std::array{vecDaughtersReso[0 ], vecDaughtersReso[1 ]}, Pdg::kD0 , std::array{+kPiPlus , -kKPlus }, true , &signD0, 1 );
589+ if (indexRecD0 > -1 ) {
583590 SETBIT (debug, PartialMatchMc::D0Matched);
584591 }
585592 if (RecoDecay::getMatchedMCRec<false , false , true >(particlesMc, std::array{vecDaughtersReso[0 ], vecDaughtersReso[1 ], vecDaughtersReso[2 ]}, Pdg::kDStar , std::array{-kKPlus , +kPiPlus , +kPiPlus }, true , &signDStar, 2 ) > -1 ) {
@@ -588,6 +595,12 @@ struct HfDataCreatorCharmResoReduced {
588595 if (RecoDecay::getMatchedMCRec (particlesMc, std::array{vecDaughtersReso[0 ], vecDaughtersReso[1 ], vecDaughtersReso[2 ]}, Pdg::kDPlus , std::array{+kPiPlus , -kKPlus , +kPiPlus }, true , &signDPlus, 2 ) > -1 ) {
589596 SETBIT (debug, PartialMatchMc::DPlusMatched);
590597 }
598+ if (RecoDecay::getMatchedMCRec<false , true , true >(particlesMc, std::array{vecDaughtersReso[3 ], vecDaughtersReso[4 ]}, kK0 , std::array{+kMuonPlus , -kPiPlus }, true , &signV0, 3 ) > -1 ) {
599+ SETBIT (debug, PartialMatchMc::K0MuMatched);
600+ }
601+ if (RecoDecay::getMatchedMCRec<false , false , true >(particlesMc, std::array{vecDaughtersReso[0 ], vecDaughtersReso[1 ], vecDaughtersReso[2 ]}, Pdg::kDStar , std::array{-kKPlus , +kPiPlus , +kMuonPlus }, true , &signDStar, 3 ) > -1 ) {
602+ SETBIT (debug, PartialMatchMc::DStarMuMatched);
603+ }
591604 registry.fill (HIST (" hMCRecDebug" ), debug);
592605 }
593606 rowHfDV0McRecReduced (indexHfCandCharm, indexCandV0, flag, debug, origin, motherPt);
0 commit comments