Skip to content

Commit 2ffa4de

Browse files
committed
Adapt flowQC to higher harmonics for updated ep-tables
Fix value
1 parent 8ea52e4 commit 2ffa4de

File tree

1 file changed

+31
-31
lines changed

1 file changed

+31
-31
lines changed

PWGLF/TableProducer/QC/flowQC.cxx

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)