|
15 | 15 | /// \author Jochen Klein |
16 | 16 | /// \author Tiantian Cheng |
17 | 17 |
|
18 | | -#include <map> |
19 | | -#include <memory> |
20 | | -#include <string> |
21 | | -#include <vector> |
| 18 | +#include "PWGHF/Core/SelectorCuts.h" |
| 19 | +#include "PWGHF/DataModel/CandidateReconstructionTables.h" |
| 20 | +#include "PWGHF/Utils/utilsTrkCandHf.h" |
| 21 | +#include "PWGLF/DataModel/LFStrangenessTables.h" |
22 | 22 |
|
23 | | -#include <TPDGCode.h> |
| 23 | +#include "Common/Core/RecoDecay.h" |
| 24 | +#include "Common/Core/TrackSelection.h" |
| 25 | +#include "Common/Core/trackUtilities.h" |
| 26 | +#include "Common/DataModel/CollisionAssociationTables.h" |
| 27 | +#include "Common/DataModel/EventSelection.h" |
| 28 | +#include "Common/DataModel/PIDResponse.h" |
| 29 | +#include "Common/DataModel/TrackSelectionTables.h" |
| 30 | +#include "EventFiltering/Zorro.h" |
| 31 | +#include "EventFiltering/ZorroSummary.h" |
24 | 32 |
|
25 | 33 | #include "CCDB/BasicCCDBManager.h" |
26 | 34 | #include "CommonConstants/PhysicsConstants.h" |
| 35 | +#include "DCAFitter/DCAFitterN.h" |
27 | 36 | #include "DataFormatsParameters/GRPMagField.h" |
28 | 37 | #include "DataFormatsParameters/GRPObject.h" |
29 | | -#include "DCAFitter/DCAFitterN.h" |
30 | 38 | #include "DetectorsBase/Propagator.h" |
31 | | -#include "EventFiltering/Zorro.h" |
32 | | -#include "EventFiltering/ZorroSummary.h" |
| 39 | +#include "Framework/ASoA.h" |
33 | 40 | #include "Framework/AnalysisDataModel.h" |
34 | 41 | #include "Framework/AnalysisTask.h" |
35 | | -#include "Framework/ASoA.h" |
36 | 42 | #include "Framework/HistogramRegistry.h" |
37 | 43 | #include "Framework/O2DatabasePDGPlugin.h" |
38 | 44 | #include "Framework/runDataProcessing.h" |
39 | 45 | #include "ReconstructionDataFormats/DCA.h" |
40 | | -#include "Common/DataModel/EventSelection.h" |
41 | | -#include "Common/Core/RecoDecay.h" |
42 | | -#include "Common/Core/trackUtilities.h" |
43 | | -#include "Common/DataModel/PIDResponse.h" |
44 | | -#include "Common/Core/TrackSelection.h" |
45 | | -#include "Common/DataModel/TrackSelectionTables.h" |
46 | | -#include "Common/DataModel/CollisionAssociationTables.h" |
47 | | -#include "PWGLF/DataModel/LFStrangenessTables.h" |
48 | | -#include "PWGHF/Core/SelectorCuts.h" |
49 | | -#include "PWGHF/Utils/utilsTrkCandHf.h" |
50 | | -#include "PWGHF/DataModel/CandidateReconstructionTables.h" |
| 46 | + |
| 47 | +#include <TPDGCode.h> |
| 48 | + |
| 49 | +#include <map> |
| 50 | +#include <memory> |
| 51 | +#include <string> |
| 52 | +#include <vector> |
51 | 53 |
|
52 | 54 | using namespace o2; |
53 | 55 | using namespace o2::framework; |
@@ -369,8 +371,7 @@ struct HfTreeCreatorOmegacSt { |
369 | 371 | } else if (idxKaonDaughter >= 0 && idxCascDaughter >= 0) { |
370 | 372 | decayChannel = o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK; // OmegaC -> Omega + K |
371 | 373 | } else { |
372 | | - decayChannel = -1; |
373 | | - LOG(warning) << "Decay channel not recognized!"; |
| 374 | + decayChannel = -1; // LOG(warning) << "Decay channel not recognized!"; |
374 | 375 | } |
375 | 376 | if (decayChannel != -1) { |
376 | 377 | int idxDaughter = (decayChannel == o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) ? idxPionDaughter : idxKaonDaughter; |
@@ -662,32 +663,36 @@ struct HfTreeCreatorOmegacSt { |
662 | 663 | // Match Omegac0 → Omega- + Pi+ |
663 | 664 | indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, false>(mcParticles->get(), arrayDaughters, o2::constants::physics::kOmegaC0, |
664 | 665 | std::array{+kPiPlus, +kKMinus, +kProton, +kPiMinus}, true, &sign, 3, &nPiToMuOmegac0, &nKaToPiOmegac0); |
| 666 | + indexRecCharmBaryon = indexRec; |
| 667 | + if (indexRec > -1) { |
| 668 | + // Omega- → K pi p (Cascade match) |
| 669 | + indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles->get(), arrayDaughtersCasc, +kOmegaMinus, std::array{+kKMinus, +kProton, +kPiMinus}, true, &signCasc, 2, &nPiToMuCasc, &nKaToPiCasc); |
| 670 | + if (indexRec > -1) { |
| 671 | + // Lambda → p pi (Lambda match) |
| 672 | + indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles->get(), arrayDaughtersV0, +kLambda0, std::array{+kProton, +kPiMinus}, true, &signV0, 1, &nPiToMuV0); |
| 673 | + if (indexRec > -1) { |
| 674 | + isMatched = true; |
| 675 | + } |
| 676 | + } |
| 677 | + } |
665 | 678 | } else if (decayChannel == o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK) { |
666 | 679 | // Match Omegac0 → Omega- + K+ |
667 | 680 | indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, false>(mcParticles->get(), arrayDaughters, o2::constants::physics::kOmegaC0, |
668 | 681 | std::array{+kKPlus, +kKMinus, +kProton, +kPiMinus}, true, &sign, 3, &nPiToMuOmegac0, &nKaToPiOmegac0); |
669 | | - } |
670 | | - indexRecCharmBaryon = indexRec; |
671 | | - if (indexRec > -1) { |
672 | | - // Omega- → K pi p (Cascade match) |
673 | | - indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles->get(), arrayDaughtersCasc, +kOmegaMinus, std::array{+kKMinus, +kProton, +kPiMinus}, true, &signCasc, 2, &nPiToMuCasc, &nKaToPiCasc); |
| 682 | + indexRecCharmBaryon = indexRec; |
674 | 683 | if (indexRec > -1) { |
675 | | - // Lambda → p pi (Lambda match) |
676 | | - indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles->get(), arrayDaughtersV0, +kLambda0, std::array{+kProton, +kPiMinus}, true, &signV0, 1, &nPiToMuV0); |
677 | | - if (decayChannel == o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaPi) { |
678 | | - if (nPiToMuOmegac0 >= 1 && nKaToPiOmegac0 == 0) { |
679 | | - isMatched = true; |
680 | | - } else if (nPiToMuOmegac0 == 0 && nKaToPiOmegac0 == 0) { |
681 | | - isMatched = true; |
682 | | - } |
683 | | - } else if (decayChannel == o2::aod::hf_cand_casc_lf::DecayType2Prong::OmegaczeroToOmegaK) { |
684 | | - if (nPiToMuOmegac0 == 0 && nKaToPiOmegac0 == 0) { |
| 684 | + // Omega- → K pi p (Cascade match) |
| 685 | + indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles->get(), arrayDaughtersCasc, +kOmegaMinus, std::array{+kKMinus, +kProton, +kPiMinus}, true, &signCasc, 2, &nPiToMuCasc, &nKaToPiCasc); |
| 686 | + if (indexRec > -1) { |
| 687 | + // Lambda → p pi (Lambda match) |
| 688 | + indexRec = RecoDecay::getMatchedMCRec<false, true, false, true, true>(mcParticles->get(), arrayDaughtersV0, +kLambda0, std::array{+kProton, +kPiMinus}, true, &signV0, 1, &nPiToMuV0); |
| 689 | + if (indexRec > -1) { |
685 | 690 | isMatched = true; |
686 | 691 | } |
687 | 692 | } |
688 | 693 | } |
689 | 694 | } |
690 | | - if (isMatched) { |
| 695 | + if (isMatched && indexRecCharmBaryon > -1) { |
691 | 696 | auto particle = mcParticles->get().rawIteratorAt(indexRecCharmBaryon); |
692 | 697 | origin = RecoDecay::getCharmHadronOrigin(mcParticles->get(), particle, false, &idxBhadMothers); |
693 | 698 | } |
|
0 commit comments