@@ -59,6 +59,7 @@ enum DecayChannels { DzeroToKPi = 0,
5959 D10ToDStarPi,
6060 D2Star0ToDPlusPi,
6161 B0ToDminusPi,
62+ BplusToD0Pi,
6263 LcToPKPi,
6364 LcToPiK0s,
6465 XiCplusToPKPi,
@@ -70,31 +71,31 @@ enum DecayChannels { DzeroToKPi = 0,
7071}; // always keep nChannels at the end
7172
7273static constexpr int nCharmMesonChannels = 10 ; // number of charm meson channels
73- static constexpr int nBeautyChannels = 1 ; // number of beauty hadron channels
74+ static constexpr int nBeautyChannels = 2 ; // number of beauty hadron channels
7475static constexpr int nCharmBaryonChannels = nChannels - nCharmMesonChannels - nBeautyChannels; // number of charm baryon channels
7576static constexpr int nOriginTypes = 2 ; // number of origin types (prompt, non-prompt; only for charm hadrons)
7677static constexpr std::array<int , nChannels> PDGArrayParticle = {o2::constants::physics::Pdg::kD0 , o2::constants::physics::Pdg::kDStar ,
7778 o2::constants::physics::Pdg::kDPlus , o2::constants::physics::Pdg::kDPlus ,
7879 o2::constants::physics::Pdg::kDS , o2::constants::physics::Pdg::kDS , o2::constants::physics::Pdg::kDS1 , o2::constants::physics::Pdg::kDS2Star ,
79- o2::constants::physics::Pdg::kD10 , o2::constants::physics::Pdg::kD2Star0 , o2::constants::physics::Pdg::kB0 , o2::constants::physics::Pdg::kLambdaCPlus ,
80+ o2::constants::physics::Pdg::kD10 , o2::constants::physics::Pdg::kD2Star0 , o2::constants::physics::Pdg::kB0 , o2::constants::physics::Pdg::kBPlus , o2::constants::physics::Pdg:: kLambdaCPlus ,
8081 o2::constants::physics::Pdg::kLambdaCPlus , o2::constants::physics::Pdg::kXiCPlus , o2::constants::physics::Pdg::kXiCPlus , o2::constants::physics::Pdg::kXiC0 ,
8182 o2::constants::physics::Pdg::kOmegaC0 , o2::constants::physics::Pdg::kOmegaC0 };
82- static constexpr std::array<unsigned int , nChannels> nDaughters = {2 , 3 , 3 , 3 , 3 , 3 , 5 , 5 , 4 , 4 , 4 , 3 , 3 , 3 , 5 , 4 , 4 , 4 };
83- static constexpr std::array<int , nChannels> maxDepthForSearch = {1 , 2 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 3 , 2 , 3 , 2 , 4 , 3 , 3 , 3 };
83+ static constexpr std::array<unsigned int , nChannels> nDaughters = {2 , 3 , 3 , 3 , 3 , 3 , 5 , 5 , 4 , 4 , 4 , 3 , 3 , 3 , 3 , 5 , 4 , 4 , 4 };
84+ static constexpr std::array<int , nChannels> maxDepthForSearch = {1 , 2 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 3 , 3 , 2 , 2 , 3 , 2 , 4 , 3 , 3 , 3 };
8485// keep coherent indexing with PDGArrayParticle
8586// FIXME: look for a better solution
8687static constexpr std::array<std::array<int , 2 >, nChannels> arrPDGFinal2Prong = {{{+kPiPlus , -kKPlus }, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}}};
87- static constexpr std::array<std::array<int , 3 >, nChannels> arrPDGFinal3Prong = {{{}, {+kPiPlus , -kKPlus , +kPiPlus }, {+kPiPlus , -kKPlus , +kPiPlus }, {+kKPlus , -kKPlus , +kPiPlus }, {+kKPlus , -kKPlus , +kPiPlus }, {+kKPlus , -kKPlus , +kPiPlus }, {}, {}, {}, {}, {}, {+kProton , -kKPlus , +kPiPlus }, {+kProton , -kPiPlus , +kPiPlus }, {+kProton , -kKPlus , +kPiPlus }, {}, {}, {}, {}}};
88- static constexpr std::array<std::array<int , 4 >, nChannels> arrPDGFinal4Prong = {{{}, {}, {}, {}, {}, {}, {}, {}, {+kPiPlus , -kKPlus , +kPiPlus , -kPiPlus }, {+kPiPlus , -kKPlus , +kPiPlus , -kPiPlus }, {-kPiPlus , +kKPlus , -kPiPlus , +kPiPlus }, {}, {}, {}, {}, {+kPiPlus , -kPiPlus , -kPiPlus , +kProton }, {+kPiPlus , -kKPlus , -kPiPlus , +kProton }, {+kPiPlus , -kPiPlus , -kPiPlus , +kProton }}};
89- static constexpr std::array<std::array<int , 5 >, nChannels> arrPDGFinal5Prong = {{{}, {}, {}, {}, {}, {}, {+kPiPlus , -kKPlus , +kPiPlus , +kPiPlus , -kPiPlus }, {+kPiPlus , -kKPlus , +kPiPlus , +kPiPlus , -kPiPlus }, {}, {}, {}, {}, {}, {}, {+kPiPlus , +kPiPlus , -kPiPlus , -kPiPlus , +kProton }, {}, {}, {}}};
88+ static constexpr std::array<std::array<int , 3 >, nChannels> arrPDGFinal3Prong = {{{}, {+kPiPlus , -kKPlus , +kPiPlus }, {+kPiPlus , -kKPlus , +kPiPlus }, {+kKPlus , -kKPlus , +kPiPlus }, {+kKPlus , -kKPlus , +kPiPlus }, {+kKPlus , -kKPlus , +kPiPlus }, {}, {}, {}, {}, {}, {- kPiPlus , + kKPlus , + kPiPlus }, { +kProton , -kKPlus , +kPiPlus }, {+kProton , -kPiPlus , +kPiPlus }, {+kProton , -kKPlus , +kPiPlus }, {}, {}, {}, {}}};
89+ static constexpr std::array<std::array<int , 4 >, nChannels> arrPDGFinal4Prong = {{{}, {}, {}, {}, {}, {}, {}, {}, {+kPiPlus , -kKPlus , +kPiPlus , -kPiPlus }, {+kPiPlus , -kKPlus , +kPiPlus , -kPiPlus }, {-kPiPlus , +kKPlus , -kPiPlus , +kPiPlus }, {}, {}, {}, {}, {}, { +kPiPlus , -kPiPlus , -kPiPlus , +kProton }, {+kPiPlus , -kKPlus , -kPiPlus , +kProton }, {+kPiPlus , -kPiPlus , -kPiPlus , +kProton }}};
90+ static constexpr std::array<std::array<int , 5 >, nChannels> arrPDGFinal5Prong = {{{}, {}, {}, {}, {}, {}, {+kPiPlus , -kKPlus , +kPiPlus , +kPiPlus , -kPiPlus }, {+kPiPlus , -kKPlus , +kPiPlus , +kPiPlus , -kPiPlus }, {}, {}, {}, {}, {}, {}, {}, { +kPiPlus , +kPiPlus , -kPiPlus , -kPiPlus , +kProton }, {}, {}, {}}};
9091static constexpr std::string_view labels[nChannels] = {" D^{0} #rightarrow K#pi" , " D*^{+} #rightarrow D^{0}#pi" , " D^{+} #rightarrow K#pi#pi" , " D^{+} #rightarrow KK#pi" , " D_{s}^{+} #rightarrow #Phi#pi #rightarrow KK#pi" ,
9192 " D_{s}^{+} #rightarrow #bar{K}^{*0}K #rightarrow KK#pi" , " D_{s}1 #rightarrow D*^{+}K^{0}_{s}" , " D_{s}2* #rightarrow D^{+}K^{0}_{s}" , " D1^{0} #rightarrow D*^{+}#pi" ,
9293 " D2^{*} #rightarrow D^{+}#pi" ,
93- " B^{0} #rightarrow D^{-}#pi" ,
94+ " B^{0} #rightarrow D^{-}#pi" , " B^{+} #rightarrow D^{0}#pi " ,
9495 " #Lambda_{c}^{+} #rightarrow pK#pi" ,
9596 " #Lambda_{c}^{+} #rightarrow pK^{0}_{s}" , " #Xi_{c}^{+} #rightarrow pK#pi" ,
9697 " #Xi_{c}^{+} #rightarrow #Xi#pi#pi" , " #Xi_{c}^{0} #rightarrow #Xi#pi" , " #Omega_{c}^{0} #rightarrow #Omega#pi" , " #Omega_{c}^{0} #rightarrow #Xi#pi" };
97- static constexpr std::string_view particleNames[nChannels] = {" DzeroToKPi" , " DstarToDzeroPi" , " DplusToPiKPi" , " DplusToPhiPiToKKPi" , " DsToPhiPiToKKPi" , " DsToK0starKToKKPi" , " Ds1ToDStarK0s" , " Ds2StarToDPlusK0s" , " D10ToDStarPi" , " D2Star0ToDPlusPi" , " B0ToDminusPi" ,
98+ static constexpr std::string_view particleNames[nChannels] = {" DzeroToKPi" , " DstarToDzeroPi" , " DplusToPiKPi" , " DplusToPhiPiToKKPi" , " DsToPhiPiToKKPi" , " DsToK0starKToKKPi" , " Ds1ToDStarK0s" , " Ds2StarToDPlusK0s" , " D10ToDStarPi" , " D2Star0ToDPlusPi" , " B0ToDminusPi" , " BplusToD0Pi " ,
9899 " LcToPKPi" , " LcToPiK0s" , " XiCplusToPKPi" , " XiCplusToXiPiPi" , " XiCzeroToXiPi" , " OmegaCToOmegaPi" , " OmegaCToXiPi" };
99100static constexpr std::string_view originNames[nOriginTypes] = {" Prompt" , " NonPrompt" };
100101} // namespace
@@ -351,6 +352,10 @@ struct HfTaskMcValidationGen {
351352 !RecoDecay::isMatchedMCGen (mcParticles, particle, -PDGArrayParticle[iD], std::array{+kK0Short , -kProton }, false , nullptr , 2 )) {
352353 continue ;
353354 }
355+ if (iD == BplusToD0Pi &&
356+ !RecoDecay::isMatchedMCGen (mcParticles, particle, PDGArrayParticle[iD], std::array{-o2::constants::physics::Pdg::kD0 , +kPiPlus }, true )) {
357+ continue ;
358+ }
354359 }
355360
356361 if (nDaughters[iD] == 4 ) {
0 commit comments