@@ -111,7 +111,7 @@ struct flowQC {
111111 int mRunNumber = 0 ;
112112 float mBz = 0 .f;
113113
114- Configurable<int > cfgHarmonics{ " cfgHarmonics " , 2 , " Harmonics for flow analysis" };
114+ Configurable<float > cfgHarmonic{ " cfgHarmonic " , 2 . f , " Harmonics for flow analysis" };
115115
116116 // Flow analysis
117117 using CollWithEPandQvec = soa::Join<aod::Collisions,
@@ -173,15 +173,15 @@ struct flowQC {
173173
174174 const AxisSpec centAxis{cfgCentralityBins, fmt::format (" {} percentile" , (std::string)centDetectorNames[cfgCentralityEstimator])};
175175
176- const AxisSpec QxAxis{cfgQvecBins, Form (" Q_{%d ,x}" , cfgHarmonics .value )};
177- const AxisSpec QyAxis{cfgQvecBins, Form (" Q_{%d ,y}" , cfgHarmonics .value )};
176+ const AxisSpec QxAxis{cfgQvecBins, Form (" Q_{%.0f ,x}" , cfgHarmonic .value )};
177+ const AxisSpec QyAxis{cfgQvecBins, Form (" Q_{%.0f ,y}" , cfgHarmonic .value )};
178178
179- const AxisSpec NormQxAxis{cfgQvecBins, Form (" #frac{Q_{%d ,x}}{||#vec{Q_{%d }}||}" , cfgHarmonics .value , cfgHarmonics .value )};
180- const AxisSpec NormQyAxis{cfgQvecBins, Form (" #frac{Q_{%d ,y}}{||#vec{Q_{%d }}||}" , cfgHarmonics .value , cfgHarmonics .value )};
179+ const AxisSpec NormQxAxis{cfgQvecBins, Form (" #frac{Q_{%.0f ,x}}{||#vec{Q_{%.0f }}||}" , cfgHarmonic .value , cfgHarmonic .value )};
180+ const AxisSpec NormQyAxis{cfgQvecBins, Form (" #frac{Q_{%.0f ,y}}{||#vec{Q_{%.0f }}||}" , cfgHarmonic .value , cfgHarmonic .value )};
181181
182- const AxisSpec psiAxis{cfgPhiBins, Form (" #psi_{%d }" , cfgHarmonics .value )};
183- const AxisSpec psiCompAxis{cfgPhiBins, Form (" #psi_{%d }^{EP} - #psi_{%d }^{Qvec}" , cfgHarmonics .value , cfgHarmonics .value )};
184- const AxisSpec cosPsiCompAxis{cfgCosPhiBins, Form (" cos[2(#psi_{%d }^{EP} - #psi_{%d }^{Qvec})]" , cfgHarmonics .value , cfgHarmonics .value )};
182+ const AxisSpec psiAxis{cfgPhiBins, Form (" #psi_{%.0f }" , cfgHarmonic .value )};
183+ const AxisSpec psiCompAxis{cfgPhiBins, Form (" #psi_{%.0f }^{EP} - #psi_{%.0f }^{Qvec}" , cfgHarmonic .value , cfgHarmonic .value )};
184+ const AxisSpec cosPsiCompAxis{cfgCosPhiBins, Form (" cos[2(#psi_{%.0f }^{EP} - #psi_{%.0f }^{Qvec})]" , cfgHarmonic .value , cfgHarmonic .value )};
185185
186186 // z vertex histogram
187187 general.add (" hRecVtxZData" , " collision z position" , HistType::kTH1F , {{200 , -20 ., +20 ., " z position (cm)" }});
@@ -205,12 +205,12 @@ struct flowQC {
205205 hDeltaPsi[iMethod][iQvecDet][jQvecDet] = registry->add <TH2>(Form (" hDeltaPsi_%s_%s_%s" , qVecDetectorNames[iQvecDet].c_str (), qVecDetectorNames[jQvecDet].c_str (), suffixes[iMethod].c_str ()), " " , HistType::kTH2F , {centAxis, {cfgDeltaPhiBins, Form (" #psi_{%s} - #psi_{%s}" , qVecDetectorNames[iQvecDet].c_str (), qVecDetectorNames[jQvecDet].c_str ())}});
206206
207207 // Scalar-product histograms
208- auto spLabel = Form (" #vec{Q}_{%d }^{%s} #upoint #vec{Q}_{%d }^{%s}" , cfgHarmonics .value , qVecDetectorNames[iQvecDet].c_str (), cfgHarmonics .value , qVecDetectorNames[jQvecDet].c_str ());
208+ auto spLabel = Form (" #vec{Q}_{%.0f }^{%s} #upoint #vec{Q}_{%.0f }^{%s}" , cfgHarmonic .value , qVecDetectorNames[iQvecDet].c_str (), cfgHarmonic .value , qVecDetectorNames[jQvecDet].c_str ());
209209
210210 hScalarProduct[iMethod][iQvecDet][jQvecDet] = registry->add <TH2>(Form (" hScalarProduct_%s_%s_%s" , qVecDetectorNames[iQvecDet].c_str (), qVecDetectorNames[jQvecDet].c_str (), suffixes[iMethod].c_str ()), " " , HistType::kTH2F , {centAxis, {cfgQvecBins, spLabel}});
211211
212212 // Normalised scalar-product histograms
213- auto normSpLabel = Form (" #frac{#vec{Q}_{%d }^{%s} #upoint #vec{Q}_{%d }^{%s}}{||#vec{Q}_{%d }^{%s}|| ||#vec{Q}_{%d }^{%s}||}" , cfgHarmonics .value , qVecDetectorNames[iQvecDet].c_str (), cfgHarmonics .value , qVecDetectorNames[jQvecDet].c_str (), cfgHarmonics .value , qVecDetectorNames[iQvecDet].c_str (), cfgHarmonics .value , qVecDetectorNames[jQvecDet].c_str ());
213+ auto normSpLabel = Form (" #frac{#vec{Q}_{%.0f }^{%s} #upoint #vec{Q}_{%.0f }^{%s}}{||#vec{Q}_{%.0f }^{%s}|| ||#vec{Q}_{%.0f }^{%s}||}" , cfgHarmonic .value , qVecDetectorNames[iQvecDet].c_str (), cfgHarmonic .value , qVecDetectorNames[jQvecDet].c_str (), cfgHarmonic .value , qVecDetectorNames[iQvecDet].c_str (), cfgHarmonic .value , qVecDetectorNames[jQvecDet].c_str ());
214214
215215 hNormalisedScalarProduct[iMethod][iQvecDet][jQvecDet] = registry->add <TH2>(Form (" hNormalisedScalarProduct_%s_%s_%s" , qVecDetectorNames[iQvecDet].c_str (), qVecDetectorNames[jQvecDet].c_str (), suffixes[iMethod].c_str ()), " " , HistType::kTH2F , {centAxis, {cfgQvecBins, normSpLabel}});
216216 }
@@ -263,52 +263,52 @@ struct flowQC {
263263 // EP method
264264 float QmodFT0A_EP = collision.qFT0A ();
265265 float psiFT0A_EP = collision.psiFT0A ();
266- float QxFT0A_EP = QmodFT0A_EP * std::cos (2 * psiFT0A_EP);
267- float QyFT0A_EP = QmodFT0A_EP * std::sin (2 * psiFT0A_EP);
266+ float QxFT0A_EP = QmodFT0A_EP * std::cos (cfgHarmonic. value * psiFT0A_EP);
267+ float QyFT0A_EP = QmodFT0A_EP * std::sin (cfgHarmonic. value * psiFT0A_EP);
268268
269269 float QmodFT0C_EP = collision.qFT0C ();
270270 float psiFT0C_EP = collision.psiFT0C ();
271- float QxFT0C_EP = QmodFT0C_EP * std::cos (2 * psiFT0C_EP);
272- float QyFT0C_EP = QmodFT0C_EP * std::sin (2 * psiFT0C_EP);
271+ float QxFT0C_EP = QmodFT0C_EP * std::cos (cfgHarmonic. value * psiFT0C_EP);
272+ float QyFT0C_EP = QmodFT0C_EP * std::sin (cfgHarmonic. value * psiFT0C_EP);
273273
274274 float QmodTPCl_EP = collision.qTPCL ();
275275 float psiTPCl_EP = collision.psiTPCL ();
276- float QxTPCl_EP = QmodTPCl_EP * std::cos (2 * psiTPCl_EP);
277- float QyTPCl_EP = QmodTPCl_EP * std::sin (2 * psiTPCl_EP);
276+ float QxTPCl_EP = QmodTPCl_EP * std::cos (cfgHarmonic. value * psiTPCl_EP);
277+ float QyTPCl_EP = QmodTPCl_EP * std::sin (cfgHarmonic. value * psiTPCl_EP);
278278
279279 float QmodTPCr_EP = collision.qTPCR ();
280280 float psiTPCr_EP = collision.psiTPCR ();
281- float QxTPCr_EP = QmodTPCr_EP * std::cos (2 * psiTPCr_EP);
282- float QyTPCr_EP = QmodTPCr_EP * std::sin (2 * psiTPCr_EP);
281+ float QxTPCr_EP = QmodTPCr_EP * std::cos (cfgHarmonic. value * psiTPCr_EP);
282+ float QyTPCr_EP = QmodTPCr_EP * std::sin (cfgHarmonic. value * psiTPCr_EP);
283283
284284 float QmodTPC_EP = collision.qTPC ();
285285 float psiTPC_EP = collision.psiTPC ();
286- float QxTPC_EP = QmodTPC_EP * std::cos (2 * psiTPC_EP);
287- float QyTPC_EP = QmodTPC_EP * std::sin (2 * psiTPC_EP);
286+ float QxTPC_EP = QmodTPC_EP * std::cos (cfgHarmonic. value * psiTPC_EP);
287+ float QyTPC_EP = QmodTPC_EP * std::sin (cfgHarmonic. value * psiTPC_EP);
288288
289289 // Qvec method
290- float QxFT0A_Qvec = collision.qvecFT0AReVec ()[cfgHarmonics - 2 ];
291- float QyFT0A_Qvec = collision.qvecFT0AImVec ()[cfgHarmonics - 2 ];
290+ float QxFT0A_Qvec = collision.qvecFT0AReVec ()[cfgHarmonic. value - 2 ];
291+ float QyFT0A_Qvec = collision.qvecFT0AImVec ()[cfgHarmonic. value - 2 ];
292292 float QmodFT0A_Qvec = std::hypot (QxFT0A_Qvec, QyFT0A_Qvec);
293293 float psiFT0A_Qvec = computeEventPlane (QyFT0A_Qvec, QxFT0A_Qvec);
294294
295- float QxFT0C_Qvec = collision.qvecFT0CReVec ()[cfgHarmonics - 2 ];
296- float QyFT0C_Qvec = collision.qvecFT0CImVec ()[cfgHarmonics - 2 ];
295+ float QxFT0C_Qvec = collision.qvecFT0CReVec ()[cfgHarmonic. value - 2 ];
296+ float QyFT0C_Qvec = collision.qvecFT0CImVec ()[cfgHarmonic. value - 2 ];
297297 float QmodFT0C_Qvec = std::hypot (QxFT0C_Qvec, QyFT0C_Qvec);
298298 float psiFT0C_Qvec = computeEventPlane (QyFT0C_Qvec, QxFT0C_Qvec);
299299
300- float QxTPCl_Qvec = collision.qvecTPCnegReVec ()[cfgHarmonics - 2 ];
301- float QyTPCl_Qvec = collision.qvecTPCnegImVec ()[cfgHarmonics - 2 ];
300+ float QxTPCl_Qvec = collision.qvecTPCnegReVec ()[cfgHarmonic. value - 2 ];
301+ float QyTPCl_Qvec = collision.qvecTPCnegImVec ()[cfgHarmonic. value - 2 ];
302302 float QmodTPCl_Qvec = std::hypot (QxTPCl_Qvec, QyTPCl_Qvec);
303303 float psiTPCl_Qvec = computeEventPlane (QyTPCl_Qvec, QxTPCl_Qvec);
304304
305- float QxTPCr_Qvec = collision.qvecTPCposReVec ()[cfgHarmonics - 2 ];
306- float QyTPCr_Qvec = collision.qvecTPCposImVec ()[cfgHarmonics - 2 ];
305+ float QxTPCr_Qvec = collision.qvecTPCposReVec ()[cfgHarmonic. value - 2 ];
306+ float QyTPCr_Qvec = collision.qvecTPCposImVec ()[cfgHarmonic. value - 2 ];
307307 float QmodTPCr_Qvec = std::hypot (QxTPCr_Qvec, QyTPCr_Qvec);
308308 float psiTPCr_Qvec = computeEventPlane (QyTPCr_Qvec, QxTPCr_Qvec);
309309
310- float QxTPC_Qvec = collision.qvecTPCallReVec ()[cfgHarmonics - 2 ];
311- float QyTPC_Qvec = collision.qvecTPCallImVec ()[cfgHarmonics - 2 ];
310+ float QxTPC_Qvec = collision.qvecTPCallReVec ()[cfgHarmonic. value - 2 ];
311+ float QyTPC_Qvec = collision.qvecTPCallImVec ()[cfgHarmonic. value - 2 ];
312312 float QmodTPC_Qvec = std::hypot (QxTPC_Qvec, QyTPC_Qvec);
313313 float psiTPC_Qvec = computeEventPlane (QyTPC_Qvec, QxTPC_Qvec);
314314
@@ -340,7 +340,7 @@ struct flowQC {
340340 }
341341 for (int iQvecDet = 0 ; iQvecDet < qVecDetectors::kNqVecDetectors ; iQvecDet++) {
342342 hPsiComp[iQvecDet]->Fill (centrality, vec_Qpsi[methods::kEP ][iQvecDet] - vec_Qpsi[methods::kQvec ][iQvecDet]);
343- hCosPsiComp[iQvecDet]->Fill (centrality, std::cos (2 * (vec_Qpsi[methods::kEP ][iQvecDet] - vec_Qpsi[methods::kQvec ][iQvecDet])));
343+ hCosPsiComp[iQvecDet]->Fill (centrality, std::cos (cfgHarmonic. value * (vec_Qpsi[methods::kEP ][iQvecDet] - vec_Qpsi[methods::kQvec ][iQvecDet])));
344344 }
345345 }
346346};
0 commit comments