Skip to content

Commit 36b9c3c

Browse files
committed
fix issues
1 parent 65c5b03 commit 36b9c3c

File tree

1 file changed

+57
-56
lines changed

1 file changed

+57
-56
lines changed

PWGHF/TableProducer/treeCreatorOmegacSt.cxx

Lines changed: 57 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
#include "PWGHF/Core/SelectorCuts.h"
4848
#include "PWGHF/Utils/utilsTrkCandHf.h"
4949
#include "PWGHF/DataModel/CandidateReconstructionTables.h"
50-
#include "PWGHF/DataModel/CandidateSelectionTables.h"
5150

5251
using namespace o2;
5352
using namespace o2::framework;
@@ -257,7 +256,7 @@ struct HfTreeCreatorOmegacSt {
257256
using TracksExt = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::TracksDCA, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFKa, aod::pidTOFPr>;
258257
using TracksExtMc = soa::Join<TracksExt, aod::McTrackLabels>;
259258

260-
Filter collisionFilter = (!useSel8Trigger.node()) || (o2::aod::evsel::sel8 == true);
259+
Filter collisionFilter = (useSel8Trigger.node() == false) || (o2::aod::evsel::sel8 == true);
261260

262261
// Preslice<aod::Tracks> perCol = aod::track::collisionId;
263262
PresliceUnsorted<aod::TrackAssoc> trackIndicesPerCollision = aod::track_association::collisionId;
@@ -337,6 +336,7 @@ struct HfTreeCreatorOmegacSt {
337336
std::vector<int> idxBhadMothers{};
338337
int decayChannel = -1; // flag for different decay channels
339338
const int nProngs = 2;
339+
bool isMatched = false;
340340

341341
void processMc(aod::McCollisions const&,
342342
aod::McParticles const& mcParticles)
@@ -364,14 +364,14 @@ struct HfTreeCreatorOmegacSt {
364364
}
365365
}
366366
if (idxPionDaughter >= 0 && idxCascDaughter >= 0) {
367-
decayChannel = hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi; // OmegaC -> Omega + Pi
367+
decayChannel = o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi; // OmegaC -> Omega + Pi
368368
} else if (idxKaonDaughter >= 0 && idxCascDaughter >= 0) {
369-
decayChannel = hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK; // OmegaC -> Omega + K
369+
decayChannel = o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK; // OmegaC -> Omega + K
370370
} else {
371371
LOG(warning) << "Decay channel not recognized!";
372372
}
373373
if (decayChannel != -1) {
374-
int idxDaughter = (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) ? idxPionDaughter : idxKaonDaughter;
374+
int idxDaughter = (decayChannel == o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) ? idxPionDaughter : idxKaonDaughter;
375375
auto particle = mcParticles.rawIteratorAt(idxDaughter);
376376
origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers);
377377

@@ -416,7 +416,8 @@ struct HfTreeCreatorOmegacSt {
416416
template <typename TracksType>
417417
void fillTable(Collisions const& collisions,
418418
aod::AssignedTrackedCascades const& trackedCascades,
419-
aod::TrackAssoc const& trackIndices)
419+
aod::TrackAssoc const& trackIndices,
420+
std::optional<aod::McParticles> mcParticles = std::nullopt)
420421
{
421422
const auto matCorr = static_cast<o2::base::Propagator::MatCorrType>(materialCorrectionType.value);
422423

@@ -640,58 +641,58 @@ struct HfTreeCreatorOmegacSt {
640641
registry.fill(HIST("hMassOmegaKVsPt"), massOmegaK, RecoDecay::pt(momenta[0], momenta[1]));
641642

642643
//--- do the MC Rec match
643-
auto arrayDaughters = std::array{
644-
trackId.template track_as<TracksExtMc>, // bachelor <- charm baryon
645-
casc.bachelor_as<TracksExtMc>(), // bachelor <- cascade
646-
V0.posTrack_as<TracksExtMc>(), // p <- lambda
647-
V0.negTrack_as<TracksExtMc> // pi <- lambda
648-
};
649-
auto arrayDaughtersCasc = std::array{
650-
casc.bachelor_as<TracksExtMc>(), // bachelor <- cascade
651-
V0.posTrack_as<TracksExtMc>(), // p <- lambda
652-
V0.negTrack_as<TracksExtMc> // pi <- lambda
653-
};
654-
auto arrayDaughtersV0 = std::array{
655-
V0.posTrack_as<TracksExtMc>(), // p <- lambda
656-
V0.negTrack_as<TracksExtMc> // pi <- lambda
657-
};
658-
659-
if (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) {
660-
// Match Omegac0 → Omega- + Pi+
661-
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, false>(mcParticles, arrayDaughters, +kOmegaC0,
662-
std::array{+kPiPlus, +kKMinus, +kProton, +kPiMinus}, true, &sign, 3, &nPiToMuOmegac0, &nKaToPiOmegac0);
663-
} else if (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK) {
664-
// Match Omegac0 → Omega- + K+
665-
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, false>(mcParticles, arrayDaughters, +kOmegaC0,
666-
std::array{+kKPlus, +kKMinus, +kProton, +kPiMinus}, true, &sign, 3, &nPiToMuOmegac0, &nKaToPiOmegac0);
667-
}
668-
669-
indexRecCharmBaryon = indexRec;
670-
if (indexRec->- 1) {
671-
// Omega- → K pi p (Cascade match)
672-
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles, arrayDaughtersCasc, +kOmegaMinus, std::array{+kKMinus, +kProton, +kPiMinus}, true, &signCasc, 2, &nPiToMuCasc, &nKaToPiCasc);
673-
if (indexRec->- 1) {
674-
// Lambda → p pi (Lambda match)
675-
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles, arrayDaughtersV0, +kLambda0, std::array{+kProton, +kPiMinus}, true, &signV0, 1, &nPiToMuV0);
676-
if (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) {
677-
if (nPiToMuOmegac0 >= 1 && nKaToPiOmegac0 == 0) {
678-
isMatched = true;
679-
} else if (nPiToMuOmegac0 == 0 && nKaToPiOmegac0 == 0) {
680-
isMatched = true;
681-
}
682-
} else if (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK) {
683-
if (nPiToMuOmegac0 == 0 && nKaToPiOmegac0 == 0) {
684-
isMatched = true;
644+
if (mcParticles) {
645+
auto arrayDaughters = std::array{
646+
trackId.template track_as<TracksExtMc>(), // bachelor <- charm baryon
647+
casc.bachelor_as<TracksExtMc>(), // bachelor <- cascade
648+
v0.posTrack_as<TracksExtMc>(), // p <- lambda
649+
v0.negTrack_as<TracksExtMc>()}; // pi <- lambda
650+
651+
auto arrayDaughtersCasc = std::array{
652+
casc.bachelor_as<TracksExtMc>(), // bachelor <- cascade
653+
v0.posTrack_as<TracksExtMc>(), // p <- lambda
654+
v0.negTrack_as<TracksExtMc>()}; // pi <- lambda
655+
auto arrayDaughtersV0 = std::array{
656+
v0.posTrack_as<TracksExtMc>(), // p <- lambda
657+
v0.negTrack_as<TracksExtMc>()}; // pi <- lambda
658+
659+
if (decayChannel == o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) {
660+
// Match Omegac0 → Omega- + Pi+
661+
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, false>(mcParticles.value(), arrayDaughters, o2::constants::physics::kOmegaC0,
662+
std::array{+kPiPlus, +kKMinus, +kProton, +kPiMinus}, true, &sign, 3, &nPiToMuOmegac0, &nKaToPiOmegac0);
663+
} else if (decayChannel == o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK) {
664+
// Match Omegac0 → Omega- + K+
665+
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, false>(mcParticles.value(), arrayDaughters, o2::constants::physics::kOmegaC0,
666+
std::array{+kKPlus, +kKMinus, +kProton, +kPiMinus}, true, &sign, 3, &nPiToMuOmegac0, &nKaToPiOmegac0);
667+
}
668+
indexRecCharmBaryon = indexRec;
669+
if (indexRec > -1) {
670+
// Omega- → K pi p (Cascade match)
671+
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles.value(), arrayDaughtersCasc, +kOmegaMinus, std::array{+kKMinus, +kProton, +kPiMinus}, true, &signCasc, 2, &nPiToMuCasc, &nKaToPiCasc);
672+
if (indexRec > -1) {
673+
// Lambda → p pi (Lambda match)
674+
indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles.value(), arrayDaughtersV0, +kLambda0, std::array{+kProton, +kPiMinus}, true, &signV0, 1, &nPiToMuV0);
675+
if (decayChannel == o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) {
676+
if (nPiToMuOmegac0 >= 1 && nKaToPiOmegac0 == 0) {
677+
isMatched = true;
678+
} else if (nPiToMuOmegac0 == 0 && nKaToPiOmegac0 == 0) {
679+
isMatched = true;
680+
}
681+
} else if (decayChannel == o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK) {
682+
if (nPiToMuOmegac0 == 0 && nKaToPiOmegac0 == 0) {
683+
isMatched = true;
684+
}
685685
}
686686
}
687687
}
688-
}
689-
if (isMatched) {
690-
auto particle = mcParticles.rawIteratorAt(indexRecCharmBaryon);
691-
origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers);
688+
if (isMatched) {
689+
auto particle = mcParticles.value().rawIteratorAt(indexRecCharmBaryon);
690+
origin = RecoDecay::getCharmHadronOrigin(mcParticles.value(), particle, false, &idxBhadMothers);
691+
}
692692
}
693693

694-
if ((std::abs(massOmegaC - o2::constants::physics::MassOmegaC0) < massWindowOmegaC) ||
694+
if ((std::abs(massOmegaK - o2::constants::physics::MassOmegaC0) < massWindowOmegaC) ||
695+
(std::abs(massOmegaPi - o2::constants::physics::MassOmegaC0) < massWindowOmegaC) ||
695696
(std::abs(massXiC - o2::constants::physics::MassXiC0) < massWindowXiC)) {
696697
registry.fill(HIST("hDecayLength"), decayLength * 1e4);
697698
registry.fill(HIST("hDecayLengthScaled"), decayLength * o2::constants::physics::MassOmegaC0 / RecoDecay::p(momenta[0], momenta[1]) * 1e4);
@@ -786,10 +787,10 @@ struct HfTreeCreatorOmegacSt {
786787
aod::V0s const&,
787788
// TracksExt const& tracks, // TODO: should be TracksExtMc
788789
TracksExtMc const&,
789-
aod::McParticles const&,
790+
aod::McParticles const& mcParticles,
790791
aod::BCsWithTimestamps const&)
791792
{
792-
fillTable<TracksExtMc>(collisions, trackedCascades, trackIndices);
793+
fillTable<TracksExtMc>(collisions, trackedCascades, trackIndices, mcParticles);
793794
}
794795
PROCESS_SWITCH(HfTreeCreatorOmegacSt, processMcRec, "Process MC reco", true);
795796

@@ -878,7 +879,7 @@ struct HfTreeCreatorOmegacSt {
878879

879880
trackParCovCasc.getPxPyPzGlo(momenta[0]);
880881
trackParCovPion.getPxPyPzGlo(momenta[1]);
881-
registry.fill(HIST("hDeltaPtVsPt"), mcpart.pt(), (trackParCovPionOrKaon.getPt() - mcpart.pt()) / mcpart.pt());
882+
registry.fill(HIST("hDeltaPtVsPt"), mcpart.pt(), (trackParCovPion.getPt() - mcpart.pt()) / mcpart.pt());
882883
registry.fill(HIST("hMassOmegacId"), RecoDecay::m(momenta, masses));
883884

884885
hCandidatesCascPiOrK->Fill(SVFitting::BeforeFit);

0 commit comments

Comments
 (0)