@@ -96,6 +96,26 @@ enum McMatchFlag : uint8_t {
9696 V0Unmatched
9797};
9898
99+ // Convert the KFParticle PDG code to the O2 track PID enum needed by getTrackParCovFromKFP()
100+ o2::track::PID getTrackPIDFromPDG (const int pdg)
101+ {
102+ switch (std::abs (pdg)) {
103+ case 211 :
104+ return o2::track::PID::Pion;
105+ case 321 :
106+ return o2::track::PID::Kaon;
107+ case 2212 :
108+ return o2::track::PID::Proton;
109+ case 3312 :
110+ return o2::track::PID::XiMinus;
111+ case 3334 :
112+ return o2::track::PID::OmegaMinus;
113+ default :
114+ LOGF (fatal, " Unsupported PDG code %d in getTrackPIDFromPDG()" , pdg);
115+ return static_cast <o2::track::PID>(-1 );
116+ }
117+ }
118+
99119// Reconstruction of omegac0 and xic0 candidates
100120struct HfCandidateCreatorXic0Omegac0 {
101121 Produces<aod::HfCandToXiPi> rowCandToXiPi;
@@ -959,12 +979,16 @@ struct HfCandidateCreatorXic0Omegac0 {
959979
960980 omegaDauChargedTrackParCov = getTrackParCovFromKFP (kfBachKaonToOmega, o2::track::PID::Kaon, bachCharge); // Cascade bach kaon
961981 omegaDauChargedTrackParCov.setAbsCharge (1 );
962- o2::track::TrackParCov trackCasc = getTrackParCovFromKFP (kfOmegaToOmegaC, kfOmegaToOmegaC.GetPDG (), bachCharge);
982+ auto pidCasc = getTrackPIDFromPDG (kfOmegaToOmegaC.GetPDG ());
983+ o2::track::TrackParCov trackCasc = getTrackParCovFromKFP (kfOmegaToOmegaC, pidCasc, bachCharge);
963984 trackCasc.setAbsCharge (1 );
964985
965- trackParCovV0Dau0 = getTrackParCovFromKFP (kfPos, kfPos.GetPDG (), 1 ); // V0 postive daughter
986+ auto pidV0Dau0 = getTrackPIDFromPDG (kfPos.GetPDG ());
987+ trackParCovV0Dau0 = getTrackParCovFromKFP (kfPos, pidV0Dau0, +1 ); // V0 postive daughter
966988 trackParCovV0Dau0.setAbsCharge (1 );
967- trackParCovV0Dau1 = getTrackParCovFromKFP (kfNeg, kfNeg.GetPDG (), -1 ); // V0 negtive daughter
989+
990+ auto pidV0Dau1 = getTrackPIDFromPDG (kfNeg.GetPDG ());
991+ trackParCovV0Dau1 = getTrackParCovFromKFP (kfNeg, pidV0Dau1, -1 ); // V0 negative daughter
968992 trackParCovV0Dau1.setAbsCharge (1 );
969993
970994 // -------------------------- V0 info---------------------------
@@ -1452,12 +1476,17 @@ struct HfCandidateCreatorXic0Omegac0 {
14521476
14531477 xiDauChargedTrackParCov = getTrackParCovFromKFP (kfBachPionToXi, o2::track::PID::Pion, bachCharge); // Cascade bach pion
14541478 xiDauChargedTrackParCov.setAbsCharge (1 );
1455- o2::track::TrackParCov trackCasc = getTrackParCovFromKFP (kfXiToXiC, kfXiToXiC.GetPDG (), bachCharge);
1479+
1480+ auto pidCasc = getTrackPIDFromPDG (kfXiToXiC.GetPDG ());
1481+ o2::track::TrackParCov trackCasc = getTrackParCovFromKFP (kfXiToXiC, pidCasc, bachCharge);
14561482 trackCasc.setAbsCharge (1 );
14571483
1458- trackParCovV0Dau0 = getTrackParCovFromKFP (kfPos, kfPos.GetPDG (), 1 ); // V0 postive daughter
1484+ auto pidV0Dau0 = getTrackPIDFromPDG (kfPos.GetPDG ());
1485+ trackParCovV0Dau0 = getTrackParCovFromKFP (kfPos, pidV0Dau0, +1 ); // V0 postive daughter
14591486 trackParCovV0Dau0.setAbsCharge (1 );
1460- trackParCovV0Dau1 = getTrackParCovFromKFP (kfNeg, kfNeg.GetPDG (), -1 ); // V0 negtive daughter
1487+
1488+ auto pidV0Dau1 = getTrackPIDFromPDG (kfNeg.GetPDG ());
1489+ trackParCovV0Dau1 = getTrackParCovFromKFP (kfNeg, pidV0Dau1, -1 ); // V0 negative daughter
14611490 trackParCovV0Dau1.setAbsCharge (1 );
14621491
14631492 // -------------------------- V0 info---------------------------
0 commit comments