From 136927a143cc2ce1bb7fd66f55403c35402dec94 Mon Sep 17 00:00:00 2001 From: MaximVirta Date: Thu, 8 Jan 2026 16:39:25 +0200 Subject: [PATCH 1/3] [PWFCF] SPC update --- PWGCF/JCorran/Core/FlowJHistManager.h | 2 ++ PWGCF/JCorran/Core/FlowJSPCObservables.h | 19 ++++++++++++++++++- PWGCF/JCorran/Tasks/flowJSPCAnalysis.cxx | 8 ++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/PWGCF/JCorran/Core/FlowJHistManager.h b/PWGCF/JCorran/Core/FlowJHistManager.h index e067a9f00b5..78d9df9b873 100644 --- a/PWGCF/JCorran/Core/FlowJHistManager.h +++ b/PWGCF/JCorran/Core/FlowJHistManager.h @@ -257,6 +257,7 @@ class FlowJHistManager if (mSaveAllQA) { // TPC information. + /* mHistRegistryQA->fill(HIST(MCentClasses[cBin]) + HIST(SubDir[mode]) + HIST("histTPCNClsFound"), track.tpcNClsFound()); mHistRegistryQA->fill(HIST(MCentClasses[cBin]) + HIST(SubDir[mode]) + HIST("histTPCNClsCrossedRows"), @@ -283,6 +284,7 @@ class FlowJHistManager track.pt(), track.dcaXY()); mHistRegistryQA->fill(HIST(MCentClasses[cBin]) + HIST(SubDir[mode]) + HIST("histDCAz"), track.dcaZ()); + */ } if (mDebugLog) { diff --git a/PWGCF/JCorran/Core/FlowJSPCObservables.h b/PWGCF/JCorran/Core/FlowJSPCObservables.h index bc504fe31fe..9fb479772d5 100644 --- a/PWGCF/JCorran/Core/FlowJSPCObservables.h +++ b/PWGCF/JCorran/Core/FlowJSPCObservables.h @@ -67,7 +67,7 @@ class FlowJSPCObservables {0, 0, 0, 0, 0, 0, 0, 0}}; memcpy(harmonicArray, harmonicArray02, sizeof(int) * maxNrComb * 8); } break; - case 3: { + case 2: { LOGF(info, "Computing five and six harmonic SPC"); int harmonicArray03[maxNrComb][8] = { {5, 3, 3, -2, -2, -2, 0, 0}, @@ -84,6 +84,23 @@ class FlowJSPCObservables {0, 0, 0, 0, 0, 0, 0, 0}}; memcpy(harmonicArray, harmonicArray03, sizeof(int) * maxNrComb * 8); } break; + case 3: { + LOGF(info, "Computing slected five harmonic SPC"); + int harmonicArray04[maxNrComb][8] = { + {5, 3, 3, -2, -2, -2, 0, 0}, + {0, 2, 2, -3, 4, -5, 0, 0}, + {5, 2, 3, 3, -4, -4, 0, 0}, + {0, 3, 3, 3, -4, -5, 0, 0}, + {0, 2, 3, -4, 5, -6, 0, 0}, + {0, 8, -2, -2, -2, -2, 0, 0}, + {0, 2, 2, 2, 2, -4, -4, 0}, + {0, 2, 3, 4, 4, -6, -7, 0}, + {0, 2, 2, 2, 2, -3, -5, 0}, + {0, 2, 2, 2, 3, -4, -5, 0}, + {0, 2, 2, 3, 3, -4, -6, 0}, + {0, 0, 0, 0, 0, 0, 0, 0}}; + memcpy(harmonicArray, harmonicArray04, sizeof(int) * maxNrComb * 8); + } break; default: LOGF(error, "ERROR: Invalid configuration index. Skipping this element."); } diff --git a/PWGCF/JCorran/Tasks/flowJSPCAnalysis.cxx b/PWGCF/JCorran/Tasks/flowJSPCAnalysis.cxx index 2ce4568348f..c3aa6faece7 100644 --- a/PWGCF/JCorran/Tasks/flowJSPCAnalysis.cxx +++ b/PWGCF/JCorran/Tasks/flowJSPCAnalysis.cxx @@ -59,6 +59,8 @@ struct flowJSPCAnalysis { FlowJSPCAnalysis::JQVectorsT jqvecs; template using HasWeightNUA = decltype(std::declval().weightNUA()); + template + using HasWeightEff = decltype(std::declval().weightEff()); HistogramRegistry qaHistRegistry{"qaHistRegistry", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; FlowJHistManager histManager; @@ -117,11 +119,17 @@ struct flowJSPCAnalysis { int cBin = histManager.getCentBin(cent); spcHistograms.fill(HIST("FullCentrality"), cent); int nTracks = tracks.size(); + double wNUA = 1.0; + double wEff = 1.0; for (const auto& track : tracks) { if (cfgFillQA) { // histManager.FillTrackQA<0>(track, cBin, collision.posZ()); using JInputClassIter = typename TrackT::iterator; + if constexpr (std::experimental::is_detected::value) wNUA=track.weightNUA(); + if constexpr (std::experimental::is_detected::value) wEff=track.weightEff(); + histManager.fillTrackQA<1>(track, cBin, wEff, wNUA, collision.posZ()); + if constexpr (std::experimental::is_detected::value) { spcAnalysis.fillQAHistograms(cBin, track.phi(), 1. / track.weightNUA()); } From a3d8fd354a38f4994bbd4f0c9e4685eba68526e1 Mon Sep 17 00:00:00 2001 From: MaximVirta Date: Fri, 9 Jan 2026 09:06:05 +0200 Subject: [PATCH 2/3] Comment track charge fill for derived data --- PWGCF/JCorran/Core/FlowJHistManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGCF/JCorran/Core/FlowJHistManager.h b/PWGCF/JCorran/Core/FlowJHistManager.h index 78d9df9b873..fa3984b499f 100644 --- a/PWGCF/JCorran/Core/FlowJHistManager.h +++ b/PWGCF/JCorran/Core/FlowJHistManager.h @@ -235,7 +235,7 @@ class FlowJHistManager mHistRegistryQA->fill(HIST(MCentClasses[cBin]) + HIST(SubDir[mode]) + HIST("histPt"), track.pt()); mHistRegistryQA->fill(HIST(MCentClasses[cBin]) + HIST(SubDir[mode]) + HIST("histEta"), track.eta()); mHistRegistryQA->fill(HIST(MCentClasses[cBin]) + HIST(SubDir[mode]) + HIST("histPhi"), track.phi()); - mHistRegistryQA->fill(HIST(MCentClasses[cBin]) + HIST(SubDir[mode]) + HIST("histCharge"), track.sign()); + // mHistRegistryQA->fill(HIST(MCentClasses[cBin]) + HIST(SubDir[mode]) + HIST("histCharge"), track.sign()); if (mode == 1) { // 'Weight' distributions are defined only for After/. mHistRegistryQA->fill(HIST(MCentClasses[cBin]) + HIST("After/histPtCorrected"), From 33a58f2a59e2688a11bc8bc69d99021668753d7a Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Fri, 9 Jan 2026 07:17:00 +0000 Subject: [PATCH 3/3] Please consider the following formatting changes --- PWGCF/JCorran/Tasks/flowJSPCAnalysis.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/PWGCF/JCorran/Tasks/flowJSPCAnalysis.cxx b/PWGCF/JCorran/Tasks/flowJSPCAnalysis.cxx index c3aa6faece7..111e1f8e92b 100644 --- a/PWGCF/JCorran/Tasks/flowJSPCAnalysis.cxx +++ b/PWGCF/JCorran/Tasks/flowJSPCAnalysis.cxx @@ -126,8 +126,10 @@ struct flowJSPCAnalysis { // histManager.FillTrackQA<0>(track, cBin, collision.posZ()); using JInputClassIter = typename TrackT::iterator; - if constexpr (std::experimental::is_detected::value) wNUA=track.weightNUA(); - if constexpr (std::experimental::is_detected::value) wEff=track.weightEff(); + if constexpr (std::experimental::is_detected::value) + wNUA = track.weightNUA(); + if constexpr (std::experimental::is_detected::value) + wEff = track.weightEff(); histManager.fillTrackQA<1>(track, cBin, wEff, wNUA, collision.posZ()); if constexpr (std::experimental::is_detected::value) {