From 45c83c0566ef5421ff0d4d0c58605276325bfe20 Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Fri, 15 May 2026 17:17:49 +0200 Subject: [PATCH 1/3] [Common] fix linter warnings, add further QA --- Common/Tasks/centralityStudypp.cxx | 126 +++++++++++++++++++++++------ 1 file changed, 102 insertions(+), 24 deletions(-) diff --git a/Common/Tasks/centralityStudypp.cxx b/Common/Tasks/centralityStudypp.cxx index 839c34accfb..0f9ad7b4b1b 100644 --- a/Common/Tasks/centralityStudypp.cxx +++ b/Common/Tasks/centralityStudypp.cxx @@ -14,11 +14,9 @@ // multCentTable output #include "Common/CCDB/EventSelectionParams.h" -#include "Common/DataModel/Centrality.h" #include "Common/DataModel/Multiplicity.h" #include -#include #include #include #include @@ -34,7 +32,6 @@ #include #include -#include #include #include #include @@ -53,19 +50,28 @@ struct centralityStudypp { std::map histPointers; std::string histPath; Service ccdb; - int mRunNumber; - uint64_t startOfRunTimestamp; + int mRunNumber = -1; // vertex Z equalization - TList* hCalibObjects; - TProfile* hVtxZFV0A; - TProfile* hVtxZFT0A; - TProfile* hVtxZFT0C; - TProfile* hVtxZNTracks; - TProfile* hVtxZNGlobals; - TProfile* hVtxZMFT; - TProfile* hVtxZFDDA; - TProfile* hVtxZFDDC; + TList* hCalibObjects = nullptr; + TProfile* hVtxZFV0A = nullptr; + TProfile* hVtxZFT0A = nullptr; + TProfile* hVtxZFT0C = nullptr; + TProfile* hVtxZNTracks = nullptr; + TProfile* hVtxZNGlobals = nullptr; + TProfile* hVtxZMFT = nullptr; + TProfile* hVtxZFDDA = nullptr; + TProfile* hVtxZFDDC = nullptr; + + // calibration histograms + TH1 *hCentralityFV0A = nullptr; + TH1 *hCentralityFT0A = nullptr; + TH1 *hCentralityFT0C = nullptr; + TH1 *hCentralityFT0M = nullptr; + TH1 *hCentralityFDDM = nullptr; + TH1 *hCentralityNTPV = nullptr; + TH1 *hCentralityNGlo = nullptr; + TH1 *hCentralityMFT = nullptr; // Configurables Configurable do2DPlots{"do2DPlots", true, "0 - no, 1 - yes"}; @@ -73,6 +79,7 @@ struct centralityStudypp { // event selection criteria Configurable applyVertexZEqualization{"applyVertexZEqualization", false, "0 - no, 1 - yes"}; Configurable saveUnequalized{"saveUnequalized", false, "save unequalized raw: 0 - no, 1 - yes"}; + Configurable doCentralityQA{"doCentralityQA", false, "do centrality QA: 0 - no, 1 - yes"}; Configurable applySel8{"applySel8", true, "0 - no, 1 - yes"}; Configurable applyVtxZ{"applyVtxZ", true, "0 - no, 1 - yes"}; Configurable requireINELgtZERO{"requireINELgtZERO", true, "0 no, 1 - yes"}; @@ -97,11 +104,14 @@ struct centralityStudypp { // For profile Z ConfigurableAxis axisPVz{"axisPVz", {400, -20.0f, +20.0f}, "PVz (cm)"}; ConfigurableAxis axisZN{"axisZN", {1100, -50.0f, +500.0f}, "ZN"}; + // For centrality QA + ConfigurableAxis axisCentrality{"axisCentrality", {10000, 0, 100}, "centrality percentile"}; // ccdb matters Configurable ccdbURL{"ccdbURL", "http://alice-ccdb.cern.ch", "ccdb url"}; Configurable pathGRPECSObject{"pathGRPECSObject", "GLO/Config/GRPECS", "Path to GRPECS object"}; Configurable pathVertexZ{"pathVertexZ", "Users/d/ddobrigk/Centrality/Calibration", "Path to vertexZ profiles"}; + Configurable pathCentrality{"pathCentrality", "Users/d/ddobrigk/Centrality/Estimators", "Path to centrality calibration"}; void init(InitContext&) { @@ -115,6 +125,15 @@ struct centralityStudypp { hVtxZFDDA = nullptr; hVtxZFDDC = nullptr; + hCentralityFV0A = nullptr; + hCentralityFT0A = nullptr; + hCentralityFT0C = nullptr; + hCentralityFT0M = nullptr; + hCentralityFDDM = nullptr; + hCentralityNTPV = nullptr; + hCentralityNGlo = nullptr; + hCentralityMFT = nullptr; + const AxisSpec axisCollisions{100, -0.5f, 99.5f, "Number of collisions"}; histos.add("hCollisionSelection", "hCollisionSelection", kTH1D, {{20, -0.5f, +19.5f}}); histos.get(HIST("hCollisionSelection"))->GetXaxis()->SetBinLabel(1, "All collisions"); @@ -171,14 +190,14 @@ struct centralityStudypp { LOGF(info, "Acquiring vertex-Z profiles for run %i", mRunNumber); hCalibObjects = ccdb->getForRun(pathVertexZ, mRunNumber); - hVtxZFV0A = static_cast(hCalibObjects->FindObject("hVtxZFV0A")); - hVtxZFT0A = static_cast(hCalibObjects->FindObject("hVtxZFT0A")); - hVtxZFT0C = static_cast(hCalibObjects->FindObject("hVtxZFT0C")); - hVtxZFDDA = static_cast(hCalibObjects->FindObject("hVtxZFDDA")); - hVtxZFDDC = static_cast(hCalibObjects->FindObject("hVtxZFDDC")); - hVtxZNTracks = static_cast(hCalibObjects->FindObject("hVtxZNTracksPV")); - hVtxZNGlobals = static_cast(hCalibObjects->FindObject("hVtxZNGlobals")); - hVtxZMFT = static_cast(hCalibObjects->FindObject("hVtxZMFT")); + hVtxZFV0A = dynamic_cast(hCalibObjects->FindObject("hVtxZFV0A")); + hVtxZFT0A = dynamic_cast(hCalibObjects->FindObject("hVtxZFT0A")); + hVtxZFT0C = dynamic_cast(hCalibObjects->FindObject("hVtxZFT0C")); + hVtxZFDDA = dynamic_cast(hCalibObjects->FindObject("hVtxZFDDA")); + hVtxZFDDC = dynamic_cast(hCalibObjects->FindObject("hVtxZFDDC")); + hVtxZNTracks = dynamic_cast(hCalibObjects->FindObject("hVtxZNTracksPV")); + hVtxZNGlobals = dynamic_cast(hCalibObjects->FindObject("hVtxZNGlobals")); + hVtxZMFT = dynamic_cast(hCalibObjects->FindObject("hVtxZMFT")); // Capture error if (!hVtxZFV0A || !hVtxZFT0A || !hVtxZFT0C || !hVtxZFDDA || !hVtxZFDDC || !hVtxZNTracks || !hVtxZNGlobals || !hVtxZMFT) { @@ -186,6 +205,24 @@ struct centralityStudypp { } } + if (doCentralityQA.value) { + // acquire vertex-Z equalization histograms if requested + LOGF(info, "Acquiring vertex-Z profiles for run %i", mRunNumber); + TList* hCentralityObjects = nullptr; + hCentralityObjects = ccdb->getForRun(pathCentrality, mRunNumber); + + hCentralityFV0A = dynamic_cast(hCentralityObjects->FindObject("hCalibZeqFV0")); + hCentralityFT0A = dynamic_cast(hCentralityObjects->FindObject("hCalibZeqFT0A")); + hCentralityFT0C = dynamic_cast(hCentralityObjects->FindObject("hCalibZeqFT0C")); + hCentralityFT0M = dynamic_cast(hCentralityObjects->FindObject("hCalibZeqFT0")); + hCentralityFDDM = dynamic_cast(hCentralityObjects->FindObject("hCalibZeqFDD")); + hCentralityNTPV = dynamic_cast(hCentralityObjects->FindObject("hCalibZeqNTracksPV")); + hCentralityNGlo = dynamic_cast(hCentralityObjects->FindObject("hCalibZeqNGlobal")); + hCentralityMFT = dynamic_cast(hCentralityObjects->FindObject("hCalibZeqMFT")); + + // won't capture null pointers -> explicitly check for those when attempting to evaluate + } + histPath = std::format("Run_{}/", mRunNumber); histPointers.insert({histPath + "hCollisionSelection", histos.add((histPath + "hCollisionSelection").c_str(), "hCollisionSelection", {kTH1D, {{20, -0.5f, +19.5f}}})}); @@ -227,6 +264,17 @@ struct centralityStudypp { histPointers.insert({histPath + "hNPVContributors_Unequalized", histos.add((histPath + "hNPVContributors_Unequalized").c_str(), "hNPVContributors_Unequalized", {kTH1D, {{axisMultUltraFinePVContributors}}})}); } + if (doCentralityQA.value) { + histPointers.insert({histPath + "hCentralityDistributionFV0A", histos.add((histPath + "hCentralityDistributionFV0A").c_str(), "hCentralityDistributionFV0A", {kTH1D, {{axisCentrality}}})}); + histPointers.insert({histPath + "hCentralityDistributionFT0A", histos.add((histPath + "hCentralityDistributionFT0A").c_str(), "hCentralityDistributionFT0A", {kTH1D, {{axisCentrality}}})}); + histPointers.insert({histPath + "hCentralityDistributionFT0C", histos.add((histPath + "hCentralityDistributionFT0C").c_str(), "hCentralityDistributionFT0C", {kTH1D, {{axisCentrality}}})}); + histPointers.insert({histPath + "hCentralityDistributionFT0M", histos.add((histPath + "hCentralityDistributionFT0M").c_str(), "hCentralityDistributionFT0M", {kTH1D, {{axisCentrality}}})}); + histPointers.insert({histPath + "hCentralityDistributionFDDM", histos.add((histPath + "hCentralityDistributionFDDM").c_str(), "hCentralityDistributionFDDM", {kTH1D, {{axisCentrality}}})}); + histPointers.insert({histPath + "hCentralityDistributionNPTV", histos.add((histPath + "hCentralityDistributionNPTV").c_str(), "hCentralityDistributionNPTV", {kTH1D, {{axisCentrality}}})}); + histPointers.insert({histPath + "hCentralityDistributionNGlobal", histos.add((histPath + "hCentralityDistributionNGlobal").c_str(), "hCentralityDistributionNGlobal", {kTH1D, {{axisCentrality}}})}); + histPointers.insert({histPath + "hCentralityDistributionMFT", histos.add((histPath + "hCentralityDistributionMFT").c_str(), "hCentralityDistributionMFT", {kTH1D, {{axisCentrality}}})}); + } + histPointers.insert({histPath + "hFT0AvsPVz_Collisions", histos.add((histPath + "hFT0AvsPVz_Collisions").c_str(), "hFT0AvsPVz_Collisions", {kTProfile, {{axisPVz}}})}); histPointers.insert({histPath + "hFT0CvsPVz_Collisions", histos.add((histPath + "hFT0CvsPVz_Collisions").c_str(), "hFT0CvsPVz_Collisions", {kTProfile, {{axisPVz}}})}); histPointers.insert({histPath + "hFDDAvsPVz_Collisions", histos.add((histPath + "hFDDAvsPVz_Collisions").c_str(), "hFDDAvsPVz_Collisions", {kTProfile, {{axisPVz}}})}); @@ -245,8 +293,9 @@ struct centralityStudypp { histos.fill(HIST("hCollisionSelection"), 0); // all collisions getHist(TH1, histPath + "hCollisionSelection")->Fill(0); - if (applySel8 && !collision.multSel8()) + if (applySel8 && !collision.multSel8()){ return; + } histos.fill(HIST("hCollisionSelection"), 1); getHist(TH1, histPath + "hCollisionSelection")->Fill(1); @@ -331,8 +380,9 @@ struct centralityStudypp { // _______________________________________________________ - if (applyVtxZ && TMath::Abs(collision.multPVz()) > 10) + if (applyVtxZ && TMath::Abs(collision.multPVz()) > 10){ return; + } histos.fill(HIST("hCollisionSelection"), 2); getHist(TH1, histPath + "hCollisionSelection")->Fill(2); @@ -418,6 +468,34 @@ struct centralityStudypp { getHist(TH1, histPath + "hNGlobalTracks_Unequalized")->Fill(collision.multNTracksGlobal()); getHist(TH1, histPath + "hNMFTTracks_Unequalized")->Fill(collision.mftNtracks()); } + + if (doCentralityQA.value) { + // generate centralities on the spot in case the centrality histograms are in memory + if(hCentralityFV0A){ + getHist(TH1, histPath + "hCentralityDistributionFV0A")->Fill( hCentralityFV0A->GetBinContent( hCentralityFV0A->FindBin(multFV0A))); + } + if(hCentralityFT0A){ + getHist(TH1, histPath + "hCentralityDistributionFT0A")->Fill( hCentralityFT0A->GetBinContent( hCentralityFT0A->FindBin(multFT0A))); + } + if(hCentralityFT0C){ + getHist(TH1, histPath + "hCentralityDistributionFT0C")->Fill( hCentralityFT0C->GetBinContent( hCentralityFT0C->FindBin(multFT0C))); + } + if(hCentralityFT0M){ + getHist(TH1, histPath + "hCentralityDistributionFT0M")->Fill( hCentralityFT0M->GetBinContent( hCentralityFT0M->FindBin(multFT0A+multFT0C))); + } + if(hCentralityFDDM){ + getHist(TH1, histPath + "hCentralityDistributionFDDM")->Fill( hCentralityFDDM->GetBinContent( hCentralityFDDM->FindBin(multFDDA+multFDDC))); + } + if(hCentralityNTPV){ + getHist(TH1, histPath + "hCentralityDistributionNTPV")->Fill( hCentralityNTPV->GetBinContent( hCentralityNTPV->FindBin(multNTracksGlobal))); + } + if(hCentralityNGlo){ + getHist(TH1, histPath + "hCentralityDistributionNGlobal")->Fill( hCentralityNGlo->GetBinContent( hCentralityNGlo->FindBin(hCentralityNGlo))); + } + if(hCentralityMFT){ + getHist(TH1, histPath + "hCentralityDistributionMFT")->Fill( hCentralityMFT->GetBinContent( hCentralityMFT->FindBin(hCentralityMFT))); + } + } } void process(soa::Join::iterator const& collision) From 9e99c9f56f83c39094602de8d15c418ca2ce5e31 Mon Sep 17 00:00:00 2001 From: ALICE Builder Date: Fri, 15 May 2026 21:28:03 +0200 Subject: [PATCH 2/3] Please consider the following formatting changes (#508) --- Common/Tasks/centralityStudypp.cxx | 60 +++++++++++++++--------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/Common/Tasks/centralityStudypp.cxx b/Common/Tasks/centralityStudypp.cxx index 0f9ad7b4b1b..0b2d4c99648 100644 --- a/Common/Tasks/centralityStudypp.cxx +++ b/Common/Tasks/centralityStudypp.cxx @@ -63,15 +63,15 @@ struct centralityStudypp { TProfile* hVtxZFDDA = nullptr; TProfile* hVtxZFDDC = nullptr; - // calibration histograms - TH1 *hCentralityFV0A = nullptr; - TH1 *hCentralityFT0A = nullptr; - TH1 *hCentralityFT0C = nullptr; - TH1 *hCentralityFT0M = nullptr; - TH1 *hCentralityFDDM = nullptr; - TH1 *hCentralityNTPV = nullptr; - TH1 *hCentralityNGlo = nullptr; - TH1 *hCentralityMFT = nullptr; + // calibration histograms + TH1* hCentralityFV0A = nullptr; + TH1* hCentralityFT0A = nullptr; + TH1* hCentralityFT0C = nullptr; + TH1* hCentralityFT0M = nullptr; + TH1* hCentralityFDDM = nullptr; + TH1* hCentralityNTPV = nullptr; + TH1* hCentralityNGlo = nullptr; + TH1* hCentralityMFT = nullptr; // Configurables Configurable do2DPlots{"do2DPlots", true, "0 - no, 1 - yes"}; @@ -104,14 +104,14 @@ struct centralityStudypp { // For profile Z ConfigurableAxis axisPVz{"axisPVz", {400, -20.0f, +20.0f}, "PVz (cm)"}; ConfigurableAxis axisZN{"axisZN", {1100, -50.0f, +500.0f}, "ZN"}; - // For centrality QA + // For centrality QA ConfigurableAxis axisCentrality{"axisCentrality", {10000, 0, 100}, "centrality percentile"}; // ccdb matters Configurable ccdbURL{"ccdbURL", "http://alice-ccdb.cern.ch", "ccdb url"}; Configurable pathGRPECSObject{"pathGRPECSObject", "GLO/Config/GRPECS", "Path to GRPECS object"}; Configurable pathVertexZ{"pathVertexZ", "Users/d/ddobrigk/Centrality/Calibration", "Path to vertexZ profiles"}; - Configurable pathCentrality{"pathCentrality", "Users/d/ddobrigk/Centrality/Estimators", "Path to centrality calibration"}; + Configurable pathCentrality{"pathCentrality", "Users/d/ddobrigk/Centrality/Estimators", "Path to centrality calibration"}; void init(InitContext&) { @@ -264,7 +264,7 @@ struct centralityStudypp { histPointers.insert({histPath + "hNPVContributors_Unequalized", histos.add((histPath + "hNPVContributors_Unequalized").c_str(), "hNPVContributors_Unequalized", {kTH1D, {{axisMultUltraFinePVContributors}}})}); } - if (doCentralityQA.value) { + if (doCentralityQA.value) { histPointers.insert({histPath + "hCentralityDistributionFV0A", histos.add((histPath + "hCentralityDistributionFV0A").c_str(), "hCentralityDistributionFV0A", {kTH1D, {{axisCentrality}}})}); histPointers.insert({histPath + "hCentralityDistributionFT0A", histos.add((histPath + "hCentralityDistributionFT0A").c_str(), "hCentralityDistributionFT0A", {kTH1D, {{axisCentrality}}})}); histPointers.insert({histPath + "hCentralityDistributionFT0C", histos.add((histPath + "hCentralityDistributionFT0C").c_str(), "hCentralityDistributionFT0C", {kTH1D, {{axisCentrality}}})}); @@ -293,7 +293,7 @@ struct centralityStudypp { histos.fill(HIST("hCollisionSelection"), 0); // all collisions getHist(TH1, histPath + "hCollisionSelection")->Fill(0); - if (applySel8 && !collision.multSel8()){ + if (applySel8 && !collision.multSel8()) { return; } histos.fill(HIST("hCollisionSelection"), 1); @@ -380,7 +380,7 @@ struct centralityStudypp { // _______________________________________________________ - if (applyVtxZ && TMath::Abs(collision.multPVz()) > 10){ + if (applyVtxZ && TMath::Abs(collision.multPVz()) > 10) { return; } histos.fill(HIST("hCollisionSelection"), 2); @@ -471,29 +471,29 @@ struct centralityStudypp { if (doCentralityQA.value) { // generate centralities on the spot in case the centrality histograms are in memory - if(hCentralityFV0A){ - getHist(TH1, histPath + "hCentralityDistributionFV0A")->Fill( hCentralityFV0A->GetBinContent( hCentralityFV0A->FindBin(multFV0A))); + if (hCentralityFV0A) { + getHist(TH1, histPath + "hCentralityDistributionFV0A")->Fill(hCentralityFV0A->GetBinContent(hCentralityFV0A->FindBin(multFV0A))); } - if(hCentralityFT0A){ - getHist(TH1, histPath + "hCentralityDistributionFT0A")->Fill( hCentralityFT0A->GetBinContent( hCentralityFT0A->FindBin(multFT0A))); + if (hCentralityFT0A) { + getHist(TH1, histPath + "hCentralityDistributionFT0A")->Fill(hCentralityFT0A->GetBinContent(hCentralityFT0A->FindBin(multFT0A))); } - if(hCentralityFT0C){ - getHist(TH1, histPath + "hCentralityDistributionFT0C")->Fill( hCentralityFT0C->GetBinContent( hCentralityFT0C->FindBin(multFT0C))); + if (hCentralityFT0C) { + getHist(TH1, histPath + "hCentralityDistributionFT0C")->Fill(hCentralityFT0C->GetBinContent(hCentralityFT0C->FindBin(multFT0C))); } - if(hCentralityFT0M){ - getHist(TH1, histPath + "hCentralityDistributionFT0M")->Fill( hCentralityFT0M->GetBinContent( hCentralityFT0M->FindBin(multFT0A+multFT0C))); + if (hCentralityFT0M) { + getHist(TH1, histPath + "hCentralityDistributionFT0M")->Fill(hCentralityFT0M->GetBinContent(hCentralityFT0M->FindBin(multFT0A + multFT0C))); } - if(hCentralityFDDM){ - getHist(TH1, histPath + "hCentralityDistributionFDDM")->Fill( hCentralityFDDM->GetBinContent( hCentralityFDDM->FindBin(multFDDA+multFDDC))); + if (hCentralityFDDM) { + getHist(TH1, histPath + "hCentralityDistributionFDDM")->Fill(hCentralityFDDM->GetBinContent(hCentralityFDDM->FindBin(multFDDA + multFDDC))); } - if(hCentralityNTPV){ - getHist(TH1, histPath + "hCentralityDistributionNTPV")->Fill( hCentralityNTPV->GetBinContent( hCentralityNTPV->FindBin(multNTracksGlobal))); + if (hCentralityNTPV) { + getHist(TH1, histPath + "hCentralityDistributionNTPV")->Fill(hCentralityNTPV->GetBinContent(hCentralityNTPV->FindBin(multNTracksGlobal))); } - if(hCentralityNGlo){ - getHist(TH1, histPath + "hCentralityDistributionNGlobal")->Fill( hCentralityNGlo->GetBinContent( hCentralityNGlo->FindBin(hCentralityNGlo))); + if (hCentralityNGlo) { + getHist(TH1, histPath + "hCentralityDistributionNGlobal")->Fill(hCentralityNGlo->GetBinContent(hCentralityNGlo->FindBin(hCentralityNGlo))); } - if(hCentralityMFT){ - getHist(TH1, histPath + "hCentralityDistributionMFT")->Fill( hCentralityMFT->GetBinContent( hCentralityMFT->FindBin(hCentralityMFT))); + if (hCentralityMFT) { + getHist(TH1, histPath + "hCentralityDistributionMFT")->Fill(hCentralityMFT->GetBinContent(hCentralityMFT->FindBin(hCentralityMFT))); } } } From 33da2c7879e8b03a84d309dfca076f42048d7145 Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Fri, 15 May 2026 21:40:31 +0200 Subject: [PATCH 3/3] linter fix --- Common/Tasks/centralityStudypp.cxx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Common/Tasks/centralityStudypp.cxx b/Common/Tasks/centralityStudypp.cxx index 0b2d4c99648..cb37808c8d4 100644 --- a/Common/Tasks/centralityStudypp.cxx +++ b/Common/Tasks/centralityStudypp.cxx @@ -91,6 +91,8 @@ struct centralityStudypp { Configurable requireIsVertexTRDmatched{"requireIsVertexTRDmatched", false, "require events with at least one of vertex contributors matched to TRD"}; Configurable rejectSameBunchPileup{"rejectSameBunchPileup", false, "reject collisions in case of pileup with another collision in the same foundBC"}; + Configurable vertexZcut{"vertexZcut", 10.0f, "vertex Z cut (cm)"}; + // For one-dimensional plots, where binning is no issue ConfigurableAxis axisMultUltraFineFV0A{"axisMultUltraFineFV0A", {60000, 0, 60000}, "FV0A amplitude"}; ConfigurableAxis axisMultUltraFineFT0A{"axisMultUltraFineFT0A", {60000, 0, 60000}, "FT0A amplitude"}; @@ -380,7 +382,7 @@ struct centralityStudypp { // _______________________________________________________ - if (applyVtxZ && TMath::Abs(collision.multPVz()) > 10) { + if (applyVtxZ && TMath::Abs(collision.multPVz()) > vertexZcut.value) { return; } histos.fill(HIST("hCollisionSelection"), 2); @@ -487,13 +489,14 @@ struct centralityStudypp { getHist(TH1, histPath + "hCentralityDistributionFDDM")->Fill(hCentralityFDDM->GetBinContent(hCentralityFDDM->FindBin(multFDDA + multFDDC))); } if (hCentralityNTPV) { - getHist(TH1, histPath + "hCentralityDistributionNTPV")->Fill(hCentralityNTPV->GetBinContent(hCentralityNTPV->FindBin(multNTracksGlobal))); + // note: not vertex-Z-equalized to match what is done in central framework for this estimator + getHist(TH1, histPath + "hCentralityDistributionNTPV")->Fill(hCentralityNTPV->GetBinContent(hCentralityNTPV->FindBin(collision.multNTracksPV()))); } if (hCentralityNGlo) { - getHist(TH1, histPath + "hCentralityDistributionNGlobal")->Fill(hCentralityNGlo->GetBinContent(hCentralityNGlo->FindBin(hCentralityNGlo))); + getHist(TH1, histPath + "hCentralityDistributionNGlobal")->Fill(hCentralityNGlo->GetBinContent(hCentralityNGlo->FindBin(multNTracksGlobal))); } if (hCentralityMFT) { - getHist(TH1, histPath + "hCentralityDistributionMFT")->Fill(hCentralityMFT->GetBinContent(hCentralityMFT->FindBin(hCentralityMFT))); + getHist(TH1, histPath + "hCentralityDistributionMFT")->Fill(hCentralityMFT->GetBinContent(hCentralityMFT->FindBin(mftNtracks))); } } }