first step for error estimation QC{2}
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowCommon / AliFlowAnalysisWithQCumulants.cxx
CommitLineData
bc92c0cb 1/*************************************************************************
2* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
7* Permission to use, copy, modify and distribute this software and its *
8* documentation strictly for non-commercial purposes is hereby granted *
9* without fee, provided that the above copyright notice appears in all *
10* copies and that both the copyright notice and this permission notice *
11* appear in the supporting documentation. The authors make no claims *
12* about the suitability of this software for any purpose. It is *
13* provided "as is" without express or implied warranty. *
14**************************************************************************/
15
16/**********************************
17 * flow analysis with Q-cumulants *
18 * *
19 * author: Ante Bilandzic *
20 * (anteb@nikhef.nl) *
21 *********************************/
22
23#define AliFlowAnalysisWithQCumulants_cxx
24
25#include "Riostream.h"
26#include "AliFlowCommonConstants.h"
27#include "AliFlowCommonHist.h"
28#include "AliFlowCommonHistResults.h"
29#include "TChain.h"
30#include "TFile.h"
1315fe58 31#include "TList.h"
e085f1a9 32#include "TGraph.h"
bc92c0cb 33#include "TParticle.h"
34#include "TRandom3.h"
1315fe58 35#include "TStyle.h"
bc92c0cb 36#include "TProfile.h"
37#include "TProfile2D.h"
38#include "TProfile3D.h"
1dfa3c16 39#include "TMath.h"
e085f1a9 40#include "TArrow.h"
41#include "TPaveLabel.h"
42#include "TCanvas.h"
bc92c0cb 43#include "AliFlowEventSimple.h"
44#include "AliFlowTrackSimple.h"
45#include "AliFlowAnalysisWithQCumulants.h"
3d824203 46#include "TArrayD.h"
bc92c0cb 47#include "TRandom.h"
2bdc5281 48#include "TF1.h"
bc92c0cb 49
50class TH1;
9c1a9547 51class TH2;
bc92c0cb 52class TGraph;
53class TPave;
54class TLatex;
55class TMarker;
56class TRandom3;
57class TObjArray;
58class TList;
59class TCanvas;
60class TSystem;
61class TROOT;
62class AliFlowVector;
63class TVector;
64
65//================================================================================================================
66
67ClassImp(AliFlowAnalysisWithQCumulants)
68
69AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants():
70 fTrack(NULL),
71 fHistList(NULL),
ae733b3b 72 fDiffFlowList(NULL),
03a02aca 73 fWeightsList(NULL),
9c1a9547 74 fResultsList(NULL),
1315fe58 75 fAvMultIntFlowQC(NULL),
bc92c0cb 76 fQvectorComponents(NULL),
1315fe58 77 fDiffFlowResults2ndOrderQC(NULL),
78 fDiffFlowResults4thOrderQC(NULL),
79 fCovariances(NULL),
e085f1a9 80 fQvectorForEachEventX(NULL),//to be removed
81 fQvectorForEachEventY(NULL),//to be removed
bc92c0cb 82 fQCorrelations(NULL),
9c1a9547 83 fQCorrelationsW(NULL),
c365fe76 84 fQCorrectionsCos(NULL),
85 fQCorrectionsSin(NULL),
8842fb2b 86 fQProduct(NULL),
bc92c0cb 87 fDirectCorrelations(NULL),
9c1a9547 88 fDirectCorrelationsW(NULL),
89 fDirectCorrelationsDiffFlow(NULL),
90 fDirectCorrelationsDiffFlowW(NULL),
c365fe76 91 fDirectCorrectionsCos(NULL),
92 fDirectCorrectionsSin(NULL),
2bdc5281 93 fDirectCorrectionsDiffFlowCos(NULL),
94 fDirectCorrectionsDiffFlowSin(NULL),
1dfa3c16 95 f2PerPtBin1n1nPOI(NULL),
1dfa3c16 96 f4PerPtBin1n1n1n1nPOI(NULL),
1dfa3c16 97 f2PerEtaBin1n1nPOI(NULL),
1dfa3c16 98 f4PerEtaBin1n1n1n1nPOI(NULL),
3d824203 99 f2WPerPtBin1n1nPOI(NULL),
3d824203 100 f4WPerPtBin1n1n1n1nPOI(NULL),
3d824203 101 f2WPerEtaBin1n1nPOI(NULL),
102 f4WPerEtaBin1n1n1n1nPOI(NULL),
77515452 103 f2PerPtBin1n1nRP(NULL),
104 f4PerPtBin1n1n1n1nRP(NULL),
105 f2PerEtaBin1n1nRP(NULL),
106 f4PerEtaBin1n1n1n1nRP(NULL),
3d824203 107 f2WPerPtBin1n1nRP(NULL),
108 f4WPerPtBin1n1n1n1nRP(NULL),
3d824203 109 f2WPerEtaBin1n1nRP(NULL),
110 f4WPerEtaBin1n1n1n1nRP(NULL),
cb308e83 111 fCommonHists2nd(NULL),
112 fCommonHists4th(NULL),
113 fCommonHists6th(NULL),
114 fCommonHists8th(NULL),
8842fb2b 115 fCommonHistsResults2nd(NULL),
116 fCommonHistsResults4th(NULL),
117 fCommonHistsResults6th(NULL),
118 fCommonHistsResults8th(NULL),
52021ae2 119 f2pDistribution(NULL),
120 f4pDistribution(NULL),
121 f6pDistribution(NULL),
5e838eeb 122 f8pDistribution(NULL),
8842fb2b 123 fnBinsPt(0),
124 fPtMin(0),
1dfa3c16 125 fPtMax(0),
126 fnBinsEta(0),
127 fEtaMin(0),
e085f1a9 128 fEtaMax(0),
129 fEventCounter(0),
130 fUsePhiWeights(kFALSE),
131 fUsePtWeights(kFALSE),
9c1a9547 132 fUseEtaWeights(kFALSE),
133 fUseWeights(kFALSE),
134 fUseWeightsBits(NULL),
2bdc5281 135
136 // ....................................................
137 // POI:
138 fCorrectionsCosP1nPsiPtEtaPOI(NULL),
139 fCorrectionsSinP1nPsiPtEtaPOI(NULL),
140
141 // RP:
142 fCorrectionsCosP1nPsiPtEtaRP(NULL),
143 fCorrectionsSinP1nPsiPtEtaRP(NULL),
144 // ....................................................
145
9c1a9547 146
147 // ...................................................................................................................
148 // Q_{n,k} and S^M_{n,k}:
149 fReQ(NULL),
150 fImQ(NULL),
151 fSMpk(NULL),
152
153 // q_n and m:
154 fReqnPtEta(NULL),
155 fImqnPtEta(NULL),
156 fmPtEta(NULL),
157
158 // non-weighted q''_{n} and q''_{2n}:
159 fReqPrimePrime1nPtEta(NULL),
160 fImqPrimePrime1nPtEta(NULL),
161 fReqPrimePrime2nPtEta(NULL),
162 fImqPrimePrime2nPtEta(NULL),
163
164 // weighted q''_{n,2k} and q''_{2n,k}:
165 fReqPrimePrime1n2kPtEta(NULL),
166 fImqPrimePrime1n2kPtEta(NULL),
167 fReqPrimePrime2n1kPtEta(NULL),
168 fImqPrimePrime2n1kPtEta(NULL),
169
170 // m''
171 fmPrimePrimePtEta(NULL),
172
173 // S^{m''}_{n,k}
174 fSmPrimePrime1p1kPtEta(NULL),
175 fSmPrimePrime1p2kPtEta(NULL),
176 fSmPrimePrime1p3kPtEta(NULL),
177
178 // non-weighted q_RP{n} and q_RP{2n}:
179 fReqRP1nPtEta(NULL),
180 fImqRP1nPtEta(NULL),
181 fReqRP2nPtEta(NULL),
182 fImqRP2nPtEta(NULL),
183
184 // weighted q_RP{n,2k} and q_RP{2n,k} (for each (pt,eta) bin for RPs)
185 fReqRP1n2kPtEta(NULL),
186 fImqRP1n2kPtEta(NULL),
187 fReqRP2n1kPtEta(NULL),
188 fImqRP2n1kPtEta(NULL),
189
190 // m_RP:
191 fmRPPtEta(NULL), // # of particles which are RPs for each (pt,eta) bin
192
193 // S^{m_RP}_{p,k} (for each (pt,eta) bin for RPs):
194 fSmRP1p1kPtEta(NULL),
195 fSmRP1p2kPtEta(NULL),
196 fSmRP1p3kPtEta(NULL),
197
198 // ----- RESULTS ----
199
c365fe76 200 fFinalCorrectionsForNUA(NULL), // NUA = non-uniform acceptance
201
9c1a9547 202 // non-weighted integrated flow:
203 fIntFlowResultsQC(NULL),
204 fIntFlowResultsPOIQC(NULL),
205 fIntFlowResultsRPQC(NULL),
206
207 // weighted integrated flow:
208 fIntFlowResultsQCW(NULL),
209 fIntFlowResultsPOIQCW(NULL),
210 fIntFlowResultsRPQCW(NULL),
211
212 // non-weighted correlations for each (pt,eta) bin for POIs:
213 f2pPtEtaPOI(NULL),
214 f4pPtEtaPOI(NULL),
215 f6pPtEtaPOI(NULL),
216 f8pPtEtaPOI(NULL),
217
2bdc5281 218 // corrections for non-uniform acceptance to non-weighted correlations for each (pt,eta) bin for POIs:
219 f2pFinalCorrectionsForNUAPtEtaPOI(NULL),
220 f4pFinalCorrectionsForNUAPtEtaPOI(NULL),
221 f6pFinalCorrectionsForNUAPtEtaPOI(NULL),
222 f8pFinalCorrectionsForNUAPtEtaPOI(NULL),
223
224 // corrections for non-uniform acceptance to non-weighted correlations for each (pt) bin for POIs:
225 f2pFinalCorrectionsForNUAPtPOI(NULL),
226 f4pFinalCorrectionsForNUAPtPOI(NULL),
227 f6pFinalCorrectionsForNUAPtPOI(NULL),
228 f8pFinalCorrectionsForNUAPtPOI(NULL),
229
230 // corrections for non-uniform acceptance to non-weighted correlations for each (eta) bin for POIs:
231 f2pFinalCorrectionsForNUAEtaPOI(NULL),
232 f4pFinalCorrectionsForNUAEtaPOI(NULL),
233 f6pFinalCorrectionsForNUAEtaPOI(NULL),
234 f8pFinalCorrectionsForNUAEtaPOI(NULL),
235
9c1a9547 236 // non-weighted final results for differential flow for POIs:
237 // 3D (pt,eta)
238 fvn2ndPtEtaPOI(NULL),
239 fvn4thPtEtaPOI(NULL),
240 fvn6thPtEtaPOI(NULL),
241 fvn8thPtEtaPOI(NULL),
242 // 2D (pt)
243 fvn2ndPtPOI(NULL),
244 fvn4thPtPOI(NULL),
245 fvn6thPtPOI(NULL),
246 fvn8thPtPOI(NULL),
247 // 2D (eta)
248 fvn2ndEtaPOI(NULL),
249 fvn4thEtaPOI(NULL),
250 fvn6thEtaPOI(NULL),
251 fvn8thEtaPOI(NULL),
252
253 // weighted correlations for each (pt,eta) bin for POIs:
254 f2pPtEtaPOIW(NULL),
255 f4pPtEtaPOIW(NULL),
256 f6pPtEtaPOIW(NULL),
257 f8pPtEtaPOIW(NULL),
258
259 // weighted final results for differential flow for POIs:
260 // 3D (pt,eta)
261 fvn2ndPtEtaPOIW(NULL),
262 fvn4thPtEtaPOIW(NULL),
263 fvn6thPtEtaPOIW(NULL),
264 fvn8thPtEtaPOIW(NULL),
265 // 2D (pt)
266 fvn2ndPtPOIW(NULL),
267 fvn4thPtPOIW(NULL),
268 fvn6thPtPOIW(NULL),
269 fvn8thPtPOIW(NULL),
270 // 2D (eta)
271 fvn2ndEtaPOIW(NULL),
272 fvn4thEtaPOIW(NULL),
273 fvn6thEtaPOIW(NULL),
274 fvn8thEtaPOIW(NULL),
275
276 // non-weighted correlations for each (pt,eta) bin for RPs:
277 f2pPtEtaRP(NULL),
278 f4pPtEtaRP(NULL),
279 f6pPtEtaRP(NULL),
280 f8pPtEtaRP(NULL),
281
2bdc5281 282 // corrections for non-uniform acceptance to non-weighted correlations for each (pt,eta) bin for RPs:
283 f2pFinalCorrectionsForNUAPtEtaRP(NULL),
284 f4pFinalCorrectionsForNUAPtEtaRP(NULL),
285 f6pFinalCorrectionsForNUAPtEtaRP(NULL),
286 f8pFinalCorrectionsForNUAPtEtaRP(NULL),
287
288 // corrections for non-uniform acceptance to non-weighted correlations for each (pt) bin for RPs:
289 f2pFinalCorrectionsForNUAPtRP(NULL),
290 f4pFinalCorrectionsForNUAPtRP(NULL),
291 f6pFinalCorrectionsForNUAPtRP(NULL),
292 f8pFinalCorrectionsForNUAPtRP(NULL),
293
294 // corrections for non-uniform acceptance to non-weighted correlations for each (eta) bin for RPs:
295 f2pFinalCorrectionsForNUAEtaRP(NULL),
296 f4pFinalCorrectionsForNUAEtaRP(NULL),
297 f6pFinalCorrectionsForNUAEtaRP(NULL),
298 f8pFinalCorrectionsForNUAEtaRP(NULL),
299
9c1a9547 300 // non-weighted final results for differential flow for RPs:
301 // 3D (pt,eta)
302 fvn2ndPtEtaRP(NULL),
303 fvn4thPtEtaRP(NULL),
304 fvn6thPtEtaRP(NULL),
305 fvn8thPtEtaRP(NULL),
306 // 2D (pt)
307 fvn2ndPtRP(NULL),
308 fvn4thPtRP(NULL),
309 fvn6thPtRP(NULL),
310 fvn8thPtRP(NULL),
311 // 2D (eta)
312 fvn2ndEtaRP(NULL),
313 fvn4thEtaRP(NULL),
314 fvn6thEtaRP(NULL),
315 fvn8thEtaRP(NULL),
316
317 // weighted correlations for each (pt,eta) bin for RPs:
318 f2pPtEtaRPW(NULL),
319 f4pPtEtaRPW(NULL),
320 f6pPtEtaRPW(NULL),
321 f8pPtEtaRPW(NULL),
322
323 // weighted final results for differential flow for RPs:
324 // 3D (pt,eta)
325 fvn2ndPtEtaRPW(NULL),
326 fvn4thPtEtaRPW(NULL),
327 fvn6thPtEtaRPW(NULL),
328 fvn8thPtEtaRPW(NULL),
329 // 2D (pt)
330 fvn2ndPtRPW(NULL),
331 fvn4thPtRPW(NULL),
332 fvn6thPtRPW(NULL),
333 fvn8thPtRPW(NULL),
334 // 2D (eta)
335 fvn2ndEtaRPW(NULL),
336 fvn4thEtaRPW(NULL),
337 fvn6thEtaRPW(NULL),
338 fvn8thEtaRPW(NULL)
339 // ...................................................................................................................
340
bc92c0cb 341{
9c1a9547 342 // constructor
ae733b3b 343 fHistList = new TList();
344 fDiffFlowList = new TList();
345 fDiffFlowList->SetName("DifferentialFlow");
03a02aca 346 fWeightsList = new TList();
ae733b3b 347 fWeightsList->SetName("Weights");
9c1a9547 348 fResultsList = new TList();
349 fResultsList->SetName("Results");
03a02aca 350
8842fb2b 351 fnBinsPt = AliFlowCommonConstants::GetNbinsPt();
352 fPtMin = AliFlowCommonConstants::GetPtMin();
353 fPtMax = AliFlowCommonConstants::GetPtMax();
354
1dfa3c16 355 fnBinsEta = AliFlowCommonConstants::GetNbinsEta();
356 fEtaMin = AliFlowCommonConstants::GetEtaMin();
357 fEtaMax = AliFlowCommonConstants::GetEtaMax();
bc92c0cb 358}
359
360AliFlowAnalysisWithQCumulants::~AliFlowAnalysisWithQCumulants()
361{
03a02aca 362 //destructor
bc92c0cb 363 delete fHistList;
ae733b3b 364 delete fDiffFlowList;
365 delete fWeightsList;
9c1a9547 366 delete fResultsList;
bc92c0cb 367}
368
369//================================================================================================================
370
e085f1a9 371void AliFlowAnalysisWithQCumulants::Init()
bc92c0cb 372{
373 //various output histograms
bc92c0cb 374 //avarage multiplicity
1315fe58 375 fAvMultIntFlowQC = new TProfile("fAvMultIntFlowQC","Average Multiplicity",1,0,1,"s");
376 fAvMultIntFlowQC->SetXTitle("");
377 fAvMultIntFlowQC->SetYTitle("");
378 fAvMultIntFlowQC->SetLabelSize(0.06);
379 fAvMultIntFlowQC->SetMarkerStyle(25);
380 fAvMultIntFlowQC->SetLabelOffset(0.01);
381 (fAvMultIntFlowQC->GetXaxis())->SetBinLabel(1,"Average Multiplicity");
382 fHistList->Add(fAvMultIntFlowQC);
bc92c0cb 383
384 //Q-vector stuff
385 fQvectorComponents = new TProfile("fQvectorComponents","Avarage of Q-vector components",44,0.,44.,"s");
386 fQvectorComponents->SetXTitle("");
387 fQvectorComponents->SetYTitle("");
388 //fHistList->Add(fQvectorComponents);
389
bc92c0cb 390 //final results for differential flow from 2nd order Q-cumulant
8842fb2b 391 fDiffFlowResults2ndOrderQC = new TH1D("fDiffFlowResults2ndOrderQC","Differential Flow from 2nd Order Q-cumulant",fnBinsPt,fPtMin,fPtMax);
1315fe58 392 fDiffFlowResults2ndOrderQC->SetXTitle("p_{t} [GeV]");
393 //fDiffFlowResults2ndOrderQC->SetYTitle("Differential Flow");
394 fHistList->Add(fDiffFlowResults2ndOrderQC);
bc92c0cb 395
396 //final results for differential flow from 4th order Q-cumulant
8842fb2b 397 fDiffFlowResults4thOrderQC = new TH1D("fDiffFlowResults4thOrderQC","Differential Flow from 4th Order Q-cumulant",fnBinsPt,fPtMin,fPtMax);
1315fe58 398 fDiffFlowResults4thOrderQC->SetXTitle("p_{t} [GeV]");
399 //fDiffFlowResults4thOrderQC->SetYTitle("Differential Flow");
400 fHistList->Add(fDiffFlowResults4thOrderQC);
401
402 //final results for covariances (1st bin: <2*4>-<2>*<4>, 2nd bin: <2*6>-<2>*<6>, ...)
403 fCovariances = new TH1D("fCovariances","Covariances",6,0,6);
404 //fCovariances->SetXTitle("");
405 //fCovariances->SetYTitle("<covariance>");
406 fCovariances->SetLabelSize(0.04);
407 fCovariances->SetTickLength(1);
408 fCovariances->SetMarkerStyle(25);
409 (fCovariances->GetXaxis())->SetBinLabel(1,"Cov(2,4)");
410 (fCovariances->GetXaxis())->SetBinLabel(2,"Cov(2,6)");
411 (fCovariances->GetXaxis())->SetBinLabel(3,"Cov(2,8)");
412 (fCovariances->GetXaxis())->SetBinLabel(4,"Cov(4,6)");
413 (fCovariances->GetXaxis())->SetBinLabel(5,"Cov(4,8)");
414 (fCovariances->GetXaxis())->SetBinLabel(6,"Cov(6,8)");
415 fHistList->Add(fCovariances);
bc92c0cb 416
e085f1a9 417 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
418 // !!!! to be removed !!!!
419 //profile containing the x-components of Q-vectors from all events
420 fQvectorForEachEventX = new TProfile("fQvectorForEachEventX","x-components of Q-vectors",44000,1,44000,"s");
421 fHistList->Add(fQvectorForEachEventX);
422
423 //profile containing the y-components of Q-vectors from all events
424 fQvectorForEachEventY = new TProfile("fQvectorForEachEventY","y-components of Q-vectors",44000,1,44000,"s");
425 fHistList->Add(fQvectorForEachEventY);
426 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
427
9c1a9547 428 // multi-particle correlations calculated from Q-vectors
dee1e0e0 429 fQCorrelations = new TProfile("fQCorrelations","multi-particle correlations from Q-vectors",32,0,32,"s");
1315fe58 430 fQCorrelations->SetTickLength(-0.01,"Y");
431 fQCorrelations->SetMarkerStyle(25);
432 fQCorrelations->SetLabelSize(0.03);
433 fQCorrelations->SetLabelOffset(0.01,"Y");
9c1a9547 434 // 2-p:
1315fe58 435 (fQCorrelations->GetXaxis())->SetBinLabel(1,"<<2>>_{n|n}");
436 (fQCorrelations->GetXaxis())->SetBinLabel(2,"<<2>>_{2n|2n}");
437 (fQCorrelations->GetXaxis())->SetBinLabel(3,"<<2>>_{3n|3n}");
438 (fQCorrelations->GetXaxis())->SetBinLabel(4,"<<2>>_{4n|4n}");
9c1a9547 439 // 3-p:
1315fe58 440 (fQCorrelations->GetXaxis())->SetBinLabel(6,"<<3>>_{2n|n,n}");
441 (fQCorrelations->GetXaxis())->SetBinLabel(7,"<<3>>_{3n|2n,n}");
442 (fQCorrelations->GetXaxis())->SetBinLabel(8,"<<3>>_{4n|2n,2n}");
443 (fQCorrelations->GetXaxis())->SetBinLabel(9,"<<3>>_{4n|3n,n}");
9c1a9547 444 // 4-p:
1315fe58 445 (fQCorrelations->GetXaxis())->SetBinLabel(11,"<<4>>_{n,n|n,n}");
446 (fQCorrelations->GetXaxis())->SetBinLabel(12,"<<4>>_{2n,n|2n,n}");
dee1e0e0 447 (fQCorrelations->GetXaxis())->SetBinLabel(13,"<<4>>_{2n,2n|2n,2n}");
448 (fQCorrelations->GetXaxis())->SetBinLabel(14,"<<4>>_{3n|n,n,n}");
449 (fQCorrelations->GetXaxis())->SetBinLabel(15,"<<4>>_{3n,n|3n,n}");
450 (fQCorrelations->GetXaxis())->SetBinLabel(16,"<<4>>_{3n,n|2n,2n}");
451 (fQCorrelations->GetXaxis())->SetBinLabel(17,"<<4>>_{4n|2n,n,n}");
9c1a9547 452 // 5-p:
dee1e0e0 453 (fQCorrelations->GetXaxis())->SetBinLabel(19,"<<5>>_{2n|n,n,n,n}");
454 (fQCorrelations->GetXaxis())->SetBinLabel(20,"<<5>>_{2n,2n|2n,n,n}");
455 (fQCorrelations->GetXaxis())->SetBinLabel(21,"<<5>>_{3n,n|2n,n,n}");
456 (fQCorrelations->GetXaxis())->SetBinLabel(22,"<<5>>_{4n|n,n,n,n}");
9c1a9547 457 // 6-p:
dee1e0e0 458 (fQCorrelations->GetXaxis())->SetBinLabel(24,"<<6>>_{n,n,n|n,n,n}");
459 (fQCorrelations->GetXaxis())->SetBinLabel(25,"<<6>>_{2n,n,n|2n,n,n}");
460 (fQCorrelations->GetXaxis())->SetBinLabel(26,"<<6>>_{2n,2n|n,n,n,n}");
461 (fQCorrelations->GetXaxis())->SetBinLabel(27,"<<6>>_{3n,n|n,n,n,n}");
9c1a9547 462 // 7-p:
dee1e0e0 463 (fQCorrelations->GetXaxis())->SetBinLabel(29,"<<7>>_{2n,n,n|n,n,n,n}");
9c1a9547 464 // 8-p:
dee1e0e0 465 (fQCorrelations->GetXaxis())->SetBinLabel(31,"<<8>>_{n,n,n,n|n,n,n,n}");
9c1a9547 466 // add fQCorrelations to the main list:
bc92c0cb 467 fHistList->Add(fQCorrelations);
468
9c1a9547 469 //.........................................................................
3d824203 470 //weighted multi-particle correlations calculated from Q-vectors
9c1a9547 471 fQCorrelationsW = new TProfile("fQCorrelationsW","weighted multi-particle correlations from Q-vectors",200,0,200,"s");
472 fQCorrelationsW->SetTickLength(-0.01,"Y");
473 fQCorrelationsW->SetMarkerStyle(25);
474 fQCorrelationsW->SetLabelSize(0.03);
475 fQCorrelationsW->SetLabelOffset(0.01,"Y");
476 // 2-p:
477 (fQCorrelationsW->GetXaxis())->SetBinLabel(1,"<w_{1}w_{2}cos(n(#phi_{1}-#phi_{2}))>");
478 (fQCorrelationsW->GetXaxis())->SetBinLabel(2,"<w_{1}^{2}w_{2}^{2}cos(2n(#phi_{1}-#phi_{2}))>");
479 (fQCorrelationsW->GetXaxis())->SetBinLabel(3,"<w_{1}^{3}w_{2}^{3}cos(3n(#phi_{1}-#phi_{2}))>");
480 (fQCorrelationsW->GetXaxis())->SetBinLabel(4,"<w_{1}^{4}w_{2}^{4}cos(4n(#phi_{1}-#phi_{2}))>");
481 (fQCorrelationsW->GetXaxis())->SetBinLabel(5,"<w_{1}^{3}w_{2}cos(n(#phi_{1}-#phi_{2}))>");
482 (fQCorrelationsW->GetXaxis())->SetBinLabel(6,"<w_{1}^{2}w_{2}w_{3}cos(n(#phi_{1}-#phi_{2}))>");
483 // 3-p:
484 (fQCorrelationsW->GetXaxis())->SetBinLabel(21,"<w_{1}w_{2}w_{3}^{2}cos(n(2#phi_{1}-#phi_{2}-#phi_{3}))>");
485 // 4-p:
486 (fQCorrelationsW->GetXaxis())->SetBinLabel(41,"<w_{1}w_{2}w_{3}w_{4}cos(n(#phi_{1}+#phi_{2}-#phi_{3}-#phi_{4}))>");
487 // add fQCorrelationsW to the main list:
488 fHistList->Add(fQCorrelationsW);
489 //.........................................................................
3d824203 490
c365fe76 491 //.........................................................................
492 // corrections for non-uniform acceptance (cos terms) calculated from Q-vectors
493 fQCorrectionsCos = new TProfile("fQCorrectionsCos"," corrections for non-uniform acceptance (cos terms)",100,0,100,"s");
494 fQCorrectionsCos->SetTickLength(-0.01,"Y");
495 fQCorrectionsCos->SetMarkerStyle(25);
496 fQCorrectionsCos->SetLabelSize(0.03);
497 fQCorrectionsCos->SetLabelOffset(0.01,"Y");
498 // 1-p:
499 (fQCorrectionsCos->GetXaxis())->SetBinLabel(1,"cos(n(#phi_{1}))>");
500 // 2-p:
501 // 3-p:
3d824203 502
c365fe76 503 // add fQCorrectionsCos to the main list:
504 fHistList->Add(fQCorrectionsCos);
505 //.........................................................................
506
507 // corrections for non-uniform acceptance (cos terms) calculated with nested loops
508 fDirectCorrectionsCos = new TProfile("fDirectCorrectionsCos"," corrections for non-uniform acceptance (cos terms)",100,0,100,"s");
509 fDirectCorrectionsCos->SetTickLength(-0.01,"Y");
510 fDirectCorrectionsCos->SetMarkerStyle(25);
511 fDirectCorrectionsCos->SetLabelSize(0.03);
512 fDirectCorrectionsCos->SetLabelOffset(0.01,"Y");
513 // binned in the samw way as fQCorrectionsCos (see above)
514 // add fDirectCorrectionsCos to the main list:
515 fHistList->Add(fDirectCorrectionsCos);
516
517 //.........................................................................
518 // corrections for non-uniform acceptance (sin terms) calculated from Q-vectors
519 fQCorrectionsSin = new TProfile("fQCorrectionsSin"," corrections for non-uniform acceptance (sin terms)",100,0,100,"s");
520 fQCorrectionsSin->SetTickLength(-0.01,"Y");
521 fQCorrectionsSin->SetMarkerStyle(25);
522 fQCorrectionsSin->SetLabelSize(0.03);
523 fQCorrectionsSin->SetLabelOffset(0.01,"Y");
524 // 1-p:
525 (fQCorrectionsSin->GetXaxis())->SetBinLabel(1,"sin(n(#phi_{1}))>");
526 // 2-p:
527 // 3-p:
528
529 // add fQCorrectionsSin to the main list:
530 fHistList->Add(fQCorrectionsSin);
531 //.........................................................................
532
533 // corrections for non-uniform acceptance (sin terms) calculated with nested loops
534 fDirectCorrectionsSin = new TProfile("fDirectCorrectionsSin"," corrections for non-uniform acceptance (sin terms)",100,0,100,"s");
535 fDirectCorrectionsSin->SetTickLength(-0.01,"Y");
536 fDirectCorrectionsSin->SetMarkerStyle(25);
537 fDirectCorrectionsSin->SetLabelSize(0.03);
538 fDirectCorrectionsSin->SetLabelOffset(0.01,"Y");
539 // binned in the samw way as fQCorrectionsSin (see above)
540 // add fDirectCorrectionsSin to the main list:
2bdc5281 541 fHistList->Add(fDirectCorrectionsSin);
542
543 // corrections for non-uniform acceptance (cos terms) calculated with nested loops (needed for diff. flow)
544 fDirectCorrectionsDiffFlowCos = new TProfile("fDirectCorrectionsDiffFlowCos","corrections for non-uniform acceptance (cos terms) with nested loops",200,0,200,"s");
545 fDirectCorrectionsDiffFlowCos->SetXTitle("");
546 fDirectCorrectionsDiffFlowCos->SetYTitle("corrections");
547 fHistList->Add(fDirectCorrectionsDiffFlowCos);
548
549 // corrections for non-uniform acceptance (sin terms) calculated with nested loops (needed for diff. flow)
550 fDirectCorrectionsDiffFlowSin = new TProfile("fDirectCorrectionsDiffFlowSin","corrections for non-uniform acceptance (sin terms) with nested loops",200,0,200,"s");
551 fDirectCorrectionsDiffFlowSin->SetXTitle("");
552 fDirectCorrectionsDiffFlowSin->SetYTitle("corrections");
553 fHistList->Add(fDirectCorrectionsDiffFlowSin);
c365fe76 554
8842fb2b 555 //average products
556 fQProduct = new TProfile("fQProduct","average of products",6,0,6,"s");
557 fQProduct->SetTickLength(-0.01,"Y");
558 fQProduct->SetMarkerStyle(25);
559 fQProduct->SetLabelSize(0.03);
560 fQProduct->SetLabelOffset(0.01,"Y");
561 (fQProduct->GetXaxis())->SetBinLabel(1,"<<2*4>>");
562 (fQProduct->GetXaxis())->SetBinLabel(2,"<<2*6>>");
563 (fQProduct->GetXaxis())->SetBinLabel(3,"<<2*8>>");
564 (fQProduct->GetXaxis())->SetBinLabel(4,"<<4*6>>");
565 (fQProduct->GetXaxis())->SetBinLabel(5,"<<4*8>>");
566 (fQProduct->GetXaxis())->SetBinLabel(6,"<<6*8>>");
567 fQProduct->SetXTitle("");
568 fQProduct->SetYTitle("");
569 fHistList->Add(fQProduct);
bc92c0cb 570
9c1a9547 571 // multi-particle correlations calculated with nested loops (needed for int. flow)
572 fDirectCorrelations = new TProfile("fDirectCorrelations","multi-particle correlations with nested loops",100,0,100,"s");
bc92c0cb 573 fDirectCorrelations->SetXTitle("");
574 fDirectCorrelations->SetYTitle("correlations");
575 fHistList->Add(fDirectCorrelations);
576
9c1a9547 577 // multi-particle correlations calculated with nested loops (needed for weighted int. flow)
578 fDirectCorrelationsW = new TProfile("fDirectCorrelationsW","multi-particle correlations with nested loops",200,0,200,"s");
579 fDirectCorrelationsW->SetXTitle("");
580 fDirectCorrelationsW->SetYTitle("correlations");
581 fHistList->Add(fDirectCorrelationsW);
582
583 // multi-particle correlations calculated with nested loops (needed for diff. flow)
584 fDirectCorrelationsDiffFlow = new TProfile("fDirectCorrelationsDiffFlow","multi-particle correlations with nested loops",200,0,200,"s");
585 fDirectCorrelationsDiffFlow->SetXTitle("");
586 fDirectCorrelationsDiffFlow->SetYTitle("correlations");
587 fHistList->Add(fDirectCorrelationsDiffFlow);
588
589 // multi-particle correlations calculated with nested loops (needed for weighted diff. flow)
590 fDirectCorrelationsDiffFlowW = new TProfile("fDirectCorrelationsDiffFlowW","multi-particle correlations with nested loops",200,0,200,"s");
591 fDirectCorrelationsDiffFlowW->SetXTitle("");
592 fDirectCorrelationsDiffFlowW->SetYTitle("correlations");
593 fHistList->Add(fDirectCorrelationsDiffFlowW);
594
1dfa3c16 595 //f2PerPtBin1n1nRP
596 f2PerPtBin1n1nRP = new TProfile("f2PerPtBin1n1nRP","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
597 f2PerPtBin1n1nRP->SetXTitle("p_{t} [GeV]");
ae733b3b 598 fDiffFlowList->Add(f2PerPtBin1n1nRP);
1dfa3c16 599
1dfa3c16 600 //f4PerPtBin1n1n1n1nRP
601 f4PerPtBin1n1n1n1nRP = new TProfile("f4PerPtBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
602 f4PerPtBin1n1n1n1nRP->SetXTitle("p_{t} [GeV]");
ae733b3b 603 fDiffFlowList->Add(f4PerPtBin1n1n1n1nRP);
1dfa3c16 604
1dfa3c16 605 //f2PerEtaBin1n1nRP
606 f2PerEtaBin1n1nRP = new TProfile("f2PerEtaBin1n1nRP","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s");
607 f2PerEtaBin1n1nRP->SetXTitle("#eta");
ae733b3b 608 fDiffFlowList->Add(f2PerEtaBin1n1nRP);
1dfa3c16 609
1dfa3c16 610 //f4PerEtaBin1n1n1n1nRP
611 f4PerEtaBin1n1n1n1nRP = new TProfile("f4PerEtaBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
612 f4PerEtaBin1n1n1n1nRP->SetXTitle("#eta");
ae733b3b 613 fDiffFlowList->Add(f4PerEtaBin1n1n1n1nRP);
1dfa3c16 614
1dfa3c16 615 //f2PerPtBin1n1nPOI
616 f2PerPtBin1n1nPOI = new TProfile("f2PerPtBin1n1nPOI","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
4057ba99 617 f2PerPtBin1n1nPOI->SetXTitle("#eta");
ae733b3b 618 fDiffFlowList->Add(f2PerPtBin1n1nPOI);
1dfa3c16 619
1dfa3c16 620 //f4PerPtBin1n1n1n1nPOI
621 f4PerPtBin1n1n1n1nPOI = new TProfile("f4PerPtBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
622 f4PerPtBin1n1n1n1nPOI->SetXTitle("p_{t} [GeV]");
ae733b3b 623 fDiffFlowList->Add(f4PerPtBin1n1n1n1nPOI);
1dfa3c16 624
1dfa3c16 625 //f2PerEtaBin1n1nPOI
626 f2PerEtaBin1n1nPOI = new TProfile("f2PerEtaBin1n1nPOI","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s");
627 f2PerEtaBin1n1nPOI->SetXTitle("#eta");
ae733b3b 628 fDiffFlowList->Add(f2PerEtaBin1n1nPOI);
1dfa3c16 629
1dfa3c16 630 //f4PerEtaBin1n1n1n1nPOI
631 f4PerEtaBin1n1n1n1nPOI = new TProfile("f4PerEtaBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
632 f4PerEtaBin1n1n1n1nPOI->SetXTitle("#eta");
ae733b3b 633 fDiffFlowList->Add(f4PerEtaBin1n1n1n1nPOI);
bc92c0cb 634
3d824203 635 //f2WPerPtBin1n1nPOI
636 f2WPerPtBin1n1nPOI = new TProfile("f2WPerPtBin1n1nPOI","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
637 f2WPerPtBin1n1nPOI->SetXTitle("#pt");
638 fDiffFlowList->Add(f2WPerPtBin1n1nPOI);
639
3d824203 640 //f4WPerPtBin1n1n1n1nPOI
641 f4WPerPtBin1n1n1n1nPOI = new TProfile("f4WPerPtBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
642 f4WPerPtBin1n1n1n1nPOI->SetXTitle("#Pt");
643 fDiffFlowList->Add(f4WPerPtBin1n1n1n1nPOI);
644
3d824203 645 //f2WPerEtaBin1n1nPOI
646 f2WPerEtaBin1n1nPOI = new TProfile("f2WPerEtaBin1n1nPOI","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s");
647 f2WPerEtaBin1n1nPOI->SetXTitle("#eta");
648 fDiffFlowList->Add(f2WPerEtaBin1n1nPOI);
649
650 //f4WPerEtaBin1n1n1n1nPOI
651 f4WPerEtaBin1n1n1n1nPOI = new TProfile("f4WPerEtaBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
652 f4WPerEtaBin1n1n1n1nPOI->SetXTitle("#eta");
653 fDiffFlowList->Add(f4WPerEtaBin1n1n1n1nPOI);
654
3d824203 655 //f2WPerPtBin1n1nRP
656 f2WPerPtBin1n1nRP = new TProfile("f2WPerPtBin1n1nRP","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
657 f2WPerPtBin1n1nRP->SetXTitle("#pt");
658 fDiffFlowList->Add(f2WPerPtBin1n1nRP);
659
660 //f4WPerPtBin1n1n1n1nRP
661 f4WPerPtBin1n1n1n1nRP = new TProfile("f4WPerPtBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
662 f4WPerPtBin1n1n1n1nRP->SetXTitle("#Pt");
663 fDiffFlowList->Add(f4WPerPtBin1n1n1n1nRP);
664
3d824203 665 //f2WPerEtaBin1n1nRP
666 f2WPerEtaBin1n1nRP = new TProfile("f2WPerEtaBin1n1nRP","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s");
667 f2WPerEtaBin1n1nRP->SetXTitle("#eta");
668 fDiffFlowList->Add(f2WPerEtaBin1n1nRP);
669
670 //f4WPerEtaBin1n1n1n1nRP
671 f4WPerEtaBin1n1n1n1nRP = new TProfile("f4WPerEtaBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
672 f4WPerEtaBin1n1n1n1nRP->SetXTitle("#eta");
673 fDiffFlowList->Add(f4WPerEtaBin1n1n1n1nRP);
674
cb308e83 675 //common control histogram (2nd order)
676 fCommonHists2nd = new AliFlowCommonHist("AliFlowCommonHist2ndOrderQC");
677 fHistList->Add(fCommonHists2nd);
1315fe58 678
cb308e83 679 //common control histogram (4th order)
680 fCommonHists4th = new AliFlowCommonHist("AliFlowCommonHist4thOrderQC");
681 fHistList->Add(fCommonHists4th);
682
683 //common control histogram (6th order)
684 fCommonHists6th = new AliFlowCommonHist("AliFlowCommonHist6thOrderQC");
685 fHistList->Add(fCommonHists6th);
686
687 //common control histogram (8th order)
688 fCommonHists8th = new AliFlowCommonHist("AliFlowCommonHist8thOrderQC");
689 fHistList->Add(fCommonHists8th);
4057ba99 690
8842fb2b 691 //common histograms for final results (2nd order)
1315fe58 692 fCommonHistsResults2nd = new AliFlowCommonHistResults("AliFlowCommonHistResults2ndOrderQC");
693 fHistList->Add(fCommonHistsResults2nd);
694
8842fb2b 695 //common histograms for final results (4th order)
1315fe58 696 fCommonHistsResults4th = new AliFlowCommonHistResults("AliFlowCommonHistResults4thOrderQC");
697 fHistList->Add(fCommonHistsResults4th);
698
8842fb2b 699 //common histograms for final results (6th order)
1315fe58 700 fCommonHistsResults6th = new AliFlowCommonHistResults("AliFlowCommonHistResults6thOrderQC");
701 fHistList->Add(fCommonHistsResults6th);
702
8842fb2b 703 //common histograms for final results (8th order)
1315fe58 704 fCommonHistsResults8th = new AliFlowCommonHistResults("AliFlowCommonHistResults8thOrderQC");
705 fHistList->Add(fCommonHistsResults8th);
1315fe58 706
707 //weighted <2>_{n|n} distribution
52021ae2 708 f2pDistribution = new TH1D("f2pDistribution","<2>_{n|n} distribution",100000,-0.02,0.1);
709 f2pDistribution->SetXTitle("<2>_{n|n}");
710 f2pDistribution->SetYTitle("Counts");
711 fHistList->Add(f2pDistribution);
1315fe58 712
713 //weighted <4>_{n,n|n,n} distribution
52021ae2 714 f4pDistribution = new TH1D("f4pDistribution","<4>_{n,n|n,n} distribution",100000,-0.00025,0.002);
715 f4pDistribution->SetXTitle("<4>_{n,n|n,n}");
716 f4pDistribution->SetYTitle("Counts");
717 fHistList->Add(f4pDistribution);
1315fe58 718
719 //weighted <6>_{n,n,n|n,n,n} distribution
52021ae2 720 f6pDistribution = new TH1D("f6pDistribution","<6>_{n,n,n|n,n,n} distribution",100000,-0.000005,0.000025);
721 f6pDistribution->SetXTitle("<6>_{n,n,n|n,n,n}");
722 f6pDistribution->SetYTitle("Counts");
723 fHistList->Add(f6pDistribution);
bc92c0cb 724
5e838eeb 725 //weighted <8>_{n,n,n,n|n,n,n,n} distribution
726 f8pDistribution = new TH1D("f8pDistribution","<8>_{n,n,n,n|n,n,n,n} distribution",100000,-0.000000001,0.00000001);
727 f8pDistribution->SetXTitle("<8>_{n,n,n,n|n,n,n,n}");
728 f8pDistribution->SetYTitle("Counts");
729 fHistList->Add(f8pDistribution);
ae733b3b 730
2bdc5281 731 // .......................................................................................................................................
732 // POI:
733 // <<cos n(psi1>> for POIs:
734 fCorrectionsCosP1nPsiPtEtaPOI = new TProfile2D("fCorrectionsCosP1nPsiPtEtaPOI","<<cos n(#psi_{1})>> (p_{t},#eta) for POIs",
735 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
736 fCorrectionsCosP1nPsiPtEtaPOI->SetXTitle("p_{t}");
737 fCorrectionsCosP1nPsiPtEtaPOI->SetYTitle("#eta");
738 fDiffFlowList->Add(fCorrectionsCosP1nPsiPtEtaPOI);
ae733b3b 739
2bdc5281 740 // <<sin n(psi1>> for POIs:
741 fCorrectionsSinP1nPsiPtEtaPOI = new TProfile2D("fCorrectionsSinP1nPsiPtEtaPOI","<<Sin n(#psi_{1})>> (p_{t},#eta) for POIs",
742 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
743 fCorrectionsSinP1nPsiPtEtaPOI->SetXTitle("p_{t}");
744 fCorrectionsSinP1nPsiPtEtaPOI->SetYTitle("#eta");
745 fDiffFlowList->Add(fCorrectionsSinP1nPsiPtEtaPOI);
03a02aca 746
ae733b3b 747
bc92c0cb 748
ae733b3b 749
2bdc5281 750 // RP:
751 // <<cos n(psi1>> for RPs:
752 fCorrectionsCosP1nPsiPtEtaRP = new TProfile2D("fCorrectionsCosP1nPsiPtEtaRP","<<cos n(#psi_{1})>> (p_{t},#eta) for RPs",
753 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
754 fCorrectionsCosP1nPsiPtEtaRP->SetXTitle("p_{t}");
755 fCorrectionsCosP1nPsiPtEtaRP->SetYTitle("#eta");
756 fDiffFlowList->Add(fCorrectionsCosP1nPsiPtEtaRP);
ae733b3b 757
2bdc5281 758 // <<sin n(psi1>> for RPs:
759 fCorrectionsSinP1nPsiPtEtaRP = new TProfile2D("fCorrectionsSinP1nPsiPtEtaRP","<<Sin n(#psi_{1})>> (p_{t},#eta) for RPs",
760 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
761 fCorrectionsSinP1nPsiPtEtaRP->SetXTitle("p_{t}");
762 fCorrectionsSinP1nPsiPtEtaRP->SetYTitle("#eta");
763 fDiffFlowList->Add(fCorrectionsSinP1nPsiPtEtaRP);
764 // .......................................................................................................................................
ae733b3b 765
9c1a9547 766 // .......................................................................................................................................
767 // Q_{n,k} and S^M_{n,k}:
768 fReQ = new TMatrixD(4,9);
769 fImQ = new TMatrixD(4,9);
770 fSMpk = new TMatrixD(8,9);
ae733b3b 771
9c1a9547 772 // q'_{n}:
773 fReqnPtEta = new TH2D("fReqnPtEta","Re[q_{n}(p_{t},#eta)]",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
774 fImqnPtEta = new TH2D("fImqnPtEta","Im[q_{n}(p_{t},#eta)]",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
775 fmPtEta = new TH2D("fmPtEta","m(p_{t},#eta)",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
bc92c0cb 776
9c1a9547 777 // non-weighted q''_{n} and q''_{2n}:
778 fReqPrimePrime1nPtEta = new TH2D("fReqPrimePrime1nPtEta","Re[q''_{n}(p_{t},#eta)]",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
779 fImqPrimePrime1nPtEta = new TH2D("fImqPrimePrime1nPtEta","Im[q''_{n}(p_{t},#eta)]",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
780 fReqPrimePrime2nPtEta = new TH2D("fReqPrimePrime2nPtEta","Re[q''_{2n}(p_{t},#eta)]",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
781 fImqPrimePrime2nPtEta = new TH2D("fImqPrimePrime2nPtEta","Im[q''_{2n}(p_{t},#eta)]",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
782
783 // weighted q''_{n,2k} and q''_{2n,k}:
784 fReqPrimePrime1n2kPtEta = new TH2D("fReqPrimePrime1n2kPtEta","Re[q''_{n,2}(p_{t},#eta)]",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
785 fImqPrimePrime1n2kPtEta = new TH2D("fImqPrimePrime1n2kPtEta","Im[q''_{n,2}(p_{t},#eta)]",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
786 fReqPrimePrime2n1kPtEta = new TH2D("fReqPrimePrime2n1kPtEta","Re[q''_{2n,1(p_{t},#eta)}]",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
787 fImqPrimePrime2n1kPtEta = new TH2D("fImqPrimePrime2n1kPtEta","Im[q''_{2n,1}(p_{t},#eta)]",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1dfa3c16 788
9c1a9547 789 // m'':
790 fmPrimePrimePtEta = new TH2D("fmPrimePrimePtEta","m''(p_{t},#eta)",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
bc92c0cb 791
9c1a9547 792 // S^{m''}_{p,k}:
793 fSmPrimePrime1p1kPtEta = new TH2D("fSmPrimePrime1p1kPtEta","S^{m''}_{1,1}(p_{t},#eta)",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
794 fSmPrimePrime1p2kPtEta = new TH2D("fSmPrimePrime1p2kPtEta","S^{m''}_{1,2}(p_{t},#eta)",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
795 fSmPrimePrime1p3kPtEta = new TH2D("fSmPrimePrime1p3kPtEta","S^{m''}_{1,3}(p_{t},#eta)",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
796
797 // non-weighted q_RP{n} and q_RP{2n}:
798 fReqRP1nPtEta = new TH2D("fReqRP1nPtEta","Re[q_{n}(p_{t},#eta)] for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
799 fImqRP1nPtEta = new TH2D("fImqRP1nPtEta","Im[q_{n}(p_{t},#eta)] for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
800 fReqRP2nPtEta = new TH2D("fReqRP2nPtEta","Re[q_{2n}(p_{t},#eta)] for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
801 fImqRP2nPtEta = new TH2D("fImqRP2nPtEta","Im[q_{2n}(p_{t},#eta)] for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
bc92c0cb 802
9c1a9547 803 // weighted q_RP{n,2k} and q_RP{2n,k}:
804 fReqRP1n2kPtEta = new TH2D("fReqRP1n2kPtEta","Re[q_{n,2}(p_{t},#eta)] for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
805 fImqRP1n2kPtEta = new TH2D("fImqRP1n2kPtEta","Im[q_{n,2}(p_{t},#eta)] for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
806 fReqRP2n1kPtEta = new TH2D("fReqRP2n1kPtEta","Re[q_{2n,1(p_{t},#eta)}] for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
807 fImqRP2n1kPtEta = new TH2D("fImqRP2n1kPtEta","Im[q_{2n,1}(p_{t},#eta)] for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
cb308e83 808
9c1a9547 809 // mRP:
810 fmRPPtEta = new TH2D("fmRPPtEta","m(p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
dee1e0e0 811
9c1a9547 812 // S^{mRP}_{p,k}:
813 fSmRP1p1kPtEta = new TH2D("fSmRP1p1kPtEta","S^{m}_{1,1}(p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
814 fSmRP1p2kPtEta = new TH2D("fSmRP1p2kPtEta","S^{m}_{1,2}(p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
815 fSmRP1p3kPtEta = new TH2D("fSmRP1p3kPtEta","S^{m}_{1,3}(p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
dee1e0e0 816
9c1a9547 817 // ----- RESULTS ----
dee1e0e0 818
c365fe76 819 // final corrections for non-uniform acceptance for QC{2}, QC{4}, QC{6} and QC{8}:
820 fFinalCorrectionsForNUA = new TH1D("fFinalCorrectionsForNUA","Corrections for non-uniform acceptance to Q-cumulants",4,0,4);
821 fFinalCorrectionsForNUA->SetLabelSize(0.06);
822 fFinalCorrectionsForNUA->SetMarkerStyle(25);
823 (fFinalCorrectionsForNUA->GetXaxis())->SetBinLabel(1,"QC{2}");
824 (fFinalCorrectionsForNUA->GetXaxis())->SetBinLabel(2,"QC{4}");
825 (fFinalCorrectionsForNUA->GetXaxis())->SetBinLabel(3,"QC{6}");
826 (fFinalCorrectionsForNUA->GetXaxis())->SetBinLabel(4,"QC{8}");
827 fResultsList->Add(fFinalCorrectionsForNUA);
828
9c1a9547 829 // final results for non-weighted no-name integrated flow:
830 fIntFlowResultsQC = new TH1D("fIntFlowResultsQC","Integrated Flow from Q-cumulants",4,0,4);
831 fIntFlowResultsQC->SetLabelSize(0.06);
832 fIntFlowResultsQC->SetMarkerStyle(25);
833 (fIntFlowResultsQC->GetXaxis())->SetBinLabel(1,"v_{n}{2}");
834 (fIntFlowResultsQC->GetXaxis())->SetBinLabel(2,"v_{n}{4}");
835 (fIntFlowResultsQC->GetXaxis())->SetBinLabel(3,"v_{n}{6}");
836 (fIntFlowResultsQC->GetXaxis())->SetBinLabel(4,"v_{n}{8}");
837 fResultsList->Add(fIntFlowResultsQC);
838
839 // final results for non-weighted POIs integrated flow:
840 fIntFlowResultsPOIQC = new TH1D("fIntFlowResultsPOIQC","Integrated Flow (POI) from Q-cumulants",4,0,4);
841 fIntFlowResultsPOIQC->SetLabelSize(0.06);
842 fIntFlowResultsPOIQC->SetMarkerStyle(25);
843 (fIntFlowResultsPOIQC->GetXaxis())->SetBinLabel(1,"v_{n}{2}");
844 (fIntFlowResultsPOIQC->GetXaxis())->SetBinLabel(2,"v_{n}{4}");
845 (fIntFlowResultsPOIQC->GetXaxis())->SetBinLabel(3,"v_{n}{6}");
846 (fIntFlowResultsPOIQC->GetXaxis())->SetBinLabel(4,"v_{n}{8}");
847 fResultsList->Add(fIntFlowResultsPOIQC);
848
849 // final results for non-weighted RPs integrated flow:
850 fIntFlowResultsRPQC = new TH1D("fIntFlowResultsRPQC","Integrated Flow (RP) from Q-cumulants",4,0,4);
851 fIntFlowResultsRPQC->SetLabelSize(0.06);
852 fIntFlowResultsRPQC->SetMarkerStyle(25);
853 (fIntFlowResultsRPQC->GetXaxis())->SetBinLabel(1,"v_{n}{2}");
854 (fIntFlowResultsRPQC->GetXaxis())->SetBinLabel(2,"v_{n}{4}");
855 (fIntFlowResultsRPQC->GetXaxis())->SetBinLabel(3,"v_{n}{6}");
856 (fIntFlowResultsRPQC->GetXaxis())->SetBinLabel(4,"v_{n}{8}");
857 fResultsList->Add(fIntFlowResultsRPQC);
858
859 // final results for weighted no-name integrated flow:
860 fIntFlowResultsQCW = new TH1D("fIntFlowResultsQCW","Integrated Flow from Q-cumulants with Weights",4,0,4);
861 fIntFlowResultsQCW->SetLabelSize(0.06);
862 fIntFlowResultsQCW->SetMarkerStyle(25);
863 (fIntFlowResultsQCW->GetXaxis())->SetBinLabel(1,"v_{n}{2}");
864 (fIntFlowResultsQCW->GetXaxis())->SetBinLabel(2,"v_{n}{4}");
865 (fIntFlowResultsQCW->GetXaxis())->SetBinLabel(3,"v_{n}{6}");
866 (fIntFlowResultsQCW->GetXaxis())->SetBinLabel(4,"v_{n}{8}");
867 fResultsList->Add(fIntFlowResultsQCW);
868
869 // final results for weighted POIs integrated flow:
870 fIntFlowResultsPOIQCW = new TH1D("fIntFlowResultsPOIQCW","Integrated Flow (POI) from Q-cumulants with Weights",4,0,4);
871 fIntFlowResultsPOIQCW->SetLabelSize(0.06);
872 fIntFlowResultsPOIQCW->SetMarkerStyle(25);
873 (fIntFlowResultsPOIQCW->GetXaxis())->SetBinLabel(1,"v_{n}{2}");
874 (fIntFlowResultsPOIQCW->GetXaxis())->SetBinLabel(2,"v_{n}{4}");
875 (fIntFlowResultsPOIQCW->GetXaxis())->SetBinLabel(3,"v_{n}{6}");
876 (fIntFlowResultsPOIQCW->GetXaxis())->SetBinLabel(4,"v_{n}{8}");
877 fResultsList->Add(fIntFlowResultsPOIQCW);
878
879 // final results for weighted RPs integrated flow:
880 fIntFlowResultsRPQCW = new TH1D("fIntFlowResultsRPQCW","Integrated Flow (RP) from Q-cumulants with Weights",4,0,4);
881 fIntFlowResultsRPQCW->SetLabelSize(0.06);
882 fIntFlowResultsRPQCW->SetMarkerStyle(25);
883 (fIntFlowResultsRPQCW->GetXaxis())->SetBinLabel(1,"v_{n}{2}");
884 (fIntFlowResultsRPQCW->GetXaxis())->SetBinLabel(2,"v_{n}{4}");
885 (fIntFlowResultsRPQCW->GetXaxis())->SetBinLabel(3,"v_{n}{6}");
886 (fIntFlowResultsRPQCW->GetXaxis())->SetBinLabel(4,"v_{n}{8}");
887 fResultsList->Add(fIntFlowResultsRPQCW);
888
2bdc5281 889 // <<cos n(psi1-phi2)>> for POIs:
890 f2pPtEtaPOI = new TProfile2D("f2pPtEtaPOI","<<cos n(#psi_{1}-#phi_{2})>> (p_{t},#eta) for POIs",
9c1a9547 891 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
892 f2pPtEtaPOI->SetXTitle("p_{t}");
893 f2pPtEtaPOI->SetYTitle("#eta");
894 fDiffFlowList->Add(f2pPtEtaPOI);
895
2bdc5281 896 // <<cos n(psi1+phi2-phi3-phi4)>> for POIs:
897 f4pPtEtaPOI = new TProfile2D("f4pPtEtaPOI","<<cos n(#psi_{1}+#phi_{2}-#phi_{3}-#phi_{4})>> (p_{t},#eta) for POIs",
9c1a9547 898 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
899 f4pPtEtaPOI->SetXTitle("p_{t}");
900 f4pPtEtaPOI->SetYTitle("#eta");
901 fDiffFlowList->Add(f4pPtEtaPOI);
902
2bdc5281 903 // <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> for POIs:
904 f6pPtEtaPOI = new TProfile2D("f6pPtEtaPOI","<<cos n(#psi_{1}+#phi_{2}+#phi_{3}-#phi_{4}-#phi_{5}-#phi_{6})>> (p_{t},#eta) for POIs",
9c1a9547 905 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
906 f6pPtEtaPOI->SetXTitle("p_{t}");
907 f6pPtEtaPOI->SetYTitle("#eta");
908 fDiffFlowList->Add(f6pPtEtaPOI);
909
2bdc5281 910 // <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> for POIs:
911 f8pPtEtaPOI = new TProfile2D("f8pPtEtaPOI","<<cos n(#psi_{1}+#phi_{2}+#phi_{3}+#phi_{4}-#phi_{5}-#phi_{6}-#phi_{7}-#phi_{8})>> (p_{t},#eta) for POIs",
9c1a9547 912 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
913 f8pPtEtaPOI->SetXTitle("p_{t}");
914 f8pPtEtaPOI->SetYTitle("#eta");
915 fDiffFlowList->Add(f8pPtEtaPOI);
916
2bdc5281 917 // correction for non-uniform acceptance to <<cos n(psi1-phi2)>> for POIs:
918 f2pFinalCorrectionsForNUAPtEtaPOI = new TH2D("f2pFinalCorrectionsForNUAPtEtaPOI",
919 "correction for NUA to <<cos n(#psi_{1}-#phi_{2})>> (p_{t},#eta) for POIs",
920 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
921 f2pFinalCorrectionsForNUAPtEtaPOI->SetXTitle("p_{t}");
922 f2pFinalCorrectionsForNUAPtEtaPOI->SetYTitle("#eta");
923 fResultsList->Add(f2pFinalCorrectionsForNUAPtEtaPOI);
924
925 // correction for non-uniform acceptance to <<cos n(psi1+phi2-phi3-phi4)>> for POIs:
926 f4pFinalCorrectionsForNUAPtEtaPOI = new TH2D("f4pFinalCorrectionsForNUAPtEtaPOI",
927 "correction for NUA to <<cos n(psi1+phi2-phi3-phi4)>> (p_{t},#eta) for POIs",
928 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
929 f4pFinalCorrectionsForNUAPtEtaPOI->SetXTitle("p_{t}");
930 f4pFinalCorrectionsForNUAPtEtaPOI->SetYTitle("#eta");
931 fResultsList->Add(f4pFinalCorrectionsForNUAPtEtaPOI);
932
933 // correction for non-uniform acceptance to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> for POIs:
934 f6pFinalCorrectionsForNUAPtEtaPOI = new TH2D("f6pFinalCorrectionsForNUAPtEtaPOI",
935 "correction for NUA to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> (p_{t},#eta) for POIs",
936 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
937 f6pFinalCorrectionsForNUAPtEtaPOI->SetXTitle("p_{t}");
938 f6pFinalCorrectionsForNUAPtEtaPOI->SetYTitle("#eta");
939 fResultsList->Add(f6pFinalCorrectionsForNUAPtEtaPOI);
940
941 // correction for non-uniform acceptance to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> for POIs:
942 f8pFinalCorrectionsForNUAPtEtaPOI = new TH2D("f8pFinalCorrectionsForNUAPtEtaPOI",
943 "correction for NUA to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> (p_{t},#eta) for POIs",
944 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
945 f8pFinalCorrectionsForNUAPtEtaPOI->SetXTitle("p_{t}");
946 f8pFinalCorrectionsForNUAPtEtaPOI->SetYTitle("#eta");
947 fResultsList->Add(f8pFinalCorrectionsForNUAPtEtaPOI);
948
949 // correction for non-uniform acceptance to <<cos n(psi1-phi2)>> for POIs:
950 f2pFinalCorrectionsForNUAPtPOI = new TH1D("f2pFinalCorrectionsForNUAPtPOI",
951 "correction for NUA to <<cos n(#psi_{1}-#phi_{2})>> (p_{t}) for POIs",
952 fnBinsPt,fPtMin,fPtMax);
953 f2pFinalCorrectionsForNUAPtPOI->SetXTitle("p_{t}");
954 fResultsList->Add(f2pFinalCorrectionsForNUAPtPOI);
955
956 // correction for non-uniform acceptance to <<cos n(psi1+phi2-phi3-phi4)>> for POIs:
957 f4pFinalCorrectionsForNUAPtPOI = new TH1D("f4pFinalCorrectionsForNUAPtPOI",
958 "correction for NUA to <<cos n(psi1+phi2-phi3-phi4)>> (p_{t}) for POIs",
959 fnBinsPt,fPtMin,fPtMax);
960 f4pFinalCorrectionsForNUAPtPOI->SetXTitle("p_{t}");
961 fResultsList->Add(f4pFinalCorrectionsForNUAPtPOI);
962
963 // correction for non-uniform acceptance to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> for POIs:
964 f6pFinalCorrectionsForNUAPtPOI = new TH1D("f6pFinalCorrectionsForNUAPtPOI",
965 "correction for NUA to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> (p_{t}) for POIs",
966 fnBinsPt,fPtMin,fPtMax);
967 f6pFinalCorrectionsForNUAPtPOI->SetXTitle("p_{t}");
968 fResultsList->Add(f6pFinalCorrectionsForNUAPtPOI);
969
970 // correction for non-uniform acceptance to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> for POIs:
971 f8pFinalCorrectionsForNUAPtPOI = new TH1D("f8pFinalCorrectionsForNUAPtPOI",
972 "correction for NUA to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> (p_{t}) for POIs",
973 fnBinsPt,fPtMin,fPtMax);
974 f8pFinalCorrectionsForNUAPtPOI->SetXTitle("p_{t}");
975 fResultsList->Add(f8pFinalCorrectionsForNUAPtPOI);
976
977 // correction for non-uniform acceEtaance to <<cos n(psi1-phi2)>> for POIs:
978 f2pFinalCorrectionsForNUAEtaPOI = new TH1D("f2pFinalCorrectionsForNUAEtaPOI",
979 "correction for NUA to <<cos n(#psi_{1}-#phi_{2})>> (#eta) for POIs",
980 fnBinsEta,fEtaMin,fEtaMax);
981 f2pFinalCorrectionsForNUAEtaPOI->SetXTitle("#eta");
982 fResultsList->Add(f2pFinalCorrectionsForNUAEtaPOI);
983
984 // correction for non-uniform acceEtaance to <<cos n(psi1+phi2-phi3-phi4)>> for POIs:
985 f4pFinalCorrectionsForNUAEtaPOI = new TH1D("f4pFinalCorrectionsForNUAEtaPOI",
986 "correction for NUA to <<cos n(psi1+phi2-phi3-phi4)>> (#eta) for POIs",
987 fnBinsEta,fEtaMin,fEtaMax);
988 f4pFinalCorrectionsForNUAEtaPOI->SetXTitle("#eta");
989 fResultsList->Add(f4pFinalCorrectionsForNUAEtaPOI);
990
991 // correction for non-uniform acceEtaance to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> for POIs:
992 f6pFinalCorrectionsForNUAEtaPOI = new TH1D("f6pFinalCorrectionsForNUAEtaPOI",
993 "correction for NUA to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> (#eta) for POIs",
994 fnBinsEta,fEtaMin,fEtaMax);
995 f6pFinalCorrectionsForNUAEtaPOI->SetXTitle("#eta");
996 fResultsList->Add(f6pFinalCorrectionsForNUAEtaPOI);
997
998 // correction for non-uniform acceEtaance to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> for POIs:
999 f8pFinalCorrectionsForNUAEtaPOI = new TH1D("f8pFinalCorrectionsForNUAEtaPOI",
1000 "correction for NUA to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> (#eta) for POIs",
1001 fnBinsEta,fEtaMin,fEtaMax);
1002 f8pFinalCorrectionsForNUAEtaPOI->SetXTitle("#eta");
1003 fResultsList->Add(f8pFinalCorrectionsForNUAEtaPOI);
1004
1005
9c1a9547 1006 // non-weighted v'_{n}{2,QC} (pt,eta) for POIs
1007 fvn2ndPtEtaPOI = new TH2D("fvn2ndPtEtaPOI","v'_{n}{2,QC} (p_{t},#eta) for POIs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1008 fvn2ndPtEtaPOI->SetXTitle("p_{t}");
1009 fvn2ndPtEtaPOI->SetYTitle("#eta");
1010 fResultsList->Add(fvn2ndPtEtaPOI);
1011
1012 // non-weighted v'_{n}{4,QC} (pt,eta) for POIs
1013 fvn4thPtEtaPOI = new TH2D("fvn4thPtEtaPOI","v'_{n}{4,QC} (p_{t},#eta) for POIs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1014 fvn4thPtEtaPOI->SetXTitle("p_{t}");
1015 fvn4thPtEtaPOI->SetYTitle("#eta");
1016 fResultsList->Add(fvn4thPtEtaPOI);
1017
1018 // non-weighted v'_{n}{6,QC} (pt,eta) for POIs
1019 fvn6thPtEtaPOI = new TH2D("fvn6thPtEtaPOI","v'_{n}{6,QC} (p_{t},#eta) for POIs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1020 fvn6thPtEtaPOI->SetXTitle("p_{t}");
1021 fvn6thPtEtaPOI->SetYTitle("#eta");
1022 fResultsList->Add(fvn6thPtEtaPOI);
1023
1024 // non-weighted v'_{n}{8,QC} (pt,eta) for POIs
1025 fvn8thPtEtaPOI = new TH2D("fvn8thPtEtaPOI","v'_{n}{8,QC} (p_{t},#eta) for POIs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1026 fvn8thPtEtaPOI->SetXTitle("p_{t}");
1027 fvn8thPtEtaPOI->SetYTitle("#eta");
1028 fResultsList->Add(fvn8thPtEtaPOI);
1029
1030 // non-weighted v'_{n}{2,QC} (pt) for POIs
1031 fvn2ndPtPOI = new TH1D("fvn2ndPtPOI","v'_{n}{2,QC} (p_{t}) for POIs",fnBinsPt,fPtMin,fPtMax);
1032 fvn2ndPtPOI->SetXTitle("p_{t}");
1033 fResultsList->Add(fvn2ndPtPOI);
1034
1035 // non-weighted v'_{n}{4,QC} (pt) for POIs
1036 fvn4thPtPOI = new TH1D("fvn4thPtPOI","v'_{n}{4,QC} (p_{t}) for POIs",fnBinsPt,fPtMin,fPtMax);
1037 fvn4thPtPOI->SetXTitle("p_{t}");
1038 fvn4thPtPOI->SetYTitle("#eta");
1039 fResultsList->Add(fvn4thPtPOI);
1040
1041 // non-weighted v'_{n}{6,QC} (pt) for POIs
1042 fvn6thPtPOI = new TH1D("fvn6thPtPOI","v'_{n}{6,QC} (p_{t}) for POIs",fnBinsPt,fPtMin,fPtMax);
1043 fvn6thPtPOI->SetXTitle("p_{t}");
1044 fResultsList->Add(fvn6thPtPOI);
1045
1046 // non-weighted v'_{n}{8,QC} (pt) for POIs
1047 fvn8thPtPOI = new TH1D("fvn8thPtPOI","v'_{n}{8,QC} (p_{t}) for POIs",fnBinsPt,fPtMin,fPtMax);
1048 fvn8thPtPOI->SetXTitle("p_{t}");
1049 fResultsList->Add(fvn8thPtPOI);
1050
1051 // non-weighted v'_{n}{2,QC} (eta) for POIs
1052 fvn2ndEtaPOI = new TH1D("fvn2ndEtaPOI","v'_{n}{2,QC} (#eta) for POIs",fnBinsEta,fEtaMin,fEtaMax);
1053 fvn2ndEtaPOI->SetXTitle("#eta");
1054 fResultsList->Add(fvn2ndEtaPOI);
1055
1056 // non-weighted v'_{n}{4,QC} (eta) for POIs
1057 fvn4thEtaPOI = new TH1D("fvn4thEtaPOI","v'_{n}{4,QC} (#eta) for POIs",fnBinsEta,fEtaMin,fEtaMax);
1058 fvn4thEtaPOI->SetXTitle("#eta");
1059 fResultsList->Add(fvn4thEtaPOI);
1060
1061 // non-weighted v'_{n}{6,QC} (eta) for POIs
1062 fvn6thEtaPOI = new TH1D("fvn6thEtaPOI","v'_{n}{6,QC} (#eta) for POIs",fnBinsEta,fEtaMin,fEtaMax);
1063 fvn6thEtaPOI->SetXTitle("#eta");
1064 fResultsList->Add(fvn6thEtaPOI);
1065
1066 // non-weighted v'_{n}{8,QC} (eta) for POIs
1067 fvn8thEtaPOI = new TH1D("fvn8thEtaPOI","v'_{n}{8,QC} (#eta) for POIs",fnBinsEta,fEtaMin,fEtaMax);
1068 fvn8thEtaPOI->SetXTitle("p_{t}");
1069 fResultsList->Add(fvn8thEtaPOI);
1070
1071 // <w2 cos n(psi1-phi2)> for POIs:
1072 f2pPtEtaPOIW = new TProfile2D("f2pPtEtaPOIW","<w_{2} cos n(#psi_{1}-#phi_{2})> (p_{t},#eta) for POIs",
1073 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1074 f2pPtEtaPOIW->SetXTitle("p_{t}");
1075 fDiffFlowList->Add(f2pPtEtaPOIW);
1076
1077 // <w2 w3 w4 cos n(psi1+phi2-phi3-phi4)> for POIs:
1078 f4pPtEtaPOIW = new TProfile2D("f4pPtEtaPOIW","<w_{2}w_{3}w_{4} cos n(#psi_{1}+#phi_{2}-#phi_{3}-#phi_{4})> (p_{t},#eta) for POIs",
1079 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1080 f4pPtEtaPOIW->SetXTitle("p_{t}");
1081 fDiffFlowList->Add(f4pPtEtaPOIW);
1082
1083 // <w2 w3 w4 w5 w6 cos n(psi1+phi2+phi3-phi4-phi5-phi6)> for POIs:
1084 f6pPtEtaPOIW = new TProfile2D("f6pPtEtaPOIW","<w_{2}w_{3}w_{4}w_{5}w_{6} cos n(#psi_{1}+#phi_{2}+#phi_{3}-#phi_{4}-#phi_{5}-#phi_{6})> (p_{t},#eta) for POIs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1085 f6pPtEtaPOIW->SetXTitle("p_{t}");
1086 fDiffFlowList->Add(f6pPtEtaPOIW);
1087
1088 // <w2 w3 w4 w5 w6 w7 w8 cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)> for POIs:
1089 f8pPtEtaPOIW = new TProfile2D("f8pPtEtaPOIW","<w_{2}w_{3}w_{4}w_{5}w_{6}w_{7}w_{8} cos n(#psi_{1}+#phi_{2}+#phi_{3}+#phi_{4}-#phi_{5}-#phi_{6}-#phi_{7}-#phi_{8})> (p_{t},#eta) for POIs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1090 f8pPtEtaPOIW->SetXTitle("p_{t}");
1091 f8pPtEtaPOIW->SetYTitle("#eta");
1092 fDiffFlowList->Add(f8pPtEtaPOIW);
1093
1094 // weighted v'_{n}{2,QC} (pt,eta) for POIs
1095 fvn2ndPtEtaPOIW = new TH2D("fvn2ndPtEtaPOIW","weighted v'_{n}{2,QC} (p_{t},#eta) for POIs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1096 fvn2ndPtEtaPOIW->SetXTitle("p_{t}");
1097 fvn2ndPtEtaPOIW->SetYTitle("#eta");
1098 fResultsList->Add(fvn2ndPtEtaPOIW);
1099
1100 // weighted v'_{n}{4,QC} (pt,eta) for POIs
1101 fvn4thPtEtaPOIW = new TH2D("fvn4thPtEtaPOIW","weighted v'_{n}{4,QC} (p_{t},#eta) for POIs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1102 fvn4thPtEtaPOIW->SetXTitle("p_{t}");
1103 fvn4thPtEtaPOIW->SetYTitle("#eta");
1104 fResultsList->Add(fvn4thPtEtaPOIW);
1105
1106 // weighted v'_{n}{6,QC} (pt,eta) for POIs
1107 fvn6thPtEtaPOIW = new TH2D("fvn6thPtEtaPOIW","weighted v'_{n}{6,QC} (p_{t},#eta) for POIs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1108 fvn6thPtEtaPOIW->SetXTitle("p_{t}");
1109 fvn6thPtEtaPOIW->SetYTitle("#eta");
1110 fResultsList->Add(fvn6thPtEtaPOIW);
1111
1112 // weighted v'_{n}{8,QC} (pt,eta) for POIs
1113 fvn8thPtEtaPOIW = new TH2D("fvn8thPtEtaPOIW","weighted v'_{n}{8,QC} (p_{t},#eta) for POIs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1114 fvn8thPtEtaPOIW->SetXTitle("p_{t}");
1115 fvn8thPtEtaPOIW->SetYTitle("#eta");
1116 fResultsList->Add(fvn8thPtEtaPOIW);
1117
1118 // weighted v'_{n}{2,QC} (pt) for POIs
1119 fvn2ndPtPOIW = new TH1D("fvn2ndPtPOIW","weighted v'_{n}{2,QC} (p_{t}) for POIs",fnBinsPt,fPtMin,fPtMax);
1120 fvn2ndPtPOIW->SetXTitle("p_{t}");
1121 fResultsList->Add(fvn2ndPtPOIW);
1122
1123 // weighted v'_{n}{4,QC} (pt) for POIs
1124 fvn4thPtPOIW = new TH1D("fvn4thPtPOIW","weighted v'_{n}{4,QC} (p_{t}) for POIs",fnBinsPt,fPtMin,fPtMax);
1125 fvn4thPtPOIW->SetXTitle("p_{t}");
1126 fResultsList->Add(fvn4thPtPOIW);
1127
1128 // weighted v'_{n}{6,QC} (pt) for POIs
1129 fvn6thPtPOIW = new TH1D("fvn6thPtPOIW","weighted v'_{n}{6,QC} (p_{t}) for POIs",fnBinsPt,fPtMin,fPtMax);
1130 fvn6thPtPOIW->SetXTitle("p_{t}");
1131 fResultsList->Add(fvn6thPtPOIW);
1132
1133 // weighted v'_{n}{8,QC} (pt) for POIs
1134 fvn8thPtPOIW = new TH1D("fvn8thPtPOIW","weighted v'_{n}{8,QC} (p_{t}) for POIs",fnBinsPt,fPtMin,fPtMax);
1135 fvn8thPtPOIW->SetXTitle("p_{t}");
1136 fResultsList->Add(fvn8thPtPOIW);
1137
1138 // weighted v'_{n}{2,QC} (eta) for POIs
1139 fvn2ndEtaPOIW = new TH1D("fvn2ndEtaPOIW","weighted v'_{n}{2,QC} (#eta) for POIs",fnBinsEta,fEtaMin,fEtaMax);
1140 fvn2ndEtaPOIW->SetXTitle("#eta");
1141 fResultsList->Add(fvn2ndEtaPOIW);
1142
1143 // weighted v'_{n}{4,QC} (eta) for POIs
1144 fvn4thEtaPOIW = new TH1D("fvn4thEtaPOIW","weighted v'_{n}{4,QC} (#eta) for POIs",fnBinsEta,fEtaMin,fEtaMax);
1145 fvn4thEtaPOIW->SetXTitle("#eta");
1146 fResultsList->Add(fvn4thEtaPOIW);
1147
1148 // weighted v'_{n}{6,QC} (eta) for POIs
1149 fvn6thEtaPOIW = new TH1D("fvn6thEtaPOIW","weighted v'_{n}{6,QC} (#eta) for POIs",fnBinsEta,fEtaMin,fEtaMax);
1150 fvn6thEtaPOIW->SetXTitle("#eta");
1151 fResultsList->Add(fvn6thEtaPOIW);
1152
1153 // weighted v'_{n}{8,QC} (eta) for POIs
1154 fvn8thEtaPOIW = new TH1D("fvn8thEtaPOIW","weighted v'_{n}{8,QC} (#eta) for POIs",fnBinsEta,fEtaMin,fEtaMax);
1155 fvn8thEtaPOIW->SetXTitle("#eta");
1156 fResultsList->Add(fvn8thEtaPOIW);
1157
2bdc5281 1158 // <<cos n(psi1-phi2)>> for RPs:
1159 f2pPtEtaRP = new TProfile2D("f2pPtEtaRP","<<cos n(#psi_{1}-#phi_{2})>> (p_{t},#eta) for RPs",
9c1a9547 1160 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1161 f2pPtEtaRP->SetXTitle("p_{t}");
1162 f2pPtEtaRP->SetYTitle("#eta");
1163 fDiffFlowList->Add(f2pPtEtaRP);
1164
2bdc5281 1165 // <<cos n(psi1+phi2-phi3-phi4)>> for RPs:
1166 f4pPtEtaRP = new TProfile2D("f4pPtEtaRP","<<cos n(#psi_{1}+#phi_{2}-#phi_{3}-#phi_{4})>> (p_{t},#eta) for RPs",
9c1a9547 1167 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1168 f4pPtEtaRP->SetXTitle("p_{t}");
1169 f4pPtEtaRP->SetYTitle("#eta");
1170 fDiffFlowList->Add(f4pPtEtaRP);
1171
2bdc5281 1172 // <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> for RPs:
1173 f6pPtEtaRP = new TProfile2D("f6pPtEtaRP","<<cos n(#psi_{1}+#phi_{2}+#phi_{3}-#phi_{4}-#phi_{5}-#phi_{6})>> (p_{t},#eta) for RPs",
9c1a9547 1174 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1175 f6pPtEtaRP->SetXTitle("p_{t}");
1176 f6pPtEtaRP->SetYTitle("#eta");
1177 fDiffFlowList->Add(f6pPtEtaRP);
1178
2bdc5281 1179 // <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> for RPs:
1180 f8pPtEtaRP = new TProfile2D("f8pPtEtaRP","<<cos n(#psi_{1}+#phi_{2}+#phi_{3}+#phi_{4}-#phi_{5}-#phi_{6}-#phi_{7}-#phi_{8})>> (p_{t},#eta) for RPs",
9c1a9547 1181 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1182 f8pPtEtaRP->SetXTitle("p_{t}");
1183 f8pPtEtaRP->SetYTitle("#eta");
1184 fDiffFlowList->Add(f8pPtEtaRP);
2bdc5281 1185
1186 // correction for non-uniform acceptance to <<cos n(psi1-phi2)>> for RPs:
1187 f2pFinalCorrectionsForNUAPtEtaRP = new TH2D("f2pFinalCorrectionsForNUAPtEtaRP",
1188 "correction for NUA to <<cos n(#psi_{1}-#phi_{2})>> (p_{t},#eta) for RPs",
1189 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1190 f2pFinalCorrectionsForNUAPtEtaRP->SetXTitle("p_{t}");
1191 f2pFinalCorrectionsForNUAPtEtaRP->SetYTitle("#eta");
1192 fResultsList->Add(f2pFinalCorrectionsForNUAPtEtaRP);
1193
1194 // correction for non-uniform acceptance to <<cos n(psi1+phi2-phi3-phi4)>> for RPs:
1195 f4pFinalCorrectionsForNUAPtEtaRP = new TH2D("f4pFinalCorrectionsForNUAPtEtaRP",
1196 "correction for NUA to <<cos n(psi1+phi2-phi3-phi4)>> (p_{t},#eta) for RPs",
1197 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1198 f4pFinalCorrectionsForNUAPtEtaRP->SetXTitle("p_{t}");
1199 f4pFinalCorrectionsForNUAPtEtaRP->SetYTitle("#eta");
1200 fResultsList->Add(f4pFinalCorrectionsForNUAPtEtaRP);
1201
1202 // correction for non-uniform acceptance to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> for RPs:
1203 f6pFinalCorrectionsForNUAPtEtaRP = new TH2D("f6pFinalCorrectionsForNUAPtEtaRP",
1204 "correction for NUA to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> (p_{t},#eta) for RPs",
1205 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1206 f6pFinalCorrectionsForNUAPtEtaRP->SetXTitle("p_{t}");
1207 f6pFinalCorrectionsForNUAPtEtaRP->SetYTitle("#eta");
1208 fResultsList->Add(f6pFinalCorrectionsForNUAPtEtaRP);
1209
1210 // correction for non-uniform acceptance to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> for RPs:
1211 f8pFinalCorrectionsForNUAPtEtaRP = new TH2D("f8pFinalCorrectionsForNUAPtEtaRP",
1212 "correction for NUA to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> (p_{t},#eta) for RPs",
1213 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1214 f8pFinalCorrectionsForNUAPtEtaRP->SetXTitle("p_{t}");
1215 f8pFinalCorrectionsForNUAPtEtaRP->SetYTitle("#eta");
1216 fResultsList->Add(f8pFinalCorrectionsForNUAPtEtaRP);
1217
1218 // correction for non-uniform acceptance to <<cos n(psi1-phi2)>> for RPs:
1219 f2pFinalCorrectionsForNUAPtRP = new TH1D("f2pFinalCorrectionsForNUAPtRP",
1220 "correction for NUA to <<cos n(#psi_{1}-#phi_{2})>> (p_{t}) for RPs",
1221 fnBinsPt,fPtMin,fPtMax);
1222 f2pFinalCorrectionsForNUAPtRP->SetXTitle("p_{t}");
1223 fResultsList->Add(f2pFinalCorrectionsForNUAPtRP);
1224
1225 // correction for non-uniform acceptance to <<cos n(psi1+phi2-phi3-phi4)>> for RPs:
1226 f4pFinalCorrectionsForNUAPtRP = new TH1D("f4pFinalCorrectionsForNUAPtRP",
1227 "correction for NUA to <<cos n(psi1+phi2-phi3-phi4)>> (p_{t}) for RPs",
1228 fnBinsPt,fPtMin,fPtMax);
1229 f4pFinalCorrectionsForNUAPtRP->SetXTitle("p_{t}");
1230 fResultsList->Add(f4pFinalCorrectionsForNUAPtRP);
1231
1232 // correction for non-uniform acceptance to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> for RPs:
1233 f6pFinalCorrectionsForNUAPtRP = new TH1D("f6pFinalCorrectionsForNUAPtRP",
1234 "correction for NUA to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> (p_{t}) for RPs",
1235 fnBinsPt,fPtMin,fPtMax);
1236 f6pFinalCorrectionsForNUAPtRP->SetXTitle("p_{t}");
1237 fResultsList->Add(f6pFinalCorrectionsForNUAPtRP);
1238
1239 // correction for non-uniform acceptance to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> for RPs:
1240 f8pFinalCorrectionsForNUAPtRP = new TH1D("f8pFinalCorrectionsForNUAPtRP",
1241 "correction for NUA to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> (p_{t}) for RPs",
1242 fnBinsPt,fPtMin,fPtMax);
1243 f8pFinalCorrectionsForNUAPtRP->SetXTitle("p_{t}");
1244 fResultsList->Add(f8pFinalCorrectionsForNUAPtRP);
1245
1246 // correction for non-uniform acceEtaance to <<cos n(psi1-phi2)>> for RPs:
1247 f2pFinalCorrectionsForNUAEtaRP = new TH1D("f2pFinalCorrectionsForNUAEtaRP",
1248 "correction for NUA to <<cos n(#psi_{1}-#phi_{2})>> (#eta) for RPs",
1249 fnBinsEta,fEtaMin,fEtaMax);
1250 f2pFinalCorrectionsForNUAEtaRP->SetXTitle("#eta");
1251 fResultsList->Add(f2pFinalCorrectionsForNUAEtaRP);
1252
1253 // correction for non-uniform acceEtaance to <<cos n(psi1+phi2-phi3-phi4)>> for RPs:
1254 f4pFinalCorrectionsForNUAEtaRP = new TH1D("f4pFinalCorrectionsForNUAEtaRP",
1255 "correction for NUA to <<cos n(psi1+phi2-phi3-phi4)>> (#eta) for RPs",
1256 fnBinsEta,fEtaMin,fEtaMax);
1257 f4pFinalCorrectionsForNUAEtaRP->SetXTitle("#eta");
1258 fResultsList->Add(f4pFinalCorrectionsForNUAEtaRP);
1259
1260 // correction for non-uniform acceEtaance to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> for RPs:
1261 f6pFinalCorrectionsForNUAEtaRP = new TH1D("f6pFinalCorrectionsForNUAEtaRP",
1262 "correction for NUA to <<cos n(psi1+phi2+phi3-phi4-phi5-phi6)>> (#eta) for RPs",
1263 fnBinsEta,fEtaMin,fEtaMax);
1264 f6pFinalCorrectionsForNUAEtaRP->SetXTitle("#eta");
1265 fResultsList->Add(f6pFinalCorrectionsForNUAEtaRP);
1266
1267 // correction for non-uniform acceEtaance to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> for RPs:
1268 f8pFinalCorrectionsForNUAEtaRP = new TH1D("f8pFinalCorrectionsForNUAEtaRP",
1269 "correction for NUA to <<cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)>> (#eta) for RPs",
1270 fnBinsEta,fEtaMin,fEtaMax);
1271 f8pFinalCorrectionsForNUAEtaRP->SetXTitle("#eta");
1272 fResultsList->Add(f8pFinalCorrectionsForNUAEtaRP);
9c1a9547 1273
1274 // non-weighted v'_{n}{2,QC} (pt,eta) for RPs
1275 fvn2ndPtEtaRP = new TH2D("fvn2ndPtEtaRP","v'_{n}{2,QC} (p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1276 fvn2ndPtEtaRP->SetXTitle("p_{t}");
1277 fvn2ndPtEtaRP->SetYTitle("#eta");
1278 fResultsList->Add(fvn2ndPtEtaRP);
1279
1280 // non-weighted v'_{n}{4,QC} (pt,eta) for RPs
1281 fvn4thPtEtaRP = new TH2D("fvn4thPtEtaRP","v'_{n}{4,QC} (p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1282 fvn4thPtEtaRP->SetXTitle("p_{t}");
1283 fvn4thPtEtaRP->SetYTitle("#eta");
1284 fResultsList->Add(fvn4thPtEtaRP);
1285
1286 // non-weighted v'_{n}{6,QC} (pt,eta) for RPs
1287 fvn6thPtEtaRP = new TH2D("fvn6thPtEtaRP","v'_{n}{6,QC} (p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1288 fvn6thPtEtaRP->SetXTitle("p_{t}");
1289 fvn6thPtEtaRP->SetYTitle("#eta");
1290 fResultsList->Add(fvn6thPtEtaRP);
1291
1292 // non-weighted v'_{n}{8,QC} (pt,eta) for RPs
1293 fvn8thPtEtaRP = new TH2D("fvn8thPtEtaRP","v'_{n}{8,QC} (p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1294 fvn8thPtEtaRP->SetXTitle("p_{t}");
1295 fvn8thPtEtaRP->SetYTitle("#eta");
1296 fResultsList->Add(fvn8thPtEtaRP);
1297
1298 // non-weighted v'_{n}{2,QC} (pt) for RPs
1299 fvn2ndPtRP = new TH1D("fvn2ndPtRP","v'_{n}{2,QC} (p_{t}) for RPs",fnBinsPt,fPtMin,fPtMax);
1300 fvn2ndPtRP->SetXTitle("p_{t}");
1301 fResultsList->Add(fvn2ndPtRP);
1302
1303 // non-weighted v'_{n}{4,QC} (pt) for RPs
1304 fvn4thPtRP = new TH1D("fvn4thPtRP","v'_{n}{4,QC} (p_{t}) for RPs",fnBinsPt,fPtMin,fPtMax);
1305 fvn4thPtRP->SetXTitle("p_{t}");
1306 fResultsList->Add(fvn4thPtRP);
1307
1308 // non-weighted v'_{n}{6,QC} (pt) for RPs
1309 fvn6thPtRP = new TH1D("fvn6thPtRP","v'_{n}{6,QC} (p_{t}) for RPs",fnBinsPt,fPtMin,fPtMax);
1310 fvn6thPtRP->SetXTitle("p_{t}");
1311 fResultsList->Add(fvn6thPtRP);
1312
1313 // non-weighted v'_{n}{8,QC} (pt) for RPs
1314 fvn8thPtRP = new TH1D("fvn8thPtRP","v'_{n}{8,QC} (p_{t}) for RPs",fnBinsPt,fPtMin,fPtMax);
1315 fvn8thPtRP->SetXTitle("p_{t}");
1316 fResultsList->Add(fvn8thPtRP);
1317
1318 // non-weighted v'_{n}{2,QC} (eta) for RPs
1319 fvn2ndEtaRP = new TH1D("fvn2ndEtaRP","v'_{n}{2,QC} (#eta) for RPs",fnBinsEta,fEtaMin,fEtaMax);
1320 fvn2ndEtaRP->SetXTitle("#eta");
1321 fResultsList->Add(fvn2ndEtaRP);
1322
1323 // non-weighted v'_{n}{4,QC} (eta) for RPs
1324 fvn4thEtaRP = new TH1D("fvn4thEtaRP","v'_{n}{4,QC} (#eta) for RPs",fnBinsEta,fEtaMin,fEtaMax);
1325 fvn4thEtaRP->SetXTitle("#eta");
1326 fResultsList->Add(fvn4thEtaRP);
1327
1328 // non-weighted v'_{n}{6,QC} (eta) for RPs
1329 fvn6thEtaRP = new TH1D("fvn6thEtaRP","v'_{n}{6,QC} (#eta) for RPs",fnBinsEta,fEtaMin,fEtaMax);
1330 fvn6thEtaRP->SetXTitle("#eta");
1331 fResultsList->Add(fvn6thEtaRP);
1332
1333 // non-weighted v'_{n}{8,QC} (eta) for RPs
1334 fvn8thEtaRP = new TH1D("fvn8thEtaRP","v'_{n}{8,QC} (#eta) for RPs",fnBinsEta,fEtaMin,fEtaMax);
1335 fvn8thEtaRP->SetXTitle("#eta");
1336 fResultsList->Add(fvn8thEtaRP);
1337
1338 // <w2 cos n(psi1-phi2)> for RPs:
1339 f2pPtEtaRPW = new TProfile2D("f2pPtEtaRPW","<w_{2} cos n(#psi_{1}-#phi_{2})> (p_{t},#eta) for RPs",
1340 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1341 f2pPtEtaRPW->SetXTitle("p_{t}");
1342 f2pPtEtaRPW->SetYTitle("#eta");
1343 fDiffFlowList->Add(f2pPtEtaRPW);
1344
1345 // <w2 w3 w4 cos n(psi1+phi2-phi3-phi4)> for RPs:
1346 f4pPtEtaRPW = new TProfile2D("f4pPtEtaRPW","<w_{2}w_{3}w_{4} cos n(#psi_{1}+#phi_{2}-#phi_{3}-#phi_{4})> (p_{t},#eta) for RPs",
1347 fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1348 f4pPtEtaRPW->SetXTitle("p_{t}");
1349 f4pPtEtaRPW->SetYTitle("#eta");
1350 fDiffFlowList->Add(f4pPtEtaRPW);
1351
1352 // <w2 w3 w4 w5 w6 cos n(psi1+phi2+phi3-phi4-phi5-phi6)> for RPs:
1353 f6pPtEtaRPW = new TProfile2D("f6pPtEtaRPW","<w_{2}w_{3}w_{4}w_{5}w_{6} cos n(#psi_{1}+#phi_{2}+#phi_{3}-#phi_{4}-#phi_{5}-#phi_{6})> (p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1354 f6pPtEtaRPW->SetXTitle("p_{t}");
1355 f6pPtEtaRPW->SetYTitle("#eta");
1356 fDiffFlowList->Add(f6pPtEtaRPW);
1357
1358 // <w2 w3 w4 w5 w6 w7 w8 cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)> for RPs:
1359 f8pPtEtaRPW = new TProfile2D("f8pPtEtaRPW","<w_{2}w_{3}w_{4}w_{5}w_{6}w_{7}w_{8} cos n(#psi_{1}+#phi_{2}+#phi_{3}+#phi_{4}-#phi_{5}-#phi_{6}-#phi_{7}-#phi_{8})> (p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax,"s");
1360 f8pPtEtaRPW->SetXTitle("p_{t}");
1361 f8pPtEtaRPW->SetYTitle("#eta");
1362 fDiffFlowList->Add(f8pPtEtaRPW);
1363
1364 // weighted v'_{n}{2,QC} (pt,eta) for RPs
1365 fvn2ndPtEtaRPW = new TH2D("fvn2ndPtEtaRPW","weighted v'_{n}{2,QC} (p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1366 fvn2ndPtEtaRPW->SetXTitle("p_{t}");
1367 fvn2ndPtEtaRPW->SetYTitle("#eta");
1368 fResultsList->Add(fvn2ndPtEtaRPW);
1369
1370 // weighted v'_{n}{4,QC} (pt,eta) for RPs
1371 fvn4thPtEtaRPW = new TH2D("fvn4thPtEtaRPW","weighted v'_{n}{4,QC} (p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1372 fvn4thPtEtaRPW->SetXTitle("p_{t}");
1373 fvn4thPtEtaRPW->SetYTitle("#eta");
1374 fResultsList->Add(fvn4thPtEtaRPW);
1375
1376 // weighted v'_{n}{6,QC} (pt,eta) for RPs
1377 fvn6thPtEtaRPW = new TH2D("fvn6thPtEtaRPW","weighted v'_{n}{6,QC} (p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1378 fvn6thPtEtaRPW->SetXTitle("p_{t}");
1379 fvn6thPtEtaRPW->SetYTitle("#eta");
1380 fResultsList->Add(fvn6thPtEtaRPW);
1381
1382 // weighted v'_{n}{8,QC} (pt,eta) for RPs
1383 fvn8thPtEtaRPW = new TH2D("fvn8thPtEtaRPW","weighted v'_{n}{8,QC} (p_{t},#eta) for RPs",fnBinsPt,fPtMin,fPtMax,fnBinsEta,fEtaMin,fEtaMax);
1384 fvn8thPtEtaRPW->SetXTitle("p_{t}");
1385 fvn8thPtEtaRPW->SetYTitle("#eta");
1386 fResultsList->Add(fvn8thPtEtaRPW);
1387
1388 // weighted v'_{n}{2,QC} (pt) for RPs
1389 fvn2ndPtRPW = new TH1D("fvn2ndPtRPW","weighted v'_{n}{2,QC} (p_{t}) for RPs",fnBinsPt,fPtMin,fPtMax);
1390 fvn2ndPtRPW->SetXTitle("p_{t}");
1391 fResultsList->Add(fvn2ndPtRPW);
1392
1393 // weighted v'_{n}{4,QC} (pt) for RPs
1394 fvn4thPtRPW = new TH1D("fvn4thPtRPW","weighted v'_{n}{4,QC} (p_{t}) for RPs",fnBinsPt,fPtMin,fPtMax);
1395 fvn4thPtRPW->SetXTitle("p_{t}");
1396 fResultsList->Add(fvn4thPtRPW);
1397
1398 // weighted v'_{n}{6,QC} (pt) for RPs
1399 fvn6thPtRPW = new TH1D("fvn6thPtRPW","weighted v'_{n}{6,QC} (p_{t}) for RPs",fnBinsPt,fPtMin,fPtMax);
1400 fvn6thPtRPW->SetXTitle("p_{t}");
1401 fResultsList->Add(fvn6thPtRPW);
1402
1403 // weighted v'_{n}{8,QC} (pt) for RPs
1404 fvn8thPtRPW = new TH1D("fvn8thPtRPW","weighted v'_{n}{8,QC} (p_{t}) for RPs",fnBinsPt,fPtMin,fPtMax);
1405 fvn8thPtRPW->SetXTitle("p_{t}");
1406 fResultsList->Add(fvn8thPtRPW);
1407
1408 // weighted v'_{n}{2,QC} (eta) for RPs
1409 fvn2ndEtaRPW = new TH1D("fvn2ndEtaRPW","weighted v'_{n}{2,QC} (#eta) for RPs",fnBinsEta,fEtaMin,fEtaMax);
1410 fvn2ndEtaRPW->SetXTitle("#eta");
1411 fResultsList->Add(fvn2ndEtaRPW);
1412
1413 // weighted v'_{n}{4,QC} (eta) for RPs
1414 fvn4thEtaRPW = new TH1D("fvn4thEtaRPW","weighted v'_{n}{4,QC} (#eta) for RPs",fnBinsEta,fEtaMin,fEtaMax);
1415 fvn4thEtaRPW->SetXTitle("#eta");
1416 fResultsList->Add(fvn4thEtaRPW);
1417
1418 // weighted v'_{n}{6,QC} (eta) for RPs
1419 fvn6thEtaRPW = new TH1D("fvn6thEtaRPW","weighted v'_{n}{6,QC} (#eta) for RPs",fnBinsEta,fEtaMin,fEtaMax);
1420 fvn6thEtaRPW->SetXTitle("#eta");
1421 fResultsList->Add(fvn6thEtaRPW);
1422
1423 // weighted v'_{n}{8,QC} (eta) for RPs
1424 fvn8thEtaRP = new TH1D("fvn8thEtaEtaRP","weighted v'_{n}{8,QC} (#eta) for RPs",fnBinsEta,fEtaMin,fEtaMax);
1425 fvn8thEtaRP->SetXTitle("#eta");
1426 fResultsList->Add(fvn8thEtaRP);
1427 // .....................................................................................................................................
1428
1429
1430
1431
1432 // add fUseWeightsBits to the main list (to be improved)
1433 fUseWeightsBits = new TBits(1);
1434 fHistList->Add(fUseWeightsBits);
1435
1436 // add list fWeightsList with weights to the main list
1437 fHistList->Add(fWeightsList);
dee1e0e0 1438
9c1a9547 1439 // add list fDiffFlowList with histograms and profiles needed for differential flow to the main list
1440 fHistList->Add(fDiffFlowList);
5e838eeb 1441
9c1a9547 1442 // add list fResultsList with final results to the main list
1443 fHistList->Add(fResultsList);
3c16adde 1444
9c1a9547 1445
1446}//end of Init()
3d824203 1447
9c1a9547 1448
1449//================================================================================================================
1450
1451
1452void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
1453{
1454 // running over data only in this method
1455
1456
1457
1458
1459 // *********************************************
1460 // **** ACCESS THE OUTPUT FILE WITH WEIGHTS ****
1461 // *********************************************
1462
1463 fUseWeights = fUsePhiWeights||fUsePtWeights||fUseEtaWeights;
1464 fUseWeightsBits->SetBitNumber(1,fUseWeights); // to be improved (how to pass boolean to Finish()?)
1465
3d824203 1466 TH1F *phiWeights = NULL; // histogram with phi weights
1467 TH1D *ptWeights = NULL; // histogram with pt weights
1468 TH1D *etaWeights = NULL; // histogram with eta weights
1469
9c1a9547 1470 if(fUseWeights)
3d824203 1471 {
1472 if(!fWeightsList)
1315fe58 1473 {
9c1a9547 1474 cout<<" WARNING: fWeightsList is NULL pointer in AFAWQC::Make(). "<<endl;
3d824203 1475 exit(0);
1476 }
1477 if(fUsePhiWeights)
1478 {
1479 phiWeights = dynamic_cast<TH1F *>(fWeightsList->FindObject("phi_weights"));
1480 if(!phiWeights)
ae733b3b 1481 {
9c1a9547 1482 cout<<" WARNING: couldn't access the histogram with phi weights in AFAWQC::Make(). "<<endl;
3d824203 1483 exit(0);
ae733b3b 1484 }
3d824203 1485 }
1486 if(fUsePtWeights)
1487 {
1488 ptWeights = dynamic_cast<TH1D *>(fWeightsList->FindObject("pt_weights"));
1489 if(!ptWeights)
1490 {
9c1a9547 1491 cout<<" WARNING: couldn't access the histogram with pt weights in AFAWQC::Make(). "<<endl;
3d824203 1492 exit(0);
1493 }
1494 }
1495 if(fUseEtaWeights)
1496 {
1497 etaWeights = dynamic_cast<TH1D *>(fWeightsList->FindObject("eta_weights"));
1498 if(!etaWeights)
1499 {
9c1a9547 1500 cout<<" WARNING: couldn't access the histogram with eta weights in AFAWQC::Make(). "<<endl;
3d824203 1501 exit(0);
1502 }
1503 }
1504 }
1505
77515452 1506 Int_t nBinsPhi = 0;
9c1a9547 1507 Double_t dBinWidthPt = 0.;
1508 Double_t dBinWidthEta = 0.;
1509
77515452 1510 if(fnBinsPt)
1511 {
1512 dBinWidthPt=(fPtMax-fPtMin)/fnBinsPt;
1513 }
9c1a9547 1514
77515452 1515 if(fnBinsEta)
1516 {
1517 dBinWidthEta=(fEtaMax-fEtaMin)/fnBinsEta;
1518 }
3d824203 1519
1520 if(fWeightsList)
9c1a9547 1521 {
1522 if(fUsePhiWeights)
3d824203 1523 {
9c1a9547 1524 if(phiWeights) nBinsPhi = phiWeights->GetNbinsX();
1525 }
1526 if(fUsePtWeights)
1527 {
1528 if(ptWeights)
3d824203 1529 {
9c1a9547 1530 Double_t dBinWidthPtW = ptWeights->GetBinWidth(1); // assuming that all bins have the same width
1531 if(dBinWidthPtW != dBinWidthPt)
3d824203 1532 {
9c1a9547 1533 cout<<" WARNING: dBinWidthPtW != dBinWidthPt in AFAWQC::Make()."<<endl;
1534 exit(0);
1535 }
1536 Double_t dPtMinW = (ptWeights->GetXaxis())->GetXmin();
1537 if(dPtMinW != fPtMin)
1538 {
1539 cout<<" WARNING: dPtMinW != fPtMin in AFAWQC::Make()."<<endl;
1540 exit(0);
1541 }
1542 }
1543 }
1544 if(fUseEtaWeights)
1545 {
1546 if(etaWeights)
3d824203 1547 {
9c1a9547 1548 Double_t dBinWidthEtaW = etaWeights->GetBinWidth(1); // assuming that all bins have the same width
1549 if(dBinWidthEtaW != dBinWidthEta)
3d824203 1550 {
9c1a9547 1551 cout<<" WARNING: dBinWidthEtaW != dBinWidthEta in AFAWQC::Make()."<<endl;
1552 exit(0);
1553 }
1554 Double_t dEtaMinW = (etaWeights->GetXaxis())->GetXmin();
1555 if(dEtaMinW != fEtaMin)
1556 {
1557 cout<<" WARNING: dEtaMinW != fEtaMin in AFAWQC::Make()."<<endl;
1558 exit(0);
1559 }
1560 }
1561 }
1562 } // end of if(weightsList)
3d824203 1563
9c1a9547 1564 Double_t dPhi = 0.; // azumithal angle in the laboratory frame
1565 Double_t dPt = 0.; // transverse momentum
1566 Double_t dEta = 0.; // pseudorapidity
1567
3d824203 1568 Double_t wPhi = 1.; // phi weight
1569 Double_t wPt = 1.; // pt weight
1570 Double_t wEta = 1.; // eta weight
1571
9c1a9547 1572
1573
1574
1575 // ********************************************
1576 // **** FILL THE COMMON CONTROL HISTOGRAMS ****
1577 // ********************************************
1578
1579 Int_t nRP = anEvent->GetEventNSelTracksRP();
1580 if(nRP>1)
1581 {
1582 fCommonHists2nd->FillControlHistograms(anEvent);
1583 if(nRP>3)
1584 {
1585 fCommonHists4th->FillControlHistograms(anEvent);
1586 if(nRP>5)
3d824203 1587 {
9c1a9547 1588 fCommonHists6th->FillControlHistograms(anEvent);
1589 if(nRP>7)
3d824203 1590 {
9c1a9547 1591 fCommonHists8th->FillControlHistograms(anEvent);
1592 } // end of if(nRP>7)
1593 } // end of if(nRP>5)
1594 } // end of if(nRP>3)
1595 } // end of if(nRP>1)
3d824203 1596
3d824203 1597
3d824203 1598
9c1a9547 1599
1600 // ***************************
1601 // **** LOOPING OVER DATA ****
1602 // ***************************
3d824203 1603
9c1a9547 1604 Int_t nPrim = anEvent->NumberOfTracks();
3d824203 1605
9c1a9547 1606 // nPrim = total number of primary tracks, i.e. nPrim = nRP + nPOI + rest, where:
1607 // nRP = # of particles used to determine the reaction plane;
1608 // nPOI = # of particles of interest for a detailed flow analysis;
1609 // rest = # of particles which are niether RPs not POIs.
3d824203 1610
9c1a9547 1611 for(Int_t i=0;i<nPrim;i++)
3d824203 1612 {
9c1a9547 1613 fTrack=anEvent->GetTrack(i);
77515452 1614 if(fTrack)
1615 {
9c1a9547 1616 if(!(fTrack->InRPSelection() || fTrack->InPOISelection())) continue;
1617
1618 // checking the RP condition:
1619 if(fTrack->InRPSelection())
1620 {
1621 dPhi = fTrack->Phi();
1622 dPt = fTrack->Pt();
1623 dEta = fTrack->Eta();
1624
1625 // determine phi weight for this particle:
1626 if(phiWeights && nBinsPhi)
3d824203 1627 {
9c1a9547 1628 wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi())));
1629 }
1630 // determine pt weight for this particle:
1631 if(ptWeights && dBinWidthPt)
1632 {
1633 wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt)));
1634 }
1635 // determine eta weight for this particle:
1636 if(etaWeights && dBinWidthEta)
1637 {
1638 wEta = etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta)));
1639 }
1640
1641 // fill Re[Q_{n,k}] and Im[Q_{n,k}]:
1642 for(Int_t n=0;n<4;n++)
1643 {
1644 for(Int_t k=0;k<9;k++)
77515452 1645 {
9c1a9547 1646 (*fReQ)(n,k)+=pow(wPhi*wPt*wEta,k)*TMath::Cos(2*(n+1)*dPhi);
1647 (*fImQ)(n,k)+=pow(wPhi*wPt*wEta,k)*TMath::Sin(2*(n+1)*dPhi);
77515452 1648 }
9c1a9547 1649 }
1650
1651 // fill S^{M}_{p,k}:
1652 for(Int_t p=0;p<8;p++)
1653 {
1654 for(Int_t k=0;k<9;k++)
1655 {
1656 (*fSMpk)(p,k)+=pow(wPhi*wPt*wEta,k);
77515452 1657 }
9c1a9547 1658 }
77515452 1659
9c1a9547 1660 Int_t n = 2; // to be improved (add setter for harmonic)
77515452 1661
9c1a9547 1662 // fill non-weighted q_RPs
1663 fReqRP1nPtEta->Fill(dPt,dEta,TMath::Cos(1.*n*dPhi));
1664 fImqRP1nPtEta->Fill(dPt,dEta,TMath::Sin(1.*n*dPhi));
1665 fReqRP2nPtEta->Fill(dPt,dEta,TMath::Cos(2.*n*dPhi));
1666 fImqRP2nPtEta->Fill(dPt,dEta,TMath::Sin(2.*n*dPhi));
77515452 1667
9c1a9547 1668 // mRP:
1669 fmRPPtEta->Fill(dPt,dEta,1);
1670
1671 // fill weighted q_RPs
1672 if(fUseWeights)
3d824203 1673 {
9c1a9547 1674 n = 2; // to be improved (add setter for harmonic)
77515452 1675
9c1a9547 1676 // qRP_{n,k} (weighted qRP):
1677 fReqRP1n2kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,2.)*TMath::Cos(1.*n*dPhi));
1678 fImqRP1n2kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,2.)*TMath::Sin(1.*n*dPhi));
1679 fReqRP2n1kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,1.)*TMath::Cos(2.*n*dPhi));
1680 fImqRP2n1kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,1.)*TMath::Sin(2.*n*dPhi));
3d824203 1681
9c1a9547 1682 // S^{mRP}_{p,k}:
1683 fSmRP1p1kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,1.));
1684 fSmRP1p2kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,2.));
1685 fSmRP1p3kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,3.));
1686 }
1687
1688 // checking if RP particle is also POI particle:
1689 if(fTrack->InPOISelection())
1690 {
1691 n = 2; // to be improved (add setter for harmonic)
1692
1693 // q''_{n} (non-weighted q''):
1694 fReqPrimePrime1nPtEta->Fill(dPt,dEta,TMath::Cos(1.*n*dPhi));
1695 fImqPrimePrime1nPtEta->Fill(dPt,dEta,TMath::Sin(1.*n*dPhi));
1696 fReqPrimePrime2nPtEta->Fill(dPt,dEta,TMath::Cos(2.*n*dPhi));
1697 fImqPrimePrime2nPtEta->Fill(dPt,dEta,TMath::Sin(2.*n*dPhi));
1698
1699 // m'':
1700 fmPrimePrimePtEta->Fill(dPt,dEta,1);
3d824203 1701
9c1a9547 1702 if(fUseWeights)
1703 {
1704 // q''_{n,k} (weighted q''):
1705 fReqPrimePrime1n2kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,2.)*TMath::Cos(1.*n*dPhi));
1706 fImqPrimePrime1n2kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,2.)*TMath::Sin(1.*n*dPhi));
1707 fReqPrimePrime2n1kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,1.)*TMath::Cos(2.*n*dPhi));
1708 fImqPrimePrime2n1kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,1.)*TMath::Sin(2.*n*dPhi));
b7cb54d5 1709
9c1a9547 1710 // S^{m''}_{p,k}:
1711 fSmPrimePrime1p1kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,1.));
1712 fSmPrimePrime1p2kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,2.));
1713 fSmPrimePrime1p3kPtEta->Fill(dPt,dEta,pow(wPhi*wPt*wEta,3.));
1714 }
1715 } // end of if(fTrack->InPOISelection())
1716 } // end of if(pTrack->InRPSelection())
b7cb54d5 1717
9c1a9547 1718 // checking the POI condition:
1719 if(fTrack->InPOISelection())
1720 {
1721 Int_t n = 2; // to be improved (add setter for harmonic)
1722
1723 dPhi = fTrack->Phi();
1724 dPt = fTrack->Pt();
1725 dEta = fTrack->Eta();
b7cb54d5 1726
9c1a9547 1727 // q_n:
1728 fReqnPtEta->Fill(dPt,dEta,TMath::Cos(1.*n*dPhi));
1729 fImqnPtEta->Fill(dPt,dEta,TMath::Sin(1.*n*dPhi));
1730
1731 // m:
1732 fmPtEta->Fill(dPt,dEta,1);
3d824203 1733
9c1a9547 1734 } // end of if(pTrack->InPOISelection() )
1735 } // end of if(fTrack)
1736 else{
1737 cout<<endl;
1738 cout<<" WARNING: no particle! (i.e. fTrack is a NULL pointer in AFAWQC::Make().)"<<endl;
1739 cout<<endl;
1740 }
1741 } // end of for(Int_t i=0;i<nPrim;i++)
3d824203 1742
9c1a9547 1743 // calculate the final expressions for S^{M}_{p,k} = (sum_{i=1}^{M} w_{i}^{k})^{p}:
1744 for(Int_t p=0;p<8;p++)
1745 {
1746 for(Int_t k=0;k<9;k++)
77515452 1747 {
9c1a9547 1748 (*fSMpk)(p,k)=pow((*fSMpk)(p,k),p+1);
1749 }
1750 }
77515452 1751
2bdc5281 1752
77515452 1753
77515452 1754
9c1a9547 1755 // *****************************
1756 // **** CALLING THE METHODS ****
1757 // *****************************
77515452 1758
9c1a9547 1759 // nested loops (needed for cross-checking the results):
1760 Bool_t evaluateNestedLoopsForIntegratedFlow = kFALSE; // to be improved / removed
1761 Bool_t evaluateNestedLoopsForDifferentialFlow = kFALSE; // to be improved / removed
2bdc5281 1762 // Remark: setBefore in AliFlowCommonConstants:
1763 // Double_t AliFlowCommonConstants::fgEtaMin = -1.;
1764 // Double_t AliFlowCommonConstants::fgEtaMax = 1.;
77515452 1765
9c1a9547 1766 if(evaluateNestedLoopsForIntegratedFlow && nPrim>0 && nPrim<14) // to be improved / removed (eventually I would not need this if())
1767 {
1768 // calculate all correlations needed for 'no-name' integrated flow WITHOUT weights
1769 // (the results are stored in 1D profile fQCorrelations)
c365fe76 1770 if(!(fUseWeights))
1771 {
1772 this->CalculateCorrelationsForIntegratedFlow();
2bdc5281 1773 this->CalculateCorrectionsForNonUniformAcceptanceForNoNameIntegratedFlowCosTerms();
1774 this->CalculateCorrectionsForNonUniformAcceptanceForNoNameIntegratedFlowSinTerms();
c365fe76 1775 }
9c1a9547 1776 // calculate all correlations needed for 'no-name' integrated flow WITH weights
1777 // (the results are stored in 1D profile fQCorrelationsW)
1778 if(fUseWeights) this->CalculateWeightedCorrelationsForIntegratedFlow();
1779 }
1780 else if (!evaluateNestedLoopsForIntegratedFlow)
1781 {
1782 this->CalculateCorrelationsForIntegratedFlow();
2bdc5281 1783 this->CalculateCorrectionsForNonUniformAcceptanceForNoNameIntegratedFlowCosTerms();
1784 this->CalculateCorrectionsForNonUniformAcceptanceForNoNameIntegratedFlowSinTerms();
9c1a9547 1785 if(fUseWeights) this->CalculateWeightedCorrelationsForIntegratedFlow();
1786 }
77515452 1787
9c1a9547 1788 if(evaluateNestedLoopsForDifferentialFlow && nPrim>0 && nPrim<14 ) // to be improved / removed (eventually I would not need this if())
1789 {
1790 // calculate all correlations needed for differential flow WITHOUT weights
1791 // and store the results in 2D profiles (pt,eta):
1792 // a) POIs: f2pPtEtaPOI, f4pPtEtaPOI, f6pPtEtaPOI and f8pPtEtaPOI;
1793 // b) RPs: f2pPtEtaRP, f4pPtEtaRP, f6pPtEtaRP and f8pPtEtaRP.
1794 if(!(fUseWeights))
77515452 1795 {
9c1a9547 1796 this->CalculateCorrelationsForDifferentialFlow("POI");
1797 this->CalculateCorrelationsForDifferentialFlow("RP");
2bdc5281 1798 this->CalculateCorrectionsForNonUniformAcceptanceForDifferentialFlowCosTerms("POI");
1799 this->CalculateCorrectionsForNonUniformAcceptanceForDifferentialFlowSinTerms("POI");
1800 this->CalculateCorrectionsForNonUniformAcceptanceForDifferentialFlowCosTerms("RP");
1801 this->CalculateCorrectionsForNonUniformAcceptanceForDifferentialFlowSinTerms("RP");
77515452 1802 }
9c1a9547 1803 // calculate all correlations needed for differential flow WITH weights
1804 // and store the results in 2D profiles (pt,eta):
1805 // a) POIs: f2pPtEtaPOIW, f4pPtEtaPOIW, f6pPtEtaPOIW and f8pPtEtaPOIW;
1806 // b) RPs: f2pPtEtaRPW, f4pPtEtaRPW, f6pPtEtaRPW and f8pPtEtaRPW.
1807 if(fUseWeights)
1808 {
1809 this->CalculateWeightedCorrelationsForDifferentialFlow("POI");
1810 this->CalculateWeightedCorrelationsForDifferentialFlow("RP");
1811 }
1812 }
1813 else if (!evaluateNestedLoopsForDifferentialFlow)
1814 {
1815 this->CalculateCorrelationsForDifferentialFlow("POI");
1816 this->CalculateCorrelationsForDifferentialFlow("RP");
2bdc5281 1817 this->CalculateCorrectionsForNonUniformAcceptanceForDifferentialFlowCosTerms("POI");
1818 this->CalculateCorrectionsForNonUniformAcceptanceForDifferentialFlowSinTerms("POI");
1819 this->CalculateCorrectionsForNonUniformAcceptanceForDifferentialFlowCosTerms("RP");
1820 this->CalculateCorrectionsForNonUniformAcceptanceForDifferentialFlowSinTerms("RP");
3d824203 1821
9c1a9547 1822 if(fUseWeights)
77515452 1823 {
9c1a9547 1824 this->CalculateWeightedCorrelationsForDifferentialFlow("POI");
1825 this->CalculateWeightedCorrelationsForDifferentialFlow("RP");
77515452 1826 }
3d824203 1827
9c1a9547 1828 }
77515452 1829
9c1a9547 1830 if(evaluateNestedLoopsForIntegratedFlow && nPrim>0 && nPrim<14) // to be improved / removed (eventually I would not need this if())
1831 {
1832 this->EvaluateNestedLoopsForIntegratedFlow(anEvent);
1833 }
3d824203 1834
9c1a9547 1835 if(evaluateNestedLoopsForDifferentialFlow && nPrim>0 && nPrim<14) // to be improved / removed (eventually I would not need this if())
1836 {
1837 this->EvaluateNestedLoopsForDifferentialFlow(anEvent);
1838 }
3d824203 1839
3d824203 1840
9c1a9547 1841
1842
1843 // ********************************
1844 // **** RESET E-B-E QUANTITIES ****
1845 // ********************************
3d824203 1846
9c1a9547 1847 fReQ->Zero();
1848 fImQ->Zero();
1849 fSMpk->Zero();
1850 fReqnPtEta->Reset();
1851 fImqnPtEta->Reset();
1852 fmPtEta->Reset();
1853 fReqPrimePrime1nPtEta->Reset();
1854 fImqPrimePrime1nPtEta->Reset();
1855 fReqPrimePrime2nPtEta->Reset();
1856 fImqPrimePrime2nPtEta->Reset();
1857 fmPrimePrimePtEta->Reset();
1858 fReqPrimePrime1n2kPtEta->Reset();
1859 fImqPrimePrime1n2kPtEta->Reset();
1860 fReqPrimePrime2n1kPtEta->Reset();
1861 fImqPrimePrime2n1kPtEta->Reset();
1862 fSmPrimePrime1p1kPtEta->Reset();
1863 fSmPrimePrime1p2kPtEta->Reset();
1864 fSmPrimePrime1p3kPtEta->Reset();
1865 // qRPs (to be improved - notation)
1866 fReqRP1nPtEta->Reset();
1867 fImqRP1nPtEta->Reset();
1868 fReqRP2nPtEta->Reset();
1869 fImqRP2nPtEta->Reset();
1870 fmRPPtEta->Reset();
1871 fReqRP1n2kPtEta->Reset();
1872 fImqRP1n2kPtEta->Reset();
1873 fReqRP2n1kPtEta->Reset();
1874 fImqRP2n1kPtEta->Reset();
1875 fSmRP1p1kPtEta->Reset();
1876 fSmRP1p2kPtEta->Reset();
1877 fSmRP1p3kPtEta->Reset();
1878
1879} // end of AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
1880
1881
1882//================================================================================================================================
1883
1884
1885void AliFlowAnalysisWithQCumulants::CalculateCorrelationsForIntegratedFlow()
1886{
1887 // calculate all correlations needed for 'no-name' integrated flow // to be improved (name)
1888
1889 // multiplicity:
1890 Double_t dMult = (*fSMpk)(0,0);
1891
1892 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
1893 Double_t dReQ1n = (*fReQ)(0,0);
1894 Double_t dReQ2n = (*fReQ)(1,0);
1895 Double_t dReQ3n = (*fReQ)(2,0);
1896 Double_t dReQ4n = (*fReQ)(3,0);
1897 Double_t dImQ1n = (*fImQ)(0,0);
1898 Double_t dImQ2n = (*fImQ)(1,0);
1899 Double_t dImQ3n = (*fImQ)(2,0);
1900 Double_t dImQ4n = (*fImQ)(3,0);
3d824203 1901
9c1a9547 1902 // real and imaginary parts of some expressions involving various combinations of Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
1903 // (these expression appear in the Eqs. for the multi-particle correlations bellow)
77515452 1904
9c1a9547 1905 // Re[Q_{2n} Q_{n}^* Q_{n}^*]
1906 Double_t reQ2nQ1nstarQ1nstar = pow(dReQ1n,2.)*dReQ2n + 2.*dReQ1n*dImQ1n*dImQ2n - pow(dImQ1n,2.)*dReQ2n;
77515452 1907
9c1a9547 1908 // Im[Q_{2n} Q_{n}^* Q_{n}^*]
1909 //Double_t imQ2nQ1nstarQ1nstar = pow(dReQ1n,2.)*dImQ2n-2.*dReQ1n*dImQ1n*dReQ2n-pow(dImQ1n,2.)*dImQ2n;
77515452 1910
9c1a9547 1911 // Re[Q_{n} Q_{n} Q_{2n}^*] = Re[Q_{2n} Q_{n}^* Q_{n}^*]
1912 Double_t reQ1nQ1nQ2nstar = reQ2nQ1nstarQ1nstar;
77515452 1913
9c1a9547 1914 // Re[Q_{3n} Q_{n} Q_{2n}^* Q_{2n}^*]
1915 Double_t reQ3nQ1nQ2nstarQ2nstar = (pow(dReQ2n,2.)-pow(dImQ2n,2.))*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)
1916 + 2.*dReQ2n*dImQ2n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n);
77515452 1917
9c1a9547 1918 // Im[Q_{3n} Q_{n} Q_{2n}^* Q_{2n}^*]
1919 //Double_t imQ3nQ1nQ2nstarQ2nstar = calculate and implement this (deleteMe)
1920
1921 // Re[Q_{2n} Q_{2n} Q_{3n}^* Q_{1n}^*] = Re[Q_{3n} Q_{n} Q_{2n}^* Q_{2n}^*]
1922 Double_t reQ2nQ2nQ3nstarQ1nstar = reQ3nQ1nQ2nstarQ2nstar;
1923
1924 // Re[Q_{4n} Q_{2n}^* Q_{2n}^*]
1925 Double_t reQ4nQ2nstarQ2nstar = pow(dReQ2n,2.)*dReQ4n+2.*dReQ2n*dImQ2n*dImQ4n-pow(dImQ2n,2.)*dReQ4n;
77515452 1926
9c1a9547 1927 // Im[Q_{4n} Q_{2n}^* Q_{2n}^*]
1928 //Double_t imQ4nQ2nstarQ2nstar = calculate and implement this (deleteMe)
77515452 1929
9c1a9547 1930 // Re[Q_{2n} Q_{2n} Q_{4n}^*] = Re[Q_{4n} Q_{2n}^* Q_{2n}^*]
1931 Double_t reQ2nQ2nQ4nstar = reQ4nQ2nstarQ2nstar;
77515452 1932
9c1a9547 1933 // Re[Q_{4n} Q_{3n}^* Q_{n}^*]
1934 Double_t reQ4nQ3nstarQ1nstar = dReQ4n*(dReQ3n*dReQ1n-dImQ3n*dImQ1n)+dImQ4n*(dReQ3n*dImQ1n+dImQ3n*dReQ1n);
77515452 1935
9c1a9547 1936 // Re[Q_{3n} Q_{n} Q_{4n}^*] = Re[Q_{4n} Q_{3n}^* Q_{n}^*]
1937 Double_t reQ3nQ1nQ4nstar = reQ4nQ3nstarQ1nstar;
77515452 1938
9c1a9547 1939 // Im[Q_{4n} Q_{3n}^* Q_{n}^*]
1940 //Double_t imQ4nQ3nstarQ1nstar = calculate and implement this (deleteMe)
6f366058 1941
9c1a9547 1942 // Re[Q_{3n} Q_{2n}^* Q_{n}^*]
1943 Double_t reQ3nQ2nstarQ1nstar = dReQ3n*dReQ2n*dReQ1n-dReQ3n*dImQ2n*dImQ1n+dImQ3n*dReQ2n*dImQ1n
1944 + dImQ3n*dImQ2n*dReQ1n;
1945
1946 // Re[Q_{2n} Q_{n} Q_{3n}^*] = Re[Q_{3n} Q_{2n}^* Q_{n}^*]
1947 Double_t reQ2nQ1nQ3nstar = reQ3nQ2nstarQ1nstar;
3d824203 1948
9c1a9547 1949 // Im[Q_{3n} Q_{2n}^* Q_{n}^*]
1950 //Double_t imQ3nQ2nstarQ1nstar; //calculate and implement this (deleteMe)
3d824203 1951
9c1a9547 1952 // Re[Q_{3n} Q_{n}^* Q_{n}^* Q_{n}^*]
1953 Double_t reQ3nQ1nstarQ1nstarQ1nstar = dReQ3n*pow(dReQ1n,3)-3.*dReQ1n*dReQ3n*pow(dImQ1n,2)
1954 + 3.*dImQ1n*dImQ3n*pow(dReQ1n,2)-dImQ3n*pow(dImQ1n,3);
1955
1956 // Im[Q_{3n} Q_{n}^* Q_{n}^* Q_{n}^*]
1957 //Double_t imQ3nQ1nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe)
3d824203 1958
9c1a9547 1959 // |Q_{2n}|^2 |Q_{n}|^2
1960 Double_t dQ2nQ1nQ2nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.));
3d824203 1961
9c1a9547 1962 // Re[Q_{4n} Q_{2n}^* Q_{n}^* Q_{n}^*]
1963 Double_t reQ4nQ2nstarQ1nstarQ1nstar = (dReQ4n*dReQ2n+dImQ4n*dImQ2n)*(pow(dReQ1n,2)-pow(dImQ1n,2))
1964 + 2.*dReQ1n*dImQ1n*(dImQ4n*dReQ2n-dReQ4n*dImQ2n);
3d824203 1965
9c1a9547 1966 // Im[Q_{4n} Q_{2n}^* Q_{n}^* Q_{n}^*]
1967 //Double_t imQ4nQ2nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe)
3d824203 1968
9c1a9547 1969 // Re[Q_{2n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^*]
1970 Double_t reQ2nQ1nQ1nstarQ1nstarQ1nstar = (dReQ2n*dReQ1n-dImQ2n*dImQ1n)*(pow(dReQ1n,3)-3.*dReQ1n*pow(dImQ1n,2))
1971 + (dReQ2n*dImQ1n+dReQ1n*dImQ2n)*(3.*dImQ1n*pow(dReQ1n,2)-pow(dImQ1n,3));
1972
1973 // Im[Q_{2n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^*]
1974 //Double_t imQ2nQ1nQ1nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe)
1dfa3c16 1975
9c1a9547 1976 // Re[Q_{2n} Q_{2n} Q_{2n}^* Q_{n}^* Q_{n}^*]
1977 Double_t reQ2nQ2nQ2nstarQ1nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))
1978 * (dReQ2n*(pow(dReQ1n,2.)-pow(dImQ1n,2.)) + 2.*dImQ2n*dReQ1n*dImQ1n);
1979
1980 // Im[Q_{2n} Q_{2n} Q_{2n}^* Q_{n}^* Q_{n}^*]
1981 //Double_t imQ2nQ2nQ2nstarQ1nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))
1982 // * (dImQ2n*(pow(dReQ1n,2.)-pow(dImQ1n,2.)) - 2.*dReQ2n*dReQ1n*dImQ1n);
1983
1984 // Re[Q_{4n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
1985 Double_t reQ4nQ1nstarQ1nstarQ1nstarQ1nstar = pow(dReQ1n,4.)*dReQ4n-6.*pow(dReQ1n,2.)*dReQ4n*pow(dImQ1n,2.)
1986 + pow(dImQ1n,4.)*dReQ4n+4.*pow(dReQ1n,3.)*dImQ1n*dImQ4n
1987 - 4.*pow(dImQ1n,3.)*dReQ1n*dImQ4n;
1988
1989 // Im[Q_{4n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
1990 //Double_t imQ4nQ1nstarQ1nstarQ1nstarQ1nstar = pow(dReQ1n,4.)*dImQ4n-6.*pow(dReQ1n,2.)*dImQ4n*pow(dImQ1n,2.)
1991 // + pow(dImQ1n,4.)*dImQ4n+4.*pow(dImQ1n,3.)*dReQ1n*dReQ4n
1992 // - 4.*pow(dReQ1n,3.)*dImQ1n*dReQ4n;
1993
1994 // Re[Q_{3n} Q_{n} Q_{2n}^* Q_{n}^* Q_{n}^*]
1995 Double_t reQ3nQ1nQ2nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)+pow(dImQ1n,2.))
1996 * (dReQ1n*dReQ2n*dReQ3n-dReQ3n*dImQ1n*dImQ2n+dReQ2n*dImQ1n*dImQ3n+dReQ1n*dImQ2n*dImQ3n);
1997
1998 // Im[Q_{3n} Q_{n} Q_{2n}^* Q_{n}^* Q_{n}^*]
1999 //Double_t imQ3nQ1nQ2nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)+pow(dImQ1n,2.))
2000 // * (-dReQ2n*dReQ3n*dImQ1n-dReQ1n*dReQ3n*dImQ2n+dReQ1n*dReQ2n*dImQ3n-dImQ1n*dImQ2n*dImQ3n);
2001
2002
2003 // Re[Q_{2n} Q_{2n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
2004 Double_t reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)*dReQ2n-2.*dReQ1n*dReQ2n*dImQ1n-dReQ2n*pow(dImQ1n,2.)
2005 + dImQ2n*pow(dReQ1n,2.)+2.*dReQ1n*dImQ1n*dImQ2n-pow(dImQ1n,2.)*dImQ2n)
2006 * (pow(dReQ1n,2.)*dReQ2n+2.*dReQ1n*dReQ2n*dImQ1n-dReQ2n*pow(dImQ1n,2.)
2007 - dImQ2n*pow(dReQ1n,2.)+2.*dReQ1n*dImQ1n*dImQ2n+pow(dImQ1n,2.)*dImQ2n);
2008
2009 // Im[Q_{2n} Q_{2n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
2010 //Double_t imQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar = 2.*(pow(dReQ1n,2.)*dReQ2n-dReQ2n*pow(dImQ1n,2.)
2011 // + 2.*dReQ1n*dImQ1n*dImQ2n)*(pow(dReQ1n,2.)*dImQ2n
2012 // - 2.*dReQ1n*dImQ1n*dReQ2n-pow(dImQ1n,2.)*dImQ2n);
2013
2014 // Re[Q_{3n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
2015 Double_t reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)+pow(dImQ1n,2.))
2016 * (pow(dReQ1n,3.)*dReQ3n-3.*dReQ1n*dReQ3n*pow(dImQ1n,2.)
2017 + 3.*pow(dReQ1n,2.)*dImQ1n*dImQ3n-pow(dImQ1n,3.)*dImQ3n);
2018
2019 // Im[Q_{3n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
2020 //Double_t imQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = (pow(dReQ1n,2.)+pow(dImQ1n,2.))
2021 // * (pow(dImQ1n,3.)*dReQ3n-3.*dImQ1n*dReQ3n*pow(dReQ1n,2.)
2022 // - 3.*pow(dImQ1n,2.)*dReQ1n*dImQ3n+pow(dReQ1n,3.)*dImQ3n);
2023
2024 // |Q_{2n}|^2 |Q_{n}|^4
2025 Double_t dQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar = (pow(dReQ2n,2.)+pow(dImQ2n,2.))*pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.);
2026
2027 // Re[Q_{2n} Q_{n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
2028 Double_t reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
2029 * (pow(dReQ1n,2.)*dReQ2n-dReQ2n*pow(dImQ1n,2.)
2030 + 2.*dReQ1n*dImQ1n*dImQ2n);
2031
2032 // Im[Q_{2n} Q_{n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
2033 //Double_t imQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
2034 // * (pow(dReQ1n,2.)*dImQ2n-dImQ2n*pow(dImQ1n,2.)
2035 // - 2.*dReQ1n*dReQ2n*dImQ1n);
ae733b3b 2036
9c1a9547 2037
1dfa3c16 2038
9c1a9547 2039
2040 // **************************************
2041 // **** multi-particle correlations: ****
2042 // **************************************
2043 //
2044 // Remark 1: multi-particle correlations calculated with non-weighted Q-vectors are stored in 1D profile fQCorrelations.
2045 // Remark 2: binning of fQCorrelations is organized as follows:
2046 // --------------------------------------------------------------------------------------------------------------------
2047 // 1st bin: <2>_{1n|1n} = two1n1n = cos(n*(phi1-phi2))>
2048 // 2nd bin: <2>_{2n|2n} = two2n2n = cos(2n*(phi1-phi2))>
2049 // 3rd bin: <2>_{3n|3n} = two3n3n = cos(3n*(phi1-phi2))>
2050 // 4th bin: <2>_{4n|4n} = two4n4n = cos(4n*(phi1-phi2))>
2051 // 5th bin: ---- EMPTY ----
2052 // 6th bin: <3>_{2n|1n,1n} = three2n1n1n = <cos(n*(2.*phi1-phi2-phi3))>
2053 // 7th bin: <3>_{3n|2n,1n} = three3n2n1n = <cos(n*(3.*phi1-2.*phi2-phi3))>
2054 // 8th bin: <3>_{4n|2n,2n} = three4n2n2n = <cos(n*(4.*phi1-2.*phi2-2.*phi3))>
2055 // 9th bin: <3>_{4n|3n,1n} = three4n3n1n = <cos(n*(4.*phi1-3.*phi2-phi3))>
2056 // 10th bin: ---- EMPTY ----
2057 // 11th bin: <4>_{1n,1n|1n,1n} = four1n1n1n1n = <cos(n*(phi1+phi2-phi3-phi4))>
2058 // 12th bin: <4>_{2n,1n|2n,1n} = four2n1n2n1n = <cos(2.*n*(phi1+phi2-phi3-phi4))>
2059 // 13th bin: <4>_{2n,2n|2n,2n} = four2n2n2n2n = <cos(n*(2.*phi1+phi2-2.*phi3-phi4))>
2060 // 14th bin: <4>_{3n|1n,1n,1n} = four3n1n1n1n = <cos(n*(3.*phi1-phi2-phi3-phi4))>
2061 // 15th bin: <4>_{3n,1n|3n,1n} = four3n1n3n1n = <cos(n*(4.*phi1-2.*phi2-phi3-phi4))>
2062 // 16th bin: <4>_{3n,1n|2n,2n} = four3n1n2n2n = <cos(n*(3.*phi1+phi2-2.*phi3-2.*phi4))>
2063 // 17th bin: <4>_{4n|2n,1n,1n} = four4n2n1n1n = <cos(n*(3.*phi1+phi2-3.*phi3-phi4))>
2064 // 18th bin: ---- EMPTY ----
2065 // 19th bin: <5>_{2n|1n,1n,1n,1n} = five2n1n1n1n1n = <cos(n*(2.*phi1+phi2-phi3-phi4-phi5))>
2066 // 20th bin: <5>_{2n,2n|2n,1n,1n} = five2n2n2n1n1n = <cos(n*(2.*phi1+2.*phi2-2.*phi3-phi4-phi5))>
2067 // 21st bin: <5>_{3n,1n|2n,1n,1n} = five3n1n2n1n1n = <cos(n*(3.*phi1+phi2-2.*phi3-phi4-phi5))>
2068 // 22nd bin: <5>_{4n|1n,1n,1n,1n} = five4n1n1n1n1n = <cos(n*(4.*phi1-phi2-phi3-phi4-phi5))>
2069 // 23rd bin: ---- EMPTY ----
2070 // 24th bin: <6>_{1n,1n,1n|1n,1n,1n} = six1n1n1n1n1n1n = <cos(n*(phi1+phi2+phi3-phi4-phi5-phi6))>
2071 // 25th bin: <6>_{2n,1n,1n|2n,1n,1n} = six2n1n1n2n1n1n = <cos(n*(2.*phi1+2.*phi2-phi3-phi4-phi5-phi6))>
2072 // 26th bin: <6>_{2n,2n|1n,1n,1n,1n} = six2n2n1n1n1n1n = <cos(n*(3.*phi1+phi2-phi3-phi4-phi5-phi6))>
2073 // 27th bin: <6>_{3n,1n|1n,1n,1n,1n} = six3n1n1n1n1n1n = <cos(n*(2.*phi1+phi2+phi3-2.*phi4-phi5-phi6))>
2074 // 28th bin: ---- EMPTY ----
2075 // 29th bin: <7>_{2n,1n,1n|1n,1n,1n,1n} = seven2n1n1n1n1n1n1n = <cos(n*(2.*phi1+phi2+phi3-phi4-phi5-phi6-phi7))>
2076 // 30th bin: ---- EMPTY ----
2077 // 31st bin: <8>_{1n,1n,1n,1n|1n,1n,1n,1n} = eight1n1n1n1n1n1n1n1n = <cos(n*(phi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8))>
2078 // --------------------------------------------------------------------------------------------------------------------
2079
2080 // 2-particle:
2081 Double_t two1n1n = 0.; // <cos(n*(phi1-phi2))>
2082 Double_t two2n2n = 0.; // <cos(2n*(phi1-phi2))>
2083 Double_t two3n3n = 0.; // <cos(3n*(phi1-phi2))>
2084 Double_t two4n4n = 0.; // <cos(4n*(phi1-phi2))>
1dfa3c16 2085
9c1a9547 2086 if(dMult>1)
2087 {
2088 two1n1n = (pow(dReQ1n,2.)+pow(dImQ1n,2.)-dMult)/(dMult*(dMult-1.));
2089 two2n2n = (pow(dReQ2n,2.)+pow(dImQ2n,2.)-dMult)/(dMult*(dMult-1.));
2090 two3n3n = (pow(dReQ3n,2.)+pow(dImQ3n,2.)-dMult)/(dMult*(dMult-1.));
2091 two4n4n = (pow(dReQ4n,2.)+pow(dImQ4n,2.)-dMult)/(dMult*(dMult-1.));
2092
2093 fQCorrelations->Fill(0.,two1n1n,dMult*(dMult-1.));
2094 fQCorrelations->Fill(1.,two2n2n,dMult*(dMult-1.));
2095 fQCorrelations->Fill(2.,two3n3n,dMult*(dMult-1.));
2096 fQCorrelations->Fill(3.,two4n4n,dMult*(dMult-1.));
2097
2098 // distribution of <cos(n*(phi1-phi2))>:
2099 f2pDistribution->Fill(two1n1n,dMult*(dMult-1.));
2100 } // end of if(dMult>1)
ae733b3b 2101
9c1a9547 2102 // 3-particle:
2103 Double_t three2n1n1n = 0.; // <cos(n*(2.*phi1-phi2-phi3))>
2104 Double_t three3n2n1n = 0.; // <cos(n*(3.*phi1-2.*phi2-phi3))>
2105 Double_t three4n2n2n = 0.; // <cos(n*(4.*phi1-2.*phi2-2.*phi3))>
2106 Double_t three4n3n1n = 0.; // <cos(n*(4.*phi1-3.*phi2-phi3))>
ae733b3b 2107
9c1a9547 2108 if(dMult>2)
2109 {
2110 three2n1n1n = (reQ2nQ1nstarQ1nstar-2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
2111 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))+2.*dMult)
2112 / (dMult*(dMult-1.)*(dMult-2.));
2113 three3n2n1n = (reQ3nQ2nstarQ1nstar-(pow(dReQ3n,2.)+pow(dImQ3n,2.))
2114 - (pow(dReQ2n,2.)+pow(dImQ2n,2.))
2115 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult)
2116 / (dMult*(dMult-1.)*(dMult-2.));
2117 three4n2n2n = (reQ4nQ2nstarQ2nstar-2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
2118 - (pow(dReQ4n,2.)+pow(dImQ4n,2.))+2.*dMult)
2119 / (dMult*(dMult-1.)*(dMult-2.));
2120 three4n3n1n = (reQ4nQ3nstarQ1nstar-(pow(dReQ4n,2.)+pow(dImQ4n,2.))
2121 - (pow(dReQ3n,2.)+pow(dImQ3n,2.))
2122 - (pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult)
2123 / (dMult*(dMult-1.)*(dMult-2.));
2124
2125 fQCorrelations->Fill(5.,three2n1n1n,dMult*(dMult-1.)*(dMult-2.));
2126 fQCorrelations->Fill(6.,three3n2n1n,dMult*(dMult-1.)*(dMult-2.));
2127 fQCorrelations->Fill(7.,three4n2n2n,dMult*(dMult-1.)*(dMult-2.));
2128 fQCorrelations->Fill(8.,three4n3n1n,dMult*(dMult-1.)*(dMult-2.));
2129 } // end of if(dMult>2)
ae733b3b 2130
9c1a9547 2131 // 4-particle:
2132 Double_t four1n1n1n1n = 0.; // <cos(n*(phi1+phi2-phi3-phi4))>
2133 Double_t four2n2n2n2n = 0.; // <cos(2.*n*(phi1+phi2-phi3-phi4))>
2134 Double_t four2n1n2n1n = 0.; // <cos(n*(2.*phi1+phi2-2.*phi3-phi4))>
2135 Double_t four3n1n1n1n = 0.; // <cos(n*(3.*phi1-phi2-phi3-phi4))>
2136 Double_t four4n2n1n1n = 0.; // <cos(n*(4.*phi1-2.*phi2-phi3-phi4))>
2137 Double_t four3n1n2n2n = 0.; // <cos(n*(3.*phi1+phi2-2.*phi3-2.*phi4))>
2138 Double_t four3n1n3n1n = 0.; // <cos(n*(3.*phi1+phi2-3.*phi3-phi4))>
1dfa3c16 2139
9c1a9547 2140 if(dMult>3)
2141 {
2142 four1n1n1n1n = (2.*dMult*(dMult-3.)+pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ1n,2.)
2143 + pow(dImQ1n,2.))-2.*reQ2nQ1nstarQ1nstar+(pow(dReQ2n,2.)+pow(dImQ2n,2.)))
2144 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
2145 four2n2n2n2n = (2.*dMult*(dMult-3.)+pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)-4.*(dMult-2.)*(pow(dReQ2n,2.)
2146 + pow(dImQ2n,2.))-2.*reQ4nQ2nstarQ2nstar+(pow(dReQ4n,2.)+pow(dImQ4n,2.)))
2147 / (dMult*(dMult-1)*(dMult-2.)*(dMult-3.));
2148 four2n1n2n1n = (dQ2nQ1nQ2nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar-2.*reQ2nQ1nstarQ1nstar)
2149 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
2150 - ((dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
2151 + (dMult-4.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-(pow(dReQ3n,2.)+pow(dImQ3n,2.)))
2152 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
2153 + (dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));
2154 four3n1n1n1n = (reQ3nQ1nstarQ1nstarQ1nstar-3.*reQ3nQ2nstarQ1nstar-3.*reQ2nQ1nstarQ1nstar)
2155 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
2156 + (2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+3.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
2157 + 6.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-6.*dMult)
2158 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
2159 four4n2n1n1n = (reQ4nQ2nstarQ1nstarQ1nstar-2.*reQ4nQ3nstarQ1nstar-reQ4nQ2nstarQ2nstar-2.*reQ3nQ2nstarQ1nstar)
2160 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
2161 - (reQ2nQ1nstarQ1nstar-2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
2162 - 3.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
2163 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
2164 - 6./((dMult-1.)*(dMult-2.)*(dMult-3.));
2165 four3n1n2n2n = (reQ3nQ1nQ2nstarQ2nstar-reQ4nQ2nstarQ2nstar-reQ3nQ1nQ4nstar-2.*reQ3nQ2nstarQ1nstar)
2166 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
2167 - (2.*reQ1nQ1nQ2nstar-(pow(dReQ4n,2.)+pow(dImQ4n,2.))-2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
2168 - 4.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))-4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
2169 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
2170 - 6./((dMult-1.)*(dMult-2.)*(dMult-3.));
2171 four3n1n3n1n = ((pow(dReQ3n,2.)+pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
2172 - 2.*reQ4nQ3nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar)
2173 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
2174 + ((pow(dReQ4n,2.)+pow(dImQ4n,2.))-(dMult-4.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
2175 + (pow(dReQ2n,2.)+pow(dImQ2n,2.))-(dMult-4.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
2176 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))
2177 + (dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));
2178
2179 fQCorrelations->Fill(10.,four1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
2180 fQCorrelations->Fill(11.,four2n1n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
2181 fQCorrelations->Fill(12.,four2n2n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
2182 fQCorrelations->Fill(13.,four3n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
2183 fQCorrelations->Fill(14.,four3n1n3n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
2184 fQCorrelations->Fill(15.,four3n1n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
2185 fQCorrelations->Fill(16.,four4n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
2186
2187 // distribution of <cos(n*(phi1+phi2-phi3-phi4))>
2188 f4pDistribution->Fill(four1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
2189
2190 // fQProduct->Fill(0.,two1n1n*four1n1n1n1n,dMult*(dMult-1.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
2191 } // end of if(dMult>3)
2192
2193 // 5-particle:
2194 Double_t five2n1n1n1n1n = 0.; // <cos(n*(2.*phi1+phi2-phi3-phi4-phi5))>
2195 Double_t five2n2n2n1n1n = 0.; // <cos(n*(2.*phi1+2.*phi2-2.*phi3-phi4-phi5))>
2196 Double_t five3n1n2n1n1n = 0.; // <cos(n*(3.*phi1+phi2-2.*phi3-phi4-phi5))>
2197 Double_t five4n1n1n1n1n = 0.; // <cos(n*(4.*phi1-phi2-phi3-phi4-phi5))>
4057ba99 2198
9c1a9547 2199 if(dMult>4)
2200 {
2201 five2n1n1n1n1n = (reQ2nQ1nQ1nstarQ1nstarQ1nstar-reQ3nQ1nstarQ1nstarQ1nstar+6.*reQ3nQ2nstarQ1nstar)
2202 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2203 - (reQ2nQ1nQ3nstar+3.*(dMult-6.)*reQ2nQ1nstarQ1nstar+3.*reQ1nQ1nQ2nstar)
2204 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2205 - (2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
2206 + 3.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
2207 - 3.*(dMult-4.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.)))
2208 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2209 - 3.*(pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
2210 - 2.*(2*dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))+2.*dMult*(dMult-4.))
2211 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
2212
2213 five2n2n2n1n1n = (reQ2nQ2nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-2.*reQ2nQ2nQ3nstarQ1nstar)
2214 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2215 + 2.*(reQ4nQ2nstarQ2nstar+4.*reQ3nQ2nstarQ1nstar+reQ3nQ1nQ4nstar)
2216 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2217 + (reQ2nQ2nQ4nstar-2.*(dMult-5.)*reQ2nQ1nstarQ1nstar+2.*reQ1nQ1nQ2nstar)
2218 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2219 - (2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+4.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
2220 + 1.*pow((pow(dReQ2n,2.)+pow(dImQ2n,2.)),2.)
2221 - 2.*(3.*dMult-10.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.)))
2222 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2223 - (4.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
2224 - 4.*(dMult-5.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.))+4.*dMult*(dMult-6.))
2225 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
2226
2227 five4n1n1n1n1n = (reQ4nQ1nstarQ1nstarQ1nstarQ1nstar-6.*reQ4nQ2nstarQ1nstarQ1nstar-4.*reQ3nQ1nstarQ1nstarQ1nstar)
2228 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2229 + (8.*reQ4nQ3nstarQ1nstar+3.*reQ4nQ2nstarQ2nstar+12.*reQ3nQ2nstarQ1nstar+12.*reQ2nQ1nstarQ1nstar)
2230 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2231 - (6.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))+8.*(pow(dReQ3n,2.)+pow(dImQ3n,2.))
2232 + 12.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))+24.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))-24.*dMult)
2233 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
2234
2235 five3n1n2n1n1n = (reQ3nQ1nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ3nQ1nstarQ1nstarQ1nstar)
2236 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2237 - (reQ3nQ1nQ2nstarQ2nstar-3.*reQ4nQ3nstarQ1nstar-reQ4nQ2nstarQ2nstar)
2238 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2239 - ((2.*dMult-13.)*reQ3nQ2nstarQ1nstar-reQ3nQ1nQ4nstar-9.*reQ2nQ1nstarQ1nstar)
2240 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2241 - (2.*reQ1nQ1nQ2nstar+2.*(pow(dReQ4n,2.)+pow(dImQ4n,2.))
2242 - 2.*(dMult-5.)*(pow(dReQ3n,2.)+pow(dImQ3n,2.))+2.*(pow(dReQ3n,2.)
2243 + pow(dImQ3n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
2244 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2245 + (2.*(dMult-6.)*(pow(dReQ2n,2.)+pow(dImQ2n,2.))
2246 - 2.*(pow(dReQ2n,2.)+pow(dImQ2n,2.))*(pow(dReQ1n,2.)+pow(dImQ1n,2.))
2247 - pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)
2248 + 2.*(3.*dMult-11.)*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
2249 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))
2250 - 4.*(dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
2251
2252 fQCorrelations->Fill(18.,five2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
2253 fQCorrelations->Fill(19.,five2n2n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
2254 fQCorrelations->Fill(20.,five3n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
2255 fQCorrelations->Fill(21.,five4n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
2256 } // end of if(dMult>4)
2257
2258 // 6-particle:
2259 Double_t six1n1n1n1n1n1n = 0.; // <cos(n*(phi1+phi2+phi3-phi4-phi5-phi6))>
2260 Double_t six2n2n1n1n1n1n = 0.; // <cos(n*(2.*phi1+2.*phi2-phi3-phi4-phi5-phi6))>
2261 Double_t six3n1n1n1n1n1n = 0.; // <cos(n*(3.*phi1+phi2-phi3-phi4-phi5-phi6))>
2262 Double_t six2n1n1n2n1n1n = 0.; // <cos(n*(2.*phi1+phi2+phi3-2.*phi4-phi5-phi6))>
ae733b3b 2263
9c1a9547 2264 if(dMult>5)
2265 {
2266 six1n1n1n1n1n1n = (pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),3.)+9.*dQ2nQ1nQ2nstarQ1nstar-6.*reQ2nQ1nQ1nstarQ1nstarQ1nstar)
2267 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.))
2268 + 4.*(reQ3nQ1nstarQ1nstarQ1nstar-3.*reQ3nQ2nstarQ1nstar)
2269 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.))
2270 + 2.*(9.*(dMult-4.)*reQ2nQ1nstarQ1nstar+2.*(pow(dReQ3n,2.)+pow(dImQ3n,2.)))
2271 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.))
2272 - 9.*(pow((pow(dReQ1n,2.)+pow(dImQ1n,2.)),2.)+(pow(dReQ2n,2.)+pow(dImQ2n,2.)))
2273 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-5.))
2274 + (18.*(pow(dReQ1n,2.)+pow(dImQ1n,2.)))
2275 / (dMult*(dMult-1)*(dMult-3)*(dMult-4))
2276 - 6./((dMult-1.)*(dMult-2.)*(dMult-3.));
2277
2278 six2n1n1n2n1n1n = (dQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)
2279 * (2.*five2n2n2n1n1n+4.*five2n1n1n1n1n+4.*five3n1n2n1n1n+4.*four2n1n2n1n+1.*four1n1n1n1n)
2280 - dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four1n1n1n1n+4.*two1n1n
2281 + 2.*three2n1n1n+2.*three2n1n1n+4.*four3n1n1n1n+8.*three2n1n1n+2.*four4n2n1n1n
2282 + 4.*four2n1n2n1n+2.*two2n2n+8.*four2n1n2n1n+4.*four3n1n3n1n+8.*three3n2n1n
2283 + 4.*four3n1n2n2n+4.*four1n1n1n1n+4.*four2n1n2n1n+1.*four2n2n2n2n)
2284 - dMult*(dMult-1.)*(dMult-2.)*(2.*three2n1n1n+8.*two1n1n+4.*two1n1n+2.
2285 + 4.*two1n1n+4.*three2n1n1n+2.*two2n2n+4.*three2n1n1n+8.*three3n2n1n
2286 + 8.*two2n2n+4.*three4n3n1n+4.*two3n3n+4.*three3n2n1n+4.*two1n1n
2287 + 8.*three2n1n1n+4.*two1n1n+4.*three3n2n1n+4.*three2n1n1n+2.*two2n2n
2288 + 4.*three3n2n1n+2.*three4n2n2n)-dMult*(dMult-1.)
2289 * (4.*two1n1n+4.+4.*two1n1n+2.*two2n2n+1.+4.*two1n1n+4.*two2n2n+4.*two3n3n
2290 + 1.+2.*two2n2n+1.*two4n4n)-dMult)
2291 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); // to be improved (direct formula needed)
2292
2293 six2n2n1n1n1n1n = (reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)
2294 * (five4n1n1n1n1n+8.*five2n1n1n1n1n+6.*five2n2n2n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)
2295 * (4.*four3n1n1n1n+6.*four4n2n1n1n+12.*three2n1n1n+12.*four1n1n1n1n+24.*four2n1n2n1n
2296 + 4.*four3n1n2n2n+3.*four2n2n2n2n)-dMult*(dMult-1.)*(dMult-2.)*(6.*three2n1n1n+12.*three3n2n1n
2297 + 4.*three4n3n1n+3.*three4n2n2n+8.*three2n1n1n+24.*two1n1n+12.*two2n2n+12.*three2n1n1n+8.*three3n2n1n
2298 + 1.*three4n2n2n)-dMult*(dMult-1.)*(4.*two1n1n+6.*two2n2n+4.*two3n3n+1.*two4n4n+2.*two2n2n+8.*two1n1n+6.)-dMult)
2299 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); // to be improved (direct formula needed)
2300
2301 six3n1n1n1n1n1n = (reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)
2302 * (five4n1n1n1n1n+4.*five2n1n1n1n1n+6.*five3n1n2n1n1n+4.*four3n1n1n1n)
2303 - dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+6.*four1n1n1n1n
2304 + 12.*three2n1n1n+12.*four2n1n2n1n+6.*four3n1n1n1n+12.*three3n2n1n+4.*four3n1n3n1n+3.*four3n1n2n2n)
2305 - dMult*(dMult-1.)*(dMult-2.)*(6.*three2n1n1n+12.*three3n2n1n+4.*three4n3n1n+3.*three4n2n2n+4.*two1n1n
2306 + 12.*two1n1n+6.*three2n1n1n+12.*three2n1n1n+4.*three3n2n1n+12.*two2n2n+4.*three3n2n1n+4.*two3n3n+1.*three4n3n1n
2307 + 6.*three3n2n1n)-dMult*(dMult-1.)*(4.*two1n1n+6.*two2n2n+4.*two3n3n+1.*two4n4n+1.*two1n1n+4.+6.*two1n1n+4.*two2n2n
2308 + 1.*two3n3n)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); // to be improved (direct formula needed)
2309
2310 fQCorrelations->Fill(23.,six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
2311 fQCorrelations->Fill(24.,six2n1n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
2312 fQCorrelations->Fill(25.,six2n2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
2313 fQCorrelations->Fill(26.,six3n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
2314
2315 // distribution of <cos(n*(phi1+phi2+phi3-phi4-phi5-phi6))>
2316 f6pDistribution->Fill(six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
2317
2318 //fQProduct->Fill(1.,two1n1n*six1n1n1n1n1n1n,dMult*(dMult-1.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
2319 //fQProduct->Fill(3.,four1n1n1n1n*six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
2320 } // end of if(dMult>5)
4057ba99 2321
9c1a9547 2322 // 7-particle:
2323 Double_t seven2n1n1n1n1n1n1n = 0.; // <cos(n*(2.*phi1+phi2+phi3-phi4-phi5-phi6-phi7))>
1dfa3c16 2324
9c1a9547 2325 if(dMult>6)
2326 {
2327 seven2n1n1n1n1n1n1n = (reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)
2328 * (2.*six3n1n1n1n1n1n+4.*six1n1n1n1n1n1n+1.*six2n2n1n1n1n1n+6.*six2n1n1n2n1n1n+8.*five2n1n1n1n1n)
2329 - dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(1.*five4n1n1n1n1n +8.*five2n1n1n1n1n+8.*four3n1n1n1n
2330 + 12.*five3n1n2n1n1n+4.*five2n1n1n1n1n+3.*five2n2n2n1n1n+6.*five2n2n2n1n1n+6.*four1n1n1n1n+24.*four1n1n1n1n
2331 + 12.*five2n1n1n1n1n+12.*five2n1n1n1n1n+12.*three2n1n1n+24.*four2n1n2n1n+4.*five3n1n2n1n1n+4.*five2n1n1n1n1n)
2332 - dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+12.*four1n1n1n1n+24.*three2n1n1n
2333 + 24.*four2n1n2n1n+12.*four3n1n1n1n+24.*three3n2n1n+8.*four3n1n3n1n+6.*four3n1n2n2n+6.*three2n1n1n+12.*four1n1n1n1n
2334 + 12.*four2n1n2n1n+6.*three2n1n1n+12.*four2n1n2n1n+4.*four3n1n2n2n+3.*four2n2n2n2n+4.*four1n1n1n1n+6.*three2n1n1n
2335 + 24.*two1n1n+24.*four1n1n1n1n+4.*four3n1n1n1n+24.*two1n1n+24.*three2n1n1n+12.*two2n2n+24.*three2n1n1n+12.*four2n1n2n1n
2336 + 8.*three3n2n1n+8.*four2n1n2n1n+1.*four4n2n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(6.*three2n1n1n+1.*three2n1n1n+8.*two1n1n
2337 + 12.*three3n2n1n+24.*two1n1n+12.*three2n1n1n+4.*three2n1n1n+8.*two1n1n+4.*three4n3n1n+24.*three2n1n1n+8.*three3n2n1n
2338 + 12.*two1n1n+12.*two1n1n+3.*three4n2n2n+24.*two2n2n+6.*two2n2n+12.+12.*three3n2n1n+8.*two3n3n+12.*three2n1n1n+24.*two1n1n
2339 + 4.*three3n2n1n+8.*three3n2n1n+2.*three4n3n1n+12.*two1n1n+8.*three2n1n1n+4.*three2n1n1n+2.*three3n2n1n+6.*two2n2n+8.*two2n2n
2340 + 1.*three4n2n2n+4.*three3n2n1n+6.*three2n1n1n)-dMult*(dMult-1.)*(4.*two1n1n+2.*two1n1n+6.*two2n2n+8.+1.*two2n2n+4.*two3n3n
2341 + 12.*two1n1n+4.*two1n1n+1.*two4n4n+8.*two2n2n+6.+2.*two3n3n+4.*two1n1n+1.*two2n2n)-dMult)
2342 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)); // to be improved (direct formula needed)
2343
2344 fQCorrelations->Fill(28.,seven2n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.));
2345 } // end of if(dMult>6)
ae733b3b 2346
9c1a9547 2347 // 8-particle:
2348 Double_t eight1n1n1n1n1n1n1n1n = 0.; // <cos(n*(phi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8))>
2349 if(dMult>7)
2350 {
2351 eight1n1n1n1n1n1n1n1n = (pow(pow(dReQ1n,2.)+pow(dImQ1n,2.),4.)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)
2352 * (12.*seven2n1n1n1n1n1n1n+16.*six1n1n1n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)
2353 * (8.*six3n1n1n1n1n1n+48.*six1n1n1n1n1n1n+6.*six2n2n1n1n1n1n+96.*five2n1n1n1n1n+72.*four1n1n1n1n+36.*six2n1n1n2n1n1n)
2354 - dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(2.*five4n1n1n1n1n+32.*five2n1n1n1n1n+36.*four1n1n1n1n
2355 + 32.*four3n1n1n1n+48.*five2n1n1n1n1n+48.*five3n1n2n1n1n+144.*five2n1n1n1n1n+288.*four1n1n1n1n+36.*five2n2n2n1n1n
2356 + 144.*three2n1n1n+96.*two1n1n+144.*four2n1n2n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)
2357 * (8.*four3n1n1n1n+48.*four1n1n1n1n+12.*four4n2n1n1n+96.*four2n1n2n1n+96.*three2n1n1n+72.*three2n1n1n+144.*two1n1n
2358 + 16.*four3n1n3n1n+48.*four3n1n1n1n+144.*four1n1n1n1n+72.*four1n1n1n1n+96.*three3n2n1n+24.*four3n1n2n2n+144.*four2n1n2n1n
2359 + 288.*two1n1n+288.*three2n1n1n+9.*four2n2n2n2n+72.*two2n2n+24.)-dMult*(dMult-1.)*(dMult-2.)*(12.*three2n1n1n+16.*two1n1n
2360 + 24.*three3n2n1n+48.*three2n1n1n+96.*two1n1n+8.*three4n3n1n+32.*three3n2n1n+96.*three2n1n1n+144.*two1n1n+6.*three4n2n2n
2361 + 96.*two2n2n+36.*two2n2n+72.+48.*three3n2n1n+16.*two3n3n+72.*three2n1n1n+144.*two1n1n)-dMult*(dMult-1.)*(8.*two1n1n
2362 + 12.*two2n2n+16.+8.*two3n3n+48.*two1n1n+1.*two4n4n+16.*two2n2n+18.)-dMult)
2363 / (dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.)); // to be improved (direct formula needed)
2364
2365 fQCorrelations->Fill(30.,eight1n1n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
ae733b3b 2366
9c1a9547 2367 // distribution of <cos(n*(phi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8))>
2368 f8pDistribution->Fill(eight1n1n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
2369
2370 } // end of if(dMult>7)
1dfa3c16 2371
9c1a9547 2372} // end of AliFlowAnalysisWithQCumulants::CalculateCorrelationsForIntegratedFlow()
bc92c0cb 2373
2374
9c1a9547 2375//================================================================================================================================
bc92c0cb 2376
2377
9c1a9547 2378void AliFlowAnalysisWithQCumulants::CalculateWeightedCorrelationsForIntegratedFlow()
2379{
2380 // calculate all weighted correlations needed for 'no-name' integrated flow and store them in 1D profile fQCorrelationsW
2381
2382 // Remark 1: binning of fQCorrelationsW is organized as follows:
2383 //..............................................................................................
2384 // ---- bins 1-20: 2-particle correlations ----
2385 // 1st bin: two1n1nW1W1 = <w1 w2 cos(n*(phi1-phi2))>
2386 // 2nd bin: two2n2nW2W2 = <w1^2 w2^2 cos(2n*(phi1-phi2))>
2387 // 3rd bin: two3n3nW3W3 = <w1^3 w2^3 cos(3n*(phi1-phi2))>
2388 // 4th bin: two4n4nW4W4 = <w1^4 w2^4 cos(4n*(phi1-phi2))>
2389 // 5th bin: two1n1nW3W1 = <w1^3 w2 cos(n*(phi1-phi2))>
2390 // 6th bin: two1n1nW1W1W2 = <w1 w2 w3^2 cos(n*(phi1-phi2))>
2391 // ---- bins 21-40: 3-particle correlations ----
2392 // 21st bin: three2n1n1nW2W1W1 = <w1^2 w2 w3 cos(n*(2phi1-phi2-phi3))>
2393 // ---- bins 41-60: 4-particle correlations ----
2394 // 41st bin: four1n1n1n1nW1W1W1W1 = <w1 w2 w3 w4 cos(n*(phi1+phi2-phi3-phi4))>
2395 // ---- bins 61-80: 5-particle correlations ----
2396 // ---- bins 81-100: 6-particle correlations ----
2397 // ---- bins 101-120: 7-particle correlations ----
2398 // ---- bins 121-140: 8-particle correlations ----
2399 //..............................................................................................
2400
2401 // multiplicity (number of particles used to determine the reaction plane)
2402 Double_t dMult = (*fSMpk)(0,0);
2403
2404 // real and imaginary parts of weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
2405 Double_t dReQ1n1k = (*fReQ)(0,1);
2406 Double_t dReQ2n2k = (*fReQ)(1,2);
2407 Double_t dReQ3n3k = (*fReQ)(2,3);
2408 Double_t dReQ4n4k = (*fReQ)(3,4);
2409 Double_t dReQ1n3k = (*fReQ)(0,3);
2410 Double_t dImQ1n1k = (*fImQ)(0,1);
2411 Double_t dImQ2n2k = (*fImQ)(1,2);
2412 Double_t dImQ3n3k = (*fImQ)(2,3);
2413 Double_t dImQ4n4k = (*fImQ)(3,4);
2414 Double_t dImQ1n3k = (*fImQ)(0,3);
2415
2416 // dMs are variables introduced in order to simplify some Eqs. bellow:
2417 //..............................................................................................
2418 Double_t dM11 = (*fSMpk)(1,1)-(*fSMpk)(0,2); // dM11 = sum_{i,j=1,i!=j}^M w_i w_j
2419 Double_t dM22 = (*fSMpk)(1,2)-(*fSMpk)(0,4); // dM22 = sum_{i,j=1,i!=j}^M w_i^2 w_j^2
2420 Double_t dM33 = (*fSMpk)(1,3)-(*fSMpk)(0,6); // dM33 = sum_{i,j=1,i!=j}^M w_i^3 w_j^3
2421 Double_t dM44 = (*fSMpk)(1,4)-(*fSMpk)(0,8); // dM44 = sum_{i,j=1,i!=j}^M w_i^4 w_j^4
2422 Double_t dM31 = (*fSMpk)(0,3)*(*fSMpk)(0,1)-(*fSMpk)(0,4); // dM31 = sum_{i,j=1,i!=j}^M w_i^3 w_j
2423 Double_t dM211 = (*fSMpk)(0,2)*(*fSMpk)(1,1)-2.*(*fSMpk)(0,3)*(*fSMpk)(0,1)
2424 - (*fSMpk)(1,2)+2.*(*fSMpk)(0,4); // dM211 = sum_{i,j,k=1,i!=j!=k}^M w_i^2 w_j w_k
2425 Double_t dM1111 = (*fSMpk)(3,1)-6.*(*fSMpk)(0,2)*(*fSMpk)(1,1)
2426 + 8.*(*fSMpk)(0,3)*(*fSMpk)(0,1)
2427 + 3.*(*fSMpk)(1,2)-6.*(*fSMpk)(0,4); // dM1111 = sum_{i,j,k,l=1,i!=j!=k!=l}^M w_i w_j w_k w_l
2428 //..............................................................................................
bc92c0cb 2429
2430
9c1a9547 2431
bc92c0cb 2432
9c1a9547 2433 // ***********************************************
2434 // **** weighted multi-particle correlations: ****
2435 // ***********************************************
2436 //..............................................................................................
2437 // weighted 2-particle correlations:
2438 Double_t two1n1nW1W1 = 0.; // <w1 w2 cos(n*(phi1-phi2))>
2439 Double_t two2n2nW2W2 = 0.; // <w1^2 w2^2 cos(2n*(phi1-phi2))>
2440 Double_t two3n3nW3W3 = 0.; // <w1^3 w2^3 cos(3n*(phi1-phi2))>
2441 Double_t two4n4nW4W4 = 0.; // <w1^4 w2^4 cos(4n*(phi1-phi2))>
2442 Double_t two1n1nW3W1 = 0.; // <w1^3 w2 cos(n*(phi1-phi2))>
2443 Double_t two1n1nW1W1W2 = 0.; // <w1 w2 w3^2 cos(n*(phi1-phi2))>
2444
2445 if(dMult>1)
2446 {
2447 if(dM11)
2448 {
2449 two1n1nW1W1 = (pow(dReQ1n1k,2)+pow(dImQ1n1k,2)-(*fSMpk)(0,2))/dM11;
2450 fQCorrelationsW->Fill(0.,two1n1nW1W1,dM11);
2451 }
2452 if(dM22)
2453 {
2454 two2n2nW2W2 = (pow(dReQ2n2k,2)+pow(dImQ2n2k,2)-(*fSMpk)(0,4))/dM22;
2455 fQCorrelationsW->Fill(1.,two2n2nW2W2,dM22);
2456 }
2457 if(dM33)
2458 {
2459 two3n3nW3W3 = (pow(dReQ3n3k,2)+pow(dImQ3n3k,2)-(*fSMpk)(0,6))/dM33;
2460 fQCorrelationsW->Fill(2.,two3n3nW3W3,dM33);
2461 }
2462 if(dM44)
2463 {
2464 two4n4nW4W4 = (pow(dReQ4n4k,2)+pow(dImQ4n4k,2)-(*fSMpk)(0,8))/dM44;
2465 fQCorrelationsW->Fill(3.,two4n4nW4W4,dM44);
2466 }
2467 if(dM31)
2468 {
2469 two1n1nW3W1 = (dReQ1n3k*dReQ1n1k+dImQ1n3k*dImQ1n1k-(*fSMpk)(0,4))/dM31;
2470 fQCorrelationsW->Fill(4.,two1n1nW3W1,dM31);
2471 }
2472 if(dM211)
2473 {
2474 two1n1nW1W1W2 = ((*fSMpk)(0,2)*(pow(dReQ1n1k,2)+pow(dImQ1n1k,2)-(*fSMpk)(0,2))
2475 - 2.*(dReQ1n3k*dReQ1n1k+dImQ1n3k*dImQ1n1k
2476 - (*fSMpk)(0,4)))/dM211;
2477 fQCorrelationsW->Fill(5.,two1n1nW1W1W2,dM211);
2478 }
2479 } // end of if(dMult>1)
2480 //..............................................................................................
2481
2482 //..............................................................................................
2483 // weighted 3-particle correlations:
2484 Double_t three2n1n1nW2W1W1 = 0.; // <w1^2 w2 w3 cos(n*(2phi1-phi2-phi3))>
2485
2486 if(dMult>2)
2487 {
2488 if(dM211)
2489 {
2490 three2n1n1nW2W1W1 = (pow(dReQ1n1k,2.)*dReQ2n2k+2.*dReQ1n1k*dImQ1n1k*dImQ2n2k-pow(dImQ1n1k,2.)*dReQ2n2k
2491 - 2.*(dReQ1n3k*dReQ1n1k+dImQ1n3k*dImQ1n1k)
2492 - pow(dReQ2n2k,2)-pow(dImQ2n2k,2)
2493 + 2.*(*fSMpk)(0,4))/dM211;
2494 fQCorrelationsW->Fill(20.,three2n1n1nW2W1W1,dM211);
2495 }
2496 } // end of if(dMult>2)
2497 //..............................................................................................
2498
2499 //..............................................................................................
2500 // weighted 4-particle correlations:
2501 Double_t four1n1n1n1nW1W1W1W1 = 0.; // <w1 w2 w3 w4 cos(n*(phi1+phi2-phi3-phi4))>
2502 if(dMult>3)
2503 {
2504 if(dM1111)
2505 {
2506 four1n1n1n1nW1W1W1W1 = (pow(pow(dReQ1n1k,2.)+pow(dImQ1n1k,2.),2)
2507 - 2.*(pow(dReQ1n1k,2.)*dReQ2n2k+2.*dReQ1n1k*dImQ1n1k*dImQ2n2k-pow(dImQ1n1k,2.)*dReQ2n2k)
2508 + 8.*(dReQ1n3k*dReQ1n1k+dImQ1n3k*dImQ1n1k)
2509 + (pow(dReQ2n2k,2)+pow(dImQ2n2k,2))
2510 - 4.*(*fSMpk)(0,2)*(pow(dReQ1n1k,2)+pow(dImQ1n1k,2))
2511 - 6.*(*fSMpk)(0,4)+2.*(*fSMpk)(1,2))/dM1111;
2512 fQCorrelationsW->Fill(40.,four1n1n1n1nW1W1W1W1,dM1111);
2513 }
2514 } // end of if(dMult>3)
2515 //..............................................................................................
2516
2517} // end of AliFlowAnalysisWithQCumulants::CalculateWeightedCorrelationsForIntegratedFlow()
bc92c0cb 2518
2519
9c1a9547 2520//================================================================================================================================
bc92c0cb 2521
2522
9c1a9547 2523void AliFlowAnalysisWithQCumulants::CalculateCorrelationsForDifferentialFlow(TString type)
2524{
2525 // calculate all correlations needed for differential flow for each (pt,eta) bin:
2526
2527 // pt and eta bin width:
2528 Double_t dBinWidthPt = 0.; // to be improved (should I promote this variable to data members?)
2529 Double_t dBinWidthEta = 0.; // to be improved (should I promote this variable to data members?)
2530
2531 if(fnBinsPt) dBinWidthPt=(fPtMax-fPtMin)/fnBinsPt;
2532 if(fnBinsEta) dBinWidthEta=(fEtaMax-fEtaMin)/fnBinsEta;
2533
2534 // multiplicity:
2535 Double_t dMult = (*fSMpk)(0,0);
2536
2537 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
2538 Double_t dReQ1n = (*fReQ)(0,0);
2539 Double_t dReQ2n = (*fReQ)(1,0);
2540 //Double_t dReQ3n = (*fReQ)(2,0);
2541 //Double_t dReQ4n = (*fReQ)(3,0);
2542 Double_t dImQ1n = (*fImQ)(0,0);
2543 Double_t dImQ2n = (*fImQ)(1,0);
2544 //Double_t dImQ3n = (*fImQ)(2,0);
2545 //Double_t dImQ4n = (*fImQ)(3,0);
2546
2547 // looping over all (pt,eta) bins and calculating correlations needed for differential flow:
2548 for(Int_t p=1;p<=fnBinsPt;p++)
2549 {
2550 for(Int_t e=1;e<=fnBinsEta;e++)
2551 {
2552 // real and imaginary parts of q_n (non-weighted Q-vector evaluated only for POIs in harmonic n for each (pt,eta) bin):
2553 Double_t dReqnPtEta = 0.;
2554 Double_t dImqnPtEta = 0.;
2555
2556 // number of POIs in each (pt,eta) bin:
2557 Double_t dmPtEta = 0.;
2558
2559 // real and imaginary parts of q''_{n}, q''_{2n}, ...
2560 // (non-weighted Q-vectors evaluated only for particles which are both RPs and POIs in harmonic n, 2n, ... for each (pt,eta) bin):
2561 Double_t dReqPrimePrime1nPtEta = 0.;
2562 Double_t dImqPrimePrime1nPtEta = 0.;
2563 Double_t dReqPrimePrime2nPtEta = 0.;
2564 Double_t dImqPrimePrime2nPtEta = 0.;
2565
2566 // number of particles which are both RPs and POIs in each (pt,eta) bin:
2567 Double_t dmPrimePrimePtEta = 0.;
2568
2569 if(type == "POI")
2570 {
2571 // q''_{n}, q''_{2n}:
2572 //...............................................................................................
2573 dReqPrimePrime1nPtEta = fReqPrimePrime1nPtEta->GetBinContent(fReqPrimePrime1nPtEta->GetBin(p,e));
2574 dImqPrimePrime1nPtEta = fImqPrimePrime1nPtEta->GetBinContent(fImqPrimePrime1nPtEta->GetBin(p,e));
2575 dReqPrimePrime2nPtEta = fReqPrimePrime2nPtEta->GetBinContent(fReqPrimePrime2nPtEta->GetBin(p,e));
2576 dImqPrimePrime2nPtEta = fImqPrimePrime2nPtEta->GetBinContent(fImqPrimePrime2nPtEta->GetBin(p,e));
2577 //...............................................................................................
2578
2579 // m'':
2580 dmPrimePrimePtEta = fmPrimePrimePtEta->GetBinContent(fmPrimePrimePtEta->GetBin(p,e));
2581
2582 // q'_{n}:
2583 dReqnPtEta = fReqnPtEta->GetBinContent(fReqnPtEta->GetBin(p,e));
2584 dImqnPtEta = fImqnPtEta->GetBinContent(fImqnPtEta->GetBin(p,e));
2585 dmPtEta = fmPtEta->GetBinContent(fmPtEta->GetBin(p,e));
2586 }
2587 else if(type == "RP")
2588 {
2589 // q_RP{n}, q_RP{2n}:
2590 //...............................................................................................
2591 dReqPrimePrime1nPtEta = fReqRP1nPtEta->GetBinContent(fReqRP1nPtEta->GetBin(p,e));
2592 dImqPrimePrime1nPtEta = fImqRP1nPtEta->GetBinContent(fImqRP1nPtEta->GetBin(p,e));
2593 dReqPrimePrime2nPtEta = fReqRP2nPtEta->GetBinContent(fReqRP2nPtEta->GetBin(p,e));
2594 dImqPrimePrime2nPtEta = fImqRP2nPtEta->GetBinContent(fImqRP2nPtEta->GetBin(p,e));
2595 //...............................................................................................
2596
2597 // m'':
2598 dmPrimePrimePtEta = fmRPPtEta->GetBinContent(fmRPPtEta->GetBin(p,e));
2599
2600 dReqnPtEta = fReqRP1nPtEta->GetBinContent(fReqRP1nPtEta->GetBin(p,e)); // not a bug ;-)
2601 dImqnPtEta = fImqRP1nPtEta->GetBinContent(fImqRP1nPtEta->GetBin(p,e)); // not a bug ;-)
2602 dmPtEta = fmRPPtEta->GetBinContent(fmRPPtEta->GetBin(p,e)); // not a bug ;-)
2603 }
2604
2605 // 2'-particle correlation:
2606 Double_t two1n1nPtEta = 0.;
2607 if(dmPtEta*dMult-dmPrimePrimePtEta)
2608 {
2609 two1n1nPtEta = (dReqnPtEta*dReQ1n+dImqnPtEta*dImQ1n-dmPrimePrimePtEta)
2610 / (dmPtEta*dMult-dmPrimePrimePtEta);
2611
2612 // fill the 2D profile to get the average correlation for each (pt, eta) bin:
2613 if(type == "POI")
2bdc5281 2614 {
9c1a9547 2615 f2pPtEtaPOI->Fill(fPtMin+(p-1)*dBinWidthPt,fEtaMin+(e-1)*dBinWidthEta,two1n1nPtEta,dmPtEta*dMult-dmPrimePrimePtEta);
2616 }
2617 else if(type == "RP")
2618 {
2619 f2pPtEtaRP->Fill(fPtMin+(p-1)*dBinWidthPt,fEtaMin+(e-1)*dBinWidthEta,two1n1nPtEta,dmPtEta*dMult-dmPrimePrimePtEta);
2620 }
2621 } // end of if(dmPtEta*dMult-dmPrimePrimePtEta)
2bdc5281 2622
9c1a9547 2623 // 4'-particle correlation:
2624 Double_t four1n1n1n1nPtEta = 0.;
2625 if((dmPtEta-dmPrimePrimePtEta)*dMult*(dMult-1.)*(dMult-2.)
2626 + dmPrimePrimePtEta*(dMult-1.)*(dMult-2.)*(dMult-3.)) // to be improved (introduce a new variable for this expression)
2627 {
2628 four1n1n1n1nPtEta = ((pow(dReQ1n,2.)+pow(dImQ1n,2.))*(dReqnPtEta*dReQ1n+dImqnPtEta*dImQ1n)
2629 - dReqPrimePrime2nPtEta*(pow(dReQ1n,2.)-pow(dImQ1n,2.))
2630 - 2.*dImqPrimePrime2nPtEta*dReQ1n*dImQ1n
2631 - dReqnPtEta*(dReQ1n*dReQ2n+dImQ1n*dImQ2n)
2632 + dImqnPtEta*(dImQ1n*dReQ2n-dReQ1n*dImQ2n)
2633 - 2.*dMult*(dReqnPtEta*dReQ1n+dImqnPtEta*dImQ1n)
2634 - 2.*(pow(dReQ1n,2.)+pow(dImQ1n,2.))*dmPrimePrimePtEta
2635 + 6.*(dReqPrimePrime1nPtEta*dReQ1n+dImqPrimePrime1nPtEta*dImQ1n)
2636 + 1.*(dReqPrimePrime2nPtEta*dReQ2n+dImqPrimePrime2nPtEta*dImQ2n)
2637 + 2.*(dReqnPtEta*dReQ1n+dImqnPtEta*dImQ1n)
2638 + 2.*dmPrimePrimePtEta*dMult
2639 - 6.*dmPrimePrimePtEta)
2640 / ((dmPtEta-dmPrimePrimePtEta)*dMult*(dMult-1.)*(dMult-2.)
2641 + dmPrimePrimePtEta*(dMult-1.)*(dMult-2.)*(dMult-3.));
2642
2643 // fill the 2D profile to get the average correlation for each (pt, eta) bin:
2644 if(type == "POI")
2645 {
2646 f4pPtEtaPOI->Fill(fPtMin+(p-1)*dBinWidthPt,fEtaMin+(e-1)*dBinWidthEta,four1n1n1n1nPtEta,
2647 (dmPtEta-dmPrimePrimePtEta)*dMult*(dMult-1.)*(dMult-2.)
2648 + dmPrimePrimePtEta*(dMult-1.)*(dMult-2.)*(dMult-3.));
2649 }
2650 else if(type == "RP")
2651 {
2652 f4pPtEtaRP->Fill(fPtMin+(p-1)*dBinWidthPt,fEtaMin+(e-1)*dBinWidthEta,four1n1n1n1nPtEta,
2653 (dmPtEta-dmPrimePrimePtEta)*dMult*(dMult-1.)*(dMult-2.)
2654 + dmPrimePrimePtEta*(dMult-1.)*(dMult-2.)*(dMult-3.));
2655 }
2656 } // end of if((dmPtEta-dmPrimePrimePtEta)*dMult*(dMult-1.)*(dMult-2.)
2657 // +dmPrimePrimePtEta*(dMult-1.)*(dMult-2.)*(dMult-3.))
2658
2659 } // end of for(Int_t e=1;e<=fnBinsEta;e++)
2660 } // end of for(Int_t p=1;p<=fnBinsPt;p++)
2661
2662} // end of AliFlowAnalysisWithQCumulants::CalculateCorrelationsForDifferentialFlow()
bc92c0cb 2663
bc92c0cb 2664
9c1a9547 2665//================================================================================================================================
bc92c0cb 2666
2667
9c1a9547 2668void AliFlowAnalysisWithQCumulants::CalculateWeightedCorrelationsForDifferentialFlow(TString type)
2669{
2670 // calculate all weighted correlations needed for differential flow
2671
2672 // pt and eta bin width:
2673 Double_t dBinWidthPt = 0.; // to be improved (should I promote this variable to data members?)
2674 Double_t dBinWidthEta = 0.; // to be improved (should I promote this variable to data members?)
2675
2676 if(fnBinsPt) dBinWidthPt=(fPtMax-fPtMin)/fnBinsPt;
2677 if(fnBinsEta) dBinWidthEta=(fEtaMax-fEtaMin)/fnBinsEta;
2678
2679 // real and imaginary parts of weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
2680 Double_t dReQ1n1k = (*fReQ)(0,1);
2681 Double_t dReQ2n2k = (*fReQ)(1,2);
2682 Double_t dReQ1n3k = (*fReQ)(0,3);
2683 //Double_t dReQ4n4k = (*fReQ)(3,4);
2684 Double_t dImQ1n1k = (*fImQ)(0,1);
2685 Double_t dImQ2n2k = (*fImQ)(1,2);
2686 Double_t dImQ1n3k = (*fImQ)(0,3);
2687 //Double_t dImQ4n4k = (*fImQ)(3,4);
2688
2689 // S^M_{p,k} (see .h file for the definition of fSMpk):
2690 Double_t dSM1p1k = (*fSMpk)(0,1);
2691 Double_t dSM1p2k = (*fSMpk)(0,2);
2692 Double_t dSM1p3k = (*fSMpk)(0,3);
2693 Double_t dSM2p1k = (*fSMpk)(1,1);
2694 Double_t dSM3p1k = (*fSMpk)(2,1);
2695
2696 // looping over all (pt,eta) bins and calculating weighted correlations needed for differential flow:
2697 for(Int_t p=1;p<=fnBinsPt;p++)
2698 {
2699 for(Int_t e=1;e<=fnBinsEta;e++)
2700 {
2701 // real and imaginary parts of q_n (non-weighted Q-vector evaluated only for POIs in harmonic n for each (pt,eta) bin):
2702 Double_t dReqnPtEta = 0.;
2703 Double_t dImqnPtEta = 0.;
2704
2705 // number of POIs in each (pt,eta) bin:
2706 Double_t dmPtEta = 0.;
2707
2708 // real and imaginary parts of q''_{n,2k}, q''_{2n,1k}, ...
2709 // (weighted Q-vectors evaluated only for particles which are both RPs and POIs in harmonic n, 2n, ... for each (pt,eta) bin):
2710 Double_t dReqPrimePrime1n2kPtEta = 0.;
2711 Double_t dImqPrimePrime1n2kPtEta = 0.;
2712 Double_t dReqPrimePrime2n1kPtEta = 0.;
2713 Double_t dImqPrimePrime2n1kPtEta = 0.;
2714
2715 // S^{m''}_{1,1}, S^{m''}_{1,2}, S^{m''}_{1,3}... (see .h file for the definition):
2716 Double_t dSmPrimePrime1p1kPtEta = 0.;
2717 Double_t dSmPrimePrime1p2kPtEta = 0.;
2718 Double_t dSmPrimePrime1p3kPtEta = 0.;
2719
2720 // M0111 from Eq. (118) in QC2c (to be improved (notation))
2721 Double_t dM0111 = 0.;
2722
2723 // qPOI_{n}: // to be improved (notation)
2724 if(type == "POI")
2725 {
2726 dReqnPtEta = fReqnPtEta->GetBinContent(fReqnPtEta->GetBin(p,e));
2727 dImqnPtEta = fImqnPtEta->GetBinContent(fImqnPtEta->GetBin(p,e));
2728 dmPtEta = fmPtEta->GetBinContent(fmPtEta->GetBin(p,e));
2729
2730 //...............................................................................................
2731 // q''_{n,2k}, q''_{2n,1k}:
2732 dReqPrimePrime1n2kPtEta = fReqPrimePrime1n2kPtEta->GetBinContent(fReqPrimePrime1n2kPtEta->GetBin(p,e));
2733 dImqPrimePrime1n2kPtEta = fImqPrimePrime1n2kPtEta->GetBinContent(fImqPrimePrime1n2kPtEta->GetBin(p,e));
2734 dReqPrimePrime2n1kPtEta = fReqPrimePrime2n1kPtEta->GetBinContent(fReqPrimePrime2n1kPtEta->GetBin(p,e));
2735 dImqPrimePrime2n1kPtEta = fImqPrimePrime2n1kPtEta->GetBinContent(fImqPrimePrime2n1kPtEta->GetBin(p,e));
2736
2737 // S^{m''}_{1,1}, S^{m''}_{1,2}, S^{m''}_{1,3}...:
2738 dSmPrimePrime1p1kPtEta = fSmPrimePrime1p1kPtEta->GetBinContent(fSmPrimePrime1p1kPtEta->GetBin(p,e));
2739 dSmPrimePrime1p2kPtEta = fSmPrimePrime1p2kPtEta->GetBinContent(fSmPrimePrime1p2kPtEta->GetBin(p,e));
2740 dSmPrimePrime1p3kPtEta = fSmPrimePrime1p3kPtEta->GetBinContent(fSmPrimePrime1p3kPtEta->GetBin(p,e));
2741
2742 // M0111 from Eq. (118) in QC2c (to be improved (notation)):
2743 dM0111 = dmPtEta*(dSM3p1k-3.*dSM1p1k*dSM1p2k+2.*dSM1p3k)
2744 - 3.*(dSmPrimePrime1p1kPtEta*(dSM2p1k-dSM1p2k)
2745 + 2.*(dSmPrimePrime1p3kPtEta-dSmPrimePrime1p2kPtEta*dSM1p1k));
2746 //...............................................................................................
2747 }
2748 else if(type == "RP")
2749 {
2750 dReqnPtEta = fReqRP1nPtEta->GetBinContent(fReqRP1nPtEta->GetBin(p,e)); // not a bug ;-)
2751 dImqnPtEta = fImqRP1nPtEta->GetBinContent(fImqRP1nPtEta->GetBin(p,e)); // not a bug ;-)
2752 dmPtEta = fmRPPtEta->GetBinContent(fmRPPtEta->GetBin(p,e)); // not a bug ;-)
2753
2754 //...............................................................................................
2755 // q''_{n,2k}, q''_{2n,1k}: (to be improved (notation)):
2756 dReqPrimePrime1n2kPtEta = fReqRP1n2kPtEta->GetBinContent(fReqRP1n2kPtEta->GetBin(p,e));
2757 dImqPrimePrime1n2kPtEta = fImqRP1n2kPtEta->GetBinContent(fImqRP1n2kPtEta->GetBin(p,e));
2758 dReqPrimePrime2n1kPtEta = fReqRP2n1kPtEta->GetBinContent(fReqRP2n1kPtEta->GetBin(p,e));
2759 dImqPrimePrime2n1kPtEta = fImqRP2n1kPtEta->GetBinContent(fImqRP2n1kPtEta->GetBin(p,e));
2760
2761 // S^{m''}_{1,1}, S^{m''}_{1,2}, S^{m''}_{1,3}...: (to be improved (notation)):
2762 dSmPrimePrime1p1kPtEta = fSmRP1p1kPtEta->GetBinContent(fSmRP1p1kPtEta->GetBin(p,e));
2763 dSmPrimePrime1p2kPtEta = fSmRP1p2kPtEta->GetBinContent(fSmRP1p2kPtEta->GetBin(p,e));
2764 dSmPrimePrime1p3kPtEta = fSmRP1p3kPtEta->GetBinContent(fSmRP1p3kPtEta->GetBin(p,e));
2765
2766 // M0111 from Eq. (118) in QC2c (to be improved (notation)):
2767 dM0111 = dmPtEta*(dSM3p1k-3.*dSM1p1k*dSM1p2k+2.*dSM1p3k)
2768 - 3.*(dSmPrimePrime1p1kPtEta*(dSM2p1k-dSM1p2k)
2769 + 2.*(dSmPrimePrime1p3kPtEta-dSmPrimePrime1p2kPtEta*dSM1p1k));
2770 //...............................................................................................
2771 }
2772
2773 // 2'-particle correlation:
2774 Double_t two1n1nW0W1PtEta = 0.;
2775 if(dmPtEta*dSM1p1k-dSmPrimePrime1p1kPtEta)
2776 {
2777 two1n1nW0W1PtEta = (dReqnPtEta*dReQ1n1k+dImqnPtEta*dImQ1n1k-dSmPrimePrime1p1kPtEta)
2778 / (dmPtEta*dSM1p1k-dSmPrimePrime1p1kPtEta);
2779
2780 // fill the 2D profile to get the average correlation for each (pt, eta) bin:
2781 if(type == "POI")
2782 {
2783 f2pPtEtaPOIW->Fill(fPtMin+(p-1)*dBinWidthPt,fEtaMin+(e-1)*dBinWidthEta,two1n1nW0W1PtEta,
2784 dmPtEta*dSM1p1k-dSmPrimePrime1p1kPtEta);
2785 }
2786 else if(type == "RP")
2787 {
2788 f2pPtEtaRPW->Fill(fPtMin+(p-1)*dBinWidthPt,fEtaMin+(e-1)*dBinWidthEta,two1n1nW0W1PtEta,
2789 dmPtEta*dSM1p1k-dSmPrimePrime1p1kPtEta);
2790 }
2791 } // end of if(dmPtEta*dMult-dmPrimePrimePtEta)
2792
2793 // 4'-particle correlation:
2794 Double_t four1n1n1n1nW0W1W1W1PtEta = 0.;
2795 if(dM0111)
2796 {
2797 four1n1n1n1nW0W1W1W1PtEta = ((pow(dReQ1n1k,2.)+pow(dImQ1n1k,2.))*(dReqnPtEta*dReQ1n1k+dImqnPtEta*dImQ1n1k)
2798 - dReqPrimePrime2n1kPtEta*(pow(dReQ1n1k,2.)-pow(dImQ1n1k,2.))
2799 - 2.*dImqPrimePrime2n1kPtEta*dReQ1n1k*dImQ1n1k
2800 - dReqnPtEta*(dReQ1n1k*dReQ2n2k+dImQ1n1k*dImQ2n2k)
2801 + dImqnPtEta*(dImQ1n1k*dReQ2n2k-dReQ1n1k*dImQ2n2k)
2802 - 2.*dSM1p2k*(dReqnPtEta*dReQ1n1k+dImqnPtEta*dImQ1n1k)
2803 - 2.*(pow(dReQ1n1k,2.)+pow(dImQ1n1k,2.))*dSmPrimePrime1p1kPtEta
2804 + 6.*(dReqPrimePrime1n2kPtEta*dReQ1n1k+dImqPrimePrime1n2kPtEta*dImQ1n1k)
2805 + 1.*(dReqPrimePrime2n1kPtEta*dReQ2n2k+dImqPrimePrime2n1kPtEta*dImQ2n2k)
2806 + 2.*(dReqnPtEta*dReQ1n3k+dImqnPtEta*dImQ1n3k)
2807 + 2.*dSmPrimePrime1p1kPtEta*dSM1p2k
2808 - 6.*dSmPrimePrime1p3kPtEta)
2809 / dM0111; // to be imropoved (notation of dM0111)
2810
2811 // fill the 2D profile to get the average correlation for each (pt, eta) bin:
2812 if(type == "POI")
2813 {
2814 f4pPtEtaPOIW->Fill(fPtMin+(p-1)*dBinWidthPt,fEtaMin+(e-1)*dBinWidthEta,four1n1n1n1nW0W1W1W1PtEta,dM0111);
2815 }
2816 else if(type == "RP")
2817 {
2818 f4pPtEtaRPW->Fill(fPtMin+(p-1)*dBinWidthPt,fEtaMin+(e-1)*dBinWidthEta,four1n1n1n1nW0W1W1W1PtEta,dM0111);
2819 }
2820 } // end of if(dM0111)
2821
2822 } // end of for(Int_t e=1;e<=fnBinsEta;e++)
2823 } // end of for(Int_t p=1;p<=fnBinsPt;p++)
2824
2825} // end of AliFlowAnalysisWithQCumulants::CalculateWeightedCorrelationsForDifferentialFlow(TString type)
bc92c0cb 2826
2827
9c1a9547 2828//================================================================================================================================
bc92c0cb 2829
2830
2bdc5281 2831void AliFlowAnalysisWithQCumulants::CalculateCorrectionsForNonUniformAcceptanceForNoNameIntegratedFlowCosTerms()
c365fe76 2832{
2bdc5281 2833 // calculate corrections for non-uniform acceptance of the detector for no-name integrated flow (cos terms)
c365fe76 2834
2835 // multiplicity:
2836 Double_t dMult = (*fSMpk)(0,0);
2837
2838 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
2839 Double_t dReQ1n = (*fReQ)(0,0);
2840 Double_t dReQ2n = (*fReQ)(1,0);
2841 //Double_t dReQ3n = (*fReQ)(2,0);
2842 //Double_t dReQ4n = (*fReQ)(3,0);
2843 Double_t dImQ1n = (*fImQ)(0,0);
2844 Double_t dImQ2n = (*fImQ)(1,0);
2845 //Double_t dImQ3n = (*fImQ)(2,0);
2846 //Double_t dImQ4n = (*fImQ)(3,0);
2847
2848 // *************************************************************
2849 // **** corrections for non-uniform acceptance (cos terms): ****
2850 // *************************************************************
2851 //
2852 // Remark 1: corrections for non-uniform acceptance (cos terms) calculated with non-weighted Q-vectors
2853 // are stored in 1D profile fQCorrectionsCos.
2854 // Remark 2: binning of fQCorrectionsCos is organized as follows:
2855 // --------------------------------------------------------------------------------------------------------------------
2856 // 1st bin: <<cos(n*(phi1))>> = cosP1n
2857 // 2nd bin: <<cos(n*(phi1+phi2))>> = cosP1nP1n
2858 // 3rd bin: <<cos(n*(phi1-phi2-phi3))>> = cosP1nM1nM1n
2859 // ...
2860 // --------------------------------------------------------------------------------------------------------------------
2861
2862 // 1-particle:
2863 Double_t cosP1n = 0.; // <<cos(n*(phi1))>>
2864
2865 if(dMult>0)
2866 {
2867 cosP1n = dReQ1n/dMult;
2868
2869 fQCorrectionsCos->Fill(0.,cosP1n,dMult);
2870 }
2871
2872 // 2-particle:
2873 Double_t cosP1nP1n = 0.; // <<cos(n*(phi1+phi2))>>
2874
2875 if(dMult>1)
2876 {
2877 cosP1nP1n = (pow(dReQ1n,2)-pow(dImQ1n,2)-dReQ2n)/(dMult*(dMult-1));
2878
2879 fQCorrectionsCos->Fill(1.,cosP1nP1n,dMult*(dMult-1));
2880 }
2881
2882 // 3-particle:
2883 Double_t cosP1nM1nM1n = 0.; // <<cos(n*(phi1-phi2-phi3))>>
2884
2885 if(dMult>2)
2886 {
2887 cosP1nM1nM1n = ( dReQ1n*(pow(dReQ1n,2)+pow(dImQ1n,2)) - dReQ1n*dReQ2n - dImQ1n*dImQ2n - 2.*(dMult-1)*dReQ1n ) /(dMult*(dMult-1)*(dMult-2));
2888
2889 fQCorrectionsCos->Fill(2.,cosP1nM1nM1n,dMult*(dMult-1)*(dMult-2));
2890 }
2891
2bdc5281 2892} // end of AliFlowAnalysisWithQCumulants::CalculateCorrectionsForNonUniformAcceptanceForNoNameIntegratedFlowCosTerms()
c365fe76 2893
2894
2895//================================================================================================================================
2896
2897
2bdc5281 2898void AliFlowAnalysisWithQCumulants::CalculateCorrectionsForNonUniformAcceptanceForNoNameIntegratedFlowSinTerms()
c365fe76 2899{
2bdc5281 2900 // calculate corrections for non-uniform acceptance of the detector for no-name integrated flow (sin terms)
c365fe76 2901
2902 // multiplicity:
2903 Double_t dMult = (*fSMpk)(0,0);
2904
2905 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
2906 Double_t dReQ1n = (*fReQ)(0,0);
2907 Double_t dReQ2n = (*fReQ)(1,0);
2908 //Double_t dReQ3n = (*fReQ)(2,0);
2909 //Double_t dReQ4n = (*fReQ)(3,0);
2910 Double_t dImQ1n = (*fImQ)(0,0);
2911 Double_t dImQ2n = (*fImQ)(1,0);
2912 //Double_t dImQ3n = (*fImQ)(2,0);
2913 //Double_t dImQ4n = (*fImQ)(3,0);
2914
2915 // *************************************************************
2916 // **** corrections for non-uniform acceptance (sin terms): ****
2917 // *************************************************************
2918 //
2919 // Remark 1: corrections for non-uniform acceptance (sin terms) calculated with non-weighted Q-vectors
2920 // are stored in 1D profile fQCorrectionsSin.
2921 // Remark 2: binning of fQCorrectionsSin is organized as follows:
2922 // --------------------------------------------------------------------------------------------------------------------
2923 // 1st bin: <<sin(n*(phi1))>> = sinP1n
2924 // 2nd bin: <<sin(n*(phi1+phi2))>> = sinP1nP1n
2925 // 3rd bin: <<sin(n*(phi1-phi2-phi3))>> = sinP1nM1nM1n
2926 // ...
2927 // --------------------------------------------------------------------------------------------------------------------
2928
2929 // 1-particle:
2930 Double_t sinP1n = 0.; // <sin(n*(phi1))>
2931
2932 if(dMult>0)
2933 {
2934 sinP1n = dImQ1n/dMult;
2935
2936 fQCorrectionsSin->Fill(0.,sinP1n,dMult);
2937 }
2938
2939 // 2-particle:
2940 Double_t sinP1nP1n = 0.; // <<sin(n*(phi1+phi2))>>
2941
2942 if(dMult>1)
2943 {
2944 sinP1nP1n = (2.*dReQ1n*dImQ1n-dImQ2n)/(dMult*(dMult-1));
2945
2946 fQCorrectionsSin->Fill(1.,sinP1nP1n,dMult*(dMult-1));
2947 }
2948
2949 // 3-particle:
2950 Double_t sinP1nM1nM1n = 0.; // <<sin(n*(phi1-phi2-phi3))>>
2951
2952 if(dMult>2)
2953 {
2954 sinP1nM1nM1n = ( -dImQ1n*(pow(dReQ1n,2)+pow(dImQ1n,2)) + dReQ1n*dImQ2n - dImQ1n*dReQ2n + 2.*(dMult-1)*dImQ1n ) /(dMult*(dMult-1)*(dMult-2));
2955
2956 fQCorrectionsSin->Fill(2.,sinP1nM1nM1n,dMult*(dMult-1)*(dMult-2));
2957 }
2958
2bdc5281 2959} // end of AliFlowAnalysisWithQCumulants::CalculateCorrectionsForNonUniformAcceptanceForNoNameIntegratedFlowSinTerms()
2960
2961
2962//================================================================================================================================
2963
2964
2965void AliFlowAnalysisWithQCumulants::CalculateCorrectionsForNonUniformAcceptanceForDifferentialFlowCosTerms(TString type)
2966{
2967 // calculate corrections for non-uniform acceptance of the detector for differential flow (cos terms)
2968
2969 // pt and eta bin width:
2970 Double_t dBinWidthPt = 0.; // to be improved (should I promote this variable to data members?)
2971 Double_t dBinWidthEta = 0.; // to be improved (should I promote this variable to data members?)
2972
2973 if(fnBinsPt) dBinWidthPt=(fPtMax-fPtMin)/fnBinsPt;
2974 if(fnBinsEta) dBinWidthEta=(fEtaMax-fEtaMin)/fnBinsEta;
2975
2976 // multiplicity:
2977 //Double_t dMult = (*fSMpk)(0,0);
2978
2979 // real and imaginary parts of non-weighted Q-vectors evaluated in harmonics n, 2n, 3n and 4n:
2980 //Double_t dReQ1n = (*fReQ)(0,0);
2981 //Double_t dReQ2n = (*fReQ)(1,0);
2982 //Double_t dReQ3n = (*fReQ)(2,0);
2983 //Double_t dReQ4n = (*fReQ)(3,0);
2984 //Double_t dImQ1n = (*fImQ)(0,0);
2985 //Double_t dImQ2n = (*fImQ)(1,0);
2986 //Double_t dImQ3n = (*fImQ)(2,0);
2987 //Double_t dImQ4n = (*fImQ)(3,0);