changes for Vertex and Tracks classes
[u/mrichter/AliRoot.git] / PWGCF / EBYE / MeanPtFluctuations / AliAnalysisTaskPtFlucPbPb.cxx
1 #include "TChain.h"
2 #include "TTree.h"
3 #include "TH1F.h"
4 #include "TH2F.h"
5 #include "TList.h"
6 #include "TRandom3.h"
7 #include "iostream"
8
9 #include "AliAnalysisTaskSE.h"
10 #include "AliAnalysisManager.h"
11
12 #include "AliESDEvent.h"
13 #include "AliESDInputHandler.h"
14 #include "AliESDtrackCuts.h"
15 #include "AliCentrality.h"
16
17 #include "AliMCEvent.h"
18 #include "AliStack.h"
19 #include "AliMCEventHandler.h"
20
21 #include "AliAnalysisTaskPtFlucPbPb.h"
22
23
24 using namespace std;
25
26 // Analysis of Pt Fluctuations (PbPb)
27 // Author: Stefan Heckel
28 // Version of PbPb task:  9.2, 03.07.2012
29
30
31 ClassImp(AliAnalysisTaskPtFlucPbPb)
32
33 //________________________________________________________________________
34 AliAnalysisTaskPtFlucPbPb::AliAnalysisTaskPtFlucPbPb(const char *name)
35   :AliAnalysisTaskSE(name),
36   fESD(0),
37   fMCev(0),
38   fRandom3(0),
39   fOutputList(0),
40   fPtSpec(0),
41   fPtSpec2(0),
42   fMult(0),
43   fMultNbins(0),
44   fMultSum(0),
45   fMultSumPt(0),
46   fMultNrPairs(0),
47   fMult1(0),
48   fMultSum1(0),
49   fMultSumPt1(0),
50   fMultNrPairs1(0),
51   fMult10(0),
52   fMultSum10(0),
53   fMultSumPt10(0),
54   fMultNrPairs10(0),
55   fMult80(0),
56   fMultSum80(0),
57   fMultSumPt80(0),
58   fMultNrPairs80(0),
59   fMult801(0),
60   fMultSum801(0),
61   fMultSumPt801(0),
62   fMultNrPairs801(0),
63   fMult810(0),
64   fMultSum810(0),
65   fMultSumPt810(0),
66   fMultNrPairs810(0),
67   fCent(0),
68   fCentSum(0),
69   fCentSumPt(0),
70   fCentNrPairs(0),
71   fEta(0),
72   fEtaPhiPlus(0),
73   fEtaPhiMinus(0),
74   fVtxZ(0),
75   fVtxZCut(0),
76   fVtxZCont(0),
77   fVtxZCutDiff(0),
78   fVtxZTrackCuts(0),
79   fVtxZDiff1(0),
80   fVtxZDiff2(0),
81   fVtxZDiff3(0),
82   fVtxZDiff1b(0),
83   fVtxZDiff2b(0),
84   fVtxZDiff3b(0),
85   fEventMeanPt(0),
86   fEventMeanPtSq(0),
87   fEventMeanPtMult(0),
88   fMultEventMeanPt(0),
89   fMultEventMeanPtSq(0),
90   fMultEventMeanPtNbins(0),
91   fMultEventMeanPtSqNbins(0),
92   fCentEventMeanPt(0),
93   fCentEventMeanPtSq(0),
94   fEventMeanPtCent05(0),
95   fEventMeanPtCent2030(0),
96   fEventMeanPtCent7080(0),
97   fTwoPartCorrEv(0),
98   fTwoPartCorrEvSq(0),
99   fTwoPartCorrEv1(0),
100   fTwoPartCorrEvSq1(0),
101   fTwoPartCorrEv10(0),
102   fTwoPartCorrEvSq10(0),
103   fTwoPartCorrEv80(0),
104   fTwoPartCorrEvSq80(0),
105   fTwoPartCorrEv801(0),
106   fTwoPartCorrEvSq801(0),
107   fTwoPartCorrEv810(0),
108   fTwoPartCorrEvSq810(0),
109   fTwoPartCorrEvCent(0),
110   fTwoPartCorrEvCentSq(0),
111   fESDTrackCuts(0),
112   fMaxVertexZ(0),
113   fMaxVertexZDiff1(0),
114   fNContributors(0),
115   fUseCentrality(0),
116   fMC(0),
117   fMCType(0),
118   fMCAMPT(0)
119 {
120   DefineOutput(1, TList::Class());
121 }
122
123 //________________________________________________________________________
124 AliAnalysisTaskPtFlucPbPb::~AliAnalysisTaskPtFlucPbPb()
125 {
126   if (fRandom3) delete fRandom3; fRandom3 = 0;
127
128   if (fOutputList) {
129     fOutputList->Clear();
130     delete fOutputList;
131   }
132   fOutputList = 0;
133
134   if (fESDTrackCuts) delete fESDTrackCuts; fESDTrackCuts = 0;
135
136 }
137
138 //________________________________________________________________________
139 void AliAnalysisTaskPtFlucPbPb::UserCreateOutputObjects()
140 {
141   // Create histograms
142   // Called once
143
144   OpenFile(1, "RECREATE");
145   fOutputList = new TList();
146   fOutputList->SetOwner();
147
148
149   fPtSpec = new TH1F("fPtSpec","Pt spectrum",100,0,2.5);
150   fPtSpec2 = new TH1F("fPtSpec2","Pt spectrum 2 - MC ESD",100,0,2.5);
151
152   fMult = new TH1F("fMult","Multiplicity distribution",30,0,3000);
153   fMultNbins = new TH1F("fMultNbins","Multiplicity distribution",3000,0,3000);
154   fMultSum = new TH1F("fMultSum","Sum of nrtracks of all events in multiplicity bins",30,0,3000);
155   fMultSumPt = new TH1F("fMultSumPt","Sum of pTs of all events in multiplicity bins",30,0,3000);
156   fMultNrPairs = new TH1F("fMultNrPairs","Sum of number of pairs in multiplicity bins",30,0,3000);
157
158   fMult1 = new TH1F("fMult1","Multiplicity distribution",4,0,100);
159   fMultSum1 = new TH1F("fMultSum1","Sum of nrtracks of all events in multiplicity bins",4,0,100);
160   fMultSumPt1 = new TH1F("fMultSumPt1","Sum of pTs of all events in multiplicity bins",4,0,100);
161   fMultNrPairs1 = new TH1F("fMultNrPairs1","Sum of number of pairs in multiplicity bins",4,0,100);
162
163   fMult10 = new TH1F("fMult10","Multiplicity distribution",5,0,50);
164   fMultSum10 = new TH1F("fMultSum10","Sum of nrtracks of all events in multiplicity bins",5,0,50);
165   fMultSumPt10 = new TH1F("fMultSumPt10","Sum of pTs of all events in multiplicity bins",5,0,50);
166   fMultNrPairs10 = new TH1F("fMultNrPairs10","Sum of number of pairs in multiplicity bins",5,0,50);
167
168   fMult80 = new TH1F("fMult80","Multiplicity distribution",30,0,3000);
169   fMultSum80 = new TH1F("fMultSum80","Sum of nrtracks of all events in multiplicity bins",30,0,3000);
170   fMultSumPt80 = new TH1F("fMultSumPt80","Sum of pTs of all events in multiplicity bins",30,0,3000);
171   fMultNrPairs80 = new TH1F("fMultNrPairs80","Sum of number of pairs in multiplicity bins",30,0,3000);
172
173   fMult801 = new TH1F("fMult801","Multiplicity distribution",4,0,100);
174   fMultSum801 = new TH1F("fMultSum801","Sum of nrtracks of all events in multiplicity bins",4,0,100);
175   fMultSumPt801 = new TH1F("fMultSumPt801","Sum of pTs of all events in multiplicity bins",4,0,100);
176   fMultNrPairs801 = new TH1F("fMultNrPairs801","Sum of number of pairs in multiplicity bins",4,0,100);
177
178   fMult810 = new TH1F("fMult810","Multiplicity distribution",5,0,50);
179   fMultSum810 = new TH1F("fMultSum810","Sum of nrtracks of all events in multiplicity bins",5,0,50);
180   fMultSumPt810 = new TH1F("fMultSumPt810","Sum of pTs of all events in multiplicity bins",5,0,50);
181   fMultNrPairs810 = new TH1F("fMultNrPairs810","Sum of number of pairs in multiplicity bins",5,0,50);
182
183
184   fCent = new TH1F("fCent","Centrality distribution",21,0,105);
185   fCentSum = new TH1F("fCentSum","Sum of nrtracks of all events in centrality bins",21,0,105);
186   fCentSumPt = new TH1F("fCentSumPt","Sum of pTs of all events in centrality bins",21,0,105);
187   fCentNrPairs = new TH1F("fCentNrPairs","Sum of number of pairs in centrality bins",21,0,105);
188
189
190   fEta = new TH1F("fEta","Eta distribution",80,-2,2);
191   fEtaPhiPlus = new TH1F("fEtaPhiPlus","Phi distribution for positive eta",62,0,6.2);
192   fEtaPhiMinus = new TH1F("fEtaPhiMinus","Phi distribution for negative eta",62,0,6.2);
193
194   fVtxZ = new TH1F("fVtxZ","Vertex Z distribution before cuts",100,-20,20);
195   fVtxZCut = new TH1F("fVtxZCut","Vertex Z distribution after vtxZ cut",110,-11,11);
196   fVtxZCont = new TH1F("fVtxZCont","Vertex Z distribution after nCont cut",110,-11,11);
197   fVtxZCutDiff = new TH1F("fVtxZCutDiff","Vertex Z distribution after cut on vtx Z Diff",110,-11,11);
198   fVtxZTrackCuts = new TH1F("fVtxZTrackCuts","Vertex Z distribution after track cuts",110,-11,11);
199
200   fVtxZDiff1 = new TH1F("fVtxZDiff1","Difference 1 between vertex Z distributions",100,-5,5);
201   fVtxZDiff2 = new TH1F("fVtxZDiff2","Difference 2 between vertex Z distributions",100,-5,5);
202   fVtxZDiff3 = new TH1F("fVtxZDiff3","Difference 3 between vertex Z distributions",100,-5,5);
203   fVtxZDiff1b = new TH1F("fVtxZDiff1b","Difference 1 between vertex Z distributions after all cuts",100,-5,5);
204   fVtxZDiff2b = new TH1F("fVtxZDiff2b","Difference 2 between vertex Z distributions after all cuts",100,-5,5);
205   fVtxZDiff3b = new TH1F("fVtxZDiff3b","Difference 3 between vertex Z distributions after all cuts",100,-5,5);
206
207
208   fEventMeanPt = new TH1F("fEventMeanPt","Mean-Pt distribution",250,0,2.5);
209   fEventMeanPtSq = new TH1F("fEventMeanPtSq","Mean-Pt squared distribution",500,0,5);
210   fEventMeanPtMult = new TH2F("fEventMeanPtMult","Mean-Pt for single events vs. multiplicity",30,0,3000,200,0.,2.);
211
212   fMultEventMeanPt = new TH1F("fMultEventMeanPt","Mean-Pt event by event vs. multiplicity",30,0,3000);
213   fMultEventMeanPtSq = new TH1F("fMultEventMeanPtSq","Mean-Pt event by event squared vs. multiplicity",30,0,3000);
214
215   fMultEventMeanPtNbins = new TH1F("fMultEventMeanPtNbins","Mean-Pt event by event vs. multiplicity",3000,0,3000);
216   fMultEventMeanPtSqNbins = new TH1F("fMultEventMeanPtSqNbins","Mean-Pt event by event squared vs. multiplicity",3000,0,3000);
217
218   fCentEventMeanPt = new TH1F("fCentEventMeanPt","Mean-Pt event by event vs. centrality",21,0,105);
219   fCentEventMeanPtSq = new TH1F("fCentEventMeanPtSq","Mean-Pt event by event squared vs. centrality",21,0,105);
220
221   fEventMeanPtCent05 = new TH1F("fEventMeanPtCent05","Mean-Pt distribution for centrality 0-5%",500,0.4,0.9);
222   fEventMeanPtCent2030 = new TH1F("fEventMeanPtCent2030","Mean-Pt distribution for centrality 20-30%",500,0.4,0.9);
223   fEventMeanPtCent7080 = new TH1F("fEventMeanPtCent7080","Mean-Pt distribution for centrality 70-80%",1500,0,1.5);
224
225
226   fTwoPartCorrEv = new TH1F("fTwoPartCorrEv","Two-particle correlator vs. multiplicity",30,0,3000);
227   fTwoPartCorrEvSq = new TH1F("fTwoPartCorrEvSq","Two-particle correlator squared vs. multiplicity",30,0,3000);
228
229   fTwoPartCorrEv1 = new TH1F("fTwoPartCorrEv1","Two-particle correlator vs. multiplicity",4,0,100);
230   fTwoPartCorrEvSq1 = new TH1F("fTwoPartCorrEvSq1","Two-particle correlator squared vs. multiplicity",4,0,100);
231
232   fTwoPartCorrEv10 = new TH1F("fTwoPartCorrEv10","Two-particle correlator vs. multiplicity",5,0,50);
233   fTwoPartCorrEvSq10 = new TH1F("fTwoPartCorrEvSq10","Two-particle correlator squared vs. multiplicity",5,0,50);
234
235   fTwoPartCorrEv80 = new TH1F("fTwoPartCorrEv80","Two-particle correlator vs. multiplicity",30,0,3000);
236   fTwoPartCorrEvSq80 = new TH1F("fTwoPartCorrEvSq80","Two-particle correlator squared vs. multiplicity",30,0,3000);
237
238   fTwoPartCorrEv801 = new TH1F("fTwoPartCorrEv801","Two-particle correlator vs. multiplicity",4,0,100);
239   fTwoPartCorrEvSq801 = new TH1F("fTwoPartCorrEvSq801","Two-particle correlator squared vs. multiplicity",4,0,100);
240
241   fTwoPartCorrEv810 = new TH1F("fTwoPartCorrEv810","Two-particle correlator vs. multiplicity",5,0,50);
242   fTwoPartCorrEvSq810 = new TH1F("fTwoPartCorrEvSq810","Two-particle correlator squared vs. multiplicity",5,0,50);
243
244   fTwoPartCorrEvCent = new TH1F("fTwoPartCorrEvCent","Two-particle correlator vs. centrality",21,0,105);
245   fTwoPartCorrEvCentSq = new TH1F("fTwoPartCorrEvCentSq","Two-particle correlator squared vs. centrality",21,0,105);
246
247
248   // Add histograms to the output list
249   fOutputList->Add(fPtSpec);
250   fOutputList->Add(fPtSpec2);
251   fOutputList->Add(fMult);
252   fOutputList->Add(fMultNbins);
253   fOutputList->Add(fMultSum);
254   fOutputList->Add(fMultSumPt);
255   fOutputList->Add(fMultNrPairs);
256   fOutputList->Add(fMult1);
257   fOutputList->Add(fMultSum1);
258   fOutputList->Add(fMultSumPt1);
259   fOutputList->Add(fMultNrPairs1);
260   fOutputList->Add(fMult10);
261   fOutputList->Add(fMultSum10);
262   fOutputList->Add(fMultSumPt10);
263   fOutputList->Add(fMultNrPairs10);
264   fOutputList->Add(fMult80);
265   fOutputList->Add(fMultSum80);
266   fOutputList->Add(fMultSumPt80);
267   fOutputList->Add(fMultNrPairs80);
268   fOutputList->Add(fMult801);
269   fOutputList->Add(fMultSum801);
270   fOutputList->Add(fMultSumPt801);
271   fOutputList->Add(fMultNrPairs801);
272   fOutputList->Add(fMult810);
273   fOutputList->Add(fMultSum810);
274   fOutputList->Add(fMultSumPt810);
275   fOutputList->Add(fMultNrPairs810);
276   fOutputList->Add(fCent);
277   fOutputList->Add(fCentSum);
278   fOutputList->Add(fCentSumPt);
279   fOutputList->Add(fCentNrPairs);
280   fOutputList->Add(fEta);
281   fOutputList->Add(fEtaPhiPlus);
282   fOutputList->Add(fEtaPhiMinus);
283   fOutputList->Add(fVtxZ);
284   fOutputList->Add(fVtxZCut);
285   fOutputList->Add(fVtxZCont);
286   fOutputList->Add(fVtxZCutDiff);
287   fOutputList->Add(fVtxZTrackCuts);
288   fOutputList->Add(fVtxZDiff1);
289   fOutputList->Add(fVtxZDiff2);
290   fOutputList->Add(fVtxZDiff3);
291   fOutputList->Add(fVtxZDiff1b);
292   fOutputList->Add(fVtxZDiff2b);
293   fOutputList->Add(fVtxZDiff3b);
294   fOutputList->Add(fEventMeanPt);
295   fOutputList->Add(fEventMeanPtSq);
296   fOutputList->Add(fEventMeanPtMult);
297   fOutputList->Add(fMultEventMeanPt);
298   fOutputList->Add(fMultEventMeanPtSq);
299   fOutputList->Add(fMultEventMeanPtNbins);
300   fOutputList->Add(fMultEventMeanPtSqNbins);
301   fOutputList->Add(fCentEventMeanPt);
302   fOutputList->Add(fCentEventMeanPtSq);
303   fOutputList->Add(fEventMeanPtCent05);
304   fOutputList->Add(fEventMeanPtCent2030);
305   fOutputList->Add(fEventMeanPtCent7080);
306   fOutputList->Add(fTwoPartCorrEv);
307   fOutputList->Add(fTwoPartCorrEvSq);
308   fOutputList->Add(fTwoPartCorrEv1);
309   fOutputList->Add(fTwoPartCorrEvSq1);
310   fOutputList->Add(fTwoPartCorrEv10);
311   fOutputList->Add(fTwoPartCorrEvSq10);
312   fOutputList->Add(fTwoPartCorrEv80);
313   fOutputList->Add(fTwoPartCorrEvSq80);
314   fOutputList->Add(fTwoPartCorrEv801);
315   fOutputList->Add(fTwoPartCorrEvSq801);
316   fOutputList->Add(fTwoPartCorrEv810);
317   fOutputList->Add(fTwoPartCorrEvSq810);
318   fOutputList->Add(fTwoPartCorrEvCent);
319   fOutputList->Add(fTwoPartCorrEvCentSq);
320
321   // Post output data (if histograms are not used later, PostData is at least called here)
322   PostData(1, fOutputList);
323
324 }
325
326 //________________________________________________________________________
327 void AliAnalysisTaskPtFlucPbPb::UserExec(Option_t *)
328 {
329   // Main loop
330   // Called for each event
331
332
333   // --- ESD event handler ---
334   if (!fMC || fMCType < 3) {
335
336 //     Printf("ESD handler");
337   
338     AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
339
340     if (!esdH) {
341       Printf("ERROR: Could not get ESDInputHandler");
342     }
343     else {
344       fESD = esdH->GetEvent();
345     }
346
347     if (!fESD) {
348       Printf("ERROR: fESD not available");
349       return;
350     }
351
352     if(!fESDTrackCuts) Printf("ERROR: No esd track cut");
353
354   } // --- End ESD event handler ---
355
356
357   // --- MC event handler ---
358
359   AliStack *stack = NULL;
360
361   if (fMC) {
362
363 //     Printf("MC handler");
364
365     AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
366
367     if (!mcH) {
368       Printf("ERROR: Could not get MCInputHandler");
369       return;
370     }
371     else {
372      fMCev = mcH->MCEvent();
373     }
374
375     if (!fMCev) {
376       Printf("ERROR: fMCev not available");
377       return;
378     }
379
380    stack = fMCev->Stack();
381
382   }
383
384   // --- End MC event handler ---
385
386
387   // --- Vertex cuts ---
388
389   Double_t vtxZGlobal=0., vtxZSPD=0., vtxZTPC=0.;
390   Double_t vtxNContGlobal=0.;
391 //   Double_t  vtxNContSPD=0., vtxNContTPC=0.;
392   Double_t vtxZ=0., vtxNCont=0.;
393   Double_t vtxZdiff1=0., vtxZdiff2=0., vtxZdiff3=0.;
394
395  if (!fMC || fMCType < 3) {
396
397   // Global vertex
398   const AliESDVertex* vtxESD = fESD->GetPrimaryVertexTracks();
399   vtxZGlobal = vtxESD->GetZ();
400   vtxNContGlobal = vtxESD->GetNContributors();
401
402   // SPD vertex
403   const AliESDVertex* vtxESDSPD = fESD->GetPrimaryVertexSPD();
404   vtxZSPD = vtxESDSPD->GetZ();
405 //   vtxNContSPD = vtxESDSPD->GetNContributors();
406
407   // TPC vertex
408   const AliESDVertex* vtxESDTPC = fESD->GetPrimaryVertexTPC();
409   vtxZTPC = vtxESDTPC->GetZ();
410 //   vtxNContTPC = vtxESDTPC->GetNContributors();
411
412   vtxZ = vtxZGlobal;
413   vtxNCont = vtxNContGlobal;
414
415   fVtxZ->Fill(vtxZ); // VtxZ before cuts
416
417   // Differences between vertices
418   vtxZdiff1 = vtxZTPC - vtxZGlobal;
419   vtxZdiff2 = vtxZTPC - vtxZSPD;
420   vtxZdiff3 = vtxZGlobal - vtxZSPD;
421   fVtxZDiff1->Fill(vtxZdiff1);
422   fVtxZDiff2->Fill(vtxZdiff2);
423   fVtxZDiff3->Fill(vtxZdiff3);
424
425   // Event cut on the z-position of the vertex
426   if(vtxZ > fMaxVertexZ || vtxZ < (-1.*fMaxVertexZ)) {
427 //     Printf("VertexZ out of range, Zv = %f",vtxZ);
428     return;
429   }
430
431   fVtxZCut->Fill(vtxZ); // VtxZ after cut on vtxZ
432
433   // Event cut on the number of contributors
434   if(vtxNCont < fNContributors) {
435 //     Printf("Vertex has no contributors");
436     return;
437   }
438
439   fVtxZCont->Fill(vtxZ); // VtxZ after cut on nContributors
440
441   // Event cut on the difference of the z-positions of the vertices (TPC - global)
442   if (fMaxVertexZDiff1 > 0.) {
443     if(vtxZdiff1 > fMaxVertexZDiff1 || vtxZdiff1 < (-1.*fMaxVertexZDiff1)) {
444 //       Printf("VertexZ Diff (TPC - global) out of range, vtxZdiff1 = %f",vtxZ);
445       return;
446     }
447   }
448
449   fVtxZCutDiff->Fill(vtxZ); // VtxZ after cut on vtxZDiff
450
451  } // --- End vertex cuts ---
452
453
454   Int_t nrTracks = 0;           // count for number of tracks which pass the track cuts
455 //   Int_t nrTracks2 = 0;               // count for number of tracks which pass the track cuts - for MC ESD vs. MC truth
456   Int_t nrESDTracks = 0;        // number of tracks in the ESD file
457   Int_t nrMCTracks = 0;         // number of tracks in the MC file
458   Double_t sumPt = 0.;          // sum of track Pts
459   Double_t twoPartCorrEv = 0.;  // Two-particle correlator of one event for multiplicity bin analysis
460   Double_t twoPartCorrEvCent = 0.; // Two-particle correlator of one event for centrality bin analysis
461
462   Double_t tracks[3000] = {0.}; // array of track Pts, needed for the two-particle correlator
463
464   Double_t trackPt=0., trackEta=0., trackPhi=0.;
465   Double_t trackPt2=0.; // for MC ESD
466   Double_t eventMeanPt=0., eventMeanPtSq=0., evMptMult=0.;
467   Double_t twoPartCorrPair=0., twoPartCorrEvSq=0.;
468   Double_t twoPartCorrPairCent=0., twoPartCorrEvCentSq=0.;
469   Double_t nrPairs=0.;
470
471   Double_t *nbins = 0x0; // Mean pT values for multiplicity bin analysis
472   Double_t *centbins = 0x0; // Mean pT values for centrality bin analysis
473   Double_t *sNbinsMC276 = 0x0; // Mean pT values for mult. with Delta N_acc = 1, MC
474
475   Double_t centralityVZERO=0.;
476   Int_t centralityVZEROBin=0;
477
478   Int_t centBin=0;
479   Double_t evMptCent=0.;
480
481   Int_t maxNrTracksMC=0, minNrBinMC=0; // special values, which have to be set differently for AMPT;
482
483   Double_t random=0., trackPt40=0., ptRatio=0.;
484   Int_t trackPtBin=0;
485
486   fRandom3 = new TRandom3();
487
488   if (fMCType == 2 || fMCType == 4) { // MC, Type = mod. MC truth
489    fRandom3->SetSeed(0);
490   }
491
492
493 // --- Mean pT values ---
494
495 // !!!!! Have to be calculated in a first run - for each sample, which should be analysed, separately! !!!!!
496
497
498 // -- Mean pT values for multiplicity bins (first bin is for nrTracks = 0 and has to be 0) --
499
500   // MC PbPb 2.76 ATeV 11a10a_bis (Hijing) (Pt-Range: 0.15 - 2) ---> values for MC ESD <---
501   Double_t nbinsMC276H[32] = {0.0000, 0.5251, 0.5350, 0.5385, 0.5405, 0.5420, 0.5435, 0.5444, 0.5452, 0.5459, 0.5467, 0.5473, 0.5478, 0.5485, 0.5490, 0.5496, 0.5500, 0.5505, 0.5513, 0.5519, 0.5525, 0.5531, 0.5540, 0.5547, 0.5554, 0.5560, 0.5570, 0.5581, 0.5578, 0.5693, 0.0000, 0.0000};
502   // MC PbPb 2.76 ATeV 11a10a_bis (Hijing) (Pt-Range: 0.15 - 2) ---> values for MC truth <---
503 //   Double_t nbinsMC276H[32] = {0.000, 0.515, 0.524, 0.528, 0.530, 0.531, 0.532, 0.533, 0.534, 0.534, 0.535, 0.535, 0.536, 0.536, 0.536, 0.536, 0.537, 0.537, 0.537, 0.537, 0.538, 0.538, 0.538, 0.539, 0.539, 0.539, 0.540, 0.541, 0.541, 0.541, 0.543, 0.543};
504   // MC PbPb 2.76 ATeV 11a10a_bis (Hijing) (Pt-Range: 0.15 - 2) ---> values for mod. MC truth <---
505 //   Double_t nbinsMC276H[32] = {0.000, 0.528, 0.537, 0.540, 0.542, 0.544, 0.545, 0.546, 0.546, 0.547, 0.547, 0.548, 0.548, 0.548, 0.549, 0.549, 0.549, 0.550, 0.550, 0.550, 0.551, 0.551, 0.552, 0.552, 0.552, 0.553, 0.554, 0.554, 0.554, 0.558, 0.565, 0.000};
506
507
508   // MC PbPb 2.76 ATeV AMPT (Pt-Range: 0.15 - 2) ---> values for MC ESD <---
509 //   Double_t nbinsMC276A[32] = {0.0000, 0.5274, 0.5365, 0.5398, 0.5433, 0.5449, 0.5440, 0.5416, 0.5398, 0.5383, 0.5371, 0.5353, 0.5340, 0.5324, 0.5304, 0.5293, 0.5284, 0.5276, 0.5267, 0.5258, 0.5249, 0.5242, 0.5238, 0.5239, 0.5241, 0.5247, 0.5258, 0.5269, 0.0000, 0.0000, 0.0000, 0.0000};
510   // MC PbPb 2.76 ATeV AMPT (Pt-Range: 0.15 - 2) ---> values for MC ESD <------> merged NEW <---
511   Double_t nbinsMC276A[32] = {0.0000, 0.5275, 0.5380, 0.5418, 0.5432, 0.5429, 0.5421, 0.5411, 0.5398, 0.5383, 0.5371, 0.5354, 0.5341, 0.5327, 0.5310, 0.5299, 0.5290, 0.5279, 0.5269, 0.5260, 0.5253, 0.5245, 0.5242, 0.5241, 0.5246, 0.5252, 0.5266, 0.5266, 0.0000, 0.0000, 0.0000, 0.0000};
512
513   // MC PbPb 2.76 ATeV AMPT (Pt-Range: 0.15 - 2) ---> values for MC truth <---
514 //   Double_t nbinsMC276A[32] = {0.0000, 0.5072, 0.5179, 0.5219, 0.5234, 0.5237, 0.5227, 0.5221, 0.5205, 0.5189, 0.5177, 0.5158, 0.5146, 0.5127, 0.5114, 0.5099, 0.5090, 0.5075, 0.5061, 0.5055, 0.5045, 0.5038, 0.5038, 0.5045, 0.5037, 0.5059, 0.5032, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000};
515   // MC PbPb 2.76 ATeV AMPT (Pt-Range: 0.15 - 2) ---> values for mod. MC truth <---
516 //   Double_t nbinsMC276A[32] = {0.0000, 0.5205, 0.5312, 0.5350, 0.5363, 0.5359, 0.5353, 0.5337, 0.5318, 0.5306, 0.5287, 0.5272, 0.5254, 0.5237, 0.5222, 0.5211, 0.5196, 0.5185, 0.5174, 0.5166, 0.5170, 0.5174, 0.5162, 0.5191, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000};
517
518
519   // Data PbPb 2.76 ATeV 10h.pass2 (Pt-Range: 0.15 - 2)
520   Double_t nbinsData276[32] = {0.0000, 0.5785, 0.6037, 0.6159, 0.6240, 0.6300, 0.6345, 0.6381, 0.6409, 0.6432, 0.6452, 0.6467, 0.6480, 0.6492, 0.6501, 0.6508, 0.6515, 0.6521, 0.6525, 0.6528, 0.6530, 0.6532, 0.6532, 0.6533, 0.6538, 0.6550, 0.6563, 0.6579, 0.6595, 0.6599, 0.6607, 0.6549};
521
522 // -- End mean pT values for multiplicity bins --
523
524
525 // -- Mean pT values for centrality bins --
526
527 // - 5% centrality bins -
528
529   // MC PbPb 2.76 ATeV 11a10a_bis (Hijing) (Pt-Range: 0.15 - 2) ---> values for MC ESD <---
530   Double_t centbinsMC276H[21] = {0.5541, 0.5517, 0.5499, 0.5484, 0.5473, 0.5460, 0.5448, 0.5436, 0.5419, 0.5404, 0.5389, 0.5369, 0.5350, 0.5320, 0.5299, 0.5268, 0.5232, 0.5179, 0.5150, 0.0000, 0.5072};
531   // MC PbPb 2.76 ATeV 11a10a_bis (Hijing) (Pt-Range: 0.15 - 2) ---> values for MC truth <---
532 //   Double_t centbinsMC276H[21] = {0.538, 0.537, 0.536, 0.535, 0.534, 0.534, 0.533, 0.531, 0.530, 0.529, 0.527, 0.526, 0.523, 0.521, 0.519, 0.516, 0.512, 0.507, 0.504, 0.000, 0.538};
533   // MC PbPb 2.76 ATeV 11a10a_bis (Hijing) (Pt-Range: 0.15 - 2) ---> values for mod. MC truth <---
534 //   Double_t centbinsMC276H[21] = {0.551, 0.549, 0.548, 0.547, 0.547, 0.546, 0.545, 0.543, 0.542, 0.541, 0.539, 0.537, 0.535, 0.533, 0.530, 0.528, 0.524, 0.518, 0.516, 0.000, 0.550};
535
536
537   // MC PbPb 2.76 ATeV AMPT (Pt-Range: 0.15 - 2) ---> values for MC ESD <---
538 //   Double_t centbinsMC276A[21] = {0.0000, 0.5230, 0.5239, 0.5262, 0.5287, 0.5326, 0.5361, 0.5398, 0.5431, 0.5450, 0.5439, 0.5417, 0.5387, 0.5369, 0.5344, 0.5304, 0.5264, 0.5216, 0.5169, 0.0000, 0.5309};
539   // MC PbPb 2.76 ATeV AMPT (Pt-Range: 0.15 - 2) ---> values for MC ESD <------> merged NEW <---
540   Double_t centbinsMC276A[21] = {0.0000, 0.5241, 0.5242, 0.5263, 0.5294, 0.5329, 0.5362, 0.5397, 0.5422, 0.5432, 0.5434, 0.5428, 0.5407, 0.5378, 0.5346, 0.5303, 0.5258, 0.5205, 0.5143, 0.0000, 0.5316};
541
542
543   // Data PbPb 2.76 ATeV 10h.pass2 (Pt-Range: 0.15 - 2)
544   Double_t centbinsData276[21] = {0.6534, 0.6526, 0.6510, 0.6488, 0.6460, 0.6425, 0.6383, 0.6334, 0.6277, 0.6215, 0.6147, 0.6075, 0.6001, 0.5928, 0.5855, 0.5778, 0.5677, 0.5510, 0.5382, 0.0000, 0.5652};
545
546 // - End 5% centrality bins -
547
548
549 // - 10% centrality bins -
550
551   // MC PbPb 2.76 ATeV 11a10a_bis (Hijing) (Pt-Range: 0.15 - 2) ---> values for MC ESD <---
552 //   Double_t centbinsMC276H[11] = {0.553, 0.549, 0.547, 0.544, 0.541, 0.538, 0.534, 0.529, 0.521, 0.517, 0.509};
553
554
555   // Data PbPb 2.76 ATeV 10h.pass2 (Pt-Range: 0.15 - 2)
556 //   Double_t centbinsData276H[11] = {0.653, 0.650, 0.644, 0.636, 0.625, 0.612, 0.597, 0.582, 0.562, 0.539, 0.548};
557
558 // - End 10% centrality bins -
559
560 // -- End mean pT values for centrality bins --
561
562
563 // -- Mean pT values for single multiplicity bins ---> the first value has to be 0.000 <---
564
565   // MC PbPb 2.76 ATeV 11a10a_bis (Hijing) (Pt-Range: 0.15 - 2) (up to N_acc = 500) ---> values for MC ESD <---
566   Double_t sNbinsMC276H[501] = {0.000, 0.480, 0.481, 0.483, 0.484, 0.489, 0.493, 0.498, 0.501, 0.504, 0.506, 0.508, 0.510, 0.511, 0.512, 0.513, 0.514, 0.515, 0.516, 0.517, 0.517, 0.518, 0.519, 0.519, 0.520, 0.520, 0.521, 0.521, 0.521, 0.522, 0.522, 0.523, 0.523, 0.523, 0.523, 0.524, 0.524, 0.524, 0.525, 0.525, 0.525, 0.525, 0.525, 0.526, 0.526, 0.526, 0.526, 0.526, 0.527, 0.527, 0.527, 0.527, 0.527, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543};
567
568   // MC PbPb 2.76 ATeV 11a10a_bis (Hijing) (Pt-Range: 0.15 - 2) (up to N_acc = 500) ---> values for MC truth <---
569 //   Double_t sNbinsMC276H[501] = {0.000, 0.477, 0.472, 0.475, 0.474, 0.481, 0.483, 0.486, 0.489, 0.495, 0.495, 0.495, 0.503, 0.504, 0.504, 0.505, 0.506, 0.506, 0.507, 0.507, 0.508, 0.508, 0.509, 0.509, 0.510, 0.510, 0.510, 0.511, 0.511, 0.512, 0.512, 0.512, 0.512, 0.513, 0.513, 0.513, 0.513, 0.514, 0.514, 0.514, 0.514, 0.515, 0.515, 0.515, 0.515, 0.515, 0.516, 0.516, 0.516, 0.516, 0.516, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.521, 0.521, 0.521, 0.521, 0.521, 0.521, 0.521, 0.521, 0.521, 0.521, 0.521, 0.522, 0.522, 0.522, 0.522, 0.522, 0.522, 0.522, 0.522, 0.522, 0.522, 0.522, 0.522, 0.522, 0.522, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.523, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532};
570
571
572   // MC PbPb 2.76 ATeV AMPT (Pt-Range: 0.15 - 2) (up to N_acc = 200) ---> values for MC ESD <---
573 //   Double_t sNbinsMC276A[201] = {0.000, 0.474, 0.499, 0.492, 0.489, 0.489, 0.495, 0.489, 0.492, 0.495, 0.498, 0.500, 0.502, 0.503, 0.505, 0.506, 0.508, 0.509, 0.510, 0.511, 0.512, 0.513, 0.513, 0.514, 0.515, 0.516, 0.516, 0.517, 0.517, 0.518, 0.519, 0.519, 0.520, 0.520, 0.520, 0.521, 0.521, 0.522, 0.522, 0.522, 0.523, 0.523, 0.523, 0.524, 0.524, 0.524, 0.525, 0.525, 0.525, 0.525, 0.526, 0.526, 0.526, 0.526, 0.527, 0.527, 0.527, 0.527, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538};
574   // MC PbPb 2.76 ATeV AMPT (Pt-Range: 0.15 - 2) (up to N_acc = 300) ---> values for MC ESD <------> merged NEW <---
575   Double_t sNbinsMC276A[301] = {0.000, 0.476, 0.497, 0.489, 0.491, 0.490, 0.498, 0.491, 0.494, 0.496, 0.499, 0.501, 0.502, 0.504, 0.505, 0.507, 0.508, 0.509, 0.510, 0.511, 0.512, 0.513, 0.514, 0.514, 0.515, 0.516, 0.516, 0.517, 0.518, 0.518, 0.519, 0.519, 0.520, 0.520, 0.521, 0.521, 0.521, 0.522, 0.522, 0.523, 0.523, 0.523, 0.524, 0.524, 0.524, 0.525, 0.525, 0.525, 0.525, 0.526, 0.526, 0.526, 0.527, 0.527, 0.527, 0.527, 0.528, 0.528, 0.528, 0.528, 0.528, 0.529, 0.529, 0.529, 0.529, 0.529, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.535, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.536, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.537, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.538, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.539, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.540, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.541, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.542, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543, 0.543};
576
577 //   // MC PbPb 2.76 ATeV AMPT (Pt-Range: 0.15 - 2) (up to N_acc = 200) ---> values for MC truth <---
578 //   Double_t sNbinsMC276A[201] = {0.000, 0.404, 0.404, 0.426, 0.439, 0.448, 0.455, 0.461, 0.465, 0.469, 0.472, 0.475, 0.477, 0.479, 0.481, 0.483, 0.484, 0.485, 0.487, 0.488, 0.489, 0.490, 0.491, 0.492, 0.493, 0.494, 0.494, 0.495, 0.496, 0.496, 0.497, 0.498, 0.498, 0.499, 0.499, 0.500, 0.500, 0.501, 0.501, 0.501, 0.502, 0.502, 0.503, 0.503, 0.503, 0.504, 0.504, 0.504, 0.505, 0.505, 0.505, 0.506, 0.506, 0.506, 0.506, 0.507, 0.507, 0.507, 0.507, 0.508, 0.508, 0.508, 0.508, 0.508, 0.509, 0.509, 0.509, 0.509, 0.509, 0.510, 0.510, 0.510, 0.510, 0.510, 0.511, 0.511, 0.511, 0.511, 0.511, 0.511, 0.511, 0.512, 0.512, 0.512, 0.512, 0.512, 0.512, 0.512, 0.513, 0.513, 0.513, 0.513, 0.513, 0.513, 0.513, 0.513, 0.514, 0.514, 0.514, 0.514, 0.514, 0.514, 0.514, 0.514, 0.514, 0.515, 0.515, 0.515, 0.515, 0.515, 0.515, 0.515, 0.515, 0.515, 0.515, 0.516, 0.516, 0.516, 0.516, 0.516, 0.516, 0.516, 0.516, 0.516, 0.516, 0.516, 0.516, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.517, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.518, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.519, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.520, 0.521, 0.521, 0.521, 0.521, 0.521};
579
580   // MC PbPb 2.76 ATeV AMPT (Pt-Range: 0.15 - 2) (up to N_acc = 200) ---> values for mod. MC truth <---
581 //   Double_t sNbinsMC276A[201] = {0.000, 0.479, 0.480, 0.481, 0.482, 0.482, 0.483, 0.485, 0.486, 0.488, 0.490, 0.491, 0.493, 0.494, 0.496, 0.497, 0.498, 0.499, 0.500, 0.502, 0.502, 0.503, 0.504, 0.505, 0.506, 0.507, 0.507, 0.508, 0.509, 0.509, 0.510, 0.511, 0.511, 0.512, 0.512, 0.513, 0.513, 0.514, 0.514, 0.515, 0.515, 0.515, 0.516, 0.516, 0.517, 0.517, 0.517, 0.518, 0.518, 0.518, 0.519, 0.519, 0.519, 0.519, 0.520, 0.520, 0.520, 0.520, 0.521, 0.521, 0.521, 0.521, 0.522, 0.522, 0.522, 0.522, 0.523, 0.523, 0.523, 0.523, 0.523, 0.524, 0.524, 0.524, 0.524, 0.524, 0.524, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.526, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.527, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.528, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.529, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.530, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.531, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.532, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.533, 0.534, 0.534, 0.534, 0.534, 0.534, 0.534};
582
583
584   // Data PbPb 2.76 ATeV 10h.pass2 (Pt-Range: 0.15 - 2) (up to N_acc = 1000)
585   Double_t sNbinsData276[1001] = {0.000, 0.487, 0.488, 0.491, 0.497, 0.504, 0.510, 0.515, 0.522, 0.527, 0.531, 0.536, 0.539, 0.543, 0.546, 0.550, 0.551, 0.554, 0.556, 0.558, 0.560, 0.561, 0.563, 0.564, 0.566, 0.567, 0.568, 0.568, 0.570, 0.571, 0.571, 0.572, 0.573, 0.574, 0.574, 0.575, 0.575, 0.576, 0.577, 0.577, 0.578, 0.578, 0.578, 0.580, 0.580, 0.580, 0.580, 0.581, 0.581, 0.582, 0.582, 0.583, 0.583, 0.583, 0.583, 0.584, 0.584, 0.585, 0.585, 0.586, 0.586, 0.586, 0.586, 0.586, 0.586, 0.587, 0.587, 0.587, 0.588, 0.588, 0.588, 0.589, 0.589, 0.589, 0.589, 0.589, 0.590, 0.590, 0.590, 0.591, 0.591, 0.590, 0.591, 0.592, 0.592, 0.592, 0.592, 0.592, 0.593, 0.593, 0.593, 0.593, 0.593, 0.594, 0.594, 0.594, 0.594, 0.595, 0.594, 0.594, 0.595, 0.596, 0.596, 0.596, 0.596, 0.596, 0.597, 0.597, 0.596, 0.597, 0.597, 0.598, 0.597, 0.598, 0.598, 0.598, 0.598, 0.599, 0.598, 0.599, 0.598, 0.599, 0.599, 0.600, 0.600, 0.600, 0.600, 0.600, 0.600, 0.601, 0.601, 0.601, 0.601, 0.601, 0.602, 0.602, 0.602, 0.602, 0.602, 0.602, 0.602, 0.603, 0.603, 0.602, 0.603, 0.603, 0.603, 0.604, 0.604, 0.604, 0.604, 0.605, 0.604, 0.604, 0.605, 0.605, 0.604, 0.605, 0.605, 0.605, 0.605, 0.605, 0.606, 0.606, 0.606, 0.606, 0.606, 0.606, 0.607, 0.607, 0.606, 0.607, 0.607, 0.608, 0.608, 0.607, 0.607, 0.608, 0.608, 0.608, 0.608, 0.608, 0.609, 0.608, 0.609, 0.608, 0.610, 0.609, 0.609, 0.609, 0.609, 0.610, 0.609, 0.610, 0.610, 0.610, 0.610, 0.610, 0.610, 0.610, 0.611, 0.611, 0.611, 0.611, 0.610, 0.611, 0.611, 0.611, 0.612, 0.612, 0.612, 0.612, 0.612, 0.612, 0.613, 0.613, 0.613, 0.613, 0.613, 0.612, 0.613, 0.612, 0.613, 0.613, 0.613, 0.613, 0.614, 0.613, 0.614, 0.613, 0.613, 0.614, 0.614, 0.614, 0.614, 0.614, 0.615, 0.615, 0.615, 0.615, 0.615, 0.615, 0.615, 0.615, 0.615, 0.616, 0.615, 0.616, 0.616, 0.616, 0.616, 0.615, 0.616, 0.616, 0.616, 0.617, 0.617, 0.617, 0.617, 0.616, 0.617, 0.617, 0.617, 0.618, 0.618, 0.618, 0.617, 0.618, 0.617, 0.617, 0.618, 0.618, 0.618, 0.618, 0.619, 0.618, 0.618, 0.619, 0.619, 0.618, 0.619, 0.619, 0.619, 0.619, 0.619, 0.619, 0.619, 0.619, 0.620, 0.620, 0.619, 0.620, 0.620, 0.620, 0.620, 0.621, 0.621, 0.620, 0.621, 0.621, 0.620, 0.621, 0.620, 0.620, 0.621, 0.621, 0.621, 0.621, 0.621, 0.621, 0.621, 0.621, 0.622, 0.621, 0.622, 0.621, 0.622, 0.622, 0.621, 0.621, 0.622, 0.622, 0.622, 0.622, 0.622, 0.622, 0.622, 0.623, 0.623, 0.622, 0.623, 0.622, 0.623, 0.623, 0.623, 0.623, 0.624, 0.623, 0.623, 0.623, 0.624, 0.623, 0.624, 0.624, 0.624, 0.623, 0.624, 0.624, 0.623, 0.624, 0.624, 0.624, 0.624, 0.624, 0.625, 0.625, 0.624, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.626, 0.625, 0.625, 0.625, 0.626, 0.626, 0.626, 0.625, 0.626, 0.626, 0.626, 0.626, 0.626, 0.626, 0.627, 0.626, 0.626, 0.627, 0.627, 0.627, 0.627, 0.627, 0.626, 0.627, 0.627, 0.627, 0.627, 0.627, 0.627, 0.627, 0.627, 0.627, 0.627, 0.628, 0.627, 0.628, 0.628, 0.628, 0.628, 0.627, 0.628, 0.628, 0.628, 0.628, 0.628, 0.628, 0.628, 0.628, 0.628, 0.628, 0.628, 0.628, 0.629, 0.628, 0.628, 0.629, 0.629, 0.630, 0.629, 0.629, 0.629, 0.629, 0.629, 0.630, 0.629, 0.630, 0.629, 0.630, 0.630, 0.629, 0.630, 0.630, 0.629, 0.630, 0.630, 0.630, 0.630, 0.630, 0.630, 0.630, 0.630, 0.630, 0.630, 0.630, 0.631, 0.630, 0.631, 0.630, 0.630, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.631, 0.632, 0.631, 0.632, 0.631, 0.632, 0.632, 0.631, 0.631, 0.632, 0.631, 0.632, 0.632, 0.632, 0.633, 0.632, 0.632, 0.632, 0.632, 0.633, 0.632, 0.632, 0.632, 0.632, 0.632, 0.633, 0.633, 0.633, 0.633, 0.633, 0.633, 0.633, 0.633, 0.633, 0.632, 0.633, 0.633, 0.633, 0.633, 0.633, 0.633, 0.633, 0.633, 0.634, 0.633, 0.634, 0.633, 0.634, 0.634, 0.634, 0.634, 0.634, 0.633, 0.633, 0.634, 0.634, 0.634, 0.633, 0.634, 0.633, 0.634, 0.634, 0.634, 0.634, 0.634, 0.634, 0.634, 0.634, 0.634, 0.634, 0.635, 0.635, 0.634, 0.634, 0.635, 0.635, 0.634, 0.634, 0.635, 0.634, 0.635, 0.635, 0.634, 0.635, 0.635, 0.635, 0.635, 0.635, 0.635, 0.635, 0.635, 0.635, 0.636, 0.636, 0.635, 0.635, 0.635, 0.636, 0.636, 0.635, 0.636, 0.636, 0.635, 0.636, 0.636, 0.636, 0.636, 0.636, 0.636, 0.636, 0.636, 0.636, 0.636, 0.636, 0.636, 0.637, 0.636, 0.636, 0.636, 0.636, 0.636, 0.636, 0.636, 0.637, 0.637, 0.637, 0.636, 0.637, 0.636, 0.636, 0.636, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.637, 0.638, 0.638, 0.637, 0.638, 0.637, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.638, 0.639, 0.638, 0.638, 0.638, 0.639, 0.638, 0.639, 0.638, 0.639, 0.638, 0.638, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.638, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.639, 0.640, 0.639, 0.640, 0.640, 0.640, 0.639, 0.639, 0.639, 0.639, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.640, 0.641, 0.640, 0.640, 0.641, 0.641, 0.641, 0.641, 0.641, 0.641, 0.641, 0.641, 0.641, 0.640, 0.640, 0.640, 0.641, 0.641, 0.641, 0.641, 0.641, 0.641, 0.642, 0.641, 0.642, 0.642, 0.641, 0.641, 0.641, 0.642, 0.641, 0.642, 0.641, 0.641, 0.641, 0.642, 0.641, 0.642, 0.642, 0.641, 0.642, 0.642, 0.641, 0.642, 0.641, 0.641, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.642, 0.643, 0.642, 0.642, 0.642, 0.642, 0.642, 0.643, 0.642, 0.642, 0.643, 0.643, 0.643, 0.642, 0.642, 0.643, 0.642, 0.643, 0.643, 0.643, 0.642, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.642, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.644, 0.643, 0.643, 0.643, 0.643, 0.643, 0.643, 0.644, 0.643, 0.643, 0.643, 0.643, 0.644, 0.643, 0.644, 0.644, 0.643, 0.643, 0.643, 0.644, 0.643, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.643, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.645, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.644, 0.645, 0.644, 0.645, 0.644, 0.644, 0.645, 0.644, 0.644, 0.645, 0.645, 0.644, 0.644, 0.644, 0.644, 0.645, 0.645, 0.645, 0.645, 0.644, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.646, 0.646, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.645, 0.646, 0.645, 0.646, 0.646, 0.645, 0.646, 0.646, 0.646, 0.645, 0.646, 0.646, 0.646, 0.646, 0.646, 0.646, 0.646, 0.646, 0.646, 0.645, 0.646, 0.646, 0.646, 0.646, 0.646, 0.646, 0.646, 0.646, 0.645, 0.646, 0.646, 0.646, 0.646, 0.646, 0.646, 0.646};
586
587 // -- End mean pT values for single multiplicity bins --
588
589
590 // -- Selection of MC/Data --
591
592 if (fMC) { // - MC -
593
594   if (fMCAMPT) {
595
596 //     Printf(" -- MC, 2.76 ATeV - AMPT -- ");
597
598     nbins = nbinsMC276A;
599     centbins = centbinsMC276A;
600     sNbinsMC276 = sNbinsMC276A;
601
602     maxNrTracksMC = 300;
603     minNrBinMC = 4;
604
605   }
606   else {
607
608 //     Printf(" -- MC, 2.76 ATeV - HIIJNG -- ");
609
610     nbins = nbinsMC276H;
611     centbins = centbinsMC276H;
612     sNbinsMC276 = sNbinsMC276H;
613
614     maxNrTracksMC = 500;
615     minNrBinMC = 6;
616
617   }
618
619 } // - End MC -
620 else { // - Data -
621
622 //   Printf(" -- Data, 2.76 ATeV -- ");
623
624   nbins = nbinsData276;
625   centbins = centbinsData276;
626
627 } // - End data -
628
629 // -- End selection of MC/Data --
630
631 // --- End mean pT values ---
632
633
634 // --- Ratio of pT distributions MC ESD / MC truth ---
635
636 // MC PbPb 2.76 ATeV 11a10a_bis (Hijing) (Pt-Range: 0.15 - 2, array-range: 0 - 2.1 GeV/c)
637 Double_t nbinsPtRatio[84] = {0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.667, 0.850, 0.871, 0.880, 0.884, 0.890, 0.899, 0.913, 0.923, 0.931, 0.935, 0.937, 0.941, 0.944, 0.944, 0.945, 0.946, 0.947, 0.947, 0.948, 0.948, 0.949, 0.949, 0.950, 0.949, 0.949, 0.948, 0.950, 0.949, 0.949, 0.951, 0.953, 0.951, 0.951, 0.950, 0.950, 0.950, 0.952, 0.954, 0.953, 0.955, 0.954, 0.955, 0.955, 0.955, 0.957, 0.955, 0.955, 0.956, 0.956, 0.952, 0.951, 0.950, 0.948, 0.950, 0.951, 0.949, 0.948, 0.945, 0.946, 0.943, 0.943, 0.942, 0.940, 0.941, 0.939, 0.936, 0.936, 0.936, 0.932, 0.932, 0.927, 0.928, 0.927, 0.000, 0.000, 0.000, 0.000};
638
639 // --- End ratio of pT distributions MC ESD / MC truth ---
640
641
642   if (!fMC || fMCType < 3) {
643     nrESDTracks = fESD->GetNumberOfTracks();
644   }
645
646   if (fMC) {
647     nrMCTracks = stack->GetNtrack();
648   }
649
650 //   Printf("\n\n nrESDTracks: %i   nrMCTracks : %i \n",nrESDTracks,nrMCTracks);
651
652
653   // Get event centrality
654   if (!fMC || fMCType < 3) {
655
656    if(fUseCentrality != 0) {
657
658     AliCentrality *esdCentrality = fESD->GetCentrality();
659
660     //V0
661     if (fUseCentrality == 1) {
662
663       centralityVZERO = esdCentrality->GetCentralityPercentile("V0M");
664
665       if      ( centralityVZERO >   0. && centralityVZERO <   5.) centralityVZEROBin =  0;
666       else if ( centralityVZERO >=  5. && centralityVZERO <  10.) centralityVZEROBin =  5;
667       else if ( centralityVZERO >= 10. && centralityVZERO <  15.) centralityVZEROBin = 10;
668       else if ( centralityVZERO >= 15. && centralityVZERO <  20.) centralityVZEROBin = 15;
669       else if ( centralityVZERO >= 20. && centralityVZERO <  25.) centralityVZEROBin = 20;
670       else if ( centralityVZERO >= 25. && centralityVZERO <  30.) centralityVZEROBin = 25;
671       else if ( centralityVZERO >= 30. && centralityVZERO <  35.) centralityVZEROBin = 30;
672       else if ( centralityVZERO >= 35. && centralityVZERO <  40.) centralityVZEROBin = 35;
673       else if ( centralityVZERO >= 40. && centralityVZERO <  45.) centralityVZEROBin = 40;
674       else if ( centralityVZERO >= 45. && centralityVZERO <  50.) centralityVZEROBin = 45;
675       else if ( centralityVZERO >= 50. && centralityVZERO <  55.) centralityVZEROBin = 50;
676       else if ( centralityVZERO >= 55. && centralityVZERO <  60.) centralityVZEROBin = 55;
677       else if ( centralityVZERO >= 60. && centralityVZERO <  65.) centralityVZEROBin = 60;
678       else if ( centralityVZERO >= 65. && centralityVZERO <  70.) centralityVZEROBin = 65;
679       else if ( centralityVZERO >= 70. && centralityVZERO <  75.) centralityVZEROBin = 70;
680       else if ( centralityVZERO >= 75. && centralityVZERO <  80.) centralityVZEROBin = 75;
681       else if ( centralityVZERO >= 80. && centralityVZERO <  85.) centralityVZEROBin = 80;
682       else if ( centralityVZERO >= 85. && centralityVZERO <  90.) centralityVZEROBin = 85;
683       else if ( centralityVZERO >= 90. && centralityVZERO <  95.) centralityVZEROBin = 90;
684       else if ( centralityVZERO >= 95. && centralityVZERO <  99.) centralityVZEROBin = 95;
685       else if ( centralityVZERO >= 99. ) centralityVZEROBin = 100;
686       else if ( centralityVZERO <= 0.  ) centralityVZEROBin = 100;
687
688       centBin = centralityVZEROBin / 5;
689       evMptCent = centbins[centBin];
690
691 //       if      ( centralityVZERO >   0. && centralityVZERO <  10.) centralityVZEROBin =  0;
692 //       else if ( centralityVZERO >= 10. && centralityVZERO <  20.) centralityVZEROBin = 10;
693 //       else if ( centralityVZERO >= 20. && centralityVZERO <  30.) centralityVZEROBin = 20;
694 //       else if ( centralityVZERO >= 30. && centralityVZERO <  40.) centralityVZEROBin = 30;
695 //       else if ( centralityVZERO >= 40. && centralityVZERO <  50.) centralityVZEROBin = 40;
696 //       else if ( centralityVZERO >= 50. && centralityVZERO <  60.) centralityVZEROBin = 50;
697 //       else if ( centralityVZERO >= 60. && centralityVZERO <  70.) centralityVZEROBin = 60;
698 //       else if ( centralityVZERO >= 70. && centralityVZERO <  80.) centralityVZEROBin = 70;
699 //       else if ( centralityVZERO >= 80. && centralityVZERO <  90.) centralityVZEROBin = 80;
700 //       else if ( centralityVZERO >= 90. && centralityVZERO <  99.) centralityVZEROBin = 90;
701 //       else if ( centralityVZERO >= 99. ) centralityVZEROBin = 100;
702 //       else if ( centralityVZERO <= 0.  ) centralityVZEROBin = 100;
703 // 
704 //       centBin = centralityVZEROBin / 10;
705 //       evMptCent = centbins[centBin];
706     }
707
708 //     Printf("\nRaw mult: %i   CentVZERO: %f   CentVZERObin: %i   centBin: %i   evMptCent: %.3f ",nrESDTracks,centralityVZERO,centralityVZEROBin,centBin,evMptCent);
709
710    }
711   } // End get event centrality
712
713
714 if (fMC) { // - MC -
715
716  if (fMCType == 0) { // MC, Type = ESD
717
718
719   // --- Loop over all tracks of one ESD event ---
720   for (Int_t iTracks = 0; iTracks < nrESDTracks; iTracks++) {
721
722     AliESDtrack* track = fESD->GetTrack(iTracks);
723
724     if (!track) {
725       Printf("ERROR: Could not receive track %d\n", iTracks);
726       continue;
727     }
728
729       if(!fESDTrackCuts->AcceptTrack(track))continue;
730
731         trackPt = track->Pt();
732         fPtSpec->Fill(trackPt);
733         tracks[nrTracks] = trackPt;
734
735         trackEta = track->Eta();
736         fEta->Fill(trackEta);
737
738         trackPhi = track->Phi();
739
740         if (trackEta > 0.) {
741           fEtaPhiPlus->Fill(trackPhi);
742         }
743         else if (trackEta < 0.) {
744           fEtaPhiMinus->Fill(trackPhi);
745         }
746
747         sumPt = sumPt + trackPt;
748         nrTracks++;
749
750 //      Printf("Track Pt = %.3f   Track Eta = %.3f   Track Phi = %3f\n",trackPt,trackEta,trackPhi);
751
752   } // --- End track loop ---
753
754
755  } // End MC, Type = ESD
756  else if (fMCType > 0) { // MC, Type = MC truth
757
758
759   // --- Loop over all tracks of one MC event - MC truth / stack ---
760   for (Int_t iTracks = 0; iTracks < nrMCTracks; iTracks++) {
761
762     TParticle *track = stack->Particle(iTracks);
763
764     if (!track) {
765       Printf("ERROR: Could not receive track %d\n", iTracks);
766       continue;
767     }
768
769         // only charged particles
770         TParticlePDG* pdg = track->GetPDG();
771         if(!pdg) continue;
772
773         Double_t charge = pdg->Charge()/3.;
774         if ( TMath::Abs(charge) < 0.001 ) continue;
775
776         // only physical primary
777         Bool_t prim = stack->IsPhysicalPrimary(iTracks);
778         if(!prim) continue;
779
780         // get pt, eta and phi and cut in eta and pt
781         trackPt = track->Pt();
782         trackEta = track->Eta();
783         trackPhi = track->Phi();
784
785 //      Printf("Track Pt = %.3f   Track Eta = %.3f   Track Phi = %3f  ",trackPt,trackEta,trackPhi);
786
787         if (trackEta > 0.8) continue;
788         if (trackEta < -0.8) continue;
789
790         if (trackPt < 0.15) continue;
791         if (trackPt > 2.) continue;
792
793 //      Printf("Track Pt = %.3f   Track Eta = %.3f   Track Phi = %3f  ",trackPt,trackEta,trackPhi);
794 //      Printf("-> Track accepted!");
795
796
797         // -- Reject tracks according to ratio of pT distribution MC ESD / MC truth --
798         if (fMCType == 2 || fMCType == 4) { // MC, Type = mod. MC truth
799
800           trackPt40 = trackPt*40.;
801           trackPtBin = floor(trackPt40);
802
803           ptRatio = nbinsPtRatio[trackPtBin];
804
805 //        Printf("trackPt: %f   trackPt40: %f   trackPtBin: %i   ptRatio: %.3f   ",trackPt,trackPt40,trackPtBin,ptRatio);
806
807           random = fRandom3->Rndm();
808 //        Printf("Random: %f  \n",random);
809
810           if (random > ptRatio) continue;
811 //        Printf("accepted random: %f \n",random);
812
813         } // -- End reject tracks according to ratio of pT distribution MC ESD / MC truth --
814
815
816         fPtSpec->Fill(trackPt);
817         tracks[nrTracks] = trackPt;
818
819         fEta->Fill(trackEta);
820
821         if (trackEta > 0.) {
822           fEtaPhiPlus->Fill(trackPhi);
823         }
824         else if (trackEta < 0.) {
825           fEtaPhiMinus->Fill(trackPhi);
826         }
827
828         sumPt = sumPt + trackPt;
829         nrTracks++;
830
831 //      Printf("Track Pt = %.3f   Track Eta = %.3f   Track Phi = %3f\n",trackPt,trackEta,trackPhi);
832
833   } // --- End stack track loop ---
834
835 //   Printf("nrTracks MC truth: %i \n",nrTracks);
836
837
838   // MC, Type = MC truth with corresponding ESD
839   if (fMCType < 3) {
840
841     // --- Loop over all tracks of one MC event - MC ESD ---
842     for (Int_t jTracks = 0; jTracks < nrESDTracks; jTracks++) {
843       AliESDtrack* track = fESD->GetTrack(jTracks);
844       if (!track) {
845         Printf("ERROR: Could not receive track %d\n", jTracks);
846         continue;
847       }
848
849         if(!fESDTrackCuts->AcceptTrack(track))continue;
850
851           trackPt2 = track->Pt();
852           fPtSpec2->Fill(trackPt2);
853
854 //        nrTracks2++;
855
856 //        Printf("Track Pt ESD = %.3f\n\n",trackPt2);
857
858     } // --- End ESD track loop ---
859
860 //     Printf("nrTracks ESD: %i \n\n",nrTracks2);
861
862   } // End MC, Tpye = MC truth with corresponding ESD
863
864  } // End MC, Type = MC truth
865
866
867 } // - End MC -
868 else { // - Data -
869
870
871   // --- Loop over all tracks of one ESD event ---
872   for (Int_t iTracks = 0; iTracks < nrESDTracks; iTracks++) {
873
874     AliESDtrack* track = fESD->GetTrack(iTracks);
875
876     if (!track) {
877       Printf("ERROR: Could not receive track %d\n", iTracks);
878       continue;
879     }
880
881       if(!fESDTrackCuts->AcceptTrack(track))continue;
882
883         trackPt = track->Pt();
884         fPtSpec->Fill(trackPt);
885         tracks[nrTracks] = trackPt;
886
887         trackEta = track->Eta();
888         fEta->Fill(trackEta);
889
890         trackPhi = track->Phi();
891
892         if (trackEta > 0.) {
893           fEtaPhiPlus->Fill(trackPhi);
894         }
895         else if (trackEta < 0.) {
896           fEtaPhiMinus->Fill(trackPhi);
897         }
898
899         sumPt = sumPt + trackPt;
900         nrTracks++;
901
902 //      Printf("Track Pt = %.3f   Track Eta = %.3f   Track Phi = %3f\n",trackPt,trackEta,trackPhi);
903
904   } // --- End track loop ---
905
906 } // - End data -
907
908
909   // --- Calculation of various values and filling of histograms (for remaining events with N_acc > 0) ---
910
911   if(nrTracks != 0) {
912
913     if (!fMC || fMCType < 3) {
914
915       // VtxZ after all track cuts
916       fVtxZTrackCuts->Fill(vtxZ);
917
918       // Differences between vertices after all cuts
919       fVtxZDiff1b->Fill(vtxZdiff1);
920       fVtxZDiff2b->Fill(vtxZdiff2);
921       fVtxZDiff3b->Fill(vtxZdiff3);
922
923     }
924
925     // Multiplicity distributions
926     fMult->Fill(nrTracks);
927     fMultNbins->Fill(nrTracks);
928     fMultSum->Fill(nrTracks,nrTracks);
929     fMultSumPt->Fill(nrTracks,sumPt);
930     // Same for first bin divided in 4
931     if (nrTracks < 101) {
932       fMult1->Fill(nrTracks);
933       fMultSum1->Fill(nrTracks,nrTracks);
934       fMultSumPt1->Fill(nrTracks,sumPt);
935     }
936     // Same for five bins in 0 < Nacc < 50
937     if (nrTracks < 51) {
938       fMult10->Fill(nrTracks);
939       fMultSum10->Fill(nrTracks,nrTracks);
940       fMultSumPt10->Fill(nrTracks,sumPt);
941     }
942     // Same for events with centrality < 80%
943     if (centralityVZEROBin < 80) {
944         fMult80->Fill(nrTracks);
945         fMultSum80->Fill(nrTracks,nrTracks);
946         fMultSumPt80->Fill(nrTracks,sumPt);
947       // Same for first bin divided in 4 only for events with centrality < 80%
948       if (nrTracks < 101) {
949         fMult801->Fill(nrTracks);
950         fMultSum801->Fill(nrTracks,nrTracks);
951         fMultSumPt801->Fill(nrTracks,sumPt);
952       }
953       // Same for five bins in 0 < Nacc < 50 only for events with centrality < 80%
954       if (nrTracks < 51) {
955         fMult810->Fill(nrTracks);
956         fMultSum810->Fill(nrTracks,nrTracks);
957         fMultSumPt810->Fill(nrTracks,sumPt);
958       }
959     }
960
961     // Number of pairs in event
962     nrPairs = 0.5 * nrTracks * (nrTracks-1);
963     fMultNrPairs->Fill(nrTracks,nrPairs);
964     // Same for first bin divided in 4
965     if (nrTracks < 101) {
966       fMultNrPairs1->Fill(nrTracks,nrPairs);
967     }
968     // Same for five bins in 0 < Nacc < 50
969     if (nrTracks < 51) {
970       fMultNrPairs10->Fill(nrTracks,nrPairs);
971     }
972     // Same for events with centrality < 80%
973     if (centralityVZEROBin < 80) {
974         fMultNrPairs80->Fill(nrTracks,nrPairs);
975       // Same for first bin divided in 4 only for events with centrality < 80%
976       if (nrTracks < 101) {
977         fMultNrPairs801->Fill(nrTracks,nrPairs);
978       }
979       // Same for five bins in 0 < Nacc < 50 only for events with centrality < 80%
980       if (nrTracks < 51) {
981         fMultNrPairs810->Fill(nrTracks,nrPairs);
982       }
983     }
984
985     // Calculation of mean Pt and mean Pt Squared
986     eventMeanPt = sumPt / nrTracks;
987     eventMeanPtSq = eventMeanPt * eventMeanPt;
988
989     // Mean-Pt and Mean-Pt squared
990     fEventMeanPt->Fill(eventMeanPt);
991     fEventMeanPtSq->Fill(eventMeanPtSq);
992     fEventMeanPtMult->Fill(nrTracks,eventMeanPt);
993
994     // Mean-Pt and Mean-Pt squared depending on multiplicity
995     fMultEventMeanPt->Fill(nrTracks,eventMeanPt);
996     fMultEventMeanPtSq->Fill(nrTracks,eventMeanPtSq);
997     fMultEventMeanPtNbins->Fill(nrTracks,eventMeanPt);
998     fMultEventMeanPtSqNbins->Fill(nrTracks,eventMeanPtSq);
999
1000 //     Printf("nrTracks: %i   sumPt: %.8f   meanPt: %.8f   meanPtSq: %.8f\n",nrTracks,sumPt,eventMeanPt,eventMeanPtSq);
1001
1002
1003     // Centrality V0
1004     if (!fMC || fMCType < 3) {
1005
1006      if (fUseCentrality == 1) {
1007
1008       // Centrality distributions
1009       fCent->Fill(centralityVZEROBin);
1010       fCentSum->Fill(centralityVZEROBin,nrTracks);
1011       fCentSumPt->Fill(centralityVZEROBin,sumPt);
1012
1013       // Number of pairs in event
1014       fCentNrPairs->Fill(centralityVZEROBin,nrPairs);
1015
1016       // Mean-Pt and Mean-Pt squared depending on centrality
1017       fCentEventMeanPt->Fill(centralityVZEROBin,eventMeanPt);
1018       fCentEventMeanPtSq->Fill(centralityVZEROBin,eventMeanPtSq);
1019
1020       if (centBin == 0) {
1021         fEventMeanPtCent05->Fill(eventMeanPt);
1022 //      Printf("centralityV0 = %.3f   --   0-5% -- \n",centralityVZERO);
1023       }
1024       else if (centBin == 4 || centBin == 5) {
1025         fEventMeanPtCent2030->Fill(eventMeanPt);
1026 //      Printf("centralityV0 = %.3f   -- 20-30% -- \n",centralityVZERO);
1027       }
1028       else if (centBin == 14 || centBin == 15) {
1029         fEventMeanPtCent7080->Fill(eventMeanPt);
1030 //      Printf("centralityV0 = %.3f   -- 70-80% -- \n",centralityVZERO);
1031       }
1032
1033 //       Printf("CentV0bin: %i   NrTracks: %i   NrPairs: %.0f   SumPt: %.1f\n",centralityVZEROBin,nrTracks,nrPairs,sumPt);
1034      }
1035     }
1036
1037
1038     // --- Setting of mean pT values
1039
1040     if (fMC) { // - MC -
1041
1042 //       if (nrTracks <= 500) {
1043 //       if (nrTracks <= 200) {
1044       if (nrTracks <= maxNrTracksMC) {
1045         evMptMult = sNbinsMC276[nrTracks];
1046         evMptCent = evMptMult;
1047       }
1048       else {
1049 //      for (int k=6; k<32; k++) {
1050 //      for (int k=3; k<32; k++) {
1051         for (int k=minNrBinMC; k<32; k++) {
1052           if (nrTracks > 100 * (k-1) && nrTracks <= 100 * k) {
1053             evMptMult = nbins[k];
1054             break;
1055           }
1056         }
1057       }
1058
1059     } // - End MC -
1060     else { // - Data -
1061
1062       if (nrTracks <= 1000) {
1063         evMptMult = sNbinsData276[nrTracks];
1064         evMptCent = evMptMult;
1065       }
1066       else {
1067         for (int k=11; k<32; k++) {
1068           if (nrTracks > 100 * (k-1) && nrTracks <= 100 * k) {
1069             evMptMult = nbins[k];
1070             break;
1071           }
1072         }
1073       }
1074
1075     } // - End data -
1076
1077
1078 //     Printf("maxNrTracksMC = %3i   minNrBinMC = %3i   ",maxNrTracksMC,minNrBinMC);
1079 //     Printf("nrTracks = %3i   evMptMult = %.3f   evMptCent = %.3f \n",nrTracks,evMptMult,evMptCent);
1080
1081     // --- End setting of mean pT values
1082
1083
1084     // --- Two-particle correlator ---
1085
1086     // -- Analysis in multiplicity bins --
1087
1088     for (int i=0; i<nrTracks; i++) {
1089       for (int j=i+1; j<nrTracks; j++) {
1090         twoPartCorrPair = (tracks[i] - evMptMult) * (tracks[j] - evMptMult);
1091         twoPartCorrEv = twoPartCorrEv + twoPartCorrPair;
1092       }
1093     }
1094
1095     twoPartCorrEvSq = twoPartCorrEv * twoPartCorrEv;
1096     fTwoPartCorrEv->Fill(nrTracks,twoPartCorrEv);
1097     fTwoPartCorrEvSq->Fill(nrTracks,twoPartCorrEvSq);
1098     // Same for first bin divided in 4
1099     if (nrTracks < 101) {
1100       fTwoPartCorrEv1->Fill(nrTracks,twoPartCorrEv);
1101       fTwoPartCorrEvSq1->Fill(nrTracks,twoPartCorrEvSq);
1102     }
1103     // Same for five bins in 0 < Nacc < 50
1104     if (nrTracks < 51) {
1105       fTwoPartCorrEv10->Fill(nrTracks,twoPartCorrEv);
1106       fTwoPartCorrEvSq10->Fill(nrTracks,twoPartCorrEvSq);
1107     }
1108     // Same for events with centrality < 80%
1109     if (centralityVZEROBin < 80) {
1110         fTwoPartCorrEv80->Fill(nrTracks,twoPartCorrEv);
1111         fTwoPartCorrEvSq80->Fill(nrTracks,twoPartCorrEvSq);
1112       // Same for first bin divided in 4 only for events with centrality < 80%
1113       if (nrTracks < 101) {
1114         fTwoPartCorrEv801->Fill(nrTracks,twoPartCorrEv);
1115         fTwoPartCorrEvSq801->Fill(nrTracks,twoPartCorrEvSq);
1116       }
1117       // Same for five bins in 0 < Nacc < 50 only for events with centrality < 80%
1118       if (nrTracks < 51) {
1119         fTwoPartCorrEv810->Fill(nrTracks,twoPartCorrEv);
1120         fTwoPartCorrEvSq810->Fill(nrTracks,twoPartCorrEvSq);
1121       }
1122     }
1123
1124     // -- End analysis in multiplicity bins --
1125
1126
1127     // -- Analysis in centrality bins --
1128     if (!fMC || fMCType < 3) {
1129
1130      // Centrality V0
1131      if (fUseCentrality == 1) {
1132
1133       if (centralityVZEROBin < 91) {
1134
1135         for (int i=0; i<nrTracks; i++) {
1136           for (int j=i+1; j<nrTracks; j++) {
1137             twoPartCorrPairCent = (tracks[i] - evMptCent) * (tracks[j] - evMptCent);
1138             twoPartCorrEvCent = twoPartCorrEvCent + twoPartCorrPairCent;
1139           }
1140         }
1141
1142         twoPartCorrEvCentSq = twoPartCorrEvCent * twoPartCorrEvCent;
1143         fTwoPartCorrEvCent->Fill(centralityVZEROBin,twoPartCorrEvCent);
1144         fTwoPartCorrEvCentSq->Fill(centralityVZEROBin,twoPartCorrEvCentSq);
1145
1146       }
1147      }
1148     } // -- End analysis in centrality bins --
1149
1150     // --- End two-particle correlator ---
1151
1152
1153   } // --- End calculation of various values and filling of histograms ---
1154
1155
1156   // Post output data
1157   PostData(1, fOutputList);
1158
1159   // Delet pointer
1160   if (fRandom3) delete fRandom3; fRandom3 = 0;
1161
1162 }
1163
1164 void AliAnalysisTaskPtFlucPbPb::Terminate(Option_t *)
1165 {
1166   // Called once at the end of the query
1167
1168   fOutputList = dynamic_cast<TList*> (GetOutputData(1));
1169   if (!fOutputList) {
1170     Printf("ERROR: fOutputList not available\n");
1171     return;
1172   }
1173
1174 }