@@ -165,7 +165,9 @@ struct FlowGfwLightIons {
165165 kCentFT0CVariant1 ,
166166 kCentFT0M ,
167167 kCentFV0A ,
168- kCentNTPV
168+ kCentNTPV ,
169+ kCentNGlobal ,
170+ kCentMFT
169171 };
170172
171173 // Define global variables
@@ -212,7 +214,7 @@ struct FlowGfwLightIons {
212214
213215 void init (InitContext const &)
214216 {
215- LOGF (info, " flowGFWLightIons ::init()" );
217+ LOGF (info, " flowGfwLightIons ::init()" );
216218 o2::analysis::gfw::regions.SetNames (cfgRegions->GetNames ());
217219 o2::analysis::gfw::regions.SetEtaMin (cfgRegions->GetEtaMin ());
218220 o2::analysis::gfw::regions.SetEtaMax (cfgRegions->GetEtaMax ());
@@ -265,8 +267,15 @@ struct FlowGfwLightIons {
265267 case kCentNTPV :
266268 sCentralityEstimator = " NTPV" ;
267269 break ;
270+ case kCentNGlobal :
271+ sCentralityEstimator = " NGlobals" ;
272+ break ;
273+ case kCentMFT :
274+ sCentralityEstimator = " MFT" ;
275+ break ;
268276 default :
269277 sCentralityEstimator = " FT0C" ;
278+ break ;
270279 }
271280 sCentralityEstimator += " centrality (%)" ;
272281 AxisSpec centAxis = {o2::analysis::gfw::centbinning, sCentralityEstimator .c_str ()};
@@ -296,7 +305,7 @@ struct FlowGfwLightIons {
296305 fPtAxis = new TAxis (ptbins, &o2::analysis::gfw::ptbinning[0 ]);
297306
298307 if (doprocessMCGen || doprocessMCGenNoCent || doprocessOnTheFly) {
299- registry.add (" MCGen/trackQA/nch_pt" , " #it{p}_{T} vs multiplicity; N_{ch}; #it{p}_{T}" , {HistType::kTH2D , {nchAxis, { 100 , o2::analysis::gfw::ptpoilow, o2::analysis::gfw::ptpoiup} }});
308+ registry.add (" MCGen/trackQA/nch_pt" , " #it{p}_{T} vs multiplicity; N_{ch}; #it{p}_{T}" , {HistType::kTH2D , {nchAxis, ptAxis }});
300309 registry.add (" MCGen/trackQA/phi_eta_vtxZ" , " " , {HistType::kTH3D , {phiAxis, etaAxis, vtxAxis}});
301310 registry.add (" MCGen/trackQA/pt_ref" , " Reference #it{p}_{T}; #it{p}_{T}; Counts" , {HistType::kTH1D , {{100 , o2::analysis::gfw::ptreflow, o2::analysis::gfw::ptrefup}}});
302311 registry.add (" MCGen/trackQA/pt_poi" , " POI #it{p}_{T}; #it{p}_{T}; Counts" , {HistType::kTH1D , {{100 , o2::analysis::gfw::ptpoilow, o2::analysis::gfw::ptpoiup}}});
@@ -310,7 +319,7 @@ struct FlowGfwLightIons {
310319 if (doprocessMCReco || doprocessData || doprocessDataNoCent || doprocessMCRecoNoCent) {
311320 registry.add (" trackQA/before/phi_eta_vtxZ" , " " , {HistType::kTH3D , {phiAxis, etaAxis, vtxAxis}});
312321 registry.add (" trackQA/before/pt_dcaXY_dcaZ" , " " , {HistType::kTH3D , {ptAxis, dcaXYAXis, dcaZAXis}});
313- registry.add (" trackQA/before/nch_pt" , " #it{p}_{T} vs multiplicity; N_{ch}; #it{p}_{T}" , {HistType::kTH2D , {nchAxis, { 100 , o2::analysis::gfw::ptpoilow, o2::analysis::gfw::ptpoiup} }});
322+ registry.add (" trackQA/before/nch_pt" , " #it{p}_{T} vs multiplicity; N_{ch}; #it{p}_{T}" , {HistType::kTH2D , {nchAxis, ptAxis }});
314323 registry.add (" trackQA/before/chi2prTPCcls" , " #chi^{2}/cluster for the TPC track segment; #chi^{2}/TPC cluster" , {HistType::kTH1D , {{100 , 0 ., 5 .}}});
315324 registry.add (" trackQA/before/chi2prITScls" , " #chi^{2}/cluster for the ITS track; #chi^{2}/ITS cluster" , {HistType::kTH1D , {{100 , 0 ., 50 .}}});
316325 registry.add (" trackQA/before/nTPCClusters" , " Number of found TPC clusters; TPC N_{cls}; Counts" , {HistType::kTH1D , {{100 , 40 , 180 }}});
@@ -770,10 +779,10 @@ struct FlowGfwLightIons {
770779 return ;
771780
772781 if (cfgFillWeights) {
773- fillWeights (mcParticle , vtxz, run);
782+ fillWeights (track , vtxz, run);
774783 } else {
775784 fillPtSums<kReco >(track);
776- fillGFW<kReco >(mcParticle , vtxz, densitycorrections);
785+ fillGFW<kReco >(track , vtxz, densitycorrections);
777786 }
778787
779788 if (cfgFillQA) {
@@ -905,7 +914,7 @@ struct FlowGfwLightIons {
905914 return ;
906915 }
907916
908- void processData (soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Cs, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentFV0As, aod::CentNTPVs>>::iterator const & collision, aod::BCsWithTimestamps const &, GFWTracks const & tracks)
917+ void processData (soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Cs, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentFV0As, aod::CentNTPVs, aod::CentNGlobals, aod::CentMFTs >>::iterator const & collision, aod::BCsWithTimestamps const &, GFWTracks const & tracks)
909918 {
910919 auto bc = collision.bc_as <aod::BCsWithTimestamps>();
911920 int run = bc.runNumber ();
@@ -959,8 +968,15 @@ struct FlowGfwLightIons {
959968 case kCentNTPV :
960969 centrality = collision.centNTPV ();
961970 break ;
971+ case kCentNGlobal :
972+ centrality = collision.centNGlobal ();
973+ break ;
974+ case kCentMFT :
975+ centrality = collision.centMFT ();
976+ break ;
962977 default :
963978 centrality = collision.centFT0C ();
979+ break ;
964980 }
965981 if (cfgFillQA)
966982 fillEventQA<kBefore >(collision, tracks);
@@ -1025,7 +1041,7 @@ struct FlowGfwLightIons {
10251041 }
10261042 PROCESS_SWITCH (FlowGfwLightIons, processDataNoCent, " Process analysis for non-derived data without centrality" , true );
10271043
1028- void processMCReco (soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Cs, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentFV0As, aod::CentNTPVs>>::iterator const & collision, aod::BCsWithTimestamps const &, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::TracksDCA, aod::McTrackLabels>> const & tracks, aod::McParticles const &)
1044+ void processMCReco (soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Cs, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentFV0As, aod::CentNTPVs, aod::CentNGlobals, aod::CentMFTs >>::iterator const & collision, aod::BCsWithTimestamps const &, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::TracksDCA, aod::McTrackLabels>> const & tracks, aod::McParticles const &)
10291045 {
10301046 auto bc = collision.bc_as <aod::BCsWithTimestamps>();
10311047 int run = bc.runNumber ();
@@ -1036,7 +1052,33 @@ struct FlowGfwLightIons {
10361052 }
10371053 if (!collision.sel8 ())
10381054 return ;
1039- const auto centrality = collision.centFT0C ();
1055+ float centrality;
1056+ switch (cfgCentEstimator) {
1057+ case kCentFT0C :
1058+ centrality = collision.centFT0C ();
1059+ break ;
1060+ case kCentFT0CVariant1 :
1061+ centrality = collision.centFT0CVariant1 ();
1062+ break ;
1063+ case kCentFT0M :
1064+ centrality = collision.centFT0M ();
1065+ break ;
1066+ case kCentFV0A :
1067+ centrality = collision.centFV0A ();
1068+ break ;
1069+ case kCentNTPV :
1070+ centrality = collision.centNTPV ();
1071+ break ;
1072+ case kCentNGlobal :
1073+ centrality = collision.centNGlobal ();
1074+ break ;
1075+ case kCentMFT :
1076+ centrality = collision.centMFT ();
1077+ break ;
1078+ default :
1079+ centrality = collision.centFT0C ();
1080+ break ;
1081+ }
10401082 if (cfgFillQA)
10411083 fillEventQA<kBefore >(collision, tracks);
10421084 registry.fill (HIST (" eventQA/before/centrality" ), centrality);
@@ -1142,13 +1184,38 @@ struct FlowGfwLightIons {
11421184 }
11431185 PROCESS_SWITCH (FlowGfwLightIons, processMCRecoNoCent, " Process analysis for MC reconstructed events without centrality/mult table" , false );
11441186
1145- void processMCGen (soa::Filtered<aod::McCollisions>::iterator const & mcCollision, soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions, aod::CentFT0Cs>> const & collisions, aod::McParticles const & particles, GFWTracks const & tracks)
1187+ void processMCGen (soa::Filtered<aod::McCollisions>::iterator const & mcCollision, soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions, aod::CentFT0Cs, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentFV0As, aod::CentNTPVs, aod::CentNGlobals, aod::CentMFTs >> const & collisions, aod::McParticles const & particles, GFWTracks const & tracks)
11461188 {
11471189 if (collisions.size () != 1 )
11481190 return ;
11491191 float centrality = -1 ;
11501192 for (const auto & collision : collisions) {
1151- centrality = collision.centFT0C ();
1193+ switch (cfgCentEstimator) {
1194+ case kCentFT0C :
1195+ centrality = collision.centFT0C ();
1196+ break ;
1197+ case kCentFT0CVariant1 :
1198+ centrality = collision.centFT0CVariant1 ();
1199+ break ;
1200+ case kCentFT0M :
1201+ centrality = collision.centFT0M ();
1202+ break ;
1203+ case kCentFV0A :
1204+ centrality = collision.centFV0A ();
1205+ break ;
1206+ case kCentNTPV :
1207+ centrality = collision.centNTPV ();
1208+ break ;
1209+ case kCentNGlobal :
1210+ centrality = collision.centNGlobal ();
1211+ break ;
1212+ case kCentMFT :
1213+ centrality = collision.centMFT ();
1214+ break ;
1215+ default :
1216+ centrality = collision.centFT0C ();
1217+ break ;
1218+ }
11521219 }
11531220 std::vector<int > numberOfTracks;
11541221 for (auto const & collision : collisions) {
0 commit comments