From 79ca7e81054aad3f73760b5d634a4a98842dd038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Sun, 4 Jan 2026 16:07:29 +0100 Subject: [PATCH 1/4] Update producerCharmHadronsTrackFemtoDream.cxx --- PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx index dc75f4fbe07..d5b1a1d8e40 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx @@ -740,6 +740,7 @@ struct HfProducerCharmHadronsTrackFemtoDream { } fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2)); + if (candidate.isSelD0() && candidate.isSelD0bar()) fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { if constexpr (UseCharmMl) { From 60983bed14022466517841dbb074c7cf2d158470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Sun, 4 Jan 2026 16:07:50 +0100 Subject: [PATCH 2/4] Update producerCharmHadronsV0FemtoDream.cxx --- PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx index 747b385f2a2..e77075e3e45 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx @@ -925,6 +925,7 @@ struct HfProducerCharmHadronsV0FemtoDream { } fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2)); + if (candidate.isSelD0() && candidate.isSelD0bar()) fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { if constexpr (UseCharmMl) { From 618cc7b5fe09690c4444b20fb993a69e330fd071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?BiaoZhang=20=28=E5=BC=A0=E5=BD=AA=29?= <52267892+zhangbiao-phy@users.noreply.github.com> Date: Sun, 4 Jan 2026 16:08:53 +0100 Subject: [PATCH 3/4] Update taskCd.cxx --- PWGHF/D2H/Tasks/taskCd.cxx | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskCd.cxx b/PWGHF/D2H/Tasks/taskCd.cxx index 7b2770d69cb..2909c438450 100644 --- a/PWGHF/D2H/Tasks/taskCd.cxx +++ b/PWGHF/D2H/Tasks/taskCd.cxx @@ -249,8 +249,8 @@ struct HfTaskCd { }; /// Fill histograms for real data - template - void fillHistosData(CollType const& collision, CandType const& candidates, TrackType const& /*tracks*/, BcType const& /*bcs*/) + template + void fillHistosData(CollType const& collision, CandType const& candidates, TrackType const& /*tracks*/, TrackWithItsType const& tracksWithItsPid,BcType const& /*bcs*/) { auto thisCollId = collision.globalIndex(); auto groupedCdCandidates = candidates.sliceBy(candCdPerCollision, thisCollId); @@ -362,7 +362,10 @@ struct HfTaskCd { auto prong0 = candidate.template prong0_as(); auto prong1 = candidate.template prong1_as(); auto prong2 = candidate.template prong2_as(); - + + auto prong0Its = tracksWithItsPid.iteratorAt(candidate.prong0Id() - tracksWithItsPid.offset()); + auto prong2Its = tracksWithItsPid.iteratorAt(candidate.prong2Id() - tracksWithItsPid.offset()); + if (selDeKPi) { candFlag = 1; pSignedDe = prong0.p() * prong0.sign(); @@ -371,7 +374,7 @@ struct HfTaskCd { nSigmaTofDe = candidate.nSigTofDe0(); nSigmaTpcPi = candidate.nSigTpcPi2(); nSigmaTofPi = candidate.nSigTofPi2(); - nSigmaItsDe = prong0.itsNSigmaDe(); + nSigmaItsDe = prong0Its.itsNSigmaDe(); itsNClusterDe = prong0.itsNCls(); itsNClusterSizeDe = prong0.itsClusterSizes(); tpcNClusterDe = prong0.tpcNClsCrossedRows(); @@ -385,7 +388,7 @@ struct HfTaskCd { nSigmaTofDe = candidate.nSigTofDe2(); nSigmaTpcPi = candidate.nSigTpcPi0(); nSigmaTofPi = candidate.nSigTofPi0(); - nSigmaItsDe = prong2.itsNSigmaDe(); + nSigmaItsDe = prong2Its.itsNSigmaDe(); itsNClusterDe = prong2.itsNCls(); itsNClusterSizeDe = prong2.itsClusterSizes(); tpcNClusterDe = prong2.tpcNClsCrossedRows(); @@ -431,15 +434,16 @@ struct HfTaskCd { } } /// Run the analysis on real data - template + template void runAnalysisPerCollisionData(CollType const& collisions, CandType const& candidates, TrackType const& tracks, + TrackWithItsType const& tracksWithItsPid, BcType const& bcs) { for (const auto& collision : collisions) { - fillHistosData(collision, candidates, tracks, bcs); + fillHistosData(collision, candidates, tracks, tracksWithItsPid, bcs); } } @@ -450,7 +454,7 @@ struct HfTaskCd { { // inlcude ITS PID information auto tracksWithItsPid = soa::Attach(tracks); - runAnalysisPerCollisionData(collisions, selectedCdCandidates, tracksWithItsPid, bcWithTimeStamps); + runAnalysisPerCollisionData(collisions, selectedCdCandidates, tracks, tracksWithItsPid, bcWithTimeStamps); } PROCESS_SWITCH(HfTaskCd, processDataStd, "Process Data with the standard method", true); @@ -461,7 +465,7 @@ struct HfTaskCd { { // inlcude ITS PID information auto tracksWithItsPid = soa::Attach(tracks); - runAnalysisPerCollisionData(collisions, selectedCdCandidates, tracksWithItsPid, bcWithTimeStamps); + runAnalysisPerCollisionData(collisions, selectedCdCandidates, tracks, tracksWithItsPid, bcWithTimeStamps); } PROCESS_SWITCH(HfTaskCd, processDataStdWithFT0C, "Process real data with the standard method and with FT0C centrality", false); @@ -472,7 +476,7 @@ struct HfTaskCd { { // inlcude ITS PID information auto tracksWithItsPid = soa::Attach(tracks); - runAnalysisPerCollisionData(collisions, selectedCdCandidates, tracksWithItsPid, bcWithTimeStamps); + runAnalysisPerCollisionData(collisions, selectedCdCandidates, tracks, tracksWithItsPid, bcWithTimeStamps); } PROCESS_SWITCH(HfTaskCd, processDataStdWithFT0M, "Process real data with the standard method and with FT0M centrality", false); }; From a59af51e868eda244f9e6f0ef0b2832cd2c02a4d Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Sun, 4 Jan 2026 15:09:59 +0000 Subject: [PATCH 4/4] Please consider the following formatting changes --- PWGHF/D2H/Tasks/taskCd.cxx | 6 +++--- .../TableProducer/producerCharmHadronsTrackFemtoDream.cxx | 3 ++- .../HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/PWGHF/D2H/Tasks/taskCd.cxx b/PWGHF/D2H/Tasks/taskCd.cxx index 2909c438450..266d2612552 100644 --- a/PWGHF/D2H/Tasks/taskCd.cxx +++ b/PWGHF/D2H/Tasks/taskCd.cxx @@ -250,7 +250,7 @@ struct HfTaskCd { /// Fill histograms for real data template - void fillHistosData(CollType const& collision, CandType const& candidates, TrackType const& /*tracks*/, TrackWithItsType const& tracksWithItsPid,BcType const& /*bcs*/) + void fillHistosData(CollType const& collision, CandType const& candidates, TrackType const& /*tracks*/, TrackWithItsType const& tracksWithItsPid, BcType const& /*bcs*/) { auto thisCollId = collision.globalIndex(); auto groupedCdCandidates = candidates.sliceBy(candCdPerCollision, thisCollId); @@ -362,10 +362,10 @@ struct HfTaskCd { auto prong0 = candidate.template prong0_as(); auto prong1 = candidate.template prong1_as(); auto prong2 = candidate.template prong2_as(); - + auto prong0Its = tracksWithItsPid.iteratorAt(candidate.prong0Id() - tracksWithItsPid.offset()); auto prong2Its = tracksWithItsPid.iteratorAt(candidate.prong2Id() - tracksWithItsPid.offset()); - + if (selDeKPi) { candFlag = 1; pSignedDe = prong0.p() * prong0.sign(); diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx index d5b1a1d8e40..b085d6d2fda 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx @@ -740,7 +740,8 @@ struct HfProducerCharmHadronsTrackFemtoDream { } fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2)); - if (candidate.isSelD0() && candidate.isSelD0bar()) fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection + if (candidate.isSelD0() && candidate.isSelD0bar()) + fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { if constexpr (UseCharmMl) { diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx index e77075e3e45..b83ddf58dc4 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx @@ -925,7 +925,8 @@ struct HfProducerCharmHadronsV0FemtoDream { } fillTable(0, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); fillTable(1, candidate.isSelD0bar(), outputMlD0bar.at(0), outputMlD0bar.at(1), outputMlD0bar.at(2)); - if (candidate.isSelD0() && candidate.isSelD0bar()) fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection + if (candidate.isSelD0() && candidate.isSelD0bar()) + fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { if constexpr (UseCharmMl) {