@@ -96,6 +96,28 @@ enum McMatchFlag : uint8_t {
9696 V0Unmatched
9797};
9898
99+ // Convert the absolute KFParticle PDG code to the O2 track PID enum needed by getTrackParCovFromKFP()
100+ o2::track::PID::ID getTrackPIDFromPDG (const int pdg)
101+ {
102+ switch (std::abs (pdg)) {
103+ case kPiPlus :
104+ return o2::track::PID::Pion;
105+ case kKPlus :
106+ return o2::track::PID::Kaon;
107+ case kProton :
108+ return o2::track::PID::Proton;
109+ case kLambda0 :
110+ return o2::track::PID::Lambda;
111+ case kXiMinus :
112+ return o2::track::PID::XiMinus;
113+ case kOmegaMinus :
114+ return o2::track::PID::OmegaMinus;
115+ default :
116+ LOGF (fatal, " Unsupported PDG code %d in getTrackPIDFromPDG()" , pdg);
117+ return o2::track::PID::Pion;
118+ }
119+ }
120+
99121// Reconstruction of omegac0 and xic0 candidates
100122struct HfCandidateCreatorXic0Omegac0 {
101123 Produces<aod::HfCandToXiPi> rowCandToXiPi;
@@ -959,12 +981,16 @@ struct HfCandidateCreatorXic0Omegac0 {
959981
960982 omegaDauChargedTrackParCov = getTrackParCovFromKFP (kfBachKaonToOmega, o2::track::PID::Kaon, bachCharge); // Cascade bach kaon
961983 omegaDauChargedTrackParCov.setAbsCharge (1 );
962- o2::track::TrackParCov trackCasc = getTrackParCovFromKFP (kfOmegaToOmegaC, kfOmegaToOmegaC.GetPDG (), bachCharge);
984+ o2::track::PID::ID pidCasc = getTrackPIDFromPDG (kfOmegaToOmegaC.GetPDG ());
985+ o2::track::TrackParCov trackCasc = getTrackParCovFromKFP (kfOmegaToOmegaC, pidCasc, bachCharge);
963986 trackCasc.setAbsCharge (1 );
964987
965- trackParCovV0Dau0 = getTrackParCovFromKFP (kfPos, kfPos.GetPDG (), 1 ); // V0 postive daughter
988+ o2::track::PID::ID pidV0Dau0 = getTrackPIDFromPDG (kfPos.GetPDG ());
989+ trackParCovV0Dau0 = getTrackParCovFromKFP (kfPos, pidV0Dau0, +1 ); // V0 postive daughter
966990 trackParCovV0Dau0.setAbsCharge (1 );
967- trackParCovV0Dau1 = getTrackParCovFromKFP (kfNeg, kfNeg.GetPDG (), -1 ); // V0 negtive daughter
991+
992+ o2::track::PID::ID pidV0Dau1 = getTrackPIDFromPDG (kfNeg.GetPDG ());
993+ trackParCovV0Dau1 = getTrackParCovFromKFP (kfNeg, pidV0Dau1, -1 ); // V0 negative daughter
968994 trackParCovV0Dau1.setAbsCharge (1 );
969995
970996 // -------------------------- V0 info---------------------------
@@ -1452,12 +1478,17 @@ struct HfCandidateCreatorXic0Omegac0 {
14521478
14531479 xiDauChargedTrackParCov = getTrackParCovFromKFP (kfBachPionToXi, o2::track::PID::Pion, bachCharge); // Cascade bach pion
14541480 xiDauChargedTrackParCov.setAbsCharge (1 );
1455- o2::track::TrackParCov trackCasc = getTrackParCovFromKFP (kfXiToXiC, kfXiToXiC.GetPDG (), bachCharge);
1481+
1482+ o2::track::PID::ID pidCasc = getTrackPIDFromPDG (kfXiToXiC.GetPDG ());
1483+ o2::track::TrackParCov trackCasc = getTrackParCovFromKFP (kfXiToXiC, pidCasc, bachCharge);
14561484 trackCasc.setAbsCharge (1 );
14571485
1458- trackParCovV0Dau0 = getTrackParCovFromKFP (kfPos, kfPos.GetPDG (), 1 ); // V0 postive daughter
1486+ o2::track::PID::ID pidV0Dau0 = getTrackPIDFromPDG (kfPos.GetPDG ());
1487+ trackParCovV0Dau0 = getTrackParCovFromKFP (kfPos, pidV0Dau0, +1 ); // V0 postive daughter
14591488 trackParCovV0Dau0.setAbsCharge (1 );
1460- trackParCovV0Dau1 = getTrackParCovFromKFP (kfNeg, kfNeg.GetPDG (), -1 ); // V0 negtive daughter
1489+
1490+ o2::track::PID::ID pidV0Dau1 = getTrackPIDFromPDG (kfNeg.GetPDG ());
1491+ trackParCovV0Dau1 = getTrackParCovFromKFP (kfNeg, pidV0Dau1, -1 ); // V0 negative daughter
14611492 trackParCovV0Dau1.setAbsCharge (1 );
14621493
14631494 // -------------------------- V0 info---------------------------
0 commit comments