Skip to content

Commit b45cc27

Browse files
authored
[PWGCF] flow-task: add centrality estimators (#9678)
1 parent 46e5c21 commit b45cc27

File tree

1 file changed

+37
-15
lines changed

1 file changed

+37
-15
lines changed

PWGCF/Flow/Tasks/flowTask.cxx

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,9 @@ using namespace o2::framework::expressions;
5353
struct FlowTask {
5454

5555
O2_DEFINE_CONFIGURABLE(cfgCutVertex, float, 10.0f, "Accepted z-vertex range")
56-
O2_DEFINE_CONFIGURABLE(cfgCentMin, float, 0.0f, "Minimum centrality")
57-
O2_DEFINE_CONFIGURABLE(cfgCentMax, float, 100.0f, "Maximum centrality")
56+
O2_DEFINE_CONFIGURABLE(cfgCentEstimator, int, 0, "0:FT0C; 1:FT0CVariant1; 2:FT0M; 3:FT0A")
57+
O2_DEFINE_CONFIGURABLE(cfgCentFT0CMin, float, 0.0f, "Minimum centrality (FT0C) to cut events in filter")
58+
O2_DEFINE_CONFIGURABLE(cfgCentFT0CMax, float, 100.0f, "Maximum centrality (FT0C) to cut events in filter")
5859
O2_DEFINE_CONFIGURABLE(cfgCutPtPOIMin, float, 0.2f, "Minimal pT for poi tracks")
5960
O2_DEFINE_CONFIGURABLE(cfgCutPtPOIMax, float, 10.0f, "Maximal pT for poi tracks")
6061
O2_DEFINE_CONFIGURABLE(cfgCutPtRefMin, float, 0.2f, "Minimal pT for ref tracks")
@@ -116,7 +117,7 @@ struct FlowTask {
116117
ConfigurableAxis axisDCAz{"axisDCAz", {200, -2, 2}, "DCA_{z} (cm)"};
117118
ConfigurableAxis axisDCAxy{"axisDCAxy", {200, -1, 1}, "DCA_{xy} (cm)"};
118119

119-
Filter collisionFilter = (nabs(aod::collision::posZ) < cfgCutVertex) && (aod::cent::centFT0C > cfgCentMin) && (aod::cent::centFT0C < cfgCentMax);
120+
Filter collisionFilter = (nabs(aod::collision::posZ) < cfgCutVertex) && (aod::cent::centFT0C > cfgCentFT0CMin) && (aod::cent::centFT0C < cfgCentFT0CMax);
120121
Filter trackFilter = ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t) true)) && (nabs(aod::track::eta) < cfgCutEta) && (aod::track::pt > cfgCutPtMin) && (aod::track::pt < cfgCutPtMax) && (aod::track::tpcChi2NCl < cfgCutChi2prTPCcls) && (nabs(aod::track::dcaZ) < cfgCutDCAz);
121122

122123
// Corrections
@@ -141,15 +142,13 @@ struct FlowTask {
141142
std::vector<GFW::CorrConfig> corrconfigs;
142143
TAxis* fPtAxis;
143144
TRandom3* fRndm = new TRandom3(0);
144-
enum ExtraProfile {
145-
// here are TProfiles for vn-pt correlations that are not implemented in GFW
146-
kMeanPt_InGap08 = 0,
147-
kC22_Gap08_Weff,
148-
kC22_Gap08_MeanPt,
149-
kPtVarParA_InGap08,
150-
kPtVarParB_InGap08,
145+
enum CentEstimators {
146+
kCentFT0C = 0,
147+
kCentFT0CVariant1,
148+
kCentFT0M,
149+
kCentFV0A,
151150
// Count the total number of enum
152-
kCount_ExtraProfile
151+
kCount_CentEstimators
153152
};
154153
int mRunNumber{-1};
155154
uint64_t mSOR{0};
@@ -159,7 +158,7 @@ struct FlowTask {
159158
TH2* gCurrentHadronicRate;
160159
std::vector<std::shared_ptr<GFWWeights>> groupNUAWeightPtr;
161160

162-
using AodCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::Mults>>;
161+
using AodCollisions = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentFV0As, aod::Mults>>;
163162
using AodTracks = soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection, aod::TracksExtra, aod::TracksDCA>>;
164163

165164
// Track selection
@@ -215,7 +214,8 @@ struct FlowTask {
215214
}
216215
registry.add("hVtxZ", "Vexter Z distribution", {HistType::kTH1D, {axisVertex}});
217216
registry.add("hMult", "Multiplicity distribution", {HistType::kTH1D, {{3000, 0.5, 3000.5}}});
218-
registry.add("hCent", "Centrality distribution", {HistType::kTH1D, {{90, 0, 90}}});
217+
std::string hCentTitle = "Centrality distribution, Estimator " + std::to_string(cfgCentEstimator);
218+
registry.add("hCent", hCentTitle.c_str(), {HistType::kTH1D, {{90, 0, 90}}});
219219
if (!cfgUseSmallMemory) {
220220
registry.add("BeforeSel8_globalTracks_centT0C", "before sel8;Centrality T0C;mulplicity global tracks", {HistType::kTH2D, {axisCentForQA, axisNch}});
221221
registry.add("BeforeCut_globalTracks_centT0C", "before cut;Centrality T0C;mulplicity global tracks", {HistType::kTH2D, {axisCentForQA, axisNch}});
@@ -232,6 +232,9 @@ struct FlowTask {
232232
registry.add("globalTracks_multV0A", "after cut;mulplicity V0A;mulplicity global tracks", {HistType::kTH2D, {axisT0A, axisNch}});
233233
registry.add("multV0A_multT0A", "after cut;mulplicity T0A;mulplicity V0A", {HistType::kTH2D, {axisT0A, axisT0A}});
234234
registry.add("multT0C_centT0C", "after cut;Centrality T0C;mulplicity T0C", {HistType::kTH2D, {axisCentForQA, axisT0C}});
235+
registry.add("centFT0CVar_centFT0C", "after cut;Centrality T0C;Centrality T0C Var", {HistType::kTH2D, {axisCentForQA, axisCentForQA}});
236+
registry.add("centFT0M_centFT0C", "after cut;Centrality T0C;Centrality T0M", {HistType::kTH2D, {axisCentForQA, axisCentForQA}});
237+
registry.add("centFV0A_centFT0C", "after cut;Centrality T0C;Centrality V0A", {HistType::kTH2D, {axisCentForQA, axisCentForQA}});
235238
}
236239
// Track QA
237240
registry.add("hPhi", "#phi distribution", {HistType::kTH1D, {axisPhi}});
@@ -701,7 +704,23 @@ struct FlowTask {
701704
registry.fill(HIST("BeforeCut_multV0A_multT0A"), collision.multFT0A(), collision.multFV0A());
702705
registry.fill(HIST("BeforeCut_multT0C_centT0C"), collision.centFT0C(), collision.multFT0C());
703706
}
704-
const auto cent = collision.centFT0C();
707+
float cent;
708+
switch (cfgCentEstimator) {
709+
case kCentFT0C:
710+
cent = collision.centFT0C();
711+
break;
712+
case kCentFT0CVariant1:
713+
cent = collision.centFT0CVariant1();
714+
break;
715+
case kCentFT0M:
716+
cent = collision.centFT0M();
717+
break;
718+
case kCentFV0A:
719+
cent = collision.centFV0A();
720+
break;
721+
default:
722+
cent = collision.centFT0C();
723+
}
705724
if (cfgUseTentativeEventCounter)
706725
eventCounterQA(collision, tracks.size(), cent);
707726
if (cfgUseAdditionalEventCut && !eventSelected(collision, tracks.size(), cent))
@@ -711,7 +730,7 @@ struct FlowTask {
711730
float vtxz = collision.posZ();
712731
registry.fill(HIST("hVtxZ"), vtxz);
713732
registry.fill(HIST("hMult"), tracks.size());
714-
registry.fill(HIST("hCent"), collision.centFT0C());
733+
registry.fill(HIST("hCent"), cent);
715734
fGFW->Clear();
716735
if (cfgGetInteractionRate) {
717736
initHadronicRate(bc);
@@ -733,6 +752,9 @@ struct FlowTask {
733752
registry.fill(HIST("globalTracks_multV0A"), collision.multFV0A(), tracks.size());
734753
registry.fill(HIST("multV0A_multT0A"), collision.multFT0A(), collision.multFV0A());
735754
registry.fill(HIST("multT0C_centT0C"), collision.centFT0C(), collision.multFT0C());
755+
registry.fill(HIST("centFT0CVar_centFT0C"), collision.centFT0C(), collision.centFT0CVariant1());
756+
registry.fill(HIST("centFT0M_centFT0C"), collision.centFT0C(), collision.centFT0M());
757+
registry.fill(HIST("centFV0A_centFT0C"), collision.centFT0C(), collision.centFV0A());
736758
}
737759

738760
// track weights

0 commit comments

Comments
 (0)