Skip to content

Commit ceb4a1c

Browse files
authored
[PWGHF] Fix PID assignment in Xic0 and Omegac0 candidate creator (#16352)
1 parent e46b2ac commit ceb4a1c

1 file changed

Lines changed: 37 additions & 6 deletions

File tree

PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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
100122
struct 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

Comments
 (0)