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