]>
Commit | Line | Data |
---|---|---|
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" |
bc92c0cb | 32 | #include "TParticle.h" |
33 | #include "TRandom3.h" | |
1315fe58 | 34 | #include "TStyle.h" |
bc92c0cb | 35 | #include "TProfile.h" |
36 | #include "TProfile2D.h" | |
37 | #include "TProfile3D.h" | |
1dfa3c16 | 38 | #include "TMath.h" |
bc92c0cb | 39 | #include "AliFlowEventSimple.h" |
40 | #include "AliFlowTrackSimple.h" | |
41 | #include "AliFlowAnalysisWithQCumulants.h" | |
1315fe58 | 42 | #include "AliQCumulantsFunctions.h" |
bc92c0cb | 43 | |
44 | #include "TRandom.h" | |
45 | ||
46 | class TH1; | |
47 | class TGraph; | |
48 | class TPave; | |
49 | class TLatex; | |
50 | class TMarker; | |
51 | class TRandom3; | |
52 | class TObjArray; | |
53 | class TList; | |
54 | class TCanvas; | |
55 | class TSystem; | |
56 | class TROOT; | |
57 | class AliFlowVector; | |
58 | class TVector; | |
59 | ||
60 | //================================================================================================================ | |
61 | ||
62 | ClassImp(AliFlowAnalysisWithQCumulants) | |
63 | ||
64 | AliFlowAnalysisWithQCumulants::AliFlowAnalysisWithQCumulants(): | |
65 | fTrack(NULL), | |
66 | fHistList(NULL), | |
1315fe58 | 67 | fAvMultIntFlowQC(NULL), |
bc92c0cb | 68 | fQvectorComponents(NULL), |
1315fe58 | 69 | fIntFlowResultsQC(NULL), |
70 | fDiffFlowResults2ndOrderQC(NULL), | |
71 | fDiffFlowResults4thOrderQC(NULL), | |
72 | fCovariances(NULL), | |
bc92c0cb | 73 | fQCorrelations(NULL), |
8842fb2b | 74 | fQProduct(NULL), |
bc92c0cb | 75 | fDirectCorrelations(NULL), |
1dfa3c16 | 76 | fPtReq1nRP(NULL), |
77 | fPtImq1nRP(NULL), | |
78 | fPtReq2nRP(NULL), | |
79 | fPtImq2nRP(NULL), | |
80 | f2PerPtBin1n1nRP(NULL), | |
81 | f2PerPtBin2n2nRP(NULL), | |
82 | f3PerPtBin2n1n1nRP(NULL), | |
83 | f3PerPtBin1n1n2nRP(NULL), | |
84 | f4PerPtBin1n1n1n1nRP(NULL), | |
85 | fEtaReq1nRP(NULL), | |
86 | fEtaImq1nRP(NULL), | |
87 | fEtaReq2nRP(NULL), | |
88 | fEtaImq2nRP(NULL), | |
89 | f2PerEtaBin1n1nRP(NULL), | |
90 | f2PerEtaBin2n2nRP(NULL), | |
91 | f3PerEtaBin2n1n1nRP(NULL), | |
92 | f3PerEtaBin1n1n2nRP(NULL), | |
93 | f4PerEtaBin1n1n1n1nRP(NULL), | |
94 | fPtReq1nPOI(NULL), | |
95 | fPtImq1nPOI(NULL), | |
96 | fPtReq2nPOI(NULL), | |
97 | fPtImq2nPOI(NULL), | |
98 | f2PerPtBin1n1nPOI(NULL), | |
99 | f2PerPtBin2n2nPOI(NULL), | |
100 | f3PerPtBin2n1n1nPOI(NULL), | |
101 | f3PerPtBin1n1n2nPOI(NULL), | |
102 | f4PerPtBin1n1n1n1nPOI(NULL), | |
103 | fEtaReq1nPOI(NULL), | |
104 | fEtaImq1nPOI(NULL), | |
105 | fEtaReq2nPOI(NULL), | |
106 | fEtaImq2nPOI(NULL), | |
107 | f2PerEtaBin1n1nPOI(NULL), | |
108 | f2PerEtaBin2n2nPOI(NULL), | |
109 | f3PerEtaBin2n1n1nPOI(NULL), | |
110 | f3PerEtaBin1n1n2nPOI(NULL), | |
111 | f4PerEtaBin1n1n1n1nPOI(NULL), | |
cb308e83 | 112 | fCommonHists2nd(NULL), |
113 | fCommonHists4th(NULL), | |
114 | fCommonHists6th(NULL), | |
115 | fCommonHists8th(NULL), | |
8842fb2b | 116 | fCommonHistsResults2nd(NULL), |
117 | fCommonHistsResults4th(NULL), | |
118 | fCommonHistsResults6th(NULL), | |
119 | fCommonHistsResults8th(NULL), | |
52021ae2 | 120 | f2pDistribution(NULL), |
121 | f4pDistribution(NULL), | |
122 | f6pDistribution(NULL), | |
5e838eeb | 123 | f8pDistribution(NULL), |
8842fb2b | 124 | fnBinsPt(0), |
125 | fPtMin(0), | |
1dfa3c16 | 126 | fPtMax(0), |
127 | fnBinsEta(0), | |
128 | fEtaMin(0), | |
129 | fEtaMax(0) | |
bc92c0cb | 130 | { |
131 | //constructor | |
132 | fHistList = new TList(); | |
8842fb2b | 133 | |
134 | fnBinsPt = AliFlowCommonConstants::GetNbinsPt(); | |
135 | fPtMin = AliFlowCommonConstants::GetPtMin(); | |
136 | fPtMax = AliFlowCommonConstants::GetPtMax(); | |
137 | ||
1dfa3c16 | 138 | fnBinsEta = AliFlowCommonConstants::GetNbinsEta(); |
139 | fEtaMin = AliFlowCommonConstants::GetEtaMin(); | |
140 | fEtaMax = AliFlowCommonConstants::GetEtaMax(); | |
bc92c0cb | 141 | } |
142 | ||
143 | AliFlowAnalysisWithQCumulants::~AliFlowAnalysisWithQCumulants() | |
144 | { | |
145 | //desctructor | |
146 | delete fHistList; | |
147 | } | |
148 | ||
149 | //================================================================================================================ | |
150 | ||
151 | void AliFlowAnalysisWithQCumulants::CreateOutputObjects() | |
152 | { | |
153 | //various output histograms | |
1dfa3c16 | 154 | |
bc92c0cb | 155 | //avarage multiplicity |
1315fe58 | 156 | fAvMultIntFlowQC = new TProfile("fAvMultIntFlowQC","Average Multiplicity",1,0,1,"s"); |
157 | fAvMultIntFlowQC->SetXTitle(""); | |
158 | fAvMultIntFlowQC->SetYTitle(""); | |
159 | fAvMultIntFlowQC->SetLabelSize(0.06); | |
160 | fAvMultIntFlowQC->SetMarkerStyle(25); | |
161 | fAvMultIntFlowQC->SetLabelOffset(0.01); | |
162 | (fAvMultIntFlowQC->GetXaxis())->SetBinLabel(1,"Average Multiplicity"); | |
163 | fHistList->Add(fAvMultIntFlowQC); | |
bc92c0cb | 164 | |
165 | //Q-vector stuff | |
166 | fQvectorComponents = new TProfile("fQvectorComponents","Avarage of Q-vector components",44,0.,44.,"s"); | |
167 | fQvectorComponents->SetXTitle(""); | |
168 | fQvectorComponents->SetYTitle(""); | |
169 | //fHistList->Add(fQvectorComponents); | |
170 | ||
171 | //final results for integrated flow from Q-cumulants | |
1315fe58 | 172 | fIntFlowResultsQC = new TH1D("fIntFlowResultsQC","Integrated Flow from Q-cumulants",4,0,4); |
173 | //fIntFlowResults->SetXTitle(""); | |
174 | //fIntFlowResultsQC->SetYTitle("Integrated Flow"); | |
175 | fIntFlowResultsQC->SetLabelSize(0.06); | |
52021ae2 | 176 | //fIntFlowResultsQC->SetTickLength(1); |
1315fe58 | 177 | fIntFlowResultsQC->SetMarkerStyle(25); |
178 | (fIntFlowResultsQC->GetXaxis())->SetBinLabel(1,"v_{n}{2}"); | |
179 | (fIntFlowResultsQC->GetXaxis())->SetBinLabel(2,"v_{n}{4}"); | |
180 | (fIntFlowResultsQC->GetXaxis())->SetBinLabel(3,"v_{n}{6}"); | |
181 | (fIntFlowResultsQC->GetXaxis())->SetBinLabel(4,"v_{n}{8}"); | |
1315fe58 | 182 | fHistList->Add(fIntFlowResultsQC); |
183 | ||
bc92c0cb | 184 | //final results for differential flow from 2nd order Q-cumulant |
8842fb2b | 185 | fDiffFlowResults2ndOrderQC = new TH1D("fDiffFlowResults2ndOrderQC","Differential Flow from 2nd Order Q-cumulant",fnBinsPt,fPtMin,fPtMax); |
1315fe58 | 186 | fDiffFlowResults2ndOrderQC->SetXTitle("p_{t} [GeV]"); |
187 | //fDiffFlowResults2ndOrderQC->SetYTitle("Differential Flow"); | |
188 | fHistList->Add(fDiffFlowResults2ndOrderQC); | |
bc92c0cb | 189 | |
190 | //final results for differential flow from 4th order Q-cumulant | |
8842fb2b | 191 | fDiffFlowResults4thOrderQC = new TH1D("fDiffFlowResults4thOrderQC","Differential Flow from 4th Order Q-cumulant",fnBinsPt,fPtMin,fPtMax); |
1315fe58 | 192 | fDiffFlowResults4thOrderQC->SetXTitle("p_{t} [GeV]"); |
193 | //fDiffFlowResults4thOrderQC->SetYTitle("Differential Flow"); | |
194 | fHistList->Add(fDiffFlowResults4thOrderQC); | |
195 | ||
196 | //final results for covariances (1st bin: <2*4>-<2>*<4>, 2nd bin: <2*6>-<2>*<6>, ...) | |
197 | fCovariances = new TH1D("fCovariances","Covariances",6,0,6); | |
198 | //fCovariances->SetXTitle(""); | |
199 | //fCovariances->SetYTitle("<covariance>"); | |
200 | fCovariances->SetLabelSize(0.04); | |
201 | fCovariances->SetTickLength(1); | |
202 | fCovariances->SetMarkerStyle(25); | |
203 | (fCovariances->GetXaxis())->SetBinLabel(1,"Cov(2,4)"); | |
204 | (fCovariances->GetXaxis())->SetBinLabel(2,"Cov(2,6)"); | |
205 | (fCovariances->GetXaxis())->SetBinLabel(3,"Cov(2,8)"); | |
206 | (fCovariances->GetXaxis())->SetBinLabel(4,"Cov(4,6)"); | |
207 | (fCovariances->GetXaxis())->SetBinLabel(5,"Cov(4,8)"); | |
208 | (fCovariances->GetXaxis())->SetBinLabel(6,"Cov(6,8)"); | |
209 | fHistList->Add(fCovariances); | |
bc92c0cb | 210 | |
211 | //multi-particle correlations calculated from Q-vectors | |
dee1e0e0 | 212 | fQCorrelations = new TProfile("fQCorrelations","multi-particle correlations from Q-vectors",32,0,32,"s"); |
1315fe58 | 213 | //fQCorrelations->SetXTitle("correlations"); |
214 | //fQCorrelations->SetYTitle(""); | |
215 | fQCorrelations->SetTickLength(-0.01,"Y"); | |
216 | fQCorrelations->SetMarkerStyle(25); | |
217 | fQCorrelations->SetLabelSize(0.03); | |
218 | fQCorrelations->SetLabelOffset(0.01,"Y"); | |
dee1e0e0 | 219 | |
1315fe58 | 220 | (fQCorrelations->GetXaxis())->SetBinLabel(1,"<<2>>_{n|n}"); |
221 | (fQCorrelations->GetXaxis())->SetBinLabel(2,"<<2>>_{2n|2n}"); | |
222 | (fQCorrelations->GetXaxis())->SetBinLabel(3,"<<2>>_{3n|3n}"); | |
223 | (fQCorrelations->GetXaxis())->SetBinLabel(4,"<<2>>_{4n|4n}"); | |
dee1e0e0 | 224 | |
1315fe58 | 225 | (fQCorrelations->GetXaxis())->SetBinLabel(6,"<<3>>_{2n|n,n}"); |
226 | (fQCorrelations->GetXaxis())->SetBinLabel(7,"<<3>>_{3n|2n,n}"); | |
227 | (fQCorrelations->GetXaxis())->SetBinLabel(8,"<<3>>_{4n|2n,2n}"); | |
228 | (fQCorrelations->GetXaxis())->SetBinLabel(9,"<<3>>_{4n|3n,n}"); | |
dee1e0e0 | 229 | |
1315fe58 | 230 | (fQCorrelations->GetXaxis())->SetBinLabel(11,"<<4>>_{n,n|n,n}"); |
231 | (fQCorrelations->GetXaxis())->SetBinLabel(12,"<<4>>_{2n,n|2n,n}"); | |
dee1e0e0 | 232 | (fQCorrelations->GetXaxis())->SetBinLabel(13,"<<4>>_{2n,2n|2n,2n}"); |
233 | (fQCorrelations->GetXaxis())->SetBinLabel(14,"<<4>>_{3n|n,n,n}"); | |
234 | (fQCorrelations->GetXaxis())->SetBinLabel(15,"<<4>>_{3n,n|3n,n}"); | |
235 | (fQCorrelations->GetXaxis())->SetBinLabel(16,"<<4>>_{3n,n|2n,2n}"); | |
236 | (fQCorrelations->GetXaxis())->SetBinLabel(17,"<<4>>_{4n|2n,n,n}"); | |
237 | ||
238 | (fQCorrelations->GetXaxis())->SetBinLabel(19,"<<5>>_{2n|n,n,n,n}"); | |
239 | (fQCorrelations->GetXaxis())->SetBinLabel(20,"<<5>>_{2n,2n|2n,n,n}"); | |
240 | (fQCorrelations->GetXaxis())->SetBinLabel(21,"<<5>>_{3n,n|2n,n,n}"); | |
241 | (fQCorrelations->GetXaxis())->SetBinLabel(22,"<<5>>_{4n|n,n,n,n}"); | |
242 | ||
243 | (fQCorrelations->GetXaxis())->SetBinLabel(24,"<<6>>_{n,n,n|n,n,n}"); | |
244 | (fQCorrelations->GetXaxis())->SetBinLabel(25,"<<6>>_{2n,n,n|2n,n,n}"); | |
245 | (fQCorrelations->GetXaxis())->SetBinLabel(26,"<<6>>_{2n,2n|n,n,n,n}"); | |
246 | (fQCorrelations->GetXaxis())->SetBinLabel(27,"<<6>>_{3n,n|n,n,n,n}"); | |
247 | ||
248 | (fQCorrelations->GetXaxis())->SetBinLabel(29,"<<7>>_{2n,n,n|n,n,n,n}"); | |
249 | ||
250 | (fQCorrelations->GetXaxis())->SetBinLabel(31,"<<8>>_{n,n,n,n|n,n,n,n}"); | |
251 | ||
bc92c0cb | 252 | fHistList->Add(fQCorrelations); |
253 | ||
8842fb2b | 254 | //average products |
255 | fQProduct = new TProfile("fQProduct","average of products",6,0,6,"s"); | |
256 | fQProduct->SetTickLength(-0.01,"Y"); | |
257 | fQProduct->SetMarkerStyle(25); | |
258 | fQProduct->SetLabelSize(0.03); | |
259 | fQProduct->SetLabelOffset(0.01,"Y"); | |
260 | (fQProduct->GetXaxis())->SetBinLabel(1,"<<2*4>>"); | |
261 | (fQProduct->GetXaxis())->SetBinLabel(2,"<<2*6>>"); | |
262 | (fQProduct->GetXaxis())->SetBinLabel(3,"<<2*8>>"); | |
263 | (fQProduct->GetXaxis())->SetBinLabel(4,"<<4*6>>"); | |
264 | (fQProduct->GetXaxis())->SetBinLabel(5,"<<4*8>>"); | |
265 | (fQProduct->GetXaxis())->SetBinLabel(6,"<<6*8>>"); | |
266 | fQProduct->SetXTitle(""); | |
267 | fQProduct->SetYTitle(""); | |
268 | fHistList->Add(fQProduct); | |
bc92c0cb | 269 | |
270 | //multi-particle correlations calculated with nested loops (0..40 integrated flow; 40..80 differential flow) | |
271 | fDirectCorrelations = new TProfile("fDirectCorrelations","multi-particle correlations with nested loops",80,0,80,"s"); | |
272 | fDirectCorrelations->SetXTitle(""); | |
273 | fDirectCorrelations->SetYTitle("correlations"); | |
274 | fHistList->Add(fDirectCorrelations); | |
275 | ||
1dfa3c16 | 276 | //fPtReq1nRP |
277 | fPtReq1nRP = new TProfile("fPtReq1nRP","Re[q_n]",fnBinsPt,fPtMin,fPtMax,"s"); | |
278 | fPtReq1nRP->SetXTitle("p_{t} [GeV]"); | |
279 | fPtReq1nRP->SetYTitle("Re[q_n]"); | |
280 | //fHistList->Add(fPtReq1nRP); | |
281 | ||
282 | //fPtImq1nRP | |
283 | fPtImq1nRP = new TProfile("fPtImq1nRP","Im[q_n]",fnBinsPt,fPtMin,fPtMax,"s"); | |
284 | fPtImq1nRP->SetXTitle("p_{t} [GeV]"); | |
285 | fPtImq1nRP->SetYTitle("Im[q_n]"); | |
286 | //fHistList->Add(fPtImq1nRP); | |
287 | ||
288 | //fPtReq2nRP | |
289 | fPtReq2nRP = new TProfile("fPtReq2nRP","Re[q_2n]",fnBinsPt,fPtMin,fPtMax,"s"); | |
290 | fPtReq2nRP->SetXTitle("p_{t} [GeV]"); | |
291 | fPtReq2nRP->SetYTitle("Im[D]"); | |
292 | //fHistList->Add(fPtReq2nRP); | |
293 | ||
294 | //fPtImq2nRP | |
295 | fPtImq2nRP = new TProfile("fPtImq2nRP","Im[q_2n]",fnBinsPt,fPtMin,fPtMax,"s"); | |
296 | fPtImq2nRP->SetXTitle("p_{t} [GeV]"); | |
297 | fPtImq2nRP->SetYTitle("Im[q_2n]"); | |
298 | //fHistList->Add(fPtImq2nRP); | |
299 | ||
300 | //f2PerPtBin1n1nRP | |
301 | f2PerPtBin1n1nRP = new TProfile("f2PerPtBin1n1nRP","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s"); | |
302 | f2PerPtBin1n1nRP->SetXTitle("p_{t} [GeV]"); | |
303 | //f2PerPtBin1n1n->SetYTitle("<2'>_{n|n}"); | |
304 | fHistList->Add(f2PerPtBin1n1nRP); | |
305 | ||
306 | //f2PerPtBin2n2nRP | |
307 | f2PerPtBin2n2nRP = new TProfile("f2PerPtBin2n2nRP","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s"); | |
308 | f2PerPtBin2n2nRP->SetXTitle("p_{t} [GeV]"); | |
309 | //f2PerPtBin2n2nRP->SetYTitle("<2'>_{2n|2n}"); | |
310 | fHistList->Add(f2PerPtBin2n2nRP); | |
311 | ||
312 | //f3PerPtBin2n1n1nRP | |
313 | f3PerPtBin2n1n1nRP = new TProfile("f3PerPtBin2n1n1nRP","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s"); | |
314 | f3PerPtBin2n1n1nRP->SetXTitle("p_{t} [GeV]"); | |
315 | //f3PerPtBin2n1n1nRP->SetYTitle("<3'>_{2n|n,n}"); | |
316 | fHistList->Add(f3PerPtBin2n1n1nRP); | |
317 | ||
318 | //f3PerPtBin1n1n2nRP | |
319 | f3PerPtBin1n1n2nRP = new TProfile("f3PerPtBin1n1n2nRP","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s"); | |
320 | f3PerPtBin1n1n2nRP->SetXTitle("p_{t} [GeV]"); | |
321 | //f3PerPtBin1n1n2nRP->SetYTitle("<3'>_{n,n|2n}"); | |
322 | fHistList->Add(f3PerPtBin1n1n2nRP); | |
323 | ||
324 | //f4PerPtBin1n1n1n1nRP | |
325 | f4PerPtBin1n1n1n1nRP = new TProfile("f4PerPtBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s"); | |
326 | f4PerPtBin1n1n1n1nRP->SetXTitle("p_{t} [GeV]"); | |
327 | //f4PerPtBin1n1n1n1nRP->SetYTitle("<4'>_{n,n|n,n}"); | |
328 | fHistList->Add(f4PerPtBin1n1n1n1nRP); | |
329 | ||
330 | //fEtaReq1nRP | |
331 | fEtaReq1nRP = new TProfile("fEtaReq1nRP","Re[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
332 | fEtaReq1nRP->SetXTitle("#eta"); | |
333 | fEtaReq1nRP->SetYTitle("Re[q_n]"); | |
334 | fHistList->Add(fEtaReq1nRP); | |
335 | ||
336 | //fEtaImq1nRP | |
337 | fEtaImq1nRP = new TProfile("fEtaImq1nRP","Im[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
338 | fEtaImq1nRP->SetXTitle("#eta"); | |
339 | fEtaImq1nRP->SetYTitle("Im[q_n]"); | |
340 | //fHistList->Add(fEtaImq1nRP); | |
341 | ||
342 | //fEtaReq2nRP | |
343 | fEtaReq2nRP = new TProfile("fEtaReq2nRP","Re[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
344 | fEtaReq2nRP->SetXTitle("#eta"); | |
345 | fEtaReq2nRP->SetYTitle("Im[D]"); | |
346 | //fHistList->Add(fEtaReq2nRP); | |
347 | ||
348 | //fEtaImq2nRP | |
349 | fEtaImq2nRP = new TProfile("fEtaImq2nRP","Im[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
350 | fEtaImq2nRP->SetXTitle("#eta"); | |
351 | fEtaImq2nRP->SetYTitle("Im[q_2n]"); | |
352 | //fHistList->Add(fEtaImq2nRP); | |
353 | ||
354 | //f2PerEtaBin1n1nRP | |
355 | f2PerEtaBin1n1nRP = new TProfile("f2PerEtaBin1n1nRP","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
356 | f2PerEtaBin1n1nRP->SetXTitle("#eta"); | |
357 | //f2PerEtaBin1n1nRP->SetYTitle("<2'>_{n|n}"); | |
358 | fHistList->Add(f2PerEtaBin1n1nRP); | |
359 | ||
360 | //f2PerEtaBin2n2nRP | |
361 | f2PerEtaBin2n2nRP = new TProfile("f2PerEtaBin2n2nRP","<2'>_{2n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
362 | f2PerEtaBin2n2nRP->SetXTitle("#eta"); | |
363 | //f2PerEtaBin2n2nRP->SetYTitle("<2'>_{2n|2n}"); | |
364 | fHistList->Add(f2PerEtaBin2n2nRP); | |
365 | ||
366 | //f3PerEtaBin2n1n1nRP | |
367 | f3PerEtaBin2n1n1nRP = new TProfile("f3PerEtaBin2n1n1nRP","<3'>_{2n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
368 | f3PerEtaBin2n1n1nRP->SetXTitle("#eta"); | |
369 | //f3PerEtaBin2n1n1nRP->SetYTitle("<3'>_{2n|n,n}"); | |
370 | fHistList->Add(f3PerEtaBin2n1n1nRP); | |
371 | ||
372 | //f3PerEtaBin1n1n2nRP | |
373 | f3PerEtaBin1n1n2nRP = new TProfile("f3PerEtaBin1n1n2RP","<3'>_{n,n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
374 | f3PerEtaBin1n1n2nRP->SetXTitle("#eta"); | |
375 | //f3PerEtaBin1n1n2n->SetYTitle("<3'>_{n,n|2n}"); | |
376 | fHistList->Add(f3PerEtaBin1n1n2nRP); | |
377 | ||
378 | //f4PerEtaBin1n1n1n1nRP | |
379 | f4PerEtaBin1n1n1n1nRP = new TProfile("f4PerEtaBin1n1n1n1nRP","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
380 | f4PerEtaBin1n1n1n1nRP->SetXTitle("#eta"); | |
381 | //f4PerEtaBin1n1n1n1nRP->SetYTitle("<4'>_{n,n|n,n}"); | |
382 | fHistList->Add(f4PerEtaBin1n1n1n1nRP); | |
383 | ||
384 | //fPtReq1nPOI | |
385 | fPtReq1nPOI = new TProfile("fPtReq1nPOI","Re[q_n]",fnBinsPt,fPtMin,fPtMax,"s"); | |
386 | fPtReq1nPOI->SetXTitle("p_{t} [GeV]"); | |
387 | fPtReq1nPOI->SetYTitle("Re[q_n]"); | |
388 | //fHistList->Add(fPtReq1nPOI); | |
389 | ||
390 | //fPtImq1nPOI | |
391 | fPtImq1nPOI = new TProfile("fPtImq1nPOI","Im[q_n]",fnBinsPt,fPtMin,fPtMax,"s"); | |
392 | fPtImq1nPOI->SetXTitle("p_{t} [GeV]"); | |
393 | fPtImq1nPOI->SetYTitle("Im[q_n]"); | |
394 | //fHistList->Add(fPtImq1nPOI); | |
395 | ||
396 | //fPtReq2nPOI | |
397 | fPtReq2nPOI = new TProfile("fPtReq2nPOI","Re[q_2n]",fnBinsPt,fPtMin,fPtMax,"s"); | |
398 | fPtReq2nPOI->SetXTitle("p_{t} [GeV]"); | |
399 | fPtReq2nPOI->SetYTitle("Im[D]"); | |
400 | //fHistList->Add(fPtReq2nPOI); | |
401 | ||
402 | //fPtImq2nPOI | |
403 | fPtImq2nPOI = new TProfile("fPtImq2nPOI","Im[q_2n]",fnBinsPt,fPtMin,fPtMax,"s"); | |
404 | fPtImq2nPOI->SetXTitle("p_{t} [GeV]"); | |
405 | fPtImq2nPOI->SetYTitle("Im[q_2n]"); | |
406 | //fHistList->Add(fPtImq2nPOI); | |
407 | ||
408 | //f2PerPtBin1n1nPOI | |
409 | f2PerPtBin1n1nPOI = new TProfile("f2PerPtBin1n1nPOI","<2'>_{n|n}",fnBinsPt,fPtMin,fPtMax,"s"); | |
410 | f2PerPtBin1n1nPOI->SetXTitle("p_{t} [GeV]"); | |
411 | //f2PerPtBin1n1n->SetYTitle("<2'>_{n|n}"); | |
412 | fHistList->Add(f2PerPtBin1n1nPOI); | |
413 | ||
414 | //f2PerPtBin2n2nPOI | |
415 | f2PerPtBin2n2nPOI = new TProfile("f2PerPtBin2n2nPOI","<2'>_{2n|2n}",fnBinsPt,fPtMin,fPtMax,"s"); | |
416 | f2PerPtBin2n2nPOI->SetXTitle("p_{t} [GeV]"); | |
417 | //f2PerPtBin2n2nPOI->SetYTitle("<2'>_{2n|2n}"); | |
418 | fHistList->Add(f2PerPtBin2n2nPOI); | |
419 | ||
420 | //f3PerPtBin2n1n1nPOI | |
421 | f3PerPtBin2n1n1nPOI = new TProfile("f3PerPtBin2n1n1nPOI","<3'>_{2n|n,n}",fnBinsPt,fPtMin,fPtMax,"s"); | |
422 | f3PerPtBin2n1n1nPOI->SetXTitle("p_{t} [GeV]"); | |
423 | //f3PerPtBin2n1n1nPOI->SetYTitle("<3'>_{2n|n,n}"); | |
424 | fHistList->Add(f3PerPtBin2n1n1nPOI); | |
425 | ||
426 | //f3PerPtBin1n1n2nPOI | |
427 | f3PerPtBin1n1n2nPOI = new TProfile("f3PerPtBin1n1n2nPOI","<3'>_{n,n|2n}",fnBinsPt,fPtMin,fPtMax,"s"); | |
428 | f3PerPtBin1n1n2nPOI->SetXTitle("p_{t} [GeV]"); | |
429 | //f3PerPtBin1n1n2nPOI->SetYTitle("<3'>_{n,n|2n}"); | |
430 | fHistList->Add(f3PerPtBin1n1n2nPOI); | |
431 | ||
432 | //f4PerPtBin1n1n1n1nPOI | |
433 | f4PerPtBin1n1n1n1nPOI = new TProfile("f4PerPtBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsPt,fPtMin,fPtMax,"s"); | |
434 | f4PerPtBin1n1n1n1nPOI->SetXTitle("p_{t} [GeV]"); | |
435 | //f4PerPtBin1n1n1n1nPOI->SetYTitle("<4'>_{n,n|n,n}"); | |
436 | fHistList->Add(f4PerPtBin1n1n1n1nPOI); | |
437 | ||
438 | //fEtaReq1nPOI | |
439 | fEtaReq1nPOI = new TProfile("fEtaReq1nPOI","Re[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
440 | fEtaReq1nPOI->SetXTitle("#eta"); | |
441 | fEtaReq1nPOI->SetYTitle("Re[q_n]"); | |
442 | fHistList->Add(fEtaReq1nPOI); | |
443 | ||
444 | //fEtaImq1nPOI | |
445 | fEtaImq1nPOI = new TProfile("fEtaImq1nPOI","Im[q_n]",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
446 | fEtaImq1nPOI->SetXTitle("#eta"); | |
447 | fEtaImq1nPOI->SetYTitle("Im[q_n]"); | |
448 | //fHistList->Add(fEtaImq1nPOI); | |
449 | ||
450 | //fEtaReq2nPOI | |
451 | fEtaReq2nPOI = new TProfile("fEtaReq2nPOI","Re[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
452 | fEtaReq2nPOI->SetXTitle("#eta"); | |
453 | fEtaReq2nPOI->SetYTitle("Im[D]"); | |
454 | //fHistList->Add(fEtaReq2nPOI); | |
455 | ||
456 | //fEtaImq2nPOI | |
457 | fEtaImq2nPOI = new TProfile("fEtaImq2nPOI","Im[q_2n]",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
458 | fEtaImq2nPOI->SetXTitle("#eta"); | |
459 | fEtaImq2nPOI->SetYTitle("Im[q_2n]"); | |
460 | //fHistList->Add(fEtaImq2nPOI); | |
461 | ||
462 | //f2PerEtaBin1n1nPOI | |
463 | f2PerEtaBin1n1nPOI = new TProfile("f2PerEtaBin1n1nPOI","<2'>_{n|n}",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
464 | f2PerEtaBin1n1nPOI->SetXTitle("#eta"); | |
465 | //f2PerEtaBin1n1nPOI->SetYTitle("<2'>_{n|n}"); | |
466 | fHistList->Add(f2PerEtaBin1n1nPOI); | |
467 | ||
468 | //f2PerEtaBin2n2nPOI | |
469 | f2PerEtaBin2n2nPOI = new TProfile("f2PerEtaBin2n2nPOI","<2'>_{2n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
470 | f2PerEtaBin2n2nPOI->SetXTitle("#eta"); | |
471 | //f2PerEtaBin2n2nPOI->SetYTitle("<2'>_{2n|2n}"); | |
472 | fHistList->Add(f2PerEtaBin2n2nPOI); | |
473 | ||
474 | //f3PerEtaBin2n1n1nPOI | |
475 | f3PerEtaBin2n1n1nPOI = new TProfile("f3PerEtaBin2n1n1nPOI","<3'>_{2n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
476 | f3PerEtaBin2n1n1nPOI->SetXTitle("#eta"); | |
477 | //f3PerEtaBin2n1n1nPOI->SetYTitle("<3'>_{2n|n,n}"); | |
478 | fHistList->Add(f3PerEtaBin2n1n1nPOI); | |
479 | ||
480 | //f3PerEtaBin1n1n2nPOI | |
481 | f3PerEtaBin1n1n2nPOI = new TProfile("f3PerEtaBin1n1n2POI","<3'>_{n,n|2n}",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
482 | f3PerEtaBin1n1n2nPOI->SetXTitle("#eta"); | |
483 | //f3PerEtaBin1n1n2n->SetYTitle("<3'>_{n,n|2n}"); | |
484 | fHistList->Add(f3PerEtaBin1n1n2nPOI); | |
485 | ||
486 | //f4PerEtaBin1n1n1n1nPOI | |
487 | f4PerEtaBin1n1n1n1nPOI = new TProfile("f4PerEtaBin1n1n1n1nPOI","<4'>_{n,n|n,n}",fnBinsEta,fEtaMin,fEtaMax,"s"); | |
488 | f4PerEtaBin1n1n1n1nPOI->SetXTitle("#eta"); | |
489 | //f4PerEtaBin1n1n1n1nPOI->SetYTitle("<4'>_{n,n|n,n}"); | |
490 | fHistList->Add(f4PerEtaBin1n1n1n1nPOI); | |
bc92c0cb | 491 | |
cb308e83 | 492 | //common control histogram (2nd order) |
493 | fCommonHists2nd = new AliFlowCommonHist("AliFlowCommonHist2ndOrderQC"); | |
494 | fHistList->Add(fCommonHists2nd); | |
1315fe58 | 495 | |
cb308e83 | 496 | //common control histogram (4th order) |
497 | fCommonHists4th = new AliFlowCommonHist("AliFlowCommonHist4thOrderQC"); | |
498 | fHistList->Add(fCommonHists4th); | |
499 | ||
500 | //common control histogram (6th order) | |
501 | fCommonHists6th = new AliFlowCommonHist("AliFlowCommonHist6thOrderQC"); | |
502 | fHistList->Add(fCommonHists6th); | |
503 | ||
504 | //common control histogram (8th order) | |
505 | fCommonHists8th = new AliFlowCommonHist("AliFlowCommonHist8thOrderQC"); | |
506 | fHistList->Add(fCommonHists8th); | |
507 | ||
8842fb2b | 508 | //common histograms for final results (2nd order) |
1315fe58 | 509 | fCommonHistsResults2nd = new AliFlowCommonHistResults("AliFlowCommonHistResults2ndOrderQC"); |
510 | fHistList->Add(fCommonHistsResults2nd); | |
511 | ||
8842fb2b | 512 | //common histograms for final results (4th order) |
1315fe58 | 513 | fCommonHistsResults4th = new AliFlowCommonHistResults("AliFlowCommonHistResults4thOrderQC"); |
514 | fHistList->Add(fCommonHistsResults4th); | |
515 | ||
8842fb2b | 516 | //common histograms for final results (6th order) |
1315fe58 | 517 | fCommonHistsResults6th = new AliFlowCommonHistResults("AliFlowCommonHistResults6thOrderQC"); |
518 | fHistList->Add(fCommonHistsResults6th); | |
519 | ||
8842fb2b | 520 | //common histograms for final results (8th order) |
1315fe58 | 521 | fCommonHistsResults8th = new AliFlowCommonHistResults("AliFlowCommonHistResults8thOrderQC"); |
522 | fHistList->Add(fCommonHistsResults8th); | |
1315fe58 | 523 | |
524 | //weighted <2>_{n|n} distribution | |
52021ae2 | 525 | f2pDistribution = new TH1D("f2pDistribution","<2>_{n|n} distribution",100000,-0.02,0.1); |
526 | f2pDistribution->SetXTitle("<2>_{n|n}"); | |
527 | f2pDistribution->SetYTitle("Counts"); | |
528 | fHistList->Add(f2pDistribution); | |
1315fe58 | 529 | |
530 | //weighted <4>_{n,n|n,n} distribution | |
52021ae2 | 531 | f4pDistribution = new TH1D("f4pDistribution","<4>_{n,n|n,n} distribution",100000,-0.00025,0.002); |
532 | f4pDistribution->SetXTitle("<4>_{n,n|n,n}"); | |
533 | f4pDistribution->SetYTitle("Counts"); | |
534 | fHistList->Add(f4pDistribution); | |
1315fe58 | 535 | |
536 | //weighted <6>_{n,n,n|n,n,n} distribution | |
52021ae2 | 537 | f6pDistribution = new TH1D("f6pDistribution","<6>_{n,n,n|n,n,n} distribution",100000,-0.000005,0.000025); |
538 | f6pDistribution->SetXTitle("<6>_{n,n,n|n,n,n}"); | |
539 | f6pDistribution->SetYTitle("Counts"); | |
540 | fHistList->Add(f6pDistribution); | |
bc92c0cb | 541 | |
5e838eeb | 542 | //weighted <8>_{n,n,n,n|n,n,n,n} distribution |
543 | f8pDistribution = new TH1D("f8pDistribution","<8>_{n,n,n,n|n,n,n,n} distribution",100000,-0.000000001,0.00000001); | |
544 | f8pDistribution->SetXTitle("<8>_{n,n,n,n|n,n,n,n}"); | |
545 | f8pDistribution->SetYTitle("Counts"); | |
546 | fHistList->Add(f8pDistribution); | |
547 | ||
bc92c0cb | 548 | }//end of CreateOutputObjects() |
549 | ||
550 | //================================================================================================================ | |
551 | ||
552 | void AliFlowAnalysisWithQCumulants::Make(AliFlowEventSimple* anEvent) | |
553 | { | |
1dfa3c16 | 554 | //running over data |
1315fe58 | 555 | |
bc92c0cb | 556 | //get the total multiplicity of event: |
1dfa3c16 | 557 | //Int_t nPrim = anEvent->NumberOfTracks();//line needed only for nested loops |
558 | //cout<<"nPrim = "<<nPrim<<endl; | |
bc92c0cb | 559 | |
dee1e0e0 | 560 | //if(nPrim>8&&nPrim<12)//line needed only for nested loops |
561 | //{ //line needed only for nested loops | |
8842fb2b | 562 | |
bc92c0cb | 563 | //get the selected multiplicity (i.e. number of particles used for int. flow): |
564 | //Int_t nEventNSelTracksIntFlow = anEvent->GetEventNSelTracksIntFlow(); | |
565 | ||
566 | Int_t n=2; //int flow harmonic (to be improved) | |
567 | ||
568 | //--------------------------------------------------------------------------------------------------------- | |
569 | //Q-vectors of an event evaluated in harmonics n, 2n, 3n and 4n: | |
1dfa3c16 | 570 | AliFlowVector afvQvector1n, afvQvector2n, afvQvector3n, afvQvector4n; |
bc92c0cb | 571 | |
1dfa3c16 | 572 | afvQvector1n.Set(0.,0.); |
573 | afvQvector1n.SetMult(0); | |
574 | afvQvector1n=anEvent->GetQ(1*n); | |
bc92c0cb | 575 | |
1dfa3c16 | 576 | afvQvector2n.Set(0.,0.); |
577 | afvQvector2n.SetMult(0); | |
578 | afvQvector2n=anEvent->GetQ(2*n); | |
bc92c0cb | 579 | |
1dfa3c16 | 580 | afvQvector3n.Set(0.,0.); |
581 | afvQvector3n.SetMult(0); | |
582 | afvQvector3n=anEvent->GetQ(3*n); | |
bc92c0cb | 583 | |
1dfa3c16 | 584 | afvQvector4n.Set(0.,0.); |
585 | afvQvector4n.SetMult(0); | |
586 | afvQvector4n=anEvent->GetQ(4*n); | |
bc92c0cb | 587 | //--------------------------------------------------------------------------------------------------------- |
588 | ||
589 | //multiplicity (to be improved, because I already have nEventNSelTracksIntFlow and nPrim) | |
1dfa3c16 | 590 | Double_t dMult = afvQvector1n.GetMult(); |
bc92c0cb | 591 | |
1dfa3c16 | 592 | fAvMultIntFlowQC->Fill(0.,dMult,1.); |
bc92c0cb | 593 | |
594 | //--------------------------------------------------------------------------------------------------------- | |
dee1e0e0 | 595 | // |
596 | // ******************* | |
597 | // **** Q-vectors **** | |
598 | // ******************* | |
599 | // | |
1dfa3c16 | 600 | 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 | 601 | //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}^*] |
602 | Double_t reQ1nQ1nQ2nstar = reQ2nQ1nstarQ1nstar;//Re[Q_{n} Q_{n} Q_{2n}^*] = Re[Q_{2n} Q_{n}^* Q_{n}^*] | |
1dfa3c16 | 603 | 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 | 604 | //Double_t imQ3nQ1nQ2nstarQ2nstar = calculate and implement this (deleteMe) |
605 | Double_t reQ2nQ2nQ3nstarQ1nstar = reQ3nQ1nQ2nstarQ2nstar; | |
1dfa3c16 | 606 | 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 | 607 | //Double_t imQ4nQ2nstarQ2nstar = calculate and implement this (deleteMe) |
608 | Double_t reQ2nQ2nQ4nstar = reQ4nQ2nstarQ2nstar; | |
1dfa3c16 | 609 | 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 | 610 | Double_t reQ3nQ1nQ4nstar = reQ4nQ3nstarQ1nstar;//Re[Q_{3n} Q_{n} Q_{4n}^*] = Re[Q_{4n} Q_{3n}^* Q_{n}^*] |
611 | //Double_t imQ4nQ3nstarQ1nstar = calculate and implement this (deleteMe) | |
1dfa3c16 | 612 | 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 | 613 | Double_t reQ2nQ1nQ3nstar = reQ3nQ2nstarQ1nstar;//Re[Q_{2n} Q_{n} Q_{3n}^*] = Re[Q_{3n} Q_{2n}^* Q_{n}^*] |
614 | //Double_t imQ3nQ2nstarQ1nstar; //calculate and implement this (deleteMe) | |
1dfa3c16 | 615 | 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 | 616 | //Double_t imQ3nQ1nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe) |
1dfa3c16 | 617 | Double_t xQ2nQ1nQ2nstarQ1nstar = pow(afvQvector2n.Mod()*afvQvector1n.Mod(),2);//|Q_{2n}|^2 |Q_{n}|^2 |
618 | 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 | 619 | //Double_t imQ4nQ2nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe) |
1dfa3c16 | 620 | 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 | 621 | //Double_t imQ2nQ1nQ1nstarQ1nstarQ1nstar; //calculate and implement this (deleteMe) |
1dfa3c16 | 622 | 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 | 623 | //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 | 624 | 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 | 625 | //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 | 626 | 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}^*] |
627 | //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}^*] | |
628 | 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}^*] | |
629 | //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}^*] | |
630 | 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}^*] | |
631 | //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}^*] | |
632 | Double_t xQ2nQ1nQ1nQ2nstarQ1nstarQ1nstar = pow(afvQvector2n.Mod(),2.)*pow(afvQvector1n.Mod(),4.);//|Q_{2n}|^2 |Q_{n}|^4 | |
633 | 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}^*] | |
634 | //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 | 635 | //--------------------------------------------------------------------------------------------------------- |
636 | ||
637 | //--------------------------------------------------------------------------------------------------------- | |
dee1e0e0 | 638 | // |
639 | // ************************************** | |
640 | // **** multi-particle correlations: **** | |
641 | // ************************************** | |
642 | // | |
643 | // Remark 1: multi-particle correlations calculated with Q-vectors are stored in fQCorrelations. | |
644 | // Remark 2: binning of fQCorrelations is organized as follows: | |
645 | // | |
646 | // 1st bin: <2>_{n|n} = two1n1n | |
647 | // 2nd bin: <2>_{2n|2n} = two2n2n | |
648 | // 3rd bin: <2>_{3n|3n} = two3n3n | |
649 | // 4th bin: <2>_{4n|4n} = two4n4n | |
650 | // 5th bin: -- EMPTY -- | |
651 | // 6th bin: <3>_{2n|n,n} = three2n1n1n | |
652 | // 7th bin: <3>_{3n|2n,n} = three3n2n1n | |
653 | // 8th bin: <3>_{4n|2n,2n} = three4n2n2n | |
654 | // 9th bin: <3>_{4n|3n,n} = three4n3n1n | |
655 | //10th bin: -- EMPTY -- | |
656 | //11th bin: <4>_{n,n|n,n} = four1n1n1n1n | |
657 | //12th bin: <4>_{2n,n|2n,n} = four2n1n2n1n | |
658 | //13th bin: <4>_{2n,2n|2n,2n} = four2n2n2n2n | |
659 | //14th bin: <4>_{3n|n,n,n} = four3n1n1n1n | |
660 | //15th bin: <4>_{3n,n|3n,n} = four3n1n3n1n | |
661 | //16th bin: <4>_{3n,n|2n,2n} = four3n1n2n2n | |
662 | //17th bin: <4>_{4n|2n,n,n} = four4n2n1n1n | |
663 | //18th bin: -- EMPTY -- | |
664 | //19th bin: <5>_{2n|n,n,n,n} = five2n1n1n1n1n | |
665 | //20th bin: <5>_{2n,2n|2n,n,n} = five2n2n2n1n1n | |
666 | //21st bin: <5>_{3n,n|2n,n,n} = five3n1n2n1n1n | |
667 | //22nd bin: <5>_{4n|n,n,n,n} = five4n1n1n1n1n | |
668 | //23rd bin: -- EMPTY -- | |
669 | //24th bin: <6>_{n,n,n|n,n,n} = six1n1n1n1n1n1n | |
670 | //25th bin: <6>_{2n,n,n|2n,n,n} = six2n1n1n2n1n1n | |
671 | //26th bin: <6>_{2n,2n|n,n,n,n} = six2n2n1n1n1n1n | |
672 | //27th bin: <6>_{3n,n|n,n,n,n} = six3n1n1n1n1n1n | |
673 | //28th bin: -- EMPTY -- | |
674 | //29th bin: <7>_{2n,n,n|n,n,n,n} = seven2n1n1n1n1n1n1n | |
675 | //30th bin: -- EMPTY -- | |
676 | //31st bin: <8>_{n,n,n,n|n,n,n,n} = eight1n1n1n1n1n1n1n1n | |
677 | ||
1315fe58 | 678 | |
8842fb2b | 679 | // binning of fQProduct (all correlations are evaluated in harmonic n): |
680 | // 1st bin: <2>*<4> | |
681 | // 2nd bin: <2>*<6> | |
682 | // 3rd bin: <2>*<8> | |
683 | // 4th bin: <4>*<6> | |
684 | // 5th bin: <4>*<8> | |
685 | // 6th bin: <6>*<8> | |
686 | ||
bc92c0cb | 687 | //2-particle |
52021ae2 | 688 | Double_t two1n1n=0., two2n2n=0., two3n3n=0., two4n4n=0.; |
1dfa3c16 | 689 | if(dMult>1) |
bc92c0cb | 690 | { |
cb308e83 | 691 | //fill the common control histogram (2nd order): |
692 | fCommonHists2nd->FillControlHistograms(anEvent); | |
693 | ||
1dfa3c16 | 694 | two1n1n = (pow(afvQvector1n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); //<2>_{n|n} = <cos(n*(phi1-phi2))> |
695 | two2n2n = (pow(afvQvector2n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); //<2>_{2n|2n} = <cos(2n*(phi1-phi2))> | |
696 | two3n3n = (pow(afvQvector3n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); //<2>_{3n|3n} = <cos(3n*(phi1-phi2))> | |
697 | two4n4n = (pow(afvQvector4n.Mod(),2.)-dMult)/(dMult*(dMult-1.)); //<2>_{4n|4n} = <cos(4n*(phi1-phi2))> | |
1315fe58 | 698 | |
1dfa3c16 | 699 | fQCorrelations->Fill(0.,two1n1n,dMult*(dMult-1.)); |
700 | fQCorrelations->Fill(1.,two2n2n,dMult*(dMult-1.)); | |
701 | fQCorrelations->Fill(2.,two3n3n,dMult*(dMult-1.)); | |
702 | fQCorrelations->Fill(3.,two4n4n,dMult*(dMult-1.)); | |
1315fe58 | 703 | |
1dfa3c16 | 704 | f2pDistribution->Fill(two1n1n,dMult*(dMult-1.)); |
bc92c0cb | 705 | } |
706 | ||
707 | //3-particle | |
52021ae2 | 708 | Double_t three2n1n1n=0., three3n2n1n=0., three4n2n2n=0., three4n3n1n=0.; |
1dfa3c16 | 709 | if(dMult>2) |
bc92c0cb | 710 | { |
1dfa3c16 | 711 | 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))> |
712 | 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))> | |
713 | 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))> | |
714 | 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))> | |
715 | ||
716 | fQCorrelations->Fill(5.,three2n1n1n,dMult*(dMult-1.)*(dMult-2.)); | |
717 | fQCorrelations->Fill(6.,three3n2n1n,dMult*(dMult-1.)*(dMult-2.)); | |
718 | fQCorrelations->Fill(7.,three4n2n2n,dMult*(dMult-1.)*(dMult-2.)); | |
719 | fQCorrelations->Fill(8.,three4n3n1n,dMult*(dMult-1.)*(dMult-2.)); | |
bc92c0cb | 720 | } |
721 | ||
722 | //4-particle | |
52021ae2 | 723 | Double_t four1n1n1n1n=0., four2n2n2n2n=0., four2n1n2n1n=0., four3n1n1n1n=0., four4n2n1n1n=0., four3n1n2n2n=0., four3n1n3n1n=0.; |
1dfa3c16 | 724 | if(dMult>3) |
bc92c0cb | 725 | { |
cb308e83 | 726 | //fill the common control histogram (4th order): |
727 | fCommonHists4th->FillControlHistograms(anEvent); | |
728 | ||
1dfa3c16 | 729 | 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} |
730 | 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} | |
731 | 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}] | |
732 | 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}] | |
733 | 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}] | |
734 | 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}] | |
735 | 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 | 736 | //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} |
737 | ||
1dfa3c16 | 738 | fQCorrelations->Fill(10.,four1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); |
739 | fQCorrelations->Fill(11.,four2n1n2n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); | |
740 | fQCorrelations->Fill(12.,four2n2n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); | |
741 | fQCorrelations->Fill(13.,four3n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); | |
742 | fQCorrelations->Fill(14.,four3n1n3n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); | |
743 | fQCorrelations->Fill(15.,four3n1n2n2n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); | |
744 | fQCorrelations->Fill(16.,four4n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); | |
dee1e0e0 | 745 | |
1dfa3c16 | 746 | f4pDistribution->Fill(four1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); |
bc92c0cb | 747 | |
1dfa3c16 | 748 | fQProduct->Fill(0.,two1n1n*four1n1n1n1n,dMult*(dMult-1.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)); |
bc92c0cb | 749 | } |
750 | ||
751 | //5-particle | |
52021ae2 | 752 | Double_t five2n1n1n1n1n=0., five2n2n2n1n1n=0., five3n1n2n1n1n=0., five4n1n1n1n1n=0.; |
1dfa3c16 | 753 | if(dMult>4) |
1315fe58 | 754 | { |
1dfa3c16 | 755 | 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 | 756 | |
1dfa3c16 | 757 | 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 | 758 | |
dee1e0e0 | 759 | //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 | 760 | |
1dfa3c16 | 761 | 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 | 762 | |
dee1e0e0 | 763 | //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! |
764 | ||
1dfa3c16 | 765 | 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 | 766 | |
1dfa3c16 | 767 | //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 | 768 | |
1dfa3c16 | 769 | //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 | 770 | |
1dfa3c16 | 771 | fQCorrelations->Fill(18.,five2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)); |
772 | fQCorrelations->Fill(19.,five2n2n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)); | |
773 | fQCorrelations->Fill(20.,five3n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)); | |
774 | fQCorrelations->Fill(21.,five4n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)); | |
1315fe58 | 775 | } |
bc92c0cb | 776 | |
777 | //6-particle | |
dee1e0e0 | 778 | Double_t six1n1n1n1n1n1n=0., six2n2n1n1n1n1n=0., six3n1n1n1n1n1n=0., six2n1n1n2n1n1n=0.; |
1dfa3c16 | 779 | if(dMult>5) |
bc92c0cb | 780 | { |
cb308e83 | 781 | //fill the common control histogram (6th order): |
782 | fCommonHists6th->FillControlHistograms(anEvent); | |
783 | ||
1dfa3c16 | 784 | 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 | 785 | |
1dfa3c16 | 786 | 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 | 787 | |
1dfa3c16 | 788 | 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 | 789 | |
1dfa3c16 | 790 | 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 | 791 | |
1dfa3c16 | 792 | fQCorrelations->Fill(23.,six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); |
793 | fQCorrelations->Fill(24.,six2n1n1n2n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); | |
794 | fQCorrelations->Fill(25.,six2n2n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); | |
795 | fQCorrelations->Fill(26.,six3n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); | |
dee1e0e0 | 796 | |
1dfa3c16 | 797 | f6pDistribution->Fill(six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); |
bc92c0cb | 798 | |
1dfa3c16 | 799 | fQProduct->Fill(1.,two1n1n*six1n1n1n1n1n1n,dMult*(dMult-1.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); |
800 | fQProduct->Fill(3.,four1n1n1n1n*six1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)); | |
bc92c0cb | 801 | } |
dee1e0e0 | 802 | |
803 | //7-particle | |
804 | Double_t seven2n1n1n1n1n1n1n=0.; | |
1dfa3c16 | 805 | if(dMult>6) |
dee1e0e0 | 806 | { |
1dfa3c16 | 807 | 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 | 808 | |
1dfa3c16 | 809 | fQCorrelations->Fill(28.,seven2n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)); |
dee1e0e0 | 810 | } |
811 | ||
812 | //8-particle | |
813 | Double_t eight1n1n1n1n1n1n1n1n=0.; | |
1dfa3c16 | 814 | if(dMult>7) |
dee1e0e0 | 815 | { |
cb308e83 | 816 | //fill the common control histogram (8th order): |
817 | fCommonHists8th->FillControlHistograms(anEvent); | |
818 | ||
1dfa3c16 | 819 | 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 | 820 | |
1dfa3c16 | 821 | fQCorrelations->Fill(30.,eight1n1n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.)); |
5e838eeb | 822 | |
1dfa3c16 | 823 | f8pDistribution->Fill(eight1n1n1n1n1n1n1n1n,dMult*(dMult-1.)*(dMult-2.)*(dMult-3.)*(dMult-4.)*(dMult-5.)*(dMult-6.)*(dMult-7.)); |
dee1e0e0 | 824 | } |
bc92c0cb | 825 | //--------------------------------------------------------------------------------------------------------- |
826 | ||
bc92c0cb | 827 | //--------------------------------------------------------------------------------------------------------- |
828 | // DIFFERENTIAL FLOW | |
829 | ||
1dfa3c16 | 830 | Double_t dQ1nx = afvQvector1n.X(); |
831 | Double_t dQ1ny = afvQvector1n.Y(); | |
832 | Double_t dQ2nx = afvQvector2n.X(); | |
833 | Double_t dQ2ny = afvQvector2n.Y(); | |
bc92c0cb | 834 | |
1dfa3c16 | 835 | Double_t dBinWidthPt=1.*(fPtMax-fPtMin)/fnBinsPt; |
836 | Double_t dBinWidthEta=1.*(fEtaMax-fEtaMin)/fnBinsEta; | |
837 | ||
838 | //RP: | |
839 | Double_t qxPtRP=0.,qyPtRP=0.,q2xPtRP=0.,q2yPtRP=0.,mPtRP=0.;//add comments for these variables (deleteMe) | |
840 | Double_t qxEtaRP=0.,qyEtaRP=0.,q2xEtaRP=0.,q2yEtaRP=0.,mEtaRP=0.;//add comments for these variables (deleteMe) | |
841 | ||
842 | for(Int_t i=0;i<dMult;i++) //check if nPrim == M | |
bc92c0cb | 843 | { |
844 | fTrack=anEvent->GetTrack(i); | |
1dfa3c16 | 845 | if(fTrack && fTrack->UseForIntegratedFlow())//checking RP condition |
1315fe58 | 846 | { |
1dfa3c16 | 847 | //Pt: |
848 | fPtReq1nRP->Fill(fTrack->Pt(),cos(n*(fTrack->Phi())),1.); | |
849 | fPtImq1nRP->Fill(fTrack->Pt(),sin(n*(fTrack->Phi())),1.); | |
850 | fPtReq2nRP->Fill(fTrack->Pt(),cos(2.*n*(fTrack->Phi())),1.); | |
851 | fPtImq2nRP->Fill(fTrack->Pt(),sin(2.*n*(fTrack->Phi())),1.); | |
852 | //Eta: | |
853 | fEtaReq1nRP->Fill(fTrack->Eta(),cos(n*(fTrack->Phi())),1.); | |
854 | fEtaImq1nRP->Fill(fTrack->Eta(),sin(n*(fTrack->Phi())),1.); | |
855 | fEtaReq2nRP->Fill(fTrack->Eta(),cos(2.*n*(fTrack->Phi())),1.); | |
856 | fEtaImq2nRP->Fill(fTrack->Eta(),sin(2.*n*(fTrack->Phi())),1.); | |
1315fe58 | 857 | } |
bc92c0cb | 858 | } |
859 | ||
1dfa3c16 | 860 | //Pt: |
861 | Double_t twoDiffPt1n1nRP=0.,twoDiffPt2n2nRP=0.,threeDiffPt2n1n1nRP=0.,threeDiffPt1n1n2nRP=0.,fourDiffPt1n1n1n1nRP=0.; | |
bc92c0cb | 862 | |
52021ae2 | 863 | for(Int_t bin=1;bin<(fnBinsPt+1);bin++)//loop over pt-bins |
bc92c0cb | 864 | { |
1dfa3c16 | 865 | qxPtRP = (fPtReq1nRP->GetBinContent(bin))*(fPtReq1nRP->GetBinEntries(bin)); |
866 | qyPtRP = (fPtImq1nRP->GetBinContent(bin))*(fPtImq1nRP->GetBinEntries(bin)); | |
867 | q2xPtRP = (fPtReq2nRP->GetBinContent(bin))*(fPtReq2nRP->GetBinEntries(bin)); | |
868 | q2yPtRP = (fPtImq2nRP->GetBinContent(bin))*(fPtImq2nRP->GetBinEntries(bin)); | |
869 | mPtRP = fPtReq1nRP->GetBinEntries(bin); | |
bc92c0cb | 870 | |
1dfa3c16 | 871 | if(mPtRP>0&&dMult>1) |
bc92c0cb | 872 | { |
1dfa3c16 | 873 | twoDiffPt1n1nRP = (qxPtRP*dQ1nx+qyPtRP*dQ1ny-mPtRP)/(mPtRP*(dMult-1.)); |
874 | f2PerPtBin1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nRP,mPtRP*(dMult-1.));//<2'>_{n|n} | |
bc92c0cb | 875 | |
1dfa3c16 | 876 | twoDiffPt2n2nRP = (q2xPtRP*dQ2nx+q2yPtRP*dQ2ny-mPtRP)/(mPtRP*(dMult-1.)); |
877 | f2PerPtBin2n2nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt2n2nRP,mPtRP*(dMult-1.));//<2'>_{2n|2n} | |
bc92c0cb | 878 | } |
879 | ||
1dfa3c16 | 880 | if(mPtRP>0&&dMult>2) |
bc92c0cb | 881 | { |
1dfa3c16 | 882 | 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.)); |
883 | f3PerPtBin2n1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt2n1n1nRP,mPtRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}] | |
bc92c0cb | 884 | |
1dfa3c16 | 885 | 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.)); |
886 | f3PerPtBin1n1n2nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt1n1n2nRP,mPtRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}] | |
bc92c0cb | 887 | } |
888 | ||
1dfa3c16 | 889 | if(mPtRP>0&&dMult>3) |
bc92c0cb | 890 | { |
1dfa3c16 | 891 | 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.)); |
892 | f4PerPtBin1n1n1n1nRP->Fill(fPtMin+(bin-1)*dBinWidthPt,fourDiffPt1n1n1n1nRP,mPtRP*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}] | |
bc92c0cb | 893 | } |
894 | ||
895 | } | |
896 | ||
1dfa3c16 | 897 | fPtReq1nRP->Reset(); |
898 | fPtImq1nRP->Reset(); | |
899 | fPtReq2nRP->Reset(); | |
900 | fPtImq2nRP->Reset(); | |
901 | ||
902 | //Eta: | |
903 | Double_t twoDiffEta1n1nRP=0.,twoDiffEta2n2nRP=0.,threeDiffEta2n1n1nRP=0.,threeDiffEta1n1n2nRP=0.,fourDiffEta1n1n1n1nRP=0.; | |
904 | ||
905 | for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins | |
906 | { | |
907 | qxEtaRP = (fEtaReq1nRP->GetBinContent(bin))*(fEtaReq1nRP->GetBinEntries(bin)); | |
908 | qyEtaRP = (fEtaImq1nRP->GetBinContent(bin))*(fEtaImq1nRP->GetBinEntries(bin)); | |
909 | q2xEtaRP = (fEtaReq2nRP->GetBinContent(bin))*(fEtaReq2nRP->GetBinEntries(bin)); | |
910 | q2yEtaRP = (fEtaImq2nRP->GetBinContent(bin))*(fEtaImq2nRP->GetBinEntries(bin)); | |
911 | mEtaRP = fEtaReq1nRP->GetBinEntries(bin); | |
912 | ||
913 | if(mEtaRP>0&&dMult>1) | |
914 | { | |
915 | twoDiffEta1n1nRP = (qxEtaRP*dQ1nx+qyEtaRP*dQ1ny-mEtaRP)/(mEtaRP*(dMult-1.)); | |
916 | f2PerEtaBin1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nRP,mEtaRP*(dMult-1.));//<2'>_{n|n} | |
917 | ||
918 | twoDiffEta2n2nRP = (q2xEtaRP*dQ2nx+q2yEtaRP*dQ2ny-mEtaRP)/(mEtaRP*(dMult-1.)); | |
919 | f2PerEtaBin2n2nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta2n2nRP,mEtaRP*(dMult-1.));//<2'>_{2n|2n} | |
920 | } | |
921 | ||
922 | if(mEtaRP>0&&dMult>2) | |
923 | { | |
924 | 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.)); | |
925 | f3PerEtaBin2n1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta2n1n1nRP,mEtaRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}] | |
926 | ||
927 | 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.)); | |
928 | f3PerEtaBin1n1n2nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta1n1n2nRP,mEtaRP*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}] | |
929 | } | |
930 | ||
931 | if(mEtaRP>0&&dMult>3) | |
932 | { | |
933 | 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.)); | |
934 | f4PerEtaBin1n1n1n1nRP->Fill(fEtaMin+(bin-1)*dBinWidthEta,fourDiffEta1n1n1n1nRP,mEtaRP*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}] | |
935 | } | |
936 | ||
937 | } | |
938 | ||
939 | fEtaReq1nRP->Reset(); | |
940 | fEtaImq1nRP->Reset(); | |
941 | fEtaReq2nRP->Reset(); | |
942 | fEtaImq2nRP->Reset(); | |
943 | ||
944 | //POI: | |
945 | Double_t qxPtPOI=0.,qyPtPOI=0.,q2xPtPOI=0.,q2yPtPOI=0.,mPtPOI=0.;//add comments for these variables (deleteMe) | |
946 | Double_t qxEtaPOI=0.,qyEtaPOI=0.,q2xEtaPOI=0.,q2yEtaPOI=0.,mEtaPOI=0.;//add comments for these variables (deleteMe) | |
947 | Int_t iOverlap=0; | |
948 | ||
949 | for(Int_t i=0;i<dMult;i++) //check if nPrim == M | |
950 | { | |
951 | fTrack=anEvent->GetTrack(i); | |
952 | if(fTrack && fTrack->UseForDifferentialFlow())//checking POI condition | |
953 | { | |
954 | //Pt: | |
955 | fPtReq1nPOI->Fill(fTrack->Pt(),cos(n*(fTrack->Phi())),1.); | |
956 | fPtImq1nPOI->Fill(fTrack->Pt(),sin(n*(fTrack->Phi())),1.); | |
957 | fPtReq2nPOI->Fill(fTrack->Pt(),cos(2.*n*(fTrack->Phi())),1.); | |
958 | fPtImq2nPOI->Fill(fTrack->Pt(),sin(2.*n*(fTrack->Phi())),1.); | |
959 | //Eta: | |
960 | fEtaReq1nPOI->Fill(fTrack->Eta(),cos(n*(fTrack->Phi())),1.); | |
961 | fEtaImq1nPOI->Fill(fTrack->Eta(),sin(n*(fTrack->Phi())),1.); | |
962 | fEtaReq2nPOI->Fill(fTrack->Eta(),cos(2.*n*(fTrack->Phi())),1.); | |
963 | fEtaImq2nPOI->Fill(fTrack->Eta(),sin(2.*n*(fTrack->Phi())),1.); | |
964 | if(fTrack->UseForDifferentialFlow() && fTrack->UseForIntegratedFlow())//counting the overlap between RP and POI | |
965 | { | |
966 | iOverlap++; | |
967 | } | |
968 | } | |
969 | } | |
970 | ||
971 | //Pt: | |
972 | Double_t twoDiffPt1n1nPOI=0.,twoDiffPt2n2nPOI=0.,threeDiffPt2n1n1nPOI=0.,threeDiffPt1n1n2nPOI=0.,fourDiffPt1n1n1n1nPOI=0.; | |
973 | ||
974 | for(Int_t bin=1;bin<(fnBinsPt+1);bin++)//loop over pt-bins | |
975 | { | |
976 | qxPtPOI = (fPtReq1nPOI->GetBinContent(bin))*(fPtReq1nPOI->GetBinEntries(bin)); | |
977 | qyPtPOI = (fPtImq1nPOI->GetBinContent(bin))*(fPtImq1nPOI->GetBinEntries(bin)); | |
978 | q2xPtPOI = (fPtReq2nPOI->GetBinContent(bin))*(fPtReq2nPOI->GetBinEntries(bin)); | |
979 | q2yPtPOI = (fPtImq2nPOI->GetBinContent(bin))*(fPtImq2nPOI->GetBinEntries(bin)); | |
980 | mPtPOI = fPtReq1nPOI->GetBinEntries(bin); | |
981 | ||
982 | if(mPtPOI>0&&dMult>1) | |
983 | { | |
984 | //twoDiffPt1n1nPOI = (qxPtPOI*dQ1nx+qyPtPOI*dQ1ny-mPtPOI)/(mPtPOI*(dMult-1.)); | |
985 | twoDiffPt1n1nPOI = (qxPtPOI*dQ1nx+qyPtPOI*dQ1ny-iOverlap)/(mPtPOI*(dMult-1.)); | |
986 | f2PerPtBin1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt1n1nPOI,mPtPOI*(dMult-1.));//<2'>_{n|n} | |
987 | ||
988 | //twoDiffPt2n2nPOI = (q2xPtPOI*dQ2nx+q2yPtPOI*dQ2ny-mPtPOI)/(mPtPOI*(dMult-1.)); | |
989 | twoDiffPt2n2nPOI = (q2xPtPOI*dQ2nx+q2yPtPOI*dQ2ny-iOverlap)/(mPtPOI*(dMult-1.)); | |
990 | f2PerPtBin2n2nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,twoDiffPt2n2nPOI,mPtPOI*(dMult-1.));//<2'>_{2n|2n} | |
991 | } | |
992 | ||
993 | if(mPtPOI>0&&dMult>2) | |
994 | { | |
995 | 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) | |
996 | //f3PePOItBin2n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt2n1n1nPOI,mPtPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}] | |
997 | ||
998 | 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) | |
999 | //f3PePOItBin1n1n2nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,threeDiffPt1n1n2nPOI,mPtPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}] | |
1000 | } | |
1001 | ||
1002 | if(mPtPOI>0&&dMult>3) | |
1003 | { | |
1004 | fourDiffPt1n1n1n1nPOI = ((dQ1nx*dQ1nx+dQ1ny*dQ1ny)*(qxPtPOI*dQ1nx+qyPtPOI*dQ1ny)-(q2xPtPOI*(dQ1nx*dQ1nx-dQ1ny*dQ1ny)+2.*q2yPtPOI*dQ1nx*dQ1ny)-(dQ2nx*(qxPtPOI*dQ1nx-qyPtPOI*dQ1ny)+dQ2ny*(qxPtPOI*dQ1ny+qyPtPOI*dQ1nx))+(q2xPtPOI*dQ2nx+q2yPtPOI*dQ2ny)-2.*(dMult-3.)*(qxPtPOI*dQ1nx+qyPtPOI*dQ1ny)-2.*mPtPOI*(dQ1nx*dQ1nx+dQ1ny*dQ1ny)+2.*(dQ1nx*qxPtPOI+dQ1ny*qyPtPOI)+2.*mPtPOI*(dMult-3.))/(mPtPOI*(dMult-1.)*(dMult-2.)*(dMult-3.));//to be improved (correct formula) | |
1005 | //f4PePOItBin1n1n1n1nPOI->Fill(fPtMin+(bin-1)*dBinWidthPt,fourDiffPt1n1n1n1nPOI,mPtPOI*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}] | |
1006 | } | |
1007 | ||
1008 | } | |
1009 | ||
1010 | fPtReq1nPOI->Reset(); | |
1011 | fPtImq1nPOI->Reset(); | |
1012 | fPtReq2nPOI->Reset(); | |
1013 | fPtImq2nPOI->Reset(); | |
1014 | ||
1015 | //Eta: | |
1016 | Double_t twoDiffEta1n1nPOI=0.,twoDiffEta2n2nPOI=0.,threeDiffEta2n1n1nPOI=0.,threeDiffEta1n1n2nPOI=0.,fourDiffEta1n1n1n1nPOI=0.; | |
1017 | ||
1018 | for(Int_t bin=1;bin<(fnBinsEta+1);bin++)//loop over eta-bins | |
1019 | { | |
1020 | qxEtaPOI = (fEtaReq1nPOI->GetBinContent(bin))*(fEtaReq1nPOI->GetBinEntries(bin)); | |
1021 | qyEtaPOI = (fEtaImq1nPOI->GetBinContent(bin))*(fEtaImq1nPOI->GetBinEntries(bin)); | |
1022 | q2xEtaPOI = (fEtaReq2nPOI->GetBinContent(bin))*(fEtaReq2nPOI->GetBinEntries(bin)); | |
1023 | q2yEtaPOI = (fEtaImq2nPOI->GetBinContent(bin))*(fEtaImq2nPOI->GetBinEntries(bin)); | |
1024 | mEtaPOI = fEtaReq1nPOI->GetBinEntries(bin); | |
1025 | ||
1026 | if(mEtaPOI>0&&dMult>1) | |
1027 | { | |
1028 | //twoDiffEta1n1nPOI = (qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny-mEtaPOI)/(mEtaPOI*(dMult-1.)); | |
1029 | twoDiffEta1n1nPOI = (qxEtaPOI*dQ1nx+qyEtaPOI*dQ1ny-iOverlap)/(mEtaPOI*(dMult-1.)); | |
1030 | f2PerEtaBin1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta1n1nPOI,mEtaPOI*(dMult-1.));//<2'>_{n|n} | |
1031 | ||
1032 | //twoDiffEta2n2nPOI = (q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny-mEtaPOI)/(mEtaPOI*(dMult-1.)); | |
1033 | twoDiffEta2n2nPOI = (q2xEtaPOI*dQ2nx+q2yEtaPOI*dQ2ny-iOverlap)/(mEtaPOI*(dMult-1.)); | |
1034 | f2PerEtaBin2n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,twoDiffEta2n2nPOI,mEtaPOI*(dMult-1.));//<2'>_{2n|2n} | |
1035 | } | |
1036 | ||
1037 | if(mEtaPOI>0&&dMult>2) | |
1038 | { | |
1039 | 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) | |
1040 | //f3PerEtaBin2n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta2n1n1nPOI,mEtaPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{2n|n,n}] | |
1041 | ||
1042 | 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) | |
1043 | //f3PerEtaBin1n1n2nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,threeDiffEta1n1n2nPOI,mEtaPOI*(dMult-1.)*(dMult-2.));//Re[<3'>_{n,n|2n}] | |
1044 | } | |
1045 | ||
1046 | if(mEtaPOI>0&&dMult>3) | |
1047 | { | |
1048 | 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) | |
1049 | //f4PerEtaBin1n1n1n1nPOI->Fill(fEtaMin+(bin-1)*dBinWidthEta,fourDiffEta1n1n1n1nPOI,mEtaPOI*(dMult-1.)*(dMult-2.)*(dMult-3.));//Re[<4'>_{n,n|n,n}] | |
1050 | } | |
1051 | ||
1052 | } | |
1053 | ||
1054 | fEtaReq1nPOI->Reset(); | |
1055 | fEtaImq1nPOI->Reset(); | |
1056 | fEtaReq2nPOI->Reset(); | |
1057 | fEtaImq2nPOI->Reset(); | |
1058 | ||
bc92c0cb | 1059 | //--------------------------------------------------------------------------------------------------------- |
1060 | ||
1061 | ||
1062 | ||
1063 | ||
1064 | ||
1065 | ||
1066 | ||
1067 | ||
1068 | ||
1069 | ||
1070 | ||
1071 | ||
bc92c0cb | 1072 | |
1073 | ||
1074 | ||
bc92c0cb | 1075 | |
1076 | ||
bc92c0cb | 1077 | |
bc92c0cb | 1078 | |
1079 | ||
1080 | ||
bc92c0cb | 1081 | |
1082 | ||
1083 | ||
52021ae2 | 1084 | /* |
bc92c0cb | 1085 | |
1086 | ||
1087 | ||
1088 | ||
1089 | ||
bc92c0cb | 1090 | |
bc92c0cb | 1091 | |
dee1e0e0 | 1092 | |
1093 | //-------------------------------------------------------------------------------------------------------------------------------- | |
1094 | // | |
1095 | // ********************** | |
1096 | // **** NESTED LOOPS **** | |
1097 | // ********************** | |
1098 | // | |
1099 | // Remark 1: multi-particle correlations calculated with nested loops are stored in fDirectCorrelations. | |
1100 | // Remark 2: binning of fDirectCorrelations: bins 0..40 - correlations needed for integrated flow; bins 40..80 - correlations needed for differential flow (taking as an example bin 0.5 < pt < 0.6) | |
1101 | // | |
1102 | // binning details of fDirectCorrelations (integrated flow): | |
1103 | // | |
1104 | // 1st bin: <2>_{n|n} = two1n1n | |
1105 | // 2nd bin: <2>_{2n|2n} = two2n2n | |
1106 | // 3rd bin: <2>_{3n|3n} = two3n3n | |
1107 | // 4th bin: <2>_{4n|4n} = two4n4n | |
1108 | // 5th bin: -- EMPTY -- | |
1109 | // 6th bin: <3>_{2n|n,n} = three2n1n1n | |
1110 | // 7th bin: <3>_{3n|2n,n} = three3n2n1n | |
1111 | // 8th bin: <3>_{4n|2n,2n} = three4n2n2n | |
1112 | // 9th bin: <3>_{4n|3n,n} = three4n3n1n | |
1113 | //10th bin: -- EMPTY -- | |
1114 | //11th bin: <4>_{n,n|n,n} = four1n1n1n1n | |
1115 | //12th bin: <4>_{2n,n|2n,n} = four2n1n2n1n | |
1116 | //13th bin: <4>_{2n,2n|2n,2n} = four2n2n2n2n | |
1117 | //14th bin: <4>_{3n|n,n,n} = four3n1n1n1n | |
1118 | //15th bin: <4>_{3n,n|3n,n} = four3n1n3n1n | |
1119 | //16th bin: <4>_{3n,n|2n,2n} = four3n1n2n2n | |
1120 | //17th bin: <4>_{4n|2n,n,n} = four4n2n1n1n | |
1121 | //18th bin: -- EMPTY -- | |
1122 | //19th bin: <5>_{2n|n,n,n,n} = five2n1n1n1n1n | |
1123 | //20th bin: <5>_{2n,2n|2n,n,n} = five2n2n2n1n1n | |
1124 | //21st bin: <5>_{3n,n|2n,n,n} = five3n1n2n1n1n | |
1125 | //22nd bin: <5>_{4n|n,n,n,n} = five4n1n1n1n1n | |
1126 | //23rd bin: -- EMPTY -- | |
1127 | //24th bin: <6>_{n,n,n|n,n,n} = six1n1n1n1n1n1n | |
1128 | //25th bin: <6>_{2n,n,n|2n,n,n} = six2n1n1n2n1n1n | |
1129 | //26th bin: <6>_{2n,2n|n,n,n,n} = six2n2n1n1n1n1n | |
1130 | //27th bin: <6>_{3n,n|n,n,n,n} = six3n1n1n1n1n1n | |
1131 | //28th bin: -- EMPTY -- | |
1132 | //29th bin: <7>_{2n,n,n|n,n,n,n} = seven2n1n1n1n1n1n1n | |
1133 | //30th bin: -- EMPTY -- | |
1134 | //31st bin: <8>_{n,n,n,n|n,n,n,n} = eight1n1n1n1n1n1n1n1n | |
1135 | ||
1136 | Double_t phi1=0., phi2=0., phi3=0., phi4=0., phi5=0., phi6=0., phi7=0., phi8=0.; | |
1137 | ||
1138 | //<2>_{k*n|k*n} (k=1,2,3 and 4) | |
1dfa3c16 | 1139 | for(Int_t i1=0;i1<dMult;i1++) |
bc92c0cb | 1140 | { |
dee1e0e0 | 1141 | fTrack=anEvent->GetTrack(i1); |
bc92c0cb | 1142 | phi1=fTrack->Phi(); |
1dfa3c16 | 1143 | for(Int_t i2=0;i2<dMult;i2++) |
bc92c0cb | 1144 | { |
dee1e0e0 | 1145 | if(i2==i1)continue; |
1146 | fTrack=anEvent->GetTrack(i2); | |
bc92c0cb | 1147 | phi2=fTrack->Phi(); |
1315fe58 | 1148 | fDirectCorrelations->Fill(0.,cos(n*(phi1-phi2)),1); //<2>_{n|n} |
1149 | fDirectCorrelations->Fill(1.,cos(2.*n*(phi1-phi2)),1); //<2>_{2n|2n} | |
1150 | fDirectCorrelations->Fill(2.,cos(3.*n*(phi1-phi2)),1); //<2>_{3n|3n} | |
1151 | fDirectCorrelations->Fill(3.,cos(4.*n*(phi1-phi2)),1); //<2>_{4n|4n} | |
bc92c0cb | 1152 | } |
1153 | } | |
1154 | ||
1315fe58 | 1155 | //<3>_{2n|n,n}, <3>_{3n|2n,n}, <3>_{4n|2n,2n} and <3>_{4n|3n,n} |
1dfa3c16 | 1156 | for(Int_t i1=0;i1<dMult;i1++) |
bc92c0cb | 1157 | { |
dee1e0e0 | 1158 | fTrack=anEvent->GetTrack(i1); |
bc92c0cb | 1159 | phi1=fTrack->Phi(); |
1dfa3c16 | 1160 | for(Int_t i2=0;i2<dMult;i2++) |
bc92c0cb | 1161 | { |
dee1e0e0 | 1162 | if(i2==i1)continue; |
1163 | fTrack=anEvent->GetTrack(i2); | |
bc92c0cb | 1164 | phi2=fTrack->Phi(); |
1dfa3c16 | 1165 | for(Int_t i3=0;i3<dMult;i3++) |
bc92c0cb | 1166 | { |
dee1e0e0 | 1167 | if(i3==i1||i3==i2)continue; |
1168 | fTrack=anEvent->GetTrack(i3); | |
bc92c0cb | 1169 | phi3=fTrack->Phi(); |
1315fe58 | 1170 | fDirectCorrelations->Fill(5.,cos(2*n*phi1-n*(phi2+phi3)),1); //<3>_{2n|n,n} |
1171 | fDirectCorrelations->Fill(6.,cos(3.*n*phi1-2.*n*phi2-n*phi3),1); //<3>_{3n|2n,n} | |
1172 | fDirectCorrelations->Fill(7.,cos(4.*n*phi1-2.*n*phi2-2.*n*phi3),1); //<3>_{4n|2n,2n} | |
1173 | fDirectCorrelations->Fill(8.,cos(4.*n*phi1-3.*n*phi2-n*phi3),1); //<3>_{4n|3n,n} | |
bc92c0cb | 1174 | } |
1175 | } | |
1176 | } | |
1177 | ||
dee1e0e0 | 1178 | //<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 | 1179 | for(Int_t i1=0;i1<dMult;i1++) |
bc92c0cb | 1180 | { |
dee1e0e0 | 1181 | fTrack=anEvent->GetTrack(i1); |
bc92c0cb | 1182 | phi1=fTrack->Phi(); |
1dfa3c16 | 1183 | for(Int_t i2=0;i2<dMult;i2++) |
bc92c0cb | 1184 | { |
dee1e0e0 | 1185 | if(i2==i1)continue; |
1186 | fTrack=anEvent->GetTrack(i2); | |
bc92c0cb | 1187 | phi2=fTrack->Phi(); |
1dfa3c16 | 1188 | for(Int_t i3=0;i3<dMult;i3++) |
bc92c0cb | 1189 | { |
dee1e0e0 | 1190 | if(i3==i1||i3==i2)continue; |
1191 | fTrack=anEvent->GetTrack(i3); | |
bc92c0cb | 1192 | phi3=fTrack->Phi(); |
1dfa3c16 | 1193 | for(Int_t i4=0;i4<dMult;i4++) |
bc92c0cb | 1194 | { |
dee1e0e0 | 1195 | if(i4==i1||i4==i2||i4==i3)continue; |
1196 | fTrack=anEvent->GetTrack(i4); | |
bc92c0cb | 1197 | phi4=fTrack->Phi(); |
dee1e0e0 | 1198 | fDirectCorrelations->Fill(10.,cos(n*phi1+n*phi2-n*phi3-n*phi4),1); //<4>_{n,n|n,n} |
1199 | fDirectCorrelations->Fill(11.,cos(2.*n*phi1+n*phi2-2.*n*phi3-n*phi4),1); //<4>_{2n,n|2n,n} | |
1200 | fDirectCorrelations->Fill(12.,cos(2.*n*phi1+2*n*phi2-2.*n*phi3-2.*n*phi4),1); //<4>_{2n,2n|2n,2n} | |
1201 | fDirectCorrelations->Fill(13.,cos(3.*n*phi1-n*phi2-n*phi3-n*phi4),1); //<4>_{3n|n,n,n} | |
1202 | fDirectCorrelations->Fill(14.,cos(3.*n*phi1+n*phi2-3.*n*phi3-n*phi4),1); //<4>_{3n,n|3n,n} | |
1203 | fDirectCorrelations->Fill(15.,cos(3.*n*phi1+n*phi2-2.*n*phi3-2.*n*phi4),1); //<4>_{3n,n|2n,2n} | |
1204 | fDirectCorrelations->Fill(16.,cos(4.*n*phi1-2.*n*phi2-n*phi3-n*phi4),1); //<4>_{4n|2n,n,n} | |
bc92c0cb | 1205 | } |
1206 | } | |
1207 | } | |
1208 | } | |
1209 | ||
dee1e0e0 | 1210 | //<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 | 1211 | for(Int_t i1=0;i1<dMult;i1++) |
bc92c0cb | 1212 | { |
dee1e0e0 | 1213 | //cout<<"i1 = "<<i1<<endl; |
1214 | fTrack=anEvent->GetTrack(i1); | |
bc92c0cb | 1215 | phi1=fTrack->Phi(); |
1dfa3c16 | 1216 | for(Int_t i2=0;i2<dMult;i2++) |
bc92c0cb | 1217 | { |
dee1e0e0 | 1218 | if(i2==i1)continue; |
1219 | fTrack=anEvent->GetTrack(i2); | |
bc92c0cb | 1220 | phi2=fTrack->Phi(); |
1dfa3c16 | 1221 | for(Int_t i3=0;i3<dMult;i3++) |
bc92c0cb | 1222 | { |
dee1e0e0 | 1223 | if(i3==i1||i3==i2)continue; |
1224 | fTrack=anEvent->GetTrack(i3); | |
bc92c0cb | 1225 | phi3=fTrack->Phi(); |
1dfa3c16 | 1226 | for(Int_t i4=0;i4<dMult;i4++) |
bc92c0cb | 1227 | { |
dee1e0e0 | 1228 | if(i4==i1||i4==i2||i4==i3)continue; |
1229 | fTrack=anEvent->GetTrack(i4); | |
bc92c0cb | 1230 | phi4=fTrack->Phi(); |
1dfa3c16 | 1231 | for(Int_t i5=0;i5<dMult;i5++) |
bc92c0cb | 1232 | { |
dee1e0e0 | 1233 | if(i5==i1||i5==i2||i5==i3||i5==i4)continue; |
1234 | fTrack=anEvent->GetTrack(i5); | |
bc92c0cb | 1235 | phi5=fTrack->Phi(); |
dee1e0e0 | 1236 | fDirectCorrelations->Fill(18.,cos(2.*n*phi1+n*phi2-n*phi3-n*phi4-n*phi5),1); //<5>_{2n,n|n,n,n} |
1237 | fDirectCorrelations->Fill(19.,cos(2.*n*phi1+2.*n*phi2-2.*n*phi3-n*phi4-n*phi5),1); //<5>_{2n,2n|2n,n,n} | |
1238 | fDirectCorrelations->Fill(20.,cos(3.*n*phi1+n*phi2-2.*n*phi3-n*phi4-n*phi5),1); //<5>_{3n,n|2n,n,n} | |
1239 | fDirectCorrelations->Fill(21.,cos(4.*n*phi1-n*phi2-n*phi3-n*phi4-n*phi5),1); //<5>_{4n|n,n,n,n} | |
bc92c0cb | 1240 | } |
1241 | } | |
1242 | } | |
1243 | } | |
1244 | } | |
1245 | ||
dee1e0e0 | 1246 | //<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 | 1247 | for(Int_t i1=0;i1<dMult;i1++) |
dee1e0e0 | 1248 | { |
1249 | //cout<<"i1 = "<<i1<<endl; | |
1250 | fTrack=anEvent->GetTrack(i1); | |
1251 | phi1=fTrack->Phi(); | |
1dfa3c16 | 1252 | for(Int_t i2=0;i2<dMult;i2++) |
dee1e0e0 | 1253 | { |
1254 | if(i2==i1)continue; | |
1255 | fTrack=anEvent->GetTrack(i2); | |
1256 | phi2=fTrack->Phi(); | |
1dfa3c16 | 1257 | for(Int_t i3=0;i3<dMult;i3++) |
dee1e0e0 | 1258 | { |
1259 | if(i3==i1||i3==i2)continue; | |
1260 | fTrack=anEvent->GetTrack(i3); | |
1261 | phi3=fTrack->Phi(); | |
1dfa3c16 | 1262 | for(Int_t i4=0;i4<dMult;i4++) |
dee1e0e0 | 1263 | { |
1264 | if(i4==i1||i4==i2||i4==i3)continue; | |
1265 | fTrack=anEvent->GetTrack(i4); | |
1266 | phi4=fTrack->Phi(); | |
1dfa3c16 | 1267 | for(Int_t i5=0;i5<dMult;i5++) |
dee1e0e0 | 1268 | { |
1269 | if(i5==i1||i5==i2||i5==i3||i5==i4)continue; | |
1270 | fTrack=anEvent->GetTrack(i5); | |
1271 | phi5=fTrack->Phi(); | |
1dfa3c16 | 1272 | for(Int_t i6=0;i6<dMult;i6++) |
dee1e0e0 | 1273 | { |
1274 | if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue; | |
1275 | fTrack=anEvent->GetTrack(i6); | |
1276 | phi6=fTrack->Phi(); | |
1277 | fDirectCorrelations->Fill(23.,cos(n*phi1+n*phi2+n*phi3-n*phi4-n*phi5-n*phi6),1); //<6>_{n,n,n|n,n,n} | |
1278 | fDirectCorrelations->Fill(24.,cos(2.*n*phi1+n*phi2+n*phi3-2.*n*phi4-n*phi5-n*phi6),1); //<6>_{2n,n,n|2n,n,n} | |
1279 | fDirectCorrelations->Fill(25.,cos(2.*n*phi1+2.*n*phi2-n*phi3-n*phi4-n*phi5-n*phi6),1); //<6>_{2n,2n|n,n,n,n} | |
1280 | fDirectCorrelations->Fill(26.,cos(3.*n*phi1+n*phi2-n*phi3-n*phi4-n*phi5-n*phi6),1); //<6>_{3n,n|n,n,n,n} | |
1281 | } | |
1282 | } | |
1283 | } | |
1284 | } | |
1285 | } | |
1286 | } | |
52021ae2 | 1287 | |
dee1e0e0 | 1288 | //<7>_{2n,n,n|n,n,n,n} |
1dfa3c16 | 1289 | for(Int_t i1=0;i1<dMult;i1++) |
bc92c0cb | 1290 | { |
dee1e0e0 | 1291 | //cout<<"i1 = "<<i1<<endl; |
1292 | fTrack=anEvent->GetTrack(i1); | |
bc92c0cb | 1293 | phi1=fTrack->Phi(); |
1dfa3c16 | 1294 | for(Int_t i2=0;i2<dMult;i2++) |
bc92c0cb | 1295 | { |
dee1e0e0 | 1296 | if(i2==i1)continue; |
1297 | fTrack=anEvent->GetTrack(i2); | |
bc92c0cb | 1298 | phi2=fTrack->Phi(); |
1dfa3c16 | 1299 | for(Int_t i3=0;i3<dMult;i3++) |
bc92c0cb | 1300 | { |
dee1e0e0 | 1301 | if(i3==i1||i3==i2)continue; |
1302 | fTrack=anEvent->GetTrack(i3); | |
bc92c0cb | 1303 | phi3=fTrack->Phi(); |
1dfa3c16 | 1304 | for(Int_t i4=0;i4<dMult;i4++) |
bc92c0cb | 1305 | { |
dee1e0e0 | 1306 | if(i4==i1||i4==i2||i4==i3)continue; |
1307 | fTrack=anEvent->GetTrack(i4); | |
bc92c0cb | 1308 | phi4=fTrack->Phi(); |
1dfa3c16 | 1309 | for(Int_t i5=0;i5<dMult;i5++) |
bc92c0cb | 1310 | { |
dee1e0e0 | 1311 | if(i5==i1||i5==i2||i5==i3||i5==i4)continue; |
1312 | fTrack=anEvent->GetTrack(i5); | |
bc92c0cb | 1313 | phi5=fTrack->Phi(); |
1dfa3c16 | 1314 | for(Int_t i6=0;i6<dMult;i6++) |
bc92c0cb | 1315 | { |
dee1e0e0 | 1316 | if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue; |
1317 | fTrack=anEvent->GetTrack(i6); | |
bc92c0cb | 1318 | phi6=fTrack->Phi(); |
1dfa3c16 | 1319 | for(Int_t i7=0;i7<dMult;i7++) |
dee1e0e0 | 1320 | { |
1321 | if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue; | |
1322 | fTrack=anEvent->GetTrack(i7); | |
1323 | phi7=fTrack->Phi(); | |
1324 | fDirectCorrelations->Fill(28.,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} | |
1325 | } | |
bc92c0cb | 1326 | } |
1327 | } | |
1328 | } | |
1329 | } | |
1330 | } | |
1331 | } | |
52021ae2 | 1332 | |
dee1e0e0 | 1333 | //<8>_{n,n,n,n|n,n,n,n} |
1dfa3c16 | 1334 | for(Int_t i1=0;i1<dMult;i1++) |
dee1e0e0 | 1335 | { |
1336 | cout<<"i1 = "<<i1<<endl; | |
1337 | fTrack=anEvent->GetTrack(i1); | |
1338 | phi1=fTrack->Phi(); | |
1dfa3c16 | 1339 | for(Int_t i2=0;i2<dMult;i2++) |
dee1e0e0 | 1340 | { |
1341 | if(i2==i1)continue; | |
1342 | fTrack=anEvent->GetTrack(i2); | |
1343 | phi2=fTrack->Phi(); | |
1dfa3c16 | 1344 | for(Int_t i3=0;i3<dMult;i3++) |
dee1e0e0 | 1345 | { |
1346 | if(i3==i1||i3==i2)continue; | |
1347 | fTrack=anEvent->GetTrack(i3); | |
1348 | phi3=fTrack->Phi(); | |
1dfa3c16 | 1349 | for(Int_t i4=0;i4<dMult;i4++) |
dee1e0e0 | 1350 | { |
1351 | if(i4==i1||i4==i2||i4==i3)continue; | |
1352 | fTrack=anEvent->GetTrack(i4); | |
1353 | phi4=fTrack->Phi(); | |
1dfa3c16 | 1354 | for(Int_t i5=0;i5<dMult;i5++) |
dee1e0e0 | 1355 | { |
1356 | if(i5==i1||i5==i2||i5==i3||i5==i4)continue; | |
1357 | fTrack=anEvent->GetTrack(i5); | |
1358 | phi5=fTrack->Phi(); | |
1dfa3c16 | 1359 | for(Int_t i6=0;i6<dMult;i6++) |
dee1e0e0 | 1360 | { |
1361 | if(i6==i1||i6==i2||i6==i3||i6==i4||i6==i5)continue; | |
1362 | fTrack=anEvent->GetTrack(i6); | |
1363 | phi6=fTrack->Phi(); | |
1dfa3c16 | 1364 | for(Int_t i7=0;i7<dMult;i7++) |
dee1e0e0 | 1365 | { |
1366 | if(i7==i1||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue; | |
1367 | fTrack=anEvent->GetTrack(i7); | |
1368 | phi7=fTrack->Phi(); | |
1dfa3c16 | 1369 | for(Int_t i8=0;i8<dMult;i8++) |
dee1e0e0 | 1370 | { |
1371 | if(i8==i1||i8==i2||i8==i3||i8==i4||i8==i5||i8==i6||i8==i7)continue; | |
1372 | fTrack=anEvent->GetTrack(i8); | |
1373 | phi8=fTrack->Phi(); | |
1374 | fDirectCorrelations->Fill(30.,cos(n*phi1+n*phi2+n*phi3+n*phi4-n*phi5-n*phi6-n*phi7-n*phi8),1);//<8>_{n,n,n,n|n,n,n,n} | |
1375 | } | |
1376 | } | |
1377 | } | |
1378 | } | |
1379 | } | |
1380 | } | |
1381 | } | |
1382 | } | |
bc92c0cb | 1383 | |
dee1e0e0 | 1384 | // binning details of fDirectCorrelations (differential flow): |
1385 | // | |
bc92c0cb | 1386 | //41st bin: <2'>_{n|n} |
1387 | //42nd bin: <2'>_{2n|2n} | |
1388 | //46th bin: <3'>_{2n|n,n} | |
1389 | //47th bin: <3'>_{n,n|2n} | |
1390 | //51st bin: <4'>_{n,n|n,n} | |
1391 | ||
1392 | //<2'>_{n|n} | |
1dfa3c16 | 1393 | for(Int_t i1=0;i1<dMult;i1++) |
bc92c0cb | 1394 | { |
dee1e0e0 | 1395 | fTrack=anEvent->GetTrack(i1); |
bc92c0cb | 1396 | if(fTrack->Pt()>=0.5&&fTrack->Pt()<0.6) |
1397 | { | |
1398 | phi1=fTrack->Phi(); | |
1dfa3c16 | 1399 | for(Int_t i2=0;i2<dMult;i2++) |
bc92c0cb | 1400 | { |
dee1e0e0 | 1401 | if(i2==i1)continue; |
1402 | fTrack=anEvent->GetTrack(i2); | |
bc92c0cb | 1403 | phi2=fTrack->Phi(); |
1404 | fDirectCorrelations->Fill(40.,cos(1.*n*(phi1-phi2)),1); //<2'>_{n,n} | |
1405 | fDirectCorrelations->Fill(41.,cos(2.*n*(phi1-phi2)),1); //<2'>_{2n,2n} | |
1406 | } | |
1407 | } | |
1408 | } | |
1409 | ||
1410 | //<3'>_{2n|n,n} | |
1dfa3c16 | 1411 | for(Int_t i1=0;i1<dMult;i1++) |
bc92c0cb | 1412 | { |
dee1e0e0 | 1413 | fTrack=anEvent->GetTrack(i1); |
bc92c0cb | 1414 | if(fTrack->Pt()>=0.5&&fTrack->Pt()<0.6) |
1415 | { | |
1416 | phi1=fTrack->Phi(); | |
1dfa3c16 | 1417 | for(Int_t i2=0;i2<dMult;i2++) |
bc92c0cb | 1418 | { |
dee1e0e0 | 1419 | if(i2==i1)continue; |
1420 | fTrack=anEvent->GetTrack(i2); | |
bc92c0cb | 1421 | phi2=fTrack->Phi(); |
1dfa3c16 | 1422 | for(Int_t i3=0;i3<dMult;i3++) |
bc92c0cb | 1423 | { |
dee1e0e0 | 1424 | if(i3==i1||i3==i2)continue; |
1425 | fTrack=anEvent->GetTrack(i3); | |
bc92c0cb | 1426 | phi3=fTrack->Phi(); |
1427 | fDirectCorrelations->Fill(45.,cos(n*(2.*phi1-phi2-phi3)),1); //<3'>_{2n|n,n} | |
1428 | fDirectCorrelations->Fill(46.,cos(n*(phi1+phi2-2.*phi3)),1); //<3'>_{n,n|2n} | |
1429 | } | |
1430 | } | |
1431 | } | |
1432 | } | |
1433 | ||
1434 | //<4'>_{n,n|n,n} | |
1dfa3c16 | 1435 | for(Int_t i1=0;i1<dMult;i1++) |
bc92c0cb | 1436 | { |
dee1e0e0 | 1437 | fTrack=anEvent->GetTrack(i1); |
bc92c0cb | 1438 | if(fTrack->Pt()>=0.5&&fTrack->Pt()<0.6) |
1439 | { | |
1440 | phi1=fTrack->Phi(); | |
1dfa3c16 | 1441 | for(Int_t i2=0;i2<dMult;i2++) |
bc92c0cb | 1442 | { |
dee1e0e0 | 1443 | if(i2==i1)continue; |
1444 | fTrack=anEvent->GetTrack(i2); | |
bc92c0cb | 1445 | phi2=fTrack->Phi(); |
1dfa3c16 | 1446 | for(Int_t i3=0;i3<dMult;i3++) |
bc92c0cb | 1447 | { |
dee1e0e0 | 1448 | if(i3==i1||i3==i2)continue; |
1449 | fTrack=anEvent->GetTrack(i3); | |
bc92c0cb | 1450 | phi3=fTrack->Phi(); |
1dfa3c16 | 1451 | for(Int_t i4=0;i4<dMult;i4++) |
bc92c0cb | 1452 | { |
dee1e0e0 | 1453 | if(i4==i1||i4==i2||i4==i3)continue; |
1454 | fTrack=anEvent->GetTrack(i4); | |
bc92c0cb | 1455 | phi4=fTrack->Phi(); |
1456 | fDirectCorrelations->Fill(50.,cos(n*(phi1+phi2-phi3-phi4)),1); //<4'>_{n,n|n,n} | |
1457 | } | |
1458 | } | |
1459 | } | |
1460 | } | |
1461 | } | |
1462 | //-------------------------------------------------------------------------------------------------------------------------------- | |
1463 | ||
1464 | ||
bc92c0cb | 1465 | |
1466 | ||
dee1e0e0 | 1467 | */ |
bc92c0cb | 1468 | |
1469 | ||
1470 | ||
bc92c0cb | 1471 | |
dee1e0e0 | 1472 | //}//line needed only for nested loops - end of if(nPrim>8&&nPrim<14) |
bc92c0cb | 1473 | |
1474 | }//end of Make() | |
1475 | ||
1476 | //================================================================================================================ | |
1477 | ||
1478 | void AliFlowAnalysisWithQCumulants::Finish() | |
1479 | { | |
1315fe58 | 1480 | //calculate the final results |
1dfa3c16 | 1481 | AliQCumulantsFunctions finalResults(fIntFlowResultsQC,fDiffFlowResults2ndOrderQC,fDiffFlowResults4thOrderQC,fCovariances,fAvMultIntFlowQC,fQvectorComponents,fQCorrelations, fQProduct,fDirectCorrelations,f2PerPtBin1n1nRP,f2PerPtBin2n2nRP,f3PerPtBin2n1n1nRP,f3PerPtBin1n1n2nRP,f4PerPtBin1n1n1n1nRP, f2PerEtaBin1n1nRP,f2PerEtaBin2n2nRP,f3PerEtaBin2n1n1nRP,f3PerEtaBin1n1n2nRP,f4PerEtaBin1n1n1n1nRP, f2PerPtBin1n1nPOI,f2PerPtBin2n2nPOI,f3PerPtBin2n1n1nPOI,f3PerPtBin1n1n2nPOI,f4PerPtBin1n1n1n1nPOI, f2PerEtaBin1n1nPOI,f2PerEtaBin2n2nPOI,f3PerEtaBin2n1n1nPOI,f3PerEtaBin1n1n2nPOI,f4PerEtaBin1n1n1n1nPOI,fCommonHistsResults2nd, fCommonHistsResults4th,fCommonHistsResults6th,fCommonHistsResults8th); |
1315fe58 | 1482 | |
1483 | finalResults.Calculate(); | |
bc92c0cb | 1484 | } |
1485 | ||
1315fe58 | 1486 | //================================================================================================================ |
bc92c0cb | 1487 | |
1315fe58 | 1488 | void AliFlowAnalysisWithQCumulants::WriteHistograms(TString* outputFileName) |
1489 | { | |
1490 | //store the final results in output .root file | |
1491 | TFile *output = new TFile(outputFileName->Data(),"RECREATE"); | |
7a2c2652 | 1492 | output->WriteObject(fHistList, "cobjQC","SingleKey"); |
1315fe58 | 1493 | delete output; |
1494 | } | |
bc92c0cb | 1495 | |
1315fe58 | 1496 | //================================================================================================================ |
dee1e0e0 | 1497 |