@@ -53,8 +53,9 @@ using namespace o2::framework::expressions;
5353struct 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