From 9ccc75cd02b7b3336335b43722f5644e38f5aa78 Mon Sep 17 00:00:00 2001 From: joachimckh Date: Wed, 23 Sep 2026 23:00:28 +0200 Subject: [PATCH 1/3] added pvalue configurable, added safeguard for invalid EP values --- PWGJE/Tasks/jetSpectraEseTask.cxx | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/PWGJE/Tasks/jetSpectraEseTask.cxx b/PWGJE/Tasks/jetSpectraEseTask.cxx index cff612f536e..97a917f4288 100644 --- a/PWGJE/Tasks/jetSpectraEseTask.cxx +++ b/PWGJE/Tasks/jetSpectraEseTask.cxx @@ -121,6 +121,7 @@ struct JetSpectraEseTask { Configurable cfgrhoPhi{"cfgrhoPhi", true, "Flag for rho(phi)"}; Configurable cfgRhoPhiPvalCriteria{"cfgRhoPhiPvalCriteria", true, "Use instead of rho(phi) when the rho(phi) fit p-value is below 0.01"}; + Configurable cfgRhoPhiPvalCut{"cfgRhoPhiPvalCut", 0.01, "p-value cut for rho(phi) fit"}; Configurable cfgnTotalSystem{"cfgnTotalSystem", 7, "total qvector number // look in Qvector table for this number"}; Configurable cfgnCorrLevel{"cfgnCorrLevel", 3, "QVector step: 0 = no corr, 1 = rect, 2 = twist, 3 = full"}; @@ -225,6 +226,7 @@ struct JetSpectraEseTask { struct EventPlane { float psi2; float psi3; + bool isValid; }; struct EventPlaneFiller { @@ -237,6 +239,7 @@ struct JetSpectraEseTask { kEventSel, kOccupancyCut, kCentCut, + kEPValid, kEse, kRhoLocal, kLeadJetCut @@ -382,6 +385,7 @@ struct JetSpectraEseTask { registry.get(HIST("eventQA/hEventCounter"))->GetXaxis()->SetBinLabel(kEventSel, "Event selection"); registry.get(HIST("eventQA/hEventCounter"))->GetXaxis()->SetBinLabel(kOccupancyCut, "Occupancy cut"); registry.get(HIST("eventQA/hEventCounter"))->GetXaxis()->SetBinLabel(kCentCut, "Centrality cut"); + registry.get(HIST("eventQA/hEventCounter"))->GetXaxis()->SetBinLabel(kEPValid, "EP valid"); registry.get(HIST("eventQA/hEventCounter"))->GetXaxis()->SetBinLabel(kEse, "ESE available"); registry.get(HIST("eventQA/hEventCounter"))->GetXaxis()->SetBinLabel(kRhoLocal, "rho(#phi) available"); registry.get(HIST("eventQA/hEventCounter"))->GetXaxis()->SetBinLabel(kLeadJetCut, "leading jet pT cut"); @@ -697,6 +701,10 @@ struct JetSpectraEseTask { registry.fill(HIST("eventQA/hEventCounter"), kCentCut); const auto psi{procEP(collision)}; + if (!psi.isValid) { + return; + } + registry.fill(HIST("eventQA/hEventCounter"), kEPValid); const auto qPerc{collision.qPERCFT0C()}; if (qPerc[0] < 0) { return; @@ -853,6 +861,9 @@ struct JetSpectraEseTask { registry.fill(HIST("eventQA/hEventCounterMixed"), kCentCut); const auto psi{procEP(c1)}; + if (!psi.isValid) { + continue; + } const auto qPerc{c1.qPERCFT0C()}; if (qPerc[0] < 0) { continue; @@ -1002,6 +1013,9 @@ struct JetSpectraEseTask { } [[maybe_unused]] const auto psi{procEP(collision)}; + if (!psi.isValid) { + return; + } detCorrelation(collision); auto originalCollision = collision.collision_as(); @@ -1024,6 +1038,9 @@ struct JetSpectraEseTask { float count{0.5}; registry.fill(HIST("hEventCounterOcc"), count++); const auto psi{procEP(collision)}; + if (!psi.isValid) { + return; + } const auto qPerc{collision.qPERCFT0C()}; auto occupancy{collision.trackOccupancyInTimeRange()}; @@ -1400,7 +1417,9 @@ struct JetSpectraEseTask { fillEPCos(vec, epCorrContainer22, epCorrContainer24, epCorrContainer44); } } - return {.psi2 = epMap.at(cfgEPRefA), .psi3 = ep3Map.at(cfgEPRefA)}; + // check A is valid + bool isValidA{epMap.at(cfgEPRefA) != InvalidValue}; + return {.psi2 = epMap.at(cfgEPRefA), .psi3 = ep3Map.at(cfgEPRefA), .isValid = isValidA}; } template void fillEPCos(const collision& col, const std::array& Corr22, const std::array& Corr42, const std::array& Corr44) @@ -1611,8 +1630,8 @@ struct JetSpectraEseTask { if constexpr (fillHist) { registry.fill(HIST("eventQA/hRhoPhiCheck"), 0.5); } - const float pValue = 0.01; - if (cfgRhoPhiPvalCriteria && cDF < pValue) { + + if (cfgRhoPhiPvalCriteria && cDF < cfgRhoPhiPvalCut ) { const float noFlow = 0.0f; modulationFit->SetParameter(1, noFlow); // o2-linter: disable=magic-number (fit params) modulationFit->SetParameter(3, noFlow); // o2-linter: disable=magic-number (fit params) @@ -1701,6 +1720,9 @@ struct JetSpectraEseTask { } const auto psi{procEP(collision)}; + if (!psi.isValid) { + return; + } auto qPerc{collision.qPERCFT0C()}; if (qPerc[0] < 0) { return; From 16ee30b2960d81d16c1adbabb363ffcaae98832a Mon Sep 17 00:00:00 2001 From: joachimckh Date: Wed, 23 Sep 2026 23:01:42 +0200 Subject: [PATCH 2/3] clang-format --- PWGJE/Tasks/jetSpectraEseTask.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGJE/Tasks/jetSpectraEseTask.cxx b/PWGJE/Tasks/jetSpectraEseTask.cxx index 97a917f4288..f036bfc87c1 100644 --- a/PWGJE/Tasks/jetSpectraEseTask.cxx +++ b/PWGJE/Tasks/jetSpectraEseTask.cxx @@ -1631,7 +1631,7 @@ struct JetSpectraEseTask { registry.fill(HIST("eventQA/hRhoPhiCheck"), 0.5); } - if (cfgRhoPhiPvalCriteria && cDF < cfgRhoPhiPvalCut ) { + if (cfgRhoPhiPvalCriteria && cDF < cfgRhoPhiPvalCut) { const float noFlow = 0.0f; modulationFit->SetParameter(1, noFlow); // o2-linter: disable=magic-number (fit params) modulationFit->SetParameter(3, noFlow); // o2-linter: disable=magic-number (fit params) From 6bf70c0b029f1305898caf09e116514305a26993 Mon Sep 17 00:00:00 2001 From: joachimckh Date: Thu, 24 Sep 2026 10:02:13 +0200 Subject: [PATCH 3/3] added counter for mixed --- PWGJE/Tasks/jetSpectraEseTask.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/PWGJE/Tasks/jetSpectraEseTask.cxx b/PWGJE/Tasks/jetSpectraEseTask.cxx index f036bfc87c1..18d5701a0ea 100644 --- a/PWGJE/Tasks/jetSpectraEseTask.cxx +++ b/PWGJE/Tasks/jetSpectraEseTask.cxx @@ -458,6 +458,7 @@ struct JetSpectraEseTask { registry.get(HIST("eventQA/hEventCounterMixed"))->GetXaxis()->SetBinLabel(kEventSel, "Event selection"); registry.get(HIST("eventQA/hEventCounterMixed"))->GetXaxis()->SetBinLabel(kOccupancyCut, "Occupancy cut"); registry.get(HIST("eventQA/hEventCounterMixed"))->GetXaxis()->SetBinLabel(kCentCut, "Centrality cut"); + registry.get(HIST("eventQA/hEventCounterMixed"))->GetXaxis()->SetBinLabel(kEPValid, "EP valid"); registry.get(HIST("eventQA/hEventCounterMixed"))->GetXaxis()->SetBinLabel(kEse, "ESE available"); registry.get(HIST("eventQA/hEventCounterMixed"))->GetXaxis()->SetBinLabel(kRhoLocal, "rho(#phi) available"); registry.get(HIST("eventQA/hEventCounterMixed"))->GetXaxis()->SetBinLabel(kLeadJetCut, "leading jet pT cut"); @@ -864,6 +865,7 @@ struct JetSpectraEseTask { if (!psi.isValid) { continue; } + registry.fill(HIST("eventQA/hEventCounterMixed"), kEPValid); const auto qPerc{c1.qPERCFT0C()}; if (qPerc[0] < 0) { continue;