From 062fc485c66d1015eb10fa0c72d98f083cf88dea Mon Sep 17 00:00:00 2001 From: Fabrizio Grosa Date: Thu, 20 Aug 2026 11:43:24 +0200 Subject: [PATCH] Add MC information to table for single charm had in femto tasks --- PWGCF/DataModel/FemtoDerived.h | 12 +++++++--- .../Tasks/taskCharmHadronsTrackFemtoDream.cxx | 23 +++++++++++++++---- .../Tasks/taskCharmHadronsV0FemtoDream.cxx | 19 ++++++++++++--- 3 files changed, 44 insertions(+), 10 deletions(-) diff --git a/PWGCF/DataModel/FemtoDerived.h b/PWGCF/DataModel/FemtoDerived.h index a4d00d6d416..0b779485244 100644 --- a/PWGCF/DataModel/FemtoDerived.h +++ b/PWGCF/DataModel/FemtoDerived.h @@ -567,7 +567,9 @@ DECLARE_SOA_TABLE(FDHfCharm3Prong, "AOD", "FDHFCHARM3PRONG", //! table to store fdhf::Charge, fdhf::BDTBkg, fdhf::BDTPrompt, - fdhf::BDTFD); + fdhf::BDTFD, + fdhf::FlagMc, + fdhf::OriginMcRec); DECLARE_SOA_TABLE(FDHfCharm2Prong, "AOD", "FDHFCHARM2PRONG", //! table to store results for HF femtoscopy fdhf::GIndexCol, @@ -581,7 +583,9 @@ DECLARE_SOA_TABLE(FDHfCharm2Prong, "AOD", "FDHFCHARM2PRONG", //! table to store fdhf::Charge, fdhf::BDTBkg, fdhf::BDTPrompt, - fdhf::BDTFD); + fdhf::BDTFD, + fdhf::FlagMc, + fdhf::OriginMcRec); DECLARE_SOA_TABLE(FDHfCharmDstar, "AOD", "FDHFCHARMDSTAR", //! table to store results for HF femtoscopy fdhf::GIndexCol, @@ -597,7 +601,9 @@ DECLARE_SOA_TABLE(FDHfCharmDstar, "AOD", "FDHFCHARMDSTAR", //! table to store re fdhf::Charge, fdhf::BDTBkg, fdhf::BDTPrompt, - fdhf::BDTFD); + fdhf::BDTFD, + fdhf::FlagMc, + fdhf::OriginMcRec); DECLARE_SOA_TABLE(FDHfTrk, "AOD", "FDHFTRK", //! table to store results for HF femtoscopy fdhf::GIndexCol, diff --git a/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx b/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx index f02386d5894..92915f093a8 100644 --- a/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx +++ b/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx @@ -768,6 +768,13 @@ struct HfTaskCharmHadronsTrackFemtoDream { timeStamp = part.timeStamp(); + int charmHadMc = 0; + int originType = 0; + if constexpr (IsMc) { + charmHadMc = part.flagMc(); + originType = part.originMcRec(); + } + if constexpr (Channel == DecayChannel::DplusToPiKPi || Channel == DecayChannel::LcToPKPi) { rowFemtoResultCharm3Prong( @@ -783,7 +790,9 @@ struct HfTaskCharmHadronsTrackFemtoDream { part.charge(), part.bdtBkg(), part.bdtPrompt(), - part.bdtFD()); + part.bdtFD(), + charmHadMc, + originType); } else if constexpr (Channel == DecayChannel::XicToXiPiPi) { rowFemtoResultCharm3Prong( col.globalIndex(), @@ -798,7 +807,9 @@ struct HfTaskCharmHadronsTrackFemtoDream { part.charge(), part.bdtBkg(), part.bdtPrompt(), - part.bdtFD()); + part.bdtFD(), + charmHadMc, + originType); } else if constexpr (Channel == DecayChannel::D0ToPiK) { rowFemtoResultCharm2Prong( col.globalIndex(), @@ -812,7 +823,9 @@ struct HfTaskCharmHadronsTrackFemtoDream { part.charge(), part.bdtBkg(), part.bdtPrompt(), - part.bdtFD()); + part.bdtFD(), + charmHadMc, + originType); } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { float invMassD0 = getCharmHadronMass(part, true); rowFemtoResultCharmDstar( @@ -829,7 +842,9 @@ struct HfTaskCharmHadronsTrackFemtoDream { part.charge(), part.bdtBkg(), part.bdtPrompt(), - part.bdtFD()); + part.bdtFD(), + charmHadMc, + originType); } } // ---- Fill Track Table ---- diff --git a/PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx b/PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx index 30adbcdd49a..4ffdd61583c 100644 --- a/PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx +++ b/PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx @@ -627,6 +627,13 @@ struct HfTaskCharmHadronsV0FemtoDream { registryCharmHadronQa.fill(HIST("CharmHadronQA/hPtVsMass"), part.pt(), invMass); timeStamp = part.timeStamp(); + int charmHadMc = 0; + int originType = 0; + if constexpr (IsMc) { + charmHadMc = part.flagMc(); + originType = part.originMcRec(); + } + if constexpr (Channel == DecayChannel::DplusToPiKPi || Channel == DecayChannel::LcToPKPi) { rowFemtoResultCharm3Prong( @@ -642,7 +649,9 @@ struct HfTaskCharmHadronsV0FemtoDream { part.charge(), part.bdtBkg(), part.bdtPrompt(), - part.bdtFD()); + part.bdtFD(), + charmHadMc, + originType); } else if constexpr (Channel == DecayChannel::D0ToPiK) { rowFemtoResultCharm2Prong( col.globalIndex(), @@ -656,7 +665,9 @@ struct HfTaskCharmHadronsV0FemtoDream { part.charge(), part.bdtBkg(), part.bdtPrompt(), - part.bdtFD()); + part.bdtFD(), + charmHadMc, + originType); } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { float invMassD0 = getCharmHadronMass(part, true); rowFemtoResultCharmDstar( @@ -673,7 +684,9 @@ struct HfTaskCharmHadronsV0FemtoDream { part.charge(), part.bdtBkg(), part.bdtPrompt(), - part.bdtFD()); + part.bdtFD(), + charmHadMc, + originType); } }