From 65ec0e9cb3c2935b1c43908a671328eea2dffb65 Mon Sep 17 00:00:00 2001 From: jesgum Date: Tue, 5 Aug 2025 20:21:05 +0200 Subject: [PATCH 1/2] Add more ml qa for otf multi-charm --- ALICE3/TableProducer/alice3-multicharmTable.cxx | 9 +++++++++ ALICE3/Tasks/alice3-multicharm.cxx | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ALICE3/TableProducer/alice3-multicharmTable.cxx b/ALICE3/TableProducer/alice3-multicharmTable.cxx index f667b5dcd0a..7dd289241a1 100644 --- a/ALICE3/TableProducer/alice3-multicharmTable.cxx +++ b/ALICE3/TableProducer/alice3-multicharmTable.cxx @@ -124,6 +124,7 @@ struct alice3multicharmTable { Configurable xiccMaxEta{"xiccMaxEta", 1.5, "Max eta"}; Configurable massWindowXi{"massWindowXi", 0.015, "Mass window around Xi peak (GeV/c)"}; Configurable massWindowXiC{"massWindowXiC", 0.015, "Mass window around XiC peak (GeV/c)"}; + Configurable massWindowXiCC{"massWindowXiCC", 0.4, "Mass window around XiCC peak (GeV/c). Make sure that bkg region is included in this window"}; ConfigurableAxis axisEta{"axisEta", {80, -4.0f, +4.0f}, "#eta"}; ConfigurableAxis axisPt{"axisPt", {VARIABLE_WIDTH, 0.0f, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f, 1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f, 1.7f, 1.8f, 1.9f, 2.0f, 2.2f, 2.4f, 2.6f, 2.8f, 3.0f, 3.2f, 3.4f, 3.6f, 3.8f, 4.0f, 4.4f, 4.8f, 5.2f, 5.6f, 6.0f, 6.5f, 7.0f, 7.5f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 17.0f, 19.0f, 21.0f, 23.0f, 25.0f, 30.0f, 35.0f, 40.0f, 50.0f}, "pt axis for QA histograms"}; @@ -251,6 +252,14 @@ struct alice3multicharmTable { } thisXiCCcandidate.mass = RecoDecay::m(array{array{thisXiCCcandidate.prong0mom[0], thisXiCCcandidate.prong0mom[1], thisXiCCcandidate.prong0mom[2]}, array{thisXiCCcandidate.prong1mom[0], thisXiCCcandidate.prong1mom[1], thisXiCCcandidate.prong1mom[2]}}, array{mass0, mass1}); + + std::cout << thisXiCCcandidate.mass << std::endl; + std::cout << o2::constants::physics::kXiCCPlusPlus << std::endl; + std::cout << std::endl; + if (std::fabs(thisXiCCcandidate.mass - o2::constants::physics::MassXiCCPlusPlus) > massWindowXiCC) { + return false; + } + thisXiCCcandidate.pt = std::hypot(thisXiCCcandidate.prong0mom[0] + thisXiCCcandidate.prong1mom[0], thisXiCCcandidate.prong0mom[1] + thisXiCCcandidate.prong1mom[1]); thisXiCCcandidate.eta = RecoDecay::eta(array{thisXiCCcandidate.prong0mom[0] + thisXiCCcandidate.prong1mom[0], thisXiCCcandidate.prong0mom[1] + thisXiCCcandidate.prong1mom[1], thisXiCCcandidate.prong0mom[2] + thisXiCCcandidate.prong1mom[2]}); return true; diff --git a/ALICE3/Tasks/alice3-multicharm.cxx b/ALICE3/Tasks/alice3-multicharm.cxx index 088a3b5c1f6..15989109919 100644 --- a/ALICE3/Tasks/alice3-multicharm.cxx +++ b/ALICE3/Tasks/alice3-multicharm.cxx @@ -252,7 +252,8 @@ struct alice3multicharm { histos.add("hBDTScore", "hBDTScore", kTH1D, {axisBDTScore}); histos.add("hBDTScoreVsXiccMass", "hBDTScoreVsXiccMass", kTH2D, {axisXiccMass, axisBDTScore}); - histos.add("hBDTScoreVsXiccPt", "hBDTScoreVsXiccPt", kTH2D, {axisXiccMass, axisPt}); + histos.add("hBDTScoreVsXiccPt", "hBDTScoreVsXiccPt", kTH2D, {axisPt, axisBDTScore}); + histos.add("h3dBDTScore", "h3dBDTScore", kTH3D, {axisPt, axisXiccMass, axisBDTScore}); for (const auto& score : bdt.requiredScores.value) { histPath = std::format("MLQA/RequiredBDTScore_{}/", static_cast(score * 100)); histPointers.insert({histPath + "hDCAXicDaughters", histos.add((histPath + "hDCAXicDaughters").c_str(), "hDCAXicDaughters", {kTH1D, {{axisDcaDaughters}}})}); @@ -293,7 +294,7 @@ struct alice3multicharm { } template - void genericProcessXicc(TMCharmCands xiccCands) + void genericProcessXicc(TMCharmCands const& xiccCands) { for (const auto& xiccCand : xiccCands) { if (bdt.enableML) { @@ -324,6 +325,7 @@ struct alice3multicharm { histos.fill(HIST("hBDTScore"), bdtScore); histos.fill(HIST("hBDTScoreVsXiccMass"), xiccCand.xiccMass(), bdtScore); histos.fill(HIST("hBDTScoreVsXiccPt"), xiccCand.xiccPt(), bdtScore); + histos.fill(HIST("h3dBDTScore"), xiccCand.xiccPt(), xiccCand.xiccMass(), bdtScore); for (const auto& requiredScore : bdt.requiredScores.value) { if (bdtScore > requiredScore) { From fac63cc5f594f1252c09e2c246a65d906e31d372 Mon Sep 17 00:00:00 2001 From: jesgum Date: Tue, 5 Aug 2025 20:23:59 +0200 Subject: [PATCH 2/2] Remove printouts --- ALICE3/TableProducer/alice3-multicharmTable.cxx | 3 --- 1 file changed, 3 deletions(-) diff --git a/ALICE3/TableProducer/alice3-multicharmTable.cxx b/ALICE3/TableProducer/alice3-multicharmTable.cxx index 7dd289241a1..164e5f83f9b 100644 --- a/ALICE3/TableProducer/alice3-multicharmTable.cxx +++ b/ALICE3/TableProducer/alice3-multicharmTable.cxx @@ -253,9 +253,6 @@ struct alice3multicharmTable { thisXiCCcandidate.mass = RecoDecay::m(array{array{thisXiCCcandidate.prong0mom[0], thisXiCCcandidate.prong0mom[1], thisXiCCcandidate.prong0mom[2]}, array{thisXiCCcandidate.prong1mom[0], thisXiCCcandidate.prong1mom[1], thisXiCCcandidate.prong1mom[2]}}, array{mass0, mass1}); - std::cout << thisXiCCcandidate.mass << std::endl; - std::cout << o2::constants::physics::kXiCCPlusPlus << std::endl; - std::cout << std::endl; if (std::fabs(thisXiCCcandidate.mass - o2::constants::physics::MassXiCCPlusPlus) > massWindowXiCC) { return false; }