]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/AliCentralitySelectionTask.cxx
Fix the pdf output (the first and last plots were missing) (Diego)
[u/mrichter/AliRoot.git] / ANALYSIS / AliCentralitySelectionTask.cxx
CommitLineData
01974bd1 1/**************************************************************************
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16//*****************************************************
17// Class AliCentralitySelectionTask
18// Class to analyze determine centrality
19// author: Alberica Toia
20//*****************************************************
21
22#include "AliCentralitySelectionTask.h"
23
24#include <TTree.h>
25#include <TList.h>
26#include <TH1F.h>
27#include <TH2F.h>
28#include <TF1.h>
29#include <TProfile.h>
30#include <TFile.h>
31#include <TObjString.h>
32#include <TString.h>
33#include <TCanvas.h>
34#include <TROOT.h>
35#include <TDirectory.h>
36#include <TSystem.h>
37#include <iostream>
38
39#include "AliAnalysisManager.h"
40#include "AliHeader.h"
41#include "AliVEvent.h"
42#include "AliESD.h"
43#include "AliESDEvent.h"
44#include "AliESDHeader.h"
45#include "AliESDInputHandler.h"
46#include "AliESDZDC.h"
47#include "AliESDFMD.h"
48#include "AliESDTZERO.h"
49#include "AliESDVZERO.h"
50#include "AliESDtrackCuts.h"
51#include "AliESDVertex.h"
52#include "AliCentrality.h"
53#include "AliOADBCentrality.h"
54#include "AliOADBContainer.h"
55#include "AliMultiplicity.h"
56#include "AliAODHandler.h"
57#include "AliAODHeader.h"
58#include "AliAODEvent.h"
59#include "AliAODVertex.h"
60#include "AliAODVZERO.h"
61#include "AliAODTracklets.h"
62#include "AliAODMCHeader.h"
63#include "AliMCEventHandler.h"
64#include "AliMCEvent.h"
65#include "AliAODMCParticle.h"
66#include "AliMCParticle.h"
67#include "AliStack.h"
68#include "AliAnalysisTaskSE.h"
69#include "AliGenEventHeader.h"
70#include "AliGenHijingEventHeader.h"
8432b617 71#include "AliGenDPMjetEventHeader.h"
72#include "AliGenCocktailEventHeader.h"
01974bd1 73#include "AliPhysicsSelectionTask.h"
74#include "AliPhysicsSelection.h"
75#include "AliBackgroundSelection.h"
76#include "AliESDUtils.h"
77
78ClassImp(AliCentralitySelectionTask)
79
80
81//________________________________________________________________________
82AliCentralitySelectionTask::AliCentralitySelectionTask():
83AliAnalysisTaskSE(),
84 fAnalysisInput("ESD"),
85 fIsMCInput(kFALSE),
86 fCurrentRun(-1),
87 fUseScaling(0),
88 fUseCleaning(0),
89 fFillHistos(0),
90 fV0MScaleFactor(0),
91 fSPDScaleFactor(0),
92 fTPCScaleFactor(0),
93 fV0MScaleFactorMC(0),
94 fV0MSPDOutlierPar0(0),
95 fV0MSPDOutlierPar1(0),
96 fV0MTPCOutlierPar0(0),
97 fV0MTPCOutlierPar1(0),
98 fV0MSPDSigmaOutlierPar0(0),
99 fV0MSPDSigmaOutlierPar1(0),
100 fV0MSPDSigmaOutlierPar2(0),
101 fV0MTPCSigmaOutlierPar0(0),
102 fV0MTPCSigmaOutlierPar1(0),
103 fV0MTPCSigmaOutlierPar2(0),
104 fV0MZDCOutlierPar0(0),
105 fV0MZDCOutlierPar1(0),
106 fV0MZDCEcalOutlierPar0(0),
107 fV0MZDCEcalOutlierPar1(0),
108 fTrackCuts(0),
109 fZVCut(10),
110 fOutliersCut(5),
111 fQuality(999),
112 fIsSelected(0),
113 fMSL(0),
114 fMSH(0),
115 fMUL(0),
116 fMLL(0),
117 fEJE(0),
118 fEGA(0),
119 fPHS(0),
120 fMB(0),
121 fCVHN(0),
122 fCVLN(0),
123 fCVHNbit(0),
124 fCVLNbit(0),
125 fCCENT(0),
126 fCSEMI(0),
127 fCCENTbit(0),
128 fCSEMIbit(0),
129 fCentV0M(0),
130 fCentV0A(0),
131 fCentV0C(0),
132 fCentFMD(0),
133 fCentTRK(0),
134 fCentTKL(0),
135 fCentCL0(0),
136 fCentCL1(0),
137 fCentCND(0),
8432b617 138 fCentNPA(0),
01974bd1 139 fCentV0MvsFMD(0),
140 fCentTKLvsV0M(0),
141 fCentZEMvsZDC(0),
142 fHtempV0M(0),
143 fHtempV0A(0),
144 fHtempV0C(0),
145 fHtempFMD(0),
146 fHtempTRK(0),
147 fHtempTKL(0),
148 fHtempCL0(0),
149 fHtempCL1(0),
150 fHtempCND(0),
8432b617 151 fHtempNPA(0),
01974bd1 152 fHtempV0MvsFMD(0),
153 fHtempTKLvsV0M(0),
154 fHtempZEMvsZDC(0),
155 fOutputList(0),
156 fHOutCentV0M (0),
157 fHOutCentV0A (0),
158 fHOutCentV0C (0),
159 fHOutCentV0MCVHN(0),
160 fHOutCentV0MCVLN(0),
161 fHOutCentV0MCVHNinMB(0),
162 fHOutCentV0MCVLNinMB(0),
163 fHOutCentV0MCCENT(0),
164 fHOutCentV0MCSEMI(0),
165 fHOutCentV0MCCENTinMB(0),
166 fHOutCentV0MCSEMIinMB(0),
167 fHOutCentV0MMSL(0),
168 fHOutCentV0MMSH(0),
169 fHOutCentV0MMUL(0),
170 fHOutCentV0MMLL(0),
171 fHOutCentV0MEJE(0),
172 fHOutCentV0MEGA(0),
173 fHOutCentV0MPHS(0),
174 fHOutCentV0MMSLinMB(0),
175 fHOutCentV0MMSHinMB(0),
176 fHOutCentV0MMULinMB(0),
177 fHOutCentV0MMLLinMB(0),
178 fHOutCentV0MEJEinMB(0),
179 fHOutCentV0MEGAinMB(0),
180 fHOutCentV0MPHSinMB(0),
181 fHOutCentFMD (0),
182 fHOutCentTRK (0),
183 fHOutCentTKL (0),
184 fHOutCentCL0 (0),
185 fHOutCentCL1 (0),
186 fHOutCentCND (0),
8432b617 187 fHOutCentNPA (0),
01974bd1 188 fHOutCentV0MvsFMD(0),
189 fHOutCentTKLvsV0M(0),
190 fHOutCentZEMvsZDC(0),
191 fHOutCentV0MvsCentCL1(0),
192 fHOutCentV0MvsCentTRK(0),
193 fHOutCentTRKvsCentCL1(0),
194 fHOutCentV0MvsCentZDC(0),
195 fHOutCentV0AvsCentV0C(0),
196 fHOutCentV0AvsCentTRK(0),
197 fHOutCentV0AvsCentCND(0),
198 fHOutCentV0AvsCentCL1(0),
199 fHOutCentV0CvsCentTRK(0),
200 fHOutCentV0CvsCentCND(0),
201 fHOutCentV0CvsCentCL1(0),
8432b617 202 fHOutCentNPAvsCentV0A(0),
203 fHOutCentNPAvsCentV0C(0),
204 fHOutCentNPAvsCentTRK(0),
205 fHOutCentNPAvsCentCND(0),
206 fHOutCentNPAvsCentCL1(0),
01974bd1 207 fHOutMultV0AC(0),
208 fHOutMultV0M(0),
209 fHOutMultV0A(0),
210 fHOutMultV0C(0),
e1d58f75 211 fHOutMultV0Mnc(0),
212 fHOutMultV0Anc(0),
213 fHOutMultV0Cnc(0),
01974bd1 214 fHOutMultV0O(0),
215 fHOutMultV0Cells(0),
216 fHOutMultFMD(0),
217 fHOutMultTRK(0),
218 fHOutMultTKL(0),
219 fHOutMultCL0(0),
220 fHOutMultCL1(0),
221 fHOutMultCND(0),
8432b617 222 fHOutMultNPA(0),
01974bd1 223 fHOutMultV0MvsZDN(0),
224 fHOutMultZEMvsZDN(0),
225 fHOutMultV0MvsZDC(0),
226 fHOutMultZEMvsZDC(0),
227 fHOutMultZEMvsZDCw(0),
228 fHOutMultV0MvsCL1(0),
229 fHOutMultV0MvsTRK(0),
230 fHOutMultTRKvsCL1(0),
231 fHOutMultV0MvsV0O(0),
232 fHOutMultV0OvsCL1(0),
233 fHOutMultV0OvsTRK(0),
234 fHOutMultCL1vsTKL(0),
235 fHOutCentV0Mqual1(0),
236 fHOutCentTRKqual1(0),
237 fHOutCentCL1qual1(0),
238 fHOutMultV0MvsCL1qual1(0),
239 fHOutMultV0MvsTRKqual1(0),
240 fHOutMultTRKvsCL1qual1(0),
241 fHOutCentV0Mqual2(0),
242 fHOutCentTRKqual2(0),
243 fHOutCentCL1qual2(0),
244 fHOutMultV0MvsCL1qual2(0),
245 fHOutMultV0MvsTRKqual2(0),
246 fHOutMultTRKvsCL1qual2(0),
247 fHOutQuality(0),
248 fHOutVertex(0),
249 fHOutVertexT0(0)
250{
251 // Default constructor
252 AliInfo("Centrality Selection enabled.");
253
254 fUseScaling=kTRUE;
255 fUseCleaning=kTRUE;
256 fFillHistos=kFALSE;
257 fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO."
258 ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks ";
259}
260
261//________________________________________________________________________
262AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name):
263 AliAnalysisTaskSE(name),
264 fAnalysisInput("ESD"),
265 fIsMCInput(kFALSE),
266 fCurrentRun(-1),
267 fUseScaling(0),
268 fUseCleaning(0),
269 fFillHistos(0),
270 fV0MScaleFactor(0),
271 fSPDScaleFactor(0),
272 fTPCScaleFactor(0),
273 fV0MScaleFactorMC(0),
274 fV0MSPDOutlierPar0(0),
275 fV0MSPDOutlierPar1(0),
276 fV0MTPCOutlierPar0(0),
277 fV0MTPCOutlierPar1(0),
278 fV0MSPDSigmaOutlierPar0(0),
279 fV0MSPDSigmaOutlierPar1(0),
280 fV0MSPDSigmaOutlierPar2(0),
281 fV0MTPCSigmaOutlierPar0(0),
282 fV0MTPCSigmaOutlierPar1(0),
283 fV0MTPCSigmaOutlierPar2(0),
284 fV0MZDCOutlierPar0(0),
285 fV0MZDCOutlierPar1(0),
286 fV0MZDCEcalOutlierPar0(0),
287 fV0MZDCEcalOutlierPar1(0),
288 fTrackCuts(0),
289 fZVCut(10),
290 fOutliersCut(5),
291 fQuality(999),
292 fIsSelected(0),
293 fMSL(0),
294 fMSH(0),
295 fMUL(0),
296 fMLL(0),
297 fEJE(0),
298 fEGA(0),
299 fPHS(0),
300 fMB(0),
301 fCVHN(0),
302 fCVLN(0),
303 fCVHNbit(0),
304 fCVLNbit(0),
305 fCCENT(0),
306 fCSEMI(0),
307 fCCENTbit(0),
308 fCSEMIbit(0),
309 fCentV0M(0),
310 fCentV0A(0),
311 fCentV0C(0),
312 fCentFMD(0),
313 fCentTRK(0),
314 fCentTKL(0),
315 fCentCL0(0),
316 fCentCL1(0),
317 fCentCND(0),
8432b617 318 fCentNPA(0),
01974bd1 319 fCentV0MvsFMD(0),
320 fCentTKLvsV0M(0),
321 fCentZEMvsZDC(0),
322 fHtempV0M(0),
323 fHtempV0A(0),
324 fHtempV0C(0),
325 fHtempFMD(0),
326 fHtempTRK(0),
327 fHtempTKL(0),
328 fHtempCL0(0),
329 fHtempCL1(0),
330 fHtempCND(0),
8432b617 331 fHtempNPA(0),
01974bd1 332 fHtempV0MvsFMD(0),
333 fHtempTKLvsV0M(0),
334 fHtempZEMvsZDC(0),
335 fOutputList(0),
336 fHOutCentV0M (0),
337 fHOutCentV0A (0),
338 fHOutCentV0C (0),
339 fHOutCentV0MCVHN(0),
340 fHOutCentV0MCVLN(0),
341 fHOutCentV0MCVHNinMB(0),
342 fHOutCentV0MCVLNinMB(0),
343 fHOutCentV0MCCENT(0),
344 fHOutCentV0MCSEMI(0),
345 fHOutCentV0MCCENTinMB(0),
346 fHOutCentV0MCSEMIinMB(0),
347 fHOutCentV0MMSL(0),
348 fHOutCentV0MMSH(0),
349 fHOutCentV0MMUL(0),
350 fHOutCentV0MMLL(0),
351 fHOutCentV0MEJE(0),
352 fHOutCentV0MEGA(0),
353 fHOutCentV0MPHS(0),
354 fHOutCentV0MMSLinMB(0),
355 fHOutCentV0MMSHinMB(0),
356 fHOutCentV0MMULinMB(0),
357 fHOutCentV0MMLLinMB(0),
358 fHOutCentV0MEJEinMB(0),
359 fHOutCentV0MEGAinMB(0),
360 fHOutCentV0MPHSinMB(0),
361 fHOutCentFMD (0),
362 fHOutCentTRK (0),
363 fHOutCentTKL (0),
364 fHOutCentCL0 (0),
365 fHOutCentCL1 (0),
366 fHOutCentCND (0),
8432b617 367 fHOutCentNPA (0),
01974bd1 368 fHOutCentV0MvsFMD(0),
369 fHOutCentTKLvsV0M(0),
370 fHOutCentZEMvsZDC(0),
371 fHOutCentV0MvsCentCL1(0),
372 fHOutCentV0MvsCentTRK(0),
373 fHOutCentTRKvsCentCL1(0),
374 fHOutCentV0MvsCentZDC(0),
375 fHOutCentV0AvsCentV0C(0),
376 fHOutCentV0AvsCentTRK(0),
377 fHOutCentV0AvsCentCND(0),
378 fHOutCentV0AvsCentCL1(0),
379 fHOutCentV0CvsCentTRK(0),
380 fHOutCentV0CvsCentCND(0),
381 fHOutCentV0CvsCentCL1(0),
8432b617 382 fHOutCentNPAvsCentV0A(0),
383 fHOutCentNPAvsCentV0C(0),
384 fHOutCentNPAvsCentTRK(0),
385 fHOutCentNPAvsCentCND(0),
386 fHOutCentNPAvsCentCL1(0),
01974bd1 387 fHOutMultV0AC(0),
388 fHOutMultV0M(0),
389 fHOutMultV0A(0),
390 fHOutMultV0C(0),
e1d58f75 391 fHOutMultV0Mnc(0),
392 fHOutMultV0Anc(0),
393 fHOutMultV0Cnc(0),
01974bd1 394 fHOutMultV0O(0),
395 fHOutMultV0Cells(0),
396 fHOutMultFMD(0),
397 fHOutMultTRK(0),
398 fHOutMultTKL(0),
399 fHOutMultCL0(0),
400 fHOutMultCL1(0),
401 fHOutMultCND(0),
8432b617 402 fHOutMultNPA(0),
01974bd1 403 fHOutMultV0MvsZDN(0),
404 fHOutMultZEMvsZDN(0),
405 fHOutMultV0MvsZDC(0),
406 fHOutMultZEMvsZDC(0),
407 fHOutMultZEMvsZDCw(0),
408 fHOutMultV0MvsCL1(0),
409 fHOutMultV0MvsTRK(0),
410 fHOutMultTRKvsCL1(0),
411 fHOutMultV0MvsV0O(0),
412 fHOutMultV0OvsCL1(0),
413 fHOutMultV0OvsTRK(0),
414 fHOutMultCL1vsTKL(0),
415 fHOutCentV0Mqual1(0),
416 fHOutCentTRKqual1(0),
417 fHOutCentCL1qual1(0),
418 fHOutMultV0MvsCL1qual1(0),
419 fHOutMultV0MvsTRKqual1(0),
420 fHOutMultTRKvsCL1qual1(0),
421 fHOutCentV0Mqual2(0),
422 fHOutCentTRKqual2(0),
423 fHOutCentCL1qual2(0),
424 fHOutMultV0MvsCL1qual2(0),
425 fHOutMultV0MvsTRKqual2(0),
426 fHOutMultTRKvsCL1qual2(0),
427 fHOutQuality(0),
428 fHOutVertex(0),
429 fHOutVertexT0(0)
430{
431 // Default constructor
432 AliInfo("Centrality Selection enabled.");
433 //DefineOutput(1, TList::Class());
434 fUseScaling=kTRUE;
435 fUseCleaning=kTRUE;
436 fFillHistos=kFALSE;
437 fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO."
438 ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks ";
439}
440
441//________________________________________________________________________
442AliCentralitySelectionTask& AliCentralitySelectionTask::operator=(const AliCentralitySelectionTask& c)
443{
444 // Assignment operator
445 if (this!=&c) {
446 AliAnalysisTaskSE::operator=(c);
447 }
448 return *this;
449}
450
451//________________________________________________________________________
452AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelectionTask& ana):
453 AliAnalysisTaskSE(ana),
454 fAnalysisInput(ana.fAnalysisInput),
455 fIsMCInput(ana.fIsMCInput),
456 fCurrentRun(ana.fCurrentRun),
457 fUseScaling(ana.fUseScaling),
458 fUseCleaning(ana.fUseCleaning),
459 fFillHistos(ana.fFillHistos),
460 fV0MScaleFactor(ana.fV0MScaleFactor),
461 fSPDScaleFactor(ana.fSPDScaleFactor),
462 fTPCScaleFactor(ana.fTPCScaleFactor),
463 fV0MScaleFactorMC(ana.fV0MScaleFactorMC),
464 fV0MSPDOutlierPar0(ana.fV0MSPDOutlierPar0),
465 fV0MSPDOutlierPar1(ana.fV0MSPDOutlierPar1),
466 fV0MTPCOutlierPar0(ana.fV0MTPCOutlierPar0),
467 fV0MTPCOutlierPar1(ana.fV0MTPCOutlierPar1),
468 fV0MSPDSigmaOutlierPar0(ana.fV0MSPDSigmaOutlierPar0),
469 fV0MSPDSigmaOutlierPar1(ana.fV0MSPDSigmaOutlierPar1),
470 fV0MSPDSigmaOutlierPar2(ana.fV0MSPDSigmaOutlierPar2),
471 fV0MTPCSigmaOutlierPar0(ana.fV0MTPCSigmaOutlierPar0),
472 fV0MTPCSigmaOutlierPar1(ana.fV0MTPCSigmaOutlierPar1),
473 fV0MTPCSigmaOutlierPar2(ana.fV0MTPCSigmaOutlierPar2),
474 fV0MZDCOutlierPar0(ana.fV0MZDCOutlierPar0),
475 fV0MZDCOutlierPar1(ana.fV0MZDCOutlierPar1),
476 fV0MZDCEcalOutlierPar0(ana.fV0MZDCEcalOutlierPar0),
477 fV0MZDCEcalOutlierPar1(ana.fV0MZDCEcalOutlierPar1),
478 fTrackCuts(ana.fTrackCuts),
479 fZVCut(ana.fZVCut),
480 fOutliersCut(ana.fOutliersCut),
481 fQuality(ana.fQuality),
482 fIsSelected(ana.fIsSelected),
483 fMSL(ana.fMSL),
484 fMSH(ana.fMSH),
485 fMUL(ana.fMUL),
486 fMLL(ana.fMLL),
487 fEJE(ana.fEJE),
488 fEGA(ana.fEGA),
489 fPHS(ana.fPHS),
490 fMB(ana.fMB),
491 fCVHN(ana.fCVHN),
492 fCVLN(ana.fCVLN),
493 fCVHNbit(ana.fCVHNbit),
494 fCVLNbit(ana.fCVLNbit),
495 fCCENT(ana.fCCENT),
496 fCSEMI(ana.fCSEMI),
497 fCCENTbit(ana.fCCENTbit),
498 fCSEMIbit(ana.fCSEMIbit),
499 fCentV0M(ana.fCentV0M),
500 fCentV0A(ana.fCentV0A),
501 fCentV0C(ana.fCentV0C),
502 fCentFMD(ana.fCentFMD),
503 fCentTRK(ana.fCentTRK),
504 fCentTKL(ana.fCentTKL),
505 fCentCL0(ana.fCentCL0),
506 fCentCL1(ana.fCentCL1),
507 fCentCND(ana.fCentCND),
8432b617 508 fCentNPA(ana.fCentNPA),
01974bd1 509 fCentV0MvsFMD(ana.fCentV0MvsFMD),
510 fCentTKLvsV0M(ana.fCentTKLvsV0M),
511 fCentZEMvsZDC(ana.fCentZEMvsZDC),
512 fHtempV0M(ana.fHtempV0M),
513 fHtempV0A(ana.fHtempV0A),
514 fHtempV0C(ana.fHtempV0C),
515 fHtempFMD(ana.fHtempFMD),
516 fHtempTRK(ana.fHtempTRK),
517 fHtempTKL(ana.fHtempTKL),
518 fHtempCL0(ana.fHtempCL0),
519 fHtempCL1(ana.fHtempCL1),
520 fHtempCND(ana.fHtempCND),
8432b617 521 fHtempNPA(ana.fHtempNPA),
01974bd1 522 fHtempV0MvsFMD(ana.fHtempV0MvsFMD),
523 fHtempTKLvsV0M(ana.fHtempTKLvsV0M),
524 fHtempZEMvsZDC(ana.fHtempZEMvsZDC),
525 fOutputList(ana.fOutputList),
526 fHOutCentV0M (ana.fHOutCentV0M ),
527 fHOutCentV0A (ana.fHOutCentV0A ),
528 fHOutCentV0C (ana.fHOutCentV0C ),
529 fHOutCentV0MCVHN(ana.fHOutCentV0MCVHN),
530 fHOutCentV0MCVLN(ana.fHOutCentV0MCVLN),
531 fHOutCentV0MCVHNinMB(ana.fHOutCentV0MCVHNinMB),
532 fHOutCentV0MCVLNinMB(ana.fHOutCentV0MCVLNinMB),
533 fHOutCentV0MCCENT(ana.fHOutCentV0MCCENT),
534 fHOutCentV0MCSEMI(ana.fHOutCentV0MCSEMI),
535 fHOutCentV0MCCENTinMB(ana.fHOutCentV0MCCENTinMB),
536 fHOutCentV0MCSEMIinMB(ana.fHOutCentV0MCSEMIinMB),
537 fHOutCentV0MMSL(ana.fHOutCentV0MMSL),
538 fHOutCentV0MMSH(ana.fHOutCentV0MMSH),
539 fHOutCentV0MMUL(ana.fHOutCentV0MMUL),
540 fHOutCentV0MMLL(ana.fHOutCentV0MMLL),
541 fHOutCentV0MEJE(ana.fHOutCentV0MEJE),
542 fHOutCentV0MEGA(ana.fHOutCentV0MEGA),
543 fHOutCentV0MPHS(ana.fHOutCentV0MPHS),
544 fHOutCentV0MMSLinMB(ana.fHOutCentV0MMSLinMB),
545 fHOutCentV0MMSHinMB(ana.fHOutCentV0MMSHinMB),
546 fHOutCentV0MMULinMB(ana.fHOutCentV0MMULinMB),
547 fHOutCentV0MMLLinMB(ana.fHOutCentV0MMLLinMB),
548 fHOutCentV0MEJEinMB(ana.fHOutCentV0MEJEinMB),
549 fHOutCentV0MEGAinMB(ana.fHOutCentV0MEGAinMB),
550 fHOutCentV0MPHSinMB(ana.fHOutCentV0MPHSinMB),
551 fHOutCentFMD (ana.fHOutCentFMD ),
552 fHOutCentTRK (ana.fHOutCentTRK ),
553 fHOutCentTKL (ana.fHOutCentTKL ),
554 fHOutCentCL0 (ana.fHOutCentCL0 ),
555 fHOutCentCL1 (ana.fHOutCentCL1 ),
556 fHOutCentCND (ana.fHOutCentCND ),
8432b617 557 fHOutCentNPA (ana.fHOutCentNPA ),
01974bd1 558 fHOutCentV0MvsFMD(ana.fHOutCentV0MvsFMD),
559 fHOutCentTKLvsV0M(ana.fHOutCentTKLvsV0M),
560 fHOutCentZEMvsZDC(ana.fHOutCentZEMvsZDC),
561 fHOutCentV0MvsCentCL1(ana.fHOutCentV0MvsCentCL1),
562 fHOutCentV0MvsCentTRK(ana.fHOutCentV0MvsCentTRK),
563 fHOutCentTRKvsCentCL1(ana.fHOutCentTRKvsCentCL1),
564 fHOutCentV0MvsCentZDC(ana.fHOutCentV0MvsCentZDC),
565 fHOutCentV0AvsCentV0C(ana.fHOutCentV0AvsCentV0C),
566 fHOutCentV0AvsCentTRK(ana.fHOutCentV0AvsCentTRK),
567 fHOutCentV0AvsCentCND(ana.fHOutCentV0AvsCentCND),
568 fHOutCentV0AvsCentCL1(ana.fHOutCentV0AvsCentCL1),
569 fHOutCentV0CvsCentTRK(ana.fHOutCentV0CvsCentTRK),
570 fHOutCentV0CvsCentCND(ana.fHOutCentV0CvsCentCND),
571 fHOutCentV0CvsCentCL1(ana.fHOutCentV0CvsCentCL1),
8432b617 572 fHOutCentNPAvsCentV0A(ana.fHOutCentNPAvsCentV0A),
573 fHOutCentNPAvsCentV0C(ana.fHOutCentNPAvsCentV0C),
574 fHOutCentNPAvsCentTRK(ana.fHOutCentNPAvsCentTRK),
575 fHOutCentNPAvsCentCND(ana.fHOutCentNPAvsCentCND),
576 fHOutCentNPAvsCentCL1(ana.fHOutCentNPAvsCentCL1),
01974bd1 577 fHOutMultV0AC(ana.fHOutMultV0AC),
578 fHOutMultV0M(ana.fHOutMultV0M),
579 fHOutMultV0A(ana.fHOutMultV0A),
580 fHOutMultV0C(ana.fHOutMultV0C),
e1d58f75 581 fHOutMultV0Mnc(ana.fHOutMultV0Mnc),
582 fHOutMultV0Anc(ana.fHOutMultV0Anc),
583 fHOutMultV0Cnc(ana.fHOutMultV0Cnc),
01974bd1 584 fHOutMultV0O(ana.fHOutMultV0O),
585 fHOutMultV0Cells(ana.fHOutMultV0Cells),
586 fHOutMultFMD(ana.fHOutMultFMD),
587 fHOutMultTRK(ana.fHOutMultTRK),
588 fHOutMultTKL(ana.fHOutMultTKL),
589 fHOutMultCL0(ana.fHOutMultCL0),
590 fHOutMultCL1(ana.fHOutMultCL1),
591 fHOutMultCND(ana.fHOutMultCND),
8432b617 592 fHOutMultNPA(ana.fHOutMultNPA),
01974bd1 593 fHOutMultV0MvsZDN(ana.fHOutMultV0MvsZDN),
594 fHOutMultZEMvsZDN(ana.fHOutMultZEMvsZDN),
595 fHOutMultV0MvsZDC(ana.fHOutMultV0MvsZDC),
596 fHOutMultZEMvsZDC(ana.fHOutMultZEMvsZDC),
597 fHOutMultZEMvsZDCw(ana.fHOutMultZEMvsZDCw),
598 fHOutMultV0MvsCL1(ana.fHOutMultV0MvsCL1),
599 fHOutMultV0MvsTRK(ana.fHOutMultV0MvsTRK),
600 fHOutMultTRKvsCL1(ana.fHOutMultTRKvsCL1),
601 fHOutMultV0MvsV0O(ana.fHOutMultV0MvsV0O),
602 fHOutMultV0OvsCL1(ana.fHOutMultV0OvsCL1),
603 fHOutMultV0OvsTRK(ana.fHOutMultV0OvsTRK),
604 fHOutMultCL1vsTKL(ana.fHOutMultCL1vsTKL),
605 fHOutCentV0Mqual1(ana.fHOutCentV0Mqual1),
606 fHOutCentTRKqual1(ana.fHOutCentTRKqual1),
607 fHOutCentCL1qual1(ana.fHOutCentCL1qual1),
608 fHOutMultV0MvsCL1qual1(ana.fHOutMultV0MvsCL1qual1),
609 fHOutMultV0MvsTRKqual1(ana.fHOutMultV0MvsTRKqual1),
610 fHOutMultTRKvsCL1qual1(ana.fHOutMultTRKvsCL1qual1),
611 fHOutCentV0Mqual2(ana.fHOutCentV0Mqual2),
612 fHOutCentTRKqual2(ana.fHOutCentTRKqual2),
613 fHOutCentCL1qual2(ana.fHOutCentCL1qual2),
614 fHOutMultV0MvsCL1qual2(ana.fHOutMultV0MvsCL1qual2),
615 fHOutMultV0MvsTRKqual2(ana.fHOutMultV0MvsTRKqual2),
616 fHOutMultTRKvsCL1qual2(ana.fHOutMultTRKvsCL1qual2),
617 fHOutQuality(ana.fHOutQuality),
618 fHOutVertex(ana.fHOutVertex),
619 fHOutVertexT0(ana.fHOutVertexT0)
620{
621 // Copy Constructor
622
623}
624
625//________________________________________________________________________
626AliCentralitySelectionTask::~AliCentralitySelectionTask()
627{
628 // Destructor
629 if (fOutputList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fOutputList;
630 if (fTrackCuts) delete fTrackCuts;
631}
632
633//________________________________________________________________________
634void AliCentralitySelectionTask::UserCreateOutputObjects()
635{
636 // Create the output containers
637 if(fDebug>1) printf("AnalysisCentralitySelectionTask::UserCreateOutputObjects() \n");
638 AliLog::SetClassDebugLevel("AliCentralitySelectionTask", AliLog::kInfo);
639
640 if (fFillHistos) {
641 fOutputList = new TList();
642 fOutputList->SetOwner();
643 fHOutCentV0M = new TH1F("fHOutCentV0M","fHOutCentV0M; Centrality V0",505,0,101);
644 fHOutCentV0A = new TH1F("fHOutCentV0A","fHOutCentV0A; Centrality V0A",505,0,101);
645 fHOutCentV0C = new TH1F("fHOutCentV0C","fHOutCentV0C; Centrality V0C",505,0,101);
646 fHOutCentV0MCVHN= new TH1F("fHOutCentV0M_CVHN","fHOutCentV0M_CVHN; Centrality V0",505,0,101);
647 fHOutCentV0MCVLN= new TH1F("fHOutCentV0M_CVLN","fHOutCentV0M_CVLN; Centrality V0",505,0,101);
648 fHOutCentV0MCVHNinMB= new TH1F("fHOutCentV0M_CVHNinMB","fHOutCentV0M_CVHN; Centrality V0",505,0,101);
649 fHOutCentV0MCVLNinMB= new TH1F("fHOutCentV0M_CVLNinMB","fHOutCentV0M_CVLN; Centrality V0",505,0,101);
650 fHOutCentV0MCCENT= new TH1F("fHOutCentV0M_CCENT","fHOutCentV0M_CCENT; Centrality V0",505,0,101);
651 fHOutCentV0MCSEMI= new TH1F("fHOutCentV0M_CSEMI","fHOutCentV0M_CSEMI; Centrality V0",505,0,101);
652 fHOutCentV0MCCENTinMB= new TH1F("fHOutCentV0M_CCENTinMB","fHOutCentV0M_CCENT; Centrality V0",505,0,101);
653 fHOutCentV0MCSEMIinMB= new TH1F("fHOutCentV0M_CSEMIinMB","fHOutCentV0M_CSEMI; Centrality V0",505,0,101);
654 fHOutCentV0MMSL= new TH1F("fHOutCentV0M_MSL","fHOutCentV0M_MSL; Centrality V0",505,0,101);
655 fHOutCentV0MMSH= new TH1F("fHOutCentV0M_MSH","fHOutCentV0M_MSH; Centrality V0",505,0,101);
656 fHOutCentV0MMUL= new TH1F("fHOutCentV0M_MUL","fHOutCentV0M_MUL; Centrality V0",505,0,101);
657 fHOutCentV0MMLL= new TH1F("fHOutCentV0M_MLL","fHOutCentV0M_MLL; Centrality V0",505,0,101);
658 fHOutCentV0MEJE= new TH1F("fHOutCentV0M_EJE","fHOutCentV0M_EJE; Centrality V0",505,0,101);
659 fHOutCentV0MEGA= new TH1F("fHOutCentV0M_EGA","fHOutCentV0M_EGA; Centrality V0",505,0,101);
660 fHOutCentV0MPHS= new TH1F("fHOutCentV0M_PHS","fHOutCentV0M_PHS; Centrality V0",505,0,101);
661 fHOutCentV0MMSLinMB= new TH1F("fHOutCentV0M_MSLinMB","fHOutCentV0M_MSLinMB; Centrality V0",505,0,101);
662 fHOutCentV0MMSHinMB= new TH1F("fHOutCentV0M_MSHinMB","fHOutCentV0M_MSHinMB; Centrality V0",505,0,101);
663 fHOutCentV0MMULinMB= new TH1F("fHOutCentV0M_MULinMB","fHOutCentV0M_MULinMB; Centrality V0",505,0,101);
664 fHOutCentV0MMLLinMB= new TH1F("fHOutCentV0M_MLLinMB","fHOutCentV0M_MLLinMB; Centrality V0",505,0,101);
665 fHOutCentV0MEJEinMB= new TH1F("fHOutCentV0M_EJEinMB","fHOutCentV0M_EJEinMB; Centrality V0",505,0,101);
666 fHOutCentV0MEGAinMB= new TH1F("fHOutCentV0M_EGAinMB","fHOutCentV0M_EGAinMB; Centrality V0",505,0,101);
667 fHOutCentV0MPHSinMB= new TH1F("fHOutCentV0M_PHSinMB","fHOutCentV0M_PHSinMB; Centrality V0",505,0,101);
668 fHOutCentFMD = new TH1F("fHOutCentFMD","fHOutCentFMD; Centrality FMD",505,0,101);
669 fHOutCentTRK = new TH1F("fHOutCentTRK","fHOutCentTRK; Centrality TPC",505,0,101);
670 fHOutCentTKL = new TH1F("fHOutCentTKL","fHOutCentTKL; Centrality tracklets",505,0,101);
671 fHOutCentCL0 = new TH1F("fHOutCentCL0","fHOutCentCL0; Centrality SPD inner",505,0,101);
672 fHOutCentCL1 = new TH1F("fHOutCentCL1","fHOutCentCL1; Centrality SPD outer",505,0,101);
673 fHOutCentCND = new TH1F("fHOutCentCND","fHOutCentCND; Centrality candle",505,0,101);
8432b617 674 fHOutCentNPA = new TH1F("fHOutCentNPA","fHOutCentNPA; Centrality candle",505,0,101);
01974bd1 675 fHOutCentV0MvsFMD= new TH1F("fHOutCentV0MvsFMD","fHOutCentV0MvsFMD; Centrality V0 vs FMD",505,0,101);
676 fHOutCentTKLvsV0M= new TH1F("fHOutCentTKLvsV0M","fHOutCentTKLvsV0M; Centrality tracklets vs V0",505,0,101);
677 fHOutCentZEMvsZDC= new TH1F("fHOutCentZEMvsZDC","fHOutCentZEMvsZDC; Centrality ZEM vs ZDC",505,0,101);
678 fHOutCentV0MvsCentCL1= new TH2F("fHOutCentV0MvsCentCL1","fHOutCentV0MvsCentCL1; Cent V0; Cent SPD",505,0,101,505,0,101);
679 fHOutCentV0MvsCentTRK= new TH2F("fHOutCentV0MvsCentTRK","fHOutCentV0MvsCentTRK; Cent V0; Cent TPC",505,0,101,505,0,101);
680 fHOutCentTRKvsCentCL1= new TH2F("fHOutCentTRKvsCentCL1","fHOutCentTRKvsCentCL1; Cent TPC; Cent SPD",505,0,101,505,0,101);
681 fHOutCentV0MvsCentZDC= new TH2F("fHOutCentV0MvsCentZDC","fHOutCentV0MvsCentZDC; Cent V0; Cent ZDC",505,0,101,505,0,101);
682 fHOutCentV0AvsCentV0C= new TH2F("fHOutCentV0AvsCentV0C","fHOutCentV0AvsCentV0C; Cent V0A; Cent V0C;", 505,0,101,505,0,101);
683 fHOutCentV0AvsCentTRK= new TH2F("fHOutCentV0AvsCentTRK","fHOutCentV0AvsCentTRK; Cent V0A; Cent TRK;", 505,0,101,505,0,101);
684 fHOutCentV0AvsCentCND= new TH2F("fHOutCentV0AvsCentCND","fHOutCentV0AvsCentCND; Cent V0A; Cent CND;", 505,0,101,505,0,101);
685 fHOutCentV0AvsCentCL1= new TH2F("fHOutCentV0AvsCentCL1","fHOutCentV0AvsCentCL1; Cent V0A; Cent CL1;", 505,0,101,505,0,101);
686 fHOutCentV0CvsCentTRK= new TH2F("fHOutCentV0CvsCentTRK","fHOutCentV0CvsCentTRK; Cent V0C; Cent TRK;", 505,0,101,505,0,101);
687 fHOutCentV0CvsCentCND= new TH2F("fHOutCentV0CvsCentCND","fHOutCentV0CvsCentCND; Cent V0C; Cent CND;", 505,0,101,505,0,101);
688 fHOutCentV0CvsCentCL1= new TH2F("fHOutCentV0CvsCentCL1","fHOutCentV0CvsCentCL1; Cent V0C; Cent CL1;", 505,0,101,505,0,101);
8432b617 689 fHOutCentNPAvsCentV0A= new TH2F("fHOutCentNPAvsCentV0A","fHOutCentNPAvsCentV0A; Cent NPA; Cent V0A;", 505,0,101,505,0,101);
690 fHOutCentNPAvsCentV0C= new TH2F("fHOutCentNPAvsCentV0C","fHOutCentNPAvsCentV0C; Cent NPA; Cent V0C;", 505,0,101,505,0,101);
691 fHOutCentNPAvsCentTRK= new TH2F("fHOutCentNPAvsCentTRK","fHOutCentNPAvsCentTRK; Cent NPA; Cent TRK;", 505,0,101,505,0,101);
692 fHOutCentNPAvsCentCND= new TH2F("fHOutCentNPAvsCentCND","fHOutCentNPAvsCentCND; Cent NPA; Cent CND;", 505,0,101,505,0,101);
693 fHOutCentNPAvsCentCL1= new TH2F("fHOutCentNPAvsCentCL1","fHOutCentNPAvsCentCL1; Cent NPA; Cent CL1;", 505,0,101,505,0,101);
01974bd1 694
695 fHOutMultV0AC = new TH2F("fHOutMultV0AC","fHOutMultV0AC; Multiplicity V0A; Multiplicity V0C",1000,0,1000,1000,0,1000);
696 fHOutMultV0M = new TH1F("fHOutMultV0M","fHOutMultV0M; Multiplicity V0",25000,0,25000);
697 fHOutMultV0A = new TH1F("fHOutMultV0A","fHOutMultV0A; Multiplicity V0",25000,0,25000);
698 fHOutMultV0C = new TH1F("fHOutMultV0C","fHOutMultV0C; Multiplicity V0",25000,0,25000);
e1d58f75 699 fHOutMultV0Mnc= new TH1F("fHOutMultV0Mnc","fHOutMultV0Mnc; Multiplicity V0",25000,0,25000);
700 fHOutMultV0Anc= new TH1F("fHOutMultV0Anc","fHOutMultV0Anc; Multiplicity V0",25000,0,25000);
701 fHOutMultV0Cnc= new TH1F("fHOutMultV0Cnc","fHOutMultV0Cnc; Multiplicity V0",25000,0,25000);
01974bd1 702 fHOutMultV0O = new TH1F("fHOutMultV0O","fHOutMultV0O; Multiplicity V0",40000,0,40000);
703 fHOutMultV0Cells = new TH2F("fHOutMultV0Cells","fHOutMultV0Cells",33,-0.5,32.5,33,-0.5,32.5);
704 fHOutMultFMD = new TH1F("fHOutMultFMD","fHOutMultFMD; Multiplicity FMD",24000,0,24000);
705 fHOutMultTRK = new TH1F("fHOutMultTRK","fHOutMultTRK; Multiplicity TPC",4000,0,4000);
706 fHOutMultTKL = new TH1F("fHOutMultTKL","fHOutMultTKL; Multiplicity tracklets",5000,0,5000);
707 fHOutMultCL0 = new TH1F("fHOutMultCL0","fHOutMultCL0; Multiplicity SPD inner",7000,0,7000);
708 fHOutMultCL1 = new TH1F("fHOutMultCL1","fHOutMultCL1; Multiplicity SPD outer",7000,0,7000);
709 fHOutMultCND = new TH1F("fHOutMultCND","fHOutMultCND; Multiplicity candle",4000,0,4000);
8432b617 710 fHOutMultNPA = new TH1F("fHOutMultNPA","fHOutMultNPA; Nparticipants",450,0,450);
01974bd1 711
712 fHOutMultV0MvsZDN = new TH2F("fHOutMultV0MvsZDN","fHOutMultV0MvsZDN; Multiplicity V0; Energy ZDC-N",500,0,30000,500,0,180000);
713 fHOutMultZEMvsZDN = new TH2F("fHOutMultZEMvsZDN","fHOutMultZEMvsZDN; Energy ZEM; Energy ZDC-N",500,0,2500,500,0,180000);
714 fHOutMultV0MvsZDC = new TH2F("fHOutMultV0MvsZDC","fHOutMultV0MvsZDC; Multiplicity V0; Energy ZDC",500,0,30000,500,0,200000);
715 fHOutMultZEMvsZDC = new TH2F("fHOutMultZEMvsZDC","fHOutMultZEMvsZDC; Energy ZEM; Energy ZDC",500,0,2500,500,0,200000);
716 fHOutMultZEMvsZDCw = new TH2F("fHOutMultZEMvsZDCw","fHOutMultZEMvsZDCw; Energy ZEM; Energy ZDC (weigthed with V0 percentile)",500,0,2500,500,0,200000);
717 fHOutMultV0MvsCL1 = new TH2F("fHOutMultV0MvsCL1","fHOutMultV0MvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
718 fHOutMultV0MvsTRK = new TH2F("fHOutMultV0MvsTRK","fHOutMultV0MvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
719 fHOutMultTRKvsCL1 = new TH2F("fHOutMultTRKvsCL1","fHOutMultTRKvsCL1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
720 fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,40000);
721 fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",500,0,40000,700,0,7000);
722 fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",500,0,40000,400,0,4000);
723 fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,30000);
724 fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000);
725 fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000);
726 fHOutMultCL1vsTKL = new TH2F ("fHOutMultCL1vsTKL","fHOutMultCL1vsTKL; Multiplicity SPD outer; Multiplicity tracklets",700,0,7000,700,0,7000);
727
728 fHOutCentV0Mqual1 = new TH1F("fHOutCentV0M_qual1","fHOutCentV0M_qual1; Centrality V0",505,0,101);
729 fHOutCentTRKqual1 = new TH1F("fHOutCentTRK_qual1","fHOutCentTRK_qual1; Centrality TPC",505,0,101);
730 fHOutCentCL1qual1 = new TH1F("fHOutCentCL1_qual1","fHOutCentCL1_qual1; Centrality SPD outer",505,0,101);
731 fHOutMultV0MvsCL1qual1 = new TH2F("fHOutMultV0MvsCL1_qual1","fHOutMultV0MvsCL1_qual1; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
732 fHOutMultV0MvsTRKqual1 = new TH2F("fHOutMultV0MvsTRK_qual1","fHOutMultV0MvsTRK_qual1; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
733 fHOutMultTRKvsCL1qual1 = new TH2F("fHOutMultTRKvsCL1_qual1","fHOutMultTRKvsCL1_qual1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
734
735 fHOutCentV0Mqual2 = new TH1F("fHOutCentV0M_qual2","fHOutCentV0M_qual2; Centrality V0",505,0,101);
736 fHOutCentTRKqual2 = new TH1F("fHOutCentTRK_qual2","fHOutCentTRK_qual2; Centrality TPC",505,0,101);
737 fHOutCentCL1qual2 = new TH1F("fHOutCentCL1_qual2","fHOutCentCL1_qual2; Centrality SPD outer",505,0,101);
738 fHOutMultV0MvsCL1qual2 = new TH2F("fHOutMultV0MvsCL1_qual2","fHOutMultV0MvsCL1_qual2; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000);
739 fHOutMultV0MvsTRKqual2 = new TH2F("fHOutMultV0MvsTRK_qual2","fHOutMultV0MvsTRK_qual2; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000);
740 fHOutMultTRKvsCL1qual2 = new TH2F("fHOutMultTRKvsCL1_qual2","fHOutMultTRKvsCL1_qual2; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000);
741
742 fHOutQuality = new TH1F("fHOutQuality", "fHOutQuality", 100,-0.5,99.5);
743 fHOutVertex = new TH1F("fHOutVertex", "fHOutVertex", 100,-20,20);
744 fHOutVertexT0 = new TH1F("fHOutVertexT0", "fHOutVertexT0", 100,-20,20);
745
746 fOutputList->Add( fHOutCentV0M );
747 fOutputList->Add( fHOutCentV0A );
748 fOutputList->Add( fHOutCentV0C );
749 fOutputList->Add( fHOutCentV0MCVHN);
750 fOutputList->Add( fHOutCentV0MCVLN);
751 fOutputList->Add( fHOutCentV0MCVHNinMB);
752 fOutputList->Add( fHOutCentV0MCVLNinMB);
753 fOutputList->Add( fHOutCentV0MCCENT);
754 fOutputList->Add( fHOutCentV0MCSEMI);
755 fOutputList->Add( fHOutCentV0MCCENTinMB);
756 fOutputList->Add( fHOutCentV0MCSEMIinMB);
757 fOutputList->Add( fHOutCentV0MMSL );
758 fOutputList->Add( fHOutCentV0MMSH );
759 fOutputList->Add( fHOutCentV0MMUL );
760 fOutputList->Add( fHOutCentV0MMLL );
761 fOutputList->Add( fHOutCentV0MEJE );
762 fOutputList->Add( fHOutCentV0MEGA );
763 fOutputList->Add( fHOutCentV0MPHS );
764 fOutputList->Add( fHOutCentV0MMSLinMB);
765 fOutputList->Add( fHOutCentV0MMSHinMB);
766 fOutputList->Add( fHOutCentV0MMULinMB);
767 fOutputList->Add( fHOutCentV0MMLLinMB);
768 fOutputList->Add( fHOutCentV0MEJEinMB);
769 fOutputList->Add( fHOutCentV0MEGAinMB);
770 fOutputList->Add( fHOutCentV0MPHSinMB);
771 fOutputList->Add( fHOutCentFMD );
772 fOutputList->Add( fHOutCentTRK );
773 fOutputList->Add( fHOutCentTKL );
774 fOutputList->Add( fHOutCentCL0 );
775 fOutputList->Add( fHOutCentCL1 );
776 fOutputList->Add( fHOutCentCND );
8432b617 777 fOutputList->Add( fHOutCentNPA );
01974bd1 778 fOutputList->Add( fHOutCentV0MvsFMD);
779 fOutputList->Add( fHOutCentTKLvsV0M);
780 fOutputList->Add( fHOutCentZEMvsZDC);
781 fOutputList->Add( fHOutCentV0MvsCentCL1);
782 fOutputList->Add( fHOutCentV0MvsCentTRK);
783 fOutputList->Add( fHOutCentTRKvsCentCL1);
784 fOutputList->Add( fHOutCentV0MvsCentZDC);
785 fOutputList->Add( fHOutCentV0AvsCentV0C);
786 fOutputList->Add( fHOutCentV0AvsCentTRK);
787 fOutputList->Add( fHOutCentV0AvsCentCND);
788 fOutputList->Add( fHOutCentV0AvsCentCL1);
789 fOutputList->Add( fHOutCentV0CvsCentTRK);
790 fOutputList->Add( fHOutCentV0CvsCentCND);
791 fOutputList->Add( fHOutCentV0CvsCentCL1);
8432b617 792 fOutputList->Add( fHOutCentNPAvsCentV0A);
793 fOutputList->Add( fHOutCentNPAvsCentV0C);
794 fOutputList->Add( fHOutCentNPAvsCentTRK);
795 fOutputList->Add( fHOutCentNPAvsCentCND);
796 fOutputList->Add( fHOutCentNPAvsCentCL1);
797
01974bd1 798 fOutputList->Add( fHOutMultV0AC);
799 fOutputList->Add( fHOutMultV0M);
800 fOutputList->Add( fHOutMultV0A);
801 fOutputList->Add( fHOutMultV0C);
e1d58f75 802 fOutputList->Add( fHOutMultV0Mnc);
803 fOutputList->Add( fHOutMultV0Anc);
804 fOutputList->Add( fHOutMultV0Cnc);
01974bd1 805 fOutputList->Add( fHOutMultV0O);
806 fOutputList->Add( fHOutMultV0Cells) ;
807 fOutputList->Add( fHOutMultFMD);
808 fOutputList->Add( fHOutMultTRK);
809 fOutputList->Add( fHOutMultTKL);
810 fOutputList->Add( fHOutMultCL0);
811 fOutputList->Add( fHOutMultCL1);
812 fOutputList->Add( fHOutMultCND);
8432b617 813 fOutputList->Add( fHOutMultNPA);
01974bd1 814 fOutputList->Add( fHOutMultV0MvsZDN);
815 fOutputList->Add( fHOutMultZEMvsZDN);
816 fOutputList->Add( fHOutMultV0MvsZDC);
817 fOutputList->Add( fHOutMultZEMvsZDC);
818 fOutputList->Add( fHOutMultZEMvsZDCw);
819 fOutputList->Add( fHOutMultV0MvsCL1);
820 fOutputList->Add( fHOutMultV0MvsTRK);
821 fOutputList->Add( fHOutMultTRKvsCL1);
822 fOutputList->Add( fHOutMultV0MvsV0O);
823 fOutputList->Add( fHOutMultV0OvsCL1);
824 fOutputList->Add( fHOutMultV0OvsTRK);
825 fOutputList->Add( fHOutMultCL1vsTKL);
826 fOutputList->Add( fHOutCentV0Mqual1 );
827 fOutputList->Add( fHOutCentTRKqual1 );
828 fOutputList->Add( fHOutCentCL1qual1 );
829 fOutputList->Add( fHOutMultV0MvsCL1qual1);
830 fOutputList->Add( fHOutMultV0MvsTRKqual1);
831 fOutputList->Add( fHOutMultTRKvsCL1qual1);
832 fOutputList->Add( fHOutCentV0Mqual2 );
833 fOutputList->Add( fHOutCentTRKqual2 );
834 fOutputList->Add( fHOutCentCL1qual2 );
835 fOutputList->Add( fHOutMultV0MvsCL1qual2);
836 fOutputList->Add( fHOutMultV0MvsTRKqual2);
837 fOutputList->Add( fHOutMultTRKvsCL1qual2);
838 fOutputList->Add( fHOutQuality );
839 fOutputList->Add( fHOutVertex );
840 fOutputList->Add( fHOutVertexT0 );
841
842 PostData(1, fOutputList);
843 }
844
845 fTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
846}
847
848//________________________________________________________________________
849void AliCentralitySelectionTask::UserExec(Option_t */*option*/)
850{
851 // Execute analysis for current event:
852 if(fDebug>1) printf(" **** AliCentralitySelectionTask::UserExec() \n");
853
854 Float_t zncEnergy = 0.; // ZNC Energy
855 Float_t zpcEnergy = 0.; // ZPC Energy
856 Float_t znaEnergy = 0.; // ZNA Energy
857 Float_t zpaEnergy = 0.; // ZPA Energy
858 Float_t zem1Energy = 0.; // ZEM1 Energy
859 Float_t zem2Energy = 0.; // ZEM2 Energy
860 Bool_t zdcEnergyCal = kFALSE; // if zdc is calibrated (in pass2)
861
862 Int_t nTracks = 0; // no. tracks
863 Int_t nTracklets = 0; // no. tracklets
864 Int_t nClusters[6] = {0}; // no. clusters on 6 ITS layers
865 Int_t nChips[2]; // no. chips on 2 SPD layers
866 Float_t spdCorr =0; // corrected spd2 multiplicity
867 Int_t multCND = 0; // no. tracks (candle condition)
868
869 Float_t multV0A = 0; // multiplicity from V0 reco side A
870 Float_t multV0C = 0; // multiplicity from V0 reco side C
e1d58f75 871 Float_t multV0ACorr = 0; // multiplicity from V0 reco side A
872 Float_t multV0CCorr = 0; // multiplicity from V0 reco side C
01974bd1 873 Short_t multV0AOnline = 0; // multiplicity from V0 reco side A
874 Short_t multV0COnline = 0; // multiplicity from V0 reco side C
8432b617 875 Float_t v0Corr = 0; // corrected V0 multiplicity (used for MC)
01974bd1 876 Int_t nV0A = 0;
877 Int_t nV0C = 0;
878
879 Float_t multFMDA = 0; // multiplicity from FMD on detector A
880 Float_t multFMDC = 0; // multiplicity from FMD on detector C
881
882 Float_t zvtx =0; // z-vertex SPD
883 Int_t zvtxNcont =0; // contributors to z-vertex SPD
884
885 Float_t zvtxT0 =0; // z-vertex T0
886
8432b617 887 Int_t Npart =0; // N. of participants (true MC)
01974bd1 888
889 AliCentrality *esdCent = 0;
890
891 if(fAnalysisInput.CompareTo("ESD")==0){
892
893 AliVEvent* event = InputEvent();
894 AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event);
895 if (!esd) {
896 AliError("No ESD Event");
897 return;
898 }
899
900 LoadBranches();
901
902 if (SetupRun(esd)<0) {
903 AliError("Centrality File not available for this run");
904 return;
905 }
906
907 esdCent = esd->GetCentrality();
908
e1d58f75 909 // ***** Vertex Info
910 const AliESDVertex* vtxESD = esd->GetPrimaryVertexSPD();
911 zvtx = vtxESD->GetZ();
912 zvtxNcont = vtxESD->GetNContributors();
913
01974bd1 914 // ***** V0 info
915 AliESDVZERO* esdV0 = esd->GetVZEROData();
916 if (!esdV0)
917 {
918 AliError("AliESDVZERO not available");
919 return;
920 }
921 multV0A=esdV0->GetMTotV0A();
922 multV0C=esdV0->GetMTotV0C();
e1d58f75 923
924 multV0ACorr = AliESDUtils::GetCorrV0A(multV0A,zvtx);
925 multV0CCorr = AliESDUtils::GetCorrV0C(multV0C,zvtx);
926
01974bd1 927 v0Corr = multV0A+multV0C;
928
929 multV0AOnline=esdV0->GetTriggerChargeA();
930 multV0COnline=esdV0->GetTriggerChargeC();
931
932 // Count V0 flags
933 for(Int_t i = 0; i < 32; ++i) {
934 if (esdV0->GetBBFlag(i)) nV0C++;
935 if (esdV0->GetBBFlag(i+32)) nV0A++;
936 }
937
938 // ***** T0 info
939 const AliESDTZERO* esdT0 = esd->GetESDTZERO();
940 if (!esdT0)
941 {
942 AliError("AliESDTZERO not available");
943 return;
944 }
945 Int_t trig=esdT0->GetT0Trig();
946 Bool_t kT0BB = kFALSE;
947 if(trig&1) kT0BB=kTRUE;
948 zvtxT0=esdT0->GetT0zVertex();
949
950
951 // ***** Trigger info
952 fIsSelected = ((esdV0->GetV0ADecision()==1) && (esdV0->GetV0CDecision()==1));
953 TString trigStr(esd->GetFiredTriggerClasses());
954
955 fMB=kFALSE;
956 fCVHN=kFALSE; fCVLN=kFALSE; fCCENT=kFALSE; fCSEMI=kFALSE;
957 fMSL=kFALSE; fMSH=kFALSE; fMUL=kFALSE; fMLL=kFALSE;
958 fEJE=kFALSE; fEGA=kFALSE; fPHS=kFALSE;
959
960 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI")) && (fIsSelected))
961 fMB=kTRUE;
962 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVHN")) && (fIsSelected))
963 fCVHN=kTRUE;
964 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVLN")) && (fIsSelected))
965 fCVLN=kTRUE;
966 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CCENT")) && (fIsSelected))
967 fCCENT=kTRUE;
968 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CSEMI")) && (fIsSelected))
969 fCSEMI=kTRUE;
970
971 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSL")) && (fIsSelected))
972 fMSL=kTRUE;
973 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSH")) && (fIsSelected))
974 fMSH=kTRUE;
975 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MUL")) && (fIsSelected))
976 fMUL=kTRUE;
977 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MLL")) && (fIsSelected))
978 fMLL=kTRUE;
979 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EJE")) && (fIsSelected))
980 fEJE=kTRUE;
981 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EGA")) && (fIsSelected))
982 fEGA=kTRUE;
983 if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1PHS")) && (fIsSelected))
984 fPHS=kTRUE;
985
986 fCVHNbit=kFALSE; fCVLNbit=kFALSE; fCCENTbit=kFALSE; fCSEMIbit=kFALSE;
987 if (esdV0->GetTriggerBits() & (1<<8))
988 fCVHNbit=kTRUE;
989 if (esdV0->GetTriggerBits() & (1<<6))
990 fCVLNbit=kTRUE;
991
992 if (kT0BB && fCVHNbit)
993 fCCENTbit=kTRUE;
994 if (kT0BB && fCVLNbit)
995 fCSEMIbit=kTRUE;
996
997
01974bd1 998 // ***** CB info (tracklets, clusters, chips)
999 //nTracks = event->GetNumberOfTracks();
1000 nTracks = fTrackCuts ? (Short_t)fTrackCuts->GetReferenceMultiplicity(esd,kTRUE):-1;
1001 Short_t nTrTPCcandle = 0;
1002 for (Int_t iTracks = 0; iTracks < esd->GetNumberOfTracks(); iTracks++) {
1003 AliESDtrack* track = esd->GetTrack(iTracks);
1004 if (!track) continue;
1005 if (track->Pt() > 0.5 && TMath::Abs(track->Eta()) < 0.8) nTrTPCcandle++;
1006 }
1007 multCND = nTrTPCcandle;
1008
1009 const AliMultiplicity *mult = esd->GetMultiplicity();
1010 nTracklets = mult->GetNumberOfTracklets();
1011
1012 for(Int_t ilay=0; ilay<6; ilay++){
1013 nClusters[ilay] = mult->GetNumberOfITSClusters(ilay);
1014 }
1015
1016 for(Int_t ilay=0; ilay<2; ilay++){
1017 nChips[ilay] = mult->GetNumberOfFiredChips(ilay);
1018 }
1019
1020 spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],zvtx);
1021
1022 // ***** FMD info
1023 AliESDFMD *fmd = esd->GetFMDData();
1024 Float_t totalMultA = 0;
1025 Float_t totalMultC = 0;
1026 const Float_t fFMDLowCut = 0.4;
1027
1028 for(UShort_t det=1;det<=3;det++) {
1029 Int_t nRings = (det==1 ? 1 : 2);
1030 for (UShort_t ir = 0; ir < nRings; ir++) {
1031 Char_t ring = (ir == 0 ? 'I' : 'O');
1032 UShort_t nsec = (ir == 0 ? 20 : 40);
1033 UShort_t nstr = (ir == 0 ? 512 : 256);
1034 for(UShort_t sec =0; sec < nsec; sec++) {
1035 for(UShort_t strip = 0; strip < nstr; strip++) {
1036
1037 Float_t fmdMult = fmd->Multiplicity(det,ring,sec,strip);
1038 if(fmdMult == 0 || fmdMult == AliESDFMD::kInvalidMult) continue;
1039
1040 Float_t nParticles=0;
1041
1042 if(fmdMult > fFMDLowCut) {
1043 nParticles = 1.;
1044 }
1045
1046 if (det<3) totalMultA = totalMultA + nParticles;
1047 else totalMultC = totalMultC + nParticles;
1048
1049 }
1050 }
1051 }
1052 }
1053 multFMDA = totalMultA;
1054 multFMDC = totalMultC;
1055
1056 // ***** ZDC info
1057 AliESDZDC *esdZDC = esd->GetESDZDC();
1058 zdcEnergyCal = esdZDC->AliESDZDC::TestBit(AliESDZDC::kEnergyCalibratedSignal);
1059 if (zdcEnergyCal) {
1060 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy());
1061 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy());
1062 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy());
1063 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy());
1064 } else {
1065 zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy())/8.;
1066 zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy())/8.;
1067 znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy())/8.;
1068 zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy())/8.;
1069 }
1070 zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0))/8.;
1071 zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.;
1072
1073 }
8432b617 1074
1075 // ***** MC info
1076 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
1077 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
1078 AliStack* stack=0;
1079 AliMCEvent* mcEvent=0;
1080 if (fIsMCInput && eventHandler && (mcEvent=eventHandler->MCEvent()) && (stack=mcEvent->Stack())) {
1081
1082 AliGenHijingEventHeader* hHijing=0;
1083 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
1084 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) {
1085 hHijing = (AliGenHijingEventHeader*)mcGenH;
1086 }
1087 else if (mcGenH->InheritsFrom(AliGenCocktailEventHeader::Class())) {
1088 TList* headers = ((AliGenCocktailEventHeader*)mcGenH)->GetHeaders();
1089 hHijing = dynamic_cast<AliGenHijingEventHeader*>(headers->FindObject("Hijing"));
1090 }
1091 if (hHijing) {
1092 Npart = hHijing->ProjectileParticipants()+hHijing->TargetParticipants();
1093 }
1094 else {
1095 // now you really have a problem.
1096 }
1097 }
1098
01974bd1 1099
1100 else if(fAnalysisInput.CompareTo("AOD")==0){
1101 //AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent());
1102 // to be implemented
1103 printf(" AOD analysis not yet implemented!!!\n\n");
1104 return;
1105 }
1106
1107 // ***** Scaling for MC
1108 if (fIsMCInput) {
1109 fUseScaling=kFALSE;
1110 v0Corr = Short_t((multV0A+multV0C) * fV0MScaleFactorMC);
bfd47aba 1111 multV0A = multV0A * fV0MScaleFactorMC;
1112 multV0C = multV0C * fV0MScaleFactorMC;
01974bd1 1113 }
1114 // ***** Scaling for Data
1115 if (fUseScaling) {
1116 v0Corr = Short_t(v0Corr / fV0MScaleFactor);
1117 spdCorr = spdCorr / fSPDScaleFactor;
1118 nTracks = Int_t(nTracks / fTPCScaleFactor);
1119 }
1120
1121 // ***** Centrality Selection
1122 if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr)));
e1d58f75 1123 if(fHtempV0A) fCentV0A = fHtempV0A->GetBinContent(fHtempV0A->FindBin((multV0ACorr)));
1124 if(fHtempV0C) fCentV0C = fHtempV0C->GetBinContent(fHtempV0C->FindBin((multV0CCorr)));
01974bd1 1125 if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC)));
1126 if(fHtempTRK) fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks));
1127 if(fHtempTKL) fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets));
1128 if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0]));
1129 if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr));
1130 if(fHtempCND) fCentCND = fHtempCND->GetBinContent(fHtempCND->FindBin(multCND));
8432b617 1131 if(fHtempNPA) fCentNPA = fHtempNPA->GetBinContent(fHtempNPA->FindBin(Npart));
01974bd1 1132
1133 if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C)));
1134 if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets));
1135 if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1136
1137
1138 // ***** Cleaning
1139 if (fUseCleaning) {
1140 fQuality=0;
1141
1142 // ***** vertex
1143 if (TMath::Abs(zvtx)>fZVCut || zvtxNcont<1) fQuality += 1;
1144
1145 // ***** outliers, skip in case of MC input
1146 if (!fIsMCInput) {
1147 // **** V0 vs SPD
1148 if (IsOutlierV0MSPD(spdCorr, v0Corr, int(fCentV0M))) fQuality += 2;
1149 // ***** V0 vs TPC
1150 if (IsOutlierV0MTPC(nTracks, v0Corr, int(fCentV0M))) fQuality += 4;
1151 // ***** V0 vs ZDC
1152 if (IsOutlierV0MZDC((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1153 (zdcEnergyCal==kFALSE) ) fQuality += 8;
1154 if (IsOutlierV0MZDCECal((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) &&
1155 (zdcEnergyCal==kTRUE) ) fQuality += 8;
1156 }
1157 } else {
1158 fQuality = 0;
1159 }
1160
1161
1162 if (esdCent) {
1163 esdCent->SetQuality(fQuality);
1164 esdCent->SetCentralityV0M(fCentV0M);
1165 esdCent->SetCentralityV0A(fCentV0A);
1166 esdCent->SetCentralityV0C(fCentV0C);
1167 esdCent->SetCentralityFMD(fCentFMD);
1168 esdCent->SetCentralityTRK(fCentTRK);
1169 esdCent->SetCentralityTKL(fCentTKL);
1170 esdCent->SetCentralityCL0(fCentCL0);
1171 esdCent->SetCentralityCL1(fCentCL1);
1172 esdCent->SetCentralityCND(fCentCND);
8432b617 1173 esdCent->SetCentralityNPA(fCentNPA);
01974bd1 1174 esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD);
1175 esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M);
1176 esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC);
1177 }
1178
1179 // filling QA histograms
1180 if (fFillHistos) {
1181 if ((fMB) && (abs(zvtx)<10)) fHOutMultCL1vsTKL->Fill(spdCorr,nTracklets);
1182
1183 if (fCVHN) fHOutCentV0MCVHN->Fill(fCentV0M);
1184 if (fCVLN) fHOutCentV0MCVLN->Fill(fCentV0M);
1185 if (fCCENT) fHOutCentV0MCCENT->Fill(fCentV0M);
1186 if (fCSEMI) fHOutCentV0MCSEMI->Fill(fCentV0M);
1187 if (fMSL) fHOutCentV0MMSL->Fill(fCentV0M);
1188 if (fMSH) fHOutCentV0MMSH->Fill(fCentV0M);
1189 if (fMUL) fHOutCentV0MMUL->Fill(fCentV0M);
1190 if (fMLL) fHOutCentV0MMLL->Fill(fCentV0M);
1191 if (fEJE) fHOutCentV0MEJE->Fill(fCentV0M);
1192 if (fEGA) fHOutCentV0MEGA->Fill(fCentV0M);
1193 if (fPHS) fHOutCentV0MPHS->Fill(fCentV0M);
1194
1195 if (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) { // fill the QA histograms only for MB events!
1196 fHOutQuality->Fill(fQuality);
1197 fHOutVertex->Fill(zvtx);
1198 fHOutVertexT0->Fill(zvtxT0);
1199
1200 if (fQuality==0) {
1201 fHOutCentV0M->Fill(fCentV0M);
1202 fHOutCentV0A->Fill(fCentV0A);
1203 fHOutCentV0C->Fill(fCentV0C);
1204
1205 if (fCVHNbit) fHOutCentV0MCVHNinMB->Fill(fCentV0M);
1206 if (fCVLNbit) fHOutCentV0MCVLNinMB->Fill(fCentV0M);
1207 if (fCCENTbit) fHOutCentV0MCCENTinMB->Fill(fCentV0M);
1208 if (fCSEMIbit) fHOutCentV0MCSEMIinMB->Fill(fCentV0M);
1209 if (fMSL) fHOutCentV0MMSLinMB->Fill(fCentV0M);
1210 if (fMSH) fHOutCentV0MMSHinMB->Fill(fCentV0M);
1211 if (fMUL) fHOutCentV0MMULinMB->Fill(fCentV0M);
1212 if (fMLL) fHOutCentV0MMLLinMB->Fill(fCentV0M);
1213 if (fEJE) fHOutCentV0MEJEinMB->Fill(fCentV0M);
1214 if (fEGA) fHOutCentV0MEGAinMB->Fill(fCentV0M);
1215 if (fPHS) fHOutCentV0MPHSinMB->Fill(fCentV0M);
1216
1217 fHOutCentFMD->Fill(fCentFMD);
1218 fHOutCentTRK->Fill(fCentTRK);
1219 fHOutCentTKL->Fill(fCentTKL);
1220 fHOutCentCL0->Fill(fCentCL0);
1221 fHOutCentCL1->Fill(fCentCL1);
1222 fHOutCentCND->Fill(fCentCND);
8432b617 1223 fHOutCentNPA->Fill(fCentNPA);
01974bd1 1224 fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD);
1225 fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M);
1226 fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC);
1227 fHOutCentV0MvsCentCL1->Fill(fCentV0M,fCentCL1);
1228 fHOutCentV0MvsCentTRK->Fill(fCentV0M,fCentTRK);
1229 fHOutCentTRKvsCentCL1->Fill(fCentTRK,fCentCL1);
1230 fHOutCentV0MvsCentZDC->Fill(fCentV0M,fCentZEMvsZDC);
1231 fHOutCentV0AvsCentV0C->Fill(fCentV0A,fCentV0C);
1232 fHOutCentV0AvsCentTRK->Fill(fCentV0A,fCentTRK);
1233 fHOutCentV0AvsCentCND->Fill(fCentV0A,fCentCND);
1234 fHOutCentV0AvsCentCL1->Fill(fCentV0A,fCentCL1);
1235 fHOutCentV0CvsCentTRK->Fill(fCentV0C,fCentTRK);
1236 fHOutCentV0CvsCentCND->Fill(fCentV0C,fCentCND);
1237 fHOutCentV0CvsCentCL1->Fill(fCentV0C,fCentCL1);
8432b617 1238 fHOutCentNPAvsCentV0A->Fill(fCentNPA,fCentV0A);
1239 fHOutCentNPAvsCentV0C->Fill(fCentNPA,fCentV0C);
1240 fHOutCentNPAvsCentTRK->Fill(fCentNPA,fCentTRK);
1241 fHOutCentNPAvsCentCND->Fill(fCentNPA,fCentCND);
1242 fHOutCentNPAvsCentCL1->Fill(fCentNPA,fCentCL1);
01974bd1 1243
1244 fHOutMultV0AC->Fill(multV0A,multV0C);
e1d58f75 1245 fHOutMultV0M->Fill(multV0ACorr+multV0CCorr);
1246 fHOutMultV0A->Fill(multV0ACorr);
1247 fHOutMultV0C->Fill(multV0CCorr);
1248 fHOutMultV0Mnc->Fill(multV0A+multV0C);
1249 fHOutMultV0Anc->Fill(multV0A);
1250 fHOutMultV0Cnc->Fill(multV0C);
01974bd1 1251 fHOutMultV0O->Fill(multV0AOnline+multV0COnline);
1252 fHOutMultV0Cells->Fill(nV0A,nV0C);
1253 fHOutMultFMD->Fill(multFMDA+multFMDC);
1254 fHOutMultTRK->Fill(nTracks);
1255 fHOutMultTKL->Fill(nTracklets);
1256 fHOutMultCL0->Fill(nClusters[0]);
1257 fHOutMultCL1->Fill(spdCorr);
1258 fHOutMultCND->Fill(multCND);
8432b617 1259 fHOutMultNPA->Fill(Npart);
01974bd1 1260
1261 fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy));
1262 fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy));
1263 fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1264 fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy));
1265 fHOutMultZEMvsZDCw->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy),fCentV0M);
1266 fHOutMultV0MvsCL1->Fill(v0Corr,spdCorr);
1267 fHOutMultV0MvsTRK->Fill(v0Corr,nTracks);
1268 fHOutMultTRKvsCL1->Fill(nTracks,spdCorr);
1269 fHOutMultV0MvsV0O->Fill(v0Corr,(multV0AOnline+multV0COnline));
1270 fHOutMultV0OvsCL1->Fill((multV0AOnline+multV0COnline),spdCorr);
1271 fHOutMultV0OvsTRK->Fill((multV0AOnline+multV0COnline),nTracks);
1272 } else if (fQuality%2 == 0) {
1273 fHOutCentV0Mqual1->Fill(fCentV0M);
1274 fHOutCentTRKqual1->Fill(fCentTRK);
1275 fHOutCentCL1qual1->Fill(fCentCL1);
1276 fHOutMultV0MvsCL1qual1->Fill(v0Corr,spdCorr);
1277 fHOutMultV0MvsTRKqual1->Fill(v0Corr,nTracks);
1278 fHOutMultTRKvsCL1qual1->Fill(nTracks,spdCorr);
1279 } else {
1280 fHOutCentV0Mqual2->Fill(fCentV0M);
1281 fHOutCentTRKqual2->Fill(fCentTRK);
1282 fHOutCentCL1qual2->Fill(fCentCL1);
1283 fHOutMultV0MvsCL1qual2->Fill(v0Corr,spdCorr);
1284 fHOutMultV0MvsTRKqual2->Fill(v0Corr,nTracks);
1285 fHOutMultTRKvsCL1qual2->Fill(nTracks,spdCorr);
1286 }
1287 }
1288 PostData(1, fOutputList);
1289 }
1290}
1291//________________________________________________________________________
1292void AliCentralitySelectionTask::Terminate(Option_t */*option*/)
1293{
1294 // Terminate analysis
1295}
1296//________________________________________________________________________
1297Int_t AliCentralitySelectionTask::SetupRun(const AliESDEvent* const esd)
1298{
1299 // Setup files for run
1300
1301 if (!esd)
1302 return -1;
1303
1304 // check if something to be done
1305 if (fCurrentRun == esd->GetRunNumber())
1306 return 0;
1307 else
1308 fCurrentRun = esd->GetRunNumber();
1309
1310 TString fileName =(Form("%s/COMMON/CENTRALITY/data/centrality.root", AliAnalysisManager::GetOADBPath()));
1311 AliInfo(Form("Setup Centrality Selection for run %d with file %s\n",fCurrentRun,fileName.Data()));
1312
1313 AliOADBContainer *con = new AliOADBContainer("OADB");
1314 con->InitFromFile(fileName,"Centrality");
1315
1316 AliOADBCentrality* centOADB = 0;
1317 centOADB = (AliOADBCentrality*)(con->GetObject(fCurrentRun));
1318 if (!centOADB) {
1319 AliWarning(Form("Centrality OADB does not exist for run %d, using Default \n",fCurrentRun ));
1320 centOADB = (AliOADBCentrality*)(con->GetDefaultObject("oadbDefault"));
1321 }
1322
1323 // modes
1324 fUseScaling = centOADB->UseScaling();
1325 fUseCleaning = centOADB->UseCleaning();
1326
1327 // cuts
1328 fZVCut = centOADB->ZVCut();
1329 fOutliersCut = centOADB->OutliersCut();
1330
1331 // centrality histos
1332 fHtempV0M = centOADB->V0hist();
1333 fHtempV0A = centOADB->V0Ahist();
1334 fHtempV0C = centOADB->V0Chist();
1335 fHtempTRK = centOADB->TPChist();
1336 fHtempCL1 = centOADB->SPDhist();
1337 fHtempCND = centOADB->CNDhist();
8432b617 1338 fHtempNPA = centOADB->NPAhist();
01974bd1 1339 fHtempZEMvsZDC = centOADB->ZEMvsZDChist();
1340
1341 TString path = gSystem->ExpandPathName(fileName.Data());
1342 if (!fHtempV0M) AliWarning(Form("Calibration for V0M does not exist in %s", path.Data()));
1343 if (!fHtempV0A) AliWarning(Form("Calibration for V0A does not exist in %s", path.Data()));
1344 if (!fHtempV0C) AliWarning(Form("Calibration for V0C does not exist in %s", path.Data()));
1345 if (!fHtempTRK) AliWarning(Form("Calibration for TRK does not exist in %s", path.Data()));
1346 if (!fHtempCL1) AliWarning(Form("Calibration for CL1 does not exist in %s", path.Data()));
1347 if (!fHtempCND) AliWarning(Form("Calibration for CND does not exist in %s", path.Data()));
8432b617 1348 if (!fHtempNPA) AliWarning(Form("Calibration for NPA does not exist in %s", path.Data()));
01974bd1 1349 if (!fHtempZEMvsZDC) AliWarning(Form("Calibration for ZEMvsZDC does not exist in %s", path.Data()));
1350
1351 // scale factors
1352 fV0MScaleFactor = centOADB->V0MScaleFactor();
1353 fSPDScaleFactor = centOADB->SPDScaleFactor();
1354 fTPCScaleFactor = centOADB->TPCScaleFactor();
1355 fV0MScaleFactorMC = centOADB->V0MScaleFactorMC();
1356
1357 // outliers parameters
1358 fV0MSPDOutlierPar0 = centOADB->V0MSPDOutlierPar0();
1359 fV0MSPDOutlierPar1 = centOADB->V0MSPDOutlierPar1();
1360 fV0MTPCOutlierPar0 = centOADB->V0MTPCOutlierPar0();
1361 fV0MTPCOutlierPar1 = centOADB->V0MTPCOutlierPar1();
1362
1363 fV0MSPDSigmaOutlierPar0 = centOADB->V0MSPDSigmaOutlierPar0();
1364 fV0MSPDSigmaOutlierPar1 = centOADB->V0MSPDSigmaOutlierPar1();
1365 fV0MSPDSigmaOutlierPar2 = centOADB->V0MSPDSigmaOutlierPar2();
1366 fV0MTPCSigmaOutlierPar0 = centOADB->V0MTPCSigmaOutlierPar0();
1367 fV0MTPCSigmaOutlierPar1 = centOADB->V0MTPCSigmaOutlierPar1();
1368 fV0MTPCSigmaOutlierPar2 = centOADB->V0MTPCSigmaOutlierPar2();
1369
1370 fV0MZDCOutlierPar0 = centOADB->V0MZDCOutlierPar0();
1371 fV0MZDCOutlierPar1 = centOADB->V0MZDCOutlierPar1();
1372 fV0MZDCEcalOutlierPar0 = centOADB->V0MZDCEcalOutlierPar0();
1373 fV0MZDCEcalOutlierPar1 = centOADB->V0MZDCEcalOutlierPar1();
1374
1375
1376
1377 return 0;
1378}
1379
1380
1381
1382//________________________________________________________________________
1383Bool_t AliCentralitySelectionTask::IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const
1384{
1385 // Clean outliers
1386 Float_t val = fV0MSPDOutlierPar0 + fV0MSPDOutlierPar1 * v0;
1387 Float_t spdSigma = fV0MSPDSigmaOutlierPar0 + fV0MSPDSigmaOutlierPar1*cent + fV0MSPDSigmaOutlierPar2*cent*cent;
1388 if ( TMath::Abs(spd-val) > fOutliersCut*spdSigma )
1389 return kTRUE;
1390 else
1391 return kFALSE;
1392}
1393
1394//________________________________________________________________________
1395Bool_t AliCentralitySelectionTask::IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const
1396{
1397 // Clean outliers
1398 Float_t val = fV0MTPCOutlierPar0 + fV0MTPCOutlierPar1 * v0;
1399 Float_t tpcSigma = fV0MTPCSigmaOutlierPar0 + fV0MTPCSigmaOutlierPar1*cent + fV0MTPCSigmaOutlierPar2*cent*cent;
1400 if ( TMath::Abs(tracks-val) > fOutliersCut*tpcSigma )
1401 return kTRUE;
1402 else
1403 return kFALSE;
1404}
1405
1406//________________________________________________________________________
1407Bool_t AliCentralitySelectionTask::IsOutlierV0MZDC(Float_t zdc, Float_t v0) const
1408{
1409 // Clean outliers
1410 Float_t val = fV0MZDCOutlierPar0 + fV0MZDCOutlierPar1 * v0;
1411 if (zdc > val)
1412 return kTRUE;
1413 else
1414 return kFALSE;
1415}
1416
1417//________________________________________________________________________
1418Bool_t AliCentralitySelectionTask::IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const
1419{
1420 // Clean outliers
1421 Float_t val = fV0MZDCEcalOutlierPar0 + fV0MZDCEcalOutlierPar1 * v0;
1422 if (zdc > val)
1423 return kTRUE;
1424 else
1425 return kFALSE;
1426}
1427
1428