Repository navigation
[PWGCF,PWGHF] Split kaon DCA secondary templates into HF and LF - #18481
Conversation
Follow RecoDecay::getParticleOrigin with its default arguments and classify nonzero origins as HF, as suggested by Fabrizio. Remove the custom PDG and ancestry helpers without changing the remaining origin routing. Co-authored-by: Fabrizio Grosa <[email protected]>
|
O2 linter results: ❌ 0 errors, |
|
|
||
| /// Classify true kaons from the correct collision for the DCA templates. | ||
| template <typename T> | ||
| inline int getKaonOrigin(T const& particles, typename T::iterator const& particle) |
There was a problem hiding this comment.
This function is used only y HF. Would it be possible to move this template to the HF charm producer instead of implementing it here?
There was a problem hiding this comment.
Hi @lauraser it is fine to move it to the HF producer, but you should consider to use it also for other analyses, as the fraction of kaons from HF decays is about 5% so not totally negligible, and in other femto analyses they were always considered primaries, but they are not (as they are produced micrometers away from the interaction point)
There was a problem hiding this comment.
Hi, Laura. I've modified according to your request. Could you please have a look?
There was a problem hiding this comment.
Hi, thanks a lot for the explanation @fgrosa ! I would like to ask @FDUEnrich to present this in more detail in femto PAG when possible, and then we could discuss the implications for other analyses as well. Thanks a lot!
Head branch was pushed to by a user without write access
- reuse RecoDecay::getParticleOrigin (as done in AliceO2Group#18481) instead of an ad-hoc first-digit PDG scan, so the V0 origin is filled with kPrimary, kMaterial, kSecondaryFromHF and kSecondaryFromLF - the phi chain (phi -> K0/K0bar -> K0s) is light-flavour feed-down and is filled as kSecondaryFromLF - add RecoDecay::isDiquark and skip diquark states in RecoDecay::getParticleOrigin: their PDG codes (4101, 4201, 5101, ...) satisfy pdg / 1000 == 4 or 5 and would otherwise be taken as charm/beauty baryons - use o2::constants::physics::Pdg::kPhi and kK0 instead of literal PDG codes
- reuse RecoDecay::getParticleOrigin (as done in AliceO2Group#18481) instead of an ad-hoc first-digit PDG scan, so the V0 origin is filled with kPrimary, kMaterial, kSecondaryFromHF and kSecondaryFromLF - add kSecondaryFromPhi: the phi chain (phi -> K0/K0bar -> K0s) is light-flavour feed-down, but it is kept as a separate class because the relatively long phi lifetime makes it a distinct source that should not be mixed with other light-flavour feed-down - add RecoDecay::isDiquark and skip diquark states in RecoDecay::getParticleOrigin: their PDG codes (4101, 4201, 5101, ...) satisfy pdg / 1000 == 4 or 5 and would otherwise be taken as charm/beauty baryons - use o2::constants::physics::Pdg::kPhi and kK0 instead of literal PDG codes
- reuse RecoDecay::getParticleOrigin (as done in AliceO2Group#18481) instead of an ad-hoc first-digit PDG scan, so the V0 origin is filled with kPrimary, kMaterial, kSecondaryFromHF and kSecondaryFromLF - add kSecondaryFromPhi: the phi chain (phi -> K0/K0bar -> K0s) is light-flavour feed-down, but it is kept as a separate class because the relatively long phi lifetime makes it a distinct source that should not be mixed with other light-flavour feed-down - add RecoDecay::isDiquark and skip diquark states in RecoDecay::getParticleOrigin: their PDG codes (4101, 4201, 5101, ...) satisfy pdg / 1000 == 4 or 5 and would otherwise be taken as charm/beauty baryons - use o2::constants::physics::Pdg::kPhi and kK0 instead of literal PDG codes
- reuse RecoDecay::getParticleOrigin (as done in AliceO2Group#18481) instead of an ad-hoc first-digit PDG scan, so the V0 origin is filled with kPrimary, kMaterial, kSecondaryFromHF, kSecondaryFromLF and kSecondaryFromPhi - add kSecondaryFromPhi: the phi chain (phi -> K0/K0bar -> K0s) is light-flavour feed-down, but it is kept as a separate class because the relatively long phi lifetime makes it a distinct source - RecoDecay::getParticleOrigin now stops the mother walk (break) as soon as a parton or a diquark is reached: no heavy-flavour hadron can be found above the partonic level, and diquark PDG codes (4101, 4201, 5101, ...) satisfy pdg / 1000 == 4 or 5 and were otherwise misidentified as charm/beauty baryons (RecoDecay::isDiquark is added for that); the parton stop follows the !searchUpToQuark idiom of getMother() so that the search-up-to-quark mode still reaches the charm and beauty quarks - use o2::constants::physics::Pdg::kPhi and kK0 instead of literal PDG codes
- reuse RecoDecay::getParticleOrigin (as done in AliceO2Group#18481) instead of an ad-hoc first-digit PDG scan, so the V0 origin is filled with kPrimary, kMaterial, kSecondaryFromHF, kSecondaryFromLF and kSecondaryFromPhi - add kSecondaryFromPhi: the phi chain (phi -> K0/K0bar -> K0s) is light-flavour feed-down, but it is kept as a separate class because the relatively long phi lifetime makes it a distinct source - RecoDecay::getParticleOrigin now stops the mother walk (break) as soon as a parton or a diquark is reached: no heavy-flavour hadron can be found above the partonic level, and diquark PDG codes (4101, 4201, 5101, ...) satisfy pdg / 1000 == 4 or 5 and were otherwise misidentified as charm/beauty baryons; the parton stop follows the !searchUpToQuark idiom of getMother() so that the search-up-to-quark mode still reaches the charm and beauty quarks - add RecoDecay::isDiquark() and PdgDiquarkSpin0Code/PdgDiquarkSpin1Code, built from the existing PDG constants and divisors (no literal PDG codes) - use o2::constants::physics::Pdg::kPhi and kK0 instead of literal PDG codes
- reuse RecoDecay::getParticleOrigin (as done in AliceO2Group#18481) instead of an ad-hoc first-digit PDG scan, so the V0 origin is filled with kPrimary, kMaterial, kSecondaryFromHF, kSecondaryFromLF and kSecondaryFromPhi - add kSecondaryFromPhi: the phi chain (phi -> K0/K0bar -> K0s) is light-flavour feed-down, but it is kept as a separate class because the relatively long phi lifetime makes it a distinct source - RecoDecay::getParticleOrigin now stops the mother walk (break) in the hadron-level mode as soon as a parton or a diquark is reached: no heavy-flavour hadron can be found above the partonic level, and diquark PDG codes (4101, 4201, 5101, ...) satisfy pdg / 1000 == 4 or 5 and were otherwise misidentified as charm/beauty baryons; in the parton-level mode (searchUpToQuark) the walk still goes through diquarks, since a charm or beauty quark can be found above them - add RecoDecay::isDiquark() and PdgDiquarkSpin0Code/PdgDiquarkSpin1Code, built from the existing PDG constants and divisors (no literal PDG codes) - use o2::constants::physics::Pdg::kPhi and kK0 instead of literal PDG codes
Separate kaon MC DCAxy templates into HF and LF using
RecoDecay::getParticleOrigin. Include Omega contributions in LF; leave other particle classifications unchanged.