@@ -331,8 +331,8 @@ struct HfTreeCreatorOmegacSt {
331331 int8_t nPiToMuV0{0 }, nPiToMuCasc{0 }, nPiToMuOmegac0{0 };
332332 int8_t nKaToPiCasc{0 }, nKaToPiOmegac0{0 };
333333 std::vector<int > idxBhadMothers{};
334- int decayChannel = -1 ; // flag for different decay channels
335-
334+ int decayChannel = -1 ; // flag for different decay channels
335+
336336 void processMc (aod::McCollisions const &,
337337 aod::McParticles const & mcParticles)
338338 {
@@ -359,11 +359,11 @@ struct HfTreeCreatorOmegacSt {
359359 }
360360 }
361361 if (idxPionDaughter >= 0 && idxCascDaughter >= 0 ) {
362- decayChannel = hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi; // OmegaC -> Omega + Pi
362+ decayChannel = hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi; // OmegaC -> Omega + Pi
363363 } else if (idxKaonDaughter >= 0 && idxCascDaughter >= 0 ) {
364- decayChannel = hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK; // OmegaC -> Omega + K
364+ decayChannel = hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK; // OmegaC -> Omega + K
365365 } else {
366- LOG (warning) << " Decay channel not recognized!" ;
366+ LOG (warning) << " Decay channel not recognized!" ;
367367 }
368368 if (decayChannel != -1 ) {
369369 int idxDaughter = (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) ? idxPionDaughter : idxKaonDaughter;
@@ -551,7 +551,7 @@ struct HfTreeCreatorOmegacSt {
551551 if (((std::abs (bachelor.tpcNSigmaKa ()) < maxNSigmaBachelor) || (std::abs (bachelor.tpcNSigmaPi ()) < maxNSigmaBachelor)) &&
552552 (std::abs (v0TrackPr.tpcNSigmaPr ()) < maxNSigmaV0Pr) &&
553553 (std::abs (v0TrackPi.tpcNSigmaPi ()) < maxNSigmaV0Pi)) {
554-
554+
555555 std::array<double , 2 > massesOmegacToOmegaPi{o2::constants::physics::MassOmegaMinus, o2::constants::physics::MassPiPlus};
556556 std::array<double , 2 > massesOmegacToOmegaK{o2::constants::physics::MassOmegaMinus, o2::constants::physics::MassKPlus};
557557 std::array<double , 2 > massesXicDaughters{o2::constants::physics::MassXiMinus, o2::constants::physics::MassPiPlus};
@@ -633,56 +633,59 @@ struct HfTreeCreatorOmegacSt {
633633 registry.fill (HIST (" hMassOmegaPiVsPt" ), massOmegaPi, RecoDecay::pt (momenta[0 ], momenta[1 ]));
634634 registry.fill (HIST (" hMassOmegaK" ), massOmegaK);
635635 registry.fill (HIST (" hMassOmegaKVsPt" ), massOmegaK, RecoDecay::pt (momenta[0 ], momenta[1 ]));
636-
636+
637637 // --- do the MC Rec match
638- auto arrayDaughters = std::array{trackId.template track_as <TracksExtMc>, // bachelor <- charm baryon
639- casc.bachelor_as <TracksExtMc>(), // bachelor <- cascade
640- V0.posTrack_as <TracksExtMc>(), // p <- lambda
641- V0.negTrack_as <TracksExtMc> // pi <- lambda
642- };
643- auto arrayDaughtersCasc = std::array{casc.bachelor_as <TracksExtMc>(), // bachelor <- cascade
644- V0.posTrack_as <TracksExtMc>(), // p <- lambda
645- V0.negTrack_as <TracksExtMc> // pi <- lambda
646- };
647- auto arrayDaughtersV0 = std::array{V0.posTrack_as <TracksExtMc>(), // p <- lambda
648- V0.negTrack_as <TracksExtMc> // pi <- lambda
649- };
650-
638+ auto arrayDaughters = std::array{
639+ trackId.template track_as <TracksExtMc>, // bachelor <- charm baryon
640+ casc.bachelor_as <TracksExtMc>(), // bachelor <- cascade
641+ V0.posTrack_as <TracksExtMc>(), // p <- lambda
642+ V0.negTrack_as <TracksExtMc> // pi <- lambda
643+ };
644+ auto arrayDaughtersCasc = std::array{
645+ casc.bachelor_as <TracksExtMc>(), // bachelor <- cascade
646+ V0.posTrack_as <TracksExtMc>(), // p <- lambda
647+ V0.negTrack_as <TracksExtMc> // pi <- lambda
648+ };
649+ auto arrayDaughtersV0 = std::array{
650+ V0.posTrack_as <TracksExtMc>(), // p <- lambda
651+ V0.negTrack_as <TracksExtMc> // pi <- lambda
652+ };
653+
651654 if (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) {
652- // Match Omegac0 → Omega- + Pi+
653- indexRec = RecoDecay::getMatchedMCRec<false , true , false , true , false >(mcParticles,arrayDaughters,+kOmegaC0 ,
654- std::array{+kPiPlus , +kKMinus , +kProton , +kPiMinus },true ,&sign,3 , &nPiToMuOmegac0,&nKaToPiOmegac0);
655+ // Match Omegac0 → Omega- + Pi+
656+ indexRec = RecoDecay::getMatchedMCRec<false , true , false , true , false >(mcParticles, arrayDaughters, +kOmegaC0 ,
657+ std::array{+kPiPlus , +kKMinus , +kProton , +kPiMinus }, true , &sign, 3 , &nPiToMuOmegac0, &nKaToPiOmegac0);
655658 } else if (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK) {
656- // Match Omegac0 → Omega- + K+
657- indexRec = RecoDecay::getMatchedMCRec<false , true , false , true , false >(mcParticles,arrayDaughters,+kOmegaC0 ,
658- std::array{+kKPlus , +kKMinus , +kProton , +kPiMinus },true ,&sign,3 , &nPiToMuOmegac0,&nKaToPiOmegac0);
659+ // Match Omegac0 → Omega- + K+
660+ indexRec = RecoDecay::getMatchedMCRec<false , true , false , true , false >(mcParticles, arrayDaughters, +kOmegaC0 ,
661+ std::array{+kKPlus , +kKMinus , +kProton , +kPiMinus }, true , &sign, 3 , &nPiToMuOmegac0, &nKaToPiOmegac0);
659662 }
660663
661664 indexRecCharmBaryon = indexRec;
662- if (indexRec -> -1 ){
663- // Omega- → K pi p (Cascade match)
664- indexRec = RecoDecay::getMatchedMCRec<false , true , false , true , true >(mcParticles, arrayDaughtersCasc, +kOmegaMinus , std::array{+kKMinus , +kProton , +kPiMinus }, true , &signCasc, 2 , &nPiToMuCasc, &nKaToPiCasc);
665- if (indexRec -> -1 ){
666- // Lambda → p pi (Lambda match)
667- indexRec = RecoDecay::getMatchedMCRec<false , true , false , true , true >(mcParticles, arrayDaughtersV0, +kLambda0 , std::array{+kProton , +kPiMinus }, true , &signV0, 1 , &nPiToMuV0);
668- if (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) {
669- if (nPiToMuOmegac0 >= 1 && nKaToPiOmegac0 == 0 ) {
670- isMatched = true ;
671- } else if (nPiToMuOmegac0 == 0 && nKaToPiOmegac0 == 0 ) {
672- isMatched = true ;
673- }
674- } else if (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK) {
675- if (nPiToMuOmegac0 == 0 && nKaToPiOmegac0 == 0 ) {
676- isMatched = true ;
677- }
678- }
665+ if (indexRec->- 1 ) {
666+ // Omega- → K pi p (Cascade match)
667+ indexRec = RecoDecay::getMatchedMCRec<false , true , false , true , true >(mcParticles, arrayDaughtersCasc, +kOmegaMinus , std::array{+kKMinus , +kProton , +kPiMinus }, true , &signCasc, 2 , &nPiToMuCasc, &nKaToPiCasc);
668+ if (indexRec->- 1 ) {
669+ // Lambda → p pi (Lambda match)
670+ indexRec = RecoDecay::getMatchedMCRec<false , true , false , true , true >(mcParticles, arrayDaughtersV0, +kLambda0 , std::array{+kProton , +kPiMinus }, true , &signV0, 1 , &nPiToMuV0);
671+ if (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) {
672+ if (nPiToMuOmegac0 >= 1 && nKaToPiOmegac0 == 0 ) {
673+ isMatched = true ;
674+ } else if (nPiToMuOmegac0 == 0 && nKaToPiOmegac0 == 0 ) {
675+ isMatched = true ;
679676 }
677+ } else if (decayChannel == hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK) {
678+ if (nPiToMuOmegac0 == 0 && nKaToPiOmegac0 == 0 ) {
679+ isMatched = true ;
680+ }
681+ }
680682 }
681- if (isMatched) {
682- auto particle = mcParticles.rawIteratorAt (indexRecCharmBaryon);
683- origin = RecoDecay::getCharmHadronOrigin (mcParticles, particle, false , &idxBhadMothers);
684- }
685-
683+ }
684+ if (isMatched) {
685+ auto particle = mcParticles.rawIteratorAt (indexRecCharmBaryon);
686+ origin = RecoDecay::getCharmHadronOrigin (mcParticles, particle, false , &idxBhadMothers);
687+ }
688+
686689 if ((std::abs (massOmegaC - o2::constants::physics::MassOmegaC0) < massWindowOmegaC) ||
687690 (std::abs (massXiC - o2::constants::physics::MassXiC0) < massWindowXiC)) {
688691 registry.fill (HIST (" hDecayLength" ), decayLength * 1e4 );
0 commit comments