]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/AliFlowCommon/AliFlowAnalysisWithQCumulants.h
allow to cut on multiplicity
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowCommon / AliFlowAnalysisWithQCumulants.h
CommitLineData
bc92c0cb 1/*
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved.
3 * See cxx source for full Copyright notice
4 * $Id$
5 */
6
7/**********************************
8 * flow analysis with Q-cumulants *
9 * *
10 * author: Ante Bilandzic *
11 * (anteb@nikhef.nl) *
12 *********************************/
13
52021ae2 14#ifndef ALIFLOWANALYSISWITHQCUMULANTS_H
15#define ALIFLOWANALYSISWITHQCUMULANTS_H
bc92c0cb 16
9c1a9547 17#include "AliFlowCommonConstants.h" // needed as include
18#include "TMatrixD.h"
19#include "TH2D.h"
20#include "TBits.h"
bc92c0cb 21
22class TObjArray;
23class TList;
24class TFile;
e085f1a9 25class TGraph;
bc92c0cb 26
27class TH1;
28class TProfile;
9c1a9547 29class TProfile2D;
bc92c0cb 30
31class AliFlowEventSimple;
32class AliFlowTrackSimple;
52021ae2 33class AliFlowVector;
34
bc92c0cb 35class AliFlowCommonHist;
36class AliFlowCommonHistResults;
bc92c0cb 37
38//================================================================================================================
39
40class AliFlowAnalysisWithQCumulants{
41 public:
42 AliFlowAnalysisWithQCumulants();
43 virtual ~AliFlowAnalysisWithQCumulants();
44
e085f1a9 45 virtual void Init();
bc92c0cb 46 virtual void Make(AliFlowEventSimple* anEvent);
9c1a9547 47
48 virtual void CalculateCorrelationsForIntegratedFlow(); // everything cross-checked (2-8)
49 virtual void CalculateWeightedCorrelationsForIntegratedFlow();
50 virtual void CalculateCorrelationsForDifferentialFlow(TString type="POI");
51 virtual void CalculateWeightedCorrelationsForDifferentialFlow(TString type="POI");
c365fe76 52
53 virtual void CalculateCorrectionsForNonUniformAcceptanceCosTerms();
54 virtual void CalculateCorrectionsForNonUniformAcceptanceSinTerms();
55
9c1a9547 56 virtual void EvaluateNestedLoopsForIntegratedFlow(AliFlowEventSimple* anEvent);
57 virtual void EvaluateNestedLoopsForDifferentialFlow(AliFlowEventSimple* anEvent);
58
fd46c3dd 59 virtual void GetOutputHistograms(TList *outputListHistos); // get pointers to all output histograms (called before Finish())
bc92c0cb 60 virtual void Finish();
9c1a9547 61
62 TProfile* MakePtProjection(TProfile2D *profilePtEta) const;
63 TProfile* MakeEtaProjection(TProfile2D *profilePtEta) const;
64
c365fe76 65 virtual void CalculateFinalCorrectionsForNonUniformAcceptance(Bool_t useWeights=kFALSE);
66
9c1a9547 67 virtual void CalculateFinalResultsForNoNameIntegratedFlow(Bool_t useWeights=kFALSE);
68 virtual void CalculateFinalResultsForRPandPOIIntegratedFlow(Bool_t useWeights, TString type);
3c16adde 69 virtual void CalculateFinalResultsForDifferentialFlow(TH2D *flowPtEta, TH1D *flowPt, TH1D *flowEta,
70 TProfile2D *profile2ndPtEta, TProfile2D *profile4thPtEta = NULL,
71 TProfile2D *profile6thPtEta = NULL, TProfile2D *profile8thPtEta = NULL);
9c1a9547 72
73 virtual void PrintFinalResultsForIntegratedFlow(Bool_t useWeights=kTRUE, TString type="NONAME");
74
75 virtual void CompareDirectAndQCorrelationsForIntegratedFlow(Bool_t useWeights);
76 virtual void CompareDirectAndQCorrelationsForDifferentialFlow(Bool_t useWeights);
77
4057ba99 78 virtual void WriteHistograms(TString outputFileName);
9c1a9547 79
80 virtual void TempDeleteMe();
8842fb2b 81
82//----------------------------------------------------------------------------------------------------------------
83// setters and getters
84//----------------------------------------------------------------------------------------------------------------
03a02aca 85 TList* GetHistList() const {return this->fHistList;}
86
87 void SetWeightsList(TList* wlist) {this->fWeightsList = wlist;}
9c1a9547 88 TList* GetWeightsList() const {return this->fWeightsList;}
89
90 void SetResultsList(TList* rlist) {this->fResultsList = rlist;}
91 TList* GetResultsList() const {return this->fResultsList;}
c365fe76 92
93 void SetFinalCorrectionsForNUA(TH1D* const fcfnua) {this->fFinalCorrectionsForNUA = fcfnua;}; // NUA = non-uniform acceptance
94 TH1D* GetFinalCorrectionsForNUA() const {return this->fFinalCorrectionsForNUA;};
bc92c0cb 95
52021ae2 96 void SetIntFlowResults(TH1D* const ifr) {this->fIntFlowResultsQC = ifr;};
97 TH1D* GetIntFlowResults() const {return this->fIntFlowResultsQC;};
8842fb2b 98
9c1a9547 99 void SetIntFlowResultsW(TH1D* const ifrw) {this->fIntFlowResultsQCW = ifrw;};
100 TH1D* GetIntFlowResultsW() const {return this->fIntFlowResultsQCW;};
101
102 void SetIntFlowResultsPOI(TH1D* const ifrp) {this->fIntFlowResultsPOIQC = ifrp;};
103 TH1D* GetIntFlowResultsPOI() const {return this->fIntFlowResultsPOIQC;};
104
105 void SetIntFlowResultsPOIW(TH1D* const ifrpw) {this->fIntFlowResultsPOIQCW = ifrpw;};
106 TH1D* GetIntFlowResultsPOIW() const {return this->fIntFlowResultsPOIQCW;};
107
108 void SetIntFlowResultsRP(TH1D* const ifrr) {this->fIntFlowResultsRPQC = ifrr;};
109 TH1D* GetIntFlowResultsRP() const {return this->fIntFlowResultsRPQC;};
110
111 void SetIntFlowResultsRPW(TH1D* const ifrrw) {this->fIntFlowResultsRPQCW = ifrrw;};
112 TH1D* GetIntFlowResultsRPW() const {return this->fIntFlowResultsRPQCW;};
113
114
115
116
117
52021ae2 118 void SetDiffFlowResults2nd(TH1D* const diff2nd) {this->fDiffFlowResults2ndOrderQC = diff2nd;};
119 TH1D* GetDiffFlowResults2nd() const {return this->fDiffFlowResults2ndOrderQC;};
8842fb2b 120
52021ae2 121 void SetDiffFlowResults4th(TH1D* const diff4th) {this->fDiffFlowResults4thOrderQC = diff4th;};
122 TH1D* GetDiffFlowResults4th() const {return this->fDiffFlowResults4thOrderQC;};
8842fb2b 123
52021ae2 124 void SetCovariances(TH1D* const cov) {this->fCovariances = cov;};
125 TH1D* GetCovariances() const {return this->fCovariances;};
8842fb2b 126
7e58a232 127 void SetCommonHists2nd(AliFlowCommonHist* const ch2nd) {this->fCommonHists2nd = ch2nd;};
128 AliFlowCommonHist* GetCommonHists2nd() const {return this->fCommonHists2nd;};
129
130 void SetCommonHists4th(AliFlowCommonHist* const ch4th) {this->fCommonHists4th = ch4th;};
131 AliFlowCommonHist* GetCommonHists4th() const {return this->fCommonHists4th;};
132
133 void SetCommonHists6th(AliFlowCommonHist* const ch6th) {this->fCommonHists6th = ch6th;};
134 AliFlowCommonHist* GetCommonHists6th() const {return this->fCommonHists6th;};
135
136 void SetCommonHists8th(AliFlowCommonHist* const ch8th) {this->fCommonHists8th = ch8th;};
137 AliFlowCommonHist* GetCommonHists8th() const {return this->fCommonHists8th;};
138
52021ae2 139 void SetCommonHistsResults2nd(AliFlowCommonHistResults* const chr2nd) {this->fCommonHistsResults2nd = chr2nd;};
140 AliFlowCommonHistResults* GetCommonHistsResults2nd() const {return this->fCommonHistsResults2nd;};
8842fb2b 141
52021ae2 142 void SetCommonHistsResults4th(AliFlowCommonHistResults* const chr4th) {this->fCommonHistsResults4th = chr4th;};
143 AliFlowCommonHistResults* GetCommonHistsResults4th() const {return this->fCommonHistsResults4th;};
8842fb2b 144
52021ae2 145 void SetCommonHistsResults6th(AliFlowCommonHistResults* const chr6th) {this->fCommonHistsResults6th = chr6th;};
146 AliFlowCommonHistResults* GetCommonHistsResults6th() const {return this->fCommonHistsResults6th;};
8842fb2b 147
52021ae2 148 void SetCommonHistsResults8th(AliFlowCommonHistResults* const chr8th) {this->fCommonHistsResults8th = chr8th;};
149 AliFlowCommonHistResults* GetCommonHistsResults8th() const {return this->fCommonHistsResults8th;};
8842fb2b 150
52021ae2 151 void SetAverageMultiplicity(TProfile* const am) {this->fAvMultIntFlowQC = am;};
152 TProfile* GetAverageMultiplicity() const {return this->fAvMultIntFlowQC;};
8842fb2b 153
e085f1a9 154 void SetQvectorForEachEventX(TProfile* const qvfeex) {this->fQvectorForEachEventX = qvfeex;};
155 TProfile* GetQvectorForEachEventX() const {return this->fQvectorForEachEventX;};
156
157 void SetQvectorForEachEventY(TProfile* const qvfeey) {this->fQvectorForEachEventY = qvfeey;};
158 TProfile* GetQvectorForEachEventY() const {return this->fQvectorForEachEventY;};
159
52021ae2 160 void SetQCorrelations(TProfile* const QCorr) {this->fQCorrelations = QCorr;};
161 TProfile* GetQCorrelations() const {return this->fQCorrelations;};
8842fb2b 162
9c1a9547 163 void SetQCorrelationsW(TProfile* const QCorrW) {this->fQCorrelationsW = QCorrW;};
164 TProfile* GetQCorrelationsW() const {return this->fQCorrelationsW;};
3d824203 165
c365fe76 166 void SetQCorrectionsCos(TProfile* const QCorrectCos) {this->fQCorrectionsCos = QCorrectCos;};
167 TProfile* GetQCorrectionsCos() const {return this->fQCorrectionsCos;};
168
169 void SetQCorrectionsSin(TProfile* const QCorrectSin) {this->fQCorrectionsSin = QCorrectSin;};
170 TProfile* GetQCorrectionsSin() const {return this->fQCorrectionsSin;};
171
52021ae2 172 void SetQProduct(TProfile* const qp) {this->fQProduct = qp;};
173 TProfile* GetQProduct() const {return this->fQProduct;};
8842fb2b 174
52021ae2 175 void SetQVectorComponents(TProfile* const qvc) {this->fQvectorComponents = qvc;};
176 TProfile* GetQVectorComponents() const {return this->fQvectorComponents;};
8842fb2b 177
1dfa3c16 178 void SetTwo1n1nPerPtBinRP(TProfile* const pb2PerPtBin1n1nRP) {this->f2PerPtBin1n1nRP = pb2PerPtBin1n1nRP;};
179 TProfile* GetTwo1n1nPerPtBinRP() const {return this->f2PerPtBin1n1nRP;};
8842fb2b 180
1dfa3c16 181 void SetFour1n1n1n1nPerPtBinRP(TProfile* const pb4PerPtBin1n1n1n1nRP) {this->f4PerPtBin1n1n1n1nRP = pb4PerPtBin1n1n1n1nRP;};
182 TProfile* GetFour1n1n1n1nPerPtBinRP() const {return this->f4PerPtBin1n1n1n1nRP;};
03a02aca 183
1dfa3c16 184 void SetTwo1n1nPerEtaBinRP(TProfile* const pb2PerEtaBin1n1nRP) {this->f2PerEtaBin1n1nRP = pb2PerEtaBin1n1nRP;};
185 TProfile* GetTwo1n1nPerEtaBinRP() const {return this->f2PerEtaBin1n1nRP;};
186
1dfa3c16 187 void SetFour1n1n1n1nPerEtaBinRP(TProfile* const pb4PerEtaBin1n1n1n1nRP) {this->f4PerEtaBin1n1n1n1nRP = pb4PerEtaBin1n1n1n1nRP;};
188 TProfile* GetFour1n1n1n1nPerEtaBinRP() const {return this->f4PerEtaBin1n1n1n1nRP;};
189
190 void SetTwo1n1nPerPtBinPOI(TProfile* const pb2PerPtBin1n1nPOI) {this->f2PerPtBin1n1nPOI = pb2PerPtBin1n1nPOI;};
191 TProfile* GetTwo1n1nPerPtBinPOI() const {return this->f2PerPtBin1n1nPOI;};
192
1dfa3c16 193 void SetFour1n1n1n1nPerPtBinPOI(TProfile* const pb4PerPtBin1n1n1n1nPOI) {this->f4PerPtBin1n1n1n1nPOI = pb4PerPtBin1n1n1n1nPOI;};
194 TProfile* GetFour1n1n1n1nPerPtBinPOI() const {return this->f4PerPtBin1n1n1n1nPOI;};
195
196 void SetTwo1n1nPerEtaBinPOI(TProfile* const pb2PerEtaBin1n1nPOI) {this->f2PerEtaBin1n1nPOI = pb2PerEtaBin1n1nPOI;};
197 TProfile* GetTwo1n1nPerEtaBinPOI() const {return this->f2PerEtaBin1n1nPOI;};
198
1dfa3c16 199 void SetFour1n1n1n1nPerEtaBinPOI(TProfile* const pb4PerEtaBin1n1n1n1nPOI) {this->f4PerEtaBin1n1n1n1nPOI = pb4PerEtaBin1n1n1n1nPOI;};
200 TProfile* GetFour1n1n1n1nPerEtaBinPOI() const {return this->f4PerEtaBin1n1n1n1nPOI;};
8842fb2b 201
3d824203 202 void SetTwo1n1nWPerPtBinPOI(TProfile* const pb2WPerPtBin1n1nPOI) {this->f2WPerPtBin1n1nPOI = pb2WPerPtBin1n1nPOI;};
203 TProfile* GetTwo1n1nWPerPtBinPOI() const {return this->f2WPerPtBin1n1nPOI;};
204
3d824203 205 void SetFour1n1n1n1nWPerPtBinPOI(TProfile* const pb4WPerPtBin1n1n1n1nPOI) {this->f4WPerPtBin1n1n1n1nPOI = pb4WPerPtBin1n1n1n1nPOI;};
206 TProfile* GetFour1n1n1n1nWPerPtBinPOI() const {return this->f4WPerPtBin1n1n1n1nPOI;}
207
3d824203 208 void SetTwo1n1nWPerEtaBinPOI(TProfile* const pb2WPerEtaBin1n1nPOI) {this->f2WPerEtaBin1n1nPOI = pb2WPerEtaBin1n1nPOI;};
209 TProfile* GetTwo1n1nWPerEtaBinPOI() const {return this->f2WPerEtaBin1n1nPOI;};
210
211 void SetFour1n1n1n1nWPerEtaBinPOI(TProfile* const pb4WPerEtaBin1n1n1n1nPOI) {this->f4WPerEtaBin1n1n1n1nPOI = pb4WPerEtaBin1n1n1n1nPOI;};
212 TProfile* GetFour1n1n1n1nWPerEtaBinPOI() const {return this->f4WPerEtaBin1n1n1n1nPOI;}
213
214 void SetTwo1n1nWPerPtBinRP(TProfile* const pb2WPerPtBin1n1nRP) {this->f2WPerPtBin1n1nRP = pb2WPerPtBin1n1nRP;};
215 TProfile* GetTwo1n1nWPerPtBinRP() const {return this->f2WPerPtBin1n1nRP;};
216
217 void SetFour1n1n1n1nWPerPtBinRP(TProfile* const pb4WPerPtBin1n1n1n1nRP) {this->f4WPerPtBin1n1n1n1nRP = pb4WPerPtBin1n1n1n1nRP;};
218 TProfile* GetFour1n1n1n1nWPerPtBinRP() const {return this->f4WPerPtBin1n1n1n1nRP;}
219
220 void SetTwo1n1nWPerEtaBinRP(TProfile* const pb2WPerEtaBin1n1nRP) {this->f2WPerEtaBin1n1nRP = pb2WPerEtaBin1n1nRP;};
221 TProfile* GetTwo1n1nWPerEtaBinRP() const {return this->f2WPerEtaBin1n1nRP;};
222
223 void SetFour1n1n1n1nWPerEtaBinRP(TProfile* const pb4WPerEtaBin1n1n1n1nRP) {this->f4WPerEtaBin1n1n1n1nRP = pb4WPerEtaBin1n1n1n1nRP;};
224 TProfile* GetFour1n1n1n1nWPerEtaBinRP() const {return this->f4WPerEtaBin1n1n1n1nRP;}
225
52021ae2 226 void SetDirectCorrelations(TProfile* const dc) {this->fDirectCorrelations = dc;};
227 TProfile* GetDirectCorrelations() const {return this->fDirectCorrelations;};
e085f1a9 228
9c1a9547 229 void SetDirectCorrelationsW(TProfile* const dcw) {this->fDirectCorrelationsW = dcw;};
230 TProfile* GetDirectCorrelationsW() const {return this->fDirectCorrelationsW;};
231
232 void SetDirectCorrelationsDiffFlow(TProfile* const dcdf) {this->fDirectCorrelationsDiffFlow = dcdf;};
233 TProfile* GetDirectCorrelationsDiffFlow() const {return this->fDirectCorrelationsDiffFlow;};
234
235 void SetDirectCorrelationsDiffFlowW(TProfile* const dcdfw) {this->fDirectCorrelationsDiffFlowW = dcdfw;};
236 TProfile* GetDirectCorrelationsDiffFlowW() const {return this->fDirectCorrelationsDiffFlowW;};
237
c365fe76 238 void SetDirectCorrectionsCos(TProfile* const dCorrectCos) {this->fDirectCorrectionsCos = dCorrectCos;};
239 TProfile* GetDirectCorrectionsCos() const {return this->fDirectCorrectionsCos;};
240
241 void SetDirectCorrectionsSin(TProfile* const dCorrectSin) {this->fDirectCorrectionsSin = dCorrectSin;};
242 TProfile* GetDirectCorrectionsSin() const {return this->fDirectCorrectionsSin;};
243
e04e4ec5 244 void SetUsePhiWeights(Bool_t const uPhiW) {this->fUsePhiWeights = uPhiW;};
03a02aca 245 Bool_t GetUsePhiWeights() const {return this->fUsePhiWeights;};
e085f1a9 246
e04e4ec5 247 void SetUsePtWeights(Bool_t const uPtW) {this->fUsePtWeights = uPtW;};
03a02aca 248 Bool_t GetUsePtWeights() const {return this->fUsePtWeights;};
e085f1a9 249
e04e4ec5 250 void SetUseEtaWeights(Bool_t const uEtaW) {this->fUseEtaWeights = uEtaW;};
03a02aca 251 Bool_t GetUseEtaWeights() const {return this->fUseEtaWeights;};
9c1a9547 252
253 void SetUseWeights(Bool_t const uw) {this->fUseWeights = uw;};
254 Bool_t GetUseWeights() const {return this->fUseWeights;};
255
256 void SetUseWeightsBits(TBits* const uwb) {this->fUseWeightsBits = uwb;};
257 TBits* GetUseWeightsBits() const {return this->fUseWeightsBits;};
258
259
260
261
262
263
264
265 // .................................................................................................
266 // non-weighted correlations for differential flow of POIs:
267 void Set2pPtEtaPOI(TProfile2D* const tppep) {this->f2pPtEtaPOI = tppep;};
268 TProfile2D* Get2pPtEtaPOI() const {return this->f2pPtEtaPOI;};
269 void Set4pPtEtaPOI(TProfile2D* const fppep) {this->f4pPtEtaPOI = fppep;};
270 TProfile2D* Get4pPtEtaPOI() const {return this->f4pPtEtaPOI;};
271 void Set6pPtEtaPOI(TProfile2D* const sppep) {this->f6pPtEtaPOI = sppep;};
272 TProfile2D* Get6pPtEtaPOI() const {return this->f6pPtEtaPOI;};
273 void Set8pPtEtaPOI(TProfile2D* const eppep) {this->f8pPtEtaPOI = eppep;};
274 TProfile2D* Get8pPtEtaPOI() const {return this->f8pPtEtaPOI;};
275
276 // non-weighted final results for differential flow of POIs:
277 // 3D (pt,eta):
278 void Setvn2ndPtEtaPOI(TH2D* const v2pep) {this->fvn2ndPtEtaPOI = v2pep;};
279 TH2D* Getvn2ndPtEtaPOI() const {return this->fvn2ndPtEtaPOI;};
280 void Setvn4thPtEtaPOI(TH2D* const v4pep) {this->fvn4thPtEtaPOI = v4pep;};
281 TH2D* Getvn4thPtEtaPOI() const {return this->fvn4thPtEtaPOI;};
282 void Setvn6thPtEtaPOI(TH2D* const v6pep) {this->fvn6thPtEtaPOI = v6pep;};
283 TH2D* Getvn6thPtEtaPOI() const {return this->fvn6thPtEtaPOI;};
284 void Setvn8thPtEtaPOI(TH2D* const v8pep) {this->fvn8thPtEtaPOI = v8pep;};
285 TH2D* Getvn8thPtEtaPOI() const {return this->fvn8thPtEtaPOI;};
286 // 2D (pt):
287 void Setvn2ndPtPOI(TH1D* const v2pp) {this->fvn2ndPtPOI = v2pp;};
288 TH1D* Getvn2ndPtPOI() const {return this->fvn2ndPtPOI;};
289 void Setvn4thPtPOI(TH1D* const v4pp) {this->fvn4thPtPOI = v4pp;};
290 TH1D* Getvn4thPtPOI() const {return this->fvn4thPtPOI;};
291 void Setvn6thPtPOI(TH1D* const v6pp) {this->fvn6thPtPOI = v6pp;};
292 TH1D* Getvn6thPtPOI() const {return this->fvn6thPtPOI;};
293 void Setvn8thPtPOI(TH1D* const v8pp) {this->fvn8thPtPOI = v8pp;};
294 TH1D* Getvn8thPtPOI() const {return this->fvn8thPtPOI;};
295 // 2D (eta):
296 void Setvn2ndEtaPOI(TH1D* const v2ep) {this->fvn2ndEtaPOI = v2ep;};
297 TH1D* Getvn2ndEtaPOI() const {return this->fvn2ndEtaPOI;};
298 void Setvn4thEtaPOI(TH1D* const v4ep) {this->fvn4thEtaPOI = v4ep;};
299 TH1D* Getvn4thEtaPOI() const {return this->fvn4thEtaPOI;};
300 void Setvn6thEtaPOI(TH1D* const v6ep) {this->fvn6thEtaPOI = v6ep;};
301 TH1D* Getvn6thEtaPOI() const {return this->fvn6thEtaPOI;};
302 void Setvn8thEtaPOI(TH1D* const v8ep) {this->fvn8thEtaPOI = v8ep;};
303 TH1D* Getvn8thEtaPOI() const {return this->fvn8thEtaPOI;};
304
305 // weighted correlations for differential flow of POIs:
306 void Set2pPtEtaPOIW(TProfile2D* const tppepw) {this->f2pPtEtaPOIW = tppepw;};
307 TProfile2D* Get2pPtEtaPOIW() const {return this->f2pPtEtaPOIW;};
308 void Set4pPtEtaPOIW(TProfile2D* const fppepw) {this->f4pPtEtaPOIW = fppepw;};
309 TProfile2D* Get4pPtEtaPOIW() const {return this->f4pPtEtaPOIW;};
310 void Set6pPtEtaPOIW(TProfile2D* const sppepw) {this->f6pPtEtaPOIW = sppepw;};
311 TProfile2D* Get6pPtEtaPOIW() const {return this->f6pPtEtaPOIW;};
312 void Set8pPtEtaPOIW(TProfile2D* const eppepw) {this->f8pPtEtaPOIW = eppepw;};
313 TProfile2D* Get8pPtEtaPOIW() const {return this->f8pPtEtaPOIW;};
314
315 // weighted final results for differential flow of POIs:
316 // 3D (pt,eta):
317 void Setvn2ndPtEtaPOIW(TH2D* const v2pepw) {this->fvn2ndPtEtaPOIW = v2pepw;};
318 TH2D* Getvn2ndPtEtaPOIW() const {return this->fvn2ndPtEtaPOIW;};
319 void Setvn4thPtEtaPOIW(TH2D* const v4pepw) {this->fvn4thPtEtaPOIW = v4pepw;};
320 TH2D* Getvn4thPtEtaPOIW() const {return this->fvn4thPtEtaPOIW;};
321 void Setvn6thPtEtaPOIW(TH2D* const v6pepw) {this->fvn6thPtEtaPOIW = v6pepw;};
322 TH2D* Getvn6thPtEtaPOIW() const {return this->fvn6thPtEtaPOIW;};
323 void Setvn8thPtEtaPOIW(TH2D* const v8pepw) {this->fvn8thPtEtaPOIW = v8pepw;};
324 TH2D* Getvn8thPtEtaPOIW() const {return this->fvn8thPtEtaPOIW;};
325 // 2D (pt):
326 void Setvn2ndPtPOIW(TH1D* const v2ppw) {this->fvn2ndPtPOIW = v2ppw;};
327 TH1D* Getvn2ndPtPOIW() const {return this->fvn2ndPtPOIW;};
328 void Setvn4thPtPOIW(TH1D* const v4ppw) {this->fvn4thPtPOIW = v4ppw;};
329 TH1D* Getvn4thPtPOIW() const {return this->fvn4thPtPOIW;};
330 void Setvn6thPtPOIW(TH1D* const v6ppw) {this->fvn6thPtPOIW = v6ppw;};
331 TH1D* Getvn6thPtPOIW() const {return this->fvn6thPtPOIW;};
332 void Setvn8thPtPOIW(TH1D* const v8ppw) {this->fvn8thPtPOIW = v8ppw;};
333 TH1D* Getvn8thPtPOIW() const {return this->fvn8thPtPOIW;};
334 // 2D (eta):
335 void Setvn2ndEtaPOIW(TH1D* const v2epw) {this->fvn2ndEtaPOIW = v2epw;};
336 TH1D* Getvn2ndEtaPOIW() const {return this->fvn2ndEtaPOIW;};
337 void Setvn4thEtaPOIW(TH1D* const v4epw) {this->fvn4thEtaPOIW = v4epw;};
338 TH1D* Getvn4thEtaPOIW() const {return this->fvn4thEtaPOIW;};
339 void Setvn6thEtaPOIW(TH1D* const v6epw) {this->fvn6thEtaPOIW = v6epw;};
340 TH1D* Getvn6thEtaPOIW() const {return this->fvn6thEtaPOIW;};
341 void Setvn8thEtaPOIW(TH1D* const v8epw) {this->fvn8thEtaPOIW = v8epw;};
342 TH1D* Getvn8thEtaPOIW() const {return this->fvn8thEtaPOIW;};
343
344 // non-weighted correlations for differential flow of RPs:
345 void Set2pPtEtaRP(TProfile2D* const tpper) {this->f2pPtEtaRP = tpper;};
346 TProfile2D* Get2pPtEtaRP() const {return this->f2pPtEtaRP;};
347 void Set4pPtEtaRP(TProfile2D* const fpper) {this->f4pPtEtaRP = fpper;};
348 TProfile2D* Get4pPtEtaRP() const {return this->f4pPtEtaRP;};
349 void Set6pPtEtaRP(TProfile2D* const spper) {this->f6pPtEtaRP = spper;};
350 TProfile2D* Get6pPtEtaRP() const {return this->f6pPtEtaRP;};
351 void Set8pPtEtaRP(TProfile2D* const epper) {this->f8pPtEtaRP = epper;};
352 TProfile2D* Get8pPtEtaRP() const {return this->f8pPtEtaRP;};
353
354 // non-weighted final results for differential flow of RPs:
355 // 3D (pt,eta):
356 void Setvn2ndPtEtaRP(TH2D* const v2per) {this->fvn2ndPtEtaRP = v2per;};
357 TH2D* Getvn2ndPtEtaRP() const {return this->fvn2ndPtEtaRP;};
358 void Setvn4thPtEtaRP(TH2D* const v4per) {this->fvn4thPtEtaRP = v4per;};
359 TH2D* Getvn4thPtEtaRP() const {return this->fvn4thPtEtaRP;};
360 void Setvn6thPtEtaRP(TH2D* const v6per) {this->fvn6thPtEtaRP = v6per;};
361 TH2D* Getvn6thPtEtaRP() const {return this->fvn6thPtEtaRP;};
362 void Setvn8thPtEtaRP(TH2D* const v8per) {this->fvn4thPtEtaRP = v8per;};
363 TH2D* Getvn8thPtEtaRP() const {return this->fvn8thPtEtaRP;};
364 // 2D (pt):
365 void Setvn2ndPtRP(TH1D* const v2pp) {this->fvn2ndPtRP = v2pp;};
366 TH1D* Getvn2ndPtRP() const {return this->fvn2ndPtRP;};
367 void Setvn4thPtRP(TH1D* const v4pp) {this->fvn4thPtRP = v4pp;};
368 TH1D* Getvn4thPtRP() const {return this->fvn4thPtRP;};
369 void Setvn6thPtRP(TH1D* const v6pp) {this->fvn6thPtRP = v6pp;};
370 TH1D* Getvn6thPtRP() const {return this->fvn6thPtRP;};
371 void Setvn8thPtRP(TH1D* const v8pp) {this->fvn8thPtRP = v8pp;};
372 TH1D* Getvn8thPtRP() const {return this->fvn8thPtRP;};
373 // 2D (eta):
374 void Setvn2ndEtaRP(TH1D* const v2ep) {this->fvn2ndEtaRP = v2ep;};
375 TH1D* Getvn2ndEtaRP() const {return this->fvn2ndEtaRP;};
376 void Setvn4thEtaRP(TH1D* const v4ep) {this->fvn4thEtaRP = v4ep;};
377 TH1D* Getvn4thEtaRP() const {return this->fvn4thEtaRP;};
378 void Setvn6thEtaRP(TH1D* const v6ep) {this->fvn6thEtaRP = v6ep;};
379 TH1D* Getvn6thEtaRP() const {return this->fvn6thEtaRP;};
380 void Setvn8thEtaRP(TH1D* const v8ep) {this->fvn8thEtaRP = v8ep;};
381 TH1D* Getvn8thEtaRP() const {return this->fvn8thEtaRP;};
382
383 // weighted correlations for differential flow of RPs:
384 void Set2pPtEtaRPW(TProfile2D* const tpperw) {this->f2pPtEtaRPW = tpperw;};
385 TProfile2D* Get2pPtEtaRPW() const {return this->f2pPtEtaRPW;};
386 void Set4pPtEtaRPW(TProfile2D* const fpperw) {this->f4pPtEtaRPW = fpperw;};
387 TProfile2D* Get4pPtEtaRPW() const {return this->f4pPtEtaRPW;};
388 void Set6pPtEtaRPW(TProfile2D* const spperw) {this->f6pPtEtaRPW = spperw;};
389 TProfile2D* Get6pPtEtaRPW() const {return this->f6pPtEtaRPW;};
390 void Set8pPtEtaRPW(TProfile2D* const epperw) {this->f8pPtEtaRPW = epperw;};
391 TProfile2D* Get8pPtEtaRPW() const {return this->f8pPtEtaRPW;};
392
393 // weighted final results for differential flow of RPs:
394 // 3D (pt,eta):
395 void Setvn2ndPtEtaRPW(TH2D* const v2perw) {this->fvn2ndPtEtaRPW = v2perw;};
396 TH2D* Getvn2ndPtEtaRPW() const {return this->fvn2ndPtEtaRPW;};
397 void Setvn4thPtEtaRPW(TH2D* const v4perw) {this->fvn4thPtEtaRPW = v4perw;};
398 TH2D* Getvn4thPtEtaRPW() const {return this->fvn4thPtEtaRPW;};
399 void Setvn6thPtEtaRPW(TH2D* const v6perw) {this->fvn6thPtEtaRPW = v6perw;};
400 TH2D* Getvn6thPtEtaRPW() const {return this->fvn6thPtEtaRPW;};
401 void Setvn8thPtEtaRPW(TH2D* const v8perw) {this->fvn4thPtEtaRPW = v8perw;};
402 TH2D* Getvn8thPtEtaRPW() const {return this->fvn8thPtEtaRPW;};
403 // 2D (pt):
404 void Setvn2ndPtRPW(TH1D* const v2ppw) {this->fvn2ndPtRPW = v2ppw;};
405 TH1D* Getvn2ndPtRPW() const {return this->fvn2ndPtRPW;};
406 void Setvn4thPtRPW(TH1D* const v4ppw) {this->fvn4thPtRPW = v4ppw;};
407 TH1D* Getvn4thPtRPW() const {return this->fvn4thPtRPW;};
408 void Setvn6thPtRPW(TH1D* const v6ppw) {this->fvn6thPtRPW = v6ppw;};
409 TH1D* Getvn6thPtRPW() const {return this->fvn6thPtRPW;};
410 void Setvn8thPtRPW(TH1D* const v8ppw) {this->fvn8thPtRPW = v8ppw;};
411 TH1D* Getvn8thPtRPW() const {return this->fvn8thPtRPW;};
412 // 2D (eta):
413 void Setvn2ndEtaRPW(TH1D* const v2epw) {this->fvn2ndEtaRPW = v2epw;};
414 TH1D* Getvn2ndEtaRPW() const {return this->fvn2ndEtaRPW;};
415 void Setvn4thEtaRPW(TH1D* const v4epw) {this->fvn4thEtaRPW = v4epw;};
416 TH1D* Getvn4thEtaRPW() const {return this->fvn4thEtaRPW;};
417 void Setvn6thEtaRPW(TH1D* const v6epw) {this->fvn6thEtaRPW = v6epw;};
418 TH1D* Getvn6thEtaRPW() const {return this->fvn6thEtaRPW;};
419 void Setvn8thEtaRPW(TH1D* const v8epw) {this->fvn8thEtaRPW = v8epw;};
420 TH1D* Getvn8thEtaRPW() const {return this->fvn8thEtaRPW;};
421 // .................................................................................................
422
423
424
425
8842fb2b 426//----------------------------------------------------------------------------------------------------------------
427
bc92c0cb 428 private:
429 AliFlowAnalysisWithQCumulants(const AliFlowAnalysisWithQCumulants& afawQc);
430 AliFlowAnalysisWithQCumulants& operator=(const AliFlowAnalysisWithQCumulants& afawQc);
8842fb2b 431
432 AliFlowTrackSimple* fTrack; //track
433 TList* fHistList; //list to hold all output histograms
ae733b3b 434 TList* fDiffFlowList; //list to hold all histograms and profiles needed for differential flow
03a02aca 435 TList* fWeightsList; //list to hold all histograms with weights
9c1a9547 436 TList* fResultsList; // list to hold all histograms with results
03a02aca 437
8842fb2b 438 TProfile* fAvMultIntFlowQC; //average selected multiplicity (for int. flow)
bc92c0cb 439
8842fb2b 440 TProfile* fQvectorComponents; //averages of Q-vector components (1st bin: <Q_x>, 2nd bin: <Q_y>, ...)
bc92c0cb 441
8842fb2b 442 TH1D* fDiffFlowResults2ndOrderQC; //differential flow results from 2nd order Q-cumulant
443 TH1D* fDiffFlowResults4thOrderQC; //differential flow results from 4th order Q-cumulant
444 TH1D* fCovariances; //final results for covariances: 1st bin: <2*4>-<2>*<4>, 2nd bin: <2*6>-<2>*<6>, ...
445
e085f1a9 446 TProfile* fQvectorForEachEventX; //profile containing the x-components of Q-vectors from all events (to be removed)
447 TProfile* fQvectorForEachEventY; //profile containing the y-components of Q-vectors from all events (to be removed)
8842fb2b 448 TProfile* fQCorrelations; //multi-particle correlations calculated from Q-vectors
9c1a9547 449 TProfile* fQCorrelationsW; //weighted multi-particle correlations calculated from Q-vectors
c365fe76 450 TProfile* fQCorrectionsCos; // corrections for non-uniform acceptance (cos terms) calculated from Q-vectors
451 TProfile* fQCorrectionsSin; // corrections for non-uniform acceptance (sin terms) calculated from Q-vectors
8842fb2b 452 TProfile* fQProduct; //average of products: 1st bin: <2*4>, 2nd bin: <2*6>, ...
453
9c1a9547 454 TProfile* fDirectCorrelations; // multi-particle correlations calculated with nested loop needed for int. flow
455 TProfile* fDirectCorrelationsW; // multi-particle correlations calculated with nested loop needed for weighted int. flow
456 TProfile* fDirectCorrelationsDiffFlow; // multi-particle correlations calculated with nested loop needed for diff. flow
457 TProfile* fDirectCorrelationsDiffFlowW; // multi-particle correlations calculated with nested loop needed for weighted int. flow
c365fe76 458
459 TProfile* fDirectCorrectionsCos; // corrections for non-uniform acceptance (cos terms) calculated with nested loops
460 TProfile* fDirectCorrectionsSin; // corrections for non-uniform acceptance (sin terms) calculated with nested loops
1dfa3c16 461
77515452 462 // POI (Particles Of Interest):
463 // non-weighted correlations
1dfa3c16 464 TProfile* f2PerPtBin1n1nPOI; //<<2'>>_{n|n} per pt-bin
1dfa3c16 465 TProfile* f4PerPtBin1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per pt-bin
1dfa3c16 466
467 TProfile* f2PerEtaBin1n1nPOI; //<<2'>>_{n|n} per eta-bin
1dfa3c16 468 TProfile* f4PerEtaBin1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per eta-bin
77515452 469 // weighted correlations
3d824203 470 TProfile* f2WPerPtBin1n1nPOI; //<<2'>>_{n|n} per eta-bin
3d824203 471 TProfile* f4WPerPtBin1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per eta-bin
472
77515452 473 TProfile* f2WPerEtaBin1n1nPOI; //<<2'>>_{n|n} per eta-bin
474 TProfile* f4WPerEtaBin1n1n1n1nPOI; //<<4'>>_{n,n|n,n} per eta-bin
3d824203 475
77515452 476 // RP (Reaction Plane particles)
477 // non-weighted correlations
478 TProfile* f2PerPtBin1n1nRP; //<<2'>>_{n|n} per pt-bin
479 TProfile* f4PerPtBin1n1n1n1nRP; //<<4'>>_{n,n|n,n} per pt-bin
480
481 TProfile* f2PerEtaBin1n1nRP; //<<2'>>_{n|n} per eta-bin
482 TProfile* f4PerEtaBin1n1n1n1nRP; //<<4'>>_{n,n|n,n} per eta-bin
483 // weighted correlations
484 TProfile* f2WPerPtBin1n1nRP; //<<2'>>_{n|n} per eta-bin
485 TProfile* f4WPerPtBin1n1n1n1nRP; //<<4'>>_{n,n|n,n} per eta-bin
3d824203 486
487 TProfile* f2WPerEtaBin1n1nRP; //<<2'>>_{n|n} per eta-bin
488 TProfile* f4WPerEtaBin1n1n1n1nRP; //<<4'>>_{n,n|n,n} per eta-bin
489
7e58a232 490 AliFlowCommonHist* fCommonHists2nd; //common control histograms (taking into account only the events with 2 and more particles)
491 AliFlowCommonHist* fCommonHists4th; //common control histograms (taking into account only the events with 4 and more particles)
492 AliFlowCommonHist* fCommonHists6th; //common control histograms (taking into account only the events with 6 and more particles)
493 AliFlowCommonHist* fCommonHists8th; //common control histograms (taking into account only the events with 8 and more particles)
bc92c0cb 494
1315fe58 495 AliFlowCommonHistResults* fCommonHistsResults2nd; //final results for 2nd order int. and diff. flow stored in the common histograms
496 AliFlowCommonHistResults* fCommonHistsResults4th; //final results for 4th order int. and diff. flow stored in the common histograms
497 AliFlowCommonHistResults* fCommonHistsResults6th; //final results for 6th order int. and diff. flow stored in the common histograms
498 AliFlowCommonHistResults* fCommonHistsResults8th; //final results for 8th order int. and diff. flow stored in the common histograms
1315fe58 499
5e838eeb 500 TH1D* f2pDistribution; //distribution of <2>_{n|n}
501 TH1D* f4pDistribution; //distribution of <4>_{n,n|n,n}
502 TH1D* f6pDistribution; //distribution of <6>_{n,n,n|n,n,n}
503 TH1D* f8pDistribution; //distribution of <8>_{n,n,n,n|n,n,n,n}
dee1e0e0 504
8842fb2b 505 Int_t fnBinsPt; //number of pt bins
52021ae2 506 Double_t fPtMin; //minimum pt
1dfa3c16 507 Double_t fPtMax; //maximum pt
508
509 Int_t fnBinsEta; //number of eta bins
510 Double_t fEtaMin; //minimum eta
e085f1a9 511 Double_t fEtaMax; //maximum eta
512 Int_t fEventCounter; //counting the number of events
513
9c1a9547 514 Bool_t fUsePhiWeights; // phi weights
515 Bool_t fUsePtWeights; // pt weights
516 Bool_t fUseEtaWeights; // eta weights
517 Bool_t fUseWeights; // use phi || pt || eta weights
518 TBits* fUseWeightsBits; // use phi || pt || eta weights
9c1a9547 519
520 // ...................................................................................................................
521 // Q_{n,k} and S^M_{n,k}:
522 TMatrixD *fReQ; // real part of the Q-vectors stored in matrix fReQ[n][k] = sum_{i=1}^{M} w_{i}^{k} cos(n phi_{i})
523 TMatrixD *fImQ; // imaginary part of the Q-vectors stored in matrix fImQ[n][k] = sum_{i=1}^{M} w_{i}^{k} sin(n phi_{i})
524 TMatrixD *fSMpk; // fSM[p][k] = (sum_{i=1}^{M} w_{i}^{k})^{p}
525
526 // q_{n} (POIs):
527 TH2D *fReqnPtEta; // real part of q_n (q_n is a Q-vector evaluated only for POIs in harmonic n for each (pt,eta) bin)
528 TH2D *fImqnPtEta; // imaginary part of q_n (q_n is a Q-vector evaluated only for POIs in harmonic n for each (pt,eta) bin)
529 TH2D *fmPtEta; // # of POIs (m) for each (pt,eta) bin
530
531 // non-weighted q''_{n} and q''_{2n} (both POIs and RPs)
532 TH2D *fReqPrimePrime1nPtEta; // real part of q''_{n} for each (pt,eta) bin
533 TH2D *fImqPrimePrime1nPtEta; // imaginary part of q''_{n} for each (pt,eta) bin
534 TH2D *fReqPrimePrime2nPtEta; // real part of q''_{2n} for each (pt,eta) bin
535 TH2D *fImqPrimePrime2nPtEta; // imaginary part of q''_{2n} for each (pt,eta) bin
536
537 // weighted q''_{n,2k} and q''_{2n,k} (both POIs and RPs)
538 TH2D *fReqPrimePrime1n2kPtEta; // real part of q''_{n,2k} for each (pt,eta) bin
539 TH2D *fImqPrimePrime1n2kPtEta; // imaginary part of q''_{n,2k} for each (pt,eta) bin
540 TH2D *fReqPrimePrime2n1kPtEta; // real part of q''_{2n,k} for each (pt,eta) bin
541 TH2D *fImqPrimePrime2n1kPtEta; // imaginary part of q''_{2n,k} for each (pt,eta) bin
542
543 // m'' (both POIs and RPs) :
544 TH2D *fmPrimePrimePtEta; // # of particles which are both POIs and RPs for each (pt,eta) bin
545
546 // S^{m''}_{p,k} (both POIs and RPs):
547 TH2D *fSmPrimePrime1p1kPtEta; // pow(sum_{i=1}^{m''} w_{i} cos(n phi_{i}), 1)
548 TH2D *fSmPrimePrime1p2kPtEta; // pow(sum_{i=1}^{m''} w_{i}^{2} cos(n phi_{i}), 1)
549 TH2D *fSmPrimePrime1p3kPtEta; // pow(sum_{i=1}^{m''} w_{i}^{3} cos(n phi_{i}), 1)
550
551 // non-weighted q_RP{n} and q_RP{2n} (for each (pt,eta) bin for RPs)
552 TH2D *fReqRP1nPtEta; // real part of q_RP{n} (q_RP{n} is a Q-vector evaluated only for RPs in harmonic n for each (pt,eta) bin)
553 TH2D *fImqRP1nPtEta; // imaginary part of q_RP{n} (q_RP{n} is a Q-vector evaluated only for RPs in harmonic n for each (pt,eta) bin)
554 TH2D *fReqRP2nPtEta; // real part of q_RP{2n} (q_RP{2n} is a Q-vector evaluated only for RPs in harmonic 2n for each (pt,eta) bin)
555 TH2D *fImqRP2nPtEta; // imaginary part of q_RP{2n} (q_RP{2n} is a Q-vector evaluated only for RPs in harmonic 2n for each (pt,eta) bin)
556
557 // weighted q_RP{n,2k} and q_RP{2n,k} (for each (pt,eta) bin for RPs)
558 TH2D *fReqRP1n2kPtEta; // real part of q_RP{n,2k} for each (pt,eta) bin
559 TH2D *fImqRP1n2kPtEta; // imaginary part of q_RP{n,2k} for each (pt,eta) bin
560 TH2D *fReqRP2n1kPtEta; // real part of q_RP{2n,k} for each (pt,eta) bin
561 TH2D *fImqRP2n1kPtEta; // imaginary part of q_RP{2n,k} for each (pt,eta) bin
562
563 // m_RP:
564 TH2D *fmRPPtEta; // # of particles which are RPs for each (pt,eta) bin
565
566 // S^{m_RP}_{p,k} (for each (pt,eta) bin for RPs):
567 TH2D *fSmRP1p1kPtEta; // pow(sum_{i=1}^{m_RP} w_{i} cos(n phi_{i}), 1)
568 TH2D *fSmRP1p2kPtEta; // pow(sum_{i=1}^{m_RP} w_{i}^{2} cos(n phi_{i}), 1)
569 TH2D *fSmRP1p3kPtEta; // pow(sum_{i=1}^{m_RP} w_{i}^{3} cos(n phi_{i}), 1)
570
571 // ----- RESULTS ----
c365fe76 572
573 TH1D *fFinalCorrectionsForNUA; // final corrections for non-uniform acceptance for QC{2}, QC{4}, QC{6} and QC{8}
574
9c1a9547 575 // non-weighted integrated flow:
576 TH1D *fIntFlowResultsQC; // final results for non-weighted no-name integrated flow
577 TH1D *fIntFlowResultsPOIQC; // final results for non-weighted POIs integrated flow
578 TH1D *fIntFlowResultsRPQC; // final results for non-weighted RPs integrated flow
579
580 // weighted integrated flow:
581 TH1D *fIntFlowResultsQCW; // final results for weighted no-name integrated flow
582 TH1D *fIntFlowResultsPOIQCW; // final results for weighted POIs integrated flow
583 TH1D *fIntFlowResultsRPQCW; // final results for weighted RPs integrated flow
584
585 // non-weighted correlations for each (pt,eta) bin for POIs:
586 TProfile2D *f2pPtEtaPOI; // <cos n(psi1-phi2)> for POIs
587 TProfile2D *f4pPtEtaPOI; // <cos n(psi1+phi2-phi3-phi4)> for POIs
588 TProfile2D *f6pPtEtaPOI; // <cos n(psi1+phi2+phi3-phi4-phi5-phi6)> for POIs
589 TProfile2D *f8pPtEtaPOI; // <cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)> for POIs
590
591 // non-weighted final results for differential flow for POIs:
592 // 3D (pt,eta):
593 TH2D *fvn2ndPtEtaPOI; // v'_{n}{2,QC} (pt,eta) for POIs
594 TH2D *fvn4thPtEtaPOI; // v'_{n}{4,QC} (pt,eta) for POIs
595 TH2D *fvn6thPtEtaPOI; // v'_{n}{6,QC} (pt,eta) for POIs
596 TH2D *fvn8thPtEtaPOI; // v'_{n}{8,QC} (pt,eta) for POIs
597 // 2D (pt):
598 TH1D *fvn2ndPtPOI; // v'_{n}{2,QC} (pt) for POIs
599 TH1D *fvn4thPtPOI; // v'_{n}{4,QC} (pt) for POIs
600 TH1D *fvn6thPtPOI; // v'_{n}{6,QC} (pt) for POIs
601 TH1D *fvn8thPtPOI; // v'_{n}{8,QC} (pt) for POIs
602 // 2D (eta):
603 TH1D *fvn2ndEtaPOI; // v'_{n}{2,QC} (eta) for POIs
604 TH1D *fvn4thEtaPOI; // v'_{n}{4,QC} (eta) for POIs
605 TH1D *fvn6thEtaPOI; // v'_{n}{6,QC} (eta) for POIs
606 TH1D *fvn8thEtaPOI; // v'_{n}{8,QC} (eta) for POIs
607
608 // weighted correlations for each (pt,eta) bin for POIs:
609 TProfile2D *f2pPtEtaPOIW; // <w2 cos n(psi1-phi2)> for POIs
610 TProfile2D *f4pPtEtaPOIW; // <w2 w3 w4 cos n(psi1+phi2-phi3-phi4)> for POIs
611 TProfile2D *f6pPtEtaPOIW; // <w2 w3 w4 w5 w6 cos n(psi1+phi2+phi3-phi4-phi5-phi6)> for POIs
612 TProfile2D *f8pPtEtaPOIW; // <w2 w3 w4 w5 w6 w7 w8 cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)> for POIs
613
614 // weighted final results for differential flow for POIs:
615 // 3D (pt,eta):
616 TH2D *fvn2ndPtEtaPOIW; // v'_{n}{2,QC} (pt,eta) for POIs
617 TH2D *fvn4thPtEtaPOIW; // v'_{n}{4,QC} (pt,eta) for POIs
618 TH2D *fvn6thPtEtaPOIW; // v'_{n}{6,QC} (pt,eta) for POIs
619 TH2D *fvn8thPtEtaPOIW; // v'_{n}{8,QC} (pt,eta) for POIs
620 // 2D (pt):
621 TH1D *fvn2ndPtPOIW; // v'_{n}{2,QC} (pt) for POIs
622 TH1D *fvn4thPtPOIW; // v'_{n}{4,QC} (pt) for POIs
623 TH1D *fvn6thPtPOIW; // v'_{n}{6,QC} (pt) for POIs
624 TH1D *fvn8thPtPOIW; // v'_{n}{8,QC} (pt) for POIs
625 // 2D (eta):
626 TH1D *fvn2ndEtaPOIW; // v'_{n}{2,QC} (eta) for POIs
627 TH1D *fvn4thEtaPOIW; // v'_{n}{4,QC} (eta) for POIs
628 TH1D *fvn6thEtaPOIW; // v'_{n}{6,QC} (eta) for POIs
629 TH1D *fvn8thEtaPOIW; // v'_{n}{8,QC} (eta) for POIs
630
631 // non-weighted correlations for each (pt,eta) bin for RPs:
632 TProfile2D *f2pPtEtaRP; // <cos n(psi1-phi2)> for RPs
633 TProfile2D *f4pPtEtaRP; // <cos n(psi1+phi2-phi3-phi4)> for RPs
634 TProfile2D *f6pPtEtaRP; // <cos n(psi1+phi2+phi3-phi4-phi5-phi6)> for RPs
635 TProfile2D *f8pPtEtaRP; // <cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)> for RPs
636
637 // non-weighted final results for differential flow for RPs:
638 // 3D (pt,eta):
639 TH2D *fvn2ndPtEtaRP; // v'_{n}{2,QC} (pt,eta) for RPs
640 TH2D *fvn4thPtEtaRP; // v'_{n}{4,QC} (pt,eta) for RPs
641 TH2D *fvn6thPtEtaRP; // v'_{n}{6,QC} (pt,eta) for RPs
642 TH2D *fvn8thPtEtaRP; // v'_{n}{8,QC} (pt,eta) for RPs
643 // 2D (pt):
644 TH1D *fvn2ndPtRP; // v'_{n}{2,QC} (pt) for RPs
645 TH1D *fvn4thPtRP; // v'_{n}{4,QC} (pt) for RPs
646 TH1D *fvn6thPtRP; // v'_{n}{6,QC} (pt) for RPs
647 TH1D *fvn8thPtRP; // v'_{n}{8,QC} (pt) for RPs
648 // 2D (eta):
649 TH1D *fvn2ndEtaRP; // v'_{n}{2,QC} (eta) for RPs
650 TH1D *fvn4thEtaRP; // v'_{n}{4,QC} (eta) for RPs
651 TH1D *fvn6thEtaRP; // v'_{n}{6,QC} (eta) for RPs
652 TH1D *fvn8thEtaRP; // v'_{n}{8,QC} (eta) for RPs
653
654 // weighted correlations for each (pt,eta) bin for RPs:
655 TProfile2D *f2pPtEtaRPW; // <w2 cos n(psi1-phi2)> for RPs
656 TProfile2D *f4pPtEtaRPW; // <w2 w3 w4 cos n(psi1+phi2-phi3-phi4)> for RPs
657 TProfile2D *f6pPtEtaRPW; // <w2 w3 w4 w5 w6 cos n(psi1+phi2+phi3-phi4-phi5-phi6)> for RPs
658 TProfile2D *f8pPtEtaRPW; // <w2 w3 w4 w5 w6 w7 w8 cos n(psi1+phi2+phi3+phi4-phi5-phi6-phi7-phi8)> for RPs
659
660 // weighted final results for differential flow for RPs:
661 // 3D (pt,eta):
662 TH2D *fvn2ndPtEtaRPW; // v'_{n}{2,QC} (pt,eta) for RPs
663 TH2D *fvn4thPtEtaRPW; // v'_{n}{4,QC} (pt,eta) for RPs
664 TH2D *fvn6thPtEtaRPW; // v'_{n}{6,QC} (pt,eta) for RPs
665 TH2D *fvn8thPtEtaRPW; // v'_{n}{8,QC} (pt,eta) for RPs
666 // 2D (pt):
667 TH1D *fvn2ndPtRPW; // v'_{n}{2,QC} (pt) for RPs
668 TH1D *fvn4thPtRPW; // v'_{n}{4,QC} (pt) for RPs
669 TH1D *fvn6thPtRPW; // v'_{n}{6,QC} (pt) for RPs
670 TH1D *fvn8thPtRPW; // v'_{n}{8,QC} (pt) for RPs
671 // 2D (eta):
672 TH1D *fvn2ndEtaRPW; // v'_{n}{2,QC} (eta) for RPs
673 TH1D *fvn4thEtaRPW; // v'_{n}{4,QC} (eta) for RPs
674 TH1D *fvn6thEtaRPW; // v'_{n}{6,QC} (eta) for RPs
675 TH1D *fvn8thEtaRPW; // v'_{n}{8,QC} (eta) for RPs
676 // ...................................................................................................................
677
678
679
ae733b3b 680
bc92c0cb 681 ClassDef(AliFlowAnalysisWithQCumulants, 0);
682};
683
684//================================================================================================================
685
686#endif
687
688
689
690
691