]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/AliFlowCommon/AliFlowAnalysisWithQCumulants.cxx
Using DAQ logbook fields time_created and time_completed to set start time and end...
[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"
1315fe58 46#include "AliQCumulantsFunctions.h"
3d824203 47#include "TArrayD.h"
48
bc92c0cb 49
50#include "TRandom.h"
51
52class TH1;
53class TGraph;
54class TPave;
55class TLatex;
56class TMarker;
57class TRandom3;
58class TObjArray;
59class TList;
60class TCanvas;
61class TSystem;
62class TROOT;
63class AliFlowVector;
64class TVector;
65
66//================================================================================================================
67
68ClassImp(AliFlowAnalysisWithQCumulants)
69
70AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants():
71 fTrack(NULL),
72 fHistList(NULL),
ae733b3b 73 fDiffFlowList(NULL),
03a02aca 74 fWeightsList(NULL),
1315fe58 75 fAvMultIntFlowQC(NULL),
bc92c0cb 76 fQvectorComponents(NULL),
1315fe58 77 fIntFlowResultsQC(NULL),
78 fDiffFlowResults2ndOrderQC(NULL),
79 fDiffFlowResults4thOrderQC(NULL),
80 fCovariances(NULL),
e085f1a9 81 fQvectorForEachEventX(NULL),//to be removed
82 fQvectorForEachEventY(NULL),//to be removed
bc92c0cb 83 fQCorrelations(NULL),
3d824203 84 fQCorrelationsW(NULL),
8842fb2b 85 fQProduct(NULL),
bc92c0cb 86 fDirectCorrelations(NULL),
1dfa3c16 87 fPtReq1nRP(NULL),
88 fPtImq1nRP(NULL),
89 fPtReq2nRP(NULL),
90 fPtImq2nRP(NULL),
91 f2PerPtBin1n1nRP(NULL),
92 f2PerPtBin2n2nRP(NULL),
93 f3PerPtBin2n1n1nRP(NULL),
94 f3PerPtBin1n1n2nRP(NULL),
95 f4PerPtBin1n1n1n1nRP(NULL),
96 fEtaReq1nRP(NULL),
97 fEtaImq1nRP(NULL),
98 fEtaReq2nRP(NULL),
99 fEtaImq2nRP(NULL),
100 f2PerEtaBin1n1nRP(NULL),
101 f2PerEtaBin2n2nRP(NULL),
102 f3PerEtaBin2n1n1nRP(NULL),
103 f3PerEtaBin1n1n2nRP(NULL),
104 f4PerEtaBin1n1n1n1nRP(NULL),
4057ba99 105 fPtReq1nPrimePOI(NULL),
106 fPtImq1nPrimePOI(NULL),
107 fPtReq2nPrimePOI(NULL),
108 fPtImq2nPrimePOI(NULL),
109 fmPrimePerPtBin(NULL),
110 fPtReq1nPrimePrimePOI(NULL),
111 fPtImq1nPrimePrimePOI(NULL),
112 fPtReq2nPrimePrimePOI(NULL),
113 fPtImq2nPrimePrimePOI(NULL),
114 fmPrimePrimePerPtBin(NULL),
115 fEtaReq1nPrimePOI(NULL),
116 fEtaImq1nPrimePOI(NULL),
117 fEtaReq2nPrimePOI(NULL),
118 fEtaImq2nPrimePOI(NULL),
119 fmPrimePerEtaBin(NULL),
120 fEtaReq1nPrimePrimePOI(NULL),
121 fEtaImq1nPrimePrimePOI(NULL),
122 fEtaReq2nPrimePrimePOI(NULL),
123 fEtaImq2nPrimePrimePOI(NULL),
124 fmPrimePrimePerEtaBin(NULL),
1dfa3c16 125 f2PerPtBin1n1nPOI(NULL),
126 f2PerPtBin2n2nPOI(NULL),
127 f3PerPtBin2n1n1nPOI(NULL),
128 f3PerPtBin1n1n2nPOI(NULL),
129 f4PerPtBin1n1n1n1nPOI(NULL),
1dfa3c16 130 f2PerEtaBin1n1nPOI(NULL),
131 f2PerEtaBin2n2nPOI(NULL),
132 f3PerEtaBin2n1n1nPOI(NULL),
133 f3PerEtaBin1n1n2nPOI(NULL),
134 f4PerEtaBin1n1n1n1nPOI(NULL),
3d824203 135
136
137
138
139 f2WPerPtBin1n1nPOI(NULL),
140 f2WPerPtBin2n2nPOI(NULL),
141 f3WPerPtBin2n1n1nPOI(NULL),
142 f3WPerPtBin1n1n2nPOI(NULL),
143 f4WPerPtBin1n1n1n1nPOI(NULL),
144
145 f2WPerEtaBin1n1nPOI(NULL),
146 f4WPerEtaBin1n1n1n1nPOI(NULL),
147
148 f2WPerPtBin1n1nRP(NULL),
149 f4WPerPtBin1n1n1n1nRP(NULL),
150
151 f2WPerEtaBin1n1nRP(NULL),
152 f4WPerEtaBin1n1n1n1nRP(NULL),
153
154
155
156
157
cb308e83 158 fCommonHists2nd(NULL),
159 fCommonHists4th(NULL),
160 fCommonHists6th(NULL),
161 fCommonHists8th(NULL),
8842fb2b 162 fCommonHistsResults2nd(NULL),
163 fCommonHistsResults4th(NULL),
164 fCommonHistsResults6th(NULL),
165 fCommonHistsResults8th(NULL),
52021ae2 166 f2pDistribution(NULL),
167 f4pDistribution(NULL),
168 f6pDistribution(NULL),
5e838eeb 169 f8pDistribution(NULL),
8842fb2b 170 fnBinsPt(0),
171 fPtMin(0),
1dfa3c16 172 fPtMax(0),
173 fnBinsEta(0),
174 fEtaMin(0),
e085f1a9 175 fEtaMax(0),
176 fEventCounter(0),
177 fUsePhiWeights(kFALSE),
178 fUsePtWeights(kFALSE),
03a02aca 179 fUseEtaWeights(kFALSE)
bc92c0cb 180{
181 //constructor
ae733b3b 182 fHistList = new TList();
183 fDiffFlowList = new TList();
184 fDiffFlowList->SetName("DifferentialFlow");
03a02aca 185 fWeightsList = new TList();
ae733b3b 186 fWeightsList->SetName("Weights");
03a02aca 187
8842fb2b 188 fnBinsPt = AliFlowCommonConstants::GetNbinsPt();
189 fPtMin = AliFlowCommonConstants::GetPtMin();
190 fPtMax = AliFlowCommonConstants::GetPtMax();
191
1dfa3c16 192 fnBinsEta = AliFlowCommonConstants::GetNbinsEta();
193 fEtaMin = AliFlowCommonConstants::GetEtaMin();
194 fEtaMax = AliFlowCommonConstants::GetEtaMax();
bc92c0cb 195}
196
197AliFlowAnalysisWithQCumulants::~AliFlowAnalysisWithQCumulants()
198{
03a02aca 199 //destructor
bc92c0cb 200 delete fHistList;
ae733b3b 201 delete fDiffFlowList;
202 delete fWeightsList;
bc92c0cb 203}
204
205//================================================================================================================
206
e085f1a9 207void AliFlowAnalysisWithQCumulants::Init()
bc92c0cb 208{
209 //various output histograms
bc92c0cb 210 //avarage multiplicity
1315fe58 211 fAvMultIntFlowQC = new TProfile("fAvMultIntFlowQC","Average Multiplicity",1,0,1,"s");
212 fAvMultIntFlowQC->SetXTitle("");
213 fAvMultIntFlowQC->SetYTitle("");
214 fAvMultIntFlowQC->SetLabelSize(0.06);
215 fAvMultIntFlowQC->SetMarkerStyle(25);
216 fAvMultIntFlowQC->SetLabelOffset(0.01);
217 (fAvMultIntFlowQC->GetXaxis())->SetBinLabel(1,"Average Multiplicity");
218 fHistList->Add(fAvMultIntFlowQC);
bc92c0cb 219
220 //Q-vector stuff
221 fQvectorComponents = new TProfile("fQvectorComponents","Avarage of Q-vector components",44,0.,44.,"s");
222 fQvectorComponents->SetXTitle("");
223 fQvectorComponents->SetYTitle("");
224 //fHistList->Add(fQvectorComponents);
225
226 //final results for integrated flow from Q-cumulants
1315fe58 227 fIntFlowResultsQC = new TH1D("fIntFlowResultsQC","Integrated Flow from Q-cumulants",4,0,4);
228 //fIntFlowResults->SetXTitle("");
3d824203 229 //fIntFlowResultsQC->SetYTitle("IntegFALSrated Flow");
1315fe58 230 fIntFlowResultsQC->SetLabelSize(0.06);
52021ae2 231 //fIntFlowResultsQC->SetTickLength(1);
1315fe58 232 fIntFlowResultsQC->SetMarkerStyle(25);
233 (fIntFlowResultsQC->GetXaxis())->SetBinLabel(1,"v_{n}{2}");
234 (fIntFlowResultsQC->GetXaxis())->SetBinLabel(2,"v_{n}{4}");
235 (fIntFlowResultsQC->GetXaxis())->SetBinLabel(3,"v_{n}{6}");
236 (fIntFlowResultsQC->GetXaxis())->SetBinLabel(4,"v_{n}{8}");
1315fe58 237 fHistList->Add(fIntFlowResultsQC);
238
bc92c0cb 239 //final results for differential flow from 2nd order Q-cumulant
8842fb2b 240 fDiffFlowResults2ndOrderQC = new TH1D("fDiffFlowResults2ndOrderQC","Differential Flow from 2nd Order Q-cumulant",fnBinsPt,fPtMin,fPtMax);
1315fe58 241 fDiffFlowResults2ndOrderQC->SetXTitle("p_{t} [GeV]");
242 //fDiffFlowResults2ndOrderQC->SetYTitle("Differential Flow");
243 fHistList->Add(fDiffFlowResults2ndOrderQC);
bc92c0cb 244
245 //final results for differential flow from 4th order Q-cumulant
8842fb2b 246 fDiffFlowResults4thOrderQC = new TH1D("fDiffFlowResults4thOrderQC","Differential Flow from 4th Order Q-cumulant",fnBinsPt,fPtMin,fPtMax);
1315fe58 247 fDiffFlowResults4thOrderQC->SetXTitle("p_{t} [GeV]");
248 //fDiffFlowResults4thOrderQC->SetYTitle("Differential Flow");
249 fHistList->Add(fDiffFlowResults4thOrderQC);
250
251 //final results for covariances (1st bin: <2*4>-<2>*<4>, 2nd bin: <2*6>-<2>*<6>, ...)
252 fCovariances = new TH1D("fCovariances","Covariances",6,0,6);
253 //fCovariances->SetXTitle("");
254 //fCovariances->SetYTitle("<covariance>");
255 fCovariances->SetLabelSize(0.04);
256 fCovariances->SetTickLength(1);
257 fCovariances->SetMarkerStyle(25);
258 (fCovariances->GetXaxis())->SetBinLabel(1,"Cov(2,4)");
259 (fCovariances->GetXaxis())->SetBinLabel(2,"Cov(2,6)");
260 (fCovariances->GetXaxis())->SetBinLabel(3,"Cov(2,8)");
261 (fCovariances->GetXaxis())->SetBinLabel(4,"Cov(4,6)");
262 (fCovariances->GetXaxis())->SetBinLabel(5,"Cov(4,8)");
263 (fCovariances->GetXaxis())->SetBinLabel(6,"Cov(6,8)");
264 fHistList->Add(fCovariances);
bc92c0cb 265
e085f1a9 266 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
267 // !!!! to be removed !!!!
268 //profile containing the x-components of Q-vectors from all events
269 fQvectorForEachEventX = new TProfile("fQvectorForEachEventX","x-components of Q-vectors",44000,1,44000,"s");
270 fHistList->Add(fQvectorForEachEventX);
271
272 //profile containing the y-components of Q-vectors from all events
273 fQvectorForEachEventY = new TProfile("fQvectorForEachEventY","y-components of Q-vectors",44000,1,44000,"s");
274 fHistList->Add(fQvectorForEachEventY);
275 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
276
bc92c0cb 277 //multi-particle correlations calculated from Q-vectors
dee1e0e0 278 fQCorrelations = new TProfile("fQCorrelations","multi-particle correlations from Q-vectors",32,0,32,"s");
1315fe58 279 //fQCorrelations->SetXTitle("correlations");
280 //fQCorrelations->SetYTitle("");
281 fQCorrelations->SetTickLength(-0.01,"Y");
282 fQCorrelations->SetMarkerStyle(25);
283 fQCorrelations->SetLabelSize(0.03);
284 fQCorrelations->SetLabelOffset(0.01,"Y");
dee1e0e0 285
1315fe58 286 (fQCorrelations->GetXaxis())->SetBinLabel(1,"<<2>>_{n|n}");
287 (fQCorrelations->GetXaxis())->SetBinLabel(2,"<<2>>_{2n|2n}");
288 (fQCorrelations->GetXaxis())->SetBinLabel(3,"<<2>>_{3n|3n}");
289 (fQCorrelations->GetXaxis())->SetBinLabel(4,"<<2>>_{4n|4n}");
dee1e0e0 290
1315fe58 291 (fQCorrelations->GetXaxis())->SetBinLabel(6,"<<3>>_{2n|n,n}");
292 (fQCorrelations->GetXaxis())->SetBinLabel(7,"<<3>>_{3n|2n,n}");
293 (fQCorrelations->GetXaxis())->SetBinLabel(8,"<<3>>_{4n|2n,2n}");
294 (fQCorrelations->GetXaxis())->SetBinLabel(9,"<<3>>_{4n|3n,n}");
dee1e0e0 295
1315fe58 296 (fQCorrelations->GetXaxis())->SetBinLabel(11,"<<4>>_{n,n|n,n}");
297 (fQCorrelations->GetXaxis())->SetBinLabel(12,"<<4>>_{2n,n|2n,n}");
dee1e0e0 298 (fQCorrelations->GetXaxis())->SetBinLabel(13,"<<4>>_{2n,2n|2n,2n}");
299 (fQCorrelations->GetXaxis())->SetBinLabel(14,"<<4>>_{3n|n,n,n}");
300 (fQCorrelations->GetXaxis())->SetBinLabel(15,"<<4>>_{3n,n|3n,n}");
301 (fQCorrelations->GetXaxis())->SetBinLabel(16,"<<4>>_{3n,n|2n,2n}");
302 (fQCorrelations->GetXaxis())->SetBinLabel(17,"<<4>>_{4n|2n,n,n}");
303
304 (fQCorrelations->GetXaxis())->SetBinLabel(19,"<<5>>_{2n|n,n,n,n}");
305 (fQCorrelations->GetXaxis())->SetBinLabel(20,"<<5>>_{2n,2n|2n,n,n}");
306 (fQCorrelations->GetXaxis())->SetBinLabel(21,"<<5>>_{3n,n|2n,n,n}");
307 (fQCorrelations->GetXaxis())->SetBinLabel(22,"<<5>>_{4n|n,n,n,n}");
308
309 (fQCorrelations->GetXaxis())->SetBinLabel(24,"<<6>>_{n,n,n|n,n,n}");
310 (fQCorrelations->GetXaxis())->SetBinLabel(25,"<<6>>_{2n,n,n|2n,n,n}");
311 (fQCorrelations->GetXaxis())->SetBinLabel(26,"<<6>>_{2n,2n|n,n,n,n}");
312 (fQCorrelations->GetXaxis())->SetBinLabel(27,"<<6>>_{3n,n|n,n,n,n}");
313
314 (fQCorrelations->GetXaxis())->SetBinLabel(29,"<<7>>_{2n,n,n|n,n,n,n}");
315
316 (fQCorrelations->GetXaxis())->SetBinLabel(31,"<<8>>_{n,n,n,n|n,n,n,n}");
317
bc92c0cb 318 fHistList->Add(fQCorrelations);
319
3d824203 320
321
322
323 //weighted multi-particle correlations calculated from Q-vectors
324 fQCorrelationsW = new TProfile("fQCorrelationsW","weighted multi-particle correlations from Q-vectors",100,0,100,"s");
325 //fQCorrelationsW->SetXTitle("correlations");
326 //fQCorrelationsW->SetYTitle("");
327 fQCorrelationsW->SetTickLength(-0.01,"Y");
328 fQCorrelationsW->SetMarkerStyle(25);
329 fQCorrelationsW->SetLabelSize(0.03);
330 fQCorrelationsW->SetLabelOffset(0.01,"Y");
331
332 (fQCorrelationsW->GetXaxis())->SetBinLabel(1,"<w_{1}w_{2}cos(n(#phi_{1}-#phi_{2}))>");
333 (fQCorrelationsW->GetXaxis())->SetBinLabel(2,"<w_{1}^{2}w_{2}^{2}cos(2n(#phi_{1}-#phi_{2}))>");
334 (fQCorrelationsW->GetXaxis())->SetBinLabel(3,"<w_{1}^{3}w_{2}^{3}cos(3n(#phi_{1}-#phi_{2}))>");
335 (fQCorrelationsW->GetXaxis())->SetBinLabel(4,"<w_{1}^{4}w_{2}^{4}cos(4n(#phi_{1}-#phi_{2}))>");
336 (fQCorrelationsW->GetXaxis())->SetBinLabel(5,"<w_{1}^{3}w_{2}cos(n(#phi_{1}-#phi_{2}))>");
337 (fQCorrelationsW->GetXaxis())->SetBinLabel(6,"<w_{1}^{2}w_{2}w_{3}cos(n(#phi_{1}-#phi_{2}))>");
338
339 (fQCorrelationsW->GetXaxis())->SetBinLabel(11,"<w_{1}w_{2}w_{3}^{2}cos(n(2#phi_{1}-#phi_{2}-#phi_{3}))>");
340
341 (fQCorrelationsW->GetXaxis())->SetBinLabel(21,"<w_{1}w_{2}w_{3}w_{4}cos(n(#phi_{1}+#phi_{2}-#phi_{3}-#phi_{4}))>");
342
343 /*
344 (fQCorrelationsW->GetXaxis())->SetBinLabel(7,"<<3>>_{3n|2n,n}");
345 (fQCorrelationsW->GetXaxis())->SetBinLabel(8,"<<3>>_{4n|2n,2n}");
346 (fQCorrelationsW->GetXaxis())->SetBinLabel(9,"<<3>>_{4n|3n,n}");
347
348 (fQCorrelationsW->GetXaxis())->SetBinLabel(11,"<<4>>_{n,n|n,n}");
349 (fQCorrelationsW->GetXaxis())->SetBinLabel(12,"<<4>>_{2n,n|2n,n}");
350 (fQCorrelationsW->GetXaxis())->SetBinLabel(13,"<<4>>_{2n,2n|2n,2n}");
351 (fQCorrelationsW->GetXaxis())->SetBinLabel(14,"<<4>>_{3n|n,n,n}");
352 (fQCorrelationsW->GetXaxis())->SetBinLabel(15,"<<4>>_{3n,n|3n,n}");
353 (fQCorrelationsW->GetXaxis())->SetBinLabel(16,"<<4>>_{3n,n|2n,2n}");
354 (fQCorrelationsW->GetXaxis())->SetBinLabel(17,"<<4>>_{4n|2n,n,n}");
355
356 (fQCorrelationsW->GetXaxis())->SetBinLabel(19,"<<5>>_{2n|n,n,n,n}");
357 (fQCorrelationsW->GetXaxis())->SetBinLabel(20,"<<5>>_{2n,2n|2n,n,n}");
358 (fQCorrelationsW->GetXaxis())->SetBinLabel(21,"<<5>>_{3n,n|2n,n,n}");
359 (fQCorrelationsW->GetXaxis())->SetBinLabel(22,"<<5>>_{4n|n,n,n,n}");
360
361 (fQCorrelationsW->GetXaxis())->SetBinLabel(24,"<<6>>_{n,n,n|n,n,n}");
362 (fQCorrelationsW->GetXaxis())->SetBinLabel(25,"<<6>>_{2n,n,n|2n,n,n}");
363 (fQCorrelationsW->GetXaxis())->SetBinLabel(26,"<<6>>_{2n,2n|n,n,n,n}");
364 (fQCorrelationsW->GetXaxis())->SetBinLabel(27,"<<6>>_{3n,n|n,n,n,n}");
365
366 (fQCorrelationsW->GetXaxis())->SetBinLabel(29,"<<7>>_{2n,n,n|n,n,n,n}");
367
368 (fQCorrelationsW->GetXaxis())->SetBinLabel(31,"<<8>>_{n,n,n,n|n,n,n,n}");
369 */
370
371 fHistList->Add(fQCorrelationsW);
372
373
374
375
8842fb2b 376 //average products
377 fQProduct = new TProfile("fQProduct","average of products",6,0,6,"s");
378 fQProduct->SetTickLength(-0.01,"Y");
379 fQProduct->SetMarkerStyle(25);
380 fQProduct->SetLabelSize(0.03);
381 fQProduct->SetLabelOffset(0.01,"Y");
382 (fQProduct->GetXaxis())->SetBinLabel(1,"<<2*4>>");
383 (fQProduct->GetXaxis())->SetBinLabel(2,"<<2*6>>");
384 (fQProduct->GetXaxis())->SetBinLabel(3,"<<2*8>>");
385 (fQProduct->GetXaxis())->SetBinLabel(4,"<<4*6>>");
386 (fQProduct->GetXaxis())->SetBinLabel(5,"<<4*8>>");
387 (fQProduct->GetXaxis())->SetBinLabel(6,"<<6*8>>");
388 fQProduct->SetXTitle("");
389 fQProduct->SetYTitle("");
390 fHistList->Add(fQProduct);
bc92c0cb 391
3d824203 392 //weighted multi-particle correlations calculated with nested loops (0..100 integrated flow; 100..200 differential flow)
393 fDirectCorrelations = new TProfile("fDirectCorrelations","multi-particle correlations with nested loops",200,0,200,"s");
bc92c0cb 394 fDirectCorrelations->SetXTitle("");
395 fDirectCorrelations->SetYTitle("correlations");
396 fHistList->Add(fDirectCorrelations);
397
1dfa3c16 398 //fPtReq1nRP
399 fPtReq1nRP = new TProfile("fPtReq1nRP","Re[q_n]",fnBinsPt,fPtMin,fPtMax,"s");
400 fPtReq1nRP->SetXTitle("p_{t} [GeV]");
401 fPtReq1nRP->SetYTitle("Re[q_n]");
1dfa3c16 402
403 //fPtImq1nRP
404 fPtImq1nRP = new TProfile("fPtImq1nRP","Im[q_n]",fnBinsPt,fPtMin,fPtMax,"s");
405 fPtImq1nRP->SetXTitle("p_{t} [GeV]");
406 fPtImq1nRP->SetYTitle("Im[q_n]");
1dfa3c16 407
408 //fPtReq2nRP
409 fPtReq2nRP = new TProfile("fPtReq2nRP","Re[q_2n]",fnBinsPt,fPtMin,fPtMax,"s");
410 fPtReq2nRP->SetXTitle("p_{t} [GeV]");
411 fPtReq2nRP->SetYTitle("Im[D]");
e085f1a9 412
1dfa3c16 413 //fPtImq2nRP
414 fPtImq2nRP = new TProfile("fPtImq2nRP","Im[q_2n]",fnBinsPt,fPtMin,fPtMax,"s");
415 fPtImq2nRP->SetXTitle("p_{t} [GeV]");
416 fPtImq2nRP->SetYTitle("Im[q_2n]");
1dfa3c16 417
418 //f2PerPtBin1n1nRP
419 f2PerPtBin1n1nRP = new TProfile("f2PerPtBin1n1nRP","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
420 f2PerPtBin1n1nRP->SetXTitle("p_{t} [GeV]");
ae733b3b 421 fDiffFlowList->Add(f2PerPtBin1n1nRP);
1dfa3c16 422
423 //f2PerPtBin2n2nRP
424 f2PerPtBin2n2nRP = new TProfile("f2PerPtBin2n2nRP","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
425 f2PerPtBin2n2nRP->SetXTitle("p_{t} [GeV]");
ae733b3b 426 fDiffFlowList->Add(f2PerPtBin2n2nRP);
1dfa3c16 427
428 //f3PerPtBin2n1n1nRP
429 f3PerPtBin2n1n1nRP = new TProfile("f3PerPtBin2n1n1nRP","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
430 f3PerPtBin2n1n1nRP->SetXTitle("p_{t} [GeV]");
ae733b3b 431 fDiffFlowList->Add(f3PerPtBin2n1n1nRP);
1dfa3c16 432
433 //f3PerPtBin1n1n2nRP
434 f3PerPtBin1n1n2nRP = new TProfile("f3PerPtBin1n1n2nRP","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
435 f3PerPtBin1n1n2nRP->SetXTitle("p_{t} [GeV]");
ae733b3b 436 fDiffFlowList->Add(f3PerPtBin1n1n2nRP);
1dfa3c16 437
438 //f4PerPtBin1n1n1n1nRP
439 f4PerPtBin1n1n1n1nRP = new TProfile("f4PerPtBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
440 f4PerPtBin1n1n1n1nRP->SetXTitle("p_{t} [GeV]");
ae733b3b 441 fDiffFlowList->Add(f4PerPtBin1n1n1n1nRP);
1dfa3c16 442
443 //fEtaReq1nRP
444 fEtaReq1nRP = new TProfile("fEtaReq1nRP","Re[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s");
445 fEtaReq1nRP->SetXTitle("#eta");
446 fEtaReq1nRP->SetYTitle("Re[q_n]");
1dfa3c16 447
448 //fEtaImq1nRP
449 fEtaImq1nRP = new TProfile("fEtaImq1nRP","Im[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s");
450 fEtaImq1nRP->SetXTitle("#eta");
451 fEtaImq1nRP->SetYTitle("Im[q_n]");
1dfa3c16 452
453 //fEtaReq2nRP
454 fEtaReq2nRP = new TProfile("fEtaReq2nRP","Re[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s");
455 fEtaReq2nRP->SetXTitle("#eta");
456 fEtaReq2nRP->SetYTitle("Im[D]");
1dfa3c16 457
458 //fEtaImq2nRP
459 fEtaImq2nRP = new TProfile("fEtaImq2nRP","Im[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s");
460 fEtaImq2nRP->SetXTitle("#eta");
461 fEtaImq2nRP->SetYTitle("Im[q_2n]");
1dfa3c16 462
463 //f2PerEtaBin1n1nRP
464 f2PerEtaBin1n1nRP = new TProfile("f2PerEtaBin1n1nRP","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s");
465 f2PerEtaBin1n1nRP->SetXTitle("#eta");
ae733b3b 466 fDiffFlowList->Add(f2PerEtaBin1n1nRP);
1dfa3c16 467
468 //f2PerEtaBin2n2nRP
469 f2PerEtaBin2n2nRP = new TProfile("f2PerEtaBin2n2nRP","<2'>_{2n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s");
470 f2PerEtaBin2n2nRP->SetXTitle("#eta");
ae733b3b 471 fDiffFlowList->Add(f2PerEtaBin2n2nRP);
1dfa3c16 472
473 //f3PerEtaBin2n1n1nRP
474 f3PerEtaBin2n1n1nRP = new TProfile("f3PerEtaBin2n1n1nRP","<3'>_{2n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
475 f3PerEtaBin2n1n1nRP->SetXTitle("#eta");
ae733b3b 476 fDiffFlowList->Add(f3PerEtaBin2n1n1nRP);
1dfa3c16 477
478 //f3PerEtaBin1n1n2nRP
479 f3PerEtaBin1n1n2nRP = new TProfile("f3PerEtaBin1n1n2RP","<3'>_{n,n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s");
480 f3PerEtaBin1n1n2nRP->SetXTitle("#eta");
ae733b3b 481 fDiffFlowList->Add(f3PerEtaBin1n1n2nRP);
1dfa3c16 482
483 //f4PerEtaBin1n1n1n1nRP
484 f4PerEtaBin1n1n1n1nRP = new TProfile("f4PerEtaBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
485 f4PerEtaBin1n1n1n1nRP->SetXTitle("#eta");
ae733b3b 486 fDiffFlowList->Add(f4PerEtaBin1n1n1n1nRP);
1dfa3c16 487
4057ba99 488 //fPtReq1nPrimePOI
489 fPtReq1nPrimePOI = new TProfile("fPtReq1nPrimePOI","Re[q_{n}^{'}]",fnBinsPt,fPtMin,fPtMax,"s");
490 fPtReq1nPrimePOI->SetXTitle("p_{t} [GeV]");
491 fPtReq1nPrimePOI->SetYTitle("Re[q_{n}^{'}]");
4057ba99 492
493 //fPtImq1nPrimePOI
494 fPtImq1nPrimePOI = new TProfile("fPtImq1nPrimePOI","Im[q_{n}^{'}]",fnBinsPt,fPtMin,fPtMax,"s");
495 fPtImq1nPrimePOI->SetXTitle("p_{t} [GeV]");
496 fPtImq1nPrimePOI->SetYTitle("Im[q_{n}^{'}]");
4057ba99 497
498 //fPtReq2nPrimePOI
499 fPtReq2nPrimePOI = new TProfile("fPtReq2nPrimePOI","Re[q_{2n}^{'}]",fnBinsPt,fPtMin,fPtMax,"s");
500 fPtReq2nPrimePOI->SetXTitle("p_{t} [GeV]");
501 fPtReq2nPrimePOI->SetYTitle("Re[q_{2n}^{'}]");
4057ba99 502
503 //fPtImq2nPrimePOI
504 fPtImq2nPrimePOI = new TProfile("fPtImq2nPrimePOI","Im[q_{2n}^{'}]",fnBinsPt,fPtMin,fPtMax,"s");
505 fPtImq2nPrimePOI->SetXTitle("p_{t} [GeV]");
506 fPtImq2nPrimePOI->SetYTitle("Im[q_{2n}^{'}]");
4057ba99 507
508 //fmPrimePerPtBin
509 fmPrimePerPtBin = new TProfile("fmPrimePerPtBin","# of particles selected both as RP and POI per #p_{t} bin",fnBinsPt,fPtMin,fPtMax,"s");
510 fmPrimePerPtBin->SetXTitle("p_{t} [GeV]");
511 fmPrimePerPtBin->SetYTitle("Counts");
e8a609bc 512
4057ba99 513 //fPtReq1nPrimePrimePOI
514 fPtReq1nPrimePrimePOI = new TProfile("fPtReq1nPrimePrimePOI","Re[q_{n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s");
515 fPtReq1nPrimePrimePOI->SetXTitle("p_{t} [GeV]");
516 fPtReq1nPrimePrimePOI->SetYTitle("Re[q_{n}^{''}]");
4057ba99 517
518 //fPtImq1nPrimePrimePOI
519 fPtImq1nPrimePrimePOI = new TProfile("fPtImq1nPrimePrimePOI","Im[q_{n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s");
520 fPtImq1nPrimePrimePOI->SetXTitle("p_{t} [GeV]");
521 fPtImq1nPrimePrimePOI->SetYTitle("Im[q_{n}^{''}]");
4057ba99 522
523 //fPtReq2nPrimePrimePOI
524 fPtReq2nPrimePrimePOI = new TProfile("fPtReq2nPrimePrimePOI","Re[q_{2n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s");
525 fPtReq2nPrimePrimePOI->SetXTitle("p_{t} [GeV]");
526 fPtReq2nPrimePrimePOI->SetYTitle("Re[q_{2n}^{''}]");
4057ba99 527
528 //fPtImq2nPrimePrimePOI
529 fPtImq2nPrimePrimePOI = new TProfile("fPtImq2nPrimePrimePOI","Im[q_{2n}^{''}]",fnBinsPt,fPtMin,fPtMax,"s");
530 fPtImq2nPrimePrimePOI->SetXTitle("p_{t} [GeV]");
531 fPtImq2nPrimePrimePOI->SetYTitle("Im[q_{2n}^{''}]");
4057ba99 532
533 //fmPrimePrimePerPtBin
534 fmPrimePrimePerPtBin = new TProfile("fmPrimePrimePerPtBin","# of particles selected as POI and NOT as RP per #p_{t} bin",fnBinsPt,fPtMin,fPtMax,"s");
535 fmPrimePrimePerPtBin->SetXTitle("p_{t} [GeV]");
536 fmPrimePrimePerPtBin->SetYTitle("Counts");
4057ba99 537
538 //fEtaReq1nPrimePOI
539 fEtaReq1nPrimePOI = new TProfile("fEtaReq1nPrimePOI","Re[q_{n}^{'}]",fnBinsEta,fEtaMin,fEtaMax,"s");
540 fEtaReq1nPrimePOI->SetXTitle("#eta");
541 fEtaReq1nPrimePOI->SetYTitle("Re[q_{n}^{'}]");
4057ba99 542
543 //fEtaImq1nPrimePOI
544 fEtaImq1nPrimePOI = new TProfile("fEtaImq1nPrimePOI","Im[q_{n}^{'}]",fnBinsEta,fEtaMin,fEtaMax,"s");
545 fEtaImq1nPrimePOI->SetXTitle("#eta");
546 fEtaImq1nPrimePOI->SetYTitle("Im[q_{n}^{'}]");
4057ba99 547
548 //fEtaReq2nPrimePOI
549 fEtaReq2nPrimePOI = new TProfile("fEtaReq2nPrimePOI","Re[q_{2n}^{'}]",fnBinsEta,fEtaMin,fEtaMax,"s");
550 fEtaReq2nPrimePOI->SetXTitle("#eta");
551 fEtaReq2nPrimePOI->SetYTitle("Re[q_{2n}^{'}]");
4057ba99 552
553 //fEtaImq2nPrimePOI
554 fEtaImq2nPrimePOI = new TProfile("fEtaImq2nPrimePOI","Im[q_{2n}^{'}]",fnBinsEta,fEtaMin,fEtaMax,"s");
555 fEtaImq2nPrimePOI->SetXTitle("#eta");
556 fEtaImq2nPrimePOI->SetYTitle("Im[q_{2n}^{'}]");
4057ba99 557
558 //fmPrimePerEtaBin
559 fmPrimePerEtaBin = new TProfile("fmPrimePerEtaBin","# of particles selected both as RP and POI per #p_{t} bin",fnBinsEta,fEtaMin,fEtaMax,"s");
560 fmPrimePerEtaBin->SetXTitle("#eta");
561 fmPrimePerEtaBin->SetYTitle("Counts");
4057ba99 562
ae733b3b 563 //fEtaReq1nPrimePrimePOI
4057ba99 564 fEtaReq1nPrimePrimePOI = new TProfile("fEtaReq1nPrimePrimePOI","Re[q_{n}^{''}]",fnBinsEta,fEtaMin,fEtaMax,"s");
565 fEtaReq1nPrimePrimePOI->SetXTitle("#eta");
566 fEtaReq1nPrimePrimePOI->SetYTitle("Re[q_{n}^{''}]");
4057ba99 567
568 //fEtaImq1nPrimePrimePOI
569 fEtaImq1nPrimePrimePOI = new TProfile("fEtaImq1nPrimePrimePOI","Im[q_{n}^{''}]",fnBinsEta,fEtaMin,fEtaMax,"s");
570 fEtaImq1nPrimePrimePOI->SetXTitle("#eta");
571 fEtaImq1nPrimePrimePOI->SetYTitle("Im[q_{n}^{''}]");
4057ba99 572
573 //fEtaReq2nPrimePrimePOI
574 fEtaReq2nPrimePrimePOI = new TProfile("fEtaReq2nPrimePrimePOI","Re[q_{2n}^{''}]",fnBinsEta,fEtaMin,fEtaMax,"s");
575 fEtaReq2nPrimePrimePOI->SetXTitle("#eta");
576 fEtaReq2nPrimePrimePOI->SetYTitle("Re[q_{2n}^{''}]");
4057ba99 577
578 //fEtaImq2nPrimePrimePOI
579 fEtaImq2nPrimePrimePOI = new TProfile("fEtaImq2nPrimePrimePOI","Im[q_{2n}^{''}]",fnBinsEta,fEtaMin,fEtaMax,"s");
580 fEtaImq2nPrimePrimePOI->SetXTitle("#eta");
581 fEtaImq2nPrimePrimePOI->SetYTitle("Im[q_{2n}^{''}]");
4057ba99 582
583 //fmPrimePrimePerEtaBin
584 fmPrimePrimePerEtaBin = new TProfile("fmPrimePrimePerEtaBin","# of particles selected as POI and NOT as RP per #p_{t} bin",fnBinsEta,fEtaMin,fEtaMax,"s");
585 fmPrimePrimePerEtaBin->SetXTitle("#eta");
586 fmPrimePrimePerEtaBin->SetYTitle("Counts");
4057ba99 587
1dfa3c16 588 //f2PerPtBin1n1nPOI
589 f2PerPtBin1n1nPOI = new TProfile("f2PerPtBin1n1nPOI","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
4057ba99 590 f2PerPtBin1n1nPOI->SetXTitle("#eta");
ae733b3b 591 fDiffFlowList->Add(f2PerPtBin1n1nPOI);
1dfa3c16 592
593 //f2PerPtBin2n2nPOI
594 f2PerPtBin2n2nPOI = new TProfile("f2PerPtBin2n2nPOI","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
595 f2PerPtBin2n2nPOI->SetXTitle("p_{t} [GeV]");
ae733b3b 596 fDiffFlowList->Add(f2PerPtBin2n2nPOI);
1dfa3c16 597
598 //f3PerPtBin2n1n1nPOI
599 f3PerPtBin2n1n1nPOI = new TProfile("f3PerPtBin2n1n1nPOI","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
600 f3PerPtBin2n1n1nPOI->SetXTitle("p_{t} [GeV]");
ae733b3b 601 fDiffFlowList->Add(f3PerPtBin2n1n1nPOI);
1dfa3c16 602
603 //f3PerPtBin1n1n2nPOI
604 f3PerPtBin1n1n2nPOI = new TProfile("f3PerPtBin1n1n2nPOI","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
605 f3PerPtBin1n1n2nPOI->SetXTitle("p_{t} [GeV]");
ae733b3b 606 fDiffFlowList->Add(f3PerPtBin1n1n2nPOI);
1dfa3c16 607
608 //f4PerPtBin1n1n1n1nPOI
609 f4PerPtBin1n1n1n1nPOI = new TProfile("f4PerPtBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
610 f4PerPtBin1n1n1n1nPOI->SetXTitle("p_{t} [GeV]");
ae733b3b 611 fDiffFlowList->Add(f4PerPtBin1n1n1n1nPOI);
1dfa3c16 612
1dfa3c16 613 //f2PerEtaBin1n1nPOI
614 f2PerEtaBin1n1nPOI = new TProfile("f2PerEtaBin1n1nPOI","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s");
615 f2PerEtaBin1n1nPOI->SetXTitle("#eta");
ae733b3b 616 fDiffFlowList->Add(f2PerEtaBin1n1nPOI);
1dfa3c16 617
618 //f2PerEtaBin2n2nPOI
619 f2PerEtaBin2n2nPOI = new TProfile("f2PerEtaBin2n2nPOI","<2'>_{2n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s");
620 f2PerEtaBin2n2nPOI->SetXTitle("#eta");
ae733b3b 621 fDiffFlowList->Add(f2PerEtaBin2n2nPOI);
1dfa3c16 622
623 //f3PerEtaBin2n1n1nPOI
624 f3PerEtaBin2n1n1nPOI = new TProfile("f3PerEtaBin2n1n1nPOI","<3'>_{2n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
625 f3PerEtaBin2n1n1nPOI->SetXTitle("#eta");
ae733b3b 626 fDiffFlowList->Add(f3PerEtaBin2n1n1nPOI);
1dfa3c16 627
628 //f3PerEtaBin1n1n2nPOI
629 f3PerEtaBin1n1n2nPOI = new TProfile("f3PerEtaBin1n1n2POI","<3'>_{n,n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s");
630 f3PerEtaBin1n1n2nPOI->SetXTitle("#eta");
ae733b3b 631 fDiffFlowList->Add(f3PerEtaBin1n1n2nPOI);
1dfa3c16 632
633 //f4PerEtaBin1n1n1n1nPOI
634 f4PerEtaBin1n1n1n1nPOI = new TProfile("f4PerEtaBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
635 f4PerEtaBin1n1n1n1nPOI->SetXTitle("#eta");
ae733b3b 636 fDiffFlowList->Add(f4PerEtaBin1n1n1n1nPOI);
bc92c0cb 637
3d824203 638
639
640
641
642
643
644
645 //f2WPerPtBin1n1nPOI
646 f2WPerPtBin1n1nPOI = new TProfile("f2WPerPtBin1n1nPOI","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
647 f2WPerPtBin1n1nPOI->SetXTitle("#pt");
648 fDiffFlowList->Add(f2WPerPtBin1n1nPOI);
649
650 //f2WPerPtBin2n2nPOI
651 f2WPerPtBin2n2nPOI = new TProfile("f2WPerPtBin2n2nPOI","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
652 f2WPerPtBin2n2nPOI->SetXTitle("#Pt");
653 fDiffFlowList->Add(f2WPerPtBin2n2nPOI);
654
655 //f3WPerPtBin2n1n1nPOI
656 f3WPerPtBin2n1n1nPOI = new TProfile("f3WPerPtBin2n1n1nPOI","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
657 f3WPerPtBin2n1n1nPOI->SetXTitle("#Pt");
658 fDiffFlowList->Add(f3WPerPtBin2n1n1nPOI);
659
660 //f3WPerPtBin1n1n2nPOI
661 f3WPerPtBin1n1n2nPOI = new TProfile("f3WPerPtBin1n1n2POI","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s");
662 f3WPerPtBin1n1n2nPOI->SetXTitle("#Pt");
663 fDiffFlowList->Add(f3WPerPtBin1n1n2nPOI);
664
665 //f4WPerPtBin1n1n1n1nPOI
666 f4WPerPtBin1n1n1n1nPOI = new TProfile("f4WPerPtBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
667 f4WPerPtBin1n1n1n1nPOI->SetXTitle("#Pt");
668 fDiffFlowList->Add(f4WPerPtBin1n1n1n1nPOI);
669
670
671 //f2WPerEtaBin1n1nPOI
672 f2WPerEtaBin1n1nPOI = new TProfile("f2WPerEtaBin1n1nPOI","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s");
673 f2WPerEtaBin1n1nPOI->SetXTitle("#eta");
674 fDiffFlowList->Add(f2WPerEtaBin1n1nPOI);
675
676 //f4WPerEtaBin1n1n1n1nPOI
677 f4WPerEtaBin1n1n1n1nPOI = new TProfile("f4WPerEtaBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
678 f4WPerEtaBin1n1n1n1nPOI->SetXTitle("#eta");
679 fDiffFlowList->Add(f4WPerEtaBin1n1n1n1nPOI);
680
681
682 //f2WPerPtBin1n1nRP
683 f2WPerPtBin1n1nRP = new TProfile("f2WPerPtBin1n1nRP","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s");
684 f2WPerPtBin1n1nRP->SetXTitle("#pt");
685 fDiffFlowList->Add(f2WPerPtBin1n1nRP);
686
687 //f4WPerPtBin1n1n1n1nRP
688 f4WPerPtBin1n1n1n1nRP = new TProfile("f4WPerPtBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s");
689 f4WPerPtBin1n1n1n1nRP->SetXTitle("#Pt");
690 fDiffFlowList->Add(f4WPerPtBin1n1n1n1nRP);
691
692
693 //f2WPerEtaBin1n1nRP
694 f2WPerEtaBin1n1nRP = new TProfile("f2WPerEtaBin1n1nRP","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s");
695 f2WPerEtaBin1n1nRP->SetXTitle("#eta");
696 fDiffFlowList->Add(f2WPerEtaBin1n1nRP);
697
698 //f4WPerEtaBin1n1n1n1nRP
699 f4WPerEtaBin1n1n1n1nRP = new TProfile("f4WPerEtaBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s");
700 f4WPerEtaBin1n1n1n1nRP->SetXTitle("#eta");
701 fDiffFlowList->Add(f4WPerEtaBin1n1n1n1nRP);
702
703
704
705
cb308e83 706 //common control histogram (2nd order)
707 fCommonHists2nd = new AliFlowCommonHist("AliFlowCommonHist2ndOrderQC");
708 fHistList->Add(fCommonHists2nd);
1315fe58 709
cb308e83 710 //common control histogram (4th order)
711 fCommonHists4th = new AliFlowCommonHist("AliFlowCommonHist4thOrderQC");
712 fHistList->Add(fCommonHists4th);
713
714 //common control histogram (6th order)
715 fCommonHists6th = new AliFlowCommonHist("AliFlowCommonHist6thOrderQC");
716 fHistList->Add(fCommonHists6th);
717
718 //common control histogram (8th order)
719 fCommonHists8th = new AliFlowCommonHist("AliFlowCommonHist8thOrderQC");
720 fHistList->Add(fCommonHists8th);
4057ba99 721
8842fb2b 722 //common histograms for final results (2nd order)
1315fe58 723 fCommonHistsResults2nd = new AliFlowCommonHistResults("AliFlowCommonHistResults2ndOrderQC");
724 fHistList->Add(fCommonHistsResults2nd);
725
8842fb2b 726 //common histograms for final results (4th order)
1315fe58 727 fCommonHistsResults4th = new AliFlowCommonHistResults("AliFlowCommonHistResults4thOrderQC");
728 fHistList->Add(fCommonHistsResults4th);
729
8842fb2b 730 //common histograms for final results (6th order)
1315fe58 731 fCommonHistsResults6th = new AliFlowCommonHistResults("AliFlowCommonHistResults6thOrderQC");
732 fHistList->Add(fCommonHistsResults6th);
733
8842fb2b 734 //common histograms for final results (8th order)
1315fe58 735 fCommonHistsResults8th = new AliFlowCommonHistResults("AliFlowCommonHistResults8thOrderQC");
736 fHistList->Add(fCommonHistsResults8th);
1315fe58 737
738 //weighted <2>_{n|n} distribution
52021ae2 739 f2pDistribution = new TH1D("f2pDistribution","<2>_{n|n} distribution",100000,-0.02,0.1);
740 f2pDistribution->SetXTitle("<2>_{n|n}");
741 f2pDistribution->SetYTitle("Counts");
742 fHistList->Add(f2pDistribution);
1315fe58 743
744 //weighted <4>_{n,n|n,n} distribution
52021ae2 745 f4pDistribution = new TH1D("f4pDistribution","<4>_{n,n|n,n} distribution",100000,-0.00025,0.002);
746 f4pDistribution->SetXTitle("<4>_{n,n|n,n}");
747 f4pDistribution->SetYTitle("Counts");
748 fHistList->Add(f4pDistribution);
1315fe58 749
750 //weighted <6>_{n,n,n|n,n,n} distribution
52021ae2 751 f6pDistribution = new TH1D("f6pDistribution","<6>_{n,n,n|n,n,n} distribution",100000,-0.000005,0.000025);
752 f6pDistribution->SetXTitle("<6>_{n,n,n|n,n,n}");
753 f6pDistribution->SetYTitle("Counts");
754 fHistList->Add(f6pDistribution);
bc92c0cb 755
5e838eeb 756 //weighted <8>_{n,n,n,n|n,n,n,n} distribution
757 f8pDistribution = new TH1D("f8pDistribution","<8>_{n,n,n,n|n,n,n,n} distribution",100000,-0.000000001,0.00000001);
758 f8pDistribution->SetXTitle("<8>_{n,n,n,n|n,n,n,n}");
759 f8pDistribution->SetYTitle("Counts");
760 fHistList->Add(f8pDistribution);
ae733b3b 761
762 // add list fWeightsList with weights to the main list
763 fHistList->Add(fWeightsList);
764
765 // add list fDiffFlowList with histograms and profiles needed for differential flow to the main list
766 fHistList->Add(fDiffFlowList);
e085f1a9 767}//end of Init()
bc92c0cb 768
769//================================================================================================================
770
771void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent)
772{
ae733b3b 773 // running over data
774
775 Int_t nPrim = anEvent->NumberOfTracks(); // nPrim = nRP + nPOI + rest
776 Int_t nRP = anEvent->GetEventNSelTracksIntFlow(); // nRP = number of particles used to determine the reaction plane
03a02aca 777
ae733b3b 778 Int_t n = 2; // int flow harmonic (to be improved)
779
4057ba99 780 //needed for debugging: (to be improved - add explanation here)
781 //Bool_t bNestedLoops=kTRUE;
782 //if(!(bNestedLoops)||(nPrim>0&&nPrim<12))
783 //{
3d824203 784 //if(nPrim>0&&nPrim<10)
4057ba99 785 //{
bc92c0cb 786
ae733b3b 787
ae733b3b 788
789 //---------------------------------------------------------------------------------------------------------
790 // non-weighted and weighted Q-vectors of an event built-up from RP particles evaluated in harmonics n, 2n, 3n and 4n:
791 AliFlowVector afvQvector1n, afvQvector2n, afvQvector3n, afvQvector4n;
ae733b3b 792
793 // non-weighted Q-vector in harmonic n:
1dfa3c16 794 afvQvector1n.Set(0.,0.);
795 afvQvector1n.SetMult(0);
ae733b3b 796 afvQvector1n = anEvent->GetQ(1*n);
ae733b3b 797
798 // non-weighted Q-vector in harmonic 2n:
1dfa3c16 799 afvQvector2n.Set(0.,0.);
800 afvQvector2n.SetMult(0);
ae733b3b 801 afvQvector2n = anEvent->GetQ(2*n); // to be improved: weights
3d824203 802
ae733b3b 803 // non-weighted Q-vector in harmonic 3n:
1dfa3c16 804 afvQvector3n.Set(0.,0.);
805 afvQvector3n.SetMult(0);
ae733b3b 806 afvQvector3n = anEvent->GetQ(3*n); // to be improved: weights
bc92c0cb 807
ae733b3b 808 // non-weighted Q-vector in harmonic 4n:
1dfa3c16 809 afvQvector4n.Set(0.,0.);
810 afvQvector4n.SetMult(0);
ae733b3b 811 afvQvector4n = anEvent->GetQ(4*n); // to be improved: weights
03a02aca 812
e085f1a9 813
814 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
815 // !!!! to be removed !!!!
816 fQvectorForEachEventX->Fill(1.*(++fEventCounter),afvQvector1n.X());
817 fQvectorForEachEventY->Fill(1.*(fEventCounter),afvQvector1n.Y());
818 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
819
820
821
bc92c0cb 822 //---------------------------------------------------------------------------------------------------------
823
4057ba99 824 //multiplicity of RP particles:
ae733b3b 825 Double_t dMult = afvQvector1n.GetMult(); // to be improved (name, this is actually weighted multiplicity)
bc92c0cb 826
ae733b3b 827 fAvMultIntFlowQC->Fill(0.,dMult,1.); // to be removed (this info is also stored in one of control histograms)
bc92c0cb 828
829 //---------------------------------------------------------------------------------------------------------
dee1e0e0 830 //
831 // *******************
832 // **** Q-vectors ****
833 // *******************
834 //
1dfa3c16 835 Double_t reQ2nQ1nstarQ1nstar = pow(afvQvector1n.X(),2.)*afvQvector2n.X()+2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.Y()-pow(afvQvector1n.Y(),2.)*afvQvector2n.X();//Re[Q_{2n} Q_{n}^* Q_{n}^*]
52021ae2 836 //Double_t imQ2nQ1nstarQ1nstar = pow(Qvector1n.X(),2.)*Qvector2n.Y()-2.*Qvector1n.X()*Qvector1n.Y()*Qvector2n.X()-pow(Qvector1n.Y(),2.)*Qvector2n.Y();//Im[Q_{2n} Q_{n}^* Q_{n}^*]
837 Double_t reQ1nQ1nQ2nstar = reQ2nQ1nstarQ1nstar;//Re[Q_{n} Q_{n} Q_{2n}^*] = Re[Q_{2n} Q_{n}^* Q_{n}^*]
1dfa3c16 838 Double_t reQ3nQ1nQ2nstarQ2nstar = (pow(afvQvector2n.X(),2.)-pow(afvQvector2n.Y(),2.))*(afvQvector3n.X()*afvQvector1n.X()-afvQvector3n.Y()*afvQvector1n.Y())+2.*afvQvector2n.X()*afvQvector2n.Y()*(afvQvector3n.X()*afvQvector1n.Y()+afvQvector3n.Y()*afvQvector1n.X());
52021ae2 839 //Double_t imQ3nQ1nQ2nstarQ2nstar = calculate and implement this (deleteMe)
840 Double_t reQ2nQ2nQ3nstarQ1nstar = reQ3nQ1nQ2nstarQ2nstar;
1dfa3c16 841 Double_t reQ4nQ2nstarQ2nstar = pow(afvQvector2n.X(),2.)*afvQvector4n.X()+2.*afvQvector2n.X()*afvQvector2n.Y()*afvQvector4n.Y()-pow(afvQvector2n.Y(),2.)*afvQvector4n.X();//Re[Q_{4n} Q_{2n}^* Q_{2n}^*]
52021ae2 842 //Double_t imQ4nQ2nstarQ2nstar = calculate and implement this (deleteMe)
843 Double_t reQ2nQ2nQ4nstar = reQ4nQ2nstarQ2nstar;
1dfa3c16 844 Double_t reQ4nQ3nstarQ1nstar = afvQvector4n.X()*(afvQvector3n.X()*afvQvector1n.X()-afvQvector3n.Y()*afvQvector1n.Y())+afvQvector4n.Y()*(afvQvector3n.X()*afvQvector1n.Y()+afvQvector3n.Y()*afvQvector1n.X());//Re[Q_{4n} Q_{3n}^* Q_{n}^*]
52021ae2 845 Double_t reQ3nQ1nQ4nstar = reQ4nQ3nstarQ1nstar;//Re[Q_{3n} Q_{n} Q_{4n}^*] = Re[Q_{4n} Q_{3n}^* Q_{n}^*]
846 //Double_t imQ4nQ3nstarQ1nstar = calculate and implement this (deleteMe)
1dfa3c16 847 Double_t reQ3nQ2nstarQ1nstar = afvQvector3n.X()*afvQvector2n.X()*afvQvector1n.X()-afvQvector3n.X()*afvQvector2n.Y()*afvQvector1n.Y()+afvQvector3n.Y()*afvQvector2n.X()*afvQvector1n.Y()+afvQvector3n.Y()*afvQvector2n.Y()*afvQvector1n.X();//Re[Q_{3n} Q_{2n}^* Q_{n}^*]
52021ae2 848 Double_t reQ2nQ1nQ3nstar = reQ3nQ2nstarQ1nstar;//Re[Q_{2n} Q_{n} Q_{3n}^*] = Re[Q_{3n} Q_{2n}^* Q_{n}^*]
849 //Double_t imQ3nQ2nstarQ1nstar; //calculate and implement this (deleteMe)
1dfa3c16 850 Double_t reQ3nQ1nstarQ1nstarQ1nstar = afvQvector3n.X()*pow(afvQvector1n.X(),3)-3.*afvQvector1n.X()*afvQvector3n.X()*pow(afvQvector1n.Y(),2)+3.*afvQvector1n.Y()*afvQvector3n.Y()*pow(afvQvector1n.X(),2)-afvQvector3n.Y()*pow(afvQvector1n.Y(),3);//Re[Q_{3n} Q_{n}^* Q_{n}^* Q_{n}^*]
52021ae2 851 //Double_t imQ3nQ1nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe)
1dfa3c16 852 Double_t xQ2nQ1nQ2nstarQ1nstar = pow(afvQvector2n.Mod()*afvQvector1n.Mod(),2);//|Q_{2n}|^2 |Q_{n}|^2
853 Double_t reQ4nQ2nstarQ1nstarQ1nstar = (afvQvector4n.X()*afvQvector2n.X()+afvQvector4n.Y()*afvQvector2n.Y())*(pow(afvQvector1n.X(),2)-pow(afvQvector1n.Y(),2))+2.*afvQvector1n.X()*afvQvector1n.Y()*(afvQvector4n.Y()*afvQvector2n.X()-afvQvector4n.X()*afvQvector2n.Y());//Re[Q_{4n} Q_{2n}^* Q_{n}^* Q_{n}^*]
52021ae2 854 //Double_t imQ4nQ2nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe)
1dfa3c16 855 Double_t reQ2nQ1nQ1nstarQ1nstarQ1nstar = (afvQvector2n.X()*afvQvector1n.X()-afvQvector2n.Y()*afvQvector1n.Y())*(pow(afvQvector1n.X(),3)-3.*afvQvector1n.X()*pow(afvQvector1n.Y(),2))+(afvQvector2n.X()*afvQvector1n.Y()+afvQvector1n.X()*afvQvector2n.Y())*(3.*afvQvector1n.Y()*pow(afvQvector1n.X(),2)-pow(afvQvector1n.Y(),3));//Re[Q_{2n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^*]
52021ae2 856 //Double_t imQ2nQ1nQ1nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe)
1dfa3c16 857 Double_t reQ2nQ2nQ2nstarQ1nstarQ1nstar = pow(afvQvector2n.Mod(),2.)*(afvQvector2n.X()*(pow(afvQvector1n.X(),2.)-pow(afvQvector1n.Y(),2.))+2.*afvQvector2n.Y()*afvQvector1n.X()*afvQvector1n.Y());//Re[Q_{2n} Q_{2n} Q_{2n}^* Q_{n}^* Q_{n}^*]
52021ae2 858 //Double_t imQ2nQ2nQ2nstarQ1nstarQ1nstar = pow(Qvector2n.Mod(),2.)*(Qvector2n.Y()*(pow(Qvector1n.X(),2.)-pow(Qvector1n.Y(),2.))-2.*Qvector2n.X()*Qvector1n.X()*Qvector1n.Y());//Im[Q_{2n} Q_{2n} Q_{2n}^* Q_{n}^* Q_{n}^*]
1dfa3c16 859 Double_t reQ4nQ1nstarQ1nstarQ1nstarQ1nstar = pow(afvQvector1n.X(),4.)*afvQvector4n.X()-6.*pow(afvQvector1n.X(),2.)*afvQvector4n.X()*pow(afvQvector1n.Y(),2.)+pow(afvQvector1n.Y(),4.)*afvQvector4n.X()+4.*pow(afvQvector1n.X(),3.)*afvQvector1n.Y()*afvQvector4n.Y()-4.*pow(afvQvector1n.Y(),3.)*afvQvector1n.X()*afvQvector4n.Y();//Re[Q_{4n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
dee1e0e0 860 //Double_t imQ4nQ1nstarQ1nstarQ1nstarQ1nstar = pow(Qvector1n.X(),4.)*Qvector4n.Y()-6.*pow(Qvector1n.X(),2.)*Qvector4n.Y()*pow(Qvector1n.Y(),2.)+pow(Qvector1n.Y(),4.)*Qvector4n.Y()+4.*pow(Qvector1n.Y(),3.)*Qvector1n.X()*Qvector4n.X()-4.*pow(Qvector1n.X(),3.)*Qvector1n.Y()*Qvector4n.X();//Im[Q_{4n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
1dfa3c16 861 Double_t reQ3nQ1nQ2nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),2.)*(afvQvector1n.X()*afvQvector2n.X()*afvQvector3n.X()-afvQvector3n.X()*afvQvector1n.Y()*afvQvector2n.Y()+afvQvector2n.X()*afvQvector1n.Y()*afvQvector3n.Y()+afvQvector1n.X()*afvQvector2n.Y()*afvQvector3n.Y());//Re[Q_{3n} Q_{n} Q_{2n}^* Q_{n}^* Q_{n}^*]
862 //Double_t imQ3nQ1nQ2nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),2.)*(-afvQvector2n.X()*afvQvector3n.X()*afvQvector1n.Y()-afvQvector1n.X()*afvQvector3n.X()*afvQvector2n.Y()+afvQvector1n.X()*afvQvector2n.X()*afvQvector3n.Y()-afvQvector1n.Y()*afvQvector2n.Y()*afvQvector3n.Y());//Im[Q_{3n} Q_{n} Q_{2n}^* Q_{n}^* Q_{n}^*]
863 Double_t reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar = (pow(afvQvector1n.X(),2.)*afvQvector2n.X()-2.*afvQvector1n.X()*afvQvector2n.X()*afvQvector1n.Y()-afvQvector2n.X()*pow(afvQvector1n.Y(),2.)+afvQvector2n.Y()*pow(afvQvector1n.X(),2.)+2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.Y()-pow(afvQvector1n.Y(),2.)*afvQvector2n.Y())*(pow(afvQvector1n.X(),2.)*afvQvector2n.X()+2.*afvQvector1n.X()*afvQvector2n.X()*afvQvector1n.Y()-afvQvector2n.X()*pow(afvQvector1n.Y(),2.)-afvQvector2n.Y()*pow(afvQvector1n.X(),2.)+2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.Y()+pow(afvQvector1n.Y(),2.)*afvQvector2n.Y());//Re[Q_{2n} Q_{2n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
864 //Double_t imQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar = 2.*(pow(afvQvector1n.X(),2.)*afvQvector2n.X()-afvQvector2n.X()*pow(afvQvector1n.Y(),2.)+2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.Y())*(pow(afvQvector1n.X(),2.)*afvQvector2n.Y()-2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.X()-pow(afvQvector1n.Y(),2.)*afvQvector2n.Y());//Im[Q_{2n} Q_{2n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
865 Double_t reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),2.)*(pow(afvQvector1n.X(),3.)*afvQvector3n.X()-3.*afvQvector1n.X()*afvQvector3n.X()*pow(afvQvector1n.Y(),2.)+3.*pow(afvQvector1n.X(),2.)*afvQvector1n.Y()*afvQvector3n.Y()-pow(afvQvector1n.Y(),3.)*afvQvector3n.Y());//Re[Q_{3n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
866 //Double_t imQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),2.)*(pow(afvQvector1n.Y(),3.)*afvQvector3n.X()-3.*afvQvector1n.Y()*afvQvector3n.X()*pow(afvQvector1n.X(),2.)-3.*pow(afvQvector1n.Y(),2.)*afvQvector1n.X()*afvQvector3n.Y()+pow(afvQvector1n.X(),3.)*afvQvector3n.Y());//Im[Q_{3n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
867 Double_t xQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar = pow(afvQvector2n.Mod(),2.)*pow(afvQvector1n.Mod(),4.);//|Q_{2n}|^2 |Q_{n}|^4
868 Double_t reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),4.)*(pow(afvQvector1n.X(),2.)*afvQvector2n.X()-afvQvector2n.X()*pow(afvQvector1n.Y(),2.)+2.*afvQvector1n.X()*afvQvector1n.Y()*afvQvector2n.Y());//Re[Q_{2n} Q_{n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
869 //Double_t imQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar = pow(afvQvector1n.Mod(),4.)*(pow(afvQvector1n.X(),2.)*afvQvector2n.Y()-afvQvector2n.Y()*pow(afvQvector1n.Y(),2.)-2.*afvQvector1n.X()*afvQvector2n.X()*afvQvector1n.Y());//Re[Q_{2n} Q_{n} Q_{n} Q_{n}^* Q_{n}^* Q_{n}^* Q_{n}^*]
bc92c0cb 870 //---------------------------------------------------------------------------------------------------------
871
872 //---------------------------------------------------------------------------------------------------------
dee1e0e0 873 //
874 // **************************************
875 // **** multi-particle correlations: ****
876 // **************************************
877 //
878 // Remark 1: multi-particle correlations calculated with Q-vectors are stored in fQCorrelations.
879 // Remark 2: binning of fQCorrelations is organized as follows:
880 //
881 // 1st bin: <2>_{n|n} = two1n1n
882 // 2nd bin: <2>_{2n|2n} = two2n2n
883 // 3rd bin: <2>_{3n|3n} = two3n3n
884 // 4th bin: <2>_{4n|4n} = two4n4n
885 // 5th bin: -- EMPTY --
886 // 6th bin: <3>_{2n|n,n} = three2n1n1n
887 // 7th bin: <3>_{3n|2n,n} = three3n2n1n
888 // 8th bin: <3>_{4n|2n,2n} = three4n2n2n
889 // 9th bin: <3>_{4n|3n,n} = three4n3n1n
890 //10th bin: -- EMPTY --
891 //11th bin: <4>_{n,n|n,n} = four1n1n1n1n
892 //12th bin: <4>_{2n,n|2n,n} = four2n1n2n1n
893 //13th bin: <4>_{2n,2n|2n,2n} = four2n2n2n2n
894 //14th bin: <4>_{3n|n,n,n} = four3n1n1n1n
895 //15th bin: <4>_{3n,n|3n,n} = four3n1n3n1n
896 //16th bin: <4>_{3n,n|2n,2n} = four3n1n2n2n
897 //17th bin: <4>_{4n|2n,n,n} = four4n2n1n1n
898 //18th bin: -- EMPTY --
899 //19th bin: <5>_{2n|n,n,n,n} = five2n1n1n1n1n
900 //20th bin: <5>_{2n,2n|2n,n,n} = five2n2n2n1n1n
901 //21st bin: <5>_{3n,n|2n,n,n} = five3n1n2n1n1n
902 //22nd bin: <5>_{4n|n,n,n,n} = five4n1n1n1n1n
903 //23rd bin: -- EMPTY --
904 //24th bin: <6>_{n,n,n|n,n,n} = six1n1n1n1n1n1n
905 //25th bin: <6>_{2n,n,n|2n,n,n} = six2n1n1n2n1n1n
906 //26th bin: <6>_{2n,2n|n,n,n,n} = six2n2n1n1n1n1n
907 //27th bin: <6>_{3n,n|n,n,n,n} = six3n1n1n1n1n1n
908 //28th bin: -- EMPTY --
909 //29th bin: <7>_{2n,n,n|n,n,n,n} = seven2n1n1n1n1n1n1n
910 //30th bin: -- EMPTY --
911 //31st bin: <8>_{n,n,n,n|n,n,n,n} = eight1n1n1n1n1n1n1n1n
912
1315fe58 913
8842fb2b 914 // binning of fQProduct (all correlations are evaluated in harmonic n):
915 // 1st bin: <2>*<4>
916 // 2nd bin: <2>*<6>
917 // 3rd bin: <2>*<8>
918 // 4th bin: <4>*<6>
919 // 5th bin: <4>*<8>
920 // 6th bin: <6>*<8>
921
ae733b3b 922 // 2-particle
923 Double_t two1n1n = 0., two2n2n = 0., two3n3n = 0., two4n4n = 0.;
924
3d824203 925 if(dMult>1)
bc92c0cb 926 {
ae733b3b 927 //fill the common control histogram (2nd order):
cb308e83 928 fCommonHists2nd->FillControlHistograms(anEvent);
ae733b3b 929
3d824203 930 two1n1n = (pow(afvQvector1n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); // <2>_{n|n} = <cos(n*(phi1-phi2))>
ae733b3b 931 two2n2n = (pow(afvQvector2n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); // <2>_{2n|2n} = <cos(2n*(phi1-phi2))>
932 two3n3n = (pow(afvQvector3n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); // <2>_{3n|3n} = <cos(3n*(phi1-phi2))>
933 two4n4n = (pow(afvQvector4n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); // <2>_{4n|4n} = <cos(4n*(phi1-phi2))>
1315fe58 934
3d824203 935 fQCorrelations->Fill(0.,two1n1n,dMult*(dMult-1.));
936 fQCorrelations->Fill(1.,two2n2n,dMult*(dMult-1.));
937 fQCorrelations->Fill(2.,two3n3n,dMult*(dMult-1.));
938 fQCorrelations->Fill(3.,two4n4n,dMult*(dMult-1.));
1315fe58 939
3d824203 940 f2pDistribution->Fill(two1n1n,dMult*(dMult-1.));
bc92c0cb 941 }
942
3d824203 943 // 3-particle
52021ae2 944 Double_t three2n1n1n=0., three3n2n1n=0., three4n2n2n=0., three4n3n1n=0.;
1dfa3c16 945 if(dMult>2)
bc92c0cb 946 {
1dfa3c16 947 three2n1n1n = (reQ2nQ1nstarQ1nstar-2.*pow(afvQvector1n.Mod(),2.)-pow(afvQvector2n.Mod(),2.)+2.*dMult)/(dMult*(dMult-1.)*(dMult-2.)); //Re[<3>_{2n|n,n}] = Re[<3>_{n,n|2n}] = <cos(n*(2.*phi1-phi2-phi3))>
948 three3n2n1n = (reQ3nQ2nstarQ1nstar-pow(afvQvector3n.Mod(),2.)-pow(afvQvector2n.Mod(),2.)-pow(afvQvector1n.Mod(),2.)+2.*dMult)/(dMult*(dMult-1.)*(dMult-2.)); //Re[<3>_{3n|2n,n}] = Re[<3>_{2n,n|3n}] = <cos(n*(3.*phi1-2.*phi2-phi3))>
949 three4n2n2n = (reQ4nQ2nstarQ2nstar-2.*pow(afvQvector2n.Mod(),2.)-pow(afvQvector4n.Mod(),2.)+2.*dMult)/(dMult*(dMult-1.)*(dMult-2.)); //Re[<3>_{4n|2n,2n}] = Re[<3>_{2n,2n|4n}] = <cos(n*(4.*phi1-2.*phi2-2.*phi3))>
950 three4n3n1n = (reQ4nQ3nstarQ1nstar-pow(afvQvector4n.Mod(),2.)-pow(afvQvector3n.Mod(),2.)-pow(afvQvector1n.Mod(),2.)+2.*dMult)/(dMult*(dMult-1.)*(dMult-2.)); //Re[<3>_{4n|3n,n}] = Re[<3>_{3n,n|4n}] = <cos(n*(4.*phi1-3.*phi2-phi3))>
951
952 fQCorrelations->Fill(5.,three2n1n1n,dMult*(dMult-1.)*(dMult-2.));
953 fQCorrelations->Fill(6.,three3n2n1n,dMult*(dMult-1.)*(dMult-2.));
954 fQCorrelations->Fill(7.,three4n2n2n,dMult*(dMult-1.)*(dMult-2.));
955 fQCorrelations->Fill(8.,three4n3n1n,dMult*(dMult-1.)*(dMult-2.));
bc92c0cb 956 }
957
958 //4-particle
52021ae2 959 Double_t four1n1n1n1n=0., four2n2n2n2n=0., four2n1n2n1n=0., four3n1n1n1n=0., four4n2n1n1n=0., four3n1n2n2n=0., four3n1n3n1n=0.;
1dfa3c16 960 if(dMult>3)
bc92c0cb 961 {
cb308e83 962 //fill the common control histogram (4th order):
963 fCommonHists4th->FillControlHistograms(anEvent);
964
1dfa3c16 965 four1n1n1n1n = (2.*dMult*(dMult-3.)+pow(afvQvector1n.Mod(),4.)-4.*(dMult-2.)*pow(afvQvector1n.Mod(),2.)-2.*reQ2nQ1nstarQ1nstar+pow(afvQvector2n.Mod(),2.))/(dMult*(dMult-1)*(dMult-2.)*(dMult-3.));//<4>_{n,n|n,n}
966 four2n2n2n2n = (2.*dMult*(dMult-3.)+pow(afvQvector2n.Mod(),4.)-4.*(dMult-2.)*pow(afvQvector2n.Mod(),2.)-2.*reQ4nQ2nstarQ2nstar+pow(afvQvector4n.Mod(),2.))/(dMult*(dMult-1)*(dMult-2.)*(dMult-3.));//<4>_{2n,2n|2n,2n}
967 four2n1n2n1n = (xQ2nQ1nQ2nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar-2.*reQ2nQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))-((dMult-5.)*pow(afvQvector1n.Mod(),2.)+(dMult-4.)*pow(afvQvector2n.Mod(),2.)-pow(afvQvector3n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))+(dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4>_{2n,n|2n,n}]
968 four3n1n1n1n = (reQ3nQ1nstarQ1nstarQ1nstar-3.*reQ3nQ2nstarQ1nstar-3.*reQ2nQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))+(2.*pow(afvQvector3n.Mod(),2.)+3.*pow(afvQvector2n.Mod(),2.)+6.*pow(afvQvector1n.Mod(),2.)-6.*dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4>_{3n|n,n,n}]
969 four4n2n1n1n = (reQ4nQ2nstarQ1nstarQ1nstar-2.*reQ4nQ3nstarQ1nstar-reQ4nQ2nstarQ2nstar-2.*reQ3nQ2nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))-(reQ2nQ1nstarQ1nstar-2.*pow(afvQvector4n.Mod(),2.)-2.*pow(afvQvector3n.Mod(),2.)-3.*pow(afvQvector2n.Mod(),2.)-4.*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))-(6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4>_{4n|2n,n,n}]
970 four3n1n2n2n = (reQ3nQ1nQ2nstarQ2nstar-reQ4nQ2nstarQ2nstar-reQ3nQ1nQ4nstar-2.*reQ3nQ2nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))-(2.*reQ1nQ1nQ2nstar-pow(afvQvector4n.Mod(),2.)-2.*pow(afvQvector3n.Mod(),2.)-4.*pow(afvQvector2n.Mod(),2.)-4.*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))-(6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4>_{3n,n|2n,2n}]
971 four3n1n3n1n = (pow(afvQvector3n.Mod(),2.)*pow(afvQvector1n.Mod(),2.)-2.*reQ4nQ3nstarQ1nstar-2.*reQ3nQ2nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))+(pow(afvQvector4n.Mod(),2.)-(dMult-4.)*pow(afvQvector3n.Mod(),2.)+pow(afvQvector2n.Mod(),2.)-(dMult-4.)*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.))+(dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.));//<4>_{3n,n|3n,n}
1315fe58 972 //four_3n1n3n1n = Q3nQ1nQ3nstarQ1nstar/(M*(M-1.)*(M-2.)*(M-3.))-(2.*three_3n2n1n+2.*three_4n3n1n)/(M-3.)-(two_4n4n+M*two_3n3n+two_2n2n+M*two_1n1n)/((M-2.)*(M-3.))-M/((M-1.)*(M-2.)*(M-3.));//<4>_{3n,n|3n,n}
973
1dfa3c16 974 fQCorrelations->Fill(10.,four1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
975 fQCorrelations->Fill(11.,four2n1n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
976 fQCorrelations->Fill(12.,four2n2n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
977 fQCorrelations->Fill(13.,four3n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
978 fQCorrelations->Fill(14.,four3n1n3n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
979 fQCorrelations->Fill(15.,four3n1n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
980 fQCorrelations->Fill(16.,four4n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
dee1e0e0 981
1dfa3c16 982 f4pDistribution->Fill(four1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
bc92c0cb 983
1dfa3c16 984 fQProduct->Fill(0.,two1n1n*four1n1n1n1n,dMult*(dMult-1.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.));
bc92c0cb 985 }
986
987 //5-particle
52021ae2 988 Double_t five2n1n1n1n1n=0., five2n2n2n1n1n=0., five3n1n2n1n1n=0., five4n1n1n1n1n=0.;
1dfa3c16 989 if(dMult>4)
1315fe58 990 {
1dfa3c16 991 five2n1n1n1n1n = (reQ2nQ1nQ1nstarQ1nstarQ1nstar-reQ3nQ1nstarQ1nstarQ1nstar+6.*reQ3nQ2nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(reQ2nQ1nQ3nstar+3.*(dMult-6.)*reQ2nQ1nstarQ1nstar+3.*reQ1nQ1nQ2nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(2.*pow(afvQvector3n.Mod(),2.)+3.*pow(afvQvector2n.Mod()*afvQvector1n.Mod(),2.)-3.*(dMult-4.)*pow(afvQvector2n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-3.*(pow(afvQvector1n.Mod(),4.)-2.*(2*dMult-5.)*pow(afvQvector1n.Mod(),2.)+2.*dMult*(dMult-4.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));//Re[<5>_{2n,n|n,n,n}]
1315fe58 992
1dfa3c16 993 five2n2n2n1n1n = (reQ2nQ2nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-2.*reQ2nQ2nQ3nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))+2.*(reQ4nQ2nstarQ2nstar+4.*reQ3nQ2nstarQ1nstar+reQ3nQ1nQ4nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))+(reQ2nQ2nQ4nstar-2.*(dMult-5.)*reQ2nQ1nstarQ1nstar+2.*reQ1nQ1nQ2nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(2.*pow(afvQvector4n.Mod(),2.)+4.*pow(afvQvector3n.Mod(),2.)+1.*pow(afvQvector2n.Mod(),4.)-2.*(3.*dMult-10.)*pow(afvQvector2n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(4.*pow(afvQvector1n.Mod(),2.)*pow(afvQvector2n.Mod(),2.)-4.*(dMult-5.)*pow(afvQvector1n.Mod(),2.)+4.*dMult*(dMult-6.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));//Re[<5>_{2n,2n|2n,n,n}]
1315fe58 994
dee1e0e0 995 //five_2n2n2n1n1n = reQ2nQ2nQ2nstarQ1nstarQ1nstar/(M*(M-1.)*(M-2.)*(M-3.)*(M-4.))-(4.*four_2n1n2n1n+2.*four_3n1n2n2n+1.*four_2n2n2n2n+four_4n2n1n1n)/(M-4.)-(2.*three_4n3n1n+three_4n2n2n+three_4n2n2n+2.*three_3n2n1n)/((M-3.)*(M-4.))-(4.*three_3n2n1n+(2.*M-1.)*three_2n1n1n+2.*three_2n1n1n)/((M-3.)*(M-4.))-(two_4n4n+2.*two_3n3n+4.*(M-1.)*two_2n2n+2.*(2.*M-1.)*two_1n1n)/((M-2.)*(M-3.)*(M-4.))-(2.*M-1.)/((M-1.)*(M-2.)*(M-3.)*(M-4.)); //OK!
1315fe58 996
1dfa3c16 997 five4n1n1n1n1n = (reQ4nQ1nstarQ1nstarQ1nstarQ1nstar-6.*reQ4nQ2nstarQ1nstarQ1nstar-4.*reQ3nQ1nstarQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))+(8.*reQ4nQ3nstarQ1nstar+3.*reQ4nQ2nstarQ2nstar+12.*reQ3nQ2nstarQ1nstar+12.*reQ2nQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(6.*pow(afvQvector4n.Mod(),2.)+8.*pow(afvQvector3n.Mod(),2.)+12.*pow(afvQvector2n.Mod(),2.)+24.*pow(afvQvector1n.Mod(),2.)-24.*dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));//Re[<5>_{4n|n,n,n,n}]
1315fe58 998
dee1e0e0 999 //five_4n1n1n1n1n = reQ4nQ1nstarQ1nstarQ1nstarQ1nstar/(M*(M-1.)*(M-2.)*(M-3.)*(M-4.)) - (4.*four_3n1n1n1n+6.*four_4n2n1n1n)/(M-4.) - (6.*three_2n1n1n + 12.*three_3n2n1n + 4.*three_4n3n1n + 3.*three_4n2n2n)/((M-3.)*(M-4.)) - (4.*two_1n1n + 6.*two_2n2n + 4.*two_3n3n + 1.*two_4n4n)/((M-2.)*(M-3.)*(M-4.)) - 1./((M-1.)*(M-2.)*(M-3.)*(M-4.)); //OK!
1000
1dfa3c16 1001 five3n1n2n1n1n = (reQ3nQ1nQ2nstarQ1nstarQ1nstar-reQ4nQ2nstarQ1nstarQ1nstar-reQ3nQ1nstarQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(reQ3nQ1nQ2nstarQ2nstar-3.*reQ4nQ3nstarQ1nstar-reQ4nQ2nstarQ2nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-((2.*dMult-13.)*reQ3nQ2nstarQ1nstar-reQ3nQ1nQ4nstar-9.*reQ2nQ1nstarQ1nstar)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-(2.*reQ1nQ1nQ2nstar+2.*pow(afvQvector4n.Mod(),2.)-2.*(dMult-5.)*pow(afvQvector3n.Mod(),2.)+2.*pow(afvQvector3n.Mod(),2.)*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))+(2.*(dMult-6.)*pow(afvQvector2n.Mod(),2.)-2.*pow(afvQvector2n.Mod(),2.)*pow(afvQvector1n.Mod(),2.)-pow(afvQvector1n.Mod(),4.)+2.*(3.*dMult-11.)*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.))-4.*(dMult-6.)/((dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));//Re[<5>_{3n,n|2n,n,n}]
dee1e0e0 1002
1dfa3c16 1003 //five3n1n2n1n1n = reQ3nQ1nQ2nstarQ1nstarQ1nstar/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)) - (four4n2n1n1n+four1n1n1n1n+four3n1n1n1n+2.*four2n1n2n1n+2.*three3n2n1n+2.*four3n1n3n1n+four3n1n2n2n)/(dMult-4.) - (2.*three4n3n1n+three4n2n2n+6.*three3n2n1n+three4n3n1n+2.*three3n2n1n+3.*three2n1n1n+2.*three2n1n1n+4.*two1n1n+2.*two2n2n+2.*two3n3n)/((dMult-3.)*(dMult-4.)) - (5.*two1n1n + 4.*two2n2n + 3.*two3n3n + 1.*two4n4n + 2.)/((dMult-2.)*(dMult-3.)*(dMult-4.)) - 1./((dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)) ;//Re[<5>_{3n,n|2n,n,n}] //OK!
1315fe58 1004
1dfa3c16 1005 //five3n1n2n1n1n = reQ3nQ1nQ2nstarQ1nstarQ1nstar/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)) - (four4n2n1n1n+four1n1n1n1n+four3n1n1n1n+2.*four2n1n2n1n+2.*four3n1n3n1n+four3n1n2n2n)/(dMult-4.) - (2.*three4n3n1n+three4n2n2n+2.*dMult*three3n2n1n+three4n3n1n+2.*three3n2n1n+3.*three2n1n1n+2.*three2n1n1n)/((dMult-3.)*(dMult-4.)) - ((4.*dMult-3.)*two1n1n + 2.*dMult*two2n2n + (2.*dMult-1.)*two3n3n + two4n4n)/((dMult-2.)*(dMult-3.)*(dMult-4.)) - (2.*dMult-1.)/((dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)) ;//Re[<5>_{3n,n|2n,n,n}] //OK!
dee1e0e0 1006
1dfa3c16 1007 fQCorrelations->Fill(18.,five2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
1008 fQCorrelations->Fill(19.,five2n2n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
1009 fQCorrelations->Fill(20.,five3n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
1010 fQCorrelations->Fill(21.,five4n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.));
1315fe58 1011 }
bc92c0cb 1012
ae733b3b 1013 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1014 // !!!! to be removed: temporary fix !!!!
307ed368 1015 if(dMult>1)
1016 {
1017 two1n1n = (pow(afvQvector1n.Mod(),2.)-dMult)/(dMult*(dMult-1.));
1018 }
ae733b3b 1019 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
1020
bc92c0cb 1021 //6-particle
dee1e0e0 1022 Double_t six1n1n1n1n1n1n=0., six2n2n1n1n1n1n=0., six3n1n1n1n1n1n=0., six2n1n1n2n1n1n=0.;
1dfa3c16 1023 if(dMult>5)
bc92c0cb 1024 {
cb308e83 1025 //fill the common control histogram (6th order):
1026 fCommonHists6th->FillControlHistograms(anEvent);
1027
1dfa3c16 1028 six1n1n1n1n1n1n = (pow(afvQvector1n.Mod(),6.)+9.*xQ2nQ1nQ2nstarQ1nstar-6.*reQ2nQ1nQ1nstarQ1nstarQ1nstar)/(dMult*(dMult-1)*(dMult-2)*(dMult-3)*(dMult-4)*(dMult-5))+4.*(reQ3nQ1nstarQ1nstarQ1nstar-3.*reQ3nQ2nstarQ1nstar)/(dMult*(dMult-1)*(dMult-2)*(dMult-3)*(dMult-4)*(dMult-5))+2.*(9.*(dMult-4.)*reQ2nQ1nstarQ1nstar+2.*pow(afvQvector3n.Mod(),2.))/(dMult*(dMult-1)*(dMult-2)*(dMult-3)*(dMult-4)*(dMult-5))-9.*(pow(afvQvector1n.Mod(),4.)+pow(afvQvector2n.Mod(),2.))/(dMult*(dMult-1)*(dMult-2)*(dMult-3)*(dMult-5))+(18.*pow(afvQvector1n.Mod(),2.))/(dMult*(dMult-1)*(dMult-3)*(dMult-4))-(6.)/((dMult-1)*(dMult-2)*(dMult-3));//<6>_{n,n,n|n,n,n}
1315fe58 1029
1dfa3c16 1030 six2n1n1n2n1n1n = (xQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(2.*five2n2n2n1n1n+4.*five2n1n1n1n1n+4.*five3n1n2n1n1n+4.*four2n1n2n1n+1.*four1n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four1n1n1n1n+4.*two1n1n+2.*three2n1n1n+2.*three2n1n1n+4.*four3n1n1n1n+8.*three2n1n1n+2.*four4n2n1n1n+4.*four2n1n2n1n+2.*two2n2n+8.*four2n1n2n1n+4.*four3n1n3n1n+8.*three3n2n1n+4.*four3n1n2n2n+4.*four1n1n1n1n+4.*four2n1n2n1n+1.*four2n2n2n2n)-dMult*(dMult-1.)*(dMult-2.)*(2.*three2n1n1n+8.*two1n1n+4.*two1n1n+2.+4.*two1n1n+4.*three2n1n1n+2.*two2n2n+4.*three2n1n1n+8.*three3n2n1n+8.*two2n2n+4.*three4n3n1n+4.*two3n3n+4.*three3n2n1n+4.*two1n1n+8.*three2n1n1n+4.*two1n1n+4.*three3n2n1n+4.*three2n1n1n+2.*two2n2n+4.*three3n2n1n+2.*three4n2n2n)-dMult*(dMult-1.)*(4.*two1n1n+4.+4.*two1n1n+2.*two2n2n+1.+4.*two1n1n+4.*two2n2n+4.*two3n3n+ 1.+2.*two2n2n+1.*two4n4n)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));//<6>_{2n,n,n|2n,n,n}
dee1e0e0 1031
1dfa3c16 1032 six2n2n1n1n1n1n = (reQ2nQ2nQ1nstarQ1nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(five4n1n1n1n1n+8.*five2n1n1n1n1n+6.*five2n2n2n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+12.*three2n1n1n+12.*four1n1n1n1n+24.*four2n1n2n1n+4.*four3n1n2n2n+3.*four2n2n2n2n)-dMult*(dMult-1.)*(dMult-2.)*(6.*three2n1n1n+12.*three3n2n1n+4.*three4n3n1n+3.*three4n2n2n+8.*three2n1n1n+24.*two1n1n+12.*two2n2n+12.*three2n1n1n+8.*three3n2n1n+1.*three4n2n2n)-dMult*(dMult-1.)*(4.*two1n1n+6.*two2n2n+4.*two3n3n+1.*two4n4n+2.*two2n2n+8.*two1n1n+6.)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));//<6>_{2n,2n,n|n,n,n}
dee1e0e0 1033
1dfa3c16 1034 six3n1n1n1n1n1n = (reQ3nQ1nQ1nstarQ1nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(five4n1n1n1n1n+4.*five2n1n1n1n1n+6.*five3n1n2n1n1n+4.*four3n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+6.*four1n1n1n1n+12.*three2n1n1n+12.*four2n1n2n1n+6.*four3n1n1n1n+12.*three3n2n1n+4.*four3n1n3n1n+3.*four3n1n2n2n)-dMult*(dMult-1.)*(dMult-2.)*(6.*three2n1n1n+12.*three3n2n1n+4.*three4n3n1n+3.*three4n2n2n+4.*two1n1n+12.*two1n1n+6.*three2n1n1n+12.*three2n1n1n+4.*three3n2n1n+12.*two2n2n+4.*three3n2n1n+4.*two3n3n+1.*three4n3n1n+6.*three3n2n1n)-dMult*(dMult-1.)*(4.*two1n1n+6.*two2n2n+4.*two3n3n+1.*two4n4n+1.*two1n1n+4.+6.*two1n1n+4.*two2n2n+1.*two3n3n)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));//<6>_{3n,n|n,n,n,n}
dee1e0e0 1035
1dfa3c16 1036 fQCorrelations->Fill(23.,six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
1037 fQCorrelations->Fill(24.,six2n1n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
1038 fQCorrelations->Fill(25.,six2n2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
1039 fQCorrelations->Fill(26.,six3n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
dee1e0e0 1040
1dfa3c16 1041 f6pDistribution->Fill(six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
bc92c0cb 1042
1dfa3c16 1043 fQProduct->Fill(1.,two1n1n*six1n1n1n1n1n1n,dMult*(dMult-1.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
1044 fQProduct->Fill(3.,four1n1n1n1n*six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.));
bc92c0cb 1045 }
dee1e0e0 1046
1047 //7-particle
1048 Double_t seven2n1n1n1n1n1n1n=0.;
1dfa3c16 1049 if(dMult>6)
dee1e0e0 1050 {
1dfa3c16 1051 seven2n1n1n1n1n1n1n = (reQ2nQ1nQ1nQ1nstarQ1nstarQ1nstarQ1nstar-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(2.*six3n1n1n1n1n1n+4.*six1n1n1n1n1n1n+1.*six2n2n1n1n1n1n+6.*six2n1n1n2n1n1n+8.*five2n1n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(1.*five4n1n1n1n1n +8.*five2n1n1n1n1n+8.*four3n1n1n1n+12.*five3n1n2n1n1n+4.*five2n1n1n1n1n+3.*five2n2n2n1n1n+6.*five2n2n2n1n1n+6.*four1n1n1n1n+24.*four1n1n1n1n+12.*five2n1n1n1n1n+12.*five2n1n1n1n1n+12.*three2n1n1n+24.*four2n1n2n1n+4.*five3n1n2n1n1n+4.*five2n1n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(4.*four3n1n1n1n+6.*four4n2n1n1n+12.*four1n1n1n1n+24.*three2n1n1n+24.*four2n1n2n1n+12.*four3n1n1n1n+24.*three3n2n1n+8.*four3n1n3n1n+6.*four3n1n2n2n+6.*three2n1n1n+12.*four1n1n1n1n+12.*four2n1n2n1n+6.*three2n1n1n+12.*four2n1n2n1n+4.*four3n1n2n2n+3.*four2n2n2n2n+4.*four1n1n1n1n+6.*three2n1n1n+24.*two1n1n+24.*four1n1n1n1n+4.*four3n1n1n1n+24.*two1n1n+24.*three2n1n1n+12.*two2n2n+24.*three2n1n1n+12.*four2n1n2n1n+8.*three3n2n1n+8.*four2n1n2n1n+1.*four4n2n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(6.*three2n1n1n+1.*three2n1n1n+8.*two1n1n+12.*three3n2n1n+24.*two1n1n+12.*three2n1n1n+4.*three2n1n1n+8.*two1n1n+4.*three4n3n1n+24.*three2n1n1n+8.*three3n2n1n+12.*two1n1n+12.*two1n1n+3.*three4n2n2n+24.*two2n2n+6.*two2n2n+12.+12.*three3n2n1n+8.*two3n3n+12.*three2n1n1n+24.*two1n1n+4.*three3n2n1n+8.*three3n2n1n+2.*three4n3n1n+12.*two1n1n+8.*three2n1n1n+4.*three2n1n1n+2.*three3n2n1n+6.*two2n2n+8.*two2n2n+1.*three4n2n2n+4.*three3n2n1n+6.*three2n1n1n)-dMult*(dMult-1.)*(4.*two1n1n+2.*two1n1n+6.*two2n2n+8.+1.*two2n2n+4.*two3n3n+12.*two1n1n+4.*two1n1n+1.*two4n4n+8.*two2n2n+6.+2.*two3n3n+4.*two1n1n+1.*two2n2n)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.));
dee1e0e0 1052
1dfa3c16 1053 fQCorrelations->Fill(28.,seven2n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.));
dee1e0e0 1054 }
1055
1056 //8-particle
1057 Double_t eight1n1n1n1n1n1n1n1n=0.;
1dfa3c16 1058 if(dMult>7)
dee1e0e0 1059 {
cb308e83 1060 //fill the common control histogram (8th order):
1061 fCommonHists8th->FillControlHistograms(anEvent);
1062
1dfa3c16 1063 eight1n1n1n1n1n1n1n1n = (pow(afvQvector1n.Mod(),8)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(12.*seven2n1n1n1n1n1n1n+16.*six1n1n1n1n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(8.*six3n1n1n1n1n1n+48.*six1n1n1n1n1n1n+6.*six2n2n1n1n1n1n+96.*five2n1n1n1n1n+72.*four1n1n1n1n+36.*six2n1n1n2n1n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(2.*five4n1n1n1n1n+32.*five2n1n1n1n1n+36.*four1n1n1n1n+32.*four3n1n1n1n+48.*five2n1n1n1n1n+48.*five3n1n2n1n1n+144.*five2n1n1n1n1n+288.*four1n1n1n1n+36.*five2n2n2n1n1n+144.*three2n1n1n+96.*two1n1n+144.*four2n1n2n1n)-dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(8.*four3n1n1n1n+48.*four1n1n1n1n+12.*four4n2n1n1n+96.*four2n1n2n1n+96.*three2n1n1n+72.*three2n1n1n+144.*two1n1n+16.*four3n1n3n1n+48.*four3n1n1n1n+144.*four1n1n1n1n+72.*four1n1n1n1n+96.*three3n2n1n+24.*four3n1n2n2n+144.*four2n1n2n1n+288.*two1n1n+288.*three2n1n1n+9.*four2n2n2n2n+72.*two2n2n+24.)-dMult*(dMult-1.)*(dMult-2.)*(12.*three2n1n1n+16.*two1n1n+24.*three3n2n1n+48.*three2n1n1n+96.*two1n1n+8.*three4n3n1n+32.*three3n2n1n+96.*three2n1n1n+144.*two1n1n+6.*three4n2n2n+96.*two2n2n+36.*two2n2n+72.+48.*three3n2n1n+16.*two3n3n+72.*three2n1n1n+144.*two1n1n)-dMult*(dMult-1.)*(8.*two1n1n+12.*two2n2n+16.+8.*two3n3n+48.*two1n1n+1.*two4n4n+16.*two2n2n+18.)-dMult)/(dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
dee1e0e0 1064
1dfa3c16 1065 fQCorrelations->Fill(30.,eight1n1n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
5e838eeb 1066
1dfa3c16 1067 f8pDistribution->Fill(eight1n1n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.));
dee1e0e0 1068 }
bc92c0cb 1069 //---------------------------------------------------------------------------------------------------------
1070
4057ba99 1071
1072
1073
bc92c0cb 1074
bc92c0cb 1075
e8a609bc 1076
ae733b3b 1077
ae733b3b 1078
3d824203 1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127 //WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
1128
1129 //---------------------------------------------------------------------------------------------------------
1130 // weights:
1131 Bool_t useWeights = fUsePhiWeights||fUsePtWeights||fUseEtaWeights;
1132
1133 TH1F *phiWeights = NULL; // histogram with phi weights
1134 TH1D *ptWeights = NULL; // histogram with pt weights
1135 TH1D *etaWeights = NULL; // histogram with eta weights
1136
1137 if(useWeights)
1138 {
1139 if(!fWeightsList)
1315fe58 1140 {
3d824203 1141 cout<<" WARNING: fWeightsList is NULL pointer. "<<endl;
1142 exit(0);
1143 }
1144 if(fUsePhiWeights)
1145 {
1146 phiWeights = dynamic_cast<TH1F *>(fWeightsList->FindObject("phi_weights"));
1147 if(!phiWeights)
ae733b3b 1148 {
3d824203 1149 cout<<" WARNING: couldn't access the histogram with phi weights. "<<endl;
1150 exit(0);
ae733b3b 1151 }
3d824203 1152 }
1153 if(fUsePtWeights)
1154 {
1155 ptWeights = dynamic_cast<TH1D *>(fWeightsList->FindObject("pt_weights"));
1156 if(!ptWeights)
1157 {
1158 cout<<" WARNING: couldn't access the histogram with pt weights. "<<endl;
1159 exit(0);
1160 }
1161 }
1162 if(fUseEtaWeights)
1163 {
1164 etaWeights = dynamic_cast<TH1D *>(fWeightsList->FindObject("eta_weights"));
1165 if(!etaWeights)
1166 {
1167 cout<<" WARNING: couldn't access the histogram with eta weights. "<<endl;
1168 exit(0);
1169 }
1170 }
1171 }
1172
1173 Int_t nBinsPhi = 0;
1174
1175 Double_t dBinWidthPt=0.;
1176 Double_t dPtMin=0.;
1177 Double_t dBinWidthEta=0.;
1178 Double_t dEtaMin=0.;
1179
1180 if(fWeightsList)
1181 {
1182 if(fUsePhiWeights)
1183 {
1184 phiWeights = dynamic_cast<TH1F *>(fWeightsList->FindObject("phi_weights"));
1185 if(phiWeights) nBinsPhi = phiWeights->GetNbinsX();
1186 }
1187 if(fUsePtWeights)
1188 {
1189 ptWeights = dynamic_cast<TH1D *>(fWeightsList->FindObject("pt_weights"));
1190 if(ptWeights)
1191 {
1192 dBinWidthPt = ptWeights->GetBinWidth(1); // assuming that all bins have the same width
1193 dPtMin = (ptWeights->GetXaxis())->GetXmin();
1194 }
1195 }
1196 if(fUseEtaWeights)
1197 {
1198 etaWeights = dynamic_cast<TH1D *>(fWeightsList->FindObject("eta_weights"));
1199 if(etaWeights)
1200 {
1201 dBinWidthEta = etaWeights->GetBinWidth(1); // assuming that all bins have the same width
1202 dEtaMin = (etaWeights->GetXaxis())->GetXmin();
1203 }
1204 }
1205 } // end of if(weightsList)
1206
1207 Double_t wPhi = 1.; // phi weight
1208 Double_t wPt = 1.; // pt weight
1209 Double_t wEta = 1.; // eta weight
1210
1211 Double_t dPhi = 0.;
1212 Double_t dPt = 0.;
1213 Double_t dEta = 0.;
1214
1215
1216 //..................................................................................
1217 // variables I need to calculate in loop bellow:
1218 Double_t dQnkX[4][8] = {{0.}}; // sum_{i=1}^{M} w_i^k cos(n phi_i)
1219 Double_t dQnkY[4][8] = {{0.}}; // sum_{i=1}^{M} w_i^k sin(n phi_i)
1220
1221 Double_t dSnk[4][8] = {{0.}}; //(sum_{i=1}^{M} w_i^k)^n
1222
1223 //Ms
1224
1225 //..................................................................................
1226
1227
1228
1229 for(Int_t i=0;i<nPrim;i++) // loop over all particles
1230 {
1231 fTrack=anEvent->GetTrack(i);
1232 if(fTrack)
1233 {
1234 if(fTrack->UseForIntegratedFlow())
1235 {
1236 dPhi = fTrack->Phi();
1237 dPt = fTrack->Pt();
1238 dEta = fTrack->Eta();
1239
1240 // determine Phi weight: (to be improved, I should here only access it + the treatment of gaps in the if statement)
1241 if(phiWeights && nBinsPhi)
1242 {
1243 wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi())));
1244 }
1245 // determine v'(pt) weight:
1246 if(ptWeights && dBinWidthPt)
1247 {
1248 wPt=ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-dPtMin)/dBinWidthPt)));
1249 }
1250 // determine v'(eta) weight:
1251 if(etaWeights && dBinWidthEta)
1252 {
1253 wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-dEtaMin)/dBinWidthEta)));
1254 }
1255
1256 // (Q_{n,k})_x, (Q_{n,k})_x and S_{n,k}
1257 for(Int_t nn=0;nn<4;nn++)
1258 {
1259 for(Int_t k=0;k<8;k++)
1260 {
1261 dQnkX[nn][k]+=pow(wPhi*wPt*wEta,k+1)*TMath::Cos(2*(nn+1)*dPhi);
1262 dQnkY[nn][k]+=pow(wPhi*wPt*wEta,k+1)*TMath::Sin(2*(nn+1)*dPhi);
1263 dSnk[nn][k]+=pow(wPhi*wPt*wEta,k+1);
1264 }
1265 }
1266
1267
1268 } // end of if (pTrack->UseForIntegratedFlow())
1269 } // end of if (pTrack)
1270 else {cerr << "no particle!!!"<<endl;}
1271 } // loop over particles
1272
1273 for(Int_t nn=0;nn<4;nn++)
1274 {
1275 for(Int_t k=0;k<8;k++)
1276 {
1277 dSnk[nn][k]=pow(dSnk[nn][k],nn+1);
1278 }
1279 }
1280
1281
1282 //---------------------------------------------------------------------------------------------------------
1283
1284
1285
1286
1287 // Ms
1288 //..................................................................................
1289 Double_t dM11 = dSnk[1][0]-dSnk[0][1]; // dM11 = sum_{i,j=1,i!=j}^M w_i w_j
1290 Double_t dM22 = dSnk[1][1]-dSnk[0][3]; // dM22 = sum_{i,j=1,i!=j}^M w_i^2 w_j^2
1291 Double_t dM33 = dSnk[1][2]-dSnk[0][5]; // dM33 = sum_{i,j=1,i!=j}^M w_i^3 w_j^3
1292 Double_t dM44 = dSnk[1][3]-dSnk[0][7]; // dM44 = sum_{i,j=1,i!=j}^M w_i^4 w_j^4
1293 Double_t dM31 = dSnk[0][2]*dSnk[0][0]-dSnk[0][3]; // dM31 = sum_{i,j=1,i!=j}^M w_i^3 w_j
1294 Double_t dM211 = dSnk[0][1]*dSnk[1][0]-2.*dSnk[0][2]*dSnk[0][0]-dSnk[1][1]+2.*dSnk[0][3]; // dM211 = sum_{i,j,k=1,i!=j!=k}^M w_i^2 w_j w_k
1295 Double_t dM1111 = dSnk[3][0]-6.*dM211-4.*dM31-3.*dM22-dSnk[0][3]; // dM1111 = sum_{i,j,k,l=1,i!=j!=k!=l}^M w_i w_j w_k w_l
1296 //..................................................................................
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307 //---------------------------------------------------------------------------------------------------------
1308 //
1309 // ***********************************************
1310 // **** weighted multi-particle correlations: ****
1311 // ***********************************************
1312 //
1313 // Remark 1: weighted multi-particle correlations calculated with Q-vectors are stored in fQCorrelationsW.
1314 // Remark 2: binning of fQCorrelationsW is organized as follows:
1315
1316 // binning
1317 //..............................................................................................
1318 // 1st bin: weighted <2>_{n|n} = <w1 w2 cos( n*(phi1-phi2))>
1319 // 2nd bin: weighted <2>_{2n|2n} = <w1^2 w2^2 cos(2n*(phi1-phi2))>
1320 // 3rd bin: weighted <2>_{3n|3n} = <w1^3 w2^3 cos(3n*(phi1-phi2))>
1321 // 4th bin: weighted <2>_{4n|4n} = <w1^4 w2^4 cos(4n*(phi1-phi2))>
1322 // 5th bin: weighted <2>_{n|n} = <w1^3 w2 cos(n*(phi1-phi2))>
1323 // 6th bin: weighted <2>_{n|n} = <w1 w2 w3^2 cos(n*(phi1-phi2))>
1324
1325 // 11th bin: weighted <3>_{2n|n,n} = <w1^2 w2 w3 cos(n*(2phi1-phi2-phi3))>
1326
1327 // 21st bin: weighted <4>_{n,n|n,n} = <w1 w2 w3 w4 cos(n*(phi1+phi2-phi3-phi4))>
1328 //..............................................................................................
1329
1330
1331
1332
1333
1334
1335 //..............................................................................................
1336 // weighted 2-particle correlations:
1337 Double_t two1n1nW1W1=0., two2n2nW2W2=0., two3n3nW3W3=0., two4n4nW4W4=0., two1n1nW3W1=0., two1n1nW2W1W1=0.;
1338
1339 if(nRP>1) // nRP = number of particles used to determine the reaction plane
1340 {
1341 if(dM11 != 0)
1342 {
1343 two1n1nW1W1 = (pow(dQnkX[0][0],2)+pow(dQnkY[0][0],2)-dSnk[0][1])/dM11; // <2>_{n|n}=<w1 w2 cos(n*(phi1-phi2))>
1344 fQCorrelationsW->Fill(0.,two1n1nW1W1,dM11);
1345 }
1346 if(dM22 != 0)
1347 {
1348 two2n2nW2W2 = (pow(dQnkX[1][1],2)+pow(dQnkY[1][1],2)-dSnk[0][3])/dM22; // <2>_{2n|2n}=<w1^2 w2^2 cos(2n*(phi1-phi2))>
1349 fQCorrelationsW->Fill(1.,two2n2nW2W2,dM22);
1350 }
1351 if(dM33 != 0)
1352 {
1353 two3n3nW3W3 = (pow(dQnkX[2][2],2)+pow(dQnkY[2][2],2)-dSnk[0][5])/dM33; // <2>_{2n|2n}=<w1^3 w2^3 cos(3n*(phi1-phi2))>
1354 fQCorrelationsW->Fill(2.,two3n3nW3W3,dM33);
1355 }
1356 if(dM44 != 0)
1357 {
1358 two4n4nW4W4 = (pow(dQnkX[3][3],2)+pow(dQnkY[3][3],2)-dSnk[0][7])/dM44; // <2>_{2n|2n}=<w1^4 w2^4 cos(4n*(phi1-phi2))>
1359 fQCorrelationsW->Fill(3.,two4n4nW4W4,dM44);
1360 }
1361 if(dM31 != 0)
1362 {
1363 two1n1nW3W1 = (dQnkX[0][2]*dQnkX[0][0]+dQnkY[0][2]*dQnkY[0][0]-dSnk[0][3])/dM31; // <2>_{n|n}=<w1^3 w2 cos(n*(phi1-phi2))>
1364 fQCorrelationsW->Fill(4.,two1n1nW3W1,dM31);
1365 }
1366 if(dM211 != 0)
1367 {
1368 two1n1nW2W1W1 = (dSnk[0][1]*dM11*two1n1nW1W1-2.*dM31*two1n1nW3W1)/dM211; // <2>_{n|n}=<w1^2 w2 w3 cos(n*(phi1-phi2))>
1369 fQCorrelationsW->Fill(5.,two1n1nW2W1W1,dM211);
1370 }
1371 } // end of if(nRP>1)
1372 //..............................................................................................
1373
1374
1375 //..............................................................................................
1376 // weighted 3-particle correlations:
1377 Double_t three2n1n1nW2W1W1=0.;
1378
1379 if(nRP>2) // nRP = number of particles used to determine the reaction plane
1380 {
1381 if(dM211 != 0)
1382 {
1383 three2n1n1nW2W1W1 = (pow(dQnkX[0][0],2.)*dQnkX[1][1]+2.*dQnkX[0][0]*dQnkY[0][0]*dQnkY[1][1]-pow(dQnkY[0][0],2.)*dQnkX[1][1]-2.*dM31*two1n1nW3W1-dM22*two2n2nW2W2-dSnk[0][3])/dM211;
1384 fQCorrelationsW->Fill(10.,three2n1n1nW2W1W1,dM211);
1385 }
1386 } // end of if(nRP>2)
1387 //..............................................................................................
1388
1389
1390
1391 //..............................................................................................
1392 // weighted 4-particle correlations:
1393 Double_t four1n1n1n1nW1W1W1W1=0.;
1394
1395 if(nRP>3) // nRP = number of particles used to determine the reaction plane
1396 {
1397 if(dM1111 != 0)
1398 {
1399 four1n1n1n1nW1W1W1W1 = (pow(pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.),2) - 2.*dM211*three2n1n1nW2W1W1 - 4.*dM211*two1n1nW2W1W1 - 4.*dM31*two1n1nW3W1 - dM22*two2n2nW2W2 - 2.*dM22 - dSnk[0][3])/dM1111;
1400 fQCorrelationsW->Fill(20.,four1n1n1n1nW1W1W1W1,dM1111);
1401 }
1402 } // end of if(nRP>3)
1403 //..............................................................................................
1404
1405
1406 //WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416 //---------------------------------------------------------------------------------------------------------
1417 // DIFFERENTIAL FLOW
1418
1419 Double_t dQ1nx = afvQvector1n.X();
1420 Double_t dQ1ny = afvQvector1n.Y();
1421 Double_t dQ1nxW = dQnkX[0][0];
1422 Double_t dQ1nyW = dQnkY[0][0];
1423 Double_t dQ2nx = afvQvector2n.X();
1424 Double_t dQ2ny = afvQvector2n.Y();
1425
1426 //Double_t dBinWidthPt=0.,dBinWidthEta=0.;
1427 if(fnBinsPt)
1428 {
1429 dBinWidthPt=1.*(fPtMax-fPtMin)/fnBinsPt;
1430 }
1431 if(fnBinsEta)
1432 {
1433 dBinWidthEta=1.*(fEtaMax-fEtaMin)/fnBinsEta;
1434 }
1435
1436 //RP:
1437 Double_t qxPtRP=0.,qyPtRP=0.,q2xPtRP=0.,q2yPtRP=0.,mPtRP=0.;//add comments for these variables (deleteMe)
1438 Double_t qxEtaRP=0.,qyEtaRP=0.,q2xEtaRP=0.,q2yEtaRP=0.,mEtaRP=0.;//add comments for these variables (deleteMe)
1439
1440 Double_t dSumOfWeightsUpTomPtRP = 0.; // sum_{i=1}^{m} w_{i}
1441 Double_t dSumOfWeightsUpTomEtaRP = 0.; // sum_{i=1}^{m} w_{i}
1442
1443 TProfile *mPerBinPtRP = new TProfile("mPerBinPtRP","#sum_{i=1}^{m} w_{i}''",fnBinsPt,fPtMin,fPtMax,"s");
1444 TProfile *mPerBinEtaRP = new TProfile("mPerBinEtaRP","#sum_{i=1}^{m} w_{i}''",fnBinsEta,fEtaMin,fEtaMax,"s");
1445
1446 for(Int_t i=0;i<nPrim;i++) // loop over all particles
1447 {
1448 fTrack=anEvent->GetTrack(i);
1449 if(fTrack && fTrack->UseForIntegratedFlow()) // checking RP condition
1450 {
1451 // get azimuthal angle, momentum and pseudorapidity of a particle:
1452 dPhi = fTrack->Phi();
1453 dPt = fTrack->Pt();
1454 dEta = fTrack->Eta();
1455 // pt (without weights):
1456 fPtReq1nRP->Fill(dPt,cos(n*dPhi),1.);
1457 fPtImq1nRP->Fill(dPt,sin(n*dPhi),1.);
1458 fPtReq2nRP->Fill(dPt,cos(2.*n*dPhi),1.);
1459 fPtImq2nRP->Fill(dPt,sin(2.*n*dPhi),1.);
1460 // eta:
1461 fEtaReq1nRP->Fill(dEta,cos(n*dPhi),1.);
1462 fEtaImq1nRP->Fill(dEta,sin(n*dPhi),1.);
1463 fEtaReq2nRP->Fill(dEta,cos(2.*n*dPhi),1.);
1464 fEtaImq2nRP->Fill(dEta,sin(2.*n*dPhi),1.);
1465 // phi weights:
1466 if(fUsePhiWeights)
1467 {
1468 nBinsPhi = phiWeights->GetNbinsX();
1469 if(nBinsPhi)
1470 {
1471 wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi())));
1472 }
1473 }
1474 // pt weights:
1475 if(fUsePtWeights)
1476 {
1477 if(dBinWidthPt)
1478 {
1479 wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt)));
1480 }
1481 }
1482 // eta weights:
1483 if(fUseEtaWeights)
1484 {
1485 if(dBinWidthEta)
1486 {
1487 wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta)));
1488 }
1489 }
1490 // sum_{i=1}^{m} w_{i}:
1491 mPerBinPtRP->Fill(dPt,wPhi*wPt*wEta,1.);
1492 mPerBinEtaRP->Fill(dEta,wPhi*wPt*wEta,1.);
1493 }
1494 }
1495
1496 //Pt:
1dfa3c16 1497 Double_t twoDiffPt1n1nRP=0.,twoDiffPt2n2nRP=0.,threeDiffPt2n1n1nRP=0.,threeDiffPt1n1n2nRP=0.,fourDiffPt1n1n1n1nRP=0.;
bc92c0cb 1498
52021ae2 1499 for(Int_t bin=1;bin<(fnBinsPt+1);bin++)//loop over pt-bins
bc92c0cb 1500 {
1dfa3c16 1501 qxPtRP = (fPtReq1nRP->GetBinContent(bin))*(fPtReq1nRP->GetBinEntries(bin));
1502 qyPtRP = (fPtImq1nRP->GetBinContent(bin))*(fPtImq1nRP->GetBinEntries(bin));
1503 q2xPtRP = (fPtReq2nRP->GetBinContent(bin))*(fPtReq2nRP->GetBinEntries(bin));
1504 q2yPtRP = (fPtImq2nRP->GetBinContent(bin))*(fPtImq2nRP->GetBinEntries(bin));
1505 mPtRP = fPtReq1nRP->GetBinEntries(bin);
ae733b3b 1506 dSumOfWeightsUpTomPtRP = (mPerBinPtRP->GetBinContent(bin))*(mPerBinPtRP->GetBinEntries(bin));
1507
3d824203 1508 if(mPtRP*dSnk[0][0]-dSumOfWeightsUpTomPtRP)
bc92c0cb 1509 {
ae733b3b 1510 //twoDiffPt1n1nRP = (qxPtRP*dQ1nx+qyPtRP*dQ1ny-mPtRP)/(mPtRP*(dMult-1.)); // OK without weights
1511 //f2PerPtBin1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nRP,mPtRP*(dMult-1.));//<2'>_{n|n} // OK without weights
1512
3d824203 1513 twoDiffPt1n1nRP = (qxPtRP*dQ1nxW+qyPtRP*dQ1nyW-dSumOfWeightsUpTomPtRP)/(mPtRP*dSnk[0][0]-dSumOfWeightsUpTomPtRP); // OK without weights
1514 f2PerPtBin1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nRP,mPtRP*dSnk[0][0]-dSumOfWeightsUpTomPtRP);//<2'>_{n|n} // OK without weights
ae733b3b 1515 }
bc92c0cb 1516
ae733b3b 1517 if(mPtRP>0&&dMult>1)
1518 {
1dfa3c16 1519 twoDiffPt2n2nRP = (q2xPtRP*dQ2nx+q2yPtRP*dQ2ny-mPtRP)/(mPtRP*(dMult-1.));
1520 f2PerPtBin2n2nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt2n2nRP,mPtRP*(dMult-1.));//<2'>_{2n|2n}
bc92c0cb 1521 }
1522
1dfa3c16 1523 if(mPtRP>0&&dMult>2)
bc92c0cb 1524 {
1dfa3c16 1525 threeDiffPt2n1n1nRP = (q2xPtRP*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPtRP*dQ1nx*dQ1ny-2.*(qxPtRP*dQ1nx+qyPtRP*dQ1ny)-(q2xPtRP*dQ2nx+q2yPtRP*dQ2ny)+2.*mPtRP)/(mPtRP*(dMult-1.)*(dMult-2.));
1526 f3PerPtBin2n1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt2n1n1nRP,mPtRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}]
bc92c0cb 1527
1dfa3c16 1528 threeDiffPt1n1n2nRP = (dQ2nx*(qxPtRP*dQ1nx-qyPtRP*dQ1ny)+dQ2ny*(qxPtRP*dQ1ny+qyPtRP*dQ1nx)-2.*(qxPtRP*dQ1nx+qyPtRP*dQ1ny)-(q2xPtRP*dQ2nx+q2yPtRP*dQ2ny)+2.*mPtRP)/(mPtRP*(dMult-1.)*(dMult-2.));
1529 f3PerPtBin1n1n2nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt1n1n2nRP,mPtRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}]
bc92c0cb 1530 }
1531
1dfa3c16 1532 if(mPtRP>0&&dMult>3)
bc92c0cb 1533 {
1dfa3c16 1534 fourDiffPt1n1n1n1nRP = ((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPtRP*dQ1nx+qyPtRP*dQ1ny)-(q2xPtRP*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPtRP*dQ1nx*dQ1ny)-(dQ2nx*(qxPtRP*dQ1nx-qyPtRP*dQ1ny)+dQ2ny*(qxPtRP*dQ1ny+qyPtRP*dQ1nx))+(q2xPtRP*dQ2nx+q2yPtRP*dQ2ny)-2.*(dMult-3.)*(qxPtRP*dQ1nx+qyPtRP*dQ1ny)-2.*mPtRP*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxPtRP+dQ1ny*qyPtRP)+2.*mPtRP*(dMult-3.))/(mPtRP*(dMult-1.)*(dMult-2.)*(dMult-3.));
1535 f4PerPtBin1n1n1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,fourDiffPt1n1n1n1nRP,mPtRP*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}]
4057ba99 1536 }
1537 }//end of for(Int_t bin=1;bin<(fnBinsPt+1);bin++)//loop over pt-bins
bc92c0cb 1538
3d824203 1539 fPtReq1nRP->Reset();
1540 fPtImq1nRP->Reset();
1541 fPtReq2nRP->Reset();
1542 fPtImq2nRP->Reset();
1543
1544 mPerBinPtRP->Reset();
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575 /*
1576
1577
1578
1579 //WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601 //Pt POI
1602 TProfile *req1nW2PrimePrimePtPOI = new TProfile("req1nW2PrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{2} cos(n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s");
1603 TProfile *imq1nW2PrimePrimePtPOI = new TProfile("imq1nW2PrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{2} sin(n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s");
1604 TProfile *req2nW1PrimePrimePtPOI = new TProfile("req2nW1PrimePrimePtPOI","#sum_{i=1}^{m''} w_{i} cos(2n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s");
1605 TProfile *imq2nW1PrimePrimePtPOI = new TProfile("imq2nW1PrimePrimePtPOI","#sum_{i=1}^{m''} w_{i} sin(2n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s");
1606
1607 TProfile *sumOfW1upTomPrimePrimePtPOI = new TProfile("sumOfW1upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsPt,fPtMin,fPtMax,"s");
1608 TProfile *sumOfW2upTomPrimePrimePtPOI = new TProfile("sumOfW2upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{2}''",fnBinsPt,fPtMin,fPtMax,"s");
1609 TProfile *sumOfW3upTomPrimePrimePtPOI = new TProfile("sumOfW3upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{3}''",fnBinsPt,fPtMin,fPtMax,"s");
1610
1611 //eta POI
1612 TProfile *req1nW2PrimePrimeEtaPOI = new TProfile("req1nW2PrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{2} cos(n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s");
1613 TProfile *imq1nW2PrimePrimeEtaPOI = new TProfile("imq1nW2PrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{2} sin(n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s");
1614 TProfile *req2nW1PrimePrimeEtaPOI = new TProfile("req2nW1PrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i} cos(2n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s");
1615 TProfile *imq2nW1PrimePrimeEtaPOI = new TProfile("imq2nW1PrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i} sin(2n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s");
1616
1617 TProfile *sumOfW1upTomPrimePrimeEtaPOI = new TProfile("sumOfW1upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsEta,fEtaMin,fEtaMax,"s");
1618 TProfile *sumOfW2upTomPrimePrimeEtaPOI = new TProfile("sumOfW2upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{2}''",fnBinsEta,fEtaMin,fEtaMax,"s");
1619 TProfile *sumOfW3upTomPrimePrimeEtaPOI = new TProfile("sumOfW3upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{3}''",fnBinsEta,fEtaMin,fEtaMax,"s");
1620
1621
1622 //POI:
1623 //Double_t qxPrimePtPOI=0.,qyPrimePtPOI=0.,q2xPrimePtPOI=0.,q2yPrimePtPOI=0.,mPrimePtPOI=0.;//add comments for these variables (deleteMe)
1624
1625 for(Int_t i=0;i<nPrim;i++) // loop over all particles (to be improved: do the calculations for RPs and POIs in the same loop)
1626 {
1627 fTrack=anEvent->GetTrack(i);
1628 if(fTrack)
1629 {
1630 if(fTrack->UseForDifferentialFlow()) // checking if particle is POI
1631 {
1632 if(fTrack->UseForIntegratedFlow()) // checking if particle is both POI and RP
1633 {
1634 // get azimuthal angle, momentum and pseudorapidity of a particle:
1635 dPhi = fTrack->Phi();
1636 dPt = fTrack->Pt();
1637 dEta = fTrack->Eta();
1638 // phi weights:
1639 if(fUsePhiWeights)
1640 {
1641 nBinsPhi = phiWeights->GetNbinsX();
1642 if(nBinsPhi)
1643 {
1644 wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi())));
1645 }
1646 }
1647 // pt weights:
1648 if(fUsePtWeights)
1649 {
1650 if(dBinWidthPt)
1651 {
1652 wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt)));
1653 }
1654 }
1655 // eta weights:
1656 if(fUseEtaWeights)
1657 {
1658 if(dBinWidthEta)
1659 {
1660 wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta)));
1661 }
1662 }
1663 // pt:
1664 fPtReq1nPrimePrimePOI->Fill(dPt,cos(n*dPhi),1.);
1665 fPtImq1nPrimePrimePOI->Fill(dPt,sin(n*dPhi),1.);
1666 fPtReq2nPrimePrimePOI->Fill(dPt,cos(2.*n*dPhi),1.);
1667 fPtImq2nPrimePrimePOI->Fill(dPt,sin(2.*n*dPhi),1.);
1668 // eta:
1669 fEtaReq1nPrimePrimePOI->Fill(dEta,cos(n*dPhi),1.);
1670 fEtaImq1nPrimePrimePOI->Fill(dEta,sin(n*dPhi),1.);
1671 fEtaReq2nPrimePrimePOI->Fill(dEta,cos(2.*n*dPhi),1.);
1672 fEtaImq2nPrimePrimePOI->Fill(dEta,sin(2.*n*dPhi),1.);
1673 // weighted pt:
1674 req1nW2PrimePrimePtPOI->Fill(dPt,cos(n*dPhi),pow(wPhi*wPt*wEta,2.));
1675 imq1nW2PrimePrimePtPOI->Fill(dPt,sin(n*dPhi),pow(wPhi*wPt*wEta,2.));
1676 req2nW1PrimePrimePtPOI->Fill(dPt,cos(2.*n*dPhi),wPhi*wPt*wEta);
1677 imq2nW1PrimePrimePtPOI->Fill(dPt,sin(2.*n*dPhi),wPhi*wPt*wEta);
1678 sumOfW1upTomPrimePrimePtPOI->Fill(dPt,wPhi*wPt*wEta,1.);
1679 sumOfW2upTomPrimePrimePtPOI->Fill(dPt,pow(wPhi*wPt*wEta,2),1.);
1680 sumOfW3upTomPrimePrimePtPOI->Fill(dPt,pow(wPhi*wPt*wEta,3),1.);
1681 // weighted eta:
1682 req1nW2PrimePrimeEtaPOI->Fill(dEta,cos(n*dPhi),pow(wPhi*wPt*wEta,2.));
1683 imq1nW2PrimePrimeEtaPOI->Fill(dEta,sin(n*dPhi),pow(wPhi*wPt*wEta,2.));
1684 req2nW1PrimePrimeEtaPOI->Fill(dEta,cos(2.*n*dPhi),wPhi*wPt*wEta);
1685 imq2nW1PrimePrimeEtaPOI->Fill(dEta,sin(2.*n*dPhi),wPhi*wPt*wEta);
1686 sumOfW1upTomPrimePrimeEtaPOI->Fill(dEta,wPhi*wPt*wEta,1.);
1687 sumOfW2upTomPrimePrimeEtaPOI->Fill(dEta,pow(wPhi*wPt*wEta,2),1.);
1688 sumOfW3upTomPrimePrimeEtaPOI->Fill(dEta,pow(wPhi*wPt*wEta,3),1.);
1689 }else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP
1690 {
1691 // get azimuthal angle, momentum and pseudorapidity of a particle:
1692 dPhi = fTrack->Phi();
1693 dPt = fTrack->Pt();
1694 dEta = fTrack->Eta();
1695 // pt:
1696 fPtReq1nPrimePOI->Fill(dPt,cos(n*dPhi),1.);
1697 fPtImq1nPrimePOI->Fill(dPt,sin(n*dPhi),1.);
1698 fPtReq2nPrimePOI->Fill(dPt,cos(2.*n*dPhi),1.);
1699 fPtImq2nPrimePOI->Fill(dPt,sin(2.*n*dPhi),1.);
1700 // eta:
1701 fEtaReq1nPrimePOI->Fill(dEta,cos(n*dPhi),1.);
1702 fEtaImq1nPrimePOI->Fill(dEta,sin(n*dPhi),1.);
1703 fEtaReq2nPrimePOI->Fill(dEta,cos(2.*n*dPhi),1.);
1704 fEtaImq2nPrimePOI->Fill(dEta,sin(2.*n*dPhi),1.);
1705 } // end of else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP
1706 } // end of if(fTrack->UseForDifferentialFlow()) // checking if particle is POI
1707 } // end of if(fTrack}
1708 } // end of for(Int_t i=0;i<nPrim;i++)
1709
1710 //Pt POI
1711 //PrimePrime
1712 Double_t qxPrimePrimePtPOIHere=0.,qyPrimePrimePtPOIHere=0.,q2xPrimePrimePtPOIHere=0.,q2yPrimePrimePtPOIHere=0.;//add comments for these variable
1713 Double_t qxW2PrimePrimePtPOI=0.,qyW2PrimePrimePtPOI=0.,q2xW1PrimePrimePtPOI=0.,q2yW1PrimePrimePtPOI=0.;//add comments for these variable
1714 Double_t dS11mPrimePrimePtPOI=0.; // to be improved (name)
1715 Double_t dS12mPrimePrimePtPOI=0.; // to be improved (name)
1716 Double_t dS13mPrimePrimePtPOI=0.; // to be improved (name)
1717 Double_t mPrimePrimePtPOIHere=0.; // to be improved (name)
1718
1719 Double_t dM1pp11PtPOI=0.; // to be improved (name)
1720 Double_t dM0pp111PtPOIPtPOI=0.; // to be improved (name)
1721 Double_t dM0pp12PtPOIPtPOI=0.;
1722 Double_t dM2pp1PtPOIPtPOI=0.;
1723 Double_t dM1pp2PtPOIPtPOI=0.;
1724 Double_t dM0pp3PtPOIPtPOI=0.;
1725
1726 //Prime
1727 Double_t qxPrimePtPOIHere=0.,qyPrimePtPOIHere=0.;
1728 Double_t mPrimePtPOIHere=0.;
1729 Double_t dM0p111PtPOIPtPOI=0.; // to be improved (name)
1730
1731
1732 //Eta POI
1733 //PrimePrime
1734 Double_t qxPrimePrimeEtaPOIHere=0.,qyPrimePrimeEtaPOIHere=0.,q2xPrimePrimeEtaPOIHere=0.,q2yPrimePrimeEtaPOIHere=0.;//add comments for these variable
1735 Double_t qxW2PrimePrimeEtaPOI=0.,qyW2PrimePrimeEtaPOI=0.,q2xW1PrimePrimeEtaPOI=0.,q2yW1PrimePrimeEtaPOI=0.;//add comments for these variable
1736 Double_t dS11mPrimePrimeEtaPOI=0.; // to be improved (name)
1737 Double_t dS12mPrimePrimeEtaPOI=0.; // to be improved (name)
1738 Double_t dS13mPrimePrimeEtaPOI=0.; // to be improved (name)
1739 Double_t mPrimePrimeEtaPOIHere=0.; // to be improved (name)
1740
1741 Double_t dM1pp11EtaPOI=0.; // to be improved (name)
1742 Double_t dM0pp111PtPOIEtaPOI=0.; // to be improved (name)
1743 Double_t dM0pp12PtPOIEtaPOI=0.;
1744 Double_t dM2pp1PtPOIEtaPOI=0.;
1745 Double_t dM1pp2PtPOIEtaPOI=0.;
1746 Double_t dM0pp3PtPOIEtaPOI=0.;
1747
1748 //Prime
1749 Double_t qxPrimeEtaPOIHere=0.,qyPrimeEtaPOIHere=0.;
1750 Double_t mPrimeEtaPOIHere=0.;
1751 Double_t dM0p111PtPOIEtaPOI=0.; // to be improved (name)
1752
1753
1754
1755
1756
1757 for(Int_t bin=1;bin<(fnBinsPt+1);bin++) // loop over pt-bins
1758 {
1759 // q'':
1760 qxPrimePrimePtPOIHere = (fPtReq1nPrimePrimePOI->GetBinContent(bin))*(fPtReq1nPrimePrimePOI->GetBinEntries(bin));
1761 qyPrimePrimePtPOIHere = (fPtImq1nPrimePrimePOI->GetBinContent(bin))*(fPtImq1nPrimePrimePOI->GetBinEntries(bin));
1762 q2xPrimePrimePtPOIHere = (fPtReq2nPrimePrimePOI->GetBinContent(bin))*(fPtReq2nPrimePrimePOI->GetBinEntries(bin));
1763 q2yPrimePrimePtPOIHere = (fPtImq2nPrimePrimePOI->GetBinContent(bin))*(fPtImq2nPrimePrimePOI->GetBinEntries(bin));
1764
1765
1766 qxW2PrimePrimePtPOI = (req1nW2PrimePrimePtPOI->GetBinContent(bin))*(req1nW2PrimePrimePtPOI->GetBinEntries(bin));
1767 qyW2PrimePrimePtPOI = (imq1nW2PrimePrimePtPOI->GetBinContent(bin))*(imq1nW2PrimePrimePtPOI->GetBinEntries(bin));
1768
1769 q2xW1PrimePrimePtPOI = (req2nW1PrimePrimePtPOI->GetBinContent(bin))*(req2nW1PrimePrimePtPOI->GetBinEntries(bin));
1770 q2yW1PrimePrimePtPOI = (imq2nW1PrimePrimePtPOI->GetBinContent(bin))*(imq2nW1PrimePrimePtPOI->GetBinEntries(bin));
1771
1772 dS11mPrimePrimePtPOI = (sumOfW1upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW1upTomPrimePrimePtPOI->GetBinEntries(bin));
1773 dS12mPrimePrimePtPOI = (sumOfW2upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW2upTomPrimePrimePtPOI->GetBinEntries(bin));
1774 dS13mPrimePrimePtPOI = (sumOfW3upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW3upTomPrimePrimePtPOI->GetBinEntries(bin));
1775
1776 mPrimePrimePtPOIHere = sumOfW1upTomPrimePrimePtPOI->GetBinEntries(bin); // to be improved
1777
1778 dM1pp11PtPOI=dS11mPrimePrimePtPOI*(dSnk[1][0]-dSnk[0][1])-2.*dS12mPrimePrimePtPOI*dSnk[0][0]+2.*dS13mPrimePrimePtPOI;
1779 dM1pp2PtPOIPtPOI=dS11mPrimePrimePtPOI*dSnk[0][1]-dS13mPrimePrimePtPOI;
1780 dM2pp1PtPOIPtPOI=dS12mPrimePrimePtPOI*dSnk[0][0]-dS13mPrimePrimePtPOI;
1781 dM0pp3PtPOIPtPOI=mPrimePrimePtPOIHere*dSnk[0][2]-dS13mPrimePrimePtPOI;
1782 dM0pp12PtPOIPtPOI=mPrimePrimePtPOIHere*dSnk[0][0]*dSnk[0][1]-dM2pp1PtPOIPtPOI-dM1pp2PtPOIPtPOI-dM0pp3PtPOIPtPOI-dS13mPrimePrimePtPOI;
1783 dM0pp111PtPOIPtPOI=mPrimePrimePtPOIHere*dSnk[2][0]-3.*dM1pp11PtPOI-3.*dM0pp12PtPOIPtPOI-3.*dM2pp1PtPOIPtPOI-3.*dM1pp2PtPOIPtPOI-dM0pp3PtPOIPtPOI-dS13mPrimePrimePtPOI;
1784
1785 // q':
1786 qxPrimePtPOIHere = (fPtReq1nPrimePOI->GetBinContent(bin))*(fPtReq1nPrimePOI->GetBinEntries(bin));
1787 qyPrimePtPOIHere = (fPtImq1nPrimePOI->GetBinContent(bin))*(fPtImq1nPrimePOI->GetBinEntries(bin));
1788
1789 mPrimePtPOIHere = fPtReq1nPrimePOI->GetBinEntries(bin); // to be improved
1790 dM0p111PtPOIPtPOI=mPrimePtPOIHere*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]);
1791
1792 // 2-p
1793 Double_t two1n1nWPerPtBinPOI=0.; // the needed one
1794 if(mPrimePrimePtPOIHere*dSnk[0][0]-dS11mPrimePrimePtPOI)
1795 {
1796 two1n1nWPerPtBinPOI = (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0]-dS11mPrimePrimePtPOI)/(mPrimePrimePtPOIHere*dSnk[0][0]-dS11mPrimePrimePtPOI);
1797
1798 f2WPerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,two1n1nWPerPtBinPOI,(mPrimePrimePtPOIHere*dSnk[0][0]-dS11mPrimePrimePtPOI)); // <2'>_{n|n}
1799 }
1800
1801 // 2-p
1802 Double_t two1n1nW1ppW1W1=0.; // <w1 w2 w3 cos(n(phi2-phi3))> // OK!!!
1803 if(dM1pp11PtPOI)
1804 {
1805 two1n1nW1ppW1W1 = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mPrimePrimePtPOI-2.*(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0]) - dS11mPrimePrimePtPOI*dSnk[0][1]+2.*dS13mPrimePrimePtPOI)/dM1pp11PtPOI; // CORRECT !!! <w1 w2 w3 cos(n(phi2-phi3))>
1806 }
1807
1808 // 2-p
1809 Double_t two1npp1nW1W2PtPOI=0.; // <w2 w3^2 cos(n(psi1-phi2))> // OK !!!
1810 if(dM0pp12PtPOIPtPOI)
1811 {
1812 two1npp1nW1W2PtPOI = (dSnk[0][1]*(qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0])-(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-dM1pp2PtPOIPtPOI-(qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2])+dS13mPrimePrimePtPOI)/dM0pp12PtPOIPtPOI; // CORRECT !!! <w2 w3^2 cos(n(psi1-phi2))>
1813 }
1814
1815 // 2-p
1816 Double_t two1npp1nW2ppW1PtPOI=0.; // <w1^2 w2 cos(n(psi1-phi2))> // OK !!!
1817 if(dM2pp1PtPOIPtPOI)
1818 {
1819 two1npp1nW2ppW1PtPOI = ((qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-dS13mPrimePrimePtPOI)/dM2pp1PtPOIPtPOI; // CORRECT !!! <w1^2 w2 cos(n(psi1-phi2))>
1820 }
1821
1822 // 2-p
1823 Double_t two2npp2nW1ppW2PtPOI=0.; // <w1 w2^2 cos(2n(psi1-phi2))> OK !!!
1824 if(dM1pp2PtPOIPtPOI)
1825 {
1826 two2npp2nW1ppW2PtPOI = ((q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])-dS13mPrimePrimePtPOI)/dM1pp2PtPOIPtPOI; // CORRECT !!! <w1 w2^2 cos(2n(psi1-phi2))>
1827 }
1828
1829 // 2-p
1830 Double_t two1npp1nW3PtPOI=0.; // <w2^3 cos(n(psi1-phi2))> // OK !!!
1831 if(dM0pp3PtPOIPtPOI)
1832 {
1833 two1npp1nW3PtPOI = (qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2]-dS13mPrimePrimePtPOI)/dM0pp3PtPOIPtPOI; // CORRECT !!! <w2^3 cos(n(psi1-phi2))>
1834 }
1835
1836 // 3-p
1837 Double_t three2npp1n1nW1ppW1W1PtPOI=0.; // <w1 w2 w3 cos(n(2psi1-phi2-phi3))> // OK!!!
1838 if(dM1pp11PtPOI)
1839 {
1840 three2npp1n1nW1ppW1W1PtPOI = (q2xW1PrimePrimePtPOI*(dQnkX[0][0]*dQnkX[0][0]-dQnkY[0][0]*dQnkY[0][0])+2.*q2yW1PrimePrimePtPOI*dQnkX[0][0]*dQnkY[0][0]-2.*(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-(q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])+2.*dS13mPrimePrimePtPOI)/dM1pp11PtPOI; // CORRECT !!! <w1 w2 w3 cos(n(2psi1-phi2-phi3))>
1841 }
1842
1843 // 3-p
1844 Double_t three1npp1n2nW0ppW1W2PtPOI=0.; // <w2 w3^2 cos(n(psi1+phi2-2*phi3))> // OK!!!
1845 if(dM0pp12PtPOIPtPOI)
1846 {
1847 three1npp1n2nW0ppW1W2PtPOI = (qxPrimePrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPrimePrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-(q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])-(qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2])+2.*dS13mPrimePrimePtPOI)/dM0pp12PtPOIPtPOI; // CORRECT !!! <w2 w3^2 cos(n(psi1+phi2-2.*phi3))>
1848 }
1849
1850
1851
1852 */
1853
1854
1855 /*
1856 // 4-p RPpart
1857 Double_t four1npp1n1n1nW1W1W1=0.; // <w1 w2 w3 cos(n(psi1+phi1-phi2-phi3))>
1858 if(dM0pp111PtPOIPtPOI)
1859 {
1860 four1npp1n1n1nW1W1W1 = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0])
1861 - 2.*dM1pp11PtPOI*two1n1nW1ppW1W1 - dM1pp11PtPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOIPtPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOIPtPOI*two1npp1nW1W2PtPOI
1862 - 3.*dM2pp1PtPOIPtPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOIPtPOI - dM1pp2PtPOIPtPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOIPtPOI*two1npp1nW3PtPOI - dS13mPrimePrimePtPOI)/(dM0pp111PtPOIPtPOI);
1863
1864 }
1865
1866 */
1867
1868
1869
1870 /*
1871 // 4- POIpart
1872 Double_t four1npp1n1n1nW1W1W1POI=0.;
1873 if(dM0p111PtPOIPtPOI>0&&mPrimePtPOIHere>0&&nRP>0)
1874 {
1875 four1npp1n1n1nW1W1W1POI = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0])
1876
1877 - 2.*dSnk[0][1]* (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0])
1878
1879 + 2.*(qxPrimePtPOIHere*dQnkX[0][2]+qyPrimePtPOIHere*dQnkY[0][2])
1880
1881 - qxPrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111PtPOIPtPOI;
1882
1883
1884
1885
1886 }
1887 */
1888 /*
1889
1890 // 4-p RP and POI in all combinations (full, partial and no overlap)
1891 Double_t four1npp1n1n1nW1W1W1PtPOIAndRPPt=0.;
1892
1893 if(dM0pp111PtPOIPtPOI+dM0p111PtPOIPtPOI)
1894 {
1895 four1npp1n1n1nW1W1W1PtPOIAndRPPt = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0])
1896 - 2.*dM1pp11PtPOI*two1n1nW1ppW1W1 - dM1pp11PtPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOIPtPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOIPtPOI*two1npp1nW1W2PtPOI
1897 - 3.*dM2pp1PtPOIPtPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOIPtPOI - dM1pp2PtPOIPtPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOIPtPOI*two1npp1nW3PtPOI - dS13mPrimePrimePtPOI +
1898
1899
1900 + ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0])
1901
1902 - 2.*dSnk[0][1]* (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0])
1903
1904 + 2.*(qxPrimePtPOIHere*dQnkX[0][2]+qyPrimePtPOIHere*dQnkY[0][2])
1905
1906 - qxPrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111PtPOIPtPOI+dM0p111PtPOIPtPOI);
1907
1908
1909 f4WPerPtBin1n1n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,four1npp1n1n1nW1W1W1PtPOIAndRPPt,dM0pp111PtPOIPtPOI+dM0p111PtPOIPtPOI);
1910 }
1911 }
1912
1913 delete req1nW2PrimePrimePtPOI;
1914 delete imq1nW2PrimePrimePtPOI;
1915 delete req2nW1PrimePrimePtPOI;
1916 delete imq2nW1PrimePrimePtPOI;
1917 delete sumOfW1upTomPrimePrimePtPOI;
1918 delete sumOfW2upTomPrimePrimePtPOI;
1919 delete sumOfW3upTomPrimePrimePtPOI;
1920
1921
1922
1923
1924
1925 */
1926
1927
1928
1929
1930
1931
1932 /*
1933
1934 // eta POI
1935 for(Int_t bin=1;bin<(fnBinsEta+1);bin++) // loop over Eta-bins
1936 {
1937 // q'':
1938 qxPrimePrimeEtaPOIHere = (fEtaReq1nPrimePrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePrimePOI->GetBinEntries(bin));
1939 qyPrimePrimeEtaPOIHere = (fEtaImq1nPrimePrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePrimePOI->GetBinEntries(bin));
1940 q2xPrimePrimeEtaPOIHere = (fEtaReq2nPrimePrimePOI->GetBinContent(bin))*(fEtaReq2nPrimePrimePOI->GetBinEntries(bin));
1941 q2yPrimePrimeEtaPOIHere = (fEtaImq2nPrimePrimePOI->GetBinContent(bin))*(fEtaImq2nPrimePrimePOI->GetBinEntries(bin));
1942
1943
1944 qxW2PrimePrimeEtaPOI = (req1nW2PrimePrimeEtaPOI->GetBinContent(bin))*(req1nW2PrimePrimeEtaPOI->GetBinEntries(bin));
1945 qyW2PrimePrimeEtaPOI = (imq1nW2PrimePrimeEtaPOI->GetBinContent(bin))*(imq1nW2PrimePrimeEtaPOI->GetBinEntries(bin));
1946
1947 q2xW1PrimePrimeEtaPOI = (req2nW1PrimePrimeEtaPOI->GetBinContent(bin))*(req2nW1PrimePrimeEtaPOI->GetBinEntries(bin));
1948 q2yW1PrimePrimeEtaPOI = (imq2nW1PrimePrimeEtaPOI->GetBinContent(bin))*(imq2nW1PrimePrimeEtaPOI->GetBinEntries(bin));
1949
1950 dS11mPrimePrimeEtaPOI = (sumOfW1upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW1upTomPrimePrimeEtaPOI->GetBinEntries(bin));
1951 dS12mPrimePrimeEtaPOI = (sumOfW2upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW2upTomPrimePrimeEtaPOI->GetBinEntries(bin));
1952 dS13mPrimePrimeEtaPOI = (sumOfW3upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW3upTomPrimePrimeEtaPOI->GetBinEntries(bin));
1953
1954 mPrimePrimeEtaPOIHere = sumOfW1upTomPrimePrimeEtaPOI->GetBinEntries(bin); // to be improved
1955
1956 dM1pp11EtaPOI=dS11mPrimePrimeEtaPOI*(dSnk[1][0]-dSnk[0][1])-2.*dS12mPrimePrimeEtaPOI*dSnk[0][0]+2.*dS13mPrimePrimeEtaPOI;
1957 dM1pp2PtPOIEtaPOI=dS11mPrimePrimeEtaPOI*dSnk[0][1]-dS13mPrimePrimeEtaPOI;
1958 dM2pp1PtPOIEtaPOI=dS12mPrimePrimeEtaPOI*dSnk[0][0]-dS13mPrimePrimeEtaPOI;
1959 dM0pp3PtPOIEtaPOI=mPrimePrimeEtaPOIHere*dSnk[0][2]-dS13mPrimePrimeEtaPOI;
1960 dM0pp12PtPOIEtaPOI=mPrimePrimeEtaPOIHere*dSnk[0][0]*dSnk[0][1]-dM2pp1PtPOIEtaPOI-dM1pp2PtPOIEtaPOI-dM0pp3PtPOIEtaPOI-dS13mPrimePrimeEtaPOI;
1961 dM0pp111PtPOIEtaPOI=mPrimePrimeEtaPOIHere*dSnk[2][0]-3.*dM1pp11EtaPOI-3.*dM0pp12PtPOIEtaPOI-3.*dM2pp1PtPOIEtaPOI-3.*dM1pp2PtPOIEtaPOI-dM0pp3PtPOIEtaPOI-dS13mPrimePrimeEtaPOI;
1962
1963 // q':
1964 qxPrimeEtaPOIHere = (fEtaReq1nPrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePOI->GetBinEntries(bin));
1965 qyPrimeEtaPOIHere = (fEtaImq1nPrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePOI->GetBinEntries(bin));
1966
1967 mPrimeEtaPOIHere = fEtaReq1nPrimePOI->GetBinEntries(bin); // to be improved
1968 dM0p111PtPOIEtaPOI=mPrimeEtaPOIHere*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]);
1969
1970 // 2-p
1971 Double_t two1n1nWPerEtaBinPOI=0.; // the needed one
1972 if(mPrimePrimeEtaPOIHere*dSnk[0][0]-dS11mPrimePrimeEtaPOI)
1973 {
1974 two1n1nWPerEtaBinPOI = (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0]-dS11mPrimePrimeEtaPOI)/(mPrimePrimeEtaPOIHere*dSnk[0][0]-dS11mPrimePrimeEtaPOI);
1975
1976 f2WPerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,two1n1nWPerEtaBinPOI,(mPrimePrimeEtaPOIHere*dSnk[0][0]-dS11mPrimePrimeEtaPOI)); // <2'>_{n|n}
1977 }
1978
1979 // 2-p
1980 Double_t two1n1nW1ppW1W1=0.; // <w1 w2 w3 cos(n(phi2-phi3))> // OK!!!
1981 if(dM1pp11EtaPOI)
1982 {
1983 two1n1nW1ppW1W1 = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mPrimePrimeEtaPOI-2.*(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0]) - dS11mPrimePrimeEtaPOI*dSnk[0][1]+2.*dS13mPrimePrimeEtaPOI)/dM1pp11EtaPOI; // CORRECT !!! <w1 w2 w3 cos(n(phi2-phi3))>
1984 }
1985
1986 // 2-p
1987 Double_t two1npp1nW1W2PtPOI=0.; // <w2 w3^2 cos(n(psi1-phi2))> // OK !!!
1988 if(dM0pp12PtPOIEtaPOI)
1989 {
1990 two1npp1nW1W2PtPOI = (dSnk[0][1]*(qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0])-(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-dM1pp2PtPOIEtaPOI-(qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2])+dS13mPrimePrimeEtaPOI)/dM0pp12PtPOIEtaPOI; // CORRECT !!! <w2 w3^2 cos(n(psi1-phi2))>
1991 }
1992
1993 // 2-p
1994 Double_t two1npp1nW2ppW1PtPOI=0.; // <w1^2 w2 cos(n(psi1-phi2))> // OK !!!
1995 if(dM2pp1PtPOIEtaPOI)
1996 {
1997 two1npp1nW2ppW1PtPOI = ((qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-dS13mPrimePrimeEtaPOI)/dM2pp1PtPOIEtaPOI; // CORRECT !!! <w1^2 w2 cos(n(psi1-phi2))>
1998 }
1999
2000 // 2-p
2001 Double_t two2npp2nW1ppW2PtPOI=0.; // <w1 w2^2 cos(2n(psi1-phi2))> OK !!!
2002 if(dM1pp2PtPOIEtaPOI)
2003 {
2004 two2npp2nW1ppW2PtPOI = ((q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])-dS13mPrimePrimeEtaPOI)/dM1pp2PtPOIEtaPOI; // CORRECT !!! <w1 w2^2 cos(2n(psi1-phi2))>
2005 }
2006
2007 // 2-p
2008 Double_t two1npp1nW3PtPOI=0.; // <w2^3 cos(n(psi1-phi2))> // OK !!!
2009 if(dM0pp3PtPOIEtaPOI)
2010 {
2011 two1npp1nW3PtPOI = (qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2]-dS13mPrimePrimeEtaPOI)/dM0pp3PtPOIEtaPOI; // CORRECT !!! <w2^3 cos(n(psi1-phi2))>
2012 }
2013
2014 // 3-p
2015 Double_t three2npp1n1nW1ppW1W1PtPOI=0.; // <w1 w2 w3 cos(n(2psi1-phi2-phi3))> // OK!!!
2016 if(dM1pp11EtaPOI)
2017 {
2018 three2npp1n1nW1ppW1W1PtPOI = (q2xW1PrimePrimeEtaPOI*(dQnkX[0][0]*dQnkX[0][0]-dQnkY[0][0]*dQnkY[0][0])+2.*q2yW1PrimePrimeEtaPOI*dQnkX[0][0]*dQnkY[0][0]-2.*(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-(q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])+2.*dS13mPrimePrimeEtaPOI)/dM1pp11EtaPOI; // CORRECT !!! <w1 w2 w3 cos(n(2psi1-phi2-phi3))>
2019 }
2020
2021 // 3-p
2022 Double_t three1npp1n2nW0ppW1W2PtPOI=0.; // <w2 w3^2 cos(n(psi1+phi2-2*phi3))> // OK!!!
2023 if(dM0pp12PtPOIEtaPOI)
2024 {
2025 three1npp1n2nW0ppW1W2PtPOI = (qxPrimePrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPrimePrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-(q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])-(qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2])+2.*dS13mPrimePrimeEtaPOI)/dM0pp12PtPOIEtaPOI; // CORRECT !!! <w2 w3^2 cos(n(psi1+phi2-2.*phi3))>
2026 }
2027
2028 */
2029
2030
2031 /*
2032 // 4-p RPpart
2033 Double_t four1npp1n1n1nW1W1W1=0.; // <w1 w2 w3 cos(n(psi1+phi1-phi2-phi3))>
2034 if(dM0pp111PtPOIEtaPOI)
2035 {
2036 four1npp1n1n1nW1W1W1 = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0])
2037 - 2.*dM1pp11EtaPOI*two1n1nW1ppW1W1 - dM1pp11EtaPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOIEtaPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOIEtaPOI*two1npp1nW1W2PtPOI
2038 - 3.*dM2pp1PtPOIEtaPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOIEtaPOI - dM1pp2PtPOIEtaPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOIEtaPOI*two1npp1nW3PtPOI - dS13mPrimePrimeEtaPOI)/(dM0pp111PtPOIEtaPOI);
2039
2040 }
2041
2042 */
2043
2044
2045
2046 /*
2047 // 4- POIpart
2048 Double_t four1npp1n1n1nW1W1W1POI=0.;
2049 if(dM0p111PtPOIEtaPOI>0&&mPrimeEtaPOIHere>0&&nRP>0)
2050 {
2051 four1npp1n1n1nW1W1W1POI = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0])
2052
2053 - 2.*dSnk[0][1]* (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0])
2054
2055 + 2.*(qxPrimeEtaPOIHere*dQnkX[0][2]+qyPrimeEtaPOIHere*dQnkY[0][2])
2056
2057 - qxPrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111PtPOIEtaPOI;
2058
2059
2060
2061
2062 }
2063 */
2064
2065
2066 /*
2067
2068 // 4-p RP and POI in all combinations (full, partial and no overlap)
2069 Double_t four1npp1n1n1nW1W1W1PtPOIAndRPEta=0.;
2070
2071 if(dM0pp111PtPOIEtaPOI+dM0p111PtPOIEtaPOI)
2072 {
2073 four1npp1n1n1nW1W1W1PtPOIAndRPEta = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0])
2074 - 2.*dM1pp11EtaPOI*two1n1nW1ppW1W1 - dM1pp11EtaPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOIEtaPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOIEtaPOI*two1npp1nW1W2PtPOI
2075 - 3.*dM2pp1PtPOIEtaPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOIEtaPOI - dM1pp2PtPOIEtaPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOIEtaPOI*two1npp1nW3PtPOI - dS13mPrimePrimeEtaPOI +
2076
2077
2078 + ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0])
2079
2080 - 2.*dSnk[0][1]* (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0])
2081
2082 + 2.*(qxPrimeEtaPOIHere*dQnkX[0][2]+qyPrimeEtaPOIHere*dQnkY[0][2])
2083
2084 - qxPrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111PtPOIEtaPOI+dM0p111PtPOIEtaPOI);
2085
2086
2087 f4WPerEtaBin1n1n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,four1npp1n1n1nW1W1W1PtPOIAndRPEta,dM0pp111PtPOIEtaPOI+dM0p111PtPOIEtaPOI);
2088 }
2089 }
2090
2091 delete req1nW2PrimePrimeEtaPOI;
2092 delete imq1nW2PrimePrimeEtaPOI;
2093 delete req2nW1PrimePrimeEtaPOI;
2094 delete imq2nW1PrimePrimeEtaPOI;
2095 delete sumOfW1upTomPrimePrimeEtaPOI;
2096 delete sumOfW2upTomPrimePrimeEtaPOI;
2097 delete sumOfW3upTomPrimePrimeEtaPOI;
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108 //WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
2109
2110
2111
2112 */
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149 //QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ
2150
2151
2152
2153 // pt POI
2154 TProfile *req1nW2PrimePrimePtPOI = new TProfile("req1nW2PrimePrimePtRP","#sum_{i=1}^{m''} w_{i}^{2} cos(n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s");
2155 TProfile *imq1nW2PrimePrimePtPOI = new TProfile("imq1nW2PrimePrimePtRP","#sum_{i=1}^{m''} w_{i}^{2} sin(n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s");
2156 TProfile *req2nW1PrimePrimePtPOI = new TProfile("req2nW1PrimePrimePtRP","#sum_{i=1}^{m''} w_{i} cos(2n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s");
2157 TProfile *imq2nW1PrimePrimePtPOI = new TProfile("imq2nW1PrimePrimePtRP","#sum_{i=1}^{m''} w_{i} sin(2n(#phi_{i}))''",fnBinsPt,fPtMin,fPtMax,"s");
2158
2159 TProfile *sumOfW1upTomPrimePrimePtPOI = new TProfile("sumOfW1upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsPt,fPtMin,fPtMax,"s");
2160 TProfile *sumOfW2upTomPrimePrimePtPOI = new TProfile("sumOfW2upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{2}''",fnBinsPt,fPtMin,fPtMax,"s");
2161 TProfile *sumOfW3upTomPrimePrimePtPOI = new TProfile("sumOfW3upTomPrimePrimePtPOI","#sum_{i=1}^{m''} w_{i}^{3}''",fnBinsPt,fPtMin,fPtMax,"s");
2162
2163 // eta POI
2164 TProfile *req1nW2PrimePrimeEtaPOI = new TProfile("req1nW2PrimePrimeEtaRP","#sum_{i=1}^{m''} w_{i}^{2} cos(n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s");
2165 TProfile *imq1nW2PrimePrimeEtaPOI = new TProfile("imq1nW2PrimePrimeEtaRP","#sum_{i=1}^{m''} w_{i}^{2} sin(n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s");
2166 TProfile *req2nW1PrimePrimeEtaPOI = new TProfile("req2nW1PrimePrimeEtaRP","#sum_{i=1}^{m''} w_{i} cos(2n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s");
2167 TProfile *imq2nW1PrimePrimeEtaPOI = new TProfile("imq2nW1PrimePrimeEtaRP","#sum_{i=1}^{m''} w_{i} sin(2n(#phi_{i}))''",fnBinsEta,fEtaMin,fEtaMax,"s");
2168
2169 TProfile *sumOfW1upTomPrimePrimeEtaPOI = new TProfile("sumOfW1upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsEta,fEtaMin,fEtaMax,"s");
2170 TProfile *sumOfW2upTomPrimePrimeEtaPOI = new TProfile("sumOfW2upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{2}''",fnBinsEta,fEtaMin,fEtaMax,"s");
2171 TProfile *sumOfW3upTomPrimePrimeEtaPOI = new TProfile("sumOfW3upTomPrimePrimeEtaPOI","#sum_{i=1}^{m''} w_{i}^{3}''",fnBinsEta,fEtaMin,fEtaMax,"s");
2172
2173
2174
2175 //POI:
2176 //Double_t qxPrimePtPOI=0.,qyPrimePtPOI=0.,q2xPrimePtPOI=0.,q2yPrimePtPOI=0.,mPrimePtPOI=0.;//add comments for these variables (deleteMe)
2177
2178 for(Int_t i=0;i<nPrim;i++) // loop over all particles (to be improved: do the calculations for RPs and POIs in the same loop)
2179 {
2180 fTrack=anEvent->GetTrack(i);
2181 if(fTrack)
2182 {
2183 if(fTrack->UseForDifferentialFlow()) // checking if particle is POI
2184 {
2185 if(fTrack->UseForIntegratedFlow()) // checking if particle is both POI and RP
2186 {
2187 // get azimuthal angle, momentum and pseudorapidity of a particle:
2188 dPhi = fTrack->Phi();
2189 dPt = fTrack->Pt();
2190 dEta = fTrack->Eta();
2191 // phi weights:
2192 if(fUsePhiWeights)
2193 {
2194 nBinsPhi = phiWeights->GetNbinsX();
2195 if(nBinsPhi)
2196 {
2197 wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi())));
2198 }
2199 }
2200 // pt weights:
2201 if(fUsePtWeights)
2202 {
2203 if(dBinWidthPt)
2204 {
2205 wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt)));
2206 }
2207 }
2208 // eta weights:
2209 if(fUseEtaWeights)
2210 {
2211 if(dBinWidthEta)
2212 {
2213 wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta)));
2214 }
2215 }
2216 // pt:
2217 fPtReq1nPrimePrimePOI->Fill(dPt,cos(n*dPhi),1.);
2218 fPtImq1nPrimePrimePOI->Fill(dPt,sin(n*dPhi),1.);
2219 fPtReq2nPrimePrimePOI->Fill(dPt,cos(2.*n*dPhi),1.);
2220 fPtImq2nPrimePrimePOI->Fill(dPt,sin(2.*n*dPhi),1.);
2221 // weighted pt:
2222 req1nW2PrimePrimePtPOI->Fill(dPt,cos(n*dPhi),pow(wPhi*wPt*wEta,2.));
2223 imq1nW2PrimePrimePtPOI->Fill(dPt,sin(n*dPhi),pow(wPhi*wPt*wEta,2.));
2224 req2nW1PrimePrimePtPOI->Fill(dPt,cos(2.*n*dPhi),wPhi*wPt*wEta);
2225 imq2nW1PrimePrimePtPOI->Fill(dPt,sin(2.*n*dPhi),wPhi*wPt*wEta);
2226 sumOfW1upTomPrimePrimePtPOI->Fill(dPt,wPhi*wPt*wEta,1.);
2227 sumOfW2upTomPrimePrimePtPOI->Fill(dPt,pow(wPhi*wPt*wEta,2),1.);
2228 sumOfW3upTomPrimePrimePtPOI->Fill(dPt,pow(wPhi*wPt*wEta,3),1.);
2229
2230 // eta:
2231 fEtaReq1nPrimePrimePOI->Fill(dEta,cos(n*dPhi),1.);
2232 fEtaImq1nPrimePrimePOI->Fill(dEta,sin(n*dPhi),1.);
2233 fEtaReq2nPrimePrimePOI->Fill(dEta,cos(2.*n*dPhi),1.);
2234 fEtaImq2nPrimePrimePOI->Fill(dEta,sin(2.*n*dPhi),1.);
2235 // weighted eta:
2236 req1nW2PrimePrimeEtaPOI->Fill(dEta,cos(n*dPhi),pow(wPhi*wPt*wEta,2.));
2237 imq1nW2PrimePrimeEtaPOI->Fill(dEta,sin(n*dPhi),pow(wPhi*wPt*wEta,2.));
2238 req2nW1PrimePrimeEtaPOI->Fill(dEta,cos(2.*n*dPhi),wPhi*wPt*wEta);
2239 imq2nW1PrimePrimeEtaPOI->Fill(dEta,sin(2.*n*dPhi),wPhi*wPt*wEta);
2240 sumOfW1upTomPrimePrimeEtaPOI->Fill(dEta,wPhi*wPt*wEta,1.);
2241 sumOfW2upTomPrimePrimeEtaPOI->Fill(dEta,pow(wPhi*wPt*wEta,2),1.);
2242 sumOfW3upTomPrimePrimeEtaPOI->Fill(dEta,pow(wPhi*wPt*wEta,3),1.);
2243
2244 }else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP
2245 {
2246 // get azimuthal angle, momentum and pseudorapidity of a particle:
2247 dPhi = fTrack->Phi();
2248 dPt = fTrack->Pt();
2249 dEta = fTrack->Eta();
2250 // pt:
2251 fPtReq1nPrimePOI->Fill(dPt,cos(n*dPhi),1.);
2252 fPtImq1nPrimePOI->Fill(dPt,sin(n*dPhi),1.);
2253 fPtReq2nPrimePOI->Fill(dPt,cos(2.*n*dPhi),1.);
2254 fPtImq2nPrimePOI->Fill(dPt,sin(2.*n*dPhi),1.);
2255
2256 // eta:
2257 fEtaReq1nPrimePOI->Fill(dEta,cos(n*dPhi),1.);
2258 fEtaImq1nPrimePOI->Fill(dEta,sin(n*dPhi),1.);
2259 fEtaReq2nPrimePOI->Fill(dEta,cos(2.*n*dPhi),1.);
2260 fEtaImq2nPrimePOI->Fill(dEta,sin(2.*n*dPhi),1.);
2261
2262 } // end of else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP
2263 } // end of if(fTrack->UseForDifferentialFlow()) // checking if particle is POI
2264 } // end of if(fTrack}
2265 } // end of for(Int_t i=0;i<nPrim;i++)
2266
2267
2268 //PrimePrime Pt POI
2269 Double_t qxPrimePrimePtPOIHere=0.,qyPrimePrimePtPOIHere=0.,q2xPrimePrimePtPOIHere=0.,q2yPrimePrimePtPOIHere=0.;//add comments for these variable
2270 Double_t qxW2PrimePrimePtPOI=0.,qyW2PrimePrimePtPOI=0.,q2xW1PrimePrimePtPOI=0.,q2yW1PrimePrimePtPOI=0.;//add comments for these variable
2271 Double_t dS11mPrimePrimePtPOI=0.; // to be improved (name)
2272 Double_t dS12mPrimePrimePtPOI=0.; // to be improved (name)
2273 Double_t dS13mPrimePrimePtPOI=0.; // to be improved (name)
2274 Double_t mPrimePrimePtPOIHere=0.; // to be improved (name)
2275
2276 Double_t dM1pp11PtPOI=0.; // to be improved (name)
2277 Double_t dM0pp111PtPOI=0.; // to be improved (name)
2278 Double_t dM0pp12PtPOI=0.;
2279 Double_t dM2pp1PtPOI=0.;
2280 Double_t dM1pp2PtPOI=0.;
2281 Double_t dM0pp3PtPOI=0.;
2282
2283
2284
2285 //Prime Pt POI
2286 Double_t qxPrimePtPOIHere=0.,qyPrimePtPOIHere=0.;
2287 Double_t mPrimePtPOIHere=0.;
2288
2289 Double_t dM0p111PtPOI=0.; // to be improved (name)
2290
2291
2292 for(Int_t bin=1;bin<(fnBinsPt+1);bin++) // loop over pt-bins
2293 {
2294 // q'':
2295 qxPrimePrimePtPOIHere = (fPtReq1nPrimePrimePOI->GetBinContent(bin))*(fPtReq1nPrimePrimePOI->GetBinEntries(bin));
2296 qyPrimePrimePtPOIHere = (fPtImq1nPrimePrimePOI->GetBinContent(bin))*(fPtImq1nPrimePrimePOI->GetBinEntries(bin));
2297 q2xPrimePrimePtPOIHere = (fPtReq2nPrimePrimePOI->GetBinContent(bin))*(fPtReq2nPrimePrimePOI->GetBinEntries(bin));
2298 q2yPrimePrimePtPOIHere = (fPtImq2nPrimePrimePOI->GetBinContent(bin))*(fPtImq2nPrimePrimePOI->GetBinEntries(bin));
2299
2300
2301 qxW2PrimePrimePtPOI = (req1nW2PrimePrimePtPOI->GetBinContent(bin))*(req1nW2PrimePrimePtPOI->GetBinEntries(bin));
2302 qyW2PrimePrimePtPOI = (imq1nW2PrimePrimePtPOI->GetBinContent(bin))*(imq1nW2PrimePrimePtPOI->GetBinEntries(bin));
2303
2304 q2xW1PrimePrimePtPOI = (req2nW1PrimePrimePtPOI->GetBinContent(bin))*(req2nW1PrimePrimePtPOI->GetBinEntries(bin));
2305 q2yW1PrimePrimePtPOI = (imq2nW1PrimePrimePtPOI->GetBinContent(bin))*(imq2nW1PrimePrimePtPOI->GetBinEntries(bin));
2306
2307 dS11mPrimePrimePtPOI = (sumOfW1upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW1upTomPrimePrimePtPOI->GetBinEntries(bin));
2308 dS12mPrimePrimePtPOI = (sumOfW2upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW2upTomPrimePrimePtPOI->GetBinEntries(bin));
2309 dS13mPrimePrimePtPOI = (sumOfW3upTomPrimePrimePtPOI->GetBinContent(bin))*(sumOfW3upTomPrimePrimePtPOI->GetBinEntries(bin));
2310
2311 mPrimePrimePtPOIHere = sumOfW1upTomPrimePrimePtPOI->GetBinEntries(bin); // to be improved
2312
2313 dM1pp11PtPOI=dS11mPrimePrimePtPOI*(dSnk[1][0]-dSnk[0][1])-2.*dS12mPrimePrimePtPOI*dSnk[0][0]+2.*dS13mPrimePrimePtPOI;
2314 dM1pp2PtPOI=dS11mPrimePrimePtPOI*dSnk[0][1]-dS13mPrimePrimePtPOI;
2315 dM2pp1PtPOI=dS12mPrimePrimePtPOI*dSnk[0][0]-dS13mPrimePrimePtPOI;
2316 dM0pp3PtPOI=mPrimePrimePtPOIHere*dSnk[0][2]-dS13mPrimePrimePtPOI;
2317 dM0pp12PtPOI=mPrimePrimePtPOIHere*dSnk[0][0]*dSnk[0][1]-dM2pp1PtPOI-dM1pp2PtPOI-dM0pp3PtPOI-dS13mPrimePrimePtPOI;
2318 dM0pp111PtPOI=mPrimePrimePtPOIHere*dSnk[2][0]-3.*dM1pp11PtPOI-3.*dM0pp12PtPOI-3.*dM2pp1PtPOI-3.*dM1pp2PtPOI-dM0pp3PtPOI-dS13mPrimePrimePtPOI;
2319
2320 // q':
2321 qxPrimePtPOIHere = (fPtReq1nPrimePOI->GetBinContent(bin))*(fPtReq1nPrimePOI->GetBinEntries(bin));
2322 qyPrimePtPOIHere = (fPtImq1nPrimePOI->GetBinContent(bin))*(fPtImq1nPrimePOI->GetBinEntries(bin));
2323
2324 mPrimePtPOIHere = fPtReq1nPrimePOI->GetBinEntries(bin); // to be improved
2325 dM0p111PtPOI=mPrimePtPOIHere*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]);
2326
2327 // 2-p
2328 Double_t two1n1nWPerPtBinPOI=0.; // the needed one
2329 if((mPrimePrimePtPOIHere+mPrimePtPOIHere)*dSnk[0][0]-dS11mPrimePrimePtPOI>0)
2330 {
2331 two1n1nWPerPtBinPOI = (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0]
2332
2333 + qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0]
2334
2335 -dS11mPrimePrimePtPOI)/((mPrimePrimePtPOIHere+mPrimePtPOIHere)*dSnk[0][0]-dS11mPrimePrimePtPOI);
2336
2337 f2WPerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,two1n1nWPerPtBinPOI,(mPrimePrimePtPOIHere+mPrimePtPOIHere)*dSnk[0][0]-dS11mPrimePrimePtPOI); // <2'>_{n|n}
2338 }
2339
2340 // 2-p
2341 Double_t two1n1nW1ppW1W1PtPOI=0.; // <w1 w2 w3 cos(n(phi2-phi3))> // OK!!!
2342 if(dM1pp11PtPOI)
2343 {
2344 two1n1nW1ppW1W1PtPOI = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mPrimePrimePtPOI-2.*(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0]) - dS11mPrimePrimePtPOI*dSnk[0][1]+2.*dS13mPrimePrimePtPOI)/dM1pp11PtPOI; // CORRECT !!! <w1 w2 w3 cos(n(phi2-phi3))>
2345 }
2346
2347 // 2-p
2348 Double_t two1npp1nW1W2PtPOI=0.; // <w2 w3^2 cos(n(psi1-phi2))> // OK !!!
2349 if(dM0pp12PtPOI)
2350 {
2351 two1npp1nW1W2PtPOI = (dSnk[0][1]*(qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0])-(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-dM1pp2PtPOI-(qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2])+dS13mPrimePrimePtPOI)/dM0pp12PtPOI; // CORRECT !!! <w2 w3^2 cos(n(psi1-phi2))>
2352 }
2353
2354 // 2-p
2355 Double_t two1npp1nW2ppW1PtPOI=0.; // <w1^2 w2 cos(n(psi1-phi2))> // OK !!!
2356 if(dM2pp1PtPOI)
2357 {
2358 two1npp1nW2ppW1PtPOI = ((qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-dS13mPrimePrimePtPOI)/dM2pp1PtPOI; // CORRECT !!! <w1^2 w2 cos(n(psi1-phi2))>
2359 }
2360
2361 // 2-p
2362 Double_t two2npp2nW1ppW2PtPOI=0.; // <w1 w2^2 cos(2n(psi1-phi2))> OK !!!
2363 if(dM1pp2PtPOI)
2364 {
2365 two2npp2nW1ppW2PtPOI = ((q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])-dS13mPrimePrimePtPOI)/dM1pp2PtPOI; // CORRECT !!! <w1 w2^2 cos(2n(psi1-phi2))>
2366 }
2367
2368 // 2-p
2369 Double_t two1npp1nW3PtPOI=0.; // <w2^3 cos(n(psi1-phi2))> // OK !!!
2370 if(dM0pp3PtPOI)
2371 {
2372 two1npp1nW3PtPOI = (qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2]-dS13mPrimePrimePtPOI)/dM0pp3PtPOI; // CORRECT !!! <w2^3 cos(n(psi1-phi2))>
2373 }
2374
2375 // 3-p
2376 Double_t three2npp1n1nW1ppW1W1PtPOI=0.; // <w1 w2 w3 cos(n(2psi1-phi2-phi3))> // OK!!!
2377 if(dM1pp11PtPOI)
2378 {
2379 three2npp1n1nW1ppW1W1PtPOI = (q2xW1PrimePrimePtPOI*(dQnkX[0][0]*dQnkX[0][0]-dQnkY[0][0]*dQnkY[0][0])+2.*q2yW1PrimePrimePtPOI*dQnkX[0][0]*dQnkY[0][0]-2.*(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-(q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])+2.*dS13mPrimePrimePtPOI)/dM1pp11PtPOI; // CORRECT !!! <w1 w2 w3 cos(n(2psi1-phi2-phi3))>
2380 }
2381
2382 // 3-p
2383 Double_t three1npp1n2nW0ppW1W2PtPOI=0.; // <w2 w3^2 cos(n(psi1+phi2-2*phi3))> // OK!!!
2384 if(dM0pp12PtPOI)
2385 {
2386 three1npp1n2nW0ppW1W2PtPOI = (qxPrimePrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPrimePrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PrimePrimePtPOI*dQnkX[0][0]+qyW2PrimePrimePtPOI*dQnkY[0][0])-(q2xW1PrimePrimePtPOI*dQnkX[1][1]+q2yW1PrimePrimePtPOI*dQnkY[1][1])-(qxPrimePrimePtPOIHere*dQnkX[0][2]+qyPrimePrimePtPOIHere*dQnkY[0][2])+2.*dS13mPrimePrimePtPOI)/dM0pp12PtPOI; // CORRECT !!! <w2 w3^2 cos(n(psi1+phi2-2.*phi3))>
2387 }
2388
2389
2390 /*
2391 // 4-p RP
2392 Double_t four1npp1n1n1nW1W1W1=0.; // <w1 w2 w3 cos(n(psi1+phi1-phi2-phi3))>
2393 if(dM0pp111PtPOI)
2394 {
2395 four1npp1n1n1nW1W1W1 = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0])
2396 - 2.*dM1pp11PtPOI*two1n1nW1ppW1W1PtPOI - dM1pp11PtPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOI*two1npp1nW1W2PtPOI
2397 - 3.*dM2pp1PtPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOI - dM1pp2PtPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOI*two1npp1nW3PtPOI - dS13mPrimePrimePtPOI)/(dM0pp111PtPOI);
2398
2399 }
2400
2401 */
2402
2403
2404
2405 /*
2406 // 4- POI
2407 Double_t four1npp1n1n1nW1W1W1POI=0.;
2408 if(dM0p111PtPOI>0&&mPrimePtPOIHere>0&&nRP>0)
2409 {
2410 four1npp1n1n1nW1W1W1POI = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0])
2411
2412 - 2.*dSnk[0][1]* (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0])
2413
2414 + 2.*(qxPrimePtPOIHere*dQnkX[0][2]+qyPrimePtPOIHere*dQnkY[0][2])
2415
2416 - qxPrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111PtPOI;
2417
2418
2419
2420
2421 }
2422 */
2423
2424
2425 // 4-p RP and POI in all combinations (full, partial and no overlap)
2426 Double_t four1npp1n1n1nW1W1W1PtPOIAndRP=0.;
2427
2428 if(dM0pp111PtPOI+dM0p111PtPOI)
2429 {
2430 four1npp1n1n1nW1W1W1PtPOIAndRP = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimePtPOIHere*dQnkX[0][0]+qyPrimePrimePtPOIHere*dQnkY[0][0])
2431 - 2.*dM1pp11PtPOI*two1n1nW1ppW1W1PtPOI - dM1pp11PtPOI*three2npp1n1nW1ppW1W1PtPOI - dM0pp12PtPOI*three1npp1n2nW0ppW1W2PtPOI - 2.*dM0pp12PtPOI*two1npp1nW1W2PtPOI
2432 - 3.*dM2pp1PtPOI*two1npp1nW2ppW1PtPOI -2.*dM1pp2PtPOI - dM1pp2PtPOI*two2npp2nW1ppW2PtPOI - dM0pp3PtPOI*two1npp1nW3PtPOI - dS13mPrimePrimePtPOI +
2433
2434
2435 + ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0])
2436
2437 - 2.*dSnk[0][1]* (qxPrimePtPOIHere*dQnkX[0][0]+qyPrimePtPOIHere*dQnkY[0][0])
2438
2439 + 2.*(qxPrimePtPOIHere*dQnkX[0][2]+qyPrimePtPOIHere*dQnkY[0][2])
2440
2441 - qxPrimePtPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimePtPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111PtPOI+dM0p111PtPOI);
2442
2443
2444 f4WPerPtBin1n1n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,four1npp1n1n1nW1W1W1PtPOIAndRP,dM0pp111PtPOI+dM0p111PtPOI);
2445 }
2446 }
2447
2448 delete req1nW2PrimePrimePtPOI;
2449 delete imq1nW2PrimePrimePtPOI;
2450 delete req2nW1PrimePrimePtPOI;
2451 delete imq2nW1PrimePrimePtPOI;
2452 delete sumOfW1upTomPrimePrimePtPOI;
2453 delete sumOfW2upTomPrimePrimePtPOI;
2454 delete sumOfW3upTomPrimePrimePtPOI;
2455
2456 //WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
2457
2458
2459
2460
2461
2462
2463
2464 // ETA POI
2465
2466
2467 //PrimePrime Eta POI
2468 Double_t qxPrimePrimeEtaPOIHere=0.,qyPrimePrimeEtaPOIHere=0.,q2xPrimePrimeEtaPOIHere=0.,q2yPrimePrimeEtaPOIHere=0.;//add comments for these variable
2469 Double_t qxW2PrimePrimeEtaPOI=0.,qyW2PrimePrimeEtaPOI=0.,q2xW1PrimePrimeEtaPOI=0.,q2yW1PrimePrimeEtaPOI=0.;//add comments for these variable
2470 Double_t dS11mPrimePrimeEtaPOI=0.; // to be improved (name)
2471 Double_t dS12mPrimePrimeEtaPOI=0.; // to be improved (name)
2472 Double_t dS13mPrimePrimeEtaPOI=0.; // to be improved (name)
2473 Double_t mPrimePrimeEtaPOIHere=0.; // to be improved (name)
2474
2475 Double_t dM1pp11EtaPOI=0.; // to be improved (name)
2476 Double_t dM0pp111EtaPOI=0.; // to be improved (name)
2477 Double_t dM0pp12EtaPOI=0.;
2478 Double_t dM2pp1EtaPOI=0.;
2479 Double_t dM1pp2EtaPOI=0.;
2480 Double_t dM0pp3EtaPOI=0.;
2481
2482
2483
2484 //Prime Eta POI
2485 Double_t qxPrimeEtaPOIHere=0.,qyPrimeEtaPOIHere=0.;
2486 Double_t mPrimeEtaPOIHere=0.;
2487
2488 Double_t dM0p111EtaPOI=0.; // to be improved (name)
2489
2490
2491 for(Int_t bin=1;bin<(fnBinsEta+1);bin++) // loop over pt-bins
2492 {
2493 // q'':
2494 qxPrimePrimeEtaPOIHere = (fEtaReq1nPrimePrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePrimePOI->GetBinEntries(bin));
2495 qyPrimePrimeEtaPOIHere = (fEtaImq1nPrimePrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePrimePOI->GetBinEntries(bin));
2496 q2xPrimePrimeEtaPOIHere = (fEtaReq2nPrimePrimePOI->GetBinContent(bin))*(fEtaReq2nPrimePrimePOI->GetBinEntries(bin));
2497 q2yPrimePrimeEtaPOIHere = (fEtaImq2nPrimePrimePOI->GetBinContent(bin))*(fEtaImq2nPrimePrimePOI->GetBinEntries(bin));
2498
2499
2500 qxW2PrimePrimeEtaPOI = (req1nW2PrimePrimeEtaPOI->GetBinContent(bin))*(req1nW2PrimePrimeEtaPOI->GetBinEntries(bin));
2501 qyW2PrimePrimeEtaPOI = (imq1nW2PrimePrimeEtaPOI->GetBinContent(bin))*(imq1nW2PrimePrimeEtaPOI->GetBinEntries(bin));
2502
2503 q2xW1PrimePrimeEtaPOI = (req2nW1PrimePrimeEtaPOI->GetBinContent(bin))*(req2nW1PrimePrimeEtaPOI->GetBinEntries(bin));
2504 q2yW1PrimePrimeEtaPOI = (imq2nW1PrimePrimeEtaPOI->GetBinContent(bin))*(imq2nW1PrimePrimeEtaPOI->GetBinEntries(bin));
2505
2506 dS11mPrimePrimeEtaPOI = (sumOfW1upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW1upTomPrimePrimeEtaPOI->GetBinEntries(bin));
2507 dS12mPrimePrimeEtaPOI = (sumOfW2upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW2upTomPrimePrimeEtaPOI->GetBinEntries(bin));
2508 dS13mPrimePrimeEtaPOI = (sumOfW3upTomPrimePrimeEtaPOI->GetBinContent(bin))*(sumOfW3upTomPrimePrimeEtaPOI->GetBinEntries(bin));
2509
2510 mPrimePrimeEtaPOIHere = sumOfW1upTomPrimePrimeEtaPOI->GetBinEntries(bin); // to be improved
2511
2512 dM1pp11EtaPOI=dS11mPrimePrimeEtaPOI*(dSnk[1][0]-dSnk[0][1])-2.*dS12mPrimePrimeEtaPOI*dSnk[0][0]+2.*dS13mPrimePrimeEtaPOI;
2513 dM1pp2EtaPOI=dS11mPrimePrimeEtaPOI*dSnk[0][1]-dS13mPrimePrimeEtaPOI;
2514 dM2pp1EtaPOI=dS12mPrimePrimeEtaPOI*dSnk[0][0]-dS13mPrimePrimeEtaPOI;
2515 dM0pp3EtaPOI=mPrimePrimeEtaPOIHere*dSnk[0][2]-dS13mPrimePrimeEtaPOI;
2516 dM0pp12EtaPOI=mPrimePrimeEtaPOIHere*dSnk[0][0]*dSnk[0][1]-dM2pp1EtaPOI-dM1pp2EtaPOI-dM0pp3EtaPOI-dS13mPrimePrimeEtaPOI;
2517 dM0pp111EtaPOI=mPrimePrimeEtaPOIHere*dSnk[2][0]-3.*dM1pp11EtaPOI-3.*dM0pp12EtaPOI-3.*dM2pp1EtaPOI-3.*dM1pp2EtaPOI-dM0pp3EtaPOI-dS13mPrimePrimeEtaPOI;
2518
2519 // q':
2520 qxPrimeEtaPOIHere = (fEtaReq1nPrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePOI->GetBinEntries(bin));
2521 qyPrimeEtaPOIHere = (fEtaImq1nPrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePOI->GetBinEntries(bin));
2522
2523 mPrimeEtaPOIHere = fEtaReq1nPrimePOI->GetBinEntries(bin); // to be improved
2524 dM0p111EtaPOI=mPrimeEtaPOIHere*(dSnk[2][0]-3.*dSnk[0][1]*dSnk[0][0]+2.*dSnk[0][2]);
2525
2526 // 2-p
2527 Double_t two1n1nWPerEtaBinPOI=0.; // the needed one
2528 if((mPrimePrimeEtaPOIHere+mPrimeEtaPOIHere)*dSnk[0][0]-dS11mPrimePrimeEtaPOI>0)
2529 {
2530 two1n1nWPerEtaBinPOI = (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0]
2531
2532 + qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0]
2533
2534 -dS11mPrimePrimeEtaPOI)/((mPrimePrimeEtaPOIHere+mPrimeEtaPOIHere)*dSnk[0][0]-dS11mPrimePrimeEtaPOI);
2535
2536 f2WPerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,two1n1nWPerEtaBinPOI,(mPrimePrimeEtaPOIHere+mPrimeEtaPOIHere)*dSnk[0][0]-dS11mPrimePrimeEtaPOI); // <2'>_{n|n}
2537 }
2538
2539 // 2-p
2540 Double_t two1n1nW1ppW1W1EtaPOI=0.; // <w1 w2 w3 cos(n(phi2-phi3))> // OK!!!
2541 if(dM1pp11EtaPOI)
2542 {
2543 two1n1nW1ppW1W1EtaPOI = ((pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.))*dS11mPrimePrimeEtaPOI-2.*(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0]) - dS11mPrimePrimeEtaPOI*dSnk[0][1]+2.*dS13mPrimePrimeEtaPOI)/dM1pp11EtaPOI; // CORRECT !!! <w1 w2 w3 cos(n(phi2-phi3))>
2544 }
2545
2546 // 2-p
2547 Double_t two1npp1nW1W2EtaPOI=0.; // <w2 w3^2 cos(n(psi1-phi2))> // OK !!!
2548 if(dM0pp12EtaPOI)
2549 {
2550 two1npp1nW1W2EtaPOI = (dSnk[0][1]*(qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0])-(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-dM1pp2EtaPOI-(qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2])+dS13mPrimePrimeEtaPOI)/dM0pp12EtaPOI; // CORRECT !!! <w2 w3^2 cos(n(psi1-phi2))>
2551 }
2552
2553 // 2-p
2554 Double_t two1npp1nW2ppW1EtaPOI=0.; // <w1^2 w2 cos(n(psi1-phi2))> // OK !!!
2555 if(dM2pp1EtaPOI)
2556 {
2557 two1npp1nW2ppW1EtaPOI = ((qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-dS13mPrimePrimeEtaPOI)/dM2pp1EtaPOI; // CORRECT !!! <w1^2 w2 cos(n(psi1-phi2))>
2558 }
2559
2560 // 2-p
2561 Double_t two2npp2nW1ppW2EtaPOI=0.; // <w1 w2^2 cos(2n(psi1-phi2))> OK !!!
2562 if(dM1pp2EtaPOI)
2563 {
2564 two2npp2nW1ppW2EtaPOI = ((q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])-dS13mPrimePrimeEtaPOI)/dM1pp2EtaPOI; // CORRECT !!! <w1 w2^2 cos(2n(psi1-phi2))>
2565 }
2566
2567 // 2-p
2568 Double_t two1npp1nW3EtaPOI=0.; // <w2^3 cos(n(psi1-phi2))> // OK !!!
2569 if(dM0pp3EtaPOI)
2570 {
2571 two1npp1nW3EtaPOI = (qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2]-dS13mPrimePrimeEtaPOI)/dM0pp3EtaPOI; // CORRECT !!! <w2^3 cos(n(psi1-phi2))>
2572 }
2573
2574 // 3-p
2575 Double_t three2npp1n1nW1ppW1W1EtaPOI=0.; // <w1 w2 w3 cos(n(2psi1-phi2-phi3))> // OK!!!
2576 if(dM1pp11EtaPOI)
2577 {
2578 three2npp1n1nW1ppW1W1EtaPOI = (q2xW1PrimePrimeEtaPOI*(dQnkX[0][0]*dQnkX[0][0]-dQnkY[0][0]*dQnkY[0][0])+2.*q2yW1PrimePrimeEtaPOI*dQnkX[0][0]*dQnkY[0][0]-2.*(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-(q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])+2.*dS13mPrimePrimeEtaPOI)/dM1pp11EtaPOI; // CORRECT !!! <w1 w2 w3 cos(n(2psi1-phi2-phi3))>
2579 }
2580
2581 // 3-p
2582 Double_t three1npp1n2nW0ppW1W2EtaPOI=0.; // <w2 w3^2 cos(n(psi1+phi2-2*phi3))> // OK!!!
2583 if(dM0pp12EtaPOI)
2584 {
2585 three1npp1n2nW0ppW1W2EtaPOI = (qxPrimePrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])-qyPrimePrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1])-(qxW2PrimePrimeEtaPOI*dQnkX[0][0]+qyW2PrimePrimeEtaPOI*dQnkY[0][0])-(q2xW1PrimePrimeEtaPOI*dQnkX[1][1]+q2yW1PrimePrimeEtaPOI*dQnkY[1][1])-(qxPrimePrimeEtaPOIHere*dQnkX[0][2]+qyPrimePrimeEtaPOIHere*dQnkY[0][2])+2.*dS13mPrimePrimeEtaPOI)/dM0pp12EtaPOI; // CORRECT !!! <w2 w3^2 cos(n(psi1+phi2-2.*phi3))>
2586 }
2587
2588
2589 /*
2590 // 4-p RP
2591 Double_t four1npp1n1n1nW1W1W1=0.; // <w1 w2 w3 cos(n(psi1+phi1-phi2-phi3))>
2592 if(dM0pp111EtaPOI)
2593 {
2594 four1npp1n1n1nW1W1W1 = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0])
2595 - 2.*dM1pp11EtaPOI*two1n1nW1ppW1W1EtaPOI - dM1pp11EtaPOI*three2npp1n1nW1ppW1W1EtaPOI - dM0pp12EtaPOI*three1npp1n2nW0ppW1W2EtaPOI - 2.*dM0pp12EtaPOI*two1npp1nW1W2EtaPOI
2596 - 3.*dM2pp1EtaPOI*two1npp1nW2ppW1EtaPOI -2.*dM1pp2EtaPOI - dM1pp2EtaPOI*two2npp2nW1ppW2EtaPOI - dM0pp3EtaPOI*two1npp1nW3EtaPOI - dS13mPrimePrimeEtaPOI)/(dM0pp111EtaPOI);
2597
2598 }
2599
2600 */
2601
2602
2603
2604 /*
2605 // 4- POI
2606 Double_t four1npp1n1n1nW1W1W1POI=0.;
2607 if(dM0p111EtaPOI>0&&mPrimeEtaPOIHere>0&&nRP>0)
2608 {
2609 four1npp1n1n1nW1W1W1POI = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0])
2610
2611 - 2.*dSnk[0][1]* (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0])
2612
2613 + 2.*(qxPrimeEtaPOIHere*dQnkX[0][2]+qyPrimeEtaPOIHere*dQnkY[0][2])
2614
2615 - qxPrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/dM0p111EtaPOI;
2616
2617
2618
2619
2620 }
2621 */
2622
2623
2624 // 4-p RP and POI in all combinations (full, partial and no overlap)
2625 Double_t four1npp1n1n1nW1W1W1EtaPOIAndRP=0.;
2626
2627 if(dM0pp111EtaPOI+dM0p111EtaPOI)
2628 {
2629 four1npp1n1n1nW1W1W1EtaPOIAndRP = ( ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimePrimeEtaPOIHere*dQnkX[0][0]+qyPrimePrimeEtaPOIHere*dQnkY[0][0])
2630 - 2.*dM1pp11EtaPOI*two1n1nW1ppW1W1EtaPOI - dM1pp11EtaPOI*three2npp1n1nW1ppW1W1EtaPOI - dM0pp12EtaPOI*three1npp1n2nW0ppW1W2EtaPOI - 2.*dM0pp12EtaPOI*two1npp1nW1W2EtaPOI
2631 - 3.*dM2pp1EtaPOI*two1npp1nW2ppW1EtaPOI -2.*dM1pp2EtaPOI - dM1pp2EtaPOI*two2npp2nW1ppW2EtaPOI - dM0pp3EtaPOI*two1npp1nW3EtaPOI - dS13mPrimePrimeEtaPOI +
2632
2633
2634 + ( pow(dQnkX[0][0],2.)+pow(dQnkY[0][0],2.) ) * (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0])
2635
2636 - 2.*dSnk[0][1]* (qxPrimeEtaPOIHere*dQnkX[0][0]+qyPrimeEtaPOIHere*dQnkY[0][0])
2637
2638 + 2.*(qxPrimeEtaPOIHere*dQnkX[0][2]+qyPrimeEtaPOIHere*dQnkY[0][2])
2639
2640 - qxPrimeEtaPOIHere*(dQnkX[0][0]*dQnkX[1][1]+dQnkY[0][0]*dQnkY[1][1])+qyPrimeEtaPOIHere*(dQnkY[0][0]*dQnkX[1][1]-dQnkX[0][0]*dQnkY[1][1]))/(dM0pp111EtaPOI+dM0p111EtaPOI);
2641
2642
2643 f4WPerEtaBin1n1n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,four1npp1n1n1nW1W1W1EtaPOIAndRP,dM0pp111EtaPOI+dM0p111EtaPOI);
2644 }
2645 }
2646
2647 delete req1nW2PrimePrimeEtaPOI;
2648 delete imq1nW2PrimePrimeEtaPOI;
2649 delete req2nW1PrimePrimeEtaPOI;
2650 delete imq2nW1PrimePrimeEtaPOI;
2651 delete sumOfW1upTomPrimePrimeEtaPOI;
2652 delete sumOfW2upTomPrimePrimeEtaPOI;
2653 delete sumOfW3upTomPrimePrimeEtaPOI;
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679// QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQq
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
1dfa3c16 2732
ae733b3b 2733
1dfa3c16 2734 //Eta:
2735 Double_t twoDiffEta1n1nRP=0.,twoDiffEta2n2nRP=0.,threeDiffEta2n1n1nRP=0.,threeDiffEta1n1n2nRP=0.,fourDiffEta1n1n1n1nRP=0.;
2736
2737 for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins
2738 {
2739 qxEtaRP = (fEtaReq1nRP->GetBinContent(bin))*(fEtaReq1nRP->GetBinEntries(bin));
2740 qyEtaRP = (fEtaImq1nRP->GetBinContent(bin))*(fEtaImq1nRP->GetBinEntries(bin));
2741 q2xEtaRP = (fEtaReq2nRP->GetBinContent(bin))*(fEtaReq2nRP->GetBinEntries(bin));
2742 q2yEtaRP = (fEtaImq2nRP->GetBinContent(bin))*(fEtaImq2nRP->GetBinEntries(bin));
2743 mEtaRP = fEtaReq1nRP->GetBinEntries(bin);
ae733b3b 2744 dSumOfWeightsUpTomEtaRP = (mPerBinEtaRP->GetBinContent(bin))*(mPerBinEtaRP->GetBinEntries(bin));
1dfa3c16 2745
3d824203 2746 if(mEtaRP*dSnk[0][0]-dSumOfWeightsUpTomEtaRP)
1dfa3c16 2747 {
ae733b3b 2748 //twoDiffEta1n1nRP = (qxEtaRP*dQ1nx+qyEtaRP*dQ1ny-mEtaRP)/(mEtaRP*(dMult-1.)); // OK without weights
2749 //f2PerEtaBin1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nRP,mEtaRP*(dMult-1.));//<2'>_{n|n} // OK without weights
1dfa3c16 2750
3d824203 2751 twoDiffEta1n1nRP = (qxEtaRP*dQ1nxW+qyEtaRP*dQ1nyW-dSumOfWeightsUpTomEtaRP)/(mEtaRP*dSnk[0][0]-dSumOfWeightsUpTomEtaRP); // OK without weights
2752 f2PerEtaBin1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nRP,mEtaRP*dSnk[0][0]-dSumOfWeightsUpTomEtaRP);//<2'>_{n|n} // OK without weights
ae733b3b 2753 }
2754
2755 if(mEtaRP>0&&dMult>1)
2756 {
1dfa3c16 2757 twoDiffEta2n2nRP = (q2xEtaRP*dQ2nx+q2yEtaRP*dQ2ny-mEtaRP)/(mEtaRP*(dMult-1.));
2758 f2PerEtaBin2n2nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta2n2nRP,mEtaRP*(dMult-1.));//<2'>_{2n|2n}
2759 }
2760
2761 if(mEtaRP>0&&dMult>2)
2762 {
2763 threeDiffEta2n1n1nRP = (q2xEtaRP*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yEtaRP*dQ1nx*dQ1ny-2.*(qxEtaRP*dQ1nx+qyEtaRP*dQ1ny)-(q2xEtaRP*dQ2nx+q2yEtaRP*dQ2ny)+2.*mEtaRP)/(mEtaRP*(dMult-1.)*(dMult-2.));
2764 f3PerEtaBin2n1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta2n1n1nRP,mEtaRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}]
2765
2766 threeDiffEta1n1n2nRP = (dQ2nx*(qxEtaRP*dQ1nx-qyEtaRP*dQ1ny)+dQ2ny*(qxEtaRP*dQ1ny+qyEtaRP*dQ1nx)-2.*(qxEtaRP*dQ1nx+qyEtaRP*dQ1ny)-(q2xEtaRP*dQ2nx+q2yEtaRP*dQ2ny)+2.*mEtaRP)/(mEtaRP*(dMult-1.)*(dMult-2.));
2767 f3PerEtaBin1n1n2nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta1n1n2nRP,mEtaRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}]
2768 }
2769
2770 if(mEtaRP>0&&dMult>3)
2771 {
2772 fourDiffEta1n1n1n1nRP = ((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxEtaRP*dQ1nx+qyEtaRP*dQ1ny)-(q2xEtaRP*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yEtaRP*dQ1nx*dQ1ny)-(dQ2nx*(qxEtaRP*dQ1nx-qyEtaRP*dQ1ny)+dQ2ny*(qxEtaRP*dQ1ny+qyEtaRP*dQ1nx))+(q2xEtaRP*dQ2nx+q2yEtaRP*dQ2ny)-2.*(dMult-3.)*(qxEtaRP*dQ1nx+qyEtaRP*dQ1ny)-2.*mEtaRP*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxEtaRP+dQ1ny*qyEtaRP)+2.*mEtaRP*(dMult-3.))/(mEtaRP*(dMult-1.)*(dMult-2.)*(dMult-3.));
2773 f4PerEtaBin1n1n1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,fourDiffEta1n1n1n1nRP,mEtaRP*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}]
4057ba99 2774 }
2775 }//end of for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins
1dfa3c16 2776
2777 fEtaReq1nRP->Reset();
2778 fEtaImq1nRP->Reset();
2779 fEtaReq2nRP->Reset();
2780 fEtaImq2nRP->Reset();
2781
ae733b3b 2782 mPerBinEtaRP->Reset();
2783
1dfa3c16 2784 //POI:
4057ba99 2785 Double_t qxPrimePtPOI=0.,qyPrimePtPOI=0.,q2xPrimePtPOI=0.,q2yPrimePtPOI=0.,mPrimePtPOI=0.;//add comments for these variables (deleteMe)
2786 Double_t qxPrimePrimePtPOI=0.,qyPrimePrimePtPOI=0.,q2xPrimePrimePtPOI=0.,q2yPrimePrimePtPOI=0.,mPrimePrimePtPOI=0.;//add comments for these variables (deleteMe)
2787 Double_t qxPrimeEtaPOI=0.,qyPrimeEtaPOI=0.,q2xPrimeEtaPOI=0.,q2yPrimeEtaPOI=0.,mPrimeEtaPOI=0.;//add comments for these variables (deleteMe)
2788 Double_t qxPrimePrimeEtaPOI=0.,qyPrimePrimeEtaPOI=0.,q2xPrimePrimeEtaPOI=0.,q2yPrimePrimeEtaPOI=0.,mPrimePrimeEtaPOI=0.;//add comments for the
ae733b3b 2789
2790 Double_t dSumOfWeightsUpTomPrimePrimePtPOI = 0.; // sum_{i=1}^{m''} w_{i}
2791 Double_t dSumOfWeightsUpTomPrimePrimeEtaPOI = 0.; // sum_{i=1}^{m''} w_{i}
2792
2793 TProfile *mPrimePrimePerBinPtPOI = new TProfile("mPrimePrimePerBinPtPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsPt,fPtMin,fPtMax,"s");
2794 TProfile *mPrimePrimePerBinEtaPOI = new TProfile("mPrimePrimePerBinEtaPOI","#sum_{i=1}^{m''} w_{i}''",fnBinsEta,fEtaMin,fEtaMax,"s");
4057ba99 2795
ae733b3b 2796 for(Int_t i=0;i<nPrim;i++) // loop over all particles (to be improved: do the calculations for RPs and POIs in the same loop)
1dfa3c16 2797 {
2798 fTrack=anEvent->GetTrack(i);
4057ba99 2799 if(fTrack)
1dfa3c16 2800 {
ae733b3b 2801 if(fTrack->UseForDifferentialFlow()) // checking if particle is POI
1dfa3c16 2802 {
ae733b3b 2803 if(fTrack->UseForIntegratedFlow()) // checking if particle is both POI and RP
4057ba99 2804 {
ae733b3b 2805 // get azimuthal angle, momentum and pseudorapidity of a particle:
2806 dPhi = fTrack->Phi();
2807 dPt = fTrack->Pt();
2808 dEta = fTrack->Eta();
2809 // pt:
2810 fPtReq1nPrimePrimePOI->Fill(dPt,cos(n*dPhi),1.);
2811 fPtImq1nPrimePrimePOI->Fill(dPt,sin(n*dPhi),1.);
2812 fPtReq2nPrimePrimePOI->Fill(dPt,cos(2.*n*dPhi),1.);
2813 fPtImq2nPrimePrimePOI->Fill(dPt,sin(2.*n*dPhi),1.);
2814 // eta:
2815 fEtaReq1nPrimePrimePOI->Fill(dEta,cos(n*dPhi),1.);
2816 fEtaImq1nPrimePrimePOI->Fill(dEta,sin(n*dPhi),1.);
2817 fEtaReq2nPrimePrimePOI->Fill(dEta,cos(2.*n*dPhi),1.);
2818 fEtaImq2nPrimePrimePOI->Fill(dEta,sin(2.*n*dPhi),1.);
2819 // phi weights:
2820 if(fUsePhiWeights)
2821 {
2822 nBinsPhi = phiWeights->GetNbinsX();
2823 if(nBinsPhi)
2824 {
2825 wPhi = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(dPhi*nBinsPhi/TMath::TwoPi())));
2826 }
2827 }
2828 // pt weights:
2829 if(fUsePtWeights)
2830 {
2831 if(dBinWidthPt)
2832 {
2833 wPt = ptWeights->GetBinContent(1+(Int_t)(TMath::Floor((dPt-fPtMin)/dBinWidthPt)));
2834 }
2835 }
2836 // eta weights:
2837 if(fUseEtaWeights)
2838 {
2839 if(dBinWidthEta)
2840 {
2841 wEta=etaWeights->GetBinContent(1+(Int_t)(TMath::Floor((dEta-fEtaMin)/dBinWidthEta)));
2842 }
2843 }
2844 // sum_{i=1}^{m''} w_{i}:
2845 mPrimePrimePerBinPtPOI->Fill(dPt,wPhi*wPt*wEta,1.);
2846 mPrimePrimePerBinEtaPOI->Fill(dEta,wPhi*wPt*wEta,1.);
2847 }else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP
4057ba99 2848 {
ae733b3b 2849 // get azimuthal angle, momentum and pseudorapidity of a particle:
2850 dPhi = fTrack->Phi();
2851 dPt = fTrack->Pt();
2852 dEta = fTrack->Eta();
2853 // pt:
2854 fPtReq1nPrimePOI->Fill(dPt,cos(n*dPhi),1.);
2855 fPtImq1nPrimePOI->Fill(dPt,sin(n*dPhi),1.);
2856 fPtReq2nPrimePOI->Fill(dPt,cos(2.*n*dPhi),1.);
2857 fPtImq2nPrimePOI->Fill(dPt,sin(2.*n*dPhi),1.);
2858 // eta:
2859 fEtaReq1nPrimePOI->Fill(dEta,cos(n*dPhi),1.);
2860 fEtaImq1nPrimePOI->Fill(dEta,sin(n*dPhi),1.);
2861 fEtaReq2nPrimePOI->Fill(dEta,cos(2.*n*dPhi),1.);
2862 fEtaImq2nPrimePOI->Fill(dEta,sin(2.*n*dPhi),1.);
2863 } // end of else if(!(fTrack->UseForIntegratedFlow())) // checking if particles is POI and not RP
2864 } // end of if(fTrack->UseForDifferentialFlow()) // checking if particle is POI
2865 } // end of if(fTrack}
2866 } // end of for(Int_t i=0;i<nPrim;i++)
4057ba99 2867
ae733b3b 2868 // Pt, POI:
4057ba99 2869 Double_t twoDiffPt1n1nPOI=0.,twoDiffPt2n2nPOI=0.,fourDiffPt1n1n1n1nPOI=0.;
1dfa3c16 2870
ae733b3b 2871 for(Int_t bin=1;bin<(fnBinsPt+1);bin++) // loop over pt-bins
1dfa3c16 2872 {
ae733b3b 2873 // q':
4057ba99 2874 qxPrimePtPOI = (fPtReq1nPrimePOI->GetBinContent(bin))*(fPtReq1nPrimePOI->GetBinEntries(bin));
2875 qyPrimePtPOI = (fPtImq1nPrimePOI->GetBinContent(bin))*(fPtImq1nPrimePOI->GetBinEntries(bin));
2876 q2xPrimePtPOI = (fPtReq2nPrimePOI->GetBinContent(bin))*(fPtReq2nPrimePOI->GetBinEntries(bin));
2877 q2yPrimePtPOI = (fPtImq2nPrimePOI->GetBinContent(bin))*(fPtImq2nPrimePOI->GetBinEntries(bin));
2878 mPrimePtPOI = fPtReq1nPrimePOI->GetBinEntries(bin);
ae733b3b 2879 // q'':
4057ba99 2880 qxPrimePrimePtPOI = (fPtReq1nPrimePrimePOI->GetBinContent(bin))*(fPtReq1nPrimePrimePOI->GetBinEntries(bin));
2881 qyPrimePrimePtPOI = (fPtImq1nPrimePrimePOI->GetBinContent(bin))*(fPtImq1nPrimePrimePOI->GetBinEntries(bin));
2882 q2xPrimePrimePtPOI = (fPtReq2nPrimePrimePOI->GetBinContent(bin))*(fPtReq2nPrimePrimePOI->GetBinEntries(bin));
2883 q2yPrimePrimePtPOI = (fPtImq2nPrimePrimePOI->GetBinContent(bin))*(fPtImq2nPrimePrimePOI->GetBinEntries(bin));
ae733b3b 2884 mPrimePrimePtPOI = fPtReq1nPrimePrimePOI->GetBinEntries(bin);
2885 dSumOfWeightsUpTomPrimePrimePtPOI = (mPrimePrimePerBinPtPOI->GetBinContent(bin))*(mPrimePrimePerBinPtPOI->GetBinEntries(bin));
2886
3d824203 2887 if((mPrimePrimePtPOI+mPrimePtPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimePtPOI)
4057ba99 2888 {
ae733b3b 2889 //twoDiffPt1n1nPOI = (qxPrimePrimePtPOI*dQ1nx+qyPrimePrimePtPOI*dQ1ny-mPrimePrimePtPOI+qxPrimePtPOI*dQ1nx+qyPrimePtPOI*dQ1ny)/(mPrimePrimePtPOI*(dMult-1)+mPrimePtPOI*dMult); // OK without weights
e8a609bc 2890
3d824203 2891 twoDiffPt1n1nPOI = (qxPrimePrimePtPOI*dQ1nxW+qyPrimePrimePtPOI*dQ1nyW-dSumOfWeightsUpTomPrimePrimePtPOI+qxPrimePtPOI*dQ1nxW+qyPrimePtPOI*dQ1nyW)/((mPrimePrimePtPOI+mPrimePtPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimePtPOI);
ae733b3b 2892
2893 //f2PerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nPOI,mPrimePrimePtPOI*(dMult-1)+mPrimePtPOI*dMult);//<2'>_{n|n} //OK without weights
2894
3d824203 2895 f2PerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nPOI,(mPrimePrimePtPOI+mPrimePtPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimePtPOI); // <2'>_{n|n}
ae733b3b 2896
2897 twoDiffPt2n2nPOI = (q2xPrimePrimePtPOI*dQ2nx+q2yPrimePrimePtPOI*dQ2ny-mPrimePrimePtPOI+q2xPrimePtPOI*dQ2nx+q2yPrimePtPOI*dQ2ny)/(mPrimePrimePtPOI*(dMult-1)+mPrimePtPOI*dMult); // to be improved: didn't check how it changed with weights
3d824203 2898 //f2PerPtBin2n2nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt2n2nPOI,mPrimePrimePtPOI*(dMult-1)+mPrimePtPOI*dMult);//<2'>_{2n|2n}
4057ba99 2899 }//end of if((mPrimePtPOI+mPrimePrimePtPOI>0)&&dMult>0)
1dfa3c16 2900
4057ba99 2901 /*
2902 to be improved: correct Eqs. needed here)
2903 if(mPtPOI>0&&dMult>3)
1dfa3c16 2904 {
4057ba99 2905 threeDiffPt2n1n1nPOI = (q2xPtPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPtPOI*dQ1nx*dQ1ny-2.*(qxPtPOI*dQ1nx+qyPtPOI*dQ1ny)-(q2xPtPOI*dQ2nx+q2yPtPOI*dQ2ny)+2.*mPtPOI)/(mPtPOI*(dMult-1.)*(dMult-2.));//to be improved (correct formula needed)
1dfa3c16 2906 //f3PePOItBin2n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt2n1n1nPOI,mPtPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}]
2907
4057ba99 2908 threeDiffPt1n1n2nPOI = (dQ2nx*(qxPtPOI*dQ1nx-qyPtPOI*dQ1ny)+dQ2ny*(qxPtPOI*dQ1ny+qyPtPOI*dQ1nx)-2.*(qxPtPOI*dQ1nx+qyPtPOI*dQ1ny)-(q2xPtPOI*dQ2nx+q2yPtPOI*dQ2ny)+2.*mPtPOI)/(mPtPOI*(dMult-1.)*(dMult-2.));//to be improved (correct formula needed)
1dfa3c16 2909 //f3PePOItBin1n1n2nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt1n1n2nPOI,mPtPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}]
2910 }
4057ba99 2911 */
1dfa3c16 2912
4057ba99 2913 //if((mPrimePtPOI+mPrimePrimePtPOI>0)&&dMult>2)//to be improved (dMult>2 or dMult>3)
2914 if(!(mPrimePtPOI==0&&mPrimePrimePtPOI==0)&&!(mPrimePtPOI==0&&(dMult==1||dMult==2||dMult==3))&&!(mPrimePrimePtPOI==0&&(dMult==0||dMult==1||dMult==2)))//to be improved
2915 {
2916 fourDiffPt1n1n1n1nPOI=((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPrimePtPOI*dQ1nx+qyPrimePtPOI*dQ1ny)-2.*(dMult-1)*(qxPrimePtPOI*dQ1nx+qyPrimePtPOI*dQ1ny)-(dQ2nx*(qxPrimePtPOI*dQ1nx-qyPrimePtPOI*dQ1ny)+dQ2ny*(qxPrimePtPOI*dQ1ny+qyPrimePtPOI*dQ1nx))+(dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPrimePrimePtPOI*dQ1nx+qyPrimePrimePtPOI*dQ1ny)-(q2xPrimePrimePtPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPrimePrimePtPOI*dQ1nx*dQ1ny)-(dQ2nx*(qxPrimePrimePtPOI*dQ1nx-qyPrimePrimePtPOI*dQ1ny)+dQ2ny*(qxPrimePrimePtPOI*dQ1ny+qyPrimePrimePtPOI*dQ1nx))+(q2xPrimePrimePtPOI*dQ2nx+q2yPrimePrimePtPOI*dQ2ny)-2.*(dMult-3.)*(qxPrimePrimePtPOI*dQ1nx+qyPrimePrimePtPOI*dQ1ny)-2.*mPrimePrimePtPOI*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxPrimePrimePtPOI+dQ1ny*qyPrimePrimePtPOI)+2.*mPrimePrimePtPOI*(dMult-3.))/(mPrimePtPOI*dMult*(dMult-1)*(dMult-2)+mPrimePrimePtPOI*(dMult-1)*(dMult-2)*(dMult-3));
2917
2918 f4PerPtBin1n1n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,fourDiffPt1n1n1n1nPOI,mPrimePtPOI*dMult*(dMult-1)*(dMult-2)+mPrimePrimePtPOI*(dMult-1)*(dMult-2)*(dMult-3));//Re[<4'>_{n,n|n,n}]
2919 }//end of if((mPrimePtPOI+mPrimePrimePtPOI>0)&&dMult>2)
2920 }//end of for(Int_t bin=1;bin<(fnBinsPt+1);bin++)//loop over pt-bins
2921
2922 fPtReq1nPrimePOI->Reset();
2923 fPtImq1nPrimePOI->Reset();
2924 fPtReq2nPrimePOI->Reset();
2925 fPtImq2nPrimePOI->Reset();
2926
2927 fPtReq1nPrimePrimePOI->Reset();
2928 fPtImq1nPrimePrimePOI->Reset();
2929 fPtReq2nPrimePrimePOI->Reset();
2930 fPtImq2nPrimePrimePOI->Reset();
ae733b3b 2931
2932 mPrimePrimePerBinPtPOI->Reset();
4057ba99 2933
2934 //Eta:
2935 //Double_t twoDiffEta1n1nPOI=0.,twoDiffEta2n2nPOI=0.,threeDiffEta2n1n1nPOI=0.,threeDiffEta1n1n2nPOI=0.,fourDiffEta1n1n1n1nPOI=0.;
2936 Double_t twoDiffEta1n1nPOI=0.,twoDiffEta2n2nPOI=0.,fourDiffEta1n1n1n1nPOI=0.;
2937
2938 for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins
2939 {
2940 //q'
2941 qxPrimeEtaPOI = (fEtaReq1nPrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePOI->GetBinEntries(bin));
2942 qyPrimeEtaPOI = (fEtaImq1nPrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePOI->GetBinEntries(bin));
2943 q2xPrimeEtaPOI = (fEtaReq2nPrimePOI->GetBinContent(bin))*(fEtaReq2nPrimePOI->GetBinEntries(bin));
2944 q2yPrimeEtaPOI = (fEtaImq2nPrimePOI->GetBinContent(bin))*(fEtaImq2nPrimePOI->GetBinEntries(bin));
2945 mPrimeEtaPOI = fEtaReq1nPrimePOI->GetBinEntries(bin);
2946 //q''
2947 qxPrimePrimeEtaPOI = (fEtaReq1nPrimePrimePOI->GetBinContent(bin))*(fEtaReq1nPrimePrimePOI->GetBinEntries(bin));
2948 qyPrimePrimeEtaPOI = (fEtaImq1nPrimePrimePOI->GetBinContent(bin))*(fEtaImq1nPrimePrimePOI->GetBinEntries(bin));
2949 q2xPrimePrimeEtaPOI = (fEtaReq2nPrimePrimePOI->GetBinContent(bin))*(fEtaReq2nPrimePrimePOI->GetBinEntries(bin));
2950 q2yPrimePrimeEtaPOI = (fEtaImq2nPrimePrimePOI->GetBinContent(bin))*(fEtaImq2nPrimePrimePOI->GetBinEntries(bin));
ae733b3b 2951 mPrimePrimeEtaPOI = fEtaReq1nPrimePrimePOI->GetBinEntries(bin);
2952 dSumOfWeightsUpTomPrimePrimeEtaPOI = (mPrimePrimePerBinEtaPOI->GetBinContent(bin))*(mPrimePrimePerBinEtaPOI->GetBinEntries(bin));
2953
3d824203 2954 if((mPrimePrimeEtaPOI+mPrimeEtaPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimeEtaPOI)//to be improved (dMult>1 or dMult>0)
4057ba99 2955 {
ae733b3b 2956 //twoDiffEta1n1nPOI = (qxPrimePrimeEtaPOI*dQ1nx+qyPrimePrimeEtaPOI*dQ1ny-mPrimePrimeEtaPOI+qxPrimeEtaPOI*dQ1nx+qyPrimeEtaPOI*dQ1ny)/(mPrimePrimeEtaPOI*(dMult-1)+mPrimeEtaPOI*dMult); // OK without weights
2957 //f2PerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nPOI,mPrimePrimeEtaPOI*(dMult-1)+mPrimeEtaPOI*dMult);//<2'>_{n|n} // OK without weights
4057ba99 2958
3d824203 2959 twoDiffEta1n1nPOI = (qxPrimePrimeEtaPOI*dQ1nxW+qyPrimePrimeEtaPOI*dQ1nyW-dSumOfWeightsUpTomPrimePrimeEtaPOI+qxPrimeEtaPOI*dQ1nxW+qyPrimeEtaPOI*dQ1nyW)/((mPrimePrimeEtaPOI+mPrimeEtaPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimeEtaPOI);
2960 f2PerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nPOI,(mPrimePrimeEtaPOI+mPrimeEtaPOI)*dSnk[0][0]-dSumOfWeightsUpTomPrimePrimeEtaPOI); // <2'>_{n|n}
2961 }
2962
2963 if(mPrimePrimeEtaPOI*(dMult-1)+mPrimeEtaPOI*dMult)
2964 {
4057ba99 2965 twoDiffEta2n2nPOI = (q2xPrimePrimeEtaPOI*dQ2nx+q2yPrimePrimeEtaPOI*dQ2ny-mPrimePrimeEtaPOI+q2xPrimeEtaPOI*dQ2nx+q2yPrimeEtaPOI*dQ2ny)/(mPrimePrimeEtaPOI*(dMult-1)+mPrimeEtaPOI*dMult);
2966 f2PerEtaBin2n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta2n2nPOI,mPrimePrimeEtaPOI*(dMult-1)+mPrimeEtaPOI*dMult);//<2'>_{2n|2n}
2967 }//end of if((mPrimeEtaPOI+mPrimePrimeEtaPOI>0)&&dMult>0)
2968
2969 /*
2970 to be improved: correct Eqs. needed here)
2971 if(mEtaPOI>0&&dMult>3)
1dfa3c16 2972 {
4057ba99 2973 threeDiffEta2n1n1nPOI = (q2xEtaPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yEtaPOI*dQ1nx*dQ1ny-2.*(qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny)-(q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny)+2.*mEtaPOI)/(mEtaPOI*(dMult-1.)*(dMult-2.));//to be improved (correct formula)
2974 //f3PePOItBin2n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta2n1n1nPOI,mEtaPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}]
1dfa3c16 2975
4057ba99 2976 threeDiffEta1n1n2nPOI = (dQ2nx*(qxEtaPOI*dQ1nx-qyEtaPOI*dQ1ny)+dQ2ny*(qxEtaPOI*dQ1ny+qyEtaPOI*dQ1nx)-2.*(qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny)-(q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny)+2.*mEtaPOI)/(mEtaPOI*(dMult-1.)*(dMult-2.));//to be improved (correct formula)
2977 //f3PePOItBin1n1n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta1n1n2nPOI,mEtaPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}]
2978 }
2979 */
1dfa3c16 2980
4057ba99 2981 //if((mPrimeEtaPOI+mPrimePrimeEtaPOI>0)&&dMult>2)//to be improved (dMult>2 or dMult>3)
2982 if(!(mPrimeEtaPOI==0&&mPrimePrimeEtaPOI==0)&&!(mPrimeEtaPOI==0&&(dMult==1||dMult==2||dMult==3))&&!(mPrimePrimeEtaPOI==0&&(dMult==0||dMult==1||dMult==2)))
2983 {
2984 fourDiffEta1n1n1n1nPOI=((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPrimeEtaPOI*dQ1nx+qyPrimeEtaPOI*dQ1ny)-2.*(dMult-1)*(qxPrimeEtaPOI*dQ1nx+qyPrimeEtaPOI*dQ1ny)-(dQ2nx*(qxPrimeEtaPOI*dQ1nx-qyPrimeEtaPOI*dQ1ny)+dQ2ny*(qxPrimeEtaPOI*dQ1ny+qyPrimeEtaPOI*dQ1nx))+(dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPrimePrimeEtaPOI*dQ1nx+qyPrimePrimeEtaPOI*dQ1ny)-(q2xPrimePrimeEtaPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPrimePrimeEtaPOI*dQ1nx*dQ1ny)-(dQ2nx*(qxPrimePrimeEtaPOI*dQ1nx-qyPrimePrimeEtaPOI*dQ1ny)+dQ2ny*(qxPrimePrimeEtaPOI*dQ1ny+qyPrimePrimeEtaPOI*dQ1nx))+(q2xPrimePrimeEtaPOI*dQ2nx+q2yPrimePrimeEtaPOI*dQ2ny)-2.*(dMult-3.)*(qxPrimePrimeEtaPOI*dQ1nx+qyPrimePrimeEtaPOI*dQ1ny)-2.*mPrimePrimeEtaPOI*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxPrimePrimeEtaPOI+dQ1ny*qyPrimePrimeEtaPOI)+2.*mPrimePrimeEtaPOI*(dMult-3.))/(mPrimeEtaPOI*dMult*(dMult-1)*(dMult-2)+mPrimePrimeEtaPOI*(dMult-1)*(dMult-2)*(dMult-3));
2985
2986 f4PerEtaBin1n1n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,fourDiffEta1n1n1n1nPOI,mPrimeEtaPOI*dMult*(dMult-1)*(dMult-2)+mPrimePrimeEtaPOI*(dMult-1)*(dMult-2)*(dMult-3));//Re[<4'>_{n,n|n,n}]
2987 }//end of if((mPrimeEtaPOI+mPrimePrimeEtaPOI>0)&&dMult>2)
2988 }//end of for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins
2989
2990 fEtaReq1nPrimePOI->Reset();
2991 fEtaImq1nPrimePOI->Reset();
2992 fEtaReq2nPrimePOI->Reset();
2993 fEtaImq2nPrimePOI->Reset();
1dfa3c16 2994
4057ba99 2995 fEtaReq1nPrimePrimePOI->Reset();
2996 fEtaImq1nPrimePrimePOI->Reset();
2997 fEtaReq2nPrimePrimePOI->Reset();
2998 fEtaImq2nPrimePrimePOI->Reset();
ae733b3b 2999
3000 mPrimePrimePerBinEtaPOI->Reset();
3001
4057ba99 3002//---------------------------------------------------------------------------------------------------------
3003
3004
6f5d8033 3005 delete mPerBinPtRP;
3006 delete mPerBinEtaRP;
3007 delete mPrimePrimePerBinPtPOI;
3008 delete mPrimePrimePerBinEtaPOI;
3009
4057ba99 3010
3011
3012
3013
3014
3015
3016
3017
3018
3019/*
1dfa3c16 3020 //Eta:
3021 Double_t twoDiffEta1n1nPOI=0.,twoDiffEta2n2nPOI=0.,threeDiffEta2n1n1nPOI=0.,threeDiffEta1n1n2nPOI=0.,fourDiffEta1n1n1n1nPOI=0.;
3022
3023 for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins
3024 {
3025 qxEtaPOI = (fEtaReq1nPOI->GetBinContent(bin))*(fEtaReq1nPOI->GetBinEntries(bin));
3026 qyEtaPOI = (fEtaImq1nPOI->GetBinContent(bin))*(fEtaImq1nPOI->GetBinEntries(bin));
3027 q2xEtaPOI = (fEtaReq2nPOI->GetBinContent(bin))*(fEtaReq2nPOI->GetBinEntries(bin));
3028 q2yEtaPOI = (fEtaImq2nPOI->GetBinContent(bin))*(fEtaImq2nPOI->GetBinEntries(bin));
4057ba99 3029 mEtaPOI = fEtaReq1nPOI->GetBinEntries(bin);
1dfa3c16 3030
3031 if(mEtaPOI>0&&dMult>1)
3032 {
e8a609bc 3033 twoDiffEta1n1nPOI = (qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny-dOverlapEta)/((mEtaPOI-dOverlapEta)*dMult+dOverlapEta*(dMult-1.));
3034 f2PerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nPOI,(mEtaPOI-dOverlapEta)*dMult+dOverlapEta*(dMult-1.));//<2'>_{n|n}
1dfa3c16 3035
e8a609bc 3036 twoDiffEta2n2nPOI = (q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny-dOverlapEta)/((mEtaPOI-dOverlapEta)*dMult+dOverlapEta*(dMult-1.));
3037 f2PerEtaBin2n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta2n2nPOI,(mEtaPOI-dOverlapEta)*dMult+dOverlapEta*(dMult-1.));//<2'>_{2n|2n}
1dfa3c16 3038 }
3039
3040 if(mEtaPOI>0&&dMult>2)
3041 {
3042 threeDiffEta2n1n1nPOI = (q2xEtaPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yEtaPOI*dQ1nx*dQ1ny-2.*(qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny)-(q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny)+2.*mEtaPOI)/(mEtaPOI*(dMult-1.)*(dMult-2.));//to be improved (correct formula)
3043 //f3PerEtaBin2n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta2n1n1nPOI,mEtaPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}]
3044
3045 threeDiffEta1n1n2nPOI = (dQ2nx*(qxEtaPOI*dQ1nx-qyEtaPOI*dQ1ny)+dQ2ny*(qxEtaPOI*dQ1ny+qyEtaPOI*dQ1nx)-2.*(qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny)-(q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny)+2.*mEtaPOI)/(mEtaPOI*(dMult-1.)*(dMult-2.));//to be improved (correct formula)
3046 //f3PerEtaBin1n1n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta1n1n2nPOI,mEtaPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}]
3047 }
3048
3049 if(mEtaPOI>0&&dMult>3)
3050 {
3051 fourDiffEta1n1n1n1nPOI = ((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny)-(q2xEtaPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yEtaPOI*dQ1nx*dQ1ny)-(dQ2nx*(qxEtaPOI*dQ1nx-qyEtaPOI*dQ1ny)+dQ2ny*(qxEtaPOI*dQ1ny+qyEtaPOI*dQ1nx))+(q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny)-2.*(dMult-3.)*(qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny)-2.*mEtaPOI*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxEtaPOI+dQ1ny*qyEtaPOI)+2.*mEtaPOI*(dMult-3.))/(mEtaPOI*(dMult-1.)*(dMult-2.)*(dMult-3.));//to be improved (correct formula)
3052 //f4PerEtaBin1n1n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,fourDiffEta1n1n1n1nPOI,mEtaPOI*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}]
3053 }
3054
3055 }
3056
3057 fEtaReq1nPOI->Reset();
3058 fEtaImq1nPOI->Reset();
3059 fEtaReq2nPOI->Reset();
3060 fEtaImq2nPOI->Reset();
4057ba99 3061*/
bc92c0cb 3062
3063
3064
3065
3066
3067
3068
3069
3070
bc92c0cb 3071
3072
3073
bc92c0cb 3074
3075
bc92c0cb 3076
bc92c0cb 3077
3078
3079
bc92c0cb 3080
3081
3082
3083
3084
3085
3086
3087
bc92c0cb 3088
bc92c0cb 3089
dee1e0e0 3090
4057ba99 3091 //if(bNestedLoops)to be improved
3092 //{ to be improved
dee1e0e0 3093 //--------------------------------------------------------------------------------------------------------------------------------
3094 //
3095 // **********************
3096 // **** NESTED LOOPS ****
3097 // **********************
3098 //
3099 // Remark 1: multi-particle correlations calculated with nested loops are stored in fDirectCorrelations.
3d824203 3100 // Remark 2: binning of fDirectCorrelations: bins 0..100 - correlations needed for integrated flow; bins 100..200 - correlations needed for differential flow (taking as an example bin 0.5 < pt < 0.6)
dee1e0e0 3101 //
3102 // binning details of fDirectCorrelations (integrated flow):
3d824203 3103 //..........................................................................
3104 // 1st bin: weighted <2>_{n|n} = <w1 w2 cos( n*(phi1-phi2))>
3105 // 2nd bin: weighted <2>_{2n|2n} = <w1^2 w2^2 cos(2n*(phi1-phi2))>
3106 // 3rd bin: weighted <2>_{3n|3n} = <w1^3 w2^3 cos(3n*(phi1-phi2))>
3107 // 4th bin: weighted <2>_{4n|4n} = <w1^4 w2^4 cos(4n*(phi1-phi2))>
3108 // 5th bin: weighted <2>_{n|n} = <w1^3 w2 cos(n*(phi1-phi2))>
3109
3110 // 11th bin: weighted <3>_{2n|n,n} = <w1^2 w2 w3 cos(n*(2phi1-phi2-phi3))>
3111 //..........................................................................
dee1e0e0 3112
3d824203 3113/*
dee1e0e0 3114 Double_t phi1=0., phi2=0., phi3=0., phi4=0., phi5=0., phi6=0., phi7=0., phi8=0.;
3d824203 3115 Double_t wPhi1=1., wPhi2=1., wPhi3=1., wPhi4=1., wPhi5=1., wPhi6=1., wPhi7=1., wPhi8=1.;
3116
3117
3118 Double_t tempLoop = 0.;
3119 Int_t tempCounter = 0.;
3120
dee1e0e0 3121
1dfa3c16 3122 for(Int_t i1=0;i1<dMult;i1++)
bc92c0cb 3123 {
dee1e0e0 3124 fTrack=anEvent->GetTrack(i1);
bc92c0cb 3125 phi1=fTrack->Phi();
3d824203 3126 if(phiWeights) wPhi1 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3127 for(Int_t i2=0;i2<dMult;i2++)
bc92c0cb 3128 {
dee1e0e0 3129 if(i2==i1)continue;
3130 fTrack=anEvent->GetTrack(i2);
bc92c0cb 3131 phi2=fTrack->Phi();
3d824203 3132 if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi())));
3133 // 2-p
3134 fDirectCorrelations->Fill(0.,cos(n*(phi1-phi2)),wPhi1*wPhi2); // <w1 w2 cos( n*(phi1-phi2))>
3135 fDirectCorrelations->Fill(1.,cos(2.*n*(phi1-phi2)),pow(wPhi1,2)*pow(wPhi2,2)); // <w1^2 w2^2 cos(2n*(phi1-phi2))>
3136 fDirectCorrelations->Fill(2.,cos(3.*n*(phi1-phi2)),pow(wPhi1,3)*pow(wPhi2,3)); // <w1^3 w2^3 cos(3n*(phi1-phi2))>
3137 fDirectCorrelations->Fill(3.,cos(4.*n*(phi1-phi2)),pow(wPhi1,4)*pow(wPhi2,4)); // <w1^4 w2^4 cos(4n*(phi1-phi2))>
3138 fDirectCorrelations->Fill(4.,cos(n*(phi1-phi2)),pow(wPhi1,3)*wPhi2); // <w1^3 w2 cos(n*(phi1-phi2))>
bc92c0cb 3139 }
3140 }
3d824203 3141
3142
3143*/
3144
3145/*
3146
1dfa3c16 3147 for(Int_t i1=0;i1<dMult;i1++)
bc92c0cb 3148 {
dee1e0e0 3149 fTrack=anEvent->GetTrack(i1);
bc92c0cb 3150 phi1=fTrack->Phi();
3d824203 3151 if(phiWeights) wPhi1 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3152 for(Int_t i2=0;i2<dMult;i2++)
bc92c0cb 3153 {
dee1e0e0 3154 if(i2==i1)continue;
3155 fTrack=anEvent->GetTrack(i2);
3d824203 3156const Double_t ptmin2 = 0.0;
bc92c0cb 3157 phi2=fTrack->Phi();
3d824203 3158 if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3159 for(Int_t i3=0;i3<dMult;i3++)
bc92c0cb 3160 {
dee1e0e0 3161 if(i3==i1||i3==i2)continue;
3162 fTrack=anEvent->GetTrack(i3);
bc92c0cb 3163 phi3=fTrack->Phi();
3d824203 3164 if(phiWeights) wPhi3 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*nBinsPhi/TMath::TwoPi())));
3165 // 2-p
3166 fDirectCorrelations->Fill(5.,cos(n*(phi1-phi2)),wPhi1*wPhi2*pow(wPhi3,2)); // <w1 w2 w3^2 cos(n*(phi1-phi2))>
3167
3168 // 3-p
3169 fDirectCorrelations->Fill(10.,cos(2.*n*phi1-n*(phi2+phi3)),pow(wPhi1,2)*wPhi2*wPhi3); // <w1^2 w2 w3 cos(n*(2phi1-phi2-phi3))>
3170
3171
3172 fDirectCorrelations->Fill(6.,cos(3.*n*phi1-2.*n*phi2-n*phi3),pow(wPhi1,3)*pow(wPhi2,2)*wPhi3); //<3>_{3n|2n,n}
3173 fDirectCorrelations->Fill(7.,cos(4.*n*phi1-2.*n*phi2-2.*n*phi3),pow(wPhi1,4)*pow(wPhi2,2)*pow(wPhi3,2)); //<3>_{4n|2n,2n}
3174 fDirectCorrelations->Fill(8.,cos(4.*n*phi1-3.*n*phi2-n*phi3),pow(wPhi1,4)*pow(wPhi2,3)*wPhi3); //<3>_{4n|3n,n}
3175
3176
bc92c0cb 3177 }
3178 }
3179 }
3d824203 3180
3181 */
3182
3183
3184
3185 /*
bc92c0cb 3186
dee1e0e0 3187 //<4>_{n,n|n,n}, <4>_{2n,n|2n,n}, <4>_{2n,2n|2n,2n}, <4>_{3n|n,n,n}, <4>_{3n,n|3n,n}, <4>_{3n,n|2n,2n} and <4>_{4n|2n,n,n}
1dfa3c16 3188 for(Int_t i1=0;i1<dMult;i1++)
bc92c0cb 3189 {
dee1e0e0 3190 fTrack=anEvent->GetTrack(i1);
bc92c0cb 3191 phi1=fTrack->Phi();
3d824203 3192 if(phiWeights) wPhi1 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3193 for(Int_t i2=0;i2<dMult;i2++)
bc92c0cb 3194 {
dee1e0e0 3195 if(i2==i1)continue;
3196 fTrack=anEvent->GetTrack(i2);
bc92c0cb 3197 phi2=fTrack->Phi();
3d824203 3198 if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3199 for(Int_t i3=0;i3<dMult;i3++)
bc92c0cb 3200 {
dee1e0e0 3201 if(i3==i1||i3==i2)continue;
3202 fTrack=anEvent->GetTrack(i3);
bc92c0cb 3203 phi3=fTrack->Phi();
3d824203 3204 if(phiWeights) wPhi3 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3205 for(Int_t i4=0;i4<dMult;i4++)
bc92c0cb 3206 {
dee1e0e0 3207 if(i4==i1||i4==i2||i4==i3)continue;
3208 fTrack=anEvent->GetTrack(i4);
bc92c0cb 3209 phi4=fTrack->Phi();
3d824203 3210 if(phiWeights) wPhi4 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi4*nBinsPhi/TMath::TwoPi())));
3211 fDirectCorrelations->Fill(20.,cos(n*phi1+n*phi2-n*phi3-n*phi4),wPhi1*wPhi2*wPhi3*wPhi4); // <4>_{n,n|n,n} = <w1 w2 w3 w4 cos(n*(phi1+phi2-phi3-phi4))>
3212
3213
3214 fDirectCorrelations->Fill(11.,cos(2.*n*phi1+n*phi2-2.*n*phi3-n*phi4),wPhi1*wPhi2*wPhi3*wPhi4); //<4>_{2n,n|2n,n}
3215 fDirectCorrelations->Fill(12.,cos(2.*n*phi1+2*n*phi2-2.*n*phi3-2.*n*phi4),wPhi1*wPhi2*wPhi3*wPhi4); //<4>_{2n,2n|2n,2n}
3216 fDirectCorrelations->Fill(13.,cos(3.*n*phi1-n*phi2-n*phi3-n*phi4),wPhi1*wPhi2*wPhi3*wPhi4); //<4>_{3n|n,n,n}
3217 fDirectCorrelations->Fill(14.,cos(3.*n*phi1+n*phi2-3.*n*phi3-n*phi4),wPhi1*wPhi2*wPhi3*wPhi4); //<4>_{3n,n|3n,n}
3218 fDirectCorrelations->Fill(15.,cos(3.*n*phi1+n*phi2-2.*n*phi3-2.*n*phi4),wPhi1*wPhi2*wPhi3*wPhi4); //<4>_{3n,n|2n,2n}
3219 fDirectCorrelations->Fill(16.,cos(4.*n*phi1-2.*n*phi2-n*phi3-n*phi4),wPhi1*wPhi2*wPhi3*wPhi4); //<4>_{4n|2n,n,n}
3220
bc92c0cb 3221 }
3222 }
3223 }
3224 }
3225
3d824203 3226 */
3227
3228 /*
3229
dee1e0e0 3230 //<5>_{2n,n,n,n,n}, //<5>_{2n,2n|2n,n,n}, <5>_{3n,n|2n,n,n} and <5>_{4n|n,n,n,n}
1dfa3c16 3231 for(Int_t i1=0;i1<dMult;i1++)
bc92c0cb 3232 {
dee1e0e0 3233 //cout<<"i1 = "<<i1<<endl;
3234 fTrack=anEvent->GetTrack(i1);
bc92c0cb 3235 phi1=fTrack->Phi();
3d824203 3236 if(phiWeights) wPhi1 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3237 for(Int_t i2=0;i2<dMult;i2++)
bc92c0cb 3238 {
dee1e0e0 3239 if(i2==i1)continue;
3240 fTrack=anEvent->GetTrack(i2);
bc92c0cb 3241 phi2=fTrack->Phi();
3d824203 3242 if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3243 for(Int_t i3=0;i3<dMult;i3++)
bc92c0cb 3244 {
dee1e0e0 3245 if(i3==i1||i3==i2)continue;
3246 fTrack=anEvent->GetTrack(i3);
bc92c0cb 3247 phi3=fTrack->Phi();
3d824203 3248 if(phiWeights) wPhi3 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3249 for(Int_t i4=0;i4<dMult;i4++)
bc92c0cb 3250 {
dee1e0e0 3251 if(i4==i1||i4==i2||i4==i3)continue;
3252 fTrack=anEvent->GetTrack(i4);
bc92c0cb 3253 phi4=fTrack->Phi();
3d824203 3254 if(phiWeights) wPhi4 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi4*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3255 for(Int_t i5=0;i5<dMult;i5++)
bc92c0cb 3256 {
dee1e0e0 3257 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
3258 fTrack=anEvent->GetTrack(i5);
bc92c0cb 3259 phi5=fTrack->Phi();
3d824203 3260 if(phiWeights) wPhi5 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi5*nBinsPhi/TMath::TwoPi())));
3261 fDirectCorrelations->Fill(18.,cos(2.*n*phi1+n*phi2-n*phi3-n*phi4-n*phi5),wPhi1*wPhi2*wPhi3*wPhi4*wPhi5); //<5>_{2n,n|n,n,n}
3262 fDirectCorrelations->Fill(19.,cos(2.*n*phi1+2.*n*phi2-2.*n*phi3-n*phi4-n*phi5),wPhi1*wPhi2*wPhi3*wPhi4*wPhi5); //<5>_{2n,2n|2n,n,n}
3263 fDirectCorrelations->Fill(20.,cos(3.*n*phi1+n*phi2-2.*n*phi3-n*phi4-n*phi5),wPhi1*wPhi2*wPhi3*wPhi4*wPhi5); //<5>_{3n,n|2n,n,n}
3264 fDirectCorrelations->Fill(21.,cos(4.*n*phi1-n*phi2-n*phi3-n*phi4-n*phi5),wPhi1*wPhi2*wPhi3*wPhi4*wPhi5); //<5>_{4n|n,n,n,n}
bc92c0cb 3265 }
3266 }
3267 }
3268 }
3269 }
3270
3d824203 3271 */
3272 /*
3273
dee1e0e0 3274 //<6>_{n,n,n,n,n,n}, <6>_{2n,n,n|2n,n,n}, <6>_{2n,2n|n,n,n,n} and <6>_{3n,n|n,n,n,n}
1dfa3c16 3275 for(Int_t i1=0;i1<dMult;i1++)
dee1e0e0 3276 {
3277 //cout<<"i1 = "<<i1<<endl;
3278 fTrack=anEvent->GetTrack(i1);
3279 phi1=fTrack->Phi();
3d824203 3280 if(phiWeights) wPhi1 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3281 for(Int_t i2=0;i2<dMult;i2++)
dee1e0e0 3282 {
3283 if(i2==i1)continue;
3284 fTrack=anEvent->GetTrack(i2);
3285 phi2=fTrack->Phi();
3d824203 3286 if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3287 for(Int_t i3=0;i3<dMult;i3++)
dee1e0e0 3288 {
3289 if(i3==i1||i3==i2)continue;
3290 fTrack=anEvent->GetTrack(i3);
3291 phi3=fTrack->Phi();
3d824203 3292 if(phiWeights) wPhi3 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3293 for(Int_t i4=0;i4<dMult;i4++)
dee1e0e0 3294 {
3295 if(i4==i1||i4==i2||i4==i3)continue;
3296 fTrack=anEvent->GetTrack(i4);
3297 phi4=fTrack->Phi();
3d824203 3298 if(phiWeights) wPhi4 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi4*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3299 for(Int_t i5=0;i5<dMult;i5++)
dee1e0e0 3300 {
3301 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
3302 fTrack=anEvent->GetTrack(i5);
3303 phi5=fTrack->Phi();
3d824203 3304const Double_t ptmin2 = 0.0;
3305 if(phiWeights) wPhi5 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi5*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3306 for(Int_t i6=0;i6<dMult;i6++)
dee1e0e0 3307 {
3308 if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
3309 fTrack=anEvent->GetTrack(i6);
3310 phi6=fTrack->Phi();
3d824203 3311 if(phiWeights) wPhi6 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi6*nBinsPhi/TMath::TwoPi())));
3312 fDirectCorrelations->Fill(23.,cos(n*phi1+n*phi2+n*phi3-n*phi4-n*phi5-n*phi6),wPhi1*wPhi2*wPhi3*wPhi4*wPhi5*wPhi6); //<6>_{n,n,n|n,n,n}
3313 fDirectCorrelations->Fill(24.,cos(2.*n*phi1+n*phi2+n*phi3-2.*n*phi4-n*phi5-n*phi6),wPhi1*wPhi2*wPhi3*wPhi4*wPhi5*wPhi6); //<6>_{2n,n,n|2n,n,n}
3314 fDirectCorrelations->Fill(25.,cos(2.*n*phi1+2.*n*phi2-n*phi3-n*phi4-n*phi5-n*phi6),wPhi1*wPhi2*wPhi3*wPhi4*wPhi5*wPhi6); //<6>_{2n,2n|n,n,n,n}
3315 fDirectCorrelations->Fill(26.,cos(3.*n*phi1+n*phi2-n*phi3-n*phi4-n*phi5-n*phi6),wPhi1*wPhi2*wPhi3*wPhi4*wPhi5*wPhi6); //<6>_{3n,n|n,n,n,n}
dee1e0e0 3316 }
3317 }
3318 }
3319 }
3320 }
3321 }
52021ae2 3322
3d824203 3323 */
3324 /*
3325
dee1e0e0 3326 //<7>_{2n,n,n|n,n,n,n}
1dfa3c16 3327 for(Int_t i1=0;i1<dMult;i1++)
bc92c0cb 3328 {
dee1e0e0 3329 //cout<<"i1 = "<<i1<<endl;
3330 fTrack=anEvent->GetTrack(i1);
bc92c0cb 3331 phi1=fTrack->Phi();
3d824203 3332 if(phiWeights) wPhi1 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3333 for(Int_t i2=0;i2<dMult;i2++)
bc92c0cb 3334 {
dee1e0e0 3335 if(i2==i1)continue;
3336 fTrack=anEvent->GetTrack(i2);
bc92c0cb 3337 phi2=fTrack->Phi();
3d824203 3338 if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3339 for(Int_t i3=0;i3<dMult;i3++)
bc92c0cb 3340 {
dee1e0e0 3341 if(i3==i1||i3==i2)continue;
3342 fTrack=anEvent->GetTrack(i3);
bc92c0cb 3343 phi3=fTrack->Phi();
3d824203 3344 if(phiWeights) wPhi3 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3345 for(Int_t i4=0;i4<dMult;i4++)
bc92c0cb 3346 {
dee1e0e0 3347 if(i4==i1||i4==i2||i4==i3)continue;
3348 fTrack=anEvent->GetTrack(i4);
bc92c0cb 3349 phi4=fTrack->Phi();
3d824203 3350 if(phiWeights) wPhi4 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi4*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3351 for(Int_t i5=0;i5<dMult;i5++)
bc92c0cb 3352 {
dee1e0e0 3353 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
3354 fTrack=anEvent->GetTrack(i5);
bc92c0cb 3355 phi5=fTrack->Phi();
3d824203 3356 if(phiWeights) wPhi5 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi5*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3357 for(Int_t i6=0;i6<dMult;i6++)
bc92c0cb 3358 {
dee1e0e0 3359 if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
3360 fTrack=anEvent->GetTrack(i6);
bc92c0cb 3361 phi6=fTrack->Phi();
3d824203 3362 if(phiWeights) wPhi6 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi6*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3363 for(Int_t i7=0;i7<dMult;i7++)
dee1e0e0 3364 {
3365 if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue;
3366 fTrack=anEvent->GetTrack(i7);
3367 phi7=fTrack->Phi();
3d824203 3368 if(phiWeights) wPhi7 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi7*nBinsPhi/TMath::TwoPi())));
3369 fDirectCorrelations->Fill(28.,cos(2.*n*phi1+n*phi2+n*phi3-n*phi4-n*phi5-n*phi6-n*phi7),wPhi1*wPhi2*wPhi3*wPhi4*wPhi5*wPhi6*wPhi7);//<7>_{2n,n,n|n,n,n,n}
dee1e0e0 3370 }
bc92c0cb 3371 }
3372 }
3373 }
3374 }
3375 }
3376 }
52021ae2 3377
3d824203 3378 */
3379 /*
3380
dee1e0e0 3381 //<8>_{n,n,n,n|n,n,n,n}
1dfa3c16 3382 for(Int_t i1=0;i1<dMult;i1++)
dee1e0e0 3383 {
3384 cout<<"i1 = "<<i1<<endl;
3385 fTrack=anEvent->GetTrack(i1);
3386 phi1=fTrack->Phi();
3d824203 3387 if(phiWeights) wPhi1 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3388 for(Int_t i2=0;i2<dMult;i2++)
dee1e0e0 3389 {
3390 if(i2==i1)continue;
3391 fTrack=anEvent->GetTrack(i2);
3392 phi2=fTrack->Phi();
3d824203 3393 if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3394 for(Int_t i3=0;i3<dMult;i3++)
dee1e0e0 3395 {
3396 if(i3==i1||i3==i2)continue;
3397 fTrack=anEvent->GetTrack(i3);
3398 phi3=fTrack->Phi();
3d824203 3399 if(phiWeights) wPhi3 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3400 for(Int_t i4=0;i4<dMult;i4++)
dee1e0e0 3401 {
3402 if(i4==i1||i4==i2||i4==i3)continue;
3403 fTrack=anEvent->GetTrack(i4);
3404 phi4=fTrack->Phi();
3d824203 3405 if(phiWeights) wPhi4 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi4*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3406 for(Int_t i5=0;i5<dMult;i5++)
dee1e0e0 3407 {
3408 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
3409 fTrack=anEvent->GetTrack(i5);
3410 phi5=fTrack->Phi();
3d824203 3411 if(phiWeights) wPhi5 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi5*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3412 for(Int_t i6=0;i6<dMult;i6++)
dee1e0e0 3413 {
3414 if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
3415 fTrack=anEvent->GetTrack(i6);
3d824203 3416 phi6=fTrack->Phi();
3417 if(phiWeights) wPhi6 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi6*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3418 for(Int_t i7=0;i7<dMult;i7++)
dee1e0e0 3419 {
3420 if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue;
3421 fTrack=anEvent->GetTrack(i7);
3d824203 3422 phi7=fTrack->Phi();
3423 if(phiWeights) wPhi7 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi7*nBinsPhi/TMath::TwoPi())));
1dfa3c16 3424 for(Int_t i8=0;i8<dMult;i8++)
dee1e0e0 3425 {
3426 if(i8==i1||i8==i2||i8==i3||i8==i4||i8==i5||i8==i6||i8==i7)continue;
3427 fTrack=anEvent->GetTrack(i8);
3d824203 3428 phi8=fTrack->Phi();
3429 if(phiWeights) wPhi8 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi8*nBinsPhi/TMath::TwoPi())));
3430 fDirectCorrelations->Fill(30.,cos(n*phi1+n*phi2+n*phi3+n*phi4-n*phi5-n*phi6-n*phi7-n*phi8),wPhi1*wPhi2*wPhi3*wPhi4*wPhi5*wPhi6*wPhi7*wPhi8);//<8>_{n,n,n,n|n,n,n,n}
dee1e0e0 3431 }
3432 }
3433 }
3434 }
3435 }
3436 }
3437 }
3438 }
bc92c0cb 3439
3d824203 3440 */
3441
3442
3443 /*
3444
dee1e0e0 3445 // binning details of fDirectCorrelations (differential flow):
3446 //
3d824203 3447 //101st bin: <2'>_{n|n}
4057ba99 3448
bc92c0cb 3449
3450 //<2'>_{n|n}
4057ba99 3451 for(Int_t i1=0;i1<nPrim;i1++)
bc92c0cb 3452 {
dee1e0e0 3453 fTrack=anEvent->GetTrack(i1);
4057ba99 3454 if(!((fTrack->Pt()>=0.5&&fTrack->Pt()<0.6)&&(fTrack->UseForDifferentialFlow())))continue;//POI condition
3455 phi1=fTrack->Phi();
3d824203 3456 if(phiWeights) wPhi1 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*nBinsPhi/TMath::TwoPi())));
4057ba99 3457 for(Int_t i2=0;i2<nPrim;i2++)
bc92c0cb 3458 {
4057ba99 3459 if(i2==i1)continue;
3460 fTrack=anEvent->GetTrack(i2);
3461 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3462 phi2=fTrack->Phi();
3d824203 3463 if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi())));
4057ba99 3464 //cout<<"1st = "<<i1<<" "<< (anEvent->GetTrack(i1))->Eta() << " " << (anEvent->GetTrack(i1))->Pt()<<endl;
3465 //cout<<"2nd = "<<i2<<" "<< (anEvent->GetTrack(i2))->Eta() << " " << (anEvent->GetTrack(i2))->Pt()<<endl;
3466 //fill the fDirectCorrelations:
3d824203 3467 fDirectCorrelations->Fill(100.,cos(1.*n*(phi1-phi2)),wPhi2);//<2'>_{n,n}
3468 fDirectCorrelations->Fill(103.,cos(1.*n*(phi1-phi2)),pow(wPhi1,2)*wPhi2);//<2'>_{n,n}
3469 fDirectCorrelations->Fill(104.,cos(2.*n*(phi1-phi2)),wPhi1*pow(wPhi2,2));//<2'>_{n,n}
3470 fDirectCorrelations->Fill(105.,cos(1.*n*(phi1-phi2)),pow(wPhi2,3));//<2'>_{n,n}
3471
3472
3473
4057ba99 3474 fDirectCorrelations->Fill(41.,cos(2.*n*(phi1-phi2)),1);//<2'>_{2n,2n}
3475 fDirectCorrelations->Fill(42.,cos(3.*n*(phi1-phi2)),1);//<2'>_{3n,3n}
3d824203 3476 fDirectCorrelations->Fill(43.,cos(4.*n*(phi1-phi2)),1);//<2'>_{4n,4n}
3477
4057ba99 3478 }//end of for(Int_t i2=0;i2<nPrim;i2++)
3479 }//end of for(Int_t i1=0;i1<nPrim;i1++)
3480
3d824203 3481 */
3482
3483
3484
3485 /*
3486
bc92c0cb 3487 //<3'>_{2n|n,n}
4057ba99 3488 for(Int_t i1=0;i1<nPrim;i1++)
bc92c0cb 3489 {
dee1e0e0 3490 fTrack=anEvent->GetTrack(i1);
4057ba99 3491 if(!((fTrack->Pt()>=0.5&&fTrack->Pt()<0.6)&&(fTrack->UseForDifferentialFlow())))continue;//POI condition
3492 phi1=fTrack->Phi();
3d824203 3493 if(phiWeights) wPhi1 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*nBinsPhi/TMath::TwoPi())));
4057ba99 3494 for(Int_t i2=0;i2<nPrim;i2++)
bc92c0cb 3495 {
4057ba99 3496 if(i2==i1)continue;
3497 fTrack=anEvent->GetTrack(i2);
3498 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3499 phi2=fTrack->Phi();
3d824203 3500 if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi())));
4057ba99 3501 for(Int_t i3=0;i3<nPrim;i3++)
bc92c0cb 3502 {
4057ba99 3503 if(i3==i1||i3==i2)continue;
3504 fTrack=anEvent->GetTrack(i3);
3505 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3506 phi3=fTrack->Phi();
3d824203 3507 if(phiWeights) wPhi3 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*nBinsPhi/TMath::TwoPi())));
3508 //fill the fDirectCorrelations:
3509
3510 // 2-p
3511 fDirectCorrelations->Fill(101.,cos(n*(phi2-phi3)),wPhi1*wPhi2*wPhi3); // <w1 w2 w3 cos(n(phi2-phi3))>
3512 fDirectCorrelations->Fill(102.,cos(n*(phi1-phi3)),pow(wPhi2,2.)*wPhi3); // <w2^2 w3 cos(n(psi1-phi2))>
3513
3514 // 3-p
3515 fDirectCorrelations->Fill(110.,cos(n*(2.*phi1-phi2-phi3)),wPhi1*wPhi2*wPhi3); // <w1 w2 w3 cos(n(2psi1-phi2-phi3))>
3516 fDirectCorrelations->Fill(111.,cos(n*(phi1+phi2-2.*phi3)),wPhi2*pow(wPhi3,2.)); // <w2 w3^2 cos(n(psi1+phi2-2.*phi3))>
3517
3518
3519 //fDirectCorrelations->Fill(46.,cos(n*(phi1+phi2-2.*phi3)),1);//<3'>_{n,n|2n}
4057ba99 3520 }//end of for(Int_t i3=0;i3<nPrim;i3++)
3521 }//end of for(Int_t i2=0;i2<nPrim;i2++)
3522 }//end of for(Int_t i1=0;i1<nPrim;i1++)
3d824203 3523
3524
3525 */
3526
3527
3528 /*
bc92c0cb 3529
3530 //<4'>_{n,n|n,n}
4057ba99 3531 for(Int_t i1=0;i1<nPrim;i1++)
bc92c0cb 3532 {
dee1e0e0 3533 fTrack=anEvent->GetTrack(i1);
4057ba99 3534 if(!((fTrack->Pt()>=0.5&&fTrack->Pt()<0.6)&&(fTrack->UseForDifferentialFlow())))continue;//POI condition
3d824203 3535 tempCounter++;
4057ba99 3536 phi1=fTrack->Phi();
3d824203 3537 if(phiWeights) wPhi1 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi1*nBinsPhi/TMath::TwoPi())));
4057ba99 3538 for(Int_t i2=0;i2<nPrim;i2++)
bc92c0cb 3539 {
4057ba99 3540 if(i2==i1)continue;
3541 fTrack=anEvent->GetTrack(i2);
3542 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3543 phi2=fTrack->Phi();
3d824203 3544 if(phiWeights) wPhi2 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi2*nBinsPhi/TMath::TwoPi())));
4057ba99 3545 for(Int_t i3=0;i3<nPrim;i3++)
3546 {
3547 if(i3==i1||i3==i2)continue;
3548 fTrack=anEvent->GetTrack(i3);
3549 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3550 phi3=fTrack->Phi();
3d824203 3551 if(phiWeights) wPhi3 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi3*nBinsPhi/TMath::TwoPi())));
4057ba99 3552 for(Int_t i4=0;i4<nPrim;i4++)
bc92c0cb 3553 {
4057ba99 3554 if(i4==i1||i4==i2||i4==i3)continue;
3555 fTrack=anEvent->GetTrack(i4);
3556 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3557 phi4=fTrack->Phi();
3d824203 3558 if(phiWeights) wPhi4 = phiWeights->GetBinContent(1+(Int_t)(TMath::Floor(phi4*nBinsPhi/TMath::TwoPi())));
4057ba99 3559 //fill the fDirectCorrelations:
3d824203 3560 // 4-p
3561 fDirectCorrelations->Fill(120.,cos(n*(phi1+phi2-phi3-phi4)),wPhi2*wPhi3*wPhi4); // <w1 w2 w3 cos(n(psi1+phi1-phi2-phi3))>
3562
3563 tempLoop+=wPhi2*wPhi3*wPhi4;
3564
4057ba99 3565 }//end of for(Int_t i4=0;i4<nPrim;i4++)
3566 }//end of for(Int_t i3=0;i3<nPrim;i3++)
3567 }//end of for(Int_t i2=0;i2<nPrim;i2++)
3568 }//end of for(Int_t i1=0;i1<nPrim;i1++)
3d824203 3569
3570 */
ae733b3b 3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3d824203 3588 /*
ae733b3b 3589
3590
3591
3592
ae733b3b 3593
3594
3595
4057ba99 3596 //<5'>_{2n,n|n,n,n}
3597 for(Int_t i1=0;i1<nPrim;i1++)
3598 {
3599 fTrack=anEvent->GetTrack(i1);
3600 if(!((fTrack->Pt()>=0.5&&fTrack->Pt()<0.6)&&(fTrack->UseForDifferentialFlow())))continue;//POI condition
3601 phi1=fTrack->Phi();
3602 for(Int_t i2=0;i2<nPrim;i2++)
3603 {
3604 if(i2==i1)continue;
3605 fTrack=anEvent->GetTrack(i2);
3606 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3607 phi2=fTrack->Phi();
3608 for(Int_t i3=0;i3<nPrim;i3++)
3609 {
3610 if(i3==i1||i3==i2)continue;
3611 fTrack=anEvent->GetTrack(i3);
3612 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3613 phi3=fTrack->Phi();
3614 for(Int_t i4=0;i4<nPrim;i4++)
3615 {
3616 if(i4==i1||i4==i2||i4==i3)continue;
3617 fTrack=anEvent->GetTrack(i4);
3618 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
ae733b3b 3619 phi4=fTrack->Phi();//
4057ba99 3620 for(Int_t i5=0;i5<nPrim;i5++)
bc92c0cb 3621 {
4057ba99 3622 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
3623 fTrack=anEvent->GetTrack(i5);
3624 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3625 phi5=fTrack->Phi();
3626 //fill the fDirectCorrelations:if(bNestedLoops)
3627 fDirectCorrelations->Fill(55.,cos(2.*n*phi1+n*phi2-n*phi3-n*phi4-n*phi5),1);//<5'>_{2n,n|n,n,n}
3628 }//end of for(Int_t i5=0;i5<nPrim;i5++)
3629 }//end of for(Int_t i4=0;i4<nPrim;i4++)
3630 }//end of for(Int_t i3=0;i3<nPrim;i3++)
3631 }//end of for(Int_t i2=0;i2<nPrim;i2++)
3632 }//end of for(Int_t i1=0;i1<nPrim;i1++)
3633
3634 //<6'>_{n,n,n|n,n,n}
3635 for(Int_t i1=0;i1<nPrim;i1++)
3636 {
3637 fTrack=anEvent->GetTrack(i1);
3638 if(!((fTrack->Pt()>=0.5&&fTrack->Pt()<0.6)&&(fTrack->UseForDifferentialFlow())))continue;//POI condition
3639 phi1=fTrack->Phi();
3640 for(Int_t i2=0;i2<nPrim;i2++)
3641 {
3642 if(i2==i1)continue;
3643 fTrack=anEvent->GetTrack(i2);
3644 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3645 phi2=fTrack->Phi();
3646 for(Int_t i3=0;i3<nPrim;i3++)
3647 {
3648 if(i3==i1||i3==i2)continue;
3649 fTrack=anEvent->GetTrack(i3);
3650 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3651 phi3=fTrack->Phi();
3652 for(Int_t i4=0;i4<nPrim;i4++)
3653 {
3654 if(i4==i1||i4==i2||i4==i3)continue;
3655 fTrack=anEvent->GetTrack(i4);
3656 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3657 phi4=fTrack->Phi();
3658 for(Int_t i5=0;i5<nPrim;i5++)
3659 {
3660 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
3661 fTrack=anEvent->GetTrack(i5);
3662 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3663 phi5=fTrack->Phi();
3664 for(Int_t i6=0;i6<nPrim;i6++)
3665 {
3666 if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
3667 fTrack=anEvent->GetTrack(i6);
3668 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3669 phi6=fTrack->Phi();
3670 //fill the fDirectCorrelations:
3671 fDirectCorrelations->Fill(60.,cos(n*(phi1+phi2+phi3-phi4-phi5-phi6)),1);//<6'>_{n,n,n|n,n,n}
3672 }//end of for(Int_t i6=0;i6<nPrim;i6++)
3673 }//end of for(Int_t i5=0;i5<nPrim;i5++)
3674 }//end of for(Int_t i4=0;i4<nPrim;i4++)
3675 }//end of for(Int_t i3=0;i3<nPrim;i3++)
3676 }//end of for(Int_t i2=0;i2<nPrim;i2++)
3677 }//end of for(Int_t i1=0;i1<nPrim;i1++)
3678
3679 //<7'>_{2n,n,n|n,n,n,n}
3680 for(Int_t i1=0;i1<nPrim;i1++)
3681 {
3682 fTrack=anEvent->GetTrack(i1);
3683 if(!((fTrack->Pt()>=0.5&&fTrack->Pt()<0.6)&&(fTrack->UseForDifferentialFlow())))continue;//POI condition
3684 phi1=fTrack->Phi();
3685 for(Int_t i2=0;i2<nPrim;i2++)
3686 {
3687 if(i2==i1)continue;
3688 fTrack=anEvent->GetTrack(i2);
3689 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3690 phi2=fTrack->Phi();
3691 for(Int_t i3=0;i3<nPrim;i3++)
3692 {
3693 if(i3==i1||i3==i2)continue;
3694 fTrack=anEvent->GetTrack(i3);
3695 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3696 phi3=fTrack->Phi();
3697 for(Int_t i4=0;i4<nPrim;i4++)
3698 {
3699 if(i4==i1||i4==i2||i4==i3)continue;
3700 fTrack=anEvent->GetTrack(i4);
3701 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3702 phi4=fTrack->Phi();
3703 for(Int_t i5=0;i5<nPrim;i5++)
3704 {
3705 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
3706 fTrack=anEvent->GetTrack(i5);
3707 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3708 phi5=fTrack->Phi();
3709 for(Int_t i6=0;i6<nPrim;i6++)
3710 {
3711 if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
3712 fTrack=anEvent->GetTrack(i6);
3713 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3714 phi6=fTrack->Phi();
3715 for(Int_t i7=0;i7<nPrim;i7++)
3716 {
3717 if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue;
3718 fTrack=anEvent->GetTrack(i7);
3719 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3720 phi7=fTrack->Phi();
3721 //fill the fDirectCorrelations:
3722 fDirectCorrelations->Fill(65.,cos(2.*n*phi1+n*phi2+n*phi3-n*phi4-n*phi5-n*phi6-n*phi7),1);//<7'>_{2n,n,n|n,n,n,n}
3723 }//end of for(Int_t i7=0;i7<nPrim;i7++)
3724 }//end of for(Int_t i6=0;i6<nPrim;i6++)
3725 }//end of for(Int_t i5=0;i5<nPrim;i5++)
3726 }//end of for(Int_t i4=0;i4<nPrim;i4++)
3727 }//end of for(Int_t i3=0;i3<nPrim;i3++)
3728 }//end of for(Int_t i2=0;i2<nPrim;i2++)
3729 }//end of for(Int_t i1=0;i1<nPrim;i1++)
3730
3731 //<8'>_{n,n,n,n|n,n,n,n}
3732 for(Int_t i1=0;i1<nPrim;i1++)
3733 {
3734 fTrack=anEvent->GetTrack(i1);
3735 if(!((fTrack->Pt()>=0.5&&fTrack->Pt()<0.6)&&(fTrack->UseForDifferentialFlow())))continue;//POI condition
3736 phi1=fTrack->Phi();
3737 for(Int_t i2=0;i2<nPrim;i2++)
3738 {
3739 if(i2==i1)continue;
3740 fTrack=anEvent->GetTrack(i2);
3741 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3742 phi2=fTrack->Phi();
3743 for(Int_t i3=0;i3<nPrim;i3++)
3744 {
3745 if(i3==i1||i3==i2)continue;
3746 fTrack=anEvent->GetTrack(i3);
3747 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3748 phi3=fTrack->Phi();
3749 for(Int_t i4=0;i4<nPrim;i4++)
3750 {
3751 if(i4==i1||i4==i2||i4==i3)continue;
3752 fTrack=anEvent->GetTrack(i4);
3753 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3754 phi4=fTrack->Phi();
3755 for(Int_t i5=0;i5<nPrim;i5++)
3756 {
3757 if(i5==i1||i5==i2||i5==i3||i5==i4)continue;
3758 fTrack=anEvent->GetTrack(i5);
3759 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3760 phi5=fTrack->Phi();
3761 for(Int_t i6=0;i6<nPrim;i6++)
3762 {
3763 if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue;
3764 fTrack=anEvent->GetTrack(i6);
3765 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3766 phi6=fTrack->Phi();
3767 for(Int_t i7=0;i7<nPrim;i7++)
3768 {
3769 if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue;
3770 fTrack=anEvent->GetTrack(i7);
3771 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3772 phi7=fTrack->Phi();
3773 for(Int_t i8=0;i8<nPrim;i8++)
3774 {
3775 if(i8==i1||i8==i2||i8==i3||i8==i4||i8==i5||i8==i6||i8==i7)continue;
3776 fTrack=anEvent->GetTrack(i8);
3777 if(!(fTrack->UseForIntegratedFlow()))continue;//RP condition
3778 phi8=fTrack->Phi();
3779 //fill the fDirectCorrelations:
3780 fDirectCorrelations->Fill(70.,cos(n*(phi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)),1);//<8'>_{n,n,n,n|n,n,n,n}
3781 }//end of for(Int_t i8=0;i8<nPrim;i8++)
3782 }//end of for(Int_t i7=0;i7<nPrim;i7++)
3783 }//end of for(Int_t i6=0;i6<nPrim;i6++)
3784 }//end of for(Int_t i5=0;i5<nPrim;i5++)
3785 }//end of for(Int_t i4=0;i4<nPrim;i4++)
3786 }//end of for(Int_t i3=0;i3<nPrim;i3++)
3787 }//end of for(Int_t i2=0;i2<nPrim;i2++)
3788 }//end of for(Int_t i1=0;i1<nPrim;i1++)
3789
3790
3791
3d824203 3792
3793
3794
3795
3796
3797
3798
4057ba99 3799 */
3800
3801
3d824203 3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
4057ba99 3832//--------------------------------------------------------------------------------------------------------------------------------
bc92c0cb 3833
4057ba99 3834 //}//end of if(nPrim>0&&nPrim<12)
bc92c0cb 3835}//end of Make()
3836
3837//================================================================================================================
3838
3839void AliFlowAnalysisWithQCumulants::Finish()
3840{
1315fe58 3841 //calculate the final results
3d824203 3842 AliQCumulantsFunctions finalResults(fIntFlowResultsQC,fDiffFlowResults2ndOrderQC,fDiffFlowResults4thOrderQC,fCovariances,fAvMultIntFlowQC,fQvectorComponents,fQCorrelations,fQCorrelationsW, fQProduct,fDirectCorrelations,f2PerPtBin1n1nRP,f2PerPtBin2n2nRP,f3PerPtBin2n1n1nRP,f3PerPtBin1n1n2nRP,f4PerPtBin1n1n1n1nRP, f2PerEtaBin1n1nRP,f2PerEtaBin2n2nRP,f3PerEtaBin2n1n1nRP,f3PerEtaBin1n1n2nRP,f4PerEtaBin1n1n1n1nRP,
3843
3844 f2PerPtBin1n1nPOI,f2PerPtBin2n2nPOI,f3PerPtBin2n1n1nPOI,f3PerPtBin1n1n2nPOI,f4PerPtBin1n1n1n1nPOI, f2PerEtaBin1n1nPOI,f2PerEtaBin2n2nPOI,f3PerEtaBin2n1n1nPOI,f3PerEtaBin1n1n2nPOI,f4PerEtaBin1n1n1n1nPOI,
3845 f2WPerPtBin1n1nPOI,f2WPerPtBin2n2nPOI,f3WPerPtBin2n1n1nPOI,f3WPerPtBin1n1n2nPOI,f4WPerPtBin1n1n1n1nPOI,
3846
3847
3848 f2WPerEtaBin1n1nPOI, f4WPerEtaBin1n1n1n1nPOI, f2WPerPtBin1n1nRP, f4WPerPtBin1n1n1n1nRP, f2WPerEtaBin1n1nRP, f4WPerEtaBin1n1n1n1nRP,
3849
3850
3851 fCommonHists2nd,fCommonHists4th, fCommonHists6th, fCommonHists8th,fCommonHistsResults2nd, fCommonHistsResults4th,fCommonHistsResults6th,fCommonHistsResults8th);
7e58a232 3852
e085f1a9 3853 finalResults.Calculate();
3854
3855
3856 /*
3857
3858
3859 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3860 // !!!! to be removed !!!!
3861
3862 TCanvas* qvectorPlot = new TCanvas("qvectorPlot","Q-vector Plot",1000,1000);
3863
3864 qvectorPlot->cd(1);
3865
3866 TH1D* style = new TH1D("style","Q-vectors",100,-244,244);
3867 (style->GetYaxis())->SetRangeUser(-244,244);
3868
3869 style->Draw();
3870
3871 Int_t nBins=fQvectorForEachEventX->GetNbinsX();
3872 Double_t qxxx=0.,qyyy=0.;
3873 //cout<<"nBins = "<<nBins<<endl;
3874 //cout<<fQvectorForEachEventX->GetBinEntries(4)<<endl;
3875 //cout<<fQvectorForEachEventY->GetBinEntries(4)<<endl;
3876
3877 for(Int_t b=1;b<nBins+1;b++)
3878 {
3879 if(fQvectorForEachEventX->GetBinEntries(b)==1 && fQvectorForEachEventY->GetBinEntries(b)==1)
3880 {
3881 qxxx=fQvectorForEachEventX->GetBinContent(b);
3882 qyyy=fQvectorForEachEventY->GetBinContent(b);
3883 //cout<<qxxx<<" "<<qyyy<<endl;
3884 TArrow *qvector = new TArrow(0.0,0.0,qxxx,qyyy,0.0144,"|>");
3885 qvector->SetAngle(40);
3886 qvector->SetLineWidth(2);
3887 qvector->Draw("");
3888 }
3889 }
3890
3891 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
3892
3d824203 3893 */
e085f1a9 3894
bc92c0cb 3895}
3896
1315fe58 3897//================================================================================================================
bc92c0cb 3898
4057ba99 3899void AliFlowAnalysisWithQCumulants::WriteHistograms(TString outputFileName)
1315fe58 3900{
3901 //store the final results in output .root file
4057ba99 3902 TFile *output = new TFile(outputFileName.Data(),"RECREATE");
7a2c2652 3903 output->WriteObject(fHistList, "cobjQC","SingleKey");
1315fe58 3904 delete output;
3905}
bc92c0cb 3906
1315fe58 3907//================================================================================================================
dee1e0e0 3908
4057ba99 3909
3910