From c584353362f256088c12c2c2330f3528282cd15c 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 19:56:50 +0100 Subject: [PATCH 01/10] Update producerCharmHadronsV0FemtoDream.cxx --- .../TableProducer/producerCharmHadronsV0FemtoDream.cxx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx index b83ddf58dc4..dee720300ed 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx @@ -923,10 +923,12 @@ struct HfProducerCharmHadronsV0FemtoDream { LOGF(fatal, "Please check your Ml configuration!!"); } } - 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()) + if (candidate.isSelD0() && candidate.isSelD0bar()) { fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection + } else { + 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)); + } } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { if constexpr (UseCharmMl) { From 280af33e81b6b70df1bb6449687ab12746fe5195 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 19:57:11 +0100 Subject: [PATCH 02/10] Update producerCharmHadronsTrackFemtoDream.cxx --- .../TableProducer/producerCharmHadronsTrackFemtoDream.cxx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx index b085d6d2fda..a6575ae61fb 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx @@ -738,10 +738,12 @@ struct HfProducerCharmHadronsTrackFemtoDream { LOGF(fatal, "Please check your Ml configuration!!"); } } - 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()) + if (candidate.isSelD0() && candidate.isSelD0bar()) { fillTable(2, candidate.isSelD0(), outputMlD0.at(0), outputMlD0.at(1), outputMlD0.at(2)); // tag reflection + } else { + 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)); + } } else if constexpr (Channel == DecayChannel::DstarToD0Pi) { if constexpr (UseCharmMl) { From af900f5fa1a72c8b002051178c75db1ff1841159 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 20:48:52 +0100 Subject: [PATCH 03/10] Update producerCharmHadronsTrackFemtoDream.cxx --- .../HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx index a6575ae61fb..ab90e9c70a3 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx @@ -586,11 +586,13 @@ struct HfProducerCharmHadronsTrackFemtoDream { bdtScoreFd); } else if constexpr (Channel == DecayChannel::D0ToPiK) { - int signD0 = 0; + int signD0 = -999; if (candFlag == 0) { signD0 = +1; // D0 } else if (candFlag == 1) { signD0 = -1; // anti-D0 + } else if (candFlag == 2) { + signD0 = 0; // reflected D0 } else { LOG(error) << "Unexpected candFlag = " << candFlag; } From 710586760c4840f1c4855a1917f2efcc1f4367bf 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 20:49:18 +0100 Subject: [PATCH 04/10] Update producerCharmHadronsV0FemtoDream.cxx --- PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx index dee720300ed..e6c989a792c 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx @@ -771,11 +771,13 @@ struct HfProducerCharmHadronsV0FemtoDream { bdtScoreFd); } else if constexpr (Channel == DecayChannel::D0ToPiK) { - int signD0 = 0; + int signD0 = -999; if (candFlag == 0) { signD0 = +1; // D0 } else if (candFlag == 1) { signD0 = -1; // anti-D0 + } else if (candFlag == 2) { + signD0 = 0; // reflected D0 } else { LOG(error) << "Unexpected candFlag = " << candFlag; } From a2aae6b09d76c5d083bfd55255305f4961ffc432 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 20:51:55 +0100 Subject: [PATCH 05/10] Update taskCharmHadronsTrackFemtoDream.cxx --- PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx b/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx index e4deb4835d6..962e8b07c91 100644 --- a/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx +++ b/PWGHF/HFC/Tasks/taskCharmHadronsTrackFemtoDream.cxx @@ -75,7 +75,8 @@ struct HfTaskCharmHadronsTrackFemtoDream { enum PairSign { PairNotDefined = 0, LikeSignPair = 1, - UnLikeSignPair = 2 + UnLikeSignPair = 2, + ReflectedPair = 3 }; // decay channels enum DecayChannel { DplusToPiKPi = 0, @@ -529,9 +530,12 @@ struct HfTaskCharmHadronsTrackFemtoDream { int pairSign = 0; if (chargeTrack == p2.charge()) { pairSign = LikeSignPair; - } else { + } else if (chargeTrack == -p2.charge()) { pairSign = UnLikeSignPair; + } else { + pairSign = ReflectedPair; } + /// Filling QA histograms of the selected tracks selectedTrackHisto.fillQA(p1, static_cast(confTempFitVarMomentum.value), col.multNtr(), col.multV0M()); @@ -655,8 +659,10 @@ struct HfTaskCharmHadronsTrackFemtoDream { int pairSign = 0; if (chargeTrack == p2.charge()) { pairSign = LikeSignPair; - } else { + } else if (chargeTrack == -p2.charge()) { pairSign = UnLikeSignPair; + } else { + pairSign = ReflectedPair; } int charmHadMc = 0; From ca575fde941005f08c89a0c69d7d4453ce3f7a0e 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 20:52:21 +0100 Subject: [PATCH 06/10] Update taskCharmHadronsV0FemtoDream.cxx --- PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx b/PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx index 4b8022ef252..e75593574b7 100644 --- a/PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx +++ b/PWGHF/HFC/Tasks/taskCharmHadronsV0FemtoDream.cxx @@ -69,7 +69,8 @@ struct HfTaskCharmHadronsV0FemtoDream { enum PairSign { PairNotDefined = 0, LikeSignPair = 1, - UnLikeSignPair = 2 + UnLikeSignPair = 2, + ReflectedPair = 3 }; // decay channels enum DecayChannel { DplusToPiKPi = 0, @@ -466,8 +467,10 @@ struct HfTaskCharmHadronsV0FemtoDream { int pairSign = 0; if (chargeV0 == p2.charge()) { pairSign = LikeSignPair; - } else { + } else if (chargeV0 == -p2.charge()) { pairSign = UnLikeSignPair; + } else { + pairSign = ReflectedPair; } int charmHadMc = 0; @@ -554,8 +557,10 @@ struct HfTaskCharmHadronsV0FemtoDream { int pairSign = 0; if (chargeV0 == p2.charge()) { pairSign = LikeSignPair; - } else { + } else if (chargeV0 == -p2.charge()) { pairSign = UnLikeSignPair; + } else { + pairSign = ReflectedPair; } int charmHadMc = 0; From 7257148239ab84f9d496626e732ca95015519e65 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 21:03:34 +0100 Subject: [PATCH 07/10] fix Megalinter error --- .../producerCharmHadronsTrackFemtoDream.cxx | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx index ab90e9c70a3..17c564a0db7 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx @@ -9,7 +9,7 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. -/// \file femtoDreamProducer.cxx +/// \file producerCharmHadronsTrackFemtoDream.cxx /// \brief Tasks that produces the track tables used for the pairing /// \author Ravindra Singh, GSI, ravindra.singh@cern.ch /// \author Biao Zhang, Heidelberg University, biao.zhang@cern.ch @@ -98,6 +98,12 @@ enum DecayChannel { DplusToPiKPi = 0, DstarToD0Pi }; +enum class D0CandFlag : uint8_t { + D0 = 0, + D0Bar = 1, + Reflected = 2 +}; + struct HfProducerCharmHadronsTrackFemtoDream { Produces outputCollision; @@ -586,15 +592,14 @@ struct HfProducerCharmHadronsTrackFemtoDream { bdtScoreFd); } else if constexpr (Channel == DecayChannel::D0ToPiK) { - int signD0 = -999; - if (candFlag == 0) { - signD0 = +1; // D0 - } else if (candFlag == 1) { - signD0 = -1; // anti-D0 - } else if (candFlag == 2) { - signD0 = 0; // reflected D0 + if (candFlag == D0CandFlag::D0) { + signD0 = +1; + } else if (candFlag == D0CandFlag::D0Bar) { + signD0 = -1; + } else if (candFlag == D0CandFlag::Reflected) { + signD0 = 0; } else { - LOG(error) << "Unexpected candFlag = " << candFlag; + LOG(error) << "Unexpected candFlag = " << static_cast(candFlag); } rowCandCharm2Prong( outputCollision.lastIndex(), From 4b39164aa511dd8ab370a91899ea888aa5d329c8 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 21:04:21 +0100 Subject: [PATCH 08/10] fix Megalinter error --- .../producerCharmHadronsV0FemtoDream.cxx | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx index e6c989a792c..adedc9c4ef1 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx @@ -104,6 +104,12 @@ enum V0Channel { Lambda }; +enum class D0CandFlag : uint8_t { + D0 = 0, + D0Bar = 1, + Reflected = 2 +}; + struct HfProducerCharmHadronsV0FemtoDream { Produces outputCollision; @@ -771,15 +777,14 @@ struct HfProducerCharmHadronsV0FemtoDream { bdtScoreFd); } else if constexpr (Channel == DecayChannel::D0ToPiK) { - int signD0 = -999; - if (candFlag == 0) { - signD0 = +1; // D0 - } else if (candFlag == 1) { - signD0 = -1; // anti-D0 - } else if (candFlag == 2) { - signD0 = 0; // reflected D0 + if (candFlag == D0CandFlag::D0) { + signD0 = +1; + } else if (candFlag == D0CandFlag::D0Bar) { + signD0 = -1; + } else if (candFlag == D0CandFlag::Reflected) { + signD0 = 0; } else { - LOG(error) << "Unexpected candFlag = " << candFlag; + LOG(error) << "Unexpected candFlag = " << static_cast(candFlag); } rowCandCharm2Prong( outputCollision.lastIndex(), From 06c5788274779ce2d3869b530375fbfb663ee207 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 21:12:41 +0100 Subject: [PATCH 09/10] Update producerCharmHadronsTrackFemtoDream.cxx --- .../producerCharmHadronsTrackFemtoDream.cxx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx index 17c564a0db7..22956fa8d89 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsTrackFemtoDream.cxx @@ -592,14 +592,15 @@ struct HfProducerCharmHadronsTrackFemtoDream { bdtScoreFd); } else if constexpr (Channel == DecayChannel::D0ToPiK) { - if (candFlag == D0CandFlag::D0) { + int signD0 = -999; + if (candFlag == static_cast(D0CandFlag::D0)) { signD0 = +1; - } else if (candFlag == D0CandFlag::D0Bar) { + } else if (candFlag == static_cast(D0CandFlag::D0Bar)) { signD0 = -1; - } else if (candFlag == D0CandFlag::Reflected) { + } else if (candFlag == static_cast(D0CandFlag::Reflected)) { signD0 = 0; } else { - LOG(error) << "Unexpected candFlag = " << static_cast(candFlag); + LOG(error) << "Unexpected candFlag = " << candFlag; } rowCandCharm2Prong( outputCollision.lastIndex(), From 10f9600ce2953d7d25cfa0dbdbb583a051a61fa0 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 21:13:06 +0100 Subject: [PATCH 10/10] Update producerCharmHadronsV0FemtoDream.cxx --- .../TableProducer/producerCharmHadronsV0FemtoDream.cxx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx index adedc9c4ef1..e95ea304bae 100644 --- a/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx +++ b/PWGHF/HFC/TableProducer/producerCharmHadronsV0FemtoDream.cxx @@ -777,14 +777,15 @@ struct HfProducerCharmHadronsV0FemtoDream { bdtScoreFd); } else if constexpr (Channel == DecayChannel::D0ToPiK) { - if (candFlag == D0CandFlag::D0) { + int signD0 = -999; + if (candFlag == static_cast(D0CandFlag::D0)) { signD0 = +1; - } else if (candFlag == D0CandFlag::D0Bar) { + } else if (candFlag == static_cast(D0CandFlag::D0Bar)) { signD0 = -1; - } else if (candFlag == D0CandFlag::Reflected) { + } else if (candFlag == static_cast(D0CandFlag::Reflected)) { signD0 = 0; } else { - LOG(error) << "Unexpected candFlag = " << static_cast(candFlag); + LOG(error) << "Unexpected candFlag = " << candFlag; } rowCandCharm2Prong( outputCollision.lastIndex(),