[PWGCF,PWGHF] Add Xic+ pi femto framework and Secondary Kaon from Omega#16736
Conversation
Extend FemtoDerived with FDHfCand3ProngXic for cascade-specific columns, register charm-cascade-hadrons-track-femto-dream workflows, and add XiC+ mass lookup in femtoDreamUtils. Co-authored-by: Cursor <cursoragent@cursor.com>
|
O2 linter results: ❌ 170 errors, |
|
|
||
| if constexpr (Channel == DecayChannel::LcToPKPi) { | ||
| // Λc⁺ → p K π | ||
| // Lc+ -> p K pi |
There was a problem hiding this comment.
You are right, this comment-only change was not necessary. I changed it while normalizing comments to ASCII, but the original notation is clearer. I will restore the original physics notation here.
There was a problem hiding this comment.
This is just one of them. There are many.
There was a problem hiding this comment.
Please do not convert the comments to ASCII. Unicode is supported as long as the text is in English.
[PWGCF,PWGHF] Please consider the following formatting changes to AliceO2Group#16736
fgrosa
left a comment
There was a problem hiding this comment.
Hi @FDUEnrich the code looks good to me, thanks a lot! I just have a few cosmetic comments and then is ready to be merged (unless @zhangbiao-phy wants to have a another look).
| DECLARE_SOA_COLUMN(Prong0Id, prong0Id, int); //! Track id of charm hadron prong0 | ||
| DECLARE_SOA_COLUMN(Prong1Id, prong1Id, int); //! Track id of charm hadron prong1 | ||
| DECLARE_SOA_COLUMN(Prong2Id, prong2Id, int); //! Track id of charm hadron prong2 | ||
| DECLARE_SOA_COLUMN(XiProngId, xiProngId, int); //! Cascade id of the Xi prong in Xic -> Xi pi pi candidates |
There was a problem hiding this comment.
Maybe you can call it CascId in case we will ever use Omegas
| DECLARE_SOA_COLUMN(XiProngId, xiProngId, int); //! Cascade id of the Xi prong in Xic -> Xi pi pi candidates | |
| DECLARE_SOA_COLUMN(CascId, cascId, int); //! Cascade id of the Xi prong in Xic -> Xi pi pi candidates |
|
|
||
| /// Compute the charm hadron candidates mass with the daughter masses | ||
| /// assumes the candidate is either a D+ or Λc+ or D0 or Dstar | ||
| /// assumes the candidate is either a D+ or Lc+ or D0 or Dstar or Xic+ |
There was a problem hiding this comment.
| /// assumes the candidate is either a D+ or Lc+ or D0 or Dstar or Xic+ | |
| /// assumes the candidate is either a D+ or Λc+ or D0 or Dstar or Xic+ |
| invMass = cand.m(std::array{MassPiPlus, MassKPlus, MassProton}); | ||
| return invMass; | ||
| } else if constexpr (Channel == DecayChannel::DplusToPiKPi) { // D+ → π K π (PDG: 411) | ||
| } else if constexpr (Channel == DecayChannel::DplusToPiKPi) { // D+ -> pi K pi |
There was a problem hiding this comment.
| } else if constexpr (Channel == DecayChannel::DplusToPiKPi) { // D+ -> pi K pi | |
| } else if constexpr (Channel == DecayChannel::DplusToPiKPi) { // D+ -> π K π |
| invMass = cand.m(std::array{MassPiPlus, MassKPlus, MassPiPlus}); | ||
| return invMass; | ||
| } else if constexpr (Channel == DecayChannel::D0ToPiK) { // D0 → π K (PDG: 421) | ||
| } else if constexpr (Channel == DecayChannel::D0ToPiK) { // D0 -> pi K |
There was a problem hiding this comment.
| } else if constexpr (Channel == DecayChannel::D0ToPiK) { // D0 -> pi K | |
| } else if constexpr (Channel == DecayChannel::D0ToPiK) { // D0 -> π K |
| return invMass; | ||
| } | ||
| } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { // D* → D0π (PDG: 413) | ||
| } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { // D* -> D0 pi |
There was a problem hiding this comment.
| } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { // D* -> D0 pi | |
| } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { // D* -> D0 π |
| } | ||
|
|
||
| // D0 → K π + track (2-prong) | ||
| // D0 -> K pi + track (2-prong) |
There was a problem hiding this comment.
| // D0 -> K pi + track (2-prong) | |
| // D0 -> K π + track (2-prong) |
| } | ||
| } else if constexpr (Channel == DecayChannel::DplusToPiKPi) { | ||
| // D⁺ → π K π | ||
| // D+ -> pi K pi |
There was a problem hiding this comment.
| // D+ -> pi K pi | |
| // D+ -> π K π |
| massCharmTrk = {MassPiPlus, MassKPlus, MassPiPlus, trackMassHyp}; | ||
| } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { | ||
| // D* → D0π | ||
| // D* -> D0 pi |
There was a problem hiding this comment.
| // D* -> D0 pi | |
| // D* -> D0 π |
Co-authored-by: Fabrizio <fabrizio.grosa@cern.ch>
Co-authored-by: Fabrizio <fabrizio.grosa@cern.ch>
|
Error while checking build/O2Physics/staging for 77eb72f at 2026-06-19 10:47: Full log here. |
|
Error while checking build/O2Physics/o2 for dbec298 at 2026-06-19 11:25: Full log here. |
|
This failure seems unrelated to the PR changes. The build failed because the remote execution/cache service used by recc became unavailable: |
zhangbiao-phy
left a comment
There was a problem hiding this comment.
hi @FDUEnrich,Thanks a lot for the huge work! I already checked carefully and all good to me!
I converted it to draft because of the compilation error but you fixed it in the meantime. The jobs will rerun automatically since you marked the PR as ready for review. |
|
There is no need to trigger them. |
No description provided.