]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FLOW/AliFlowTasks/AliAnalysisTaskQCumulants.cxx
weights, weights now ok to fourth order in POI
[u/mrichter/AliRoot.git] / PWG2 / FLOW / AliFlowTasks / AliAnalysisTaskQCumulants.cxx
CommitLineData
bc92c0cb 1/*************************************************************************
2* Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
52021ae2 7* Permission to use, copy, modify and distribute this software and its *
bc92c0cb 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 * analysis task for Q-cumulants *
18 * *
19 * authors: Naomi van der Kolk *
20 * (kolk@nikhef.nl) *
21 * Raimond Snellings *
22 * (snelling@nikhef.nl) *
23 * Ante Bilandzic *
24 * (anteb@nikhef.nl) *
25 * ***********************************/
26
27#include "Riostream.h"
28#include "TChain.h"
29#include "TTree.h"
30#include "TFile.h"
31#include "TList.h"
32#include "TH1.h"
e085f1a9 33#include "TGraph.h"
bc92c0cb 34#include "TProfile.h"
35#include "TProfile2D.h"
36#include "TProfile3D.h"
37
38#include "AliAnalysisTask.h"
39#include "AliAnalysisDataSlot.h"
40#include "AliAnalysisDataContainer.h"
41#include "AliAnalysisManager.h"
42
7183fe85 43#include "AliFlowEventSimple.h"
bc92c0cb 44#include "AliAnalysisTaskQCumulants.h"
bc92c0cb 45#include "AliFlowAnalysisWithQCumulants.h"
46#include "AliFlowCumuConstants.h"
47#include "AliFlowCommonConstants.h"
7e58a232 48#include "AliFlowCommonHist.h"
bc92c0cb 49#include "AliFlowCommonHistResults.h"
50#include "AliQCumulantsFunctions.h"
51
52ClassImp(AliAnalysisTaskQCumulants)
53
54//================================================================================================================
55
7183fe85 56AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants(const char *name, Bool_t useWeights):
bc92c0cb 57 AliAnalysisTask(name,""),
7183fe85 58 fEvent(NULL),
59 fQCA(NULL), // Q-cumulant Analysis (QCA) object
e04e4ec5 60 fUseWeights(useWeights),
61 fUsePhiWeights(kFALSE),
62 fUsePtWeights(kFALSE),
63 fUseEtaWeights(kFALSE),
64 fListWeights(NULL)
bc92c0cb 65{
7183fe85 66 // constructor
bc92c0cb 67 cout<<"AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants(const char *name)"<<endl;
68
69 // Define input and output slots here
70 // Input slot #0 works with a TChain
7183fe85 71 DefineInput(0, AliFlowEventSimple::Class());
bc92c0cb 72
e04e4ec5 73 // Input slot #1 is needed for the weights
74 if(useWeights)
75 {
76 DefineInput(1, TList::Class());
77 }
78
bc92c0cb 79 // Output slot #0 writes into a TList container
80 DefineOutput(0, TList::Class());
e04e4ec5 81
bc92c0cb 82}
83
84AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants():
7183fe85 85 fEvent(NULL),
bc92c0cb 86 fQCA(NULL),//Q-cumulant Analysis (QCA) object
7183fe85 87 fListHistos(NULL),
e04e4ec5 88 fUseWeights(kFALSE),
89 fUsePhiWeights(kFALSE),
90 fUsePtWeights(kFALSE),
91 fUseEtaWeights(kFALSE),
92 fListWeights(NULL)
bc92c0cb 93{
7183fe85 94 // dummy constructor
bc92c0cb 95 cout<<"AliAnalysisTaskQCumulants::AliAnalysisTaskQCumulants()"<<endl;
96}
97
98//================================================================================================================
99
100void AliAnalysisTaskQCumulants::ConnectInputData(Option_t *)
101{
7183fe85 102 // connect ESD or AOD (called once)
bc92c0cb 103 cout<<"AliAnalysisTaskQCumulants::ConnectInputData(Option_t *)"<<endl;
bc92c0cb 104}
105
106//================================================================================================================
107
108void AliAnalysisTaskQCumulants::CreateOutputObjects()
109{
7183fe85 110 // called at every worker node to initialize
bc92c0cb 111 cout<<"AliAnalysisTaskQCumulants::CreateOutputObjects()"<<endl;
112
7183fe85 113 // analyser
bc92c0cb 114 fQCA = new AliFlowAnalysisWithQCumulants();
e085f1a9 115 fQCA->Init();
e04e4ec5 116
117 //weights:
118 if(fUseWeights)
119 {
120 //pass the flags to class:
121 if(fUsePhiWeights) fQCA->SetUsePhiWeights(fUsePhiWeights);
122 if(fUsePtWeights) fQCA->SetUsePtWeights(fUsePtWeights);
123 if(fUseEtaWeights) fQCA->SetUseEtaWeights(fUseEtaWeights);
124 //get data from input slot #1 which is used for weights:
125 if(GetNinputs()==2)
126 {
127 fListWeights = (TList*)GetInputData(1);
128 }
129 //pass the list with weights to class:
130 if(fListWeights) fQCA->SetWeightsList(fListWeights);
131 }
132
bc92c0cb 133 if(fQCA->GetHistList())
134 {
135 fListHistos = fQCA->GetHistList();
136 //fListHistos->Print();
137 }
138 else
139 {
7183fe85 140 Printf(" ERROR: Could not retrieve histogram list (QC, Task::COO)");
bc92c0cb 141 }
e04e4ec5 142
bc92c0cb 143 //PostData(0,fListHistos);
144
145}
146
147//================================================================================================================
148
149void AliAnalysisTaskQCumulants::Exec(Option_t *)
150{
7183fe85 151 // main loop (called for each event)
152 fEvent = dynamic_cast<AliFlowEventSimple*>(GetInputData(0));
153
154 // Q-cumulants
155 if(fEvent)
156 {
157 fQCA->Make(fEvent);
158 }else
159 {
160 cout<<" WARNING: No input data (QC, Task::E) !!!"<<endl;
161 cout<<endl;
bc92c0cb 162 }
163
7183fe85 164 PostData(0,fListHistos);
bc92c0cb 165}
166
167//================================================================================================================
168
169void AliAnalysisTaskQCumulants::Terminate(Option_t *)
8842fb2b 170{
bc92c0cb 171 //accessing the output list which contains the merged 2D and 3D profiles from all worker nodes
172 fListHistos = (TList*)GetOutputData(0);
173 //fListHistos->Print();
e04e4ec5 174
bc92c0cb 175 if(fListHistos)
176 {
8842fb2b 177 //final results (integrated flow)
1315fe58 178 TH1D *intFlowResults = dynamic_cast<TH1D*>(fListHistos->FindObject("fIntFlowResultsQC"));
bc92c0cb 179
8842fb2b 180 //final results (differential flow)
1315fe58 181 TH1D *diffFlowResults2ndOrder = dynamic_cast<TH1D*>(fListHistos->FindObject("fDiffFlowResults2ndOrderQC"));
182 TH1D *diffFlowResults4thOrder = dynamic_cast<TH1D*>(fListHistos->FindObject("fDiffFlowResults4thOrderQC"));
bc92c0cb 183
8842fb2b 184 //final results for covariances (1st bin <2*4>-<2>*<4>, 2nd bin <2*6>-<2>*<6>, ...)
1315fe58 185 TH1D *covariances = dynamic_cast<TH1D*>(fListHistos->FindObject("fCovariances"));
bc92c0cb 186
7e58a232 187 //common control histograms (taking into account only the events with 2 and more particles)
188 AliFlowCommonHist *commonHist2nd = dynamic_cast<AliFlowCommonHist*>(fListHistos->FindObject("AliFlowCommonHist2ndOrderQC"));
189
190 //common control histograms (taking into account only the events with 4 and more particles)
191 AliFlowCommonHist *commonHist4th = dynamic_cast<AliFlowCommonHist*>(fListHistos->FindObject("AliFlowCommonHist4thOrderQC"));
192
193 //common control histograms (taking into account only the events with 6 and more particles)
194 AliFlowCommonHist *commonHist6th = dynamic_cast<AliFlowCommonHist*>(fListHistos->FindObject("AliFlowCommonHist6thOrderQC"));
195
196 //common control histograms (taking into account only the events with 8 and more particles)
197 AliFlowCommonHist *commonHist8th = dynamic_cast<AliFlowCommonHist*>(fListHistos->FindObject("AliFlowCommonHist8thOrderQC"));
198
8842fb2b 199 //common histograms to store the final results for the 2nd order integrated and differential flow
200 AliFlowCommonHistResults *commonHistRes2nd = dynamic_cast<AliFlowCommonHistResults*>(fListHistos->FindObject("AliFlowCommonHistResults2ndOrderQC"));
bc92c0cb 201
8842fb2b 202 //common histograms to store the final results for the 4th order integrated and differential flow
203 AliFlowCommonHistResults *commonHistRes4th = dynamic_cast<AliFlowCommonHistResults*>(fListHistos->FindObject("AliFlowCommonHistResults4thOrderQC"));
bc92c0cb 204
8842fb2b 205 //common histograms to store the final results for the 6th order integrated and differential flow
206 AliFlowCommonHistResults *commonHistRes6th = dynamic_cast<AliFlowCommonHistResults*>(fListHistos->FindObject("AliFlowCommonHistResults6thOrderQC"));
bc92c0cb 207
8842fb2b 208 //common histograms to store the final results for the 8th order integrated and differential flow
209 AliFlowCommonHistResults *commonHistRes8th = dynamic_cast<AliFlowCommonHistResults*>(fListHistos->FindObject("AliFlowCommonHistResults8thOrderQC"));
bc92c0cb 210
8842fb2b 211 //average selected multiplicity (for int. flow)
212 TProfile *AvMult = dynamic_cast<TProfile*>(fListHistos->FindObject("fAvMultIntFlowQC"));
bc92c0cb 213
e085f1a9 214 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
215 // !!!! to be removed !!!!
216 //profiles containing the Q-vectors from all events
217 TProfile *qvectorForEachEventX = dynamic_cast<TProfile*>(fListHistos->FindObject("fQvectorForEachEventX"));
218 TProfile *qvectorForEachEventY = dynamic_cast<TProfile*>(fListHistos->FindObject("fQvectorForEachEventY"));
219 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
220
8842fb2b 221 //multi-particle correlations calculated from Q-vectors
222 TProfile *QCorrelations = dynamic_cast<TProfile*>(fListHistos->FindObject("fQCorrelations"));
bc92c0cb 223
3d824203 224 //weighted multi-particle correlations calculated from Q-vectors
225 TProfile *QCorrelationsW = dynamic_cast<TProfile*>(fListHistos->FindObject("fQCorrelationsW"));
226
8842fb2b 227 //average of products: 1st bin: <2*4>, 2nd bin: <2*6>, ...
228 TProfile *QProduct = dynamic_cast<TProfile*>(fListHistos->FindObject("fQProduct"));
bc92c0cb 229
1dfa3c16 230 //average 2-, 3- and 4-particle correlations per pt-bin
ae733b3b 231 TProfile *binnedPt2p1n1nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerPtBin1n1nRP"));
232 TProfile *binnedPt2p2n2nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerPtBin2n2nRP"));
233 TProfile *binnedPt3p2n1n1nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerPtBin2n1n1nRP"));
234 TProfile *binnedPt3p1n1n2nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerPtBin1n1n2nRP"));
235 TProfile *binnedPt4p1n1n1n1nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4PerPtBin1n1n1n1nRP"));
1dfa3c16 236
237 //average 2-, 3- and 4-particle correlations per eta-bin
ae733b3b 238 TProfile *binnedEta2p1n1nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerEtaBin1n1nRP"));
239 TProfile *binnedEta2p2n2nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerEtaBin2n2nRP"));
240 TProfile *binnedEta3p2n1n1nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerEtaBin2n1n1nRP"));
241 TProfile *binnedEta3p1n1n2nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerEtaBin1n1n2nRP"));
242 TProfile *binnedEta4p1n1n1n1nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4PerEtaBin1n1n1n1nRP"));
1dfa3c16 243
244 //average 2-, 3- and 4-particle correlations per pt-bin
ae733b3b 245 TProfile *binnedPt2p1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerPtBin1n1nPOI"));
246 TProfile *binnedPt2p2n2nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerPtBin2n2nPOI"));
247 TProfile *binnedPt3p2n1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerPtBin2n1n1nPOI"));
248 TProfile *binnedPt3p1n1n2nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerPtBin1n1n2nPOI"));
249 TProfile *binnedPt4p1n1n1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4PerPtBin1n1n1n1nPOI"));
1dfa3c16 250
251 //average 2-, 3- and 4-particle correlations per eta-bin
ae733b3b 252 TProfile *binnedEta2p1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerEtaBin1n1nPOI"));
253 TProfile *binnedEta2p2n2nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2PerEtaBin2n2nPOI"));
254 TProfile *binnedEta3p2n1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerEtaBin2n1n1nPOI"));
255 TProfile *binnedEta3p1n1n2nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3PerEtaBin1n1n2nPOI"));
256 TProfile *binnedEta4p1n1n1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4PerEtaBin1n1n1n1nPOI"));
3d824203 257
258
259
260 //average 2-, 3- and 4-particle correlations per pt-bin
261 TProfile *binnedWPt2p1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerPtBin1n1nPOI"));
262 TProfile *binnedWPt2p2n2nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerPtBin2n2nPOI"));
263 TProfile *binnedWPt3p2n1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3WPerPtBin2n1n1nPOI"));
264 TProfile *binnedWPt3p1n1n2nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f3WPerPtBin1n1n2nPOI"));
265 TProfile *binnedWPt4p1n1n1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4WPerPtBin1n1n1n1nPOI"));
266
267 cout<<endl;
268 cout<<"ab"<<endl;
269 cout<<binnedWPt4p1n1n1n1nPOI->GetName()<<endl;
270 cout<<endl;
271
272
273
274 TProfile *binnedWEta2p1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerEtaBin1n1nPOI"));
275
276 TProfile *binnedWEta4p1n1n1n1nPOI = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4WPerEtaBin1n1n1n1nPOI"));
277
278
279 TProfile *binnedWPt2p1n1nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerPtBin1n1nRP"));
280
281 TProfile *binnedWPt4p1n1n1n1nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4WPerPtBin1n1n1n1nRP"));
282
283 TProfile *binnedWEta2p1n1nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f2WPerEtaBin1n1nRP"));
284
285 TProfile *binnedWEta4p1n1n1n1nRP = dynamic_cast<TProfile*>((dynamic_cast<TList*>(fListHistos->FindObject("DifferentialFlow")))->FindObject("f4WPerEtaBin1n1n1n1nRP"));
286
287
288
289
290
291
e085f1a9 292
8842fb2b 293 //average values of Q-vector components (1st bin: <Q_x>, 2nd bin: <Q_y>, 3rd bin: <(Q_x)^2>, 4th bin: <(Q_y)^2>)
294 TProfile *QVectorComponents = dynamic_cast<TProfile*>(fListHistos->FindObject("fQvectorComponents"));
295
296 //multi-particle correlations calculated with nested loop
297 TProfile *DirectCorrelations = dynamic_cast<TProfile*>(fListHistos->FindObject("fDirectCorrelations"));
298
52021ae2 299 //----------------------------------------------------
8842fb2b 300
301 fQCA = new AliFlowAnalysisWithQCumulants();
302
303 fQCA->SetIntFlowResults(intFlowResults);
304 fQCA->SetDiffFlowResults2nd(diffFlowResults2ndOrder);
305 fQCA->SetDiffFlowResults4th(diffFlowResults4thOrder);
306 fQCA->SetCovariances(covariances);
7e58a232 307
308 fQCA->SetCommonHists2nd(commonHist2nd);
309 fQCA->SetCommonHists4th(commonHist4th);
310 fQCA->SetCommonHists6th(commonHist6th);
311 fQCA->SetCommonHists8th(commonHist8th);
8842fb2b 312
313 fQCA->SetCommonHistsResults2nd(commonHistRes2nd);
314 fQCA->SetCommonHistsResults4th(commonHistRes4th);
315 fQCA->SetCommonHistsResults6th(commonHistRes6th);
316 fQCA->SetCommonHistsResults8th(commonHistRes8th);
317
318 fQCA->SetAverageMultiplicity(AvMult);
e085f1a9 319 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
320 // !!!! to be removed !!!!
321 fQCA->SetQvectorForEachEventX(qvectorForEachEventX);
322 fQCA->SetQvectorForEachEventY(qvectorForEachEventY);
323 //xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
8842fb2b 324 fQCA->SetQCorrelations(QCorrelations);
3d824203 325 fQCA->SetQCorrelationsW(QCorrelationsW);
8842fb2b 326 fQCA->SetQProduct(QProduct);
327 fQCA->SetQVectorComponents(QVectorComponents);
328
1dfa3c16 329 fQCA->SetTwo1n1nPerPtBinRP(binnedPt2p1n1nRP);
330 fQCA->SetTwo2n2nPerPtBinRP(binnedPt2p2n2nRP);
331 fQCA->SetThree2n1n1nPerPtBinRP(binnedPt3p2n1n1nRP);
332 fQCA->SetThree1n1n2nPerPtBinRP(binnedPt3p1n1n2nRP);
333 fQCA->SetFour1n1n1n1nPerPtBinRP(binnedPt4p1n1n1n1nRP);
334
335 fQCA->SetTwo1n1nPerEtaBinRP(binnedEta2p1n1nRP);
336 fQCA->SetTwo2n2nPerEtaBinRP(binnedEta2p2n2nRP);
337 fQCA->SetThree2n1n1nPerEtaBinRP(binnedEta3p2n1n1nRP);
338 fQCA->SetThree1n1n2nPerEtaBinRP(binnedEta3p1n1n2nRP);
339 fQCA->SetFour1n1n1n1nPerEtaBinRP(binnedEta4p1n1n1n1nRP);
340
341 fQCA->SetTwo1n1nPerPtBinPOI(binnedPt2p1n1nPOI);
342 fQCA->SetTwo2n2nPerPtBinPOI(binnedPt2p2n2nPOI);
343 fQCA->SetThree2n1n1nPerPtBinPOI(binnedPt3p2n1n1nPOI);
344 fQCA->SetThree1n1n2nPerPtBinPOI(binnedPt3p1n1n2nPOI);
345 fQCA->SetFour1n1n1n1nPerPtBinPOI(binnedPt4p1n1n1n1nPOI);
346
347 fQCA->SetTwo1n1nPerEtaBinPOI(binnedEta2p1n1nPOI);
348 fQCA->SetTwo2n2nPerEtaBinPOI(binnedEta2p2n2nPOI);
349 fQCA->SetThree2n1n1nPerEtaBinPOI(binnedEta3p2n1n1nPOI);
350 fQCA->SetThree1n1n2nPerEtaBinPOI(binnedEta3p1n1n2nPOI);
351 fQCA->SetFour1n1n1n1nPerEtaBinPOI(binnedEta4p1n1n1n1nPOI);
bc92c0cb 352
3d824203 353
354
355
356
357 fQCA->SetTwo1n1nWPerPtBinPOI(binnedWPt2p1n1nPOI);
358 fQCA->SetTwo2n2nWPerPtBinPOI(binnedWPt2p2n2nPOI);
359 fQCA->SetThree2n1n1nWPerPtBinPOI(binnedWPt3p2n1n1nPOI);
360 fQCA->SetThree1n1n2nWPerPtBinPOI(binnedWPt3p1n1n2nPOI);
361 fQCA->SetFour1n1n1n1nWPerPtBinPOI(binnedWPt4p1n1n1n1nPOI);
362
363 fQCA->SetTwo1n1nWPerEtaBinPOI(binnedWEta2p1n1nPOI);
364 fQCA->SetFour1n1n1n1nWPerEtaBinPOI(binnedWEta4p1n1n1n1nPOI);
365
366 fQCA->SetTwo1n1nWPerPtBinRP(binnedWPt2p1n1nRP);
367 fQCA->SetFour1n1n1n1nWPerPtBinRP(binnedWPt4p1n1n1n1nRP);
368
369 fQCA->SetTwo1n1nWPerEtaBinRP(binnedWEta2p1n1nRP);
370 fQCA->SetFour1n1n1n1nWPerEtaBinRP(binnedWEta4p1n1n1n1nRP);
371
372
373
374
375
376
377
8842fb2b 378 fQCA->SetDirectCorrelations(DirectCorrelations);
bc92c0cb 379
8842fb2b 380 fQCA->Finish();
52021ae2 381
382 //----------------------------------------------------
bc92c0cb 383 }
384 else
385 {
3d824203 386 cout<<" WARNING: histogram list pointer is empty (QC, Task::Terminate())"<<endl;
ae733b3b 387 cout<<endl;
bc92c0cb 388 }
389}
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410