]>
Commit | Line | Data |
---|---|---|
a540a9d3 | 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" | |
136f0a9b | 40 | #include "AliHeader.h" |
a540a9d3 | 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" | |
9448ffd1 | 48 | #include "AliESDTZERO.h" |
a540a9d3 | 49 | #include "AliESDVZERO.h" |
a540a9d3 | 50 | #include "AliESDtrackCuts.h" |
136f0a9b | 51 | #include "AliESDVertex.h" |
52 | #include "AliCentrality.h" | |
a43ed687 | 53 | #include "AliOADBCentrality.h" |
54 | #include "AliOADBContainer.h" | |
a540a9d3 | 55 | #include "AliMultiplicity.h" |
56 | #include "AliAODHandler.h" | |
136f0a9b | 57 | #include "AliAODHeader.h" |
a540a9d3 | 58 | #include "AliAODEvent.h" |
a540a9d3 | 59 | #include "AliAODVertex.h" |
136f0a9b | 60 | #include "AliAODVZERO.h" |
61 | #include "AliAODTracklets.h" | |
a540a9d3 | 62 | #include "AliAODMCHeader.h" |
a540a9d3 | 63 | #include "AliMCEventHandler.h" |
136f0a9b | 64 | #include "AliMCEvent.h" |
65 | #include "AliAODMCParticle.h" | |
a540a9d3 | 66 | #include "AliMCParticle.h" |
67 | #include "AliStack.h" | |
a540a9d3 | 68 | #include "AliAnalysisTaskSE.h" |
69 | #include "AliGenEventHeader.h" | |
70 | #include "AliGenHijingEventHeader.h" | |
71 | #include "AliPhysicsSelectionTask.h" | |
72 | #include "AliPhysicsSelection.h" | |
73 | #include "AliBackgroundSelection.h" | |
74 | #include "AliESDUtils.h" | |
75 | ||
76 | ClassImp(AliCentralitySelectionTask) | |
77 | ||
78 | ||
79 | //________________________________________________________________________ | |
80 | AliCentralitySelectionTask::AliCentralitySelectionTask(): | |
81 | AliAnalysisTaskSE(), | |
a540a9d3 | 82 | fAnalysisInput("ESD"), |
83 | fIsMCInput(kFALSE), | |
a121a512 | 84 | fPass(0), |
a540a9d3 | 85 | fCurrentRun(-1), |
a540a9d3 | 86 | fUseScaling(0), |
d015c169 | 87 | fUseCleaning(0), |
3e654564 | 88 | fFillHistos(0), |
a43ed687 | 89 | fV0MScaleFactor(0), |
90 | fSPDScaleFactor(0), | |
91 | fTPCScaleFactor(0), | |
92 | fV0MScaleFactorMC(0), | |
93 | fV0MSPDOutlierPar0(0), | |
94 | fV0MSPDOutlierPar1(0), | |
95 | fV0MTPCOutlierPar0(0), | |
96 | fV0MTPCOutlierPar1(0), | |
97 | fV0MSPDSigmaOutlierPar0(0), | |
98 | fV0MSPDSigmaOutlierPar1(0), | |
99 | fV0MSPDSigmaOutlierPar2(0), | |
100 | fV0MTPCSigmaOutlierPar0(0), | |
101 | fV0MTPCSigmaOutlierPar1(0), | |
102 | fV0MTPCSigmaOutlierPar2(0), | |
103 | fV0MZDCOutlierPar0(0), | |
104 | fV0MZDCOutlierPar1(0), | |
105 | fV0MZDCEcalOutlierPar0(0), | |
106 | fV0MZDCEcalOutlierPar1(0), | |
a540a9d3 | 107 | fTrackCuts(0), |
108 | fZVCut(10), | |
109 | fOutliersCut(5), | |
407bd85b | 110 | fQuality(999), |
3e654564 | 111 | fIsSelected(0), |
112 | fMSL(0), | |
113 | fMSH(0), | |
114 | fMUL(0), | |
115 | fMLL(0), | |
116 | fEJE(0), | |
117 | fEGA(0), | |
118 | fPHS(0), | |
4fced115 | 119 | fCVHN(0), |
120 | fCVLN(0), | |
0caaf699 | 121 | fCVHNbit(0), |
122 | fCVLNbit(0), | |
9448ffd1 | 123 | fCCENT(0), |
124 | fCSEMI(0), | |
125 | fCCENTbit(0), | |
126 | fCSEMIbit(0), | |
a540a9d3 | 127 | fCentV0M(0), |
128 | fCentFMD(0), | |
129 | fCentTRK(0), | |
130 | fCentTKL(0), | |
131 | fCentCL0(0), | |
132 | fCentCL1(0), | |
133 | fCentV0MvsFMD(0), | |
134 | fCentTKLvsV0M(0), | |
135 | fCentZEMvsZDC(0), | |
136 | fHtempV0M(0), | |
137 | fHtempFMD(0), | |
138 | fHtempTRK(0), | |
139 | fHtempTKL(0), | |
140 | fHtempCL0(0), | |
141 | fHtempCL1(0), | |
142 | fHtempV0MvsFMD(0), | |
143 | fHtempTKLvsV0M(0), | |
144 | fHtempZEMvsZDC(0), | |
145 | fOutputList(0), | |
146 | fHOutCentV0M (0), | |
4fced115 | 147 | fHOutCentV0M_CVHN(0), |
148 | fHOutCentV0M_CVLN(0), | |
84bbff84 | 149 | fHOutCentV0M_CVHNinMB(0), |
150 | fHOutCentV0M_CVLNinMB(0), | |
9448ffd1 | 151 | fHOutCentV0M_CCENT(0), |
152 | fHOutCentV0M_CSEMI(0), | |
153 | fHOutCentV0M_CCENTinMB(0), | |
154 | fHOutCentV0M_CSEMIinMB(0), | |
3e654564 | 155 | fHOutCentV0M_MSL(0), |
156 | fHOutCentV0M_MSH(0), | |
157 | fHOutCentV0M_MUL(0), | |
158 | fHOutCentV0M_MLL(0), | |
159 | fHOutCentV0M_EJE(0), | |
160 | fHOutCentV0M_EGA(0), | |
161 | fHOutCentV0M_PHS(0), | |
162 | fHOutCentV0M_MSLinMB(0), | |
163 | fHOutCentV0M_MSHinMB(0), | |
164 | fHOutCentV0M_MULinMB(0), | |
165 | fHOutCentV0M_MLLinMB(0), | |
166 | fHOutCentV0M_EJEinMB(0), | |
167 | fHOutCentV0M_EGAinMB(0), | |
168 | fHOutCentV0M_PHSinMB(0), | |
a540a9d3 | 169 | fHOutCentFMD (0), |
170 | fHOutCentTRK (0), | |
171 | fHOutCentTKL (0), | |
172 | fHOutCentCL0 (0), | |
173 | fHOutCentCL1 (0), | |
174 | fHOutCentV0MvsFMD(0), | |
175 | fHOutCentTKLvsV0M(0), | |
176 | fHOutCentZEMvsZDC(0), | |
9138a60c | 177 | fHOutCentV0MvsCentCL1(0), |
178 | fHOutCentV0MvsCentTRK(0), | |
179 | fHOutCentTRKvsCentCL1(0), | |
980d6ad3 | 180 | fHOutCentV0MvsCentZDC(0), |
a540a9d3 | 181 | fHOutMultV0M(0), |
a43ed687 | 182 | fHOutMultV0O(0), |
a540a9d3 | 183 | fHOutMultFMD(0), |
184 | fHOutMultTRK(0), | |
185 | fHOutMultTKL(0), | |
186 | fHOutMultCL0(0), | |
187 | fHOutMultCL1(0), | |
31200bdf | 188 | fHOutMultV0MvsZDN(0), |
189 | fHOutMultZEMvsZDN(0), | |
a540a9d3 | 190 | fHOutMultV0MvsZDC(0), |
191 | fHOutMultZEMvsZDC(0), | |
39bbe018 | 192 | fHOutMultZEMvsZDCw(0), |
a540a9d3 | 193 | fHOutMultV0MvsCL1(0), |
194 | fHOutMultV0MvsTRK(0), | |
195 | fHOutMultTRKvsCL1(0), | |
a43ed687 | 196 | fHOutMultV0MvsV0O(0), |
197 | fHOutMultV0OvsCL1(0), | |
198 | fHOutMultV0OvsTRK(0), | |
04341115 | 199 | fHOutCentV0Mqual1(0), |
200 | fHOutCentTRKqual1(0), | |
201 | fHOutCentCL1qual1(0), | |
79d4544b | 202 | fHOutMultV0MvsCL1qual1(0), |
203 | fHOutMultV0MvsTRKqual1(0), | |
204 | fHOutMultTRKvsCL1qual1(0), | |
04341115 | 205 | fHOutCentV0Mqual2(0), |
206 | fHOutCentTRKqual2(0), | |
207 | fHOutCentCL1qual2(0), | |
79d4544b | 208 | fHOutMultV0MvsCL1qual2(0), |
209 | fHOutMultV0MvsTRKqual2(0), | |
210 | fHOutMultTRKvsCL1qual2(0), | |
a540a9d3 | 211 | fHOutQuality(0), |
9448ffd1 | 212 | fHOutVertex(0), |
213 | fHOutVertexT0(0) | |
a540a9d3 | 214 | { |
215 | // Default constructor | |
216 | AliInfo("Centrality Selection enabled."); | |
a43ed687 | 217 | |
a540a9d3 | 218 | fUseScaling=kTRUE; |
d015c169 | 219 | fUseCleaning=kTRUE; |
3e654564 | 220 | fFillHistos=kFALSE; |
9448ffd1 | 221 | fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO." |
a43ed687 | 222 | ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks "; |
a540a9d3 | 223 | } |
224 | ||
225 | //________________________________________________________________________ | |
226 | AliCentralitySelectionTask::AliCentralitySelectionTask(const char *name): | |
227 | AliAnalysisTaskSE(name), | |
a540a9d3 | 228 | fAnalysisInput("ESD"), |
229 | fIsMCInput(kFALSE), | |
a121a512 | 230 | fPass(0), |
a540a9d3 | 231 | fCurrentRun(-1), |
a540a9d3 | 232 | fUseScaling(0), |
d015c169 | 233 | fUseCleaning(0), |
3e654564 | 234 | fFillHistos(0), |
a43ed687 | 235 | fV0MScaleFactor(0), |
236 | fSPDScaleFactor(0), | |
237 | fTPCScaleFactor(0), | |
238 | fV0MScaleFactorMC(0), | |
239 | fV0MSPDOutlierPar0(0), | |
240 | fV0MSPDOutlierPar1(0), | |
241 | fV0MTPCOutlierPar0(0), | |
242 | fV0MTPCOutlierPar1(0), | |
243 | fV0MSPDSigmaOutlierPar0(0), | |
244 | fV0MSPDSigmaOutlierPar1(0), | |
245 | fV0MSPDSigmaOutlierPar2(0), | |
246 | fV0MTPCSigmaOutlierPar0(0), | |
247 | fV0MTPCSigmaOutlierPar1(0), | |
4fced115 | 248 | fV0MTPCSigmaOutlierPar2(0), |
a43ed687 | 249 | fV0MZDCOutlierPar0(0), |
250 | fV0MZDCOutlierPar1(0), | |
251 | fV0MZDCEcalOutlierPar0(0), | |
252 | fV0MZDCEcalOutlierPar1(0), | |
a540a9d3 | 253 | fTrackCuts(0), |
254 | fZVCut(10), | |
255 | fOutliersCut(5), | |
407bd85b | 256 | fQuality(999), |
3e654564 | 257 | fIsSelected(0), |
258 | fMSL(0), | |
259 | fMSH(0), | |
260 | fMUL(0), | |
261 | fMLL(0), | |
262 | fEJE(0), | |
263 | fEGA(0), | |
264 | fPHS(0), | |
4fced115 | 265 | fCVHN(0), |
266 | fCVLN(0), | |
0caaf699 | 267 | fCVHNbit(0), |
268 | fCVLNbit(0), | |
9448ffd1 | 269 | fCCENT(0), |
270 | fCSEMI(0), | |
271 | fCCENTbit(0), | |
272 | fCSEMIbit(0), | |
a540a9d3 | 273 | fCentV0M(0), |
274 | fCentFMD(0), | |
275 | fCentTRK(0), | |
276 | fCentTKL(0), | |
277 | fCentCL0(0), | |
278 | fCentCL1(0), | |
279 | fCentV0MvsFMD(0), | |
280 | fCentTKLvsV0M(0), | |
281 | fCentZEMvsZDC(0), | |
282 | fHtempV0M(0), | |
283 | fHtempFMD(0), | |
284 | fHtempTRK(0), | |
285 | fHtempTKL(0), | |
286 | fHtempCL0(0), | |
287 | fHtempCL1(0), | |
288 | fHtempV0MvsFMD(0), | |
289 | fHtempTKLvsV0M(0), | |
290 | fHtempZEMvsZDC(0), | |
291 | fOutputList(0), | |
292 | fHOutCentV0M (0), | |
4fced115 | 293 | fHOutCentV0M_CVHN(0), |
294 | fHOutCentV0M_CVLN(0), | |
84bbff84 | 295 | fHOutCentV0M_CVHNinMB(0), |
296 | fHOutCentV0M_CVLNinMB(0), | |
9448ffd1 | 297 | fHOutCentV0M_CCENT(0), |
298 | fHOutCentV0M_CSEMI(0), | |
299 | fHOutCentV0M_CCENTinMB(0), | |
300 | fHOutCentV0M_CSEMIinMB(0), | |
3e654564 | 301 | fHOutCentV0M_MSL(0), |
302 | fHOutCentV0M_MSH(0), | |
303 | fHOutCentV0M_MUL(0), | |
304 | fHOutCentV0M_MLL(0), | |
305 | fHOutCentV0M_EJE(0), | |
306 | fHOutCentV0M_EGA(0), | |
307 | fHOutCentV0M_PHS(0), | |
308 | fHOutCentV0M_MSLinMB(0), | |
309 | fHOutCentV0M_MSHinMB(0), | |
310 | fHOutCentV0M_MULinMB(0), | |
311 | fHOutCentV0M_MLLinMB(0), | |
312 | fHOutCentV0M_EJEinMB(0), | |
313 | fHOutCentV0M_EGAinMB(0), | |
314 | fHOutCentV0M_PHSinMB(0), | |
a540a9d3 | 315 | fHOutCentFMD (0), |
316 | fHOutCentTRK (0), | |
317 | fHOutCentTKL (0), | |
318 | fHOutCentCL0 (0), | |
319 | fHOutCentCL1 (0), | |
320 | fHOutCentV0MvsFMD(0), | |
321 | fHOutCentTKLvsV0M(0), | |
322 | fHOutCentZEMvsZDC(0), | |
9138a60c | 323 | fHOutCentV0MvsCentCL1(0), |
324 | fHOutCentV0MvsCentTRK(0), | |
325 | fHOutCentTRKvsCentCL1(0), | |
980d6ad3 | 326 | fHOutCentV0MvsCentZDC(0), |
a540a9d3 | 327 | fHOutMultV0M(0), |
a43ed687 | 328 | fHOutMultV0O(0), |
a540a9d3 | 329 | fHOutMultFMD(0), |
330 | fHOutMultTRK(0), | |
331 | fHOutMultTKL(0), | |
332 | fHOutMultCL0(0), | |
333 | fHOutMultCL1(0), | |
31200bdf | 334 | fHOutMultV0MvsZDN(0), |
335 | fHOutMultZEMvsZDN(0), | |
a540a9d3 | 336 | fHOutMultV0MvsZDC(0), |
337 | fHOutMultZEMvsZDC(0), | |
39bbe018 | 338 | fHOutMultZEMvsZDCw(0), |
a540a9d3 | 339 | fHOutMultV0MvsCL1(0), |
340 | fHOutMultV0MvsTRK(0), | |
341 | fHOutMultTRKvsCL1(0), | |
a43ed687 | 342 | fHOutMultV0MvsV0O(0), |
343 | fHOutMultV0OvsCL1(0), | |
344 | fHOutMultV0OvsTRK(0), | |
04341115 | 345 | fHOutCentV0Mqual1(0), |
346 | fHOutCentTRKqual1(0), | |
347 | fHOutCentCL1qual1(0), | |
79d4544b | 348 | fHOutMultV0MvsCL1qual1(0), |
349 | fHOutMultV0MvsTRKqual1(0), | |
350 | fHOutMultTRKvsCL1qual1(0), | |
04341115 | 351 | fHOutCentV0Mqual2(0), |
352 | fHOutCentTRKqual2(0), | |
353 | fHOutCentCL1qual2(0), | |
79d4544b | 354 | fHOutMultV0MvsCL1qual2(0), |
355 | fHOutMultV0MvsTRKqual2(0), | |
356 | fHOutMultTRKvsCL1qual2(0), | |
a540a9d3 | 357 | fHOutQuality(0), |
9448ffd1 | 358 | fHOutVertex(0), |
359 | fHOutVertexT0(0) | |
a540a9d3 | 360 | { |
a43ed687 | 361 | // Default constructor |
a540a9d3 | 362 | AliInfo("Centrality Selection enabled."); |
363 | DefineOutput(1, TList::Class()); | |
a540a9d3 | 364 | fUseScaling=kTRUE; |
d015c169 | 365 | fUseCleaning=kTRUE; |
3e654564 | 366 | fFillHistos=kFALSE; |
9448ffd1 | 367 | fBranchNames="ESD:AliESDRun.,AliESDHeader.,AliESDZDC.,AliESDFMD.,AliESDVZERO.,AliESDTZERO." |
a43ed687 | 368 | ",SPDVertex.,TPCVertex.,PrimaryVertex.,AliMultiplicity.,Tracks "; |
a540a9d3 | 369 | } |
370 | ||
371 | //________________________________________________________________________ | |
372 | AliCentralitySelectionTask& AliCentralitySelectionTask::operator=(const AliCentralitySelectionTask& c) | |
373 | { | |
374 | // Assignment operator | |
375 | if (this!=&c) { | |
376 | AliAnalysisTaskSE::operator=(c); | |
377 | } | |
378 | return *this; | |
379 | } | |
380 | ||
381 | //________________________________________________________________________ | |
382 | AliCentralitySelectionTask::AliCentralitySelectionTask(const AliCentralitySelectionTask& ana): | |
383 | AliAnalysisTaskSE(ana), | |
a540a9d3 | 384 | fAnalysisInput(ana.fDebug), |
385 | fIsMCInput(ana.fIsMCInput), | |
a121a512 | 386 | fPass(ana.fPass), |
a540a9d3 | 387 | fCurrentRun(ana.fCurrentRun), |
a540a9d3 | 388 | fUseScaling(ana.fUseScaling), |
d015c169 | 389 | fUseCleaning(ana.fUseCleaning), |
3e654564 | 390 | fFillHistos(ana.fFillHistos), |
a43ed687 | 391 | fV0MScaleFactor(ana.fV0MScaleFactor), |
392 | fSPDScaleFactor(ana.fSPDScaleFactor), | |
393 | fTPCScaleFactor(ana.fTPCScaleFactor), | |
394 | fV0MScaleFactorMC(ana.fV0MScaleFactorMC), | |
395 | fV0MSPDOutlierPar0(ana.fV0MSPDOutlierPar0), | |
396 | fV0MSPDOutlierPar1(ana.fV0MSPDOutlierPar1), | |
397 | fV0MTPCOutlierPar0(ana.fV0MTPCOutlierPar0), | |
398 | fV0MTPCOutlierPar1(ana.fV0MTPCOutlierPar1), | |
399 | fV0MSPDSigmaOutlierPar0(ana.fV0MSPDSigmaOutlierPar0), | |
400 | fV0MSPDSigmaOutlierPar1(ana.fV0MSPDSigmaOutlierPar1), | |
401 | fV0MSPDSigmaOutlierPar2(ana.fV0MSPDSigmaOutlierPar2), | |
402 | fV0MTPCSigmaOutlierPar0(ana.fV0MTPCSigmaOutlierPar0), | |
403 | fV0MTPCSigmaOutlierPar1(ana.fV0MTPCSigmaOutlierPar1), | |
4fced115 | 404 | fV0MTPCSigmaOutlierPar2(ana.fV0MTPCSigmaOutlierPar2), |
a43ed687 | 405 | fV0MZDCOutlierPar0(ana.fV0MZDCOutlierPar0), |
406 | fV0MZDCOutlierPar1(ana.fV0MZDCOutlierPar1), | |
407 | fV0MZDCEcalOutlierPar0(ana.fV0MZDCEcalOutlierPar0), | |
408 | fV0MZDCEcalOutlierPar1(ana.fV0MZDCEcalOutlierPar1), | |
a540a9d3 | 409 | fTrackCuts(ana.fTrackCuts), |
410 | fZVCut(ana.fZVCut), | |
411 | fOutliersCut(ana.fOutliersCut), | |
412 | fQuality(ana.fQuality), | |
3e654564 | 413 | fIsSelected(ana.fIsSelected), |
414 | fMSL(ana.fMSL), | |
415 | fMSH(ana.fMSH), | |
416 | fMUL(ana.fMUL), | |
417 | fMLL(ana.fMLL), | |
418 | fEJE(ana.fEJE), | |
419 | fEGA(ana.fEGA), | |
420 | fPHS(ana.fPHS), | |
4fced115 | 421 | fCVHN(ana.fCVHN), |
422 | fCVLN(ana.fCVLN), | |
0caaf699 | 423 | fCVHNbit(ana.fCVHNbit), |
424 | fCVLNbit(ana.fCVLNbit), | |
9448ffd1 | 425 | fCCENT(ana.fCCENT), |
426 | fCSEMI(ana.fCSEMI), | |
427 | fCCENTbit(ana.fCCENTbit), | |
428 | fCSEMIbit(ana.fCSEMIbit), | |
a540a9d3 | 429 | fCentV0M(ana.fCentV0M), |
430 | fCentFMD(ana.fCentFMD), | |
431 | fCentTRK(ana.fCentTRK), | |
432 | fCentTKL(ana.fCentTKL), | |
433 | fCentCL0(ana.fCentCL0), | |
434 | fCentCL1(ana.fCentCL1), | |
435 | fCentV0MvsFMD(ana.fCentV0MvsFMD), | |
436 | fCentTKLvsV0M(ana.fCentTKLvsV0M), | |
437 | fCentZEMvsZDC(ana.fCentZEMvsZDC), | |
438 | fHtempV0M(ana.fHtempV0M), | |
439 | fHtempFMD(ana.fHtempFMD), | |
440 | fHtempTRK(ana.fHtempTRK), | |
441 | fHtempTKL(ana.fHtempTKL), | |
442 | fHtempCL0(ana.fHtempCL0), | |
443 | fHtempCL1(ana.fHtempCL1), | |
444 | fHtempV0MvsFMD(ana.fHtempV0MvsFMD), | |
445 | fHtempTKLvsV0M(ana.fHtempTKLvsV0M), | |
446 | fHtempZEMvsZDC(ana.fHtempZEMvsZDC), | |
447 | fOutputList(ana.fOutputList), | |
448 | fHOutCentV0M (ana.fHOutCentV0M ), | |
4fced115 | 449 | fHOutCentV0M_CVHN(ana.fHOutCentV0M_CVHN), |
450 | fHOutCentV0M_CVLN(ana.fHOutCentV0M_CVLN), | |
84bbff84 | 451 | fHOutCentV0M_CVHNinMB(ana.fHOutCentV0M_CVHNinMB), |
452 | fHOutCentV0M_CVLNinMB(ana.fHOutCentV0M_CVLNinMB), | |
9448ffd1 | 453 | fHOutCentV0M_CCENT(ana.fHOutCentV0M_CCENT), |
454 | fHOutCentV0M_CSEMI(ana.fHOutCentV0M_CSEMI), | |
455 | fHOutCentV0M_CCENTinMB(ana.fHOutCentV0M_CCENTinMB), | |
456 | fHOutCentV0M_CSEMIinMB(ana.fHOutCentV0M_CSEMIinMB), | |
3e654564 | 457 | fHOutCentV0M_MSL(ana.fHOutCentV0M_MSL), |
458 | fHOutCentV0M_MSH(ana.fHOutCentV0M_MSH), | |
459 | fHOutCentV0M_MUL(ana.fHOutCentV0M_MUL), | |
460 | fHOutCentV0M_MLL(ana.fHOutCentV0M_MLL), | |
461 | fHOutCentV0M_EJE(ana.fHOutCentV0M_EJE), | |
462 | fHOutCentV0M_EGA(ana.fHOutCentV0M_EGA), | |
463 | fHOutCentV0M_PHS(ana.fHOutCentV0M_PHS), | |
464 | fHOutCentV0M_MSLinMB(ana.fHOutCentV0M_MSLinMB), | |
465 | fHOutCentV0M_MSHinMB(ana.fHOutCentV0M_MSHinMB), | |
466 | fHOutCentV0M_MULinMB(ana.fHOutCentV0M_MULinMB), | |
467 | fHOutCentV0M_MLLinMB(ana.fHOutCentV0M_MLLinMB), | |
468 | fHOutCentV0M_EJEinMB(ana.fHOutCentV0M_EJEinMB), | |
469 | fHOutCentV0M_EGAinMB(ana.fHOutCentV0M_EGAinMB), | |
470 | fHOutCentV0M_PHSinMB(ana.fHOutCentV0M_PHSinMB), | |
a540a9d3 | 471 | fHOutCentFMD (ana.fHOutCentFMD ), |
472 | fHOutCentTRK (ana.fHOutCentTRK ), | |
473 | fHOutCentTKL (ana.fHOutCentTKL ), | |
474 | fHOutCentCL0 (ana.fHOutCentCL0 ), | |
475 | fHOutCentCL1 (ana.fHOutCentCL1 ), | |
476 | fHOutCentV0MvsFMD(ana.fHOutCentV0MvsFMD), | |
477 | fHOutCentTKLvsV0M(ana.fHOutCentTKLvsV0M), | |
478 | fHOutCentZEMvsZDC(ana.fHOutCentZEMvsZDC), | |
9138a60c | 479 | fHOutCentV0MvsCentCL1(ana.fHOutCentV0MvsCentCL1), |
480 | fHOutCentV0MvsCentTRK(ana.fHOutCentV0MvsCentTRK), | |
481 | fHOutCentTRKvsCentCL1(ana.fHOutCentTRKvsCentCL1), | |
980d6ad3 | 482 | fHOutCentV0MvsCentZDC(ana.fHOutCentV0MvsCentZDC), |
a540a9d3 | 483 | fHOutMultV0M(ana.fHOutMultV0M), |
a43ed687 | 484 | fHOutMultV0O(ana.fHOutMultV0O), |
a540a9d3 | 485 | fHOutMultFMD(ana.fHOutMultFMD), |
486 | fHOutMultTRK(ana.fHOutMultTRK), | |
487 | fHOutMultTKL(ana.fHOutMultTKL), | |
488 | fHOutMultCL0(ana.fHOutMultCL0), | |
489 | fHOutMultCL1(ana.fHOutMultCL1), | |
31200bdf | 490 | fHOutMultV0MvsZDN(ana.fHOutMultV0MvsZDN), |
491 | fHOutMultZEMvsZDN(ana.fHOutMultZEMvsZDN), | |
a540a9d3 | 492 | fHOutMultV0MvsZDC(ana.fHOutMultV0MvsZDC), |
493 | fHOutMultZEMvsZDC(ana.fHOutMultZEMvsZDC), | |
39bbe018 | 494 | fHOutMultZEMvsZDCw(ana.fHOutMultZEMvsZDCw), |
a540a9d3 | 495 | fHOutMultV0MvsCL1(ana.fHOutMultV0MvsCL1), |
496 | fHOutMultV0MvsTRK(ana.fHOutMultV0MvsTRK), | |
497 | fHOutMultTRKvsCL1(ana.fHOutMultTRKvsCL1), | |
a43ed687 | 498 | fHOutMultV0MvsV0O(ana.fHOutMultV0MvsV0O), |
499 | fHOutMultV0OvsCL1(ana.fHOutMultV0OvsCL1), | |
500 | fHOutMultV0OvsTRK(ana.fHOutMultV0OvsTRK), | |
04341115 | 501 | fHOutCentV0Mqual1(ana.fHOutCentV0Mqual1), |
502 | fHOutCentTRKqual1(ana.fHOutCentTRKqual1), | |
503 | fHOutCentCL1qual1(ana.fHOutCentCL1qual1), | |
79d4544b | 504 | fHOutMultV0MvsCL1qual1(ana.fHOutMultV0MvsCL1qual1), |
505 | fHOutMultV0MvsTRKqual1(ana.fHOutMultV0MvsTRKqual1), | |
506 | fHOutMultTRKvsCL1qual1(ana.fHOutMultTRKvsCL1qual1), | |
04341115 | 507 | fHOutCentV0Mqual2(ana.fHOutCentV0Mqual2), |
508 | fHOutCentTRKqual2(ana.fHOutCentTRKqual2), | |
509 | fHOutCentCL1qual2(ana.fHOutCentCL1qual2), | |
79d4544b | 510 | fHOutMultV0MvsCL1qual2(ana.fHOutMultV0MvsCL1qual2), |
511 | fHOutMultV0MvsTRKqual2(ana.fHOutMultV0MvsTRKqual2), | |
512 | fHOutMultTRKvsCL1qual2(ana.fHOutMultTRKvsCL1qual2), | |
a540a9d3 | 513 | fHOutQuality(ana.fHOutQuality), |
9448ffd1 | 514 | fHOutVertex(ana.fHOutVertex), |
515 | fHOutVertexT0(ana.fHOutVertexT0) | |
a540a9d3 | 516 | { |
517 | // Copy Constructor | |
7ee7a2df | 518 | |
a540a9d3 | 519 | } |
a43ed687 | 520 | |
a540a9d3 | 521 | //________________________________________________________________________ |
522 | AliCentralitySelectionTask::~AliCentralitySelectionTask() | |
523 | { | |
524 | // Destructor | |
525 | if (fOutputList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fOutputList; | |
526 | if (fTrackCuts) delete fTrackCuts; | |
527 | } | |
528 | ||
529 | //________________________________________________________________________ | |
530 | void AliCentralitySelectionTask::UserCreateOutputObjects() | |
531 | { | |
532 | // Create the output containers | |
533 | if(fDebug>1) printf("AnalysisCentralitySelectionTask::UserCreateOutputObjects() \n"); | |
534 | AliLog::SetClassDebugLevel("AliCentralitySelectionTask", AliLog::kInfo); | |
535 | ||
3e654564 | 536 | if (fFillHistos) { |
537 | fOutputList = new TList(); | |
538 | fOutputList->SetOwner(); | |
539 | fHOutCentV0M = new TH1F("fHOutCentV0M","fHOutCentV0M; Centrality V0",505,0,101); | |
540 | fHOutCentV0M_CVHN= new TH1F("fHOutCentV0M_CVHN","fHOutCentV0M_CVHN; Centrality V0",505,0,101); | |
541 | fHOutCentV0M_CVLN= new TH1F("fHOutCentV0M_CVLN","fHOutCentV0M_CVLN; Centrality V0",505,0,101); | |
542 | fHOutCentV0M_CVHNinMB= new TH1F("fHOutCentV0M_CVHNinMB","fHOutCentV0M_CVHN; Centrality V0",505,0,101); | |
543 | fHOutCentV0M_CVLNinMB= new TH1F("fHOutCentV0M_CVLNinMB","fHOutCentV0M_CVLN; Centrality V0",505,0,101); | |
544 | fHOutCentV0M_CCENT= new TH1F("fHOutCentV0M_CCENT","fHOutCentV0M_CCENT; Centrality V0",505,0,101); | |
545 | fHOutCentV0M_CSEMI= new TH1F("fHOutCentV0M_CSEMI","fHOutCentV0M_CSEMI; Centrality V0",505,0,101); | |
546 | fHOutCentV0M_CCENTinMB= new TH1F("fHOutCentV0M_CCENTinMB","fHOutCentV0M_CCENT; Centrality V0",505,0,101); | |
547 | fHOutCentV0M_CSEMIinMB= new TH1F("fHOutCentV0M_CSEMIinMB","fHOutCentV0M_CSEMI; Centrality V0",505,0,101); | |
548 | fHOutCentV0M_MSL= new TH1F("fHOutCentV0M_MSL","fHOutCentV0M_MSL; Centrality V0",505,0,101); | |
549 | fHOutCentV0M_MSH= new TH1F("fHOutCentV0M_MSH","fHOutCentV0M_MSH; Centrality V0",505,0,101); | |
550 | fHOutCentV0M_MUL= new TH1F("fHOutCentV0M_MUL","fHOutCentV0M_MUL; Centrality V0",505,0,101); | |
551 | fHOutCentV0M_MLL= new TH1F("fHOutCentV0M_MLL","fHOutCentV0M_MLL; Centrality V0",505,0,101); | |
552 | fHOutCentV0M_EJE= new TH1F("fHOutCentV0M_EJE","fHOutCentV0M_EJE; Centrality V0",505,0,101); | |
553 | fHOutCentV0M_EGA= new TH1F("fHOutCentV0M_EGA","fHOutCentV0M_EGA; Centrality V0",505,0,101); | |
554 | fHOutCentV0M_PHS= new TH1F("fHOutCentV0M_PHS","fHOutCentV0M_PHS; Centrality V0",505,0,101); | |
555 | fHOutCentV0M_MSLinMB= new TH1F("fHOutCentV0M_MSLinMB","fHOutCentV0M_MSLinMB; Centrality V0",505,0,101); | |
556 | fHOutCentV0M_MSHinMB= new TH1F("fHOutCentV0M_MSHinMB","fHOutCentV0M_MSHinMB; Centrality V0",505,0,101); | |
557 | fHOutCentV0M_MULinMB= new TH1F("fHOutCentV0M_MULinMB","fHOutCentV0M_MULinMB; Centrality V0",505,0,101); | |
558 | fHOutCentV0M_MLLinMB= new TH1F("fHOutCentV0M_MLLinMB","fHOutCentV0M_MLLinMB; Centrality V0",505,0,101); | |
559 | fHOutCentV0M_EJEinMB= new TH1F("fHOutCentV0M_EJEinMB","fHOutCentV0M_EJEinMB; Centrality V0",505,0,101); | |
560 | fHOutCentV0M_EGAinMB= new TH1F("fHOutCentV0M_EGAinMB","fHOutCentV0M_EGAinMB; Centrality V0",505,0,101); | |
561 | fHOutCentV0M_PHSinMB= new TH1F("fHOutCentV0M_PHSinMB","fHOutCentV0M_PHSinMB; Centrality V0",505,0,101); | |
bab72d34 | 562 | fHOutCentFMD = new TH1F("fHOutCentFMD","fHOutCentFMD; Centrality FMD",505,0,101); |
563 | fHOutCentTRK = new TH1F("fHOutCentTRK","fHOutCentTRK; Centrality TPC",505,0,101); | |
564 | fHOutCentTKL = new TH1F("fHOutCentTKL","fHOutCentTKL; Centrality tracklets",505,0,101); | |
565 | fHOutCentCL0 = new TH1F("fHOutCentCL0","fHOutCentCL0; Centrality SPD inner",505,0,101); | |
566 | fHOutCentCL1 = new TH1F("fHOutCentCL1","fHOutCentCL1; Centrality SPD outer",505,0,101); | |
567 | fHOutCentV0MvsFMD= new TH1F("fHOutCentV0MvsFMD","fHOutCentV0MvsFMD; Centrality V0 vs FMD",505,0,101); | |
568 | fHOutCentTKLvsV0M= new TH1F("fHOutCentTKLvsV0M","fHOutCentTKLvsV0M; Centrality tracklets vs V0",505,0,101); | |
569 | fHOutCentZEMvsZDC= new TH1F("fHOutCentZEMvsZDC","fHOutCentZEMvsZDC; Centrality ZEM vs ZDC",505,0,101); | |
980d6ad3 | 570 | fHOutCentV0MvsCentCL1= new TH2F("fHOutCentV0MvsCentCL1","fHOutCentV0MvsCentCL1; Cent V0; Cent SPD",505,0,101,505,0,101); |
571 | fHOutCentV0MvsCentTRK= new TH2F("fHOutCentV0MvsCentTRK","fHOutCentV0MvsCentTRK; Cent V0; Cent TPC",505,0,101,505,0,101); | |
572 | fHOutCentTRKvsCentCL1= new TH2F("fHOutCentTRKvsCentCL1","fHOutCentTRKvsCentCL1; Cent TPC; Cent SPD",505,0,101,505,0,101); | |
573 | fHOutCentV0MvsCentZDC= new TH2F("fHOutCentV0MvsCentZDC","fHOutCentV0MvsCentZDC; Cent V0; Cent ZDC",505,0,101,505,0,101); | |
a43ed687 | 574 | fHOutMultV0M = new TH1F("fHOutMultV0M","fHOutMultV0M; Multiplicity V0",25000,0,30000); |
14559332 | 575 | fHOutMultV0O = new TH1F("fHOutMultV0O","fHOutMultV0O; Multiplicity V0",40000,0,40000); |
a540a9d3 | 576 | fHOutMultFMD = new TH1F("fHOutMultFMD","fHOutMultFMD; Multiplicity FMD",24000,0,24000); |
577 | fHOutMultTRK = new TH1F("fHOutMultTRK","fHOutMultTRK; Multiplicity TPC",4000,0,4000); | |
578 | fHOutMultTKL = new TH1F("fHOutMultTKL","fHOutMultTKL; Multiplicity tracklets",5000,0,5000); | |
579 | fHOutMultCL0 = new TH1F("fHOutMultCL0","fHOutMultCL0; Multiplicity SPD inner",7000,0,7000); | |
580 | fHOutMultCL1 = new TH1F("fHOutMultCL1","fHOutMultCL1; Multiplicity SPD outer",7000,0,7000); | |
a43ed687 | 581 | fHOutMultV0MvsZDN = new TH2F("fHOutMultV0MvsZDN","fHOutMultV0MvsZDN; Multiplicity V0; Energy ZDC-N",500,0,30000,500,0,180000); |
31200bdf | 582 | fHOutMultZEMvsZDN = new TH2F("fHOutMultZEMvsZDN","fHOutMultZEMvsZDN; Energy ZEM; Energy ZDC-N",500,0,2500,500,0,180000); |
a43ed687 | 583 | fHOutMultV0MvsZDC = new TH2F("fHOutMultV0MvsZDC","fHOutMultV0MvsZDC; Multiplicity V0; Energy ZDC",500,0,30000,500,0,200000); |
31200bdf | 584 | fHOutMultZEMvsZDC = new TH2F("fHOutMultZEMvsZDC","fHOutMultZEMvsZDC; Energy ZEM; Energy ZDC",500,0,2500,500,0,200000); |
39bbe018 | 585 | fHOutMultZEMvsZDCw = new TH2F("fHOutMultZEMvsZDCw","fHOutMultZEMvsZDCw; Energy ZEM; Energy ZDC (weigthed with V0 percentile)",500,0,2500,500,0,200000); |
a43ed687 | 586 | fHOutMultV0MvsCL1 = new TH2F("fHOutMultV0MvsCL1","fHOutMultV0MvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000); |
587 | fHOutMultV0MvsTRK = new TH2F("fHOutMultV0MvsTRK","fHOutMultV0MvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000); | |
a540a9d3 | 588 | fHOutMultTRKvsCL1 = new TH2F("fHOutMultTRKvsCL1","fHOutMultTRKvsCL1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000); |
14559332 | 589 | fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,40000); |
590 | fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",500,0,40000,700,0,7000); | |
591 | fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",500,0,40000,400,0,4000); | |
a43ed687 | 592 | fHOutMultV0MvsV0O = new TH2F("fHOutMultV0MvsV0O","fHOutMultV0MvsV0O; Multiplicity V0; Multiplicity V0 Online",500,0,30000,500,0,30000); |
593 | fHOutMultV0OvsCL1 = new TH2F("fHOutMultV0OvsCL1","fHOutMultV0OvsCL1; Multiplicity V0; Multiplicity SPD outer",2500,0,30000,700,0,7000); | |
594 | fHOutMultV0OvsTRK = new TH2F("fHOutMultV0OvsTRK","fHOutMultV0OvsTRK; Multiplicity V0; Multiplicity TPC",2500,0,30000,400,0,4000); | |
3e654564 | 595 | |
04341115 | 596 | fHOutCentV0Mqual1 = new TH1F("fHOutCentV0M_qual1","fHOutCentV0M_qual1; Centrality V0",505,0,101); |
597 | fHOutCentTRKqual1 = new TH1F("fHOutCentTRK_qual1","fHOutCentTRK_qual1; Centrality TPC",505,0,101); | |
598 | fHOutCentCL1qual1 = new TH1F("fHOutCentCL1_qual1","fHOutCentCL1_qual1; Centrality SPD outer",505,0,101); | |
79d4544b | 599 | fHOutMultV0MvsCL1qual1 = new TH2F("fHOutMultV0MvsCL1_qual1","fHOutMultV0MvsCL1_qual1; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000); |
600 | fHOutMultV0MvsTRKqual1 = new TH2F("fHOutMultV0MvsTRK_qual1","fHOutMultV0MvsTRK_qual1; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000); | |
601 | fHOutMultTRKvsCL1qual1 = new TH2F("fHOutMultTRKvsCL1_qual1","fHOutMultTRKvsCL1_qual1; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000); | |
3e654564 | 602 | |
04341115 | 603 | fHOutCentV0Mqual2 = new TH1F("fHOutCentV0M_qual2","fHOutCentV0M_qual2; Centrality V0",505,0,101); |
604 | fHOutCentTRKqual2 = new TH1F("fHOutCentTRK_qual2","fHOutCentTRK_qual2; Centrality TPC",505,0,101); | |
605 | fHOutCentCL1qual2 = new TH1F("fHOutCentCL1_qual2","fHOutCentCL1_qual2; Centrality SPD outer",505,0,101); | |
79d4544b | 606 | fHOutMultV0MvsCL1qual2 = new TH2F("fHOutMultV0MvsCL1_qual2","fHOutMultV0MvsCL1_qual2; Multiplicity V0; Multiplicity SPD outer",2500,0,25000,700,0,7000); |
607 | fHOutMultV0MvsTRKqual2 = new TH2F("fHOutMultV0MvsTRK_qual2","fHOutMultV0MvsTRK_qual2; Multiplicity V0; Multiplicity TPC",2500,0,25000,400,0,4000); | |
608 | fHOutMultTRKvsCL1qual2 = new TH2F("fHOutMultTRKvsCL1_qual2","fHOutMultTRKvsCL1_qual2; Multiplicity TPC; Multiplicity SPD outer",400,0,4000,700,0,7000); | |
3e654564 | 609 | |
407bd85b | 610 | fHOutQuality = new TH1F("fHOutQuality", "fHOutQuality", 100,-0.5,99.5); |
a540a9d3 | 611 | fHOutVertex = new TH1F("fHOutVertex", "fHOutVertex", 100,-20,20); |
9448ffd1 | 612 | fHOutVertexT0 = new TH1F("fHOutVertexT0", "fHOutVertexT0", 100,-20,20); |
3e654564 | 613 | |
a540a9d3 | 614 | fOutputList->Add( fHOutCentV0M ); |
4fced115 | 615 | fOutputList->Add( fHOutCentV0M_CVHN); |
616 | fOutputList->Add( fHOutCentV0M_CVLN); | |
84bbff84 | 617 | fOutputList->Add( fHOutCentV0M_CVHNinMB); |
618 | fOutputList->Add( fHOutCentV0M_CVLNinMB); | |
9448ffd1 | 619 | fOutputList->Add( fHOutCentV0M_CCENT); |
620 | fOutputList->Add( fHOutCentV0M_CSEMI); | |
621 | fOutputList->Add( fHOutCentV0M_CCENTinMB); | |
622 | fOutputList->Add( fHOutCentV0M_CSEMIinMB); | |
3e654564 | 623 | fOutputList->Add( fHOutCentV0M_MSL ); |
624 | fOutputList->Add( fHOutCentV0M_MSH ); | |
625 | fOutputList->Add( fHOutCentV0M_MUL ); | |
626 | fOutputList->Add( fHOutCentV0M_MLL ); | |
627 | fOutputList->Add( fHOutCentV0M_EJE ); | |
628 | fOutputList->Add( fHOutCentV0M_EGA ); | |
629 | fOutputList->Add( fHOutCentV0M_PHS ); | |
630 | fOutputList->Add( fHOutCentV0M_MSLinMB); | |
631 | fOutputList->Add( fHOutCentV0M_MSHinMB); | |
632 | fOutputList->Add( fHOutCentV0M_MULinMB); | |
633 | fOutputList->Add( fHOutCentV0M_MLLinMB); | |
634 | fOutputList->Add( fHOutCentV0M_EJEinMB); | |
635 | fOutputList->Add( fHOutCentV0M_EGAinMB); | |
636 | fOutputList->Add( fHOutCentV0M_PHSinMB); | |
a540a9d3 | 637 | fOutputList->Add( fHOutCentFMD ); |
638 | fOutputList->Add( fHOutCentTRK ); | |
639 | fOutputList->Add( fHOutCentTKL ); | |
640 | fOutputList->Add( fHOutCentCL0 ); | |
641 | fOutputList->Add( fHOutCentCL1 ); | |
642 | fOutputList->Add( fHOutCentV0MvsFMD); | |
643 | fOutputList->Add( fHOutCentTKLvsV0M); | |
644 | fOutputList->Add( fHOutCentZEMvsZDC); | |
9138a60c | 645 | fOutputList->Add( fHOutCentV0MvsCentCL1); |
646 | fOutputList->Add( fHOutCentV0MvsCentTRK); | |
647 | fOutputList->Add( fHOutCentTRKvsCentCL1); | |
980d6ad3 | 648 | fOutputList->Add( fHOutCentV0MvsCentZDC); |
a540a9d3 | 649 | fOutputList->Add( fHOutMultV0M); |
a43ed687 | 650 | fOutputList->Add( fHOutMultV0O); |
a540a9d3 | 651 | fOutputList->Add( fHOutMultFMD); |
652 | fOutputList->Add( fHOutMultTRK); | |
653 | fOutputList->Add( fHOutMultTKL); | |
654 | fOutputList->Add( fHOutMultCL0); | |
655 | fOutputList->Add( fHOutMultCL1); | |
31200bdf | 656 | fOutputList->Add( fHOutMultV0MvsZDN); |
657 | fOutputList->Add( fHOutMultZEMvsZDN); | |
a540a9d3 | 658 | fOutputList->Add( fHOutMultV0MvsZDC); |
659 | fOutputList->Add( fHOutMultZEMvsZDC); | |
39bbe018 | 660 | fOutputList->Add( fHOutMultZEMvsZDCw); |
a540a9d3 | 661 | fOutputList->Add( fHOutMultV0MvsCL1); |
662 | fOutputList->Add( fHOutMultV0MvsTRK); | |
663 | fOutputList->Add( fHOutMultTRKvsCL1); | |
a43ed687 | 664 | fOutputList->Add( fHOutMultV0MvsV0O); |
665 | fOutputList->Add( fHOutMultV0OvsCL1); | |
666 | fOutputList->Add( fHOutMultV0OvsTRK); | |
04341115 | 667 | fOutputList->Add( fHOutCentV0Mqual1 ); |
668 | fOutputList->Add( fHOutCentTRKqual1 ); | |
669 | fOutputList->Add( fHOutCentCL1qual1 ); | |
79d4544b | 670 | fOutputList->Add( fHOutMultV0MvsCL1qual1); |
671 | fOutputList->Add( fHOutMultV0MvsTRKqual1); | |
672 | fOutputList->Add( fHOutMultTRKvsCL1qual1); | |
04341115 | 673 | fOutputList->Add( fHOutCentV0Mqual2 ); |
674 | fOutputList->Add( fHOutCentTRKqual2 ); | |
675 | fOutputList->Add( fHOutCentCL1qual2 ); | |
79d4544b | 676 | fOutputList->Add( fHOutMultV0MvsCL1qual2); |
677 | fOutputList->Add( fHOutMultV0MvsTRKqual2); | |
678 | fOutputList->Add( fHOutMultTRKvsCL1qual2); | |
a540a9d3 | 679 | fOutputList->Add( fHOutQuality ); |
680 | fOutputList->Add( fHOutVertex ); | |
9448ffd1 | 681 | fOutputList->Add( fHOutVertexT0 ); |
3e654564 | 682 | |
a540a9d3 | 683 | PostData(1, fOutputList); |
3e654564 | 684 | } |
685 | ||
686 | fTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts(); | |
687 | ||
afb1125b | 688 | if (fPass==0) AliFatal("Which pass are you analyzing? You should set it via taskCentrality->SetPass(N)"); |
a540a9d3 | 689 | } |
690 | ||
691 | //________________________________________________________________________ | |
692 | void AliCentralitySelectionTask::UserExec(Option_t */*option*/) | |
693 | { | |
694 | // Execute analysis for current event: | |
695 | if(fDebug>1) printf(" **** AliCentralitySelectionTask::UserExec() \n"); | |
a43ed687 | 696 | |
a540a9d3 | 697 | Float_t zncEnergy = 0.; // ZNC Energy |
698 | Float_t zpcEnergy = 0.; // ZPC Energy | |
699 | Float_t znaEnergy = 0.; // ZNA Energy | |
700 | Float_t zpaEnergy = 0.; // ZPA Energy | |
701 | Float_t zem1Energy = 0.; // ZEM1 Energy | |
702 | Float_t zem2Energy = 0.; // ZEM2 Energy | |
cfead5a9 | 703 | Bool_t zdcEnergyCal = kFALSE; // if zdc is calibrated (in pass2) |
704 | ||
a540a9d3 | 705 | Int_t nTracks = 0; // no. tracks |
706 | Int_t nTracklets = 0; // no. tracklets | |
707 | Int_t nClusters[6] = {0}; // no. clusters on 6 ITS layers | |
708 | Int_t nChips[2]; // no. chips on 2 SPD layers | |
709 | Float_t spdCorr =0; // corrected spd2 multiplicity | |
710 | ||
711 | Float_t multV0A = 0; // multiplicity from V0 reco side A | |
712 | Float_t multV0C = 0; // multiplicity from V0 reco side C | |
a43ed687 | 713 | Short_t multV0AOnline = 0; // multiplicity from V0 reco side A |
714 | Short_t multV0COnline = 0; // multiplicity from V0 reco side C | |
715 | Float_t v0Corr = 0; // corrected V0 multiplicity (used for MC) | |
716 | ||
a540a9d3 | 717 | Float_t multFMDA = 0; // multiplicity from FMD on detector A |
718 | Float_t multFMDC = 0; // multiplicity from FMD on detector C | |
719 | ||
a540a9d3 | 720 | Float_t zvtx =0; // z-vertex SPD |
407bd85b | 721 | Int_t zvtxNcont =0; // contributors to z-vertex SPD |
136f0a9b | 722 | |
9448ffd1 | 723 | Float_t zvtxT0 =0; // z-vertex T0 |
724 | ||
a43ed687 | 725 | |
a540a9d3 | 726 | AliCentrality *esdCent = 0; |
727 | ||
728 | if(fAnalysisInput.CompareTo("ESD")==0){ | |
a43ed687 | 729 | |
a540a9d3 | 730 | AliVEvent* event = InputEvent(); |
731 | AliESDEvent* esd = dynamic_cast<AliESDEvent*>(event); | |
732 | if (!esd) { | |
a43ed687 | 733 | AliError("No ESD Event"); |
734 | return; | |
a540a9d3 | 735 | } |
a43ed687 | 736 | |
cb15f505 | 737 | LoadBranches(); |
a540a9d3 | 738 | |
a43ed687 | 739 | if (SetupRun(esd)<0) { |
740 | AliError("Centrality File not available for this run"); | |
741 | return; | |
a540a9d3 | 742 | } |
a43ed687 | 743 | |
a540a9d3 | 744 | esdCent = esd->GetCentrality(); |
745 | ||
746 | // ***** V0 info | |
747 | AliESDVZERO* esdV0 = esd->GetVZEROData(); | |
748 | multV0A=esdV0->GetMTotV0A(); | |
749 | multV0C=esdV0->GetMTotV0C(); | |
a43ed687 | 750 | v0Corr = multV0A+multV0C; |
751 | ||
752 | multV0AOnline=esdV0->GetTriggerChargeA(); | |
753 | multV0COnline=esdV0->GetTriggerChargeC(); | |
a540a9d3 | 754 | |
9448ffd1 | 755 | // ***** T0 info |
756 | const AliESDTZERO* esdT0 = esd->GetESDTZERO(); | |
757 | if (!esdT0) | |
758 | { | |
759 | AliError("AliESDTZERO not available"); | |
760 | } | |
761 | Int_t trig=esdT0->GetT0Trig(); | |
762 | Bool_t kT0BB = kFALSE; | |
763 | if(trig&1) kT0BB=kTRUE; | |
764 | zvtxT0=esdT0->GetT0zVertex(); | |
765 | ||
a540a9d3 | 766 | |
4fced115 | 767 | // ***** Trigger info |
624cda23 | 768 | fIsSelected = ((esdV0->GetV0ADecision()==1) && (esdV0->GetV0CDecision()==1)); |
4fced115 | 769 | TString trigStr(esd->GetFiredTriggerClasses()); |
9448ffd1 | 770 | |
771 | fCVHN=kFALSE; fCVLN=kFALSE; fCCENT=kFALSE; fCSEMI=kFALSE; | |
3e654564 | 772 | fMSL=kFALSE; fMSH=kFALSE; fMUL=kFALSE; fMLL=kFALSE; |
773 | fEJE=kFALSE; fEGA=kFALSE; fPHS=kFALSE; | |
774 | ||
624cda23 | 775 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVHN")) && (fIsSelected)) |
776 | fCVHN=kTRUE; | |
777 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CVLN")) && (fIsSelected)) | |
778 | fCVLN=kTRUE; | |
9448ffd1 | 779 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CCENT")) && (fIsSelected)) |
780 | fCCENT=kTRUE; | |
781 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CSEMI")) && (fIsSelected)) | |
782 | fCSEMI=kTRUE; | |
3e654564 | 783 | |
784 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSL")) && (fIsSelected)) | |
785 | fMSL=kTRUE; | |
786 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MSH")) && (fIsSelected)) | |
787 | fMSH=kTRUE; | |
788 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MUL")) && (fIsSelected)) | |
789 | fMUL=kTRUE; | |
790 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1MLL")) && (fIsSelected)) | |
791 | fMLL=kTRUE; | |
792 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EJE")) && (fIsSelected)) | |
793 | fEJE=kTRUE; | |
794 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1EGA")) && (fIsSelected)) | |
795 | fEGA=kTRUE; | |
796 | if ( (trigStr.Contains("-B-")) && (trigStr.Contains("CPBI1PHS")) && (fIsSelected)) | |
797 | fPHS=kTRUE; | |
9448ffd1 | 798 | |
799 | fCVHNbit=kFALSE; fCVLNbit=kFALSE; fCCENTbit=kFALSE; fCSEMIbit=kFALSE; | |
3e654564 | 800 | if (esdV0->GetTriggerBits() & (1<<8)) |
0caaf699 | 801 | fCVHNbit=kTRUE; |
802 | if (esdV0->GetTriggerBits() & (1<<6)) | |
803 | fCVLNbit=kTRUE; | |
3e654564 | 804 | |
9448ffd1 | 805 | if (kT0BB && fCVHNbit) |
806 | fCCENTbit=kTRUE; | |
807 | if (kT0BB && fCVLNbit) | |
808 | fCSEMIbit=kTRUE; | |
809 | ||
3e654564 | 810 | |
a540a9d3 | 811 | // ***** Vertex Info |
812 | const AliESDVertex* vtxESD = esd->GetPrimaryVertexSPD(); | |
813 | zvtx = vtxESD->GetZ(); | |
407bd85b | 814 | zvtxNcont = vtxESD->GetNContributors(); |
a540a9d3 | 815 | |
816 | // ***** CB info (tracklets, clusters, chips) | |
817 | //nTracks = event->GetNumberOfTracks(); | |
818 | nTracks = fTrackCuts ? (Short_t)fTrackCuts->GetReferenceMultiplicity(esd,kTRUE):-1; | |
819 | ||
820 | const AliMultiplicity *mult = esd->GetMultiplicity(); | |
821 | ||
822 | nTracklets = mult->GetNumberOfTracklets(); | |
823 | ||
824 | for(Int_t ilay=0; ilay<6; ilay++){ | |
825 | nClusters[ilay] = mult->GetNumberOfITSClusters(ilay); | |
826 | } | |
827 | ||
828 | for(Int_t ilay=0; ilay<2; ilay++){ | |
829 | nChips[ilay] = mult->GetNumberOfFiredChips(ilay); | |
830 | } | |
831 | ||
832 | spdCorr = AliESDUtils::GetCorrSPD2(nClusters[1],zvtx); | |
833 | ||
834 | // ***** FMD info | |
835 | AliESDFMD *fmd = esd->GetFMDData(); | |
836 | Float_t totalMultA = 0; | |
837 | Float_t totalMultC = 0; | |
838 | const Float_t fFMDLowCut = 0.4; | |
a43ed687 | 839 | |
a540a9d3 | 840 | for(UShort_t det=1;det<=3;det++) { |
841 | Int_t nRings = (det==1 ? 1 : 2); | |
842 | for (UShort_t ir = 0; ir < nRings; ir++) { | |
a43ed687 | 843 | Char_t ring = (ir == 0 ? 'I' : 'O'); |
844 | UShort_t nsec = (ir == 0 ? 20 : 40); | |
845 | UShort_t nstr = (ir == 0 ? 512 : 256); | |
846 | for(UShort_t sec =0; sec < nsec; sec++) { | |
847 | for(UShort_t strip = 0; strip < nstr; strip++) { | |
a540a9d3 | 848 | |
a43ed687 | 849 | Float_t fmdMult = fmd->Multiplicity(det,ring,sec,strip); |
850 | if(fmdMult == 0 || fmdMult == AliESDFMD::kInvalidMult) continue; | |
a540a9d3 | 851 | |
a43ed687 | 852 | Float_t nParticles=0; |
a540a9d3 | 853 | |
a43ed687 | 854 | if(fmdMult > fFMDLowCut) { |
855 | nParticles = 1.; | |
856 | } | |
a540a9d3 | 857 | |
a43ed687 | 858 | if (det<3) totalMultA = totalMultA + nParticles; |
859 | else totalMultC = totalMultC + nParticles; | |
a540a9d3 | 860 | |
a43ed687 | 861 | } |
862 | } | |
a540a9d3 | 863 | } |
864 | } | |
865 | multFMDA = totalMultA; | |
866 | multFMDC = totalMultC; | |
a43ed687 | 867 | |
a540a9d3 | 868 | // ***** ZDC info |
869 | AliESDZDC *esdZDC = esd->GetESDZDC(); | |
cfead5a9 | 870 | zdcEnergyCal = esdZDC->AliESDZDC::TestBit(AliESDZDC::kEnergyCalibratedSignal); |
871 | if (zdcEnergyCal) { | |
872 | zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy()); | |
873 | zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy()); | |
874 | znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy()); | |
875 | zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy()); | |
876 | } else { | |
877 | zncEnergy = (Float_t) (esdZDC->GetZDCN1Energy())/8.; | |
878 | zpcEnergy = (Float_t) (esdZDC->GetZDCP1Energy())/8.; | |
879 | znaEnergy = (Float_t) (esdZDC->GetZDCN2Energy())/8.; | |
880 | zpaEnergy = (Float_t) (esdZDC->GetZDCP2Energy())/8.; | |
881 | } | |
a540a9d3 | 882 | zem1Energy = (Float_t) (esdZDC->GetZDCEMEnergy(0))/8.; |
883 | zem2Energy = (Float_t) (esdZDC->GetZDCEMEnergy(1))/8.; | |
a43ed687 | 884 | |
a540a9d3 | 885 | } |
136f0a9b | 886 | |
a540a9d3 | 887 | else if(fAnalysisInput.CompareTo("AOD")==0){ |
888 | //AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent()); | |
889 | // to be implemented | |
890 | printf(" AOD analysis not yet implemented!!!\n\n"); | |
891 | return; | |
892 | } | |
893 | ||
d015c169 | 894 | // ***** Scaling for MC |
895 | if (fIsMCInput) { | |
896 | fUseScaling=kFALSE; | |
a43ed687 | 897 | v0Corr = Short_t((multV0A+multV0C) * fV0MScaleFactorMC); |
d015c169 | 898 | } |
a43ed687 | 899 | // ***** Scaling for Data |
a540a9d3 | 900 | if (fUseScaling) { |
a43ed687 | 901 | v0Corr = Short_t(v0Corr / fV0MScaleFactor); |
902 | spdCorr = spdCorr / fSPDScaleFactor; | |
903 | nTracks = Int_t(nTracks / fTPCScaleFactor); | |
a540a9d3 | 904 | } |
a540a9d3 | 905 | |
906 | // ***** Centrality Selection | |
907 | if(fHtempV0M) fCentV0M = fHtempV0M->GetBinContent(fHtempV0M->FindBin((v0Corr))); | |
908 | if(fHtempFMD) fCentFMD = fHtempFMD->GetBinContent(fHtempFMD->FindBin((multFMDA+multFMDC))); | |
909 | if(fHtempTRK) fCentTRK = fHtempTRK->GetBinContent(fHtempTRK->FindBin(nTracks)); | |
910 | if(fHtempTKL) fCentTKL = fHtempTKL->GetBinContent(fHtempTKL->FindBin(nTracklets)); | |
911 | if(fHtempCL0) fCentCL0 = fHtempCL0->GetBinContent(fHtempCL0->FindBin(nClusters[0])); | |
912 | if(fHtempCL1) fCentCL1 = fHtempCL1->GetBinContent(fHtempCL1->FindBin(spdCorr)); | |
a43ed687 | 913 | |
a540a9d3 | 914 | if(fHtempV0MvsFMD) fCentV0MvsFMD = fHtempV0MvsFMD->GetBinContent(fHtempV0MvsFMD->FindBin((multV0A+multV0C))); |
915 | if(fHtempTKLvsV0M) fCentTKLvsV0M = fHtempTKLvsV0M->GetBinContent(fHtempTKLvsV0M->FindBin(nTracklets)); | |
7ee7a2df | 916 | if(fHtempZEMvsZDC) fCentZEMvsZDC = fHtempZEMvsZDC->GetBinContent(fHtempZEMvsZDC->FindBin(zem1Energy+zem2Energy,zncEnergy+znaEnergy+zpcEnergy+zpaEnergy)); |
a540a9d3 | 917 | |
a43ed687 | 918 | |
a540a9d3 | 919 | // ***** Cleaning |
d015c169 | 920 | if (fUseCleaning) { |
a43ed687 | 921 | fQuality=0; |
922 | ||
923 | // ***** vertex | |
924 | if (TMath::Abs(zvtx)>fZVCut || zvtxNcont<1) fQuality += 1; | |
925 | ||
926 | // ***** outliers, skip in case of MC input | |
927 | if (!fIsMCInput) { | |
928 | // **** V0 vs SPD | |
929 | if (IsOutlierV0MSPD(spdCorr, v0Corr, int(fCentV0M))) fQuality += 2; | |
930 | // ***** V0 vs TPC | |
931 | if (IsOutlierV0MTPC(nTracks, v0Corr, int(fCentV0M))) fQuality += 4; | |
932 | // ***** V0 vs ZDC | |
933 | if (IsOutlierV0MZDC((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) && | |
934 | (zdcEnergyCal==kFALSE) ) fQuality += 8; | |
935 | if (IsOutlierV0MZDCECal((zncEnergy+znaEnergy+zpcEnergy+zpaEnergy), v0Corr) && | |
936 | (zdcEnergyCal==kTRUE) ) fQuality += 8; | |
937 | } | |
d015c169 | 938 | } else { |
a43ed687 | 939 | fQuality = 0; |
d015c169 | 940 | } |
a540a9d3 | 941 | |
a43ed687 | 942 | |
a540a9d3 | 943 | if (esdCent) { |
a43ed687 | 944 | esdCent->SetQuality(fQuality); |
945 | esdCent->SetCentralityV0M(fCentV0M); | |
946 | esdCent->SetCentralityFMD(fCentFMD); | |
947 | esdCent->SetCentralityTRK(fCentTRK); | |
948 | esdCent->SetCentralityTKL(fCentTKL); | |
949 | esdCent->SetCentralityCL0(fCentCL0); | |
950 | esdCent->SetCentralityCL1(fCentCL1); | |
951 | esdCent->SetCentralityV0MvsFMD(fCentV0MvsFMD); | |
952 | esdCent->SetCentralityTKLvsV0M(fCentTKLvsV0M); | |
953 | esdCent->SetCentralityZEMvsZDC(fCentZEMvsZDC); | |
a540a9d3 | 954 | } |
955 | ||
3e654564 | 956 | // filling QA histograms |
957 | if (fFillHistos) { | |
958 | if (fCVHN) fHOutCentV0M_CVHN->Fill(fCentV0M); | |
959 | if (fCVLN) fHOutCentV0M_CVLN->Fill(fCentV0M); | |
960 | if (fCCENT) fHOutCentV0M_CCENT->Fill(fCentV0M); | |
961 | if (fCSEMI) fHOutCentV0M_CSEMI->Fill(fCentV0M); | |
962 | if (fMSL) fHOutCentV0M_MSL->Fill(fCentV0M); | |
963 | if (fMSH) fHOutCentV0M_MSH->Fill(fCentV0M); | |
964 | if (fMUL) fHOutCentV0M_MUL->Fill(fCentV0M); | |
965 | if (fMLL) fHOutCentV0M_MLL->Fill(fCentV0M); | |
966 | if (fEJE) fHOutCentV0M_EJE->Fill(fCentV0M); | |
967 | if (fEGA) fHOutCentV0M_EGA->Fill(fCentV0M); | |
968 | if (fPHS) fHOutCentV0M_PHS->Fill(fCentV0M); | |
969 | ||
970 | if (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB) { // fill the QA histograms only for MB events! | |
971 | fHOutQuality->Fill(fQuality); | |
972 | fHOutVertex->Fill(zvtx); | |
973 | fHOutVertexT0->Fill(zvtxT0); | |
974 | ||
975 | if (fQuality==0) { | |
976 | fHOutCentV0M->Fill(fCentV0M); | |
977 | ||
978 | if (fCVHNbit) fHOutCentV0M_CVHNinMB->Fill(fCentV0M); | |
979 | if (fCVLNbit) fHOutCentV0M_CVLNinMB->Fill(fCentV0M); | |
980 | if (fCCENTbit) fHOutCentV0M_CCENTinMB->Fill(fCentV0M); | |
981 | if (fCSEMIbit) fHOutCentV0M_CSEMIinMB->Fill(fCentV0M); | |
982 | if (fMSL) fHOutCentV0M_MSLinMB->Fill(fCentV0M); | |
983 | if (fMSH) fHOutCentV0M_MSHinMB->Fill(fCentV0M); | |
984 | if (fMUL) fHOutCentV0M_MULinMB->Fill(fCentV0M); | |
985 | if (fMLL) fHOutCentV0M_MLLinMB->Fill(fCentV0M); | |
986 | if (fEJE) fHOutCentV0M_EJEinMB->Fill(fCentV0M); | |
987 | if (fEGA) fHOutCentV0M_EGAinMB->Fill(fCentV0M); | |
988 | if (fPHS) fHOutCentV0M_PHSinMB->Fill(fCentV0M); | |
989 | ||
990 | ||
991 | fHOutCentFMD->Fill(fCentFMD); | |
992 | fHOutCentTRK->Fill(fCentTRK); | |
993 | fHOutCentTKL->Fill(fCentTKL); | |
994 | fHOutCentCL0->Fill(fCentCL0); | |
995 | fHOutCentCL1->Fill(fCentCL1); | |
996 | fHOutCentV0MvsFMD->Fill(fCentV0MvsFMD); | |
997 | fHOutCentTKLvsV0M->Fill(fCentTKLvsV0M); | |
998 | fHOutCentZEMvsZDC->Fill(fCentZEMvsZDC); | |
999 | fHOutCentV0MvsCentCL1->Fill(fCentV0M,fCentCL1); | |
1000 | fHOutCentV0MvsCentTRK->Fill(fCentV0M,fCentTRK); | |
1001 | fHOutCentTRKvsCentCL1->Fill(fCentTRK,fCentCL1); | |
1002 | fHOutCentV0MvsCentZDC->Fill(fCentV0M,fCentZEMvsZDC); | |
1003 | fHOutMultV0M->Fill(multV0A+multV0C); | |
1004 | fHOutMultV0O->Fill(multV0AOnline+multV0COnline); | |
1005 | fHOutMultFMD->Fill(multFMDA+multFMDC); | |
1006 | fHOutMultTRK->Fill(nTracks); | |
1007 | fHOutMultTKL->Fill(nTracklets); | |
1008 | fHOutMultCL0->Fill(nClusters[0]); | |
1009 | fHOutMultCL1->Fill(spdCorr); | |
1010 | fHOutMultV0MvsZDN->Fill(v0Corr,(zncEnergy+znaEnergy)); | |
1011 | fHOutMultZEMvsZDN->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy)); | |
1012 | fHOutMultV0MvsZDC->Fill(v0Corr,(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy)); | |
1013 | fHOutMultZEMvsZDC->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy)); | |
1014 | fHOutMultZEMvsZDCw->Fill((zem1Energy+zem2Energy),(zncEnergy+znaEnergy+zpcEnergy+zpaEnergy),fCentV0M); | |
1015 | fHOutMultV0MvsCL1->Fill(v0Corr,spdCorr); | |
1016 | fHOutMultV0MvsTRK->Fill(v0Corr,nTracks); | |
1017 | fHOutMultTRKvsCL1->Fill(nTracks,spdCorr); | |
1018 | fHOutMultV0MvsV0O->Fill(v0Corr,(multV0AOnline+multV0COnline)); | |
1019 | fHOutMultV0OvsCL1->Fill((multV0AOnline+multV0COnline),spdCorr); | |
1020 | fHOutMultV0OvsTRK->Fill((multV0AOnline+multV0COnline),nTracks); | |
1021 | } else if (fQuality%2 == 0) { | |
1022 | fHOutCentV0Mqual1->Fill(fCentV0M); | |
1023 | fHOutCentTRKqual1->Fill(fCentTRK); | |
1024 | fHOutCentCL1qual1->Fill(fCentCL1); | |
1025 | fHOutMultV0MvsCL1qual1->Fill(v0Corr,spdCorr); | |
1026 | fHOutMultV0MvsTRKqual1->Fill(v0Corr,nTracks); | |
1027 | fHOutMultTRKvsCL1qual1->Fill(nTracks,spdCorr); | |
1028 | } else { | |
1029 | fHOutCentV0Mqual2->Fill(fCentV0M); | |
1030 | fHOutCentTRKqual2->Fill(fCentTRK); | |
1031 | fHOutCentCL1qual2->Fill(fCentCL1); | |
1032 | fHOutMultV0MvsCL1qual2->Fill(v0Corr,spdCorr); | |
1033 | fHOutMultV0MvsTRKqual2->Fill(v0Corr,nTracks); | |
1034 | fHOutMultTRKvsCL1qual2->Fill(nTracks,spdCorr); | |
1035 | } | |
1036 | } | |
1037 | PostData(1, fOutputList); | |
4402d4dc | 1038 | } |
a540a9d3 | 1039 | } |
a540a9d3 | 1040 | //________________________________________________________________________ |
1041 | void AliCentralitySelectionTask::Terminate(Option_t */*option*/) | |
1042 | { | |
1043 | // Terminate analysis | |
a540a9d3 | 1044 | } |
1045 | //________________________________________________________________________ | |
f690bf48 | 1046 | Int_t AliCentralitySelectionTask::SetupRun(AliESDEvent* const esd) |
a540a9d3 | 1047 | { |
1048 | // Setup files for run | |
1049 | ||
1050 | if (!esd) | |
1051 | return -1; | |
1052 | ||
1053 | // check if something to be done | |
1054 | if (fCurrentRun == esd->GetRunNumber()) | |
1055 | return 0; | |
1056 | else | |
1057 | fCurrentRun = esd->GetRunNumber(); | |
a43ed687 | 1058 | |
1059 | TString fileName =(Form("%s/COMMON/CENTRALITY/data/centrality.root", AliAnalysisManager::GetOADBPath())); | |
1060 | AliInfo(Form("Setup Centrality Selection for run %d with file %s\n",fCurrentRun,fileName.Data())); | |
1061 | ||
1062 | AliOADBContainer *con = new AliOADBContainer("OADB"); | |
1063 | con->InitFromFile(fileName,"Centrality"); | |
1064 | ||
1065 | AliOADBCentrality* centOADB = 0; | |
1066 | centOADB = (AliOADBCentrality*)(con->GetObject(fCurrentRun)); | |
1067 | if (!centOADB) { | |
1068 | AliWarning(Form("Centrality OADB does not exist for run %d, using Default \n",fCurrentRun )); | |
1069 | centOADB = (AliOADBCentrality*)(con->GetDefaultObject("oadbDefault")); | |
1070 | } | |
1071 | ||
1072 | // modes | |
1073 | fUseScaling = centOADB->UseScaling(); | |
1074 | fUseCleaning = centOADB->UseCleaning(); | |
1075 | ||
1076 | // cuts | |
1077 | fZVCut = centOADB->ZVCut(); | |
1078 | fOutliersCut = centOADB->OutliersCut(); | |
1079 | ||
1080 | // centrality histos | |
1081 | fHtempV0M = centOADB->V0hist(); | |
1082 | fHtempTRK = centOADB->TPChist(); | |
1083 | fHtempCL1 = centOADB->SPDhist(); | |
1084 | fHtempZEMvsZDC = centOADB->ZEMvsZDChist(); | |
a540a9d3 | 1085 | |
a43ed687 | 1086 | TString path = gSystem->ExpandPathName(fileName.Data()); |
1087 | if (!fHtempV0M) AliWarning(Form("Calibration for V0M does not exist in %s", path.Data())); | |
1088 | if (!fHtempTRK) AliWarning(Form("Calibration for TRK does not exist in %s", path.Data())); | |
1089 | if (!fHtempCL1) AliWarning(Form("Calibration for CL1 does not exist in %s", path.Data())); | |
1090 | if (!fHtempZEMvsZDC) AliWarning(Form("Calibration for ZEMvsZDC does not exist in %s", path.Data())); | |
1091 | ||
1092 | // scale factors | |
1093 | fV0MScaleFactor = centOADB->V0MScaleFactor(); | |
1094 | fSPDScaleFactor = centOADB->SPDScaleFactor(); | |
1095 | fTPCScaleFactor = centOADB->TPCScaleFactor(); | |
1096 | fV0MScaleFactorMC = centOADB->V0MScaleFactor(); | |
1097 | ||
1098 | // outliers parameters | |
1099 | fV0MSPDOutlierPar0 = centOADB->V0MSPDOutlierPar0(); | |
1100 | fV0MSPDOutlierPar1 = centOADB->V0MSPDOutlierPar1(); | |
1101 | fV0MTPCOutlierPar0 = centOADB->V0MTPCOutlierPar0(); | |
1102 | fV0MTPCOutlierPar1 = centOADB->V0MTPCOutlierPar1(); | |
1103 | ||
1104 | fV0MSPDSigmaOutlierPar0 = centOADB->V0MSPDSigmaOutlierPar0(); | |
1105 | fV0MSPDSigmaOutlierPar1 = centOADB->V0MSPDSigmaOutlierPar1(); | |
1106 | fV0MSPDSigmaOutlierPar2 = centOADB->V0MSPDSigmaOutlierPar2(); | |
1107 | fV0MTPCSigmaOutlierPar0 = centOADB->V0MTPCSigmaOutlierPar0(); | |
1108 | fV0MTPCSigmaOutlierPar1 = centOADB->V0MTPCSigmaOutlierPar1(); | |
1109 | fV0MTPCSigmaOutlierPar2 = centOADB->V0MTPCSigmaOutlierPar2(); | |
1110 | ||
1111 | fV0MZDCOutlierPar0 = centOADB->V0MZDCOutlierPar0(); | |
1112 | fV0MZDCOutlierPar1 = centOADB->V0MZDCOutlierPar1(); | |
1113 | fV0MZDCEcalOutlierPar0 = centOADB->V0MZDCEcalOutlierPar0(); | |
1114 | fV0MZDCEcalOutlierPar1 = centOADB->V0MZDCEcalOutlierPar1(); | |
1115 | ||
1116 | ||
1117 | ||
a540a9d3 | 1118 | return 0; |
1119 | } | |
1120 | ||
a43ed687 | 1121 | |
1122 | ||
a540a9d3 | 1123 | //________________________________________________________________________ |
f690bf48 | 1124 | Bool_t AliCentralitySelectionTask::IsOutlierV0MSPD(Float_t spd, Float_t v0, Int_t cent) const |
a540a9d3 | 1125 | { |
a43ed687 | 1126 | // Clean outliers |
1127 | Float_t val = fV0MSPDOutlierPar0 + fV0MSPDOutlierPar1 * v0; | |
1128 | Float_t spdSigma = fV0MSPDSigmaOutlierPar0 + fV0MSPDSigmaOutlierPar1*cent + fV0MSPDSigmaOutlierPar2*cent*cent; | |
1129 | if ( TMath::Abs(spd-val) > fOutliersCut*spdSigma ) | |
a540a9d3 | 1130 | return kTRUE; |
1131 | else | |
1132 | return kFALSE; | |
1133 | } | |
1134 | ||
1135 | //________________________________________________________________________ | |
f690bf48 | 1136 | Bool_t AliCentralitySelectionTask::IsOutlierV0MTPC(Int_t tracks, Float_t v0, Int_t cent) const |
a540a9d3 | 1137 | { |
a43ed687 | 1138 | // Clean outliers |
1139 | Float_t val = fV0MTPCOutlierPar0 + fV0MTPCOutlierPar1 * v0; | |
1140 | Float_t tpcSigma = fV0MTPCSigmaOutlierPar0 + fV0MTPCSigmaOutlierPar1*cent + fV0MTPCSigmaOutlierPar2*cent*cent; | |
1141 | if ( TMath::Abs(tracks-val) > fOutliersCut*tpcSigma ) | |
a540a9d3 | 1142 | return kTRUE; |
1143 | else | |
1144 | return kFALSE; | |
1145 | } | |
1146 | ||
1147 | //________________________________________________________________________ | |
6abef102 | 1148 | Bool_t AliCentralitySelectionTask::IsOutlierV0MZDC(Float_t zdc, Float_t v0) const |
a540a9d3 | 1149 | { |
a43ed687 | 1150 | // Clean outliers |
1151 | Float_t val = fV0MZDCOutlierPar0 + fV0MZDCOutlierPar1 * v0; | |
6abef102 | 1152 | if (zdc > val) |
1153 | return kTRUE; | |
1154 | else | |
a43ed687 | 1155 | return kFALSE; |
a540a9d3 | 1156 | } |
1157 | ||
9138a60c | 1158 | //________________________________________________________________________ |
a43ed687 | 1159 | Bool_t AliCentralitySelectionTask::IsOutlierV0MZDCECal(Float_t zdc, Float_t v0) const |
9138a60c | 1160 | { |
a43ed687 | 1161 | // Clean outliers |
1162 | Float_t val = fV0MZDCEcalOutlierPar0 + fV0MZDCEcalOutlierPar1 * v0; | |
1163 | if (zdc > val) | |
1164 | return kTRUE; | |
1165 | else | |
9138a60c | 1166 | return kFALSE; |
1167 | } | |
1168 | ||
a540a9d3 | 1169 |