]>
Commit | Line | Data |
---|---|---|
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 | ||
78 | ClassImp(AliCentralitySelectionTask) | |
79 | ||
80 | ||
81 | //________________________________________________________________________ | |
82 | AliCentralitySelectionTask::AliCentralitySelectionTask(): | |
83 | AliAnalysisTaskSE(), | |
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 | //________________________________________________________________________ | |
274 | AliCentralitySelectionTask::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 | //________________________________________________________________________ | |
466 | AliCentralitySelectionTask& AliCentralitySelectionTask::operator=(const AliCentralitySelectionTask& c) | |
467 | { | |
468 | // Assignment operator | |
469 | if (this!=&c) { | |
470 | AliAnalysisTaskSE::operator=(c); | |
471 | } | |
472 | return *this; | |
473 | } | |
474 | ||
475 | //________________________________________________________________________ | |
476 | AliCentralitySelectionTask::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 | //________________________________________________________________________ | |
662 | AliCentralitySelectionTask::~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 | //________________________________________________________________________ | |
673 | void 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 | //________________________________________________________________________ | |
910 | void 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 | //________________________________________________________________________ | |
1391 | void AliCentralitySelectionTask::Terminate(Option_t */*option*/) | |
1392 | { | |
1393 | // Terminate analysis | |
1394 | } | |
1395 | //________________________________________________________________________ | |
1396 | Int_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 | //________________________________________________________________________ | |
1484 | Bool_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 | //________________________________________________________________________ | |
1496 | Bool_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 | //________________________________________________________________________ | |
1508 | Bool_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 | //________________________________________________________________________ | |
1519 | Bool_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 |