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