Skip to content

Commit c00e930

Browse files
committed
Fix PID assignment in Xic0 and Omegac0 candidate creator
1 parent c899e14 commit c00e930

1 file changed

Lines changed: 35 additions & 6 deletions

File tree

PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx

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

Comments
 (0)