@@ -57,6 +57,8 @@ struct HfTaskFlowCharmHadrons {
5757 Configurable<int > qvecDetector{" qvecDetector" , 3 , " Detector for Q vector estimation (FV0A: 0, FT0M: 1, FT0A: 2, FT0C: 3, TPC Pos: 4, TPC Neg: 5, TPC Tot: 6)" };
5858 Configurable<int > centEstimator{" centEstimator" , 2 , " Centrality estimation (FT0A: 1, FT0C: 2, FT0M: 3, FV0A: 4)" };
5959 Configurable<int > selectionFlag{" selectionFlag" , 1 , " Selection Flag for hadron (e.g. 1 for skimming, 3 for topo. and kine., 7 for PID)" };
60+ Configurable<float > centralityMin{" centralityMin" , 0 ., " Minimum centrality accepted in SP/EP computation (not applied in resolution process)" };
61+ Configurable<float > centralityMax{" centralityMax" , 100 ., " Maximum centrality accepted in SP/EP computation (not applied in resolution process)" };
6062 Configurable<bool > storeEP{" storeEP" , false , " Flag to store EP-related axis" };
6163 Configurable<bool > storeMl{" storeMl" , false , " Flag to store ML scores" };
6264 Configurable<bool > saveEpResoHisto{" saveEpResoHisto" , false , " Flag to save event plane resolution histogram" };
@@ -128,48 +130,50 @@ struct HfTaskFlowCharmHadrons {
128130 }
129131 registry.add (" hSparseFlowCharm" , " THn for SP" , HistType::kTHnSparseF , axes);
130132
131- registry.add (" spReso/hSpResoFT0cFT0a" , " hSpResoFT0cFT0a; centrality; Q_{FT0c} #bullet Q_{FT0a}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
132- registry.add (" spReso/hSpResoFT0cFV0a" , " hSpResoFT0cFV0a; centrality; Q_{FT0c} #bullet Q_{FV0a}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
133- registry.add (" spReso/hSpResoFT0cTPCpos" , " hSpResoFT0cTPCpos; centrality; Q_{FT0c} #bullet Q_{TPCpos}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
134- registry.add (" spReso/hSpResoFT0cTPCneg" , " hSpResoFT0cTPCneg; centrality; Q_{FT0c} #bullet Q_{TPCneg}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
135- registry.add (" spReso/hSpResoFT0cTPCtot" , " hSpResoFT0cTPCtot; centrality; Q_{FT0c} #bullet Q_{TPCtot}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
136- registry.add (" spReso/hSpResoFT0aFV0a" , " hSpResoFT0aFV0a; centrality; Q_{FT0a} #bullet Q_{FV0a}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
137- registry.add (" spReso/hSpResoFT0aTPCpos" , " hSpResoFT0aTPCpos; centrality; Q_{FT0a} #bullet Q_{TPCpos}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
138- registry.add (" spReso/hSpResoFT0aTPCneg" , " hSpResoFT0aTPCneg; centrality; Q_{FT0a} #bullet Q_{TPCneg}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
139- registry.add (" spReso/hSpResoFT0aTPCtot" , " hSpResoFT0aTPCtot; centrality; Q_{FT0m} #bullet Q_{TPCtot}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
140- registry.add (" spReso/hSpResoFT0mFV0a" , " hSpResoFT0mFV0a; centrality; Q_{FT0m} #bullet Q_{FV0a}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
141- registry.add (" spReso/hSpResoFT0mTPCpos" , " hSpResoFT0mTPCpos; centrality; Q_{FT0m} #bullet Q_{TPCpos}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
142- registry.add (" spReso/hSpResoFT0mTPCneg" , " hSpResoFT0mTPCneg; centrality; Q_{FT0m} #bullet Q_{TPCneg}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
143- registry.add (" spReso/hSpResoFT0mTPCtot" , " hSpResoFT0mTPCtot; centrality; Q_{FV0a} #bullet Q_{TPCtot}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
144- registry.add (" spReso/hSpResoFV0aTPCpos" , " hSpResoFV0aTPCpos; centrality; Q_{FV0a} #bullet Q_{TPCpos}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
145- registry.add (" spReso/hSpResoFV0aTPCneg" , " hSpResoFV0aTPCneg; centrality; Q_{FV0a} #bullet Q_{TPCneg}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
146- registry.add (" spReso/hSpResoFV0aTPCtot" , " hSpResoFV0aTPCtot; centrality; Q_{FV0a} #bullet Q_{TPCtot}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
147- registry.add (" spReso/hSpResoTPCposTPCneg" , " hSpResoTPCposTPCneg; centrality; Q_{TPCpos} #bullet Q_{TPCneg}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
133+ if (doprocessResolution) { // enable resolution histograms only for resolution process
134+ registry.add (" spReso/hSpResoFT0cFT0a" , " hSpResoFT0cFT0a; centrality; Q_{FT0c} #bullet Q_{FT0a}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
135+ registry.add (" spReso/hSpResoFT0cFV0a" , " hSpResoFT0cFV0a; centrality; Q_{FT0c} #bullet Q_{FV0a}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
136+ registry.add (" spReso/hSpResoFT0cTPCpos" , " hSpResoFT0cTPCpos; centrality; Q_{FT0c} #bullet Q_{TPCpos}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
137+ registry.add (" spReso/hSpResoFT0cTPCneg" , " hSpResoFT0cTPCneg; centrality; Q_{FT0c} #bullet Q_{TPCneg}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
138+ registry.add (" spReso/hSpResoFT0cTPCtot" , " hSpResoFT0cTPCtot; centrality; Q_{FT0c} #bullet Q_{TPCtot}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
139+ registry.add (" spReso/hSpResoFT0aFV0a" , " hSpResoFT0aFV0a; centrality; Q_{FT0a} #bullet Q_{FV0a}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
140+ registry.add (" spReso/hSpResoFT0aTPCpos" , " hSpResoFT0aTPCpos; centrality; Q_{FT0a} #bullet Q_{TPCpos}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
141+ registry.add (" spReso/hSpResoFT0aTPCneg" , " hSpResoFT0aTPCneg; centrality; Q_{FT0a} #bullet Q_{TPCneg}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
142+ registry.add (" spReso/hSpResoFT0aTPCtot" , " hSpResoFT0aTPCtot; centrality; Q_{FT0m} #bullet Q_{TPCtot}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
143+ registry.add (" spReso/hSpResoFT0mFV0a" , " hSpResoFT0mFV0a; centrality; Q_{FT0m} #bullet Q_{FV0a}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
144+ registry.add (" spReso/hSpResoFT0mTPCpos" , " hSpResoFT0mTPCpos; centrality; Q_{FT0m} #bullet Q_{TPCpos}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
145+ registry.add (" spReso/hSpResoFT0mTPCneg" , " hSpResoFT0mTPCneg; centrality; Q_{FT0m} #bullet Q_{TPCneg}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
146+ registry.add (" spReso/hSpResoFT0mTPCtot" , " hSpResoFT0mTPCtot; centrality; Q_{FV0a} #bullet Q_{TPCtot}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
147+ registry.add (" spReso/hSpResoFV0aTPCpos" , " hSpResoFV0aTPCpos; centrality; Q_{FV0a} #bullet Q_{TPCpos}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
148+ registry.add (" spReso/hSpResoFV0aTPCneg" , " hSpResoFV0aTPCneg; centrality; Q_{FV0a} #bullet Q_{TPCneg}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
149+ registry.add (" spReso/hSpResoFV0aTPCtot" , " hSpResoFV0aTPCtot; centrality; Q_{FV0a} #bullet Q_{TPCtot}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
150+ registry.add (" spReso/hSpResoTPCposTPCneg" , " hSpResoTPCposTPCneg; centrality; Q_{TPCpos} #bullet Q_{TPCneg}" , {HistType::kTH2F , {thnAxisCent, thnAxisScalarProd}});
151+
152+ if (saveEpResoHisto) {
153+ registry.add (" epReso/hEpResoFT0cFT0a" , " hEpResoFT0cFT0a; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
154+ registry.add (" epReso/hEpResoFT0cFV0a" , " hEpResoFT0cFV0a; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
155+ registry.add (" epReso/hEpResoFT0cTPCpos" , " hEpResoFT0cTPCpos; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
156+ registry.add (" epReso/hEpResoFT0cTPCneg" , " hEpResoFT0cTPCneg; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
157+ registry.add (" epReso/hEpResoFT0cTPCtot" , " hEpResoFT0cTPCtot; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
158+ registry.add (" epReso/hEpResoFT0aFV0a" , " hEpResoFT0aFV0a; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
159+ registry.add (" epReso/hEpResoFT0aTPCpos" , " hEpResoFT0aTPCpos; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
160+ registry.add (" epReso/hEpResoFT0aTPCneg" , " hEpResoFT0aTPCneg; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
161+ registry.add (" epReso/hEpResoFT0aTPCtot" , " hEpResoFT0aTPCtot; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
162+ registry.add (" epReso/hEpResoFT0mFV0a" , " hEpResoFT0mFV0a; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
163+ registry.add (" epReso/hEpResoFT0mTPCpos" , " hEpResoFT0mTPCpos; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
164+ registry.add (" epReso/hEpResoFT0mTPCneg" , " hEpResoFT0mTPCneg; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
165+ registry.add (" epReso/hEpResoFT0mTPCtot" , " hEpResoFT0mTPCtot; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
166+ registry.add (" epReso/hEpResoFV0aTPCpos" , " hEpResoFV0aTPCpos; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
167+ registry.add (" epReso/hEpResoFV0aTPCneg" , " hEpResoFV0aTPCneg; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
168+ registry.add (" epReso/hEpResoFV0aTPCtot" , " hEpResoFV0aTPCtot; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
169+ registry.add (" epReso/hEpResoTPCposTPCneg" , " hEpResoTPCposTPCneg; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
170+ }
148171
149- if (saveEpResoHisto) {
150- registry.add (" epReso/hEpResoFT0cFT0a" , " hEpResoFT0cFT0a; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
151- registry.add (" epReso/hEpResoFT0cFV0a" , " hEpResoFT0cFV0a; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
152- registry.add (" epReso/hEpResoFT0cTPCpos" , " hEpResoFT0cTPCpos; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
153- registry.add (" epReso/hEpResoFT0cTPCneg" , " hEpResoFT0cTPCneg; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
154- registry.add (" epReso/hEpResoFT0cTPCtot" , " hEpResoFT0cTPCtot; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
155- registry.add (" epReso/hEpResoFT0aFV0a" , " hEpResoFT0aFV0a; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
156- registry.add (" epReso/hEpResoFT0aTPCpos" , " hEpResoFT0aTPCpos; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
157- registry.add (" epReso/hEpResoFT0aTPCneg" , " hEpResoFT0aTPCneg; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
158- registry.add (" epReso/hEpResoFT0aTPCtot" , " hEpResoFT0aTPCtot; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
159- registry.add (" epReso/hEpResoFT0mFV0a" , " hEpResoFT0mFV0a; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
160- registry.add (" epReso/hEpResoFT0mTPCpos" , " hEpResoFT0mTPCpos; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
161- registry.add (" epReso/hEpResoFT0mTPCneg" , " hEpResoFT0mTPCneg; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
162- registry.add (" epReso/hEpResoFT0mTPCtot" , " hEpResoFT0mTPCtot; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
163- registry.add (" epReso/hEpResoFV0aTPCpos" , " hEpResoFV0aTPCpos; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
164- registry.add (" epReso/hEpResoFV0aTPCneg" , " hEpResoFV0aTPCneg; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
165- registry.add (" epReso/hEpResoFV0aTPCtot" , " hEpResoFV0aTPCtot; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
166- registry.add (" epReso/hEpResoTPCposTPCneg" , " hEpResoTPCposTPCneg; centrality; #Delta#Psi_{sub}" , {HistType::kTH2F , {thnAxisCent, thnAxisCosNPhi}});
172+ hfEvSel.addHistograms (registry); // collision monitoring
173+ ccdb->setURL (ccdbUrl);
174+ ccdb->setCaching (true );
175+ ccdb->setLocalObjectValidityChecking ();
167176 }
168-
169- hfEvSel.addHistograms (registry); // collision monitoring
170- ccdb->setURL (ccdbUrl);
171- ccdb->setCaching (true );
172- ccdb->setLocalObjectValidityChecking ();
173177 }; // end init
174178
175179 // / Compute the Q vector for the candidate's tracks
@@ -352,12 +356,16 @@ struct HfTaskFlowCharmHadrons {
352356 void runFlowAnalysis (CollsWithQvecs::iterator const & collision,
353357 T1 const & candidates)
354358 {
359+ float cent = getCentrality (collision);
360+ if (cent < centralityMin || cent > centralityMax) {
361+ return ;
362+ }
363+
355364 std::vector<float > qVecs = getQvec (collision);
356365 float xQVec = qVecs[0 ];
357366 float yQVec = qVecs[1 ];
358367 float amplQVec = qVecs[2 ];
359368 float evtPl = epHelper.GetEventPlane (xQVec, yQVec, harmonic);
360- float cent = getCentrality (collision);
361369 int nProngs = 3 ;
362370
363371 for (const auto & candidate : candidates) {
0 commit comments