From 20bf405fd8863b9e0d86d9c85ad507bb9d7a0ce3 Mon Sep 17 00:00:00 2001 From: Federica Zanone <94552525+ZFederica@users.noreply.github.com> Date: Thu, 13 Jun 2024 20:47:26 +0200 Subject: [PATCH] PWGHF: small fixes in charm baryon tasks (#6483) * Fix bool and config * eta->y gen level info * Update PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx Co-authored-by: Fabio Catalano * Remove unnecessary check * Switch to McEvSel func * Use hfEvSelMc func * Please consider the following formatting changes * Remove unnecessary code * Remove include * Remove include --------- Co-authored-by: Fabio Catalano Co-authored-by: ALICE Action Bot --- .../DataModel/CandidateReconstructionTables.h | 10 +-- .../candidateCreatorXic0Omegac0.cxx | 68 +++++++++---------- PWGHF/Tasks/taskMcEfficiencyToXiPi.cxx | 12 +--- 3 files changed, 40 insertions(+), 50 deletions(-) diff --git a/PWGHF/DataModel/CandidateReconstructionTables.h b/PWGHF/DataModel/CandidateReconstructionTables.h index 45d2a696420..6c1b4d50356 100644 --- a/PWGHF/DataModel/CandidateReconstructionTables.h +++ b/PWGHF/DataModel/CandidateReconstructionTables.h @@ -1175,7 +1175,7 @@ DECLARE_SOA_COLUMN(DebugGenLambda, debugGenLambda, int8_t); DECLARE_SOA_COLUMN(OriginRec, originRec, int8_t); DECLARE_SOA_COLUMN(OriginGen, originGen, int8_t); DECLARE_SOA_COLUMN(PtCharmBaryonGen, ptCharmBaryonGen, float); -DECLARE_SOA_COLUMN(EtaCharmBaryonGen, etaCharmBaryonGen, float); +DECLARE_SOA_COLUMN(RapidityCharmBaryonGen, rapidityCharmBaryonGen, float); // mapping of decay types enum DecayType { XiczeroToXiPi = 0, @@ -1309,16 +1309,16 @@ DECLARE_SOA_TABLE(HfToOmegaKMCRec, "AOD", "HFTOOMEKMCREC", //! // table with results of generator level MC matching DECLARE_SOA_TABLE(HfXicToXiPiMCGen, "AOD", "HFXICXIPIMCGEN", //! hf_cand_xic0_omegac0::FlagMcMatchGen, hf_cand_xic0_omegac0::DebugGenCharmBar, hf_cand_xic0_omegac0::DebugGenCasc, hf_cand_xic0_omegac0::DebugGenLambda, - hf_cand_xic0_omegac0::PtCharmBaryonGen, hf_cand_xic0_omegac0::EtaCharmBaryonGen, hf_cand_xic0_omegac0::OriginGen, hf_cand::IdxBhadMotherPart, o2::soa::Marker<1>); + hf_cand_xic0_omegac0::PtCharmBaryonGen, hf_cand_xic0_omegac0::RapidityCharmBaryonGen, hf_cand_xic0_omegac0::OriginGen, hf_cand::IdxBhadMotherPart, o2::soa::Marker<1>); DECLARE_SOA_TABLE(HfOmegacToXiPiMCGen, "AOD", "HFOMECXIPIMCGEN", //! hf_cand_xic0_omegac0::FlagMcMatchGen, hf_cand_xic0_omegac0::DebugGenCharmBar, hf_cand_xic0_omegac0::DebugGenCasc, hf_cand_xic0_omegac0::DebugGenLambda, - hf_cand_xic0_omegac0::PtCharmBaryonGen, hf_cand_xic0_omegac0::EtaCharmBaryonGen, hf_cand_xic0_omegac0::OriginGen, hf_cand::IdxBhadMotherPart, o2::soa::Marker<2>); + hf_cand_xic0_omegac0::PtCharmBaryonGen, hf_cand_xic0_omegac0::RapidityCharmBaryonGen, hf_cand_xic0_omegac0::OriginGen, hf_cand::IdxBhadMotherPart, o2::soa::Marker<2>); DECLARE_SOA_TABLE(HfToOmegaPiMCGen, "AOD", "HFTOOMEPIMCGEN", //! hf_cand_xic0_omegac0::FlagMcMatchGen, hf_cand_xic0_omegac0::DebugGenCharmBar, hf_cand_xic0_omegac0::DebugGenCasc, hf_cand_xic0_omegac0::DebugGenLambda, - hf_cand_xic0_omegac0::PtCharmBaryonGen, hf_cand_xic0_omegac0::EtaCharmBaryonGen, hf_cand_xic0_omegac0::OriginGen, hf_cand::IdxBhadMotherPart, o2::soa::Marker<3>); + hf_cand_xic0_omegac0::PtCharmBaryonGen, hf_cand_xic0_omegac0::RapidityCharmBaryonGen, hf_cand_xic0_omegac0::OriginGen, hf_cand::IdxBhadMotherPart, o2::soa::Marker<3>); DECLARE_SOA_TABLE(HfToOmegaKMCGen, "AOD", "HFTOOMEKMCGEN", //! hf_cand_xic0_omegac0::FlagMcMatchGen, hf_cand_xic0_omegac0::DebugGenCharmBar, hf_cand_xic0_omegac0::DebugGenCasc, hf_cand_xic0_omegac0::DebugGenLambda, - hf_cand_xic0_omegac0::PtCharmBaryonGen, hf_cand_xic0_omegac0::EtaCharmBaryonGen, hf_cand_xic0_omegac0::OriginGen, hf_cand::IdxBhadMotherPart, o2::soa::Marker<4>); + hf_cand_xic0_omegac0::PtCharmBaryonGen, hf_cand_xic0_omegac0::RapidityCharmBaryonGen, hf_cand_xic0_omegac0::OriginGen, hf_cand::IdxBhadMotherPart, o2::soa::Marker<4>); // specific chic candidate properties namespace hf_cand_chic diff --git a/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx b/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx index df464ec71e3..b4b6cfdfa86 100644 --- a/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx +++ b/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx @@ -687,7 +687,7 @@ struct HfCandidateCreatorXic0Omegac0Mc { BCsInfo const&) { float ptCharmBaryonGen = -999.; - float etaCharmBaryonGen = -999.; + float rapidityCharmBaryonGen = -999.; int indexRec = -1; int indexRecCharmBaryon = -1; int8_t sign = -9; @@ -758,9 +758,9 @@ struct HfCandidateCreatorXic0Omegac0Mc { // Check whether the charm baryon is non-prompt (from a b quark). if (flag != 0) { auto particle = mcParticles.rawIteratorAt(indexRecCharmBaryon); - origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, true, &idxBhadMothers); + origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers); } - if (origin == RecoDecay::OriginType::NonPrompt && idxBhadMothers.size() > 0) { + if (origin == RecoDecay::OriginType::NonPrompt) { auto bHadMother = mcParticles.rawIteratorAt(idxBhadMothers[0]); rowMCMatchRecXicToXiPi(flag, debug, origin, collisionMatched, bHadMother.pt(), bHadMother.pdgCode()); } else { @@ -797,9 +797,9 @@ struct HfCandidateCreatorXic0Omegac0Mc { // Check whether the charm baryon is non-prompt (from a b quark). if (flag != 0) { auto particle = mcParticles.rawIteratorAt(indexRecCharmBaryon); - origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, true, &idxBhadMothers); + origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers); } - if (origin == RecoDecay::OriginType::NonPrompt && idxBhadMothers.size() > 0) { + if (origin == RecoDecay::OriginType::NonPrompt) { auto bHadMother = mcParticles.rawIteratorAt(idxBhadMothers[0]); rowMCMatchRecOmegacToXiPi(flag, debug, origin, collisionMatched, bHadMother.pt(), bHadMother.pdgCode()); } else { @@ -836,9 +836,9 @@ struct HfCandidateCreatorXic0Omegac0Mc { // Check whether the charm baryon is non-prompt (from a b quark). if (flag != 0) { auto particle = mcParticles.rawIteratorAt(indexRecCharmBaryon); - origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, true, &idxBhadMothers); + origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers); } - if (origin == RecoDecay::OriginType::NonPrompt && idxBhadMothers.size() > 0) { + if (origin == RecoDecay::OriginType::NonPrompt) { auto bHadMother = mcParticles.rawIteratorAt(idxBhadMothers[0]); rowMCMatchRecToOmegaPi(flag, debug, origin, collisionMatched, bHadMother.pt(), bHadMother.pdgCode()); } else { @@ -875,9 +875,9 @@ struct HfCandidateCreatorXic0Omegac0Mc { // Check whether the charm baryon is non-prompt (from a b quark). if (flag != 0) { auto particle = mcParticles.rawIteratorAt(indexRecCharmBaryon); - origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, true, &idxBhadMothers); + origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers); } - if (origin == RecoDecay::OriginType::NonPrompt && idxBhadMothers.size() > 0) { + if (origin == RecoDecay::OriginType::NonPrompt) { auto bHadMother = mcParticles.rawIteratorAt(idxBhadMothers[0]); rowMCMatchRecToOmegaK(flag, debug, origin, collisionMatched, bHadMother.pt(), bHadMother.pdgCode()); } else { @@ -892,7 +892,7 @@ struct HfCandidateCreatorXic0Omegac0Mc { // Match generated particles. for (const auto& particle : mcParticles) { ptCharmBaryonGen = -999.; - etaCharmBaryonGen = -999.; + rapidityCharmBaryonGen = -999.; flag = 0; sign = -9; debugGenCharmBar = 0; @@ -907,13 +907,13 @@ struct HfCandidateCreatorXic0Omegac0Mc { if (rejectionMask != 0) { /// at least one event selection not satisfied --> reject the gen particle if constexpr (decayChannel == aod::hf_cand_xic0_omegac0::DecayType::XiczeroToXiPi) { - rowMCMatchGenXicToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, -1); + rowMCMatchGenXicToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, -1); } else if constexpr (decayChannel == aod::hf_cand_xic0_omegac0::DecayType::OmegaczeroToXiPi) { - rowMCMatchGenOmegacToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, -1); + rowMCMatchGenOmegacToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, -1); } else if constexpr (decayChannel == aod::hf_cand_xic0_omegac0::DecayType::OmegaczeroToOmegaPi) { - rowMCMatchGenToOmegaPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, -1); + rowMCMatchGenToOmegaPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, -1); } else if constexpr (decayChannel == aod::hf_cand_xic0_omegac0::DecayType::OmegaczeroToOmegaK) { - rowMCMatchGenToOmegaK(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, -1); + rowMCMatchGenToOmegaK(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, -1); } continue; } @@ -923,7 +923,7 @@ struct HfCandidateCreatorXic0Omegac0Mc { if (RecoDecay::isMatchedMCGen(mcParticles, particle, pdgCodeXic0, std::array{pdgCodeXiMinus, pdgCodePiPlus}, true, &sign)) { debugGenCharmBar = 1; ptCharmBaryonGen = particle.pt(); - etaCharmBaryonGen = particle.eta(); + rapidityCharmBaryonGen = particle.y(); for (const auto& daughterCharm : particle.daughters_as()) { if (std::abs(daughterCharm.pdgCode()) != pdgCodeXiMinus) { continue; @@ -946,12 +946,12 @@ struct HfCandidateCreatorXic0Omegac0Mc { } // Check whether the charm baryon is non-prompt (from a b quark) if (flag != 0) { - origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, true, &idxBhadMothers); + origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers); } - if (origin == RecoDecay::OriginType::NonPrompt && idxBhadMothers.size() > 0) { - rowMCMatchGenXicToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, idxBhadMothers[0]); + if (origin == RecoDecay::OriginType::NonPrompt) { + rowMCMatchGenXicToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, idxBhadMothers[0]); } else { - rowMCMatchGenXicToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, -1); + rowMCMatchGenXicToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, -1); } } else if constexpr (decayChannel == aod::hf_cand_xic0_omegac0::DecayType::OmegaczeroToXiPi) { @@ -959,7 +959,7 @@ struct HfCandidateCreatorXic0Omegac0Mc { if (RecoDecay::isMatchedMCGen(mcParticles, particle, pdgCodeOmegac0, std::array{pdgCodeXiMinus, pdgCodePiPlus}, true, &sign)) { debugGenCharmBar = 1; ptCharmBaryonGen = particle.pt(); - etaCharmBaryonGen = particle.eta(); + rapidityCharmBaryonGen = particle.y(); for (const auto& daughterCharm : particle.daughters_as()) { if (std::abs(daughterCharm.pdgCode()) != pdgCodeXiMinus) { continue; @@ -982,12 +982,12 @@ struct HfCandidateCreatorXic0Omegac0Mc { } // Check whether the charm baryon is non-prompt (from a b quark) if (flag != 0) { - origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, true, &idxBhadMothers); + origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers); } - if (origin == RecoDecay::OriginType::NonPrompt && idxBhadMothers.size() > 0) { - rowMCMatchGenOmegacToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, idxBhadMothers[0]); + if (origin == RecoDecay::OriginType::NonPrompt) { + rowMCMatchGenOmegacToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, idxBhadMothers[0]); } else { - rowMCMatchGenOmegacToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, -1); + rowMCMatchGenOmegacToXiPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, -1); } } else if constexpr (decayChannel == aod::hf_cand_xic0_omegac0::DecayType::OmegaczeroToOmegaPi) { @@ -995,7 +995,7 @@ struct HfCandidateCreatorXic0Omegac0Mc { if (RecoDecay::isMatchedMCGen(mcParticles, particle, pdgCodeOmegac0, std::array{pdgCodeOmegaMinus, pdgCodePiPlus}, true, &sign)) { debugGenCharmBar = 1; ptCharmBaryonGen = particle.pt(); - etaCharmBaryonGen = particle.eta(); + rapidityCharmBaryonGen = particle.y(); for (const auto& daughterCharm : particle.daughters_as()) { if (std::abs(daughterCharm.pdgCode()) != pdgCodeOmegaMinus) { continue; @@ -1018,12 +1018,12 @@ struct HfCandidateCreatorXic0Omegac0Mc { } // Check whether the charm baryon is non-prompt (from a b quark) if (flag != 0) { - origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, true, &idxBhadMothers); + origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers); } - if (origin == RecoDecay::OriginType::NonPrompt && idxBhadMothers.size() > 0) { - rowMCMatchGenToOmegaPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, idxBhadMothers[0]); + if (origin == RecoDecay::OriginType::NonPrompt) { + rowMCMatchGenToOmegaPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, idxBhadMothers[0]); } else { - rowMCMatchGenToOmegaPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, -1); + rowMCMatchGenToOmegaPi(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, -1); } } else if constexpr (decayChannel == aod::hf_cand_xic0_omegac0::DecayType::OmegaczeroToOmegaK) { @@ -1031,7 +1031,7 @@ struct HfCandidateCreatorXic0Omegac0Mc { if (RecoDecay::isMatchedMCGen(mcParticles, particle, pdgCodeOmegac0, std::array{pdgCodeOmegaMinus, pdgCodeKaonPlus}, true, &sign)) { debugGenCharmBar = 1; ptCharmBaryonGen = particle.pt(); - etaCharmBaryonGen = particle.eta(); + rapidityCharmBaryonGen = particle.y(); for (const auto& daughterCharm : particle.daughters_as()) { if (std::abs(daughterCharm.pdgCode()) != pdgCodeOmegaMinus) { continue; @@ -1054,12 +1054,12 @@ struct HfCandidateCreatorXic0Omegac0Mc { } // Check whether the charm baryon is non-prompt (from a b quark) if (flag != 0) { - origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, true, &idxBhadMothers); + origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers); } - if (origin == RecoDecay::OriginType::NonPrompt && idxBhadMothers.size() > 0) { - rowMCMatchGenToOmegaK(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, idxBhadMothers[0]); + if (origin == RecoDecay::OriginType::NonPrompt) { + rowMCMatchGenToOmegaK(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, idxBhadMothers[0]); } else { - rowMCMatchGenToOmegaK(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, etaCharmBaryonGen, origin, -1); + rowMCMatchGenToOmegaK(flag, debugGenCharmBar, debugGenCasc, debugGenLambda, ptCharmBaryonGen, rapidityCharmBaryonGen, origin, -1); } } } // close loop on MCParticles diff --git a/PWGHF/Tasks/taskMcEfficiencyToXiPi.cxx b/PWGHF/Tasks/taskMcEfficiencyToXiPi.cxx index 7c52efe66e2..ffb34743fff 100644 --- a/PWGHF/Tasks/taskMcEfficiencyToXiPi.cxx +++ b/PWGHF/Tasks/taskMcEfficiencyToXiPi.cxx @@ -34,6 +34,7 @@ using namespace o2::framework; using namespace o2::framework::expressions; struct HfTaskMcEfficiencyToXiPi { + Configurable rapidityCharmBaryonMax{"rapidityCharmBaryonMax", 0.5, "Max absolute value of rapidity for charm baryon"}; Configurable acceptanceEtaLf{"acceptanceEtaLf", 1.0, "Max absolute value of eta for LF daughters"}; Configurable acceptancePtPionFromCascade{"acceptancePtPionFromCascade", 0.2, "Min value of pt for pion <-- cascade"}; @@ -43,8 +44,6 @@ struct HfTaskMcEfficiencyToXiPi { Configurable nClustersTpcMin{"nClustersTpcMin", 70, "Minimum number of TPC clusters requirement for pion <-- charm baryon"}; Configurable nClustersItsMin{"nClustersItsMin", 3, "Minimum number of ITS clusters requirement for pion <- charm baryon"}; - Configurable rejGenTFAndITSROFBorders{"rejGenTFAndITSROFBorders", true, "Reject generated particles coming from bc close to TF and ITSROF borders"}; - ConfigurableAxis axisPt{"axisPt", {200, 0, 20}, "pT axis"}; ConfigurableAxis axisMass{"axisMass", {900, 2.1, 3}, "m_inv axis"}; @@ -212,15 +211,6 @@ struct HfTaskMcEfficiencyToXiPi { for (const auto& mcParticle : genParticles) { - // accept only mc particles coming from bc that are far away from TF border and ITSROFrame - if (rejGenTFAndITSROFBorders) { - auto coll = mcParticle.template mcCollision_as(); - auto bc = coll.template bc_as(); - if (!bc.selection_bit(o2::aod::evsel::kNoITSROFrameBorder) || !bc.selection_bit(o2::aod::evsel::kNoTimeFrameBorder)) { - continue; - } - } - // check if I am treating the desired charm baryon if (std::abs(mcParticle.pdgCode()) != pdgCode) { continue;