]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/AliAnalysisTaskPerformanceStrange.cxx
Code to combine and fit ID spectra (pi/K/p).
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliAnalysisTaskPerformanceStrange.cxx
CommitLineData
9c7b62a0 1/**************************************************************************
2 * Copyright(c) 1998-2009, 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// AliAnalysisTaskPerformanceSrange class
18// This task is for a performance study of V0 identification.
19// It works with MC info and ESD tree.
20// Author: H.Ricaud, H.Ricaud@gsi.de
21//-----------------------------------------------------------------
22
23#include <Riostream.h>
24
25#include <stdio.h>
26#include <iostream>
27#include "TChain.h"
28#include "TTree.h"
29#include "TH1F.h"
30#include "TH2F.h"
31#include "TF1.h"
32#include "TList.h"
33#include "TMath.h"
34#include "TCanvas.h"
35
36#include "AliAnalysisManager.h"
37
2093003d 38#include "AliPhysicsSelection.h"
39
9c7b62a0 40#include "AliESDVertex.h"
41#include "AliESDEvent.h"
42#include "AliESDInputHandler.h"
43#include "AliESDtrack.h"
44#include "AliESDv0.h"
2093003d 45#include "AliESDtrackCuts.h"
9c7b62a0 46
47#include "AliAODEvent.h"
48#include "AliAODVertex.h"
49#include "AliAODTrack.h"
50#include "AliAODv0.h"
51#include "AliAODMCHeader.h"
52#include "AliAODInputHandler.h"
53//#include "AliV0vertexer.h"
54
55#include "AliAODMCParticle.h"
56
57#include "AliMCEventHandler.h"
58#include "AliMCEvent.h"
59#include "AliStack.h"
2093003d 60#include "AliGenEventHeader.h"
9c7b62a0 61
62#include "AliLog.h"
63
2093003d 64#include "AliKFVertex.h"
65#include "AliVertexerTracks.h"
66
9c7b62a0 67#include "AliAnalysisTaskPerformanceStrange.h"
68
69
70ClassImp(AliAnalysisTaskPerformanceStrange)
71
72
73//________________________________________________________________________
74AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange()
eb4c2d5b 75 : AliAnalysisTaskSE(), fAnalysisMC(999), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infoCut"), fPhysTrigSel(0), fListHist(0),
2093003d 76 fHistMCPrimaryVertexX(0),
77 fHistMCPrimaryVertexY(0),
78 fHistMCPrimaryVertexZ(0),
9c7b62a0 79 fHistMCMultiplicityPrimary(0),
80 fHistMCMultiplicityTracks(0),
81 fHistMCtracksProdRadiusK0s(0),
82 fHistMCtracksProdRadiusLambda(0),
83 fHistMCtracksProdRadiusAntiLambda(0),
84 fHistMCtracksDecayRadiusK0s(0),
85 fHistMCtracksDecayRadiusLambda(0),
86 fHistMCtracksDecayRadiusAntiLambda(0),
87 fHistMCPtAllK0s(0),
88 fHistMCPtAllLambda(0),
89 fHistMCPtAllAntiLambda(0),
90 fHistMCProdRadiusK0s(0),
91 fHistMCProdRadiusLambda(0),
92 fHistMCProdRadiusAntiLambda(0),
f81f8d5e 93 fHistMCPtK0s(0),
94 fHistMCPtLambda(0),
95 fHistMCPtAntiLambda(0),
9c7b62a0 96 fHistMCPtLambdaFromSigma(0),
97 fHistMCPtAntiLambdaFromSigma(0),
98 fHistNTimesRecK0s(0),
99 fHistNTimesRecK0sMI(0),
100 fHistNTimesRecLambda(0),
101 fHistNTimesRecLambdaMI(0),
102 fHistNTimesRecAntiLambda(0),
103 fHistNTimesRecAntiLambdaMI(0),
104 fHistNTimesRecK0sVsPt(0),
105 fHistNTimesRecK0sVsPtMI(0),
106 fHistNTimesRecLambdaVsPt(0),
107 fHistNTimesRecLambdaVsPtMI(0),
108 fHistNTimesRecAntiLambdaVsPt(0),
109 fHistNTimesRecAntiLambdaVsPtMI(0),
110 fHistTrackPerEvent(0),
111 fHistMCDaughterTrack(0),
112 fHistPrimaryVertexX(0),
113 fHistPrimaryVertexY(0),
114 fHistPrimaryVertexZ(0),
2093003d 115 fHistPrimaryVertexPosXV0events(0),
116 fHistPrimaryVertexPosYV0events(0),
117 fHistPrimaryVertexPosZV0events(0),
9c7b62a0 118 fHistDcaPosToPrimVertex(0),
119 fHistDcaNegToPrimVertex(0),
120 fHistDcaPosToPrimVertexZoom(0),
121 fHistDcaNegToPrimVertexZoom(0),
122 fHistRadiusV0(0),
123 fHistDecayLengthV0(0),
124 fHistDcaV0Daughters(0),
125 fHistChi2(0),
126 fHistCosPointAngle(0),
127 fHistCosPointAngleZoom(0),
128 fHistProdRadius(0),
129 fHistProdRadiusMI(0),
e2e56010 130 fHistV0Multiplicity(0),
131 fHistV0MultiplicityMI(0),
2093003d 132 fHistChi2KFBeforeCutK0s(0),
133 fHistChi2KFBeforeCutLambda(0),
134 fHistChi2KFBeforeCutAntiLambda(0),
135 fHistChi2KFAfterCutK0s(0),
136 fHistChi2KFAfterCutLambda(0),
137 fHistChi2KFAfterCutAntiLambda(0),
9c7b62a0 138 fHistMassK0(0),
139 fHistMassK0MI(0),
140 fHistMassLambda(0),
141 fHistMassLambdaMI(0),
142 fHistMassAntiLambda(0),
143 fHistMassAntiLambdaMI(0),
144 fHistMassVsRadiusK0(0),
145 fHistMassVsRadiusK0MI(0),
146 fHistMassVsRadiusLambda(0),
147 fHistMassVsRadiusLambdaMI(0),
148 fHistMassVsRadiusAntiLambda(0),
149 fHistMassVsRadiusAntiLambdaMI(0),
150 fHistPtVsMassK0(0),
151 fHistPtVsMassK0MI(0),
152 fHistPtVsMassLambda(0),
153 fHistPtVsMassLambdaMI(0),
154 fHistPtVsMassAntiLambda(0),
155 fHistPtVsMassAntiLambdaMI(0),
156 fHistArmenterosPodolanski(0),
157 fHistArmenterosPodolanskiMI(0),
158 fHistNsigmaPosPionAntiLambda(0),
159 fHistNsigmaNegProtonAntiLambda(0),
160 fHistNsigmaPosProtonLambda(0),
161 fHistNsigmaNegPionLambda(0),
162 fHistNsigmaPosPionK0(0),
163 fHistNsigmaNegPionK0(0),
f81f8d5e 164 fHistAsMcRapK0(0),
165 fHistAsMcRapK0MI(0),
166 fHistAsMcRapLambda(0),
167 fHistAsMcRapLambdaMI(0),
168 fHistAsMcRapAntiLambda(0),
169 fHistAsMcRapAntiLambdaMI(0),
9c7b62a0 170 fHistAsMcPtK0(0),
171 fHistAsMcPtK0MI(0),
172 fHistAsMcPtLambda(0),
173 fHistAsMcPtLambdaMI(0),
174 fHistAsMcPtAntiLambda(0),
175 fHistAsMcPtAntiLambdaMI(0),
176 fHistAsMcPtZoomK0(0),
177 fHistAsMcPtZoomK0MI(0),
178 fHistAsMcPtZoomLambda(0),
179 fHistAsMcPtZoomLambdaMI(0),
180 fHistAsMcProdRadiusK0(0),
181 fHistAsMcProdRadiusK0MI(0),
182 fHistAsMcProdRadiusLambda(0),
183 fHistAsMcProdRadiusLambdaMI(0),
184 fHistAsMcProdRadiusAntiLambda(0),
185 fHistAsMcProdRadiusAntiLambdaMI(0),
186 fHistAsMcProdRadiusXvsYK0s(0),
187 fHistAsMcProdRadiusXvsYK0sMI(0),
188 fHistAsMcProdRadiusXvsYLambda(0),
189 fHistAsMcProdRadiusXvsYLambdaMI(0),
190 fHistAsMcProdRadiusXvsYAntiLambda(0),
191 fHistAsMcProdRadiusXvsYAntiLambdaMI(0),
192 fHistPidMcMassK0(0),
193 fHistPidMcMassK0MI(0),
194 fHistPidMcMassLambda(0),
195 fHistPidMcMassLambdaMI(0),
196 fHistPidMcMassAntiLambda(0),
197 fHistPidMcMassAntiLambdaMI(0),
198 fHistAsMcMassK0(0),
199 fHistAsMcMassK0MI(0),
200 fHistAsMcMassLambda(0),
201 fHistAsMcMassLambdaMI(0),
202 fHistAsMcMassAntiLambda(0),
203 fHistAsMcMassAntiLambdaMI(0),
204 fHistAsMcPtVsMassK0(0),
205 fHistAsMcPtVsMassK0MI(0),
206 fHistAsMcPtVsMassLambda(0),
207 fHistAsMcPtVsMassLambdaMI(0),
208 fHistAsMcPtVsMassAntiLambda(0),
209 fHistAsMcPtVsMassAntiLambdaMI(0),
210 fHistAsMcMassVsRadiusK0(0),
211 fHistAsMcMassVsRadiusK0MI(0),
212 fHistAsMcMassVsRadiusLambda(0),
213 fHistAsMcMassVsRadiusLambdaMI(0),
214 fHistAsMcMassVsRadiusAntiLambda(0),
215 fHistAsMcMassVsRadiusAntiLambdaMI(0),
216 fHistAsMcResxK0(0),
217 fHistAsMcResyK0(0),
218 fHistAsMcReszK0(0),
219 fHistAsMcResrVsRadiusK0(0),
220 fHistAsMcReszVsRadiusK0(0),
221 fHistAsMcResxK0MI(0),
222 fHistAsMcResyK0MI(0),
223 fHistAsMcReszK0MI(0),
224 fHistAsMcResrVsRadiusK0MI(0),
225 fHistAsMcReszVsRadiusK0MI(0),
226 fHistAsMcResxLambda(0),
227 fHistAsMcResyLambda(0),
228 fHistAsMcReszLambda(0),
229 fHistAsMcResrVsRadiusLambda(0),
230 fHistAsMcReszVsRadiusLambda(0),
231 fHistAsMcResxLambdaMI(0),
232 fHistAsMcResyLambdaMI(0),
233 fHistAsMcReszLambdaMI(0),
234 fHistAsMcResrVsRadiusLambdaMI(0),
235 fHistAsMcReszVsRadiusLambdaMI(0),
236 fHistAsMcResxAntiLambda(0),
237 fHistAsMcResyAntiLambda(0),
238 fHistAsMcReszAntiLambda(0),
239 fHistAsMcResrVsRadiusAntiLambda(0),
240 fHistAsMcReszVsRadiusAntiLambda(0),
241 fHistAsMcResxAntiLambdaMI(0),
242 fHistAsMcResyAntiLambdaMI(0),
243 fHistAsMcReszAntiLambdaMI(0),
244 fHistAsMcResrVsRadiusAntiLambdaMI(0),
245 fHistAsMcReszVsRadiusAntiLambdaMI(0),
246 fHistAsMcResPtK0(0),
247 fHistAsMcResPtK0MI(0),
248 fHistAsMcResPtLambda(0),
249 fHistAsMcResPtLambdaMI(0),
250 fHistAsMcResPtAntiLambda(0),
251 fHistAsMcResPtAntiLambdaMI(0),
f81f8d5e 252 fHistAsMcResPtVsRapK0(0),
253 fHistAsMcResPtVsRapK0MI(0),
254 fHistAsMcResPtVsRapLambda(0),
255 fHistAsMcResPtVsRapLambdaMI(0),
256 fHistAsMcResPtVsRapAntiLambda(0),
257 fHistAsMcResPtVsRapAntiLambdaMI(0),
9c7b62a0 258 fHistAsMcResPtVsPtK0(0),
259 fHistAsMcResPtVsPtK0MI(0),
260 fHistAsMcResPtVsPtLambda(0),
261 fHistAsMcResPtVsPtLambdaMI(0),
262 fHistAsMcResPtVsPtAntiLambda(0),
263 fHistAsMcResPtVsPtAntiLambdaMI(0),
264 fHistAsMcMotherPdgCodeK0s(0),
265 fHistAsMcMotherPdgCodeK0sMI(0),
266 fHistAsMcMotherPdgCodeLambda(0),
267 fHistAsMcMotherPdgCodeLambdaMI(0),
268 fHistAsMcMotherPdgCodeAntiLambda(0),
269 fHistAsMcMotherPdgCodeAntiLambdaMI(0),
270 fHistAsMcPtLambdaFromSigma(0),
271 fHistAsMcPtLambdaFromSigmaMI(0),
272 fHistAsMcPtAntiLambdaFromSigma(0),
273 fHistAsMcPtAntiLambdaFromSigmaMI(0),
f81f8d5e 274 fHistAsMcSecondaryPtVsRapK0s(0),
275 fHistAsMcSecondaryPtVsRapK0sMI(0),
276 fHistAsMcSecondaryPtVsRapLambda(0),
277 fHistAsMcSecondaryPtVsRapLambdaMI(0),
278 fHistAsMcSecondaryPtVsRapAntiLambda(0),
279 fHistAsMcSecondaryPtVsRapAntiLambdaMI(0),
9c7b62a0 280 fHistAsMcSecondaryProdRadiusK0s(0),
281 fHistAsMcSecondaryProdRadiusK0sMI(0),
282 fHistAsMcSecondaryProdRadiusLambda(0),
283 fHistAsMcSecondaryProdRadiusLambdaMI(0),
284 fHistAsMcSecondaryProdRadiusAntiLambda(0),
285 fHistAsMcSecondaryProdRadiusAntiLambdaMI(0),
286 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
287 fHistAsMcSecondaryProdRadiusXvsYK0sMI(0),
288 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
289 fHistAsMcSecondaryProdRadiusXvsYLambdaMI(0),
290 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
291 fHistAsMcSecondaryProdRadiusXvsYAntiLambdaMI(0),
292 fHistAsMcSecondaryMotherPdgCodeK0s(0),
293 fHistAsMcSecondaryMotherPdgCodeK0sMI(0),
294 fHistAsMcSecondaryMotherPdgCodeLambda(0),
295 fHistAsMcSecondaryMotherPdgCodeLambdaMI(0),
296 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
297 fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI(0),
298 fHistAsMcSecondaryPtLambdaFromSigma(0),
299 fHistAsMcSecondaryPtLambdaFromSigmaMI(0),
300 fHistAsMcSecondaryPtAntiLambdaFromSigma(0),
301 fHistAsMcSecondaryPtAntiLambdaFromSigmaMI(0)
302
303{
304 // dummy Constructor
305}
306
307
308
309
310
311//________________________________________________________________________
312AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange(const char *name)
eb4c2d5b 313 : AliAnalysisTaskSE(name), fAnalysisMC(999), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infocut"), fPhysTrigSel(0), fListHist(0),
2093003d 314 fHistMCPrimaryVertexX(0),
315 fHistMCPrimaryVertexY(0),
316 fHistMCPrimaryVertexZ(0),
9c7b62a0 317 fHistMCMultiplicityPrimary(0),
318 fHistMCMultiplicityTracks(0),
319 fHistMCtracksProdRadiusK0s(0),
320 fHistMCtracksProdRadiusLambda(0),
321 fHistMCtracksProdRadiusAntiLambda(0),
322 fHistMCtracksDecayRadiusK0s(0),
323 fHistMCtracksDecayRadiusLambda(0),
324 fHistMCtracksDecayRadiusAntiLambda(0),
325 fHistMCPtAllK0s(0),
326 fHistMCPtAllLambda(0),
327 fHistMCPtAllAntiLambda(0),
328 fHistMCProdRadiusK0s(0),
329 fHistMCProdRadiusLambda(0),
330 fHistMCProdRadiusAntiLambda(0),
f81f8d5e 331 fHistMCPtK0s(0),
332 fHistMCPtLambda(0),
333 fHistMCPtAntiLambda(0),
9c7b62a0 334 fHistMCPtLambdaFromSigma(0),
335 fHistMCPtAntiLambdaFromSigma(0),
336 fHistNTimesRecK0s(0),
337 fHistNTimesRecK0sMI(0),
338 fHistNTimesRecLambda(0),
339 fHistNTimesRecLambdaMI(0),
340 fHistNTimesRecAntiLambda(0),
341 fHistNTimesRecAntiLambdaMI(0),
342 fHistNTimesRecK0sVsPt(0),
343 fHistNTimesRecK0sVsPtMI(0),
344 fHistNTimesRecLambdaVsPt(0),
345 fHistNTimesRecLambdaVsPtMI(0),
346 fHistNTimesRecAntiLambdaVsPt(0),
347 fHistNTimesRecAntiLambdaVsPtMI(0),
348 fHistTrackPerEvent(0),
349 fHistMCDaughterTrack(0),
350 fHistPrimaryVertexX(0),
351 fHistPrimaryVertexY(0),
352 fHistPrimaryVertexZ(0),
2093003d 353 fHistPrimaryVertexPosXV0events(0),
354 fHistPrimaryVertexPosYV0events(0),
355 fHistPrimaryVertexPosZV0events(0),
9c7b62a0 356 fHistDcaPosToPrimVertex(0),
357 fHistDcaNegToPrimVertex(0),
358 fHistDcaPosToPrimVertexZoom(0),
359 fHistDcaNegToPrimVertexZoom(0),
360 fHistRadiusV0(0),
361 fHistDecayLengthV0(0),
362 fHistDcaV0Daughters(0),
363 fHistChi2(0),
364 fHistCosPointAngle(0),
365 fHistCosPointAngleZoom(0),
366 fHistProdRadius(0),
367 fHistProdRadiusMI(0),
e2e56010 368 fHistV0Multiplicity(0),
369 fHistV0MultiplicityMI(0),
2093003d 370 fHistChi2KFBeforeCutK0s(0),
371 fHistChi2KFBeforeCutLambda(0),
372 fHistChi2KFBeforeCutAntiLambda(0),
373 fHistChi2KFAfterCutK0s(0),
374 fHistChi2KFAfterCutLambda(0),
375 fHistChi2KFAfterCutAntiLambda(0),
9c7b62a0 376 fHistMassK0(0),
377 fHistMassK0MI(0),
378 fHistMassLambda(0),
379 fHistMassLambdaMI(0),
380 fHistMassAntiLambda(0),
381 fHistMassAntiLambdaMI(0),
382 fHistMassVsRadiusK0(0),
383 fHistMassVsRadiusK0MI(0),
384 fHistMassVsRadiusLambda(0),
385 fHistMassVsRadiusLambdaMI(0),
386 fHistMassVsRadiusAntiLambda(0),
387 fHistMassVsRadiusAntiLambdaMI(0),
388 fHistPtVsMassK0(0),
389 fHistPtVsMassK0MI(0),
390 fHistPtVsMassLambda(0),
391 fHistPtVsMassLambdaMI(0),
392 fHistPtVsMassAntiLambda(0),
393 fHistPtVsMassAntiLambdaMI(0),
394 fHistArmenterosPodolanski(0),
395 fHistArmenterosPodolanskiMI(0),
396 fHistNsigmaPosPionAntiLambda(0),
397 fHistNsigmaNegProtonAntiLambda(0),
398 fHistNsigmaPosProtonLambda(0),
399 fHistNsigmaNegPionLambda(0),
400 fHistNsigmaPosPionK0(0),
401 fHistNsigmaNegPionK0(0),
f81f8d5e 402 fHistAsMcRapK0(0),
403 fHistAsMcRapK0MI(0),
404 fHistAsMcRapLambda(0),
405 fHistAsMcRapLambdaMI(0),
406 fHistAsMcRapAntiLambda(0),
407 fHistAsMcRapAntiLambdaMI(0),
9c7b62a0 408 fHistAsMcPtK0(0),
409 fHistAsMcPtK0MI(0),
410 fHistAsMcPtLambda(0),
411 fHistAsMcPtLambdaMI(0),
412 fHistAsMcPtAntiLambda(0),
413 fHistAsMcPtAntiLambdaMI(0),
414 fHistAsMcPtZoomK0(0),
415 fHistAsMcPtZoomK0MI(0),
416 fHistAsMcPtZoomLambda(0),
417 fHistAsMcPtZoomLambdaMI(0),
418 fHistAsMcProdRadiusK0(0),
419 fHistAsMcProdRadiusK0MI(0),
420 fHistAsMcProdRadiusLambda(0),
421 fHistAsMcProdRadiusLambdaMI(0),
422 fHistAsMcProdRadiusAntiLambda(0),
423 fHistAsMcProdRadiusAntiLambdaMI(0),
424 fHistAsMcProdRadiusXvsYK0s(0),
425 fHistAsMcProdRadiusXvsYK0sMI(0),
426 fHistAsMcProdRadiusXvsYLambda(0),
427 fHistAsMcProdRadiusXvsYLambdaMI(0),
428 fHistAsMcProdRadiusXvsYAntiLambda(0),
429 fHistAsMcProdRadiusXvsYAntiLambdaMI(0),
430 fHistPidMcMassK0(0),
431 fHistPidMcMassK0MI(0),
432 fHistPidMcMassLambda(0),
433 fHistPidMcMassLambdaMI(0),
434 fHistPidMcMassAntiLambda(0),
435 fHistPidMcMassAntiLambdaMI(0),
436 fHistAsMcMassK0(0),
437 fHistAsMcMassK0MI(0),
438 fHistAsMcMassLambda(0),
439 fHistAsMcMassLambdaMI(0),
440 fHistAsMcMassAntiLambda(0),
441 fHistAsMcMassAntiLambdaMI(0),
442 fHistAsMcPtVsMassK0(0),
443 fHistAsMcPtVsMassK0MI(0),
444 fHistAsMcPtVsMassLambda(0),
445 fHistAsMcPtVsMassLambdaMI(0),
446 fHistAsMcPtVsMassAntiLambda(0),
447 fHistAsMcPtVsMassAntiLambdaMI(0),
448 fHistAsMcMassVsRadiusK0(0),
449 fHistAsMcMassVsRadiusK0MI(0),
450 fHistAsMcMassVsRadiusLambda(0),
451 fHistAsMcMassVsRadiusLambdaMI(0),
452 fHistAsMcMassVsRadiusAntiLambda(0),
453 fHistAsMcMassVsRadiusAntiLambdaMI(0),
454 fHistAsMcResxK0(0),
455 fHistAsMcResyK0(0),
456 fHistAsMcReszK0(0),
457 fHistAsMcResrVsRadiusK0(0),
458 fHistAsMcReszVsRadiusK0(0),
459 fHistAsMcResxK0MI(0),
460 fHistAsMcResyK0MI(0),
461 fHistAsMcReszK0MI(0),
462 fHistAsMcResrVsRadiusK0MI(0),
463 fHistAsMcReszVsRadiusK0MI(0),
464 fHistAsMcResxLambda(0),
465 fHistAsMcResyLambda(0),
466 fHistAsMcReszLambda(0),
467 fHistAsMcResrVsRadiusLambda(0),
468 fHistAsMcReszVsRadiusLambda(0),
469 fHistAsMcResxLambdaMI(0),
470 fHistAsMcResyLambdaMI(0),
471 fHistAsMcReszLambdaMI(0),
472 fHistAsMcResrVsRadiusLambdaMI(0),
473 fHistAsMcReszVsRadiusLambdaMI(0),
474 fHistAsMcResxAntiLambda(0),
475 fHistAsMcResyAntiLambda(0),
476 fHistAsMcReszAntiLambda(0),
477 fHistAsMcResrVsRadiusAntiLambda(0),
478 fHistAsMcReszVsRadiusAntiLambda(0),
479 fHistAsMcResxAntiLambdaMI(0),
480 fHistAsMcResyAntiLambdaMI(0),
481 fHistAsMcReszAntiLambdaMI(0),
482 fHistAsMcResrVsRadiusAntiLambdaMI(0),
483 fHistAsMcReszVsRadiusAntiLambdaMI(0),
484 fHistAsMcResPtK0(0),
485 fHistAsMcResPtK0MI(0),
486 fHistAsMcResPtLambda(0),
487 fHistAsMcResPtLambdaMI(0),
488 fHistAsMcResPtAntiLambda(0),
489 fHistAsMcResPtAntiLambdaMI(0),
f81f8d5e 490 fHistAsMcResPtVsRapK0(0),
491 fHistAsMcResPtVsRapK0MI(0),
492 fHistAsMcResPtVsRapLambda(0),
493 fHistAsMcResPtVsRapLambdaMI(0),
494 fHistAsMcResPtVsRapAntiLambda(0),
495 fHistAsMcResPtVsRapAntiLambdaMI(0),
9c7b62a0 496 fHistAsMcResPtVsPtK0(0),
497 fHistAsMcResPtVsPtK0MI(0),
498 fHistAsMcResPtVsPtLambda(0),
499 fHistAsMcResPtVsPtLambdaMI(0),
500 fHistAsMcResPtVsPtAntiLambda(0),
501 fHistAsMcResPtVsPtAntiLambdaMI(0),
502 fHistAsMcMotherPdgCodeK0s(0),
503 fHistAsMcMotherPdgCodeK0sMI(0),
504 fHistAsMcMotherPdgCodeLambda(0),
505 fHistAsMcMotherPdgCodeLambdaMI(0),
506 fHistAsMcMotherPdgCodeAntiLambda(0),
507 fHistAsMcMotherPdgCodeAntiLambdaMI(0),
508 fHistAsMcPtLambdaFromSigma(0),
509 fHistAsMcPtLambdaFromSigmaMI(0),
510 fHistAsMcPtAntiLambdaFromSigma(0),
511 fHistAsMcPtAntiLambdaFromSigmaMI(0),
f81f8d5e 512 fHistAsMcSecondaryPtVsRapK0s(0),
513 fHistAsMcSecondaryPtVsRapK0sMI(0),
514 fHistAsMcSecondaryPtVsRapLambda(0),
515 fHistAsMcSecondaryPtVsRapLambdaMI(0),
516 fHistAsMcSecondaryPtVsRapAntiLambda(0),
517 fHistAsMcSecondaryPtVsRapAntiLambdaMI(0),
9c7b62a0 518 fHistAsMcSecondaryProdRadiusK0s(0),
519 fHistAsMcSecondaryProdRadiusK0sMI(0),
520 fHistAsMcSecondaryProdRadiusLambda(0),
521 fHistAsMcSecondaryProdRadiusLambdaMI(0),
522 fHistAsMcSecondaryProdRadiusAntiLambda(0),
523 fHistAsMcSecondaryProdRadiusAntiLambdaMI(0),
524 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
525 fHistAsMcSecondaryProdRadiusXvsYK0sMI(0),
526 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
527 fHistAsMcSecondaryProdRadiusXvsYLambdaMI(0),
528 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
529 fHistAsMcSecondaryProdRadiusXvsYAntiLambdaMI(0),
530 fHistAsMcSecondaryMotherPdgCodeK0s(0),
531 fHistAsMcSecondaryMotherPdgCodeK0sMI(0),
532 fHistAsMcSecondaryMotherPdgCodeLambda(0),
533 fHistAsMcSecondaryMotherPdgCodeLambdaMI(0),
534 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
535 fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI(0),
536 fHistAsMcSecondaryPtLambdaFromSigma(0),
537 fHistAsMcSecondaryPtLambdaFromSigmaMI(0),
538 fHistAsMcSecondaryPtAntiLambdaFromSigma(0),
539 fHistAsMcSecondaryPtAntiLambdaFromSigmaMI(0)
540
541{
542 // Constructor
543 // Define output slots only here
544 // Output slot #1 writes into a TList container
545 DefineOutput(1, TList::Class());
546}
547
548//________________________________________________________________________
549void AliAnalysisTaskPerformanceStrange::UserCreateOutputObjects()
550{
2093003d 551 // Events selection and trigger
552 fPhysTrigSel = new AliPhysicsSelection();
9c7b62a0 553
2093003d 554 // Create histograms
9c7b62a0 555 fListHist = new TList();
556 //AliLog::SetGlobalLogLevel(AliLog::kError);
557
558 // Bo: tbd: condition before allocation (i.e. if (!fHistMCMultiplicityPrimary){...} for each histo...
559
2093003d 560
561
9c7b62a0 562 //***************
563 // MC histograms
564 //***************
2093003d 565
566 // Primary Vertex:
567 fHistMCPrimaryVertexX = new TH1F("h1MCPrimaryVertexX", "MC Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
568 fListHist->Add(fHistMCPrimaryVertexX);
569
570 fHistMCPrimaryVertexY = new TH1F("h1MCPrimaryVertexY", "MC Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
571 fListHist->Add(fHistMCPrimaryVertexY);
572
573 fHistMCPrimaryVertexZ = new TH1F("h1MCPrimaryVertexZ", "MC Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
574 fListHist->Add(fHistMCPrimaryVertexZ);
9c7b62a0 575
576 // Multiplicity
577 fHistMCMultiplicityPrimary = new TH1F("h1MCMultiplicityPrimary", "MC Primary Particles;NPrimary;Count", 201, -0.5, 200.5);
578 fListHist->Add(fHistMCMultiplicityPrimary);
579
580 fHistMCMultiplicityTracks = new TH1F("h1MCMultiplicityTracks", "MC Tracks;Ntracks;Count", 201, -0.5, 200.5);
581 fListHist->Add(fHistMCMultiplicityTracks);
582
583 // Production Radius of non-primary particles:
584 fHistMCtracksProdRadiusK0s = new TH2F("h2MCtracksProdRadiusK0s","Non-primary MC K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
585 fListHist->Add(fHistMCtracksProdRadiusK0s);
586
587 fHistMCtracksProdRadiusLambda = new TH2F("h2MCtracksProdRadiusLambda","Non-primary MC #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
588 fListHist->Add(fHistMCtracksProdRadiusLambda);
589
590 fHistMCtracksProdRadiusAntiLambda = new TH2F("h2MCtracksProdRadiusAntiLambda","Non-primary MC #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
591 fListHist->Add(fHistMCtracksProdRadiusAntiLambda);
592
593 // Decay Radius of non-primary particles:
594 fHistMCtracksDecayRadiusK0s = new TH1F("h1MCtracksDecayRadiusK0s","Non-primary MC K^{0} Decay Radius;r (cm)",101,-1,100);
595 fListHist->Add(fHistMCtracksDecayRadiusK0s);
596
597 fHistMCtracksDecayRadiusLambda = new TH1F("h1MCtracksDecayRadiusLambda","Non-primary MC #Lambda^{0} Decay Radius;r (cm)",101,-1,100);
598 fListHist->Add(fHistMCtracksDecayRadiusLambda);
599
600 fHistMCtracksDecayRadiusAntiLambda = new TH1F("h1MCtracksDecayRadiusAntiLambda","Non-primary #bar{#Lambda}^{0} Decay Radius;r (cm)",100,1,101);
601 fListHist->Add(fHistMCtracksDecayRadiusAntiLambda);
602
603 // Pt Distribution of non-primary particles:
2093003d 604 fHistMCPtAllK0s = new TH1F("h1MCPtAllK0s", "Non-primary MC K^{0};p_{t} (GeV/c);Counts",200,0,10);
9c7b62a0 605 fListHist->Add(fHistMCPtAllK0s);
606
2093003d 607 fHistMCPtAllLambda = new TH1F("h1MCPtAllLambda", "Non-primary MC #Lambda^{0};p_{t} (GeV/c);Counts",200,0,10);
9c7b62a0 608 fListHist->Add(fHistMCPtAllLambda);
609
2093003d 610 fHistMCPtAllAntiLambda = new TH1F("h1MCPtAllAntiLambda", "Non-primary MC #bar{#Lambda}^{0};p_{t} (GeV/c);Counts",200,0,10);
9c7b62a0 611 fListHist->Add(fHistMCPtAllAntiLambda);
612
613 // Production Radius
614 fHistMCProdRadiusK0s = new TH1F("h1MCProdRadiusK0s", "MC K^{0} Production Radius;r (cm);Count", 400, -2, 2);
615 fListHist->Add(fHistMCProdRadiusK0s);
616
617 fHistMCProdRadiusLambda = new TH1F("h1MCProdRadiusLambda", "MC #Lambda^{0} Production Radius;r (cm);Count", 400, -2, 2);
618 fListHist->Add(fHistMCProdRadiusLambda);
619
620 fHistMCProdRadiusAntiLambda = new TH1F("h1MCProdRadiusAntiLambda", "MC #bar{#Lambda}^{0} Production Radius;r (cm);Count", 400, -2, 2);
621 fListHist->Add(fHistMCProdRadiusAntiLambda);
622
623
624 // Pt and rapidity distribution:
f81f8d5e 625 fHistMCPtK0s = new TH1F("h1MCPtK0s", "K^{0};p_{t} (GeV/c)",200,0,10);
626 fListHist->Add(fHistMCPtK0s);
9c7b62a0 627
f81f8d5e 628 fHistMCPtLambda = new TH1F("h1MCPtLambda", "#Lambda^{0};p_{t} (GeV/c)",200,0,10);
629 fListHist->Add(fHistMCPtLambda);
9c7b62a0 630
f81f8d5e 631 fHistMCPtAntiLambda = new TH1F("h1MCPtAntiLambda", "#bar{#Lambda}^{0};p_{t} (GeV/c)",200,0,10);
632 fListHist->Add(fHistMCPtAntiLambda);
9c7b62a0 633
634 // Pt distribution of Lambda coming from Sigma decay
2093003d 635 fHistMCPtLambdaFromSigma = new TH1F("h1MCPtLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",200,0,10);
9c7b62a0 636 fListHist->Add(fHistMCPtLambdaFromSigma);
637
2093003d 638 fHistMCPtAntiLambdaFromSigma = new TH1F("h1MCPtAntiLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",200,0,10);
9c7b62a0 639 fListHist->Add(fHistMCPtAntiLambdaFromSigma);
640
641 // Multiple reconstruction studies
642 fHistNTimesRecK0s = new TH1F("h1NTimesRecK0s","number of times a K0s is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
643 fListHist->Add(fHistNTimesRecK0s);
644 fHistNTimesRecK0sMI = new TH1F("h1NTimesRecK0sMI","number of times a K0s MI is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
645 fListHist->Add(fHistNTimesRecK0sMI);
646
647 fHistNTimesRecLambda = new TH1F("h1NTimesRecLambda","number of times a Lambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
648 fListHist->Add(fHistNTimesRecLambda);
649 fHistNTimesRecLambdaMI = new TH1F("h1NTimesRecLambdaMI","number of times a Lambda MI is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
650 fListHist->Add(fHistNTimesRecLambdaMI);
651
652 fHistNTimesRecAntiLambda = new TH1F("h1NTimesRecAntiLambda","number of times an AntiLambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
653 fListHist->Add(fHistNTimesRecAntiLambda);
654 fHistNTimesRecAntiLambdaMI = new TH1F("h1NTimesRecAntiLambdaMI","number of times an AntiLambda MI is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
655 fListHist->Add(fHistNTimesRecAntiLambdaMI);
656
657 fHistNTimesRecK0sVsPt = new TH2F("h2NTimesRecK0sVsPt","NTimes versus Pt, K^{0} in -1<y<1;p_{t} (GeV/c);number of times",75,0,15,5,-0.5,4.5);
658 fListHist->Add(fHistNTimesRecK0sVsPt);
659 fHistNTimesRecK0sVsPtMI = new TH2F("h2NTimesRecK0sVsPtMI","NTimes versus Pt, K^{0}, on-the-fly finder, in -1<y<1;p_{t} (GeV/c);number of times",75,0,15,5,-0.5,4.5);
660 fListHist->Add(fHistNTimesRecK0sVsPtMI);
661
662 fHistNTimesRecLambdaVsPt = new TH2F("h2NTimesRecLambdaVsPt","NTimes versus Pt, #Lambda^{0} in -1<y<1;p_{t} (GeV/c);number of times",75,0,15,5,-0.5,4.5);
663 fListHist->Add(fHistNTimesRecLambdaVsPt);
664 fHistNTimesRecLambdaVsPtMI = new TH2F("h2NTimesRecLambdaVsPtMI","NTimes versus Pt, #Lambda^{0} on-the-fly finder in -1<y<1;p_{t} (GeV/c);number of times",75,0,15,5,-0.5,4.5);
665 fListHist->Add(fHistNTimesRecLambdaVsPtMI);
666
667 fHistNTimesRecAntiLambdaVsPt = new TH2F("h2NTimesRecAntiLambdaVsPt","NTimes versus Pt, #bar{#Lambda}^{0} in -1<y<1;p_{t} (GeV/c);number of times",75,0,15,5,-0.5,4.5);
668 fListHist->Add(fHistNTimesRecAntiLambdaVsPt);
669 fHistNTimesRecAntiLambdaVsPtMI= new TH2F("h2NTimesRecAntiLambdaVsPtMI","NTimes versus Pt, #bar{#Lambda}^{0}, on-the-fly finder in -1<y<1;p_{t} (GeV/c);number of times",75,0,15,5,-0.5,4.5);
670 fListHist->Add(fHistNTimesRecAntiLambdaVsPtMI);
671
672
673
674 //***********************************
675 // Reconstructed particles histograms
676 //***********************************
677
678 // multiplicity
679 fHistTrackPerEvent = new TH1F("h1TrackPerEvent", "Tracks per event;Number of Tracks;Number of Events",50,0,50);
680 fListHist->Add(fHistTrackPerEvent);
681
682 fHistMCDaughterTrack = new TH1F("h1MCDaughterTrack","Distribution of mc id for daughters;id tags;Counts",15,0,15);
683 fListHist->Add(fHistMCDaughterTrack);
684
685 // Primary Vertex:
686 fHistPrimaryVertexX = new TH1F("h1PrimaryVertexX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
687 fListHist->Add(fHistPrimaryVertexX);
688
689 fHistPrimaryVertexY = new TH1F("h1PrimaryVertexY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
690 fListHist->Add(fHistPrimaryVertexY);
691
2093003d 692 fHistPrimaryVertexZ = new TH1F("h1PrimaryVertexZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
9c7b62a0 693 fListHist->Add(fHistPrimaryVertexZ);
694
2093003d 695 // Primary Vertex in events with V0 candidates:
696 fHistPrimaryVertexPosXV0events = new TH1F("h1PrimaryVertexPosXV0events", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
697 fListHist->Add(fHistPrimaryVertexPosXV0events);
698 fHistPrimaryVertexPosYV0events = new TH1F("h1PrimaryVertexPosYV0events", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
699 fListHist->Add(fHistPrimaryVertexPosYV0events);
700 fHistPrimaryVertexPosZV0events = new TH1F("h1PrimaryVertexPosZV0events", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20.0,20.0);
701 fListHist->Add(fHistPrimaryVertexPosZV0events);
702
9c7b62a0 703 // Cut checks:
704 fHistDcaPosToPrimVertex = new TH2F("h2DcaPosToPrimVertex", "Positive V0 daughter;dca(cm);Status",500,0,5,2,-0.5,1.5);
705 fListHist->Add(fHistDcaPosToPrimVertex);
706
707 fHistDcaNegToPrimVertex = new TH2F("h2DcaNegToPrimVertex", "Negative V0 daughter;dca(cm);Status",500,0,5,2,-0.5,1.5);
708 fListHist->Add(fHistDcaNegToPrimVertex);
709
710 fHistDcaPosToPrimVertexZoom = new TH2F("h2DcaPosToPrimVertexZoom", "Positive V0 daughter;dca(cm);Status",100,0,0.1,2,-0.5,1.5);
711 fListHist->Add(fHistDcaPosToPrimVertexZoom);
712
713 fHistDcaNegToPrimVertexZoom = new TH2F("h2DcaNegToPrimVertexZoom", "Negative V0 daughter;dca(cm);Status",100,0,0.1,2,-0.5,1.5);
714 fListHist->Add(fHistDcaNegToPrimVertexZoom);
715
716 fHistRadiusV0 = new TH2F("h2RadiusV0", "Radius;Radius(cm);Status",1200,0,120,2,-0.5,1.5);
717 fListHist->Add(fHistRadiusV0);
718
719 fHistDecayLengthV0 = new TH2F("h2DecayLengthV0", "V0s decay Length;decay length(cm);Status", 240, 0, 120,2,-0.5,1.5);
720 fListHist->Add(fHistDecayLengthV0);
721
722 fHistDcaV0Daughters = new TH2F("h2DcaV0Daughters", "DCA between daughters;dca(cm);Status", 160, 0, 4,2,-0.5,1.5);
723 fListHist->Add(fHistDcaV0Daughters);
724
725 fHistChi2 = new TH2F("h2Chi2", "V0s chi2;chi2;Status", 33, 0, 33,2,-0.5,1.5);
726 fListHist->Add(fHistChi2);
727
728 fHistCosPointAngle = new TH2F("h2CosPointAngle", "Cosine of V0's pointing angle", 100,0,1,2,-0.5,1.5);
729 fListHist->Add(fHistCosPointAngle);
730
731 fHistCosPointAngleZoom = new TH2F("h2CosPointAngleZoom", "Cosine of V0's pointing angle", 100,0.9,1,2,-0.5,1.5);
732 fListHist->Add(fHistCosPointAngleZoom);
733
734 fHistProdRadius = new TH2F("h2ProdRadius", "Production position;x (cm);y (cm)", 100,-50,50,100,-50,50);
735 fListHist->Add(fHistProdRadius);
736
737 fHistProdRadiusMI = new TH2F("h2ProdRadiusMI", "Production position, V0s MI;x (cm);y (cm)", 100,-50,50,100,-50,50);
738 fListHist->Add(fHistProdRadiusMI);
739
e2e56010 740 // V0 Multiplicity
741 if (!fHistV0Multiplicity) {
742 if (fCollidingSystems)
743 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 200, 0, 40000);
744 else
745 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 10, 0, 10);
746 fListHist->Add(fHistV0Multiplicity);
747 }
748
749 if (!fHistV0MultiplicityMI) {
750 if (fCollidingSystems)
751 fHistV0MultiplicityMI = new TH1F("fHistV0MultiplicityMI", "Multiplicity distribution;Number of On-the-fly V0s;Events", 200, 0, 40000);
752 else
753 fHistV0MultiplicityMI = new TH1F("fHistV0MultiplicityMI", "Multiplicity distribution;Number of On-the-fly V0s;Events", 10, 0, 10);
754 fListHist->Add(fHistV0MultiplicityMI);
755 }
756
2093003d 757 // AliKF Chi2
758 fHistChi2KFBeforeCutK0s = new TH2F("h1Chi2KFBeforeCutK0s", "K^{0} candidates;#Chi^{2});Counts", 250, 0, 50, 2,-0.5,1.5);
759 fListHist->Add(fHistChi2KFBeforeCutK0s);
760 fHistChi2KFBeforeCutLambda = new TH2F("h1Chi2KFBeforeCutLambda", "#Lambda^{0} candidates;#Chi^{2};Counts", 250, 0, 50, 2,-0.5,1.5);
761 fListHist->Add(fHistChi2KFBeforeCutLambda);
762 fHistChi2KFBeforeCutAntiLambda = new TH2F("h1Chi2KFBeforeCutAntiLambda", "#bar{#Lambda}^{0} candidates;#Chi^{2};Counts", 250, 0, 50, 2,-0.5,1.5);
763 fListHist->Add(fHistChi2KFBeforeCutAntiLambda);
764
765 fHistChi2KFAfterCutK0s = new TH2F("h1Chi2KFAfterCutK0s", "K^{0} candidates;#Chi^{2});Counts", 250, 0, 50, 2,-0.5,1.5);
766 fListHist->Add(fHistChi2KFAfterCutK0s);
767 fHistChi2KFAfterCutLambda = new TH2F("h1Chi2KFAfterCutLambda", "#Lambda^{0} candidates;#Chi^{2};Counts", 250, 0, 50, 2,-0.5,1.5);
768 fListHist->Add(fHistChi2KFAfterCutLambda);
769 fHistChi2KFAfterCutAntiLambda = new TH2F("h1Chi2KFAfterCutAntiLambda", "#bar{#Lambda}^{0} candidates;#Chi^{2};Counts", 250, 0, 50, 2,-0.5,1.5);
770 fListHist->Add(fHistChi2KFAfterCutAntiLambda);
9c7b62a0 771
772 // Mass:
773 fHistMassK0 = new TH1F("h1MassK0", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
774 fListHist->Add(fHistMassK0);
775 fHistMassK0MI = new TH1F("h1MassK0MI", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
776 fListHist->Add(fHistMassK0MI);
777
778 fHistMassLambda = new TH1F("h1MassLambda", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
779 fListHist->Add(fHistMassLambda);
780 fHistMassLambdaMI = new TH1F("h1MassLambdaMI", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
781 fListHist->Add(fHistMassLambdaMI);
782
783 fHistMassAntiLambda = new TH1F("h1MassAntiLambda", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
784 fListHist->Add(fHistMassAntiLambda);
785 fHistMassAntiLambdaMI = new TH1F("h1MassAntiLambdaMI", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
786 fListHist->Add(fHistMassAntiLambdaMI);
787
788 // invariant mass vs radius
789 const Double_t radius[10] = {0.0,2.5,2.9,3.9,7.6,15.0,23.9,37.8,42.8,100.0};
790 Int_t lNbinRadius = 9;
791 Int_t lNbinInvMassLambda = 300;
792
793 fHistMassVsRadiusK0 = new TH2F("h2MassVsRadiusK0", "K^{0} candidates;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 200, 0.4, 0.6);
794 fListHist->Add(fHistMassVsRadiusK0);
795
796 fHistMassVsRadiusK0MI = new TH2F("h2MassVsRadiusK0MI", "K^{0} MI candidates;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 200, 0.4, 0.6);
797 fListHist->Add(fHistMassVsRadiusK0MI);
798
799 fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
800 fListHist->Add(fHistMassVsRadiusLambda);
801
802 fHistMassVsRadiusLambdaMI = new TH2F("h2MassVsRadiusLambdaMI", "#Lambda MI candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
803 fListHist->Add(fHistMassVsRadiusLambdaMI);
804
805 fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
806 fListHist->Add(fHistMassVsRadiusAntiLambda);
807
808 fHistMassVsRadiusAntiLambdaMI = new TH2F("h2MassVsRadiusAntiLambdaMI", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
809 fListHist->Add(fHistMassVsRadiusAntiLambdaMI);
810
811 // Pt Vs Mass
2093003d 812 fHistPtVsMassK0 = new TH2F("h2PtVsMassK0","K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",200, 0.4, 0.6,200,0,10);
9c7b62a0 813 fListHist->Add(fHistPtVsMassK0);
2093003d 814 fHistPtVsMassK0MI = new TH2F("h2PtVsMassK0MI","K^{0} MIcandidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",200, 0.4, 0.6,200,0,10);
9c7b62a0 815 fListHist->Add(fHistPtVsMassK0MI);
816
2093003d 817 fHistPtVsMassLambda = new TH2F("h2PtVsMassLambda","#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,200,0,10);
9c7b62a0 818 fListHist->Add(fHistPtVsMassLambda);
2093003d 819 fHistPtVsMassLambdaMI = new TH2F("h2PtVsMassLambdaMI","#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,200,0,10);
9c7b62a0 820 fListHist->Add(fHistPtVsMassLambdaMI);
821
2093003d 822 fHistPtVsMassAntiLambda = new TH2F("h2PtVsMassAntiLambda","#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,200,0,10);
9c7b62a0 823 fListHist->Add(fHistPtVsMassAntiLambda);
2093003d 824 fHistPtVsMassAntiLambdaMI = new TH2F("h2PtVsMassAntiLambdaMI","#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,200,0,10);
9c7b62a0 825 fListHist->Add(fHistPtVsMassAntiLambdaMI);
826
827
828 fHistArmenterosPodolanski = new TH2F("h2ArmenterosPodolanski","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5);
829 fHistArmenterosPodolanskiMI = new TH2F("h2ArmenterosPodolanskiMI","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5);
830
831
832 //PID
833 fHistNsigmaPosPionAntiLambda = new TH1F("h1NsigmaPosPionAntiLambda", "Positive daughter of Antilambda;NsigmaPion;Counts",25,0,5);
834 fListHist->Add(fHistNsigmaPosPionAntiLambda);
835
836 fHistNsigmaNegProtonAntiLambda = new TH1F("h1NsigmaNegProtonAntiLambda", "Negative daughter of Antilambda;NsigmaProton;Counts",25,0,5);
837 fListHist->Add(fHistNsigmaNegProtonAntiLambda);
838
839 fHistNsigmaPosProtonLambda = new TH1F("h1NsigmaPosProtonLambda", "Positive daughter of Lambda;NsigmaProton;Counts",25,0,5);
840 fListHist->Add(fHistNsigmaPosProtonLambda);
841
842 fHistNsigmaNegPionLambda = new TH1F("h1NsigmaNegPionLambda", "Negative daughter of Lambda;NsigmaPion;Counts",25,0,5);
843 fListHist->Add(fHistNsigmaNegPionLambda);
844
845 fHistNsigmaPosPionK0 = new TH1F("h1NsigmaPosPionK0", "Positive daughter of K0s;NsigmaPion;Counts",25,0,5);
846 fListHist->Add(fHistNsigmaPosPionK0);
847
848 fHistNsigmaNegPionK0 = new TH1F("h1NsigmaNegPionK0", "Negative daughter of K0s;NsigmaPion;Counts",25,0,5);
849 fListHist->Add(fHistNsigmaNegPionK0);
850
851
852 //********************************
853 // Associated particles histograms
854 //********************************
855
f81f8d5e 856 // Rap distribution
857 fHistAsMcRapK0 = new TH1F("h1AsMcRapK0", "K^{0} associated;eta;Counts", 60, -1.5, 1.5);
858 fListHist->Add(fHistAsMcRapK0);
859 fHistAsMcRapK0MI = new TH1F("h1AsMcRapK0MI", "K^{0} associated;eta;Counts", 60, -1.5, 1.5);
860 fListHist->Add(fHistAsMcRapK0MI);
2093003d 861
f81f8d5e 862 fHistAsMcRapLambda = new TH1F("h1AsMcRapLambda", "#Lambda^{0} associated;eta;Counts", 60, -1.5, 1.5);
863 fListHist->Add(fHistAsMcRapLambda);
864 fHistAsMcRapLambdaMI = new TH1F("h1AsMcRapLambdaMI", "#Lambda^{0} associated;eta;Counts", 60, -1.5, 1.5);
865 fListHist->Add(fHistAsMcRapLambdaMI);
2093003d 866
f81f8d5e 867 fHistAsMcRapAntiLambda = new TH1F("h1AsMcRapAntiLambda", "#bar{#Lambda}^{0} associated;eta;Counts", 60, -1.5, 1.5);
868 fListHist->Add(fHistAsMcRapAntiLambda);
869 fHistAsMcRapAntiLambdaMI = new TH1F("h1AsMcRapAntiLambdaMI", "#bar{#Lambda}^{0} associated;eta;Counts", 60, -1.5, 1.5);
870 fListHist->Add(fHistAsMcRapAntiLambdaMI);
2093003d 871
872
9c7b62a0 873 //Pt distribution
2093003d 874 fHistAsMcPtK0 = new TH1F("h1AsMcPtK0", "K^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10);
9c7b62a0 875 fListHist->Add(fHistAsMcPtK0);
2093003d 876 fHistAsMcPtK0MI = new TH1F("h1AsMcPtK0MI", "K^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10);
9c7b62a0 877 fListHist->Add(fHistAsMcPtK0MI);
878
2093003d 879 fHistAsMcPtLambda = new TH1F("h1AsMcPtLambda", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10);
9c7b62a0 880 fListHist->Add(fHistAsMcPtLambda);
2093003d 881 fHistAsMcPtLambdaMI = new TH1F("h1AsMcPtLambdaMI", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10);
9c7b62a0 882 fListHist->Add(fHistAsMcPtLambdaMI);
883
2093003d 884 fHistAsMcPtAntiLambda = new TH1F("h1AsMcPtAntiLambda", "#bar{#Lambda}^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10);
9c7b62a0 885 fListHist->Add(fHistAsMcPtAntiLambda);
2093003d 886 fHistAsMcPtAntiLambdaMI = new TH1F("h1AsMcPtAntiLambdaMI", "#bar{#Lambda}^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10);
9c7b62a0 887 fListHist->Add(fHistAsMcPtAntiLambdaMI);
888
889 fHistAsMcPtZoomK0 = new TH1F("h1AsMcPtZoomK0", "K^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
890 fListHist->Add(fHistAsMcPtZoomK0);
891 fHistAsMcPtZoomK0MI = new TH1F("h1AsMcPtZoomK0MI", "K^{0} MI candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
892 fListHist->Add(fHistAsMcPtZoomK0MI);
893
894 fHistAsMcPtZoomLambda = new TH1F("h1AsMcPtZoomLambda", "#Lambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
895 fListHist->Add(fHistAsMcPtZoomLambda);
896 fHistAsMcPtZoomLambdaMI = new TH1F("h1AsMcPtZoomLambdaMI", "#Lambda^{0} MI candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
897 fListHist->Add(fHistAsMcPtZoomLambdaMI);
898
899
900 // Radius distribution
901 fHistAsMcProdRadiusK0 = new TH1F("h1AsMcProdRadiusK0", "K^{0} associated;r (cm);Counts", 500, 0, 100);
902 fListHist->Add(fHistAsMcProdRadiusK0);
903 fHistAsMcProdRadiusK0MI = new TH1F("h1AsMcProdRadiusK0MI", "K^{0} associated;r (cm);Counts", 500, 0, 100);
904 fListHist->Add(fHistAsMcProdRadiusK0MI);
905
906 fHistAsMcProdRadiusLambda = new TH1F("h1AsMcProdRadiusLambda", "#Lambda^{0} associated;r (cm);Counts", 500, 0, 100);
907 fListHist->Add(fHistAsMcProdRadiusLambda);
908 fHistAsMcProdRadiusLambdaMI = new TH1F("h1AsMcProdRadiusLambdaMI", "#Lambda^{0} associated;r (cm);Counts", 500, 0, 100);
909 fListHist->Add(fHistAsMcProdRadiusLambdaMI);
910
911 fHistAsMcProdRadiusAntiLambda = new TH1F("h1AsMcProdRadiusAntiLambda", "#bar{#Lambda}^{0} associated;r (cm);Counts", 500, 0, 100);
912 fListHist->Add(fHistAsMcProdRadiusAntiLambda);
913 fHistAsMcProdRadiusAntiLambdaMI = new TH1F("h1AsMcProdRadiusAntiLambdaMI", "#bar{#Lambda}^{0} associated;r (cm);Counts", 500, 0, 100);
914 fListHist->Add(fHistAsMcProdRadiusAntiLambdaMI);
915
916 fHistAsMcProdRadiusXvsYK0s = new TH2F("h2AsMcProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
917 fListHist->Add(fHistAsMcProdRadiusXvsYK0s);
918 fHistAsMcProdRadiusXvsYK0sMI = new TH2F("h2AsMcProdRadiusXvsYK0sMI","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
919 fListHist->Add(fHistAsMcProdRadiusXvsYK0sMI);
920
921 fHistAsMcProdRadiusXvsYLambda = new TH2F("h2AsMcProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
922 fListHist->Add(fHistAsMcProdRadiusXvsYLambda);
923 fHistAsMcProdRadiusXvsYLambdaMI = new TH2F("h2AsMcProdRadiusXvsYLambdaMI","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
924 fListHist->Add(fHistAsMcProdRadiusXvsYLambdaMI);
925
926 fHistAsMcProdRadiusXvsYAntiLambda = new TH2F("h2AsMcProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
927 fListHist->Add(fHistAsMcProdRadiusXvsYAntiLambda);
928 fHistAsMcProdRadiusXvsYAntiLambdaMI = new TH2F("h2AsMcProdRadiusXvsYAntiLambdaMI","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
929 fListHist->Add(fHistAsMcProdRadiusXvsYAntiLambdaMI);
930
931
932
933 // Mass
934 fHistPidMcMassK0 = new TH1F("h1PidMcMassK0", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
935 fListHist->Add(fHistPidMcMassK0);
936 fHistPidMcMassK0MI = new TH1F("h1PidMcMassK0MI", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
937 fListHist->Add(fHistPidMcMassK0MI);
938
939 fHistPidMcMassLambda = new TH1F("h1PidMcMassLambda", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
940 fListHist->Add(fHistPidMcMassLambda);
941 fHistPidMcMassLambdaMI = new TH1F("h1PidMcMassLambdaMI", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
942 fListHist->Add(fHistPidMcMassLambdaMI);
943
944 fHistPidMcMassAntiLambda = new TH1F("h1PidMcMassAntiLambda", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
945 fListHist->Add(fHistPidMcMassAntiLambda);
946 fHistPidMcMassAntiLambdaMI = new TH1F("h1PidMcMassAntiLambdaMI", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
947 fListHist->Add(fHistPidMcMassAntiLambdaMI);
948
949 fHistAsMcMassK0 = new TH1F("h1AsMcMassK0", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
950 fListHist->Add(fHistAsMcMassK0);
951 fHistAsMcMassK0MI = new TH1F("h1AsMcMassK0MI", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
952 fListHist->Add(fHistAsMcMassK0MI);
953
954 fHistAsMcMassLambda = new TH1F("h1AsMcMassLambda", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
955 fListHist->Add(fHistAsMcMassLambda);
956 fHistAsMcMassLambdaMI = new TH1F("h1AsMcMassLambdaMI", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
957 fListHist->Add(fHistAsMcMassLambdaMI);
958
959 fHistAsMcMassAntiLambda = new TH1F("h1AsMcMassAntiLambda", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
960 fListHist->Add(fHistAsMcMassAntiLambda);
961 fHistAsMcMassAntiLambdaMI = new TH1F("h1AsMcMassAntiLambdaMI", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
962 fListHist->Add(fHistAsMcMassAntiLambdaMI);
963
964 //Pt versus Mass
965 fHistAsMcPtVsMassK0 = new TH2F("h2AsMcPtVsMassK0","K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",200, 0.4, 0.6,100,0,10);
966 fListHist->Add(fHistAsMcPtVsMassK0);
967 fHistAsMcPtVsMassK0MI = new TH2F("h2AsMcPtVsMassK0MI","K^{0} MIassociated;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",200, 0.4, 0.6,100,0,10);
968 fListHist->Add(fHistAsMcPtVsMassK0MI);
969
970 fHistAsMcPtVsMassLambda = new TH2F("h2AsMcPtVsMassLambda","#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,100,0,10);
971 fListHist->Add(fHistAsMcPtVsMassLambda);
972 fHistAsMcPtVsMassLambdaMI = new TH2F("h2AsMcPtVsMassLambdaMI","#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,100,0,10);
973 fListHist->Add(fHistAsMcPtVsMassLambdaMI);
974
975 fHistAsMcPtVsMassAntiLambda = new TH2F("h2AsMcPtVsMassAntiLambda","#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,100,0,10);
976 fListHist->Add(fHistAsMcPtVsMassAntiLambda);
977 fHistAsMcPtVsMassAntiLambdaMI = new TH2F("h2AsMcPtVsMassAntiLambdaMI","#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,100,0,10);
978 fListHist->Add(fHistAsMcPtVsMassAntiLambdaMI);
979
980
981 // invariant mass vs radius
982 fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 500, 0.47, 0.52);
983 fListHist->Add(fHistAsMcMassVsRadiusK0);
984
985 fHistAsMcMassVsRadiusK0MI = new TH2F("h2AsMcMassVsRadiusK0MI", "K^{0} MI associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 500, 0.47, 0.52);
986 fListHist->Add(fHistAsMcMassVsRadiusK0MI);
987
988 fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, lNbinInvMassLambda, 1.10, 1.13);
989 fListHist->Add(fHistAsMcMassVsRadiusLambda);
990
991 fHistAsMcMassVsRadiusLambdaMI = new TH2F("h2AsMcMassVsRadiusLambdaMI", "#Lambda MI associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, lNbinInvMassLambda, 1.10, 1.13);
992 fListHist->Add(fHistAsMcMassVsRadiusLambdaMI);
993
994 fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius,lNbinInvMassLambda , 1.10, 1.13);
995 fListHist->Add(fHistAsMcMassVsRadiusAntiLambda);
996
997 fHistAsMcMassVsRadiusAntiLambdaMI = new TH2F("h2AsMcMassVsRadiusAntiLambdaMI", "#bar{#Lambda} MI associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius,lNbinInvMassLambda , 1.10, 1.13);
998 fListHist->Add(fHistAsMcMassVsRadiusAntiLambdaMI);
999
1000
1001 // Position Resolution
1002 fHistAsMcResxK0 = new TH1F("h1AsMcResxK0", "K^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1003 fListHist->Add(fHistAsMcResxK0);
1004 fHistAsMcResyK0 = new TH1F("h1AsMcResyK0", "K^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1005 fListHist->Add(fHistAsMcResyK0);
1006 fHistAsMcReszK0 = new TH1F("h1AsMcReszK0", "K^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1007 fListHist->Add(fHistAsMcReszK0);
1008 fHistAsMcResrVsRadiusK0 = new TH2F("h2AsMcResrVsRadiusK0", "K^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50., 50, -0.25, 0.25);
1009 fListHist->Add(fHistAsMcResrVsRadiusK0);
1010 fHistAsMcReszVsRadiusK0 = new TH2F("h2AsMcReszVsRadiusK0", "K^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1011 fListHist->Add(fHistAsMcReszVsRadiusK0);
1012
1013 fHistAsMcResxK0MI = new TH1F("h1AsMcResxK0MI", "K^{0} MI associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1014 fListHist->Add(fHistAsMcResxK0MI);
1015 fHistAsMcResyK0MI = new TH1F("h1AsMcResyK0MI", "K^{0} MI associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1016 fListHist->Add(fHistAsMcResyK0MI);
1017 fHistAsMcReszK0MI = new TH1F("h1AsMcReszK0MI", "K^{0} MI associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1018 fListHist->Add(fHistAsMcReszK0MI);
1019 fHistAsMcResrVsRadiusK0MI = new TH2F("h2AsMcResrVsRadiusK0MI", "K^{0} MI associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25);
1020 fListHist->Add(fHistAsMcResrVsRadiusK0MI);
1021 fHistAsMcReszVsRadiusK0MI = new TH2F("h2AsMcReszVsRadiusK0MI", "K^{0} MI associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25);
1022 fListHist->Add(fHistAsMcReszVsRadiusK0MI);
1023
1024 fHistAsMcResxLambda = new TH1F("h1AsMcResxLambda", "#Lambda^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1025 fListHist->Add(fHistAsMcResxLambda);
1026 fHistAsMcResyLambda = new TH1F("h1AsMcResyLambda", "#Lambda^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1027 fListHist->Add(fHistAsMcResyLambda);
1028 fHistAsMcReszLambda = new TH1F("h1AsMcReszLambda", "#Lambda^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1029 fListHist->Add(fHistAsMcReszLambda);
1030 fHistAsMcResrVsRadiusLambda = new TH2F("h2AsMcResrVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1031 fListHist->Add(fHistAsMcResrVsRadiusLambda);
1032 fHistAsMcReszVsRadiusLambda = new TH2F("h2AsMcReszVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1033 fListHist->Add(fHistAsMcReszVsRadiusLambda);
1034
1035 fHistAsMcResxLambdaMI = new TH1F("h1AsMcResxLambdaMI", "#Lambda^{0} MI associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1036 fListHist->Add(fHistAsMcResxLambdaMI);
1037 fHistAsMcResyLambdaMI = new TH1F("h1AsMcResyLambdaMI", "#Lambda^{0} MI associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1038 fListHist->Add(fHistAsMcResyLambdaMI);
1039 fHistAsMcReszLambdaMI = new TH1F("h1AsMcReszLambdaMI", "#Lambda^{0} MI associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1040 fListHist->Add(fHistAsMcReszLambdaMI);
1041 fHistAsMcResrVsRadiusLambdaMI = new TH2F("h2AsMcResrVsRadiusLambdaMI", "#Lambda^{0} MI associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25);
1042 fListHist->Add(fHistAsMcResrVsRadiusLambdaMI);
1043 fHistAsMcReszVsRadiusLambdaMI = new TH2F("h2AsMcReszVsRadiusLambdaMI", "#Lambda^{0} MI associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25);
1044 fListHist->Add(fHistAsMcReszVsRadiusLambdaMI);
1045
1046 fHistAsMcResxAntiLambda = new TH1F("h1AsMcResxAntiLambda", "#bar{#Lambda}^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1047 fListHist->Add(fHistAsMcResxAntiLambda);
1048 fHistAsMcResyAntiLambda = new TH1F("h1AsMcResyAntiLambda", "#bar{#Lambda}^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1049 fListHist->Add(fHistAsMcResyAntiLambda);
1050 fHistAsMcReszAntiLambda = new TH1F("h1AsMcReszAntiLambda", "#bar{#Lambda}^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1051 fListHist->Add(fHistAsMcReszAntiLambda);
1052 fHistAsMcResrVsRadiusAntiLambda = new TH2F("h2AsMcResrVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1053 fListHist->Add(fHistAsMcResrVsRadiusAntiLambda);
1054 fHistAsMcReszVsRadiusAntiLambda = new TH2F("h2AsMcReszVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1055 fListHist->Add(fHistAsMcReszVsRadiusAntiLambda);
1056
1057 fHistAsMcResxAntiLambdaMI = new TH1F("h1AsMcResxAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1058 fListHist->Add(fHistAsMcResxAntiLambdaMI);
1059 fHistAsMcResyAntiLambdaMI = new TH1F("h1AsMcResyAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1060 fListHist->Add(fHistAsMcResyAntiLambdaMI);
1061 fHistAsMcReszAntiLambdaMI = new TH1F("h1AsMcReszAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1062 fListHist->Add(fHistAsMcReszAntiLambdaMI);
1063 fHistAsMcResrVsRadiusAntiLambdaMI = new TH2F("h2AsMcResrVsRadiusAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25);
1064 fListHist->Add(fHistAsMcResrVsRadiusAntiLambdaMI);
1065 fHistAsMcReszVsRadiusAntiLambdaMI = new TH2F("h2AsMcReszVsRadiusAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25);
1066 fListHist->Add(fHistAsMcReszVsRadiusAntiLambdaMI);
1067
1068 // Pt Resolution
1069 fHistAsMcResPtK0 = new TH1F("h1AsMcResPtK0","Pt Resolution K^{0};#Delta Pt;Counts",200,-1,1);
1070 fListHist->Add(fHistAsMcResPtK0);
1071 fHistAsMcResPtK0MI = new TH1F("h1AsMcResPtK0MI","Pt Resolution K^{0} MI;#Delta Pt;Counts",200,-1,1);
1072 fListHist->Add(fHistAsMcResPtK0MI);
1073
1074 fHistAsMcResPtLambda = new TH1F("h1AsMcResPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Counts",200,-1,1);
1075 fListHist->Add(fHistAsMcResPtLambda);
1076 fHistAsMcResPtLambdaMI = new TH1F("h1AsMcResPtLambdaMI","Pt Resolution #Lambda^{0} MI;#Delta Pt;Counts",200,-1,1);
1077 fListHist->Add(fHistAsMcResPtLambdaMI);
1078
1079 fHistAsMcResPtAntiLambda = new TH1F("h1AsMcResPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Counts",200,-1,1);
1080 fListHist->Add(fHistAsMcResPtAntiLambda);
1081 fHistAsMcResPtAntiLambdaMI = new TH1F("h1AsMcResPtAntiLambdaMI","Pt Resolution #bar{#Lambda}^{0} MI;#Delta Pt;Counts",200,-1,1);
1082 fListHist->Add(fHistAsMcResPtAntiLambdaMI);
1083
1084
f81f8d5e 1085 fHistAsMcResPtVsRapK0 = new TH2F("h2AsMcResPtVsRapK0","Pt Resolution K^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1086 fListHist->Add(fHistAsMcResPtVsRapK0);
1087 fHistAsMcResPtVsRapK0MI = new TH2F("h2AsMcResPtVsRapK0MI","Pt Resolution K^{0} MI;#Delta Pt;Rap",200,-1,1,20,-1,1);
1088 fListHist->Add(fHistAsMcResPtVsRapK0MI);
9c7b62a0 1089
f81f8d5e 1090 fHistAsMcResPtVsRapLambda = new TH2F("h2AsMcResPtVsRapLambda","Pt Resolution #Lambda^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1091 fListHist->Add(fHistAsMcResPtVsRapLambda);
1092 fHistAsMcResPtVsRapLambdaMI = new TH2F("h2AsMcResPtVsRapLambdaMI","Pt Resolution #Lambda^{0} MI;#Delta Pt;Rap",200,-1,1,20,-1,1);
1093 fListHist->Add(fHistAsMcResPtVsRapLambdaMI);
9c7b62a0 1094
f81f8d5e 1095 fHistAsMcResPtVsRapAntiLambda = new TH2F("h2AsMcResPtVsRapAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1096 fListHist->Add(fHistAsMcResPtVsRapAntiLambda);
1097 fHistAsMcResPtVsRapAntiLambdaMI = new TH2F("h2AsMcResPtVsRapAntiLambdaMI","Pt Resolution #bar{#Lambda}^{0} MI;#Delta Pt;Rap",200,-1,1,20,-1,1);
1098 fListHist->Add(fHistAsMcResPtVsRapAntiLambdaMI);
9c7b62a0 1099
1100
1101 fHistAsMcResPtVsPtK0 = new TH2F("h2AsMcResPtVsPtK0","Pt Resolution K^{0};#Delta Pt;Pt",600,-0.15,0.15,200,0,10);
1102 fListHist->Add(fHistAsMcResPtVsPtK0);
1103 fHistAsMcResPtVsPtK0MI = new TH2F("h2AsMcResPtVsPtK0MI","Pt Resolution K^{0} MI;#Delta Pt;Pt",600,-0.15,0.15,200,0,10);
1104 fListHist->Add(fHistAsMcResPtVsPtK0MI);
1105
1106 fHistAsMcResPtVsPtLambda = new TH2F("h2AsMcResPtVsPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Pt",600,-0.15,0.15,200,0,10);
1107 fListHist->Add(fHistAsMcResPtVsPtLambda);
1108 fHistAsMcResPtVsPtLambdaMI = new TH2F("h2AsMcResPtVsPtLambdaMI","Pt Resolution #Lambda^{0} MI;#Delta Pt;Pt",600,-0.15,0.15,200,0,10);
1109 fListHist->Add(fHistAsMcResPtVsPtLambdaMI);
1110
1111 fHistAsMcResPtVsPtAntiLambda = new TH2F("h2AsMcResPtVsPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Pt",300,-0.15,0.15,200,0,10);
1112 fListHist->Add(fHistAsMcResPtVsPtAntiLambda);
1113 fHistAsMcResPtVsPtAntiLambdaMI = new TH2F("h2AsMcResPtVsPtAntiLambdaMI","Pt Resolution #bar{#Lambda}^{0} MI;#Delta Pt;Pt",300,-0.15,0.15,200,0,10);
1114 fListHist->Add(fHistAsMcResPtVsPtAntiLambdaMI);
1115
1116
1117 // pdgcode of mother
1118 fHistAsMcMotherPdgCodeK0s = new TH1F("h1AsMcMotherPdgCodeK0s","Mother of Associated K^{0};mother;counts",11,0,11);
1119 fListHist->Add(fHistAsMcMotherPdgCodeK0s);
1120 fHistAsMcMotherPdgCodeK0sMI = new TH1F("h1AsMcMotherPdgCodeK0sMI","Mother of Associated K^{0} MI;mother;counts",11,0,11);
1121 fListHist->Add(fHistAsMcMotherPdgCodeK0sMI);
1122
1123 fHistAsMcMotherPdgCodeLambda = new TH1F("h1AsMcMotherPdgCodeLambda","Mother of Associated #Lambda^{0};mother;counts",11,0,11);
1124 fListHist->Add(fHistAsMcMotherPdgCodeLambda);
1125 fHistAsMcMotherPdgCodeLambdaMI = new TH1F("h1AsMcMotherPdgCodeLambdaMI","Mother of Associated #Lambda^{0} MI;mother;counts",11,0,11);
1126 fListHist->Add(fHistAsMcMotherPdgCodeLambdaMI);
1127
1128 fHistAsMcMotherPdgCodeAntiLambda = new TH1F("h1AsMcMotherPdgCodeAntiLambda","Mother of Associated #bar{#Lambda}^{0};mother;counts",11,0,11);
1129 fListHist->Add(fHistAsMcMotherPdgCodeAntiLambda);
1130 fHistAsMcMotherPdgCodeAntiLambdaMI = new TH1F("h1AsMcMotherPdgCodeAntiLambdaMI","Mother of Associated #bar{Lambda}^{0} MI;mother;counts",11,0,11);
1131 fListHist->Add(fHistAsMcMotherPdgCodeAntiLambdaMI);
1132
1133
1134 // Pt distribution Lambda from Sigma
2093003d 1135 fHistAsMcPtLambdaFromSigma = new TH1F("h1AsMcPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",200,0,10);
9c7b62a0 1136 fListHist->Add(fHistAsMcPtLambdaFromSigma);
2093003d 1137 fHistAsMcPtLambdaFromSigmaMI = new TH1F("h1AsMcPtLambdaFromSigmaMI","#Lambda^{0} MI associated from Sigma;p_{t} (GeV/c);Count",200,0,10);
9c7b62a0 1138 fListHist->Add(fHistAsMcPtLambdaFromSigmaMI);
1139
2093003d 1140 fHistAsMcPtAntiLambdaFromSigma = new TH1F("h1AsMcPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",200,0,10);
9c7b62a0 1141 fListHist->Add(fHistAsMcPtAntiLambdaFromSigma);
2093003d 1142 fHistAsMcPtAntiLambdaFromSigmaMI = new TH1F("h1AsMcPtAntiLambdaFromSigmaMI","#bar{#Lambda}^{0} MI associated from Sigma;p_{t} (GeV/c);Count",200,0,10);
9c7b62a0 1143 fListHist->Add(fHistAsMcPtAntiLambdaFromSigmaMI);
1144
1145
1146 // Associated secondary particles:
1147 // Pt and rapidity distribution
f81f8d5e 1148 fHistAsMcSecondaryPtVsRapK0s = new TH2F("h2AsMcSecondaryPtVsRapK0s", "K^{0} associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5);
1149 fListHist->Add(fHistAsMcSecondaryPtVsRapK0s);
1150 fHistAsMcSecondaryPtVsRapK0sMI = new TH2F("h2AsMcSecondaryPtVsRapK0sMI", "K^{0} MI associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5);
1151 fListHist->Add(fHistAsMcSecondaryPtVsRapK0sMI);
9c7b62a0 1152
f81f8d5e 1153 fHistAsMcSecondaryPtVsRapLambda = new TH2F("h2AsMcSecondaryPtVsRapLambda", "#Lambda^{0} associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5);
1154 fListHist->Add(fHistAsMcSecondaryPtVsRapLambda);
1155 fHistAsMcSecondaryPtVsRapLambdaMI = new TH2F("h2AsMcSecondaryPtVsRapLambdaMI", "#Lambda^{0} MI associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5);
1156 fListHist->Add(fHistAsMcSecondaryPtVsRapLambdaMI);
9c7b62a0 1157
f81f8d5e 1158 fHistAsMcSecondaryPtVsRapAntiLambda = new TH2F("h2AsMcSecondaryPtVsRapAntiLambda", "#bar{#Lambda}^{0} associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5);
1159 fListHist->Add(fHistAsMcSecondaryPtVsRapAntiLambda);
1160 fHistAsMcSecondaryPtVsRapAntiLambdaMI = new TH2F("h2AsMcSecondaryPtVsRapAntiLambdaMI", "#bar{#Lambda}^{0} MI associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5);
1161 fListHist->Add(fHistAsMcSecondaryPtVsRapAntiLambdaMI);
9c7b62a0 1162
1163 // Production radius
1164 fHistAsMcSecondaryProdRadiusK0s = new TH1F("h1AsMcSecondaryProdRadiusK0s", "K^{0} Production Radius;r (cm);Count", 170, -2, 15);
1165 fListHist->Add(fHistAsMcSecondaryProdRadiusK0s);
1166 fHistAsMcSecondaryProdRadiusK0sMI = new TH1F("h1AsMcSecondaryProdRadiusK0sMI", "K^{0} MI Production Radius;r (cm);Count", 170, -2, 15);
1167 fListHist->Add(fHistAsMcSecondaryProdRadiusK0sMI);
1168
1169 fHistAsMcSecondaryProdRadiusLambda = new TH1F("h1AsMcSecondaryProdRadiusLambda", "#Lambda^{0} Production Radius;r (cm);Count", 170, -2, 15);
1170 fListHist->Add(fHistAsMcSecondaryProdRadiusLambda);
1171 fHistAsMcSecondaryProdRadiusLambdaMI = new TH1F("h1AsMcSecondaryProdRadiusLambdaMI", "#Lambda^{0} MI Production Radius;r (cm);Count", 170, -2, 15);
1172 fListHist->Add(fHistAsMcSecondaryProdRadiusLambdaMI);
1173
1174 fHistAsMcSecondaryProdRadiusAntiLambda = new TH1F("h1AsMcSecondaryProdRadiusAntiLambda", "#bar{#Lambda}^{0} Production Radius;r (cm);Count", 170, -2, 15);
1175 fListHist->Add(fHistAsMcSecondaryProdRadiusAntiLambda);
1176 fHistAsMcSecondaryProdRadiusAntiLambdaMI = new TH1F("h1AsMcSecondaryProdRadiusAntiLambdaMI", "#bar{#Lambda}^{0} MI Production Radius;r (cm);Count", 170, -2, 15);
1177 fListHist->Add(fHistAsMcSecondaryProdRadiusAntiLambdaMI);
1178
1179 fHistAsMcSecondaryProdRadiusXvsYK0s = new TH2F("h2AsMcSecondaryProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1180 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYK0s);
1181 fHistAsMcSecondaryProdRadiusXvsYK0sMI = new TH2F("h2AsMcSecondaryProdRadiusXvsYK0sMI","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1182 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYK0sMI);
1183
1184 fHistAsMcSecondaryProdRadiusXvsYLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1185 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYLambda);
1186 fHistAsMcSecondaryProdRadiusXvsYLambdaMI = new TH2F("h2AsMcSecondaryProdRadiusXvsYLambdaMI","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1187 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYLambdaMI);
1188
1189 fHistAsMcSecondaryProdRadiusXvsYAntiLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1190 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYAntiLambda);
1191 fHistAsMcSecondaryProdRadiusXvsYAntiLambdaMI = new TH2F("h2AsMcSecondaryProdRadiusXvsYAntiLambdaMI","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1192 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYAntiLambdaMI);
1193
1194 fHistAsMcSecondaryMotherPdgCodeK0s = new TH1F("h1AsMcSecondaryMotherPdgCodeK0s","Mother of Associated Secondary K^{0};mother;counts",11,0,11);
1195 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeK0s);
1196 fHistAsMcSecondaryMotherPdgCodeK0sMI = new TH1F("h1AsMcSecondaryMotherPdgCodeK0sMI","Mother of Associated Secondary K^{0} MI;mother;counts",11,0,11);
1197 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeK0sMI);
1198
1199 fHistAsMcSecondaryMotherPdgCodeLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeLambda","Mother of Associated Secondary #Lambda^{0};mother;counts",11,0,11);
1200 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeLambda);
1201 fHistAsMcSecondaryMotherPdgCodeLambdaMI = new TH1F("h1AsMcSecondaryMotherPdgCodeLambdaMI","Mother of Associated Secondary #Lambda^{0} MI;mother;counts",11,0,11);
1202 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeLambdaMI);
1203
1204 fHistAsMcSecondaryMotherPdgCodeAntiLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeAntiLambda","Mother of Associated Secondary #bar{#Lambda}^{0};mother;counts",11,0,11);
1205 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeAntiLambda);
1206 fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI = new TH1F("h1AsMcSecondaryMotherPdgCodeAntiLambdaMI","Mother of Associated Secondary #bar{Lambda}^{0} MI;mother;counts",11,0,11);
1207 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI);
1208
1209 // Pt distribution Lambda from Sigma
2093003d 1210 fHistAsMcSecondaryPtLambdaFromSigma = new TH1F("h1AsMcSecondaryPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",200,0,10);
9c7b62a0 1211 fListHist->Add(fHistAsMcSecondaryPtLambdaFromSigma);
2093003d 1212 fHistAsMcSecondaryPtLambdaFromSigmaMI = new TH1F("h1AsMcSecondaryPtLambdaFromSigmaMI","#Lambda^{0} MI associated from Sigma;p_{t} (GeV/c);Count",200,0,10);
9c7b62a0 1213 fListHist->Add(fHistAsMcSecondaryPtLambdaFromSigmaMI);
1214
2093003d 1215 fHistAsMcSecondaryPtAntiLambdaFromSigma = new TH1F("h1AsMcSecondaryPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",200,0,10);
9c7b62a0 1216 fListHist->Add(fHistAsMcSecondaryPtAntiLambdaFromSigma);
2093003d 1217 fHistAsMcSecondaryPtAntiLambdaFromSigmaMI = new TH1F("h1AsMcSecondaryPtAntiLambdaFromSigmaMI","#bar{#Lambda}^{0} MI associated from Sigma;p_{t} (GeV/c);Count",200,0,10);
9c7b62a0 1218 fListHist->Add(fHistAsMcSecondaryPtAntiLambdaFromSigmaMI);
1219
1220}
1221
1222//________________________________________________________________________
1223void AliAnalysisTaskPerformanceStrange::UserExec(Option_t *)
1224{
1225 // Main loop
1226 // Called for each event
1227
2093003d 1228 AliStack* stack = NULL;
1229 TClonesArray *mcArray = NULL;
1230 TArrayF mcPrimaryVtx;
9c7b62a0 1231
1232 AliVEvent* lEvent = InputEvent();
2093003d 1233
9c7b62a0 1234 if (!lEvent) {
1235 Printf("ERROR: Event not available");
1236 return;
1237 }
2093003d 1238
1239 //******************
1240 // Trigger Selection ! Warning Works only for ESD, add protection in case of AOD loop
1241 //******************
1242 Bool_t isEventTriggered = kFALSE;
1243 if ( !fAnalysisMC) {
1244 //if (!( ((AliESDEvent*)lEvent)->IsTriggerClassFired("CINT1B-ABCE-NOPF-ALL"))) return;
1245 isEventTriggered = fPhysTrigSel->IsCollisionCandidate((AliESDEvent*)lEvent);
1246 }
1247 else {
f00218b3 1248 fPhysTrigSel->SetAnalyzeMC(); // Bo: maybe this is not needed (should be done in AliPhysicsSelectionTask)
2093003d 1249 isEventTriggered = fPhysTrigSel->IsCollisionCandidate((AliESDEvent*)lEvent);
9c7b62a0 1250 }
2093003d 1251
1252 if (!isEventTriggered) return;
9c7b62a0 1253
2093003d 1254 //********************
1255 // Track Multiplicty
1256 //********************
9c7b62a0 1257 fHistTrackPerEvent->Fill(lEvent->GetNumberOfTracks());
1258
2093003d 1259 // Remove Events with no tracks
1260 if (!(lEvent->GetNumberOfTracks())) return;
9c7b62a0 1261
9c7b62a0 1262
2093003d 1263 //*************************************
1264 // Cut used:
1265 //*************************************
1266
f81f8d5e 1267 // Cut Rapidity:
1268 Double_t lCutRap = 0.75;
2093003d 1269
1270 // Cut AliKF Chi2 for Reconstructed particles
1271 Double_t cutChi2KF = 1E3;
1272
1273 // Cut to distinguish between primary and secondary associated particles
f81f8d5e 1274 // Double_t lMaxMcProdRadiusPrimaries = 0.2;
2093003d 1275
1276
1277
1278 //*******************
1279 // Access MC:
1280 //*******************
1281 if (fAnalysisMC) {
1282 if(fAnalysisType == "ESD") {
1283 AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
1284 if (!eventHandler) {
1285 //Printf("ERROR: Could not retrieve MC event handler");
1286 return;
1287 }
1288 AliMCEvent* mcEvent = eventHandler->MCEvent();
1289 if (!mcEvent) {
1290 //Printf("ERROR: Could not retrieve MC event");
1291 return;
1292 }
1293 stack = mcEvent->Stack();
1294 if (!stack) {
1295 //Printf("ERROR: Could not retrieve stack");
1296 return;
1297 }
1298
1299 AliGenEventHeader* mcHeader=mcEvent->GenEventHeader();
1300 if(!mcHeader) return;
1301 mcHeader->PrimaryVertex(mcPrimaryVtx);
1302
9c7b62a0 1303 }
1304
2093003d 1305 else if(fAnalysisType == "AOD") {
1306
1307 // load MC particles
1308 mcArray = (TClonesArray*)lEvent->GetList()->FindObject(AliAODMCParticle::StdBranchName());
1309 if(!mcArray) {
1310 Printf("strange analysis::UserExec: MC particles branch not found!\n");
1311 return;
1312 }
1313
1314 // load MC header
1315 AliAODMCHeader *mcHeader =
1316 (AliAODMCHeader*)lEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
1317 if(!mcHeader) {
1318 Printf("strange analysis::UserExec: MC header branch not found!\n");
1319 return;
1320 }
9c7b62a0 1321 }
1322 }
1323
2093003d 1324
9c7b62a0 1325 //**********************************************
1326 // MC loop
1327 //**********************************************
1328
2093003d 1329 Double_t lmcPrimVtxR = 0;
1330
9c7b62a0 1331 Int_t lNbMCPrimary = 0;
1332 Int_t lNbMCPart = 0;
1333
1334 Int_t lPdgcodeCurrentPart = 0;
f81f8d5e 1335 Double_t lRapCurrentPart = 0;
9c7b62a0 1336 Double_t lPtCurrentPart = 0;
1337
1338 Int_t lComeFromSigma = 0;
1339
9c7b62a0 1340
1341 // Production Radius
1342 Double_t mcPosX = 0.0, mcPosY = 0.0, mcPosZ = 0.0;
1343 Double_t mcPosR = 0.0;
1344
1345 // Decay Radius
1346 Double_t mcDecayPosX = 0, mcDecayPosY = 0, mcDecayPosR = 0;
1347
1348 // current mc particle 's mother
1349 Int_t iCurrentMother = 0, lPdgCurrentMother = 0;
1350 Bool_t lCurrentMotherIsPrimary;
1351
1352 // variables for multiple reconstruction studies:
1353 Int_t id0 = 0, id1 = 0;
f81f8d5e 1354 //Int_t lLabelTrackN = 0, lLabelTrackP = 0;
1355 //Int_t lPartNMother = 0, lPartPMother = 0;
1356 //Int_t lPartPMotherPDGcode = 0;
9c7b62a0 1357 Int_t lNtimesReconstructedK0s = 0, lNtimesReconstructedLambda = 0, lNtimesReconstructedAntiLambda = 0;
1358 Int_t lNtimesReconstructedK0sMI = 0, lNtimesReconstructedLambdaMI = 0, lNtimesReconstructedAntiLambdaMI = 0;
1359
2093003d 1360 //****************************
1361 // Start loop over MC particles
1362 if (fAnalysisMC) {
9c7b62a0 1363
2093003d 1364 // Primary vertex
1365 fHistMCPrimaryVertexX->Fill(mcPrimaryVtx.At(0));
1366 fHistMCPrimaryVertexY->Fill(mcPrimaryVtx.At(1));
1367 fHistMCPrimaryVertexZ->Fill(mcPrimaryVtx.At(2));
1368
1369 lmcPrimVtxR = TMath::Sqrt(mcPrimaryVtx.At(0)*mcPrimaryVtx.At(0)+mcPrimaryVtx.At(1)*mcPrimaryVtx.At(1));
1370
9c7b62a0 1371
2093003d 1372 if(fAnalysisType == "ESD") {
1373
1374 lNbMCPrimary = stack->GetNprimary();
1375 lNbMCPart = stack->GetNtrack();
1376
1377 fHistMCMultiplicityPrimary->Fill(lNbMCPrimary);
1378 fHistMCMultiplicityTracks->Fill(lNbMCPart);
1379
1380
1381 for (Int_t iMc = 0; iMc < (stack->GetNtrack()); iMc++) {
1382 TParticle *p0 = stack->Particle(iMc);
1383 if (!p0) {
1384 //Printf("ERROR: particle with label %d not found in stack (mc loop)", iMc);
1385 continue;
1386 }
1387 lPdgcodeCurrentPart = p0->GetPdgCode();
1388
1389 // Keep only K0s, Lambda and AntiLambda:
1390 if ( (lPdgcodeCurrentPart != 310 ) && (lPdgcodeCurrentPart != 3122 ) && (lPdgcodeCurrentPart != -3122 ) ) continue;
1391
f81f8d5e 1392 lRapCurrentPart = MyRapidity(p0->Energy(),p0->Pz());
1393 //lEtaCurrentPart = p0->Eta();
2093003d 1394 lPtCurrentPart = p0->Pt();
1395 iCurrentMother = p0->GetFirstMother();
1396 lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();
1397
1398 mcPosX = p0->Vx();
1399 mcPosY = p0->Vy();
1400 mcPosZ = p0->Vz();
1401 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
1402
1403 id0 = p0->GetDaughter(0);
1404 id1 = p0->GetDaughter(1);
1405
1406 // Decay Radius and Production Radius
1407 if ( id0 <= lNbMCPart && id0 > 0 && id1 <= lNbMCPart && id1 > 0) {
1408 TParticle *pDaughter0 = stack->Particle(id0);
1409 mcDecayPosX = pDaughter0->Vx();
1410 mcDecayPosY = pDaughter0->Vy();
1411 mcDecayPosR = TMath::Sqrt(mcDecayPosX*mcDecayPosX+mcDecayPosY*mcDecayPosY);
1412 }
1413 else {
1414 //Printf("ERROR: particle with label %d and/or %d not found in stack (mc loop)", id0,id1);
1415 mcDecayPosR = -1.0;
1416 }
1417
1418 if (lPdgcodeCurrentPart==310) {
1419 fHistMCtracksProdRadiusK0s->Fill(mcPosX,mcPosY);
1420 fHistMCtracksDecayRadiusK0s->Fill(mcDecayPosR);
f81f8d5e 1421 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllK0s->Fill(lPtCurrentPart);
2093003d 1422 }
1423 else if (lPdgcodeCurrentPart==3122) {
1424 fHistMCtracksProdRadiusLambda->Fill(mcPosX,mcPosY);
1425 fHistMCtracksDecayRadiusLambda->Fill(mcDecayPosR);
f81f8d5e 1426 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllLambda->Fill(lPtCurrentPart);
2093003d 1427 }
1428 else if (lPdgcodeCurrentPart==-3122) {
1429 fHistMCtracksProdRadiusAntiLambda->Fill(mcPosX,mcPosY);
1430 fHistMCtracksDecayRadiusAntiLambda->Fill(mcDecayPosR);
f81f8d5e 1431 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllAntiLambda->Fill(lPtCurrentPart);
2093003d 1432 }
1433
1434 if ( ( ( TMath::Abs(lPdgCurrentMother) == 3212) ||
1435 ( TMath::Abs(lPdgCurrentMother) == 3224) ||
1436 ( TMath::Abs(lPdgCurrentMother) == 3214) ||
1437 ( TMath::Abs(lPdgCurrentMother) == 3114) )
1438 && ( iCurrentMother <= lNbMCPrimary )
1439 ) lComeFromSigma = 1;
1440 else lComeFromSigma = 0;
1441
1442 //*********************************************
1443 // Now keep only primary particles
1444 if ( ( iMc > lNbMCPrimary ) && (!lComeFromSigma) ) continue;
9c7b62a0 1445
2093003d 1446 //********************************************
1447 //check if V0 is reconstructed several times
9c7b62a0 1448
2093003d 1449 lNtimesReconstructedK0s = 0; lNtimesReconstructedLambda = 0; lNtimesReconstructedAntiLambda = 0;
1450 lNtimesReconstructedK0sMI = 0; lNtimesReconstructedLambdaMI = 0; lNtimesReconstructedAntiLambdaMI = 0;
9c7b62a0 1451
2093003d 1452 //for (Int_t jV0 = 0; jV0 < lEvent->GetNumberOfV0s(); jV0++) {
9c7b62a0 1453
2093003d 1454 //lLabelTrackN = 0; lLabelTrackP = 0;
1455 //lPartNMother = 0; lPartPMother = 0;
9c7b62a0 1456
2093003d 1457 //AliESDv0 *vertexESD = ((AliESDEvent*)lEvent)->GetV0(jV0);
1458 //if (!vertexESD) continue;
9c7b62a0 1459
2093003d 1460 //AliESDtrack *trackNESD = ((AliESDEvent*)lEvent)->GetTrack(TMath::Abs(vertexESD->GetNindex()));
1461 //lLabelTrackN = (UInt_t)TMath::Abs(trackNESD->GetLabel());
1462 //if (lLabelTrackN!=id0 && lLabelTrackN!=id1) continue;
9c7b62a0 1463
2093003d 1464 //AliESDtrack *trackPESD = ((AliESDEvent*)lEvent)->GetTrack(TMath::Abs(vertexESD->GetPindex()));
1465 //lLabelTrackP = (UInt_t)TMath::Abs(trackPESD->GetLabel());
1466 //if (lLabelTrackP!=id0 && lLabelTrackP!=id1) continue;
9c7b62a0 1467
2093003d 1468 //TParticle *lPartNESD = stack->Particle(lLabelTrackN);
1469 //TParticle *lPartPESD = stack->Particle(lLabelTrackP);
1470 //lPartNMother = lPartNESD->GetFirstMother();
1471 //lPartPMother = lPartPESD->GetFirstMother();
1472
1473 //lPartPMotherPDGcode = stack->Particle(lPartPMother)->GetPdgCode();
1474
1475 //switch (vertexESD->GetOnFlyStatus()){
1476
1477 //case 0 :
1478 //if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==310) ) lNtimesReconstructedK0s++;
1479 //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==3122) ) lNtimesReconstructedLambda++;
1480 //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==-3122) ) lNtimesReconstructedAntiLambda++;
1481 //break;
1482
1483 //case 1 :
1484 //if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==310) ) lNtimesReconstructedK0sMI++;
1485 //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==3122) ) lNtimesReconstructedLambdaMI++;
1486 //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==-3122) ) lNtimesReconstructedAntiLambdaMI++;
1487 //break;
1488
1489 //}
1490 //} // end loop over reconstructed V0s inside MC loop
f81f8d5e 1491
1492 if (TMath::Abs(lRapCurrentPart) > lCutRap) continue;
1493
2093003d 1494 if (lPdgcodeCurrentPart==310) {
1495 fHistMCProdRadiusK0s->Fill(mcPosR);
f81f8d5e 1496 fHistMCPtK0s->Fill(lPtCurrentPart);
2093003d 1497 fHistNTimesRecK0s->Fill(lNtimesReconstructedK0s);
1498 fHistNTimesRecK0sMI->Fill(lNtimesReconstructedK0s);
1499 fHistNTimesRecK0sVsPt->Fill(lPtCurrentPart,lNtimesReconstructedK0s);
1500 fHistNTimesRecK0sVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedK0sMI);
1501 }
1502 else if (lPdgcodeCurrentPart==3122) {
1503 fHistMCProdRadiusLambda->Fill(mcPosR);
f81f8d5e 1504 fHistMCPtLambda->Fill(lPtCurrentPart);
2093003d 1505 fHistNTimesRecLambda->Fill(lNtimesReconstructedLambda);
1506 fHistNTimesRecLambdaMI->Fill(lNtimesReconstructedLambdaMI);
1507 fHistNTimesRecLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedLambda);
1508 fHistNTimesRecLambdaVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedLambdaMI);
1509 if (lComeFromSigma) fHistMCPtLambdaFromSigma->Fill(lPtCurrentPart);
1510 }
1511 else if (lPdgcodeCurrentPart==-3122) {
1512 fHistMCProdRadiusAntiLambda->Fill(mcPosR);
f81f8d5e 1513 fHistMCPtAntiLambda->Fill(lPtCurrentPart);
2093003d 1514 fHistNTimesRecAntiLambda->Fill(lNtimesReconstructedAntiLambda);
1515 fHistNTimesRecAntiLambdaMI->Fill(lNtimesReconstructedAntiLambdaMI);
1516 fHistNTimesRecAntiLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambda);
1517 fHistNTimesRecAntiLambdaVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambdaMI);
1518 if (lComeFromSigma) fHistMCPtAntiLambdaFromSigma->Fill(lPtCurrentPart);
1519 }
1520
1521 } // end loop ESD MC
9c7b62a0 1522
2093003d 1523 } // end ESD condition
9c7b62a0 1524
2093003d 1525 else if(fAnalysisType == "AOD") {
1526 lNbMCPart = mcArray->GetEntriesFast();
1527 lNbMCPrimary = 0;
1528
1529 fHistMCMultiplicityTracks->Fill(lNbMCPart);
1530
1531 for (Int_t iMc = 0; iMc < lNbMCPart; iMc++) {
1532
1533 // Primary vertex TO DO !!
1534 //
1535
1536 AliAODMCParticle *mcAODPart = (AliAODMCParticle*)mcArray->At(iMc);
9c7b62a0 1537 if (!mcAODPart) {
2093003d 1538 //Printf("Strange analysis task (mc loop): particle with label %d not found", iMc);
9c7b62a0 1539 continue;
1540 }
2093003d 1541 lPdgcodeCurrentPart = mcAODPart->GetPdgCode();
1542 if (mcAODPart->IsPhysicalPrimary()) {lNbMCPrimary = lNbMCPrimary +1;}
1543
1544 // Keep only K0s, Lambda and AntiLambda:
1545 if ( (lPdgcodeCurrentPart != 310 ) && (lPdgcodeCurrentPart != 3122 ) && (lPdgcodeCurrentPart != -3122 ) ) continue;
1546
f81f8d5e 1547 //lEtaCurrentPart = mcAODPart->Eta();
1548 lRapCurrentPart = mcAODPart->Y();
2093003d 1549 lPtCurrentPart = mcAODPart->Pt();
1550 iCurrentMother = mcAODPart->GetMother();
1551 lPdgCurrentMother = ((AliAODMCParticle*)mcArray->At(iCurrentMother))->GetPdgCode();
1552 lCurrentMotherIsPrimary = ((AliAODMCParticle*)mcArray->At(iCurrentMother))->IsPhysicalPrimary();
1553
1554 mcPosX = mcAODPart->Xv();
1555 mcPosY = mcAODPart->Yv();
1556 mcPosZ = mcAODPart->Zv();
1557 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
1558
1559 id0 = mcAODPart->GetDaughter(0);
1560 id1 = mcAODPart->GetDaughter(1);
1561
1562 // Decay Radius and Production Radius
1563 if ( id0 <= lNbMCPart && id0 > 0 && id1 <= lNbMCPart && id1 > 0) {
1564 AliAODMCParticle *mcAODDaughter1 = (AliAODMCParticle*)mcArray->At(id1);
1565 if (!mcAODPart) {
1566 //Printf("Strange analysis task (mc loop): daughter not found");
1567 continue;
1568 }
1569 mcDecayPosX = mcAODDaughter1->Xv();
1570 mcDecayPosY = mcAODDaughter1->Yv();
1571 mcDecayPosR = TMath::Sqrt(mcDecayPosX*mcDecayPosX+mcDecayPosY*mcDecayPosY);
1572 }
1573 else {
1574 //Printf("ERROR: particle with label %d and/or %d not found in stack (mc loop)", id0,id1);
1575 mcDecayPosR = -1.0;
1576 }
1577
1578 if (lPdgcodeCurrentPart==310) {
1579 fHistMCtracksProdRadiusK0s->Fill(mcPosX,mcPosY);
1580 fHistMCtracksDecayRadiusK0s->Fill(mcDecayPosR);
f81f8d5e 1581 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllK0s->Fill(lPtCurrentPart);
2093003d 1582 }
1583 else if (lPdgcodeCurrentPart==3122) {
1584 fHistMCtracksProdRadiusLambda->Fill(mcPosX,mcPosY);
1585 fHistMCtracksDecayRadiusLambda->Fill(mcDecayPosR);
f81f8d5e 1586 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllLambda->Fill(lPtCurrentPart);
2093003d 1587 }
1588 else if (lPdgcodeCurrentPart==-3122) {
1589 fHistMCtracksProdRadiusAntiLambda->Fill(mcPosX,mcPosY);
1590 fHistMCtracksDecayRadiusAntiLambda->Fill(mcDecayPosR);
f81f8d5e 1591 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllAntiLambda->Fill(lPtCurrentPart);
2093003d 1592 }
1593
1594 if ( ( ( TMath::Abs(lPdgCurrentMother) == 3212) ||
1595 ( TMath::Abs(lPdgCurrentMother) == 3224) ||
1596 ( TMath::Abs(lPdgCurrentMother) == 3214) ||
1597 ( TMath::Abs(lPdgCurrentMother) == 3114) )
1598 && (lCurrentMotherIsPrimary)
1599 ) lComeFromSigma = 1;
1600 else lComeFromSigma = 0;
9c7b62a0 1601
2093003d 1602 //*********************************************
1603 // Now keep only primary particles
1604
1605 // FIX IT !!!! iMC is not defined !!!! FIX IT also in ESD/AOD loop !!
1606 if ( ( iMc > lNbMCPrimary ) && (!lComeFromSigma) ) continue;
1607
1608 //********************************************
1609 // check if V0 is reconstructed several times
1610
1611 //lNtimesReconstructedK0s = 0; lNtimesReconstructedLambda = 0; lNtimesReconstructedAntiLambda = 0;
1612 //lNtimesReconstructedK0sMI = 0; lNtimesReconstructedLambdaMI = 0; lNtimesReconstructedAntiLambdaMI = 0;
1613
1614 //for (Int_t jV0 = 0; jV0 < lEvent->GetNumberOfV0s(); jV0++) {
9c7b62a0 1615
2093003d 1616 //lLabelTrackN = 0; lLabelTrackP = 0;
1617 //lPartNMother = 0; lPartPMother = 0;
1618
1619 //AliAODv0 *vertexAOD= ((AliAODEvent*)lEvent)->GetV0(jV0);
1620 //if (!vertexAOD) continue;
1621 //printf("enter!!");
1622 //AliVParticle *trackP = ((AliVEvent*)lEvent)->GetTrack(vertexAOD->GetPosID());
1623 //if (!trackP) continue;
1624 //lLabelTrackP = TMath::Abs(trackP->GetLabel());
1625 //if (lLabelTrackP!=id0 && lLabelTrackP!=id1) continue;
9c7b62a0 1626
2093003d 1627 //AliVParticle *trackN = ((AliVEvent*)lEvent)->GetTrack(vertexAOD->GetNegID());
1628 //if (!trackN) continue;
1629 //lLabelTrackN = TMath::Abs(trackN->GetLabel());
1630 //if (lLabelTrackN!=id0 && lLabelTrackN!=id1) continue;
9c7b62a0 1631
2093003d 1632 //AliAODMCParticle *lPartNAOD = (AliAODMCParticle*)mcArray->At(lLabelTrackN);
1633 //if (!lPartNAOD) continue;
1634 //AliAODMCParticle *lPartPAOD = (AliAODMCParticle*)mcArray->At(lLabelTrackP);
1635 //if (!lPartPAOD) continue;
9c7b62a0 1636
2093003d 1637 //lPartNMother = lPartNAOD->GetMother();
1638 //lPartPMother = lPartPAOD->GetMother();
9c7b62a0 1639
2093003d 1640 //lPartPMotherPDGcode = ((AliAODMCParticle*)mcArray->At(lPartPMother))->GetPdgCode();
9c7b62a0 1641
2093003d 1642 //switch (vertexAOD->GetOnFlyStatus()){
9c7b62a0 1643
2093003d 1644 //case 0 :
1645 //if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==310) ) lNtimesReconstructedK0s++;
1646 //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==3122) ) lNtimesReconstructedLambda++;
1647 //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==-3122) ) lNtimesReconstructedAntiLambda++;
1648 //break;
9c7b62a0 1649
2093003d 1650 //case 1 :
1651 //if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==310) ) lNtimesReconstructedK0sMI++;
1652 //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==3122) ) lNtimesReconstructedLambdaMI++;
1653 //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==-3122) ) lNtimesReconstructedAntiLambdaMI++;
1654 //break;
9c7b62a0 1655
2093003d 1656 ///}
1657 //} // end loop over reconstructed V0s inside MC loop
f81f8d5e 1658
1659 if (TMath::Abs(lRapCurrentPart) > lCutRap) continue;
1660
2093003d 1661 if (lPdgcodeCurrentPart==310) {
1662 fHistMCProdRadiusK0s->Fill(mcPosR);
f81f8d5e 1663 fHistMCPtK0s->Fill(lPtCurrentPart);
2093003d 1664 fHistNTimesRecK0s->Fill(lNtimesReconstructedK0s);
1665 fHistNTimesRecK0sMI->Fill(lNtimesReconstructedK0s);
1666 fHistNTimesRecK0sVsPt->Fill(lPtCurrentPart,lNtimesReconstructedK0s);
1667 fHistNTimesRecK0sVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedK0sMI);
1668 }
1669 else if (lPdgcodeCurrentPart==3122) {
1670 fHistMCProdRadiusLambda->Fill(mcPosR);
f81f8d5e 1671 fHistMCPtLambda->Fill(lPtCurrentPart);
2093003d 1672 fHistNTimesRecLambda->Fill(lNtimesReconstructedLambda);
1673 fHistNTimesRecLambdaMI->Fill(lNtimesReconstructedLambdaMI);
1674 fHistNTimesRecLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedLambda);
1675 fHistNTimesRecLambdaVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedLambdaMI);
1676 if (lComeFromSigma) fHistMCPtLambdaFromSigma->Fill(lPtCurrentPart);
1677 }
1678 else if (lPdgcodeCurrentPart==-3122) {
1679 fHistMCProdRadiusAntiLambda->Fill(mcPosR);
f81f8d5e 1680 fHistMCPtAntiLambda->Fill(lPtCurrentPart);
2093003d 1681 fHistNTimesRecAntiLambda->Fill(lNtimesReconstructedAntiLambda);
1682 fHistNTimesRecAntiLambdaMI->Fill(lNtimesReconstructedAntiLambdaMI);
1683 fHistNTimesRecAntiLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambda);
1684 fHistNTimesRecAntiLambdaVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambdaMI);
1685 if (lComeFromSigma) fHistMCPtAntiLambdaFromSigma->Fill(lPtCurrentPart);
1686 }
9c7b62a0 1687
2093003d 1688 } // end loop over AODMC particles
1689 fHistMCMultiplicityPrimary->Fill(lNbMCPrimary);
1690
1691 } // end AOD condition
9c7b62a0 1692
2093003d 1693 } // End Loop over MC condition
9c7b62a0 1694
1695
1696
1697
2093003d 1698
9c7b62a0 1699 //************************************
1700 // ESD or AOD loop
1701 //************************************
1702
2093003d 1703 Double_t lPrimaryVtxPosition[3];
1704 Double_t lPrimaryVtxCov[6];
1705 Double_t lPrimaryVtxChi2 = 999;
1706
9c7b62a0 1707 Double_t lMagneticField = 999;
e2e56010 1708
1709 //Multiplcity:
1710 Int_t nv0sTot= 0, nv0s = 0, nv0sMI = 0;
9c7b62a0 1711
1712 // Variables:
9c7b62a0 1713 Double_t lV0Position[3];
1714
1715 Double_t lDcaPosToPrimVertex = 0;
1716 Double_t lDcaNegToPrimVertex = 0;
1717 Double_t lDcaV0Daughters = 0;
1718 Double_t lV0cosPointAngle = 0;
1719 Double_t lChi2V0 = 0;
1720 Double_t lV0DecayLength = 0;
1721 Double_t lV0Radius = 0;
1722 Double_t lDcaV0ToPrimVertex = 0;
1723
1724 Int_t lOnFlyStatus = 0;
1725 //Float_t tdcaPosToPrimVertexXYZ[2], tdcaNegToPrimVertexXYZ[2]; // ..[0] = Impact parameter in XY plane and ..[1] = Impact parameter in Z
1726 //Double_t tdcaDaughterToPrimVertex[2]; // ..[0] = Pos and ..[1] = Neg
1727
1728
1729
2093003d 1730 Double_t lInvMassK0s = 0, lInvMassLambda = 0, lInvMassAntiLambda = 0;
1731 Double_t lPtK0s = 0, lPtLambda = 0, lPtAntiLambda = 0;
1732 Double_t lRapK0s = 0, lRapLambda = 0, lRapAntiLambda = 0;
1733 Double_t lEtaK0s = 0, lEtaLambda = 0, lEtaAntiLambda = 0;
9c7b62a0 1734 Double_t lAlphaV0 = 0, lPtArmV0 = 0;
1735
2093003d 1736 Double_t lV0Eta = 999;
9c7b62a0 1737
1738 Float_t lTPCsignalPos = 0;
1739 Float_t lTPCsignalNeg = 0;
1740
1741 Double_t lMomentumTrackInPos =0;
1742 Double_t lMomentumTrackInNeg =0;
1743
1744 // to study Associated V0s:
1745 Int_t lIndexTrackPos = 0, lIndexTrackNeg = 0;
1746 UInt_t lLabelTrackPos = 0, lLabelTrackNeg = 0;
1747 Int_t lCheckPIdK0Short = 0, lCheckMcK0Short = 0;
1748 Int_t lCheckPIdLambda = 0, lCheckMcLambda = 0;
1749 Int_t lCheckPIdAntiLambda = 0, lCheckMcAntiLambda = 0;
1750 Int_t lCheckSecondaryK0s = 0, lCheckSecondaryLambda = 0, lCheckSecondaryAntiLambda = 0;
1751 Int_t lCheckGamma = 0;
1752 Double_t mcPosMotherX = 0, mcPosMotherY = 0, mcPosMotherZ = 0;
1753 Double_t mcPosMotherR = 0;
1754 Double_t mcMotherPt = 0;
1755
1756 Int_t lIndexPosMother = 0;
1757 Int_t lIndexNegMother = 0;
1758 Int_t lIndexMotherOfMother = 0;
1759 Int_t lPDGCodePosDaughter = 0;
1760 Int_t lPDGCodeNegDaughter = 0;
1761 Int_t lPdgcodeMother = 0;
1762 Int_t lPdgcodeMotherOfMother = 0;
1763
2093003d 1764 // Reconstructed position
1765 Double_t rcPosXK0s = 0, rcPosYK0s = 0, rcPosZK0s = 0;
1766 Double_t rcPosRK0s = 0;
1767 Double_t rcPosXLambda = 0, rcPosYLambda = 0, rcPosZLambda = 0;
1768 Double_t rcPosRLambda = 0;
1769 Double_t rcPosXAntiLambda = 0, rcPosYAntiLambda = 0, rcPosZAntiLambda = 0;
1770 Double_t rcPosRAntiLambda = 0;
9c7b62a0 1771
2093003d 1772 // Pt resolution
1773 Double_t deltaPtK0s = 0, deltaPtLambda = 0, deltaPtAntiLambda = 0;
9c7b62a0 1774
2093003d 1775 // Daughters
1776 AliESDtrack *myTrackPos = NULL;
1777 AliESDtrack *myTrackNeg = NULL;
1778 AliVParticle *lVPartPos = NULL;
1779 AliVParticle *lVPartNeg = NULL;
1780
1781 // Daughters' momentum:
12fa3949 1782 Double_t lMomPos[3] = {999,999,999};
1783 Double_t lMomNeg[3] = {999,999,999};
2093003d 1784
1785 // AliKF Chi2 and Armenteros variables
1786 Double_t lChi2KFK0s = 0, lChi2KFLambda = 0, lChi2KFAntiLambda = 0;
1787 Double_t lAlphaV0K0s = 0, lAlphaV0Lambda = 0, lAlphaV0AntiLambda = 0;
1788 Double_t lPtArmV0K0s = 0, lPtArmV0Lambda = 0, lPtArmV0AntiLambda = 0;
1789 Double_t lQlPos = 0, lQlNeg = 0;
9c7b62a0 1790
1791
9c7b62a0 1792
1793 // Bo: please use external methods for these TF1 (no TFormula like this)...
1794
1795 // PID - Check Parameters depending on the AliRoot version ! Method to be improved !
1796 TF1 foPion("foPion", "[0]*([1]*TMath::Power(TMath::Sqrt(1 + (x/0.13957)*(x/0.13957))/(x/0.13957) , [3]) - 1 - TMath::Power(TMath::Sqrt(1 + (x/0.13957)*(x/0.13957))/(x/0.13957) , [3])*TMath::Log([2] + 1/TMath::Power((x/0.13957), [4])))",0.05,20);
1797
1798 // paramters extracted from calibration....
1799 foPion.SetParameters(4.23232575531564326e+00,8.68482806165147636e+00,1.34000000000000005e-05,2.30445734159456084e+00,2.25624744086878559e+00);
1800
1801 TF1 foProton("foProton", "[0]*([1]*TMath::Power(TMath::Sqrt(1 + (x/0.93827)*(x/0.93827))/(x/0.93827) , [3]) - 1 - TMath::Power(TMath::Sqrt(1 + (x/0.93827)*(x/0.93827))/(x/0.93827) , [3])*TMath::Log([2] + 1/TMath::Power((x/0.93827), [4])))",0.05,20);
1802
1803 // paramters extracted from calibration....
1804 foProton.SetParameters(4.23232575531564326e+00,8.68482806165147636e+00,1.34000000000000005e-05,2.30445734159456084e+00,2.25624744086878559e+00);
1805
1806
9c7b62a0 1807 Float_t nSigmaPosPion = 0;
1808 Float_t nSigmaNegPion = 0;
1809
1810 Float_t nSigmaPosProton = 0;
1811 Float_t nSigmaNegProton = 0;
1812
1813 Float_t cutNSigma = 4.0;
1814
2093003d 1815 //*******************************************************
1816 // Primary Vertex, magnetic field and Quality tracks cuts
9c7b62a0 1817
2093003d 1818 AliAODVertex *myPrimaryVertex = NULL;
1819 AliESDtrackCuts *myTracksCuts = NULL;
9c7b62a0 1820
1821 if(fAnalysisType == "ESD") {
1822
2093003d 1823 // Best Primary Vertex:
9c7b62a0 1824 const AliESDVertex *myBestPrimaryVertex = ((AliESDEvent*)lEvent)->GetPrimaryVertex();
1825 if (!myBestPrimaryVertex) return;
2093003d 1826 if (!(myBestPrimaryVertex->GetStatus())) return;
1827 //if ( primaryVtx->GetNContributors() <3 ) return;
9c7b62a0 1828 myBestPrimaryVertex->GetXYZ(lPrimaryVtxPosition);
9c7b62a0 1829 myBestPrimaryVertex->GetCovMatrix(lPrimaryVtxCov);
1830 lPrimaryVtxChi2 = myBestPrimaryVertex->GetChi2toNDF();
1831
1832 myPrimaryVertex = new AliAODVertex(lPrimaryVtxPosition, lPrimaryVtxCov, lPrimaryVtxChi2, NULL, -1, AliAODVertex::kPrimary);
1833 if (!myPrimaryVertex) return;
2093003d 1834
1835 // TPC Primary Vertex:
1836 //const AliESDVertex *myTPCPrimaryVertex = ((AliESDEvent*)lEvent)->GetPrimaryVertexTPC();
1837 //if (!myTPCPrimaryVertex) return;
1838
1839 //const AliESDVertex *mySPDPrimaryVertex = ((AliESDEvent*)lEvent)->GetPrimaryVertexSPD();
1840 //if (!mySPDPrimaryVertex) return;
1841
1842 lMagneticField = ((AliESDEvent*)lEvent)->GetMagneticField();
1843
1844 myTracksCuts = new AliESDtrackCuts();
1845 // max value of diagonal covariance
1846 //myTracksCuts->SetMaxCovDiagonalElements(2.0, 2.0, 0.5, 0.5, 2.0);
1847 // require TPC refit
1848 myTracksCuts->SetRequireTPCRefit(kTRUE);
1849 // reject kink daughters
1850 //myTracksCuts->SetAcceptKinkDaughters(kFALSE);
1851 // minimum number of clusters in TPC
1852 myTracksCuts->SetMinNClustersTPC(80);
1853 // maximum normalized chi2
1854 //myTracksCuts->SetMaxChi2PerClusterTPC(3.5);
9c7b62a0 1855 }
1856
1857 else if(fAnalysisType == "AOD") {
f81f8d5e 1858 printf("enter AOD!!");
9c7b62a0 1859 myPrimaryVertex = ((AliAODEvent*)lEvent)->GetPrimaryVertex();
1860 if (!myPrimaryVertex) return;
1861 lPrimaryVtxPosition[0] = myPrimaryVertex->GetX();
1862 lPrimaryVtxPosition[1] = myPrimaryVertex->GetY();
1863 lPrimaryVtxPosition[2] = myPrimaryVertex->GetZ();
2093003d 1864
1865 // Tracks cuts FIX IT !
1866
1867 // FIX it !!!
1868 lMagneticField = 999;
9c7b62a0 1869 }
2093003d 1870
9c7b62a0 1871 fHistPrimaryVertexX->Fill(lPrimaryVtxPosition[0]);
1872 fHistPrimaryVertexY->Fill(lPrimaryVtxPosition[1]);
1873 fHistPrimaryVertexZ->Fill(lPrimaryVtxPosition[2]);
f00218b3 1874 Double_t lrcPrimVtxR = 0;
1875 lrcPrimVtxR = TMath::Sqrt(lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]+lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]); // Bo: this is done with respect to x,y=0,0... to sure it is used anymore;
2093003d 1876
1877 AliKFVertex primaryVtxKF( *myPrimaryVertex );
1878 AliKFParticle::SetField(lMagneticField);
9c7b62a0 1879
1880
1881 //*************************
1882 // V0 loop
e2e56010 1883
1884 nv0sTot = lEvent->GetNumberOfV0s();
9c7b62a0 1885
e2e56010 1886 for (Int_t iV0 = 0; iV0 < nv0sTot; iV0++) {
2093003d 1887
1888 // ALiKF
1889 AliKFParticle* negPiKF = NULL;
1890 AliKFParticle* posPiKF = NULL;
1891 AliKFParticle* posPKF = NULL;
1892 AliKFParticle* negAPKF = NULL;
9c7b62a0 1893
1894 lIndexPosMother = 0; lIndexNegMother = 0; lIndexMotherOfMother = 0;
1895 lCheckPIdK0Short = 0; lCheckMcK0Short = 0; lCheckSecondaryK0s = 0;
1896 lCheckPIdLambda = 0; lCheckMcLambda = 0; lCheckSecondaryLambda = 0;
1897 lCheckPIdAntiLambda = 0; lCheckMcAntiLambda = 0; lCheckSecondaryAntiLambda = 0;
1898 lComeFromSigma = -1;
1899
1900
1901 if(fAnalysisType == "ESD") {
2093003d 1902
9c7b62a0 1903
1904 AliESDv0 *v0 = ((AliESDEvent*)lEvent)->GetV0(iV0);
2093003d 1905 if (!v0) continue;
1906
1907 // Primary vertex:
1908 fHistPrimaryVertexPosXV0events->Fill(lPrimaryVtxPosition[0]);
1909 fHistPrimaryVertexPosYV0events->Fill(lPrimaryVtxPosition[1]);
1910 fHistPrimaryVertexPosZV0events->Fill(lPrimaryVtxPosition[2]);
9c7b62a0 1911
1912 // V0's Daughters
1913 lIndexTrackPos = TMath::Abs(v0->GetPindex());
1914 lIndexTrackNeg = TMath::Abs(v0->GetNindex());
2093003d 1915 AliESDtrack *myTrackPosTest = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackPos);
1916 AliESDtrack *myTrackNegTest = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackNeg);
1917 if (!myTrackPosTest || !myTrackNegTest) {
9c7b62a0 1918 Printf("strange analysis::UserExec:: Error:Could not retreive one of the daughter track\n");
1919 continue;
1920 }
1921 // Remove like-sign
2093003d 1922 if ( myTrackPosTest->GetSign() == myTrackNegTest->GetSign()){
9c7b62a0 1923 continue;
1924 }
1925
2093003d 1926 //Multiplicity:
1927 if(!lOnFlyStatus) nv0s++;
1928 else if(lOnFlyStatus) nv0sMI++;
1929
1930 // VO's main characteristics to check the reconstruction cuts
9c7b62a0 1931 lOnFlyStatus = v0->GetOnFlyStatus();
1932 lChi2V0 = v0->GetChi2V0();
1933 lDcaV0Daughters = v0->GetDcaV0Daughters();
1934 lDcaV0ToPrimVertex = v0->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lPrimaryVtxPosition[2]);
1935 lV0cosPointAngle = v0->GetV0CosineOfPointingAngle(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1], lPrimaryVtxPosition[2]);
1936
1937 v0->GetXYZ(lV0Position[0], lV0Position[1], lV0Position[2]);
1938
1939 lV0Radius = TMath::Sqrt(lV0Position[0]*lV0Position[0]+lV0Position[1]*lV0Position[1]);
1940 lV0DecayLength = TMath::Sqrt(TMath::Power(lV0Position[0] - lPrimaryVtxPosition[0],2) +
1941 TMath::Power(lV0Position[1] - lPrimaryVtxPosition[1],2) +
1942 TMath::Power(lV0Position[2] - lPrimaryVtxPosition[2],2 ));
1943
9c7b62a0 1944
2093003d 1945 if( myTrackPosTest->GetSign() ==1){
1946
1947 myTrackPos = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackPos);
1948 myTrackNeg = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackNeg);
e2e56010 1949
2093003d 1950 // Daughters' momentum;
1951 v0->GetPPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
1952 v0->GetNPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
1953
1954 if (negPiKF) delete negPiKF; negPiKF=NULL;
1955 if (posPiKF) delete posPiKF; posPiKF=NULL;
1956 if (posPKF) delete posPKF; posPKF=NULL;
1957 if (negAPKF) delete negAPKF; negAPKF=NULL;
1958
1959 negPiKF = new AliKFParticle( *(v0->GetParamN()) ,-211);
1960 posPiKF = new AliKFParticle( *(v0->GetParamP()) ,211);
1961 posPKF = new AliKFParticle( *(v0->GetParamP()) ,2212);
1962 negAPKF = new AliKFParticle( *(v0->GetParamN()) ,-2212);
1963
1964 }
1965
1966 if( myTrackPosTest->GetSign() ==-1){
1967
1968 myTrackPos = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackNeg);
1969 myTrackNeg = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackPos);
1970
1971 // Daughters' momentum;
1972 v0->GetPPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
1973 v0->GetNPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
9c7b62a0 1974
2093003d 1975 if (negPiKF) delete negPiKF; negPiKF=NULL;
1976 if (posPiKF) delete posPiKF; posPiKF=NULL;
1977 if (posPKF) delete posPKF; posPKF=NULL;
1978 if (negAPKF) delete negAPKF; negAPKF=NULL;
1979
1980 negPiKF = new AliKFParticle( *(v0->GetParamP()) ,-211);
1981 posPiKF = new AliKFParticle( *(v0->GetParamN()) ,211);
1982 posPKF = new AliKFParticle( *(v0->GetParamN()) ,2212);
1983 negAPKF = new AliKFParticle( *(v0->GetParamP()) ,-2212);
1984
1985 }
9c7b62a0 1986
2093003d 1987 lLabelTrackPos = (UInt_t)TMath::Abs(myTrackPos->GetLabel());
1988 lLabelTrackNeg = (UInt_t)TMath::Abs(myTrackNeg->GetLabel());
9c7b62a0 1989
2093003d 1990
1991 // DCA between daughter and Primary Vertex:
1992 if (myTrackPos) lDcaPosToPrimVertex = TMath::Abs(myTrackPos->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) );
1993
1994 if (myTrackNeg) lDcaNegToPrimVertex = TMath::Abs(myTrackNeg->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) );
1995
1996 // Quality tracks cuts:
1997 if ( !(myTracksCuts->IsSelected(myTrackPos)) || !(myTracksCuts->IsSelected(myTrackNeg)) ) continue;
9c7b62a0 1998
1999 // Armenteros variables:
2093003d 2000 lAlphaV0 = v0->AlphaV0();
2001 lPtArmV0 = v0->PtArmV0();
2002
2003 // Pseudorapidity:
2004 lV0Eta = v0->Eta();
9c7b62a0 2005
2006 // PID
2007 lTPCsignalPos = myTrackPos->GetTPCsignal();
2008 lTPCsignalNeg = myTrackNeg->GetTPCsignal();
2009
2010 const AliExternalTrackParam *posInnerParam = myTrackPos->GetInnerParam();
2011 if (!posInnerParam) continue;
2012
2013 const AliExternalTrackParam *negInnerParam = myTrackNeg->GetInnerParam();
2014 if (!negInnerParam) continue;
2015
2016 AliExternalTrackParam trackInPos(*posInnerParam);
2017 AliExternalTrackParam trackInNeg(*negInnerParam);
2018
9c7b62a0 2019 lMomentumTrackInPos = trackInPos.GetP(); // momentum for dEdx determination
2020 lMomentumTrackInNeg = trackInNeg.GetP();
2021
2022 if (fUsePID.Contains("withPID")) {
2023 nSigmaPosPion = TMath::Abs((lTPCsignalPos - foPion.Eval(lMomentumTrackInPos))/foPion.Eval(lMomentumTrackInPos))/0.06;
2024
2025 nSigmaNegPion = TMath::Abs((lTPCsignalNeg - foPion.Eval(lMomentumTrackInNeg))/foPion.Eval(lMomentumTrackInNeg))/0.06; // 0.06 comes from momentum resolution !
2026
2027 nSigmaPosProton = TMath::Abs((lTPCsignalPos - foProton.Eval(lMomentumTrackInPos))/foProton.Eval(lMomentumTrackInPos))/0.06;
2028
2029 nSigmaNegProton = TMath::Abs((lTPCsignalNeg - foProton.Eval(lMomentumTrackInNeg))/foProton.Eval(lMomentumTrackInNeg))/0.06; // 0.06 comes from momentum resolution !
2030 }
2031 else {
2032 nSigmaPosPion = 0; nSigmaNegPion =0; nSigmaPosProton = 0; nSigmaNegProton= 0;}
2033
2034
2035
2093003d 2036 // Monte-Carlo particle associated to reconstructed particles:
2037 if (fAnalysisMC) {
2038 //if (lLabelTrackPos < 0 || lLabelTrackNeg < 0) continue;
2039 TParticle *lMCESDPartPos = stack->Particle(lLabelTrackPos);
2040 if(!lMCESDPartPos) {
2041 Printf("no MC particle for positive and/or negative daughter\n");
2042 continue;
2043 }
2044 TParticle *lMCESDPartNeg = stack->Particle(lLabelTrackNeg);
2045 if (!lMCESDPartNeg) continue;
2046 lPDGCodePosDaughter = lMCESDPartPos->GetPdgCode();
2047 lPDGCodeNegDaughter = lMCESDPartNeg->GetPdgCode();
2048 lIndexPosMother = lMCESDPartPos->GetFirstMother();
2049 lIndexNegMother = lMCESDPartNeg->GetFirstMother();
2050 TParticle *lMCESDMother = stack->Particle(lIndexPosMother);
2051 if (!lMCESDMother) continue;
2052 lPdgcodeMother = lMCESDMother->GetPdgCode();
2053 lIndexMotherOfMother = lMCESDMother->GetFirstMother();
2054 if (lIndexMotherOfMother ==-1) lPdgcodeMotherOfMother = 0;
2055 else {
2056 TParticle *lMCESDMotherOfMother = stack->Particle(lIndexMotherOfMother);
2057 if (!lMCESDMotherOfMother) continue;
2058 lPdgcodeMotherOfMother = lMCESDMotherOfMother->GetPdgCode();
2059 }
2060
2061 mcPosX = lMCESDPartPos->Vx();
2062 mcPosY = lMCESDPartPos->Vy();
2063 mcPosZ = lMCESDPartPos->Vz();
2064 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
2065 mcPosMotherX = lMCESDMother->Vx();
2066 mcPosMotherY = lMCESDMother->Vy();
2067 mcPosMotherZ = lMCESDMother->Vz();
2068 mcPosMotherR = TMath::Sqrt(mcPosMotherX*mcPosMotherX+mcPosMotherY*mcPosMotherY);
2069
2070 mcMotherPt = lMCESDMother->Pt();
9c7b62a0 2071 }
9c7b62a0 2072
2073 } // end ESD condition
2074
2075
2076
2077 else if(fAnalysisType == "AOD") {
2078
2093003d 2079 AliAODv0 *myAODv0 = ((AliAODEvent*)lEvent)->GetV0(iV0);
2080 if (!myAODv0) continue;
9c7b62a0 2081
2093003d 2082 // Primary vertex:
2083 fHistPrimaryVertexPosXV0events->Fill(lPrimaryVtxPosition[0]);
2084 fHistPrimaryVertexPosYV0events->Fill(lPrimaryVtxPosition[1]);
2085 fHistPrimaryVertexPosZV0events->Fill(lPrimaryVtxPosition[2]);
2086
9c7b62a0 2087
e2e56010 2088 //Multiplicity:
2089 if(!lOnFlyStatus) nv0s++;
2090 else if(lOnFlyStatus) nv0sMI++;
2091
9c7b62a0 2092 // V0's Daughters
2093 lIndexTrackPos = TMath::Abs(myAODv0->GetPosID());
2094 lIndexTrackNeg = TMath::Abs(myAODv0->GetNegID());
2095
2093003d 2096 AliVParticle *lVPartPosTest = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackPos);
2097 AliVParticle *lVPartNegTest = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackNeg);
9c7b62a0 2098 //AliAODTrack *lVPartPos = ((AliAODEvent*)lEvent)->GetTrack(lIndexTrackPos);
2099 //AliAODTrack *lVPartNeg = ((AliAODEvent*)lEvent)->GetTrack(lIndexTrackNeg);
2100
2093003d 2101 if (!lVPartPosTest ||(!lVPartNegTest )) {
9c7b62a0 2102 Printf("strange analysis::UserExec:: Could not retreive one of the daughter track\n");
2103 continue;
2104 }
2105
2106 // Quality cuts:
2107 // TO DO !!!!!!!
2108
2109 // TPC refit condition (done during reconstruction for Offline but not for On-the-fly)
2093003d 2110 //if( !(lVPartPosTest->GetStatus() & AliAODTrack::kTPCrefit)) continue;
2111 //if( !(lVPartNegTest->GetStatus() & AliAODTrack::kTPCrefit)) continue;
9c7b62a0 2112
2093003d 2113
2114 lDcaPosToPrimVertex = myAODv0->DcaPosToPrimVertex();
2115 lDcaNegToPrimVertex = myAODv0->DcaNegToPrimVertex();
2116 lOnFlyStatus = myAODv0->GetOnFlyStatus();
2117 lChi2V0 = myAODv0->Chi2V0();
2118 lDcaV0Daughters = myAODv0->DcaV0Daughters();
2119 lDcaV0ToPrimVertex = myAODv0->DcaV0ToPrimVertex();
2120 lV0DecayLength = myAODv0->DecayLengthV0(lPrimaryVtxPosition);
2121 lV0cosPointAngle = myAODv0->CosPointingAngle(lPrimaryVtxPosition);
2122 lV0Radius = myAODv0->RadiusV0();
2123
2124 if( lVPartPosTest->Charge() ==1){
2125
2126 lVPartPos = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackPos);
2127 lVPartNeg = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackNeg);
2128
2129
2130 if (negPiKF) delete negPiKF; negPiKF=NULL;
2131 if (posPiKF) delete posPiKF; posPiKF=NULL;
2132 if (posPKF) delete posPKF; posPKF=NULL;
2133 if (negAPKF) delete negAPKF; negAPKF=NULL;
2134
2135 //negPiKF = new AliKFParticle( *(myAODv0->GetParamN()) ,-211);
2136 //posPiKF = new AliKFParticle( *(myAODv0->GetParamP()) ,211);
2137 //posPKF = new AliKFParticle( *(myAODv0->GetParamP()) ,2212);
2138 //negAPKF = new AliKFParticle( *(myAODv0->GetParamN()) ,-2212);
2139 // TO DO !!!!!!
2140 negPiKF = NULL;
2141 posPiKF = NULL;
2142 posPKF = NULL;
2143 negAPKF = NULL;
2144
2145 }
2146
2147 if( lVPartPosTest->Charge() ==-1){
2148
2149 lVPartPos = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackNeg);
2150 lVPartNeg = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackPos);
2151
2152 if (negPiKF) delete negPiKF; negPiKF=NULL;
2153 if (posPiKF) delete posPiKF; posPiKF=NULL;
2154 if (posPKF) delete posPKF; posPKF=NULL;
2155 if (negAPKF) delete negAPKF; negAPKF=NULL;
2156
2157 //negPiKF = new AliKFParticle( *(myAODv0->GetParamP()) ,-211);
2158 //posPiKF = new AliKFParticle( *(myAODv0->GetParamN()) ,211);
2159 //posPKF = new AliKFParticle( *(myAODv0->GetParamN()) ,2212);
2160 //negAPKF = new AliKFParticle( *(myAODv0->GetParamP()) ,-2212);
2161 negPiKF = NULL;
2162 posPiKF = NULL;
2163 posPKF = NULL;
2164 negAPKF = NULL;
2165 }
2166
9c7b62a0 2167 lLabelTrackPos = TMath::Abs(lVPartPos->GetLabel());
2168 lLabelTrackNeg = TMath::Abs(lVPartNeg->GetLabel());
2093003d 2169
9c7b62a0 2170 // Armenteros variables:
2171 lAlphaV0 = myAODv0->AlphaV0();
2172 lPtArmV0 = myAODv0->PtArmV0();
2093003d 2173
2174 // Pseudorapidity:
2175 lV0Eta = myAODv0->PseudoRapV0();
9c7b62a0 2176
2177 // PID not accessible with AOD !
2178 nSigmaPosPion = 0; nSigmaNegPion =0; nSigmaPosProton = 0; nSigmaNegProton= 0;
2179
2180
2093003d 2181 // Monte-Carlo particle associated to reconstructed particles:
2182 if (fAnalysisMC) {
2183 AliAODMCParticle *lMCAODPartPos = (AliAODMCParticle*)mcArray->At(lLabelTrackPos);
2184 if (!lMCAODPartPos) continue;
2185 AliAODMCParticle *lMCAODPartNeg = (AliAODMCParticle*)mcArray->At(lLabelTrackNeg);
2186 if(!lMCAODPartNeg) {
2187 Printf("strange analysis::UserExec:no MC particle for negative daughter\n");
2188 continue;
2189 }
2190 lPDGCodePosDaughter = lMCAODPartPos->GetPdgCode();
2191 lPDGCodeNegDaughter = lMCAODPartNeg->GetPdgCode();
2192 lIndexPosMother = lMCAODPartPos->GetMother();
2193 lIndexNegMother = lMCAODPartNeg->GetMother();
2194
2195 AliAODMCParticle *lMCAODMother = (AliAODMCParticle*)mcArray->At(lIndexPosMother);
2196 lPdgcodeMother = lMCAODMother->GetPdgCode();
2197 lIndexMotherOfMother = lMCAODMother->GetMother();
2198 if (lIndexMotherOfMother ==-1) lPdgcodeMotherOfMother = 0;
2199 else {
2200 lPdgcodeMotherOfMother = ((AliAODMCParticle*)mcArray->At(lIndexMotherOfMother))->GetPdgCode();
2201 }
2202
2203 mcPosX = lMCAODPartPos->Xv();
2204 mcPosY = lMCAODPartPos->Yv();
2205 mcPosZ = lMCAODPartPos->Zv();
2206 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
2207 mcPosMotherX = lMCAODMother->Xv();
2208 mcPosMotherY = lMCAODMother->Yv();
2209 mcPosMotherZ = lMCAODMother->Zv();
2210 mcPosMotherR = TMath::Sqrt(mcPosMotherX*mcPosMotherX+mcPosMotherY*mcPosMotherY);
2211 mcMotherPt = lMCAODMother->Pt();
9c7b62a0 2212 }
9c7b62a0 2213
2214 } // end AOD condition
2215
2216
2093003d 2217 AliKFParticle v0K0sKF;
2218 v0K0sKF+=(*negPiKF);
2219 v0K0sKF+=(*posPiKF);
2220 v0K0sKF.SetProductionVertex(primaryVtxKF);
9c7b62a0 2221
2093003d 2222 AliKFParticle v0LambdaKF;
2223 v0LambdaKF+=(*negPiKF);
2224 v0LambdaKF+=(*posPKF);
2225 v0LambdaKF.SetProductionVertex(primaryVtxKF);
9c7b62a0 2226
2093003d 2227 AliKFParticle v0AntiLambdaKF;
2228 v0AntiLambdaKF+=(*posPiKF);
2229 v0AntiLambdaKF+=(*negAPKF);
2230 v0AntiLambdaKF.SetProductionVertex(primaryVtxKF);
9c7b62a0 2231
2093003d 2232 // Invariant mass
2233 lInvMassK0s = v0K0sKF.GetMass();
2234 lInvMassLambda = v0LambdaKF.GetMass();
2235 lInvMassAntiLambda = v0AntiLambdaKF.GetMass();
2236
2237 // Rapidity:
2238 lRapK0s = 0.5*TMath::Log((v0K0sKF.GetE()+v0K0sKF.GetPz())/(v0K0sKF.GetE()-v0K0sKF.GetPz()+1.e-13));
2239 lRapLambda = 0.5*TMath::Log((v0LambdaKF.GetE()+v0LambdaKF.GetPz())/(v0LambdaKF.GetE()-v0LambdaKF.GetPz()+1.e-13));
2240 lRapAntiLambda = 0.5*TMath::Log((v0AntiLambdaKF.GetE()+v0AntiLambdaKF.GetPz())/(v0AntiLambdaKF.GetE()-v0AntiLambdaKF.GetPz()+1.e-13));
2241
2242 // Pseudo-rapidity
2243 lEtaK0s = v0K0sKF.GetEta();
2244 lEtaLambda = v0LambdaKF.GetEta();
2245 lEtaAntiLambda = v0AntiLambdaKF.GetEta();
9c7b62a0 2246
2093003d 2247 // Pt:
2248 lPtK0s = v0K0sKF.GetPt();
2249 lPtLambda = v0LambdaKF.GetPt();
2250 lPtAntiLambda = v0AntiLambdaKF.GetPt();
2251
2252 // Pt Resolution
2253 deltaPtK0s = lPtK0s - mcMotherPt;
2254 deltaPtLambda = lPtLambda - mcMotherPt;
2255 deltaPtAntiLambda = lPtAntiLambda - mcMotherPt;
2256
2257 // KF Chi2
2258 lChi2KFK0s = v0K0sKF.GetChi2();
2259 lChi2KFLambda = v0LambdaKF.GetChi2();
2260 lChi2KFAntiLambda = v0AntiLambdaKF.GetChi2();
2261
2262 // Reconstructed Position
2263 rcPosXK0s = v0K0sKF.GetX();
2264 rcPosYK0s = v0K0sKF.GetY();
2265 rcPosZK0s = v0K0sKF.GetZ();
2266 rcPosRK0s = TMath::Sqrt(rcPosXK0s*rcPosXK0s+rcPosYK0s*rcPosYK0s);
2267
2268 rcPosXLambda = v0LambdaKF.GetX();
2269 rcPosYLambda = v0LambdaKF.GetY();
2270 rcPosZLambda = v0LambdaKF.GetZ();
2271 rcPosRLambda = TMath::Sqrt(rcPosXLambda*rcPosXLambda+rcPosYLambda*rcPosYLambda);
2272
2273 rcPosXAntiLambda = v0AntiLambdaKF.GetX();
2274 rcPosYAntiLambda = v0AntiLambdaKF.GetY();
2275 rcPosZAntiLambda = v0AntiLambdaKF.GetZ();
2276 rcPosRAntiLambda = TMath::Sqrt(rcPosXAntiLambda*rcPosXAntiLambda+rcPosYAntiLambda*rcPosYAntiLambda);
2277
2278 TVector3 momPos(lMomPos[0],lMomPos[1],lMomPos[2]);
2279 TVector3 momNeg(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
2280 TVector3 momTotK0s(v0K0sKF.GetPx(),v0K0sKF.GetPy(),v0K0sKF.GetPz());
2281 TVector3 momTotLambda(v0LambdaKF.GetPx(),v0LambdaKF.GetPy(),v0LambdaKF.GetPz());
2282 TVector3 momTotAntiLambda(v0AntiLambdaKF.GetPx(),v0AntiLambdaKF.GetPy(),v0AntiLambdaKF.GetPz());
2283
2284 lQlPos = momPos.Dot(momTotK0s)/momTotK0s.Mag();
2285 lQlNeg = momNeg.Dot(momTotK0s)/momTotK0s.Mag();
2286 lAlphaV0K0s = 1.-2./(1.+lQlPos/lQlNeg);
2287 lQlPos = momPos.Dot(momTotLambda)/momTotLambda.Mag();
2288 lQlNeg = momNeg.Dot(momTotLambda)/momTotLambda.Mag();
2289 lAlphaV0Lambda = 1.-2./(1.+lQlPos/lQlNeg);
2290 lQlPos = momPos.Dot(momTotAntiLambda)/momTotAntiLambda.Mag();
2291 lQlNeg = momNeg.Dot(momTotAntiLambda)/momTotAntiLambda.Mag();
2292 lAlphaV0AntiLambda = 1.-2./(1.+lQlPos/lQlNeg);
2293
2294 lPtArmV0K0s = momPos.Perp(momTotK0s);
2295 lPtArmV0Lambda = momPos.Perp(momTotLambda);
2296 lPtArmV0AntiLambda = momPos.Perp(momTotAntiLambda);
2297
2298 // Look for associated particles:
2299 if (fAnalysisMC) {
2300 if( (lIndexPosMother==-1) || (lIndexNegMother==-1) ) {
2301 fHistMCDaughterTrack->Fill(1);
2302 }
2303
2304 else if( ( (lPDGCodePosDaughter==+211) && (lPDGCodeNegDaughter==-211) )
2305 ) {
2306 lCheckPIdK0Short = 1;
2307 fHistMCDaughterTrack->Fill(3);
2308 if ( (lIndexPosMother==lIndexNegMother) &&
2309 (lPdgcodeMother==310) ) {
2310 if (lIndexPosMother <= lNbMCPrimary) lCheckMcK0Short = 1;
2311 else lCheckSecondaryK0s = 1;
2312 }
2313 }
2314 else if( ( (lPDGCodePosDaughter==+2212) && (lPDGCodeNegDaughter==-211) )
2315 ) {
2316 lCheckPIdLambda = 1;
2317 fHistMCDaughterTrack->Fill(5);
2318 if ( (lIndexPosMother==lIndexNegMother) &&
2319 (lPdgcodeMother==3122) ){
2320 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2321 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2322 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2323 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2324 ) lComeFromSigma = 1;
2325 else lComeFromSigma = 0;
2326 if ( (lIndexPosMother <= lNbMCPrimary) ||
2327 ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) )
2328 ) lCheckMcLambda = 1;
2329 else lCheckSecondaryLambda = 1;
2330 }
2331 }
2332 else if( ( (lPDGCodePosDaughter==211) && (lPDGCodeNegDaughter==-2212) )
2333 ) {
2334 lCheckPIdAntiLambda = 1;
2335 fHistMCDaughterTrack->Fill(7);
2336 if ( (lIndexPosMother==lIndexNegMother) &&
2337 (lPdgcodeMother==-3122) ) {
2338 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2339 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2340 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2341 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2342 ) lComeFromSigma = 1;
2343 else lComeFromSigma = 0;
2344 if ( (lIndexPosMother <= lNbMCPrimary) ||
2345 ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) )
2346 ) lCheckMcAntiLambda = 1;
2347 else lCheckSecondaryAntiLambda = 1;
2348 }
2349 }
2350
2351 // Gamma conversion
2352 else if ( (lPDGCodePosDaughter==11) &&
2353 (lPDGCodeNegDaughter==-11) &&
2354 (lPdgcodeMother==22 ) )
2355 lCheckGamma = 1;
2356 } // end "look for associated particles
2357
9c7b62a0 2358
2359 // Cuts:
2360 if (fUseCut.Contains("yes")) {
2361 if ( (lDcaPosToPrimVertex < 0.036 ) ||
2362 (lDcaNegToPrimVertex < 0.036 ) ||
2363 (lDcaV0Daughters > 0.5 ) ||
2364 (lV0cosPointAngle < 0.99 )
2365 )
2366 continue;
2367 }
2368
2093003d 2369
2370 //*****************************
9c7b62a0 2371 // filling histograms
2093003d 2372
9c7b62a0 2373 fHistDcaPosToPrimVertex->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2374 fHistDcaNegToPrimVertex->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2375 fHistDcaPosToPrimVertexZoom->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2376 fHistDcaNegToPrimVertexZoom->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2377 fHistRadiusV0->Fill(lV0Radius,lOnFlyStatus);
2378 fHistDecayLengthV0->Fill(lV0DecayLength,lOnFlyStatus);
2379 fHistDcaV0Daughters->Fill(lDcaV0Daughters,lOnFlyStatus);
2380 fHistChi2->Fill(lChi2V0,lOnFlyStatus);
2381 fHistCosPointAngle->Fill(lV0cosPointAngle,lOnFlyStatus);
2382 if (lV0cosPointAngle >= 0.9) fHistCosPointAngleZoom->Fill(lV0cosPointAngle,lOnFlyStatus);
2093003d 2383 fHistChi2KFBeforeCutK0s->Fill(lChi2KFK0s,lOnFlyStatus);
2384 fHistChi2KFBeforeCutLambda->Fill(lChi2KFLambda,lOnFlyStatus);
2385 fHistChi2KFBeforeCutAntiLambda->Fill(lChi2KFAntiLambda,lOnFlyStatus);
2386
f81f8d5e 2387 // Histo versus Rap and armenteros plot
2093003d 2388 if (!lOnFlyStatus){
f81f8d5e 2389 if (lCheckMcK0Short) fHistAsMcRapK0->Fill(lRapK0s);
2390 if (lCheckMcLambda) fHistAsMcRapLambda->Fill(lRapLambda);
2391 if (lCheckMcAntiLambda) fHistAsMcRapLambda->Fill(lRapAntiLambda);
2392 fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
9c7b62a0 2393 }
2394 else {
f81f8d5e 2395 if (lCheckMcK0Short) fHistAsMcRapK0MI->Fill(lRapK0s);
2396 if (lCheckMcLambda) fHistAsMcRapLambdaMI->Fill(lRapLambda);
2397 if (lCheckMcAntiLambda) fHistAsMcRapLambdaMI->Fill(lRapAntiLambda);
2398 fHistArmenterosPodolanskiMI->Fill(lAlphaV0,lPtArmV0);
9c7b62a0 2399 }
2400
f81f8d5e 2401 // K0s associated histograms in |eta| < lCutRap:
2093003d 2402 if ( (nSigmaPosPion < cutNSigma) && (nSigmaNegPion < cutNSigma)
2403 && (lChi2KFK0s < cutChi2KF) ) {
9c7b62a0 2404
2093003d 2405 fHistChi2KFAfterCutK0s->Fill(lChi2KFK0s,lOnFlyStatus);
2406
f81f8d5e 2407 if (TMath::Abs(lRapK0s) < lCutRap) {
9c7b62a0 2408
2409 fHistNsigmaPosPionK0->Fill(nSigmaPosPion);
2410 fHistNsigmaNegPionK0->Fill(nSigmaNegPion);
2411
2412 switch (lOnFlyStatus){
2413 case 0 :
2414 fHistMassK0->Fill(lInvMassK0s);
2093003d 2415 fHistMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
2416 fHistPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
9c7b62a0 2417 if(lCheckPIdK0Short) fHistPidMcMassK0->Fill(lInvMassK0s);
2418 if(lCheckMcK0Short) {
2419 fHistAsMcMassK0->Fill(lInvMassK0s);
2093003d 2420 fHistAsMcPtK0->Fill(lPtK0s);
2421 fHistAsMcPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
2422 if (lPtK0s <= 1) fHistAsMcPtZoomK0->Fill(lPtK0s);
2423 fHistAsMcMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
2424 fHistAsMcResxK0->Fill(rcPosXK0s-mcPosX);
2425 fHistAsMcResyK0->Fill(rcPosYK0s-mcPosY);
2426 fHistAsMcReszK0->Fill(rcPosZK0s-mcPosZ);
2427 fHistAsMcResrVsRadiusK0->Fill(rcPosRK0s,rcPosRK0s-mcPosR);
2428 fHistAsMcReszVsRadiusK0->Fill(rcPosZK0s,rcPosZK0s-mcPosZ);
9c7b62a0 2429 fHistAsMcProdRadiusK0->Fill(mcPosMotherR);
2430 fHistAsMcProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
2093003d 2431 fHistAsMcResPtK0->Fill(deltaPtK0s);
f81f8d5e 2432 fHistAsMcResPtVsRapK0->Fill(deltaPtK0s,lRapK0s);
2093003d 2433 fHistAsMcResPtVsPtK0->Fill(deltaPtK0s,lPtK0s);
9c7b62a0 2434 }
2435 if (lCheckSecondaryK0s) {
f81f8d5e 2436 fHistAsMcSecondaryPtVsRapK0s->Fill(lPtK0s,lRapK0s);
9c7b62a0 2437 fHistAsMcSecondaryProdRadiusK0s->Fill(mcPosMotherR);
2438 fHistAsMcSecondaryProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
2439 switch (lPdgcodeMotherOfMother) {
2440 case 130 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(0.5);break; // K0L
2441 case 321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(1.5);break; // K+
2442 case -321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(2.5);break; // K-
2443 case -3122 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(3.5);break; //AntiLambda
2444 default : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(6.5);break;
2445 }
2446 }
2447 break;
2448
2449 case 1 :
2450 fHistMassK0MI->Fill(lInvMassK0s);
2093003d 2451 fHistMassVsRadiusK0MI->Fill(rcPosRK0s,lInvMassK0s);
2452 fHistPtVsMassK0MI->Fill(lInvMassK0s,lPtK0s);
9c7b62a0 2453 if(lCheckPIdK0Short) fHistPidMcMassK0MI->Fill(lInvMassK0s);
2454 if(lCheckMcK0Short) {
2455 fHistAsMcMassK0MI->Fill(lInvMassK0s);
2093003d 2456 fHistAsMcPtK0MI->Fill(lPtK0s);
2457 fHistAsMcPtVsMassK0MI->Fill(lInvMassK0s,lPtK0s);
2458 if (lPtK0s <= 1) fHistAsMcPtZoomK0MI->Fill(lPtK0s);
2459 fHistAsMcMassVsRadiusK0MI->Fill(rcPosRK0s,lInvMassK0s);
2460 fHistAsMcResxK0MI->Fill(rcPosXK0s-mcPosX);
2461 fHistAsMcResyK0MI->Fill(rcPosYK0s-mcPosY);
2462 fHistAsMcReszK0MI->Fill(rcPosZK0s-mcPosZ);
2463 fHistAsMcResrVsRadiusK0MI->Fill(rcPosRK0s,rcPosRK0s-mcPosR);
2464 fHistAsMcReszVsRadiusK0MI->Fill(rcPosZK0s,rcPosZK0s-mcPosZ);
9c7b62a0 2465 fHistAsMcProdRadiusK0MI->Fill(mcPosMotherR);
2466 fHistAsMcProdRadiusXvsYK0sMI->Fill(mcPosMotherX,mcPosMotherY);
2093003d 2467 fHistAsMcResPtK0MI->Fill(deltaPtK0s);
f81f8d5e 2468 fHistAsMcResPtVsRapK0MI->Fill(deltaPtK0s,lRapK0s);
2093003d 2469 fHistAsMcResPtVsPtK0MI->Fill(deltaPtK0s,lPtK0s);
9c7b62a0 2470 }
2471 else if (lCheckSecondaryK0s) {
f81f8d5e 2472 fHistAsMcSecondaryPtVsRapK0sMI->Fill(lPtK0s,lRapK0s);
9c7b62a0 2473 fHistAsMcSecondaryProdRadiusK0sMI->Fill(mcPosMotherR);
2474 fHistAsMcSecondaryProdRadiusXvsYK0sMI->Fill(mcPosMotherX,mcPosMotherY);
2475 switch (lPdgcodeMotherOfMother) {
2476 case 130 : fHistAsMcSecondaryMotherPdgCodeK0sMI->Fill(0.5);break; // K0L
2477 case 321 : fHistAsMcSecondaryMotherPdgCodeK0sMI->Fill(1.5);break; // K+
2478 case -321 : fHistAsMcSecondaryMotherPdgCodeK0sMI->Fill(2.5);break; // K-
2479 case -3122 : fHistAsMcSecondaryMotherPdgCodeK0sMI->Fill(3.5);break; //AntiLambda
2480 default : fHistAsMcSecondaryMotherPdgCodeK0sMI->Fill(6.5);break;
2481 }
2482 }
2483 break;
2484 }
2485 } // end rapidity condition
2486 } // end nsigma condition
2487
2488
f81f8d5e 2489 // Associated Lambda histograms in |eta| < lCutRap
2093003d 2490 if ( (nSigmaPosProton < cutNSigma) && (nSigmaNegPion < cutNSigma)
2491 && (lChi2KFLambda < cutChi2KF) ) {
2492
2493 fHistChi2KFAfterCutLambda->Fill(lChi2KFLambda,lOnFlyStatus);
9c7b62a0 2494
f81f8d5e 2495 if (TMath::Abs(lRapLambda) < lCutRap) {
9c7b62a0 2496
2497 fHistNsigmaPosProtonLambda->Fill(nSigmaPosProton);
2498 fHistNsigmaNegPionLambda->Fill(nSigmaNegPion);
2499 switch (lOnFlyStatus){
2500 case 0 :
2501 fHistMassLambda->Fill(lInvMassLambda);
2093003d 2502 fHistMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
2503 fHistPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
9c7b62a0 2504 if(lCheckPIdLambda) fHistPidMcMassLambda->Fill(lInvMassLambda);
2505
2506 if(lCheckMcLambda) {
2507 fHistAsMcMassLambda->Fill(lInvMassLambda);
2093003d 2508 fHistAsMcPtLambda->Fill(lPtLambda);
2509 fHistAsMcPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
2510 if (lPtLambda <= 1) fHistAsMcPtZoomLambda->Fill(lPtLambda);
2511 fHistAsMcMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
2512 fHistAsMcResxLambda->Fill(rcPosXLambda-mcPosX);
2513 fHistAsMcResyLambda->Fill(rcPosYLambda-mcPosY);
2514 fHistAsMcReszLambda->Fill(rcPosZLambda-mcPosZ);
2515 fHistAsMcResrVsRadiusLambda->Fill(rcPosRLambda,rcPosRLambda-mcPosR);
2516 fHistAsMcReszVsRadiusLambda->Fill(rcPosZLambda,rcPosZLambda-mcPosZ);
9c7b62a0 2517 fHistAsMcProdRadiusLambda->Fill(mcPosMotherR);
2518 fHistAsMcProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
2093003d 2519 fHistAsMcResPtLambda->Fill(deltaPtLambda);
f81f8d5e 2520 fHistAsMcResPtVsRapLambda->Fill(deltaPtLambda,lRapLambda);
2093003d 2521 fHistAsMcResPtVsPtLambda->Fill(deltaPtLambda,lPtLambda);
2522 if (lComeFromSigma) fHistAsMcPtLambdaFromSigma->Fill(lPtLambda);
9c7b62a0 2523 switch (lPdgcodeMotherOfMother) {
2524 case 3222 : fHistAsMcMotherPdgCodeLambda->Fill(0.5); break; // Sigma +
2525 case 3212 : fHistAsMcMotherPdgCodeLambda->Fill(1.5); break; // Sigma 0
2526 case 3112 : fHistAsMcMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
2527 case 3224 : fHistAsMcMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
2528 case 3214 : fHistAsMcMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
2529 case 3114 : fHistAsMcMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
2093003d 2530 case 3322 : fHistAsMcMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
2531 case 3312 : fHistAsMcMotherPdgCodeLambda->Fill(7.5); break; // Xi -
2532 case 3334 : fHistAsMcMotherPdgCodeLambda->Fill(8.5); break; // Omega
2533 case -1 : fHistAsMcMotherPdgCodeLambda->Fill(9.5); break;
9c7b62a0 2534 default : fHistAsMcMotherPdgCodeLambda->Fill(10.5);break;
2535 }
2536 }
2537
2538 else if (lCheckSecondaryLambda) {
f81f8d5e 2539 fHistAsMcSecondaryPtVsRapLambda->Fill(lPtLambda,lRapLambda);
9c7b62a0 2540 fHistAsMcSecondaryProdRadiusLambda->Fill(mcPosMotherR);
2541 fHistAsMcSecondaryProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
2093003d 2542 if (lComeFromSigma) fHistAsMcSecondaryPtLambdaFromSigma->Fill(lPtLambda);
2543 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
9c7b62a0 2544 switch (lPdgcodeMotherOfMother) {
2545 case 3222 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(0.5); break;// Sigma +
2546 case 3212 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(1.5); break;// Sigma 0
2547 case 3112 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
2548 case 3224 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
2549 case 3214 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
2550 case 3114 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
2551 case 3322 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
2552 case 3312 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(7.5); break; // Xi -
2553 case 3334 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(8.5); break; // Omega
2554 case -1 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(9.5); break;
2555 default : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(10.5);break;
2556 }
2557 }
2558 break;
2559
2560 case 1 :
2561 fHistMassLambdaMI->Fill(lInvMassLambda);
2093003d 2562 fHistMassVsRadiusLambdaMI->Fill(rcPosRLambda,lInvMassLambda);
2563 fHistPtVsMassLambdaMI->Fill(lInvMassLambda,lPtLambda);
9c7b62a0 2564 if(lCheckPIdLambda) fHistPidMcMassLambdaMI->Fill(lInvMassLambda);
2565
2566 if(lCheckMcLambda) {
2567 fHistAsMcMassLambdaMI->Fill(lInvMassLambda);
2093003d 2568 fHistAsMcPtLambdaMI->Fill(lPtLambda);
2569 fHistAsMcPtVsMassLambdaMI->Fill(lInvMassLambda,lPtLambda);
2570 fHistAsMcMassVsRadiusLambdaMI->Fill(rcPosRLambda,lInvMassLambda);
2571 fHistAsMcResxLambdaMI->Fill(rcPosXLambda-mcPosX);
2572 fHistAsMcResyLambdaMI->Fill(rcPosYLambda-mcPosY);
2573 fHistAsMcReszLambdaMI->Fill(rcPosZLambda-mcPosZ);
2574 fHistAsMcResrVsRadiusLambdaMI->Fill(rcPosRLambda,rcPosRLambda-mcPosR);
2575 fHistAsMcReszVsRadiusLambdaMI->Fill(rcPosZLambda,rcPosZLambda-mcPosZ);
9c7b62a0 2576 fHistAsMcProdRadiusLambdaMI->Fill(mcPosMotherR);
2577 fHistAsMcProdRadiusXvsYLambdaMI->Fill(mcPosMotherX,mcPosMotherY);
2093003d 2578 fHistAsMcResPtLambdaMI->Fill(deltaPtLambda);
f81f8d5e 2579 fHistAsMcResPtVsRapLambdaMI->Fill(deltaPtLambda,lRapLambda);
2093003d 2580 fHistAsMcResPtVsPtLambdaMI->Fill(deltaPtLambda,lPtLambda);
2581 if (lComeFromSigma) fHistAsMcPtLambdaFromSigmaMI->Fill(lPtLambda);
9c7b62a0 2582 switch (lPdgcodeMotherOfMother) {
2583 case 3222 : fHistAsMcMotherPdgCodeLambdaMI->Fill(0.5); break; // Sigma +
2584 case 3212 : fHistAsMcMotherPdgCodeLambdaMI->Fill(1.5); break; // Sigma 0
2585 case 3112 : fHistAsMcMotherPdgCodeLambdaMI->Fill(2.5); break;// Sigma -
2586 case 3224 : fHistAsMcMotherPdgCodeLambdaMI->Fill(3.5); break;// Sigma(1385) +
2587 case 3214 : fHistAsMcMotherPdgCodeLambdaMI->Fill(4.5); break;// Sigma(1385) 0
2588 case 3114 : fHistAsMcMotherPdgCodeLambdaMI->Fill(5.5); break;// Sigma(1385) -
2589 case 3322 : fHistAsMcMotherPdgCodeLambdaMI->Fill(6.5);break; // Xi 0
2590 case 3312 : fHistAsMcMotherPdgCodeLambdaMI->Fill(7.5);break; // Xi -
2591 case 3334 : fHistAsMcMotherPdgCodeLambdaMI->Fill(8.5);break; // Omega
2592 case -1 : fHistAsMcMotherPdgCodeLambdaMI->Fill(9.5);break;
2593 default : fHistAsMcMotherPdgCodeLambdaMI->Fill(10.5);break;
2594 }
2595 }
2596 else if (lCheckSecondaryLambda) {
f81f8d5e 2597 fHistAsMcSecondaryPtVsRapLambdaMI->Fill(lPtLambda,lRapLambda);
9c7b62a0 2598 fHistAsMcSecondaryProdRadiusLambdaMI->Fill(mcPosMotherR);
2599 fHistAsMcSecondaryProdRadiusXvsYLambdaMI->Fill(mcPosMotherX,mcPosMotherY);
2093003d 2600 if (lComeFromSigma) fHistAsMcSecondaryPtLambdaFromSigmaMI->Fill(lPtLambda);
9c7b62a0 2601 switch (lPdgcodeMotherOfMother) {
2602 case 3222 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(0.5); break;// Sigma +
2603 case 3212 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(1.5); break;// Sigma 0
2604 case 3112 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(2.5); break;// Sigma -
2605 case 3224 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(3.5); break;// Sigma(1385) +
2606 case 3214 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(4.5); break;// Sigma(1385) 0
2607 case 3114 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(5.5); break;// Sigma(1385) -
2608 case 3322 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(6.5); break; // Xi 0
2609 case 3312 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(7.5); break; // Xi -
2610 case 3334 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(8.5); break; // Omega
2611 case -1 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(9.5); break;
2612 default : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(10.5);break;
2613 }
2614 }
2615 break;
2616 }
2617 } // end rapidity condition
2618 } //end nsigma condition - lambda
2619
2620
2621
f81f8d5e 2622 // AntiLambda associated histograms in |eta| < lCutRap
2093003d 2623 if ( (nSigmaPosPion < cutNSigma) && (nSigmaNegProton < cutNSigma)
2624 && (lChi2KFAntiLambda < cutChi2KF) ) {
2625
2626 fHistChi2KFAfterCutLambda->Fill(lChi2KFLambda,lOnFlyStatus);
2627
f81f8d5e 2628 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
9c7b62a0 2629
9c7b62a0 2630
2631 fHistNsigmaPosPionAntiLambda->Fill(nSigmaPosPion);
2632 fHistNsigmaNegProtonAntiLambda->Fill(nSigmaNegProton);
2633
2634 switch (lOnFlyStatus){
2635 case 0 :
2636 fHistMassAntiLambda->Fill(lInvMassAntiLambda);
2093003d 2637 fHistMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
2638 fHistPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
9c7b62a0 2639 if (lCheckPIdAntiLambda) fHistPidMcMassAntiLambda->Fill(lInvMassAntiLambda);
2640
2641 if(lCheckMcAntiLambda) {
2642 fHistAsMcMassAntiLambda->Fill(lInvMassAntiLambda);
2093003d 2643 fHistAsMcPtAntiLambda->Fill(lPtAntiLambda);
2644 fHistAsMcPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
2645 fHistAsMcMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
2646 fHistAsMcResxAntiLambda->Fill(rcPosXAntiLambda-mcPosX);
2647 fHistAsMcResyAntiLambda->Fill(rcPosYAntiLambda-mcPosY);
2648 fHistAsMcReszAntiLambda->Fill(rcPosZAntiLambda-mcPosZ);
2649 fHistAsMcResrVsRadiusAntiLambda->Fill(rcPosRAntiLambda,rcPosRAntiLambda-mcPosR);
2650 fHistAsMcReszVsRadiusAntiLambda->Fill(rcPosZAntiLambda,rcPosZAntiLambda-mcPosZ);
9c7b62a0 2651 fHistAsMcProdRadiusAntiLambda->Fill(mcPosMotherR);
2652 fHistAsMcProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
2093003d 2653 fHistAsMcResPtAntiLambda->Fill(deltaPtAntiLambda);
f81f8d5e 2654 fHistAsMcResPtVsRapAntiLambda->Fill(deltaPtAntiLambda,lRapLambda);
2093003d 2655 fHistAsMcResPtVsPtAntiLambda->Fill(deltaPtAntiLambda,lPtAntiLambda);
2656 if (lComeFromSigma) fHistAsMcPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
9c7b62a0 2657 switch (lPdgcodeMotherOfMother) {
2658 case -3222 : fHistAsMcMotherPdgCodeAntiLambda->Fill(0.5); break;// Sigma +
2659 case -3212 : fHistAsMcMotherPdgCodeAntiLambda->Fill(1.5); break;// Sigma 0
2660 case -3112 : fHistAsMcMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
2661 case -3224 : fHistAsMcMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
2662 case -3214 : fHistAsMcMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
2663 case -3114 : fHistAsMcMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
2664 case -3322 : fHistAsMcMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
2665 case -3312 : fHistAsMcMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
2666 case -3334 : fHistAsMcMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
2667 case -1 : fHistAsMcMotherPdgCodeAntiLambda->Fill(9.5); break;
2668 default : fHistAsMcMotherPdgCodeAntiLambda->Fill(10.5);break;
2669 }
2670 }
2671 else if (lCheckSecondaryAntiLambda) {
f81f8d5e 2672 fHistAsMcSecondaryPtVsRapAntiLambda->Fill(lPtAntiLambda,lRapLambda);
9c7b62a0 2673 fHistAsMcSecondaryProdRadiusAntiLambda->Fill(mcPosMotherR);
2674 fHistAsMcSecondaryProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
2093003d 2675 if (lComeFromSigma) fHistAsMcSecondaryPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
9c7b62a0 2676 switch (lPdgcodeMotherOfMother) {
2677 case -3222 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(0.5); break;// Sigma +
2678 case -3212 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(1.5); break;// Sigma 0
2679 case -3112 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
2680 case -3224 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
2681 case -3214 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
2682 case -3114 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
2683 case -3322 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
2684 case -3312 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
2685 case -3334 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
2686 case -1 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(9.5); break;
2687 default : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(10.5);break;
2688 }
2689 }
2690 break;
2691
2692
2693 case 1 :
2694 fHistMassAntiLambdaMI->Fill(lInvMassAntiLambda);
2093003d 2695 fHistMassVsRadiusAntiLambdaMI->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
2696 fHistPtVsMassAntiLambdaMI->Fill(lInvMassAntiLambda,lPtAntiLambda);
9c7b62a0 2697 if (lCheckPIdAntiLambda) fHistPidMcMassAntiLambdaMI->Fill(lInvMassAntiLambda);
2698
2699 if(lCheckMcAntiLambda) {
2700 fHistAsMcMassAntiLambdaMI->Fill(lInvMassAntiLambda);
2093003d 2701 fHistAsMcPtAntiLambdaMI->Fill(lPtAntiLambda);
2702 fHistAsMcPtVsMassAntiLambdaMI->Fill(lInvMassAntiLambda,lPtAntiLambda);
2703 fHistAsMcMassVsRadiusAntiLambdaMI->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
2704 fHistAsMcResxAntiLambdaMI->Fill(rcPosXAntiLambda-mcPosX);
2705 fHistAsMcResyAntiLambdaMI->Fill(rcPosYAntiLambda-mcPosY);
2706 fHistAsMcReszAntiLambdaMI->Fill(rcPosZAntiLambda-mcPosZ);
2707 fHistAsMcResrVsRadiusAntiLambdaMI->Fill(rcPosRAntiLambda,rcPosRAntiLambda-mcPosR);
2708 fHistAsMcReszVsRadiusAntiLambdaMI->Fill(rcPosZAntiLambda,rcPosZAntiLambda-mcPosZ);
9c7b62a0 2709 fHistAsMcProdRadiusAntiLambdaMI->Fill(mcPosMotherR);
2710 fHistAsMcProdRadiusXvsYAntiLambdaMI->Fill(mcPosMotherX,mcPosMotherY);
2093003d 2711 fHistAsMcResPtAntiLambdaMI->Fill(deltaPtAntiLambda);
f81f8d5e 2712 fHistAsMcResPtVsRapAntiLambdaMI->Fill(deltaPtAntiLambda,lRapLambda);
2093003d 2713 fHistAsMcResPtVsPtAntiLambdaMI->Fill(deltaPtAntiLambda,lPtAntiLambda);
2714 if (lComeFromSigma) fHistAsMcPtAntiLambdaFromSigmaMI->Fill(lPtAntiLambda);
9c7b62a0 2715 switch (lPdgcodeMotherOfMother) {
2716 case -3222 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(0.5); break;// Sigma +
2717 case -3212 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(1.5); break;// Sigma 0
2718 case -3112 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(2.5); break;// Sigma -
2719 case -3224 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(3.5); break;// Sigma(1385) +
2720 case -3214 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(4.5); break;// Sigma(1385) 0
2721 case -3114 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(5.5); break;// Sigma(1385) -
2722 case -3322 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(6.5); break; // Xi 0
2723 case -3312 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(7.5); break; // Xi -
2724 case -3334 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(8.5); break; // Omega
2725 case -1 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(9.5); break;
2726 default : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(10.5);break;
2727 }
2728 }
2729 else if (lCheckSecondaryAntiLambda) {
f81f8d5e 2730 fHistAsMcSecondaryPtVsRapAntiLambdaMI->Fill(lPtAntiLambda,lRapLambda);
9c7b62a0 2731 fHistAsMcSecondaryProdRadiusAntiLambdaMI->Fill(mcPosMotherR);
2732 fHistAsMcSecondaryProdRadiusXvsYAntiLambdaMI->Fill(mcPosMotherX,mcPosMotherY);
2093003d 2733 if (lComeFromSigma) fHistAsMcSecondaryPtAntiLambdaFromSigmaMI->Fill(lPtAntiLambda);
9c7b62a0 2734 switch (lPdgcodeMotherOfMother) {
2735 case -3222 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(0.5); break;// Sigma +
2736 case -3212 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(1.5); break;// Sigma 0
2737 case -3112 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(2.5); break;// Sigma -
2738 case -3224 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(3.5); break;// Sigma(1385) +
2739 case -3214 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(4.5); break;// Sigma(1385) 0
2740 case -3114 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(5.5); break;// Sigma(1385) -
2741 case -3322 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(6.5); break; // Xi 0
2742 case -3312 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(7.5); break; // Xi -
2743 case -3334 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(8.5); break; // Omega
2744 case -1 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(9.5); break;
2745 default : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(10.5);break;
2746 }
2747 }
2748 break;
2749 }
2750 } // end rapidity condition
2751 } // end nsigma condition - antilambda
2752
2093003d 2753 if (negPiKF) delete negPiKF; negPiKF= NULL;
2754 if (posPiKF) delete posPiKF; posPiKF= NULL;
2755 if (posPKF) delete posPKF; posPKF = NULL;
2756 if (negAPKF) delete negAPKF; negAPKF= NULL;
2757
9c7b62a0 2758 } // end V0 loop
2759
e2e56010 2760 fHistV0Multiplicity->Fill(nv0s);
2761 fHistV0MultiplicityMI->Fill(nv0sMI);
2762
2093003d 2763 if (fAnalysisType == "ESD") { if(myPrimaryVertex) delete myPrimaryVertex; }
9c7b62a0 2764
2093003d 2765 if(myTracksCuts) delete myTracksCuts;
9c7b62a0 2766
2767 // Post output data
2768 PostData(1, fListHist);
2769}
2770
2771//________________________________________________________________________
2772void AliAnalysisTaskPerformanceStrange::Terminate(Option_t *)
2773{
2774 // Draw result to the screen
2775 // Called once at the end of the query
e2e56010 2776
f00218b3 2777 TList *cRetrievedList = 0x0;
2778 cRetrievedList = (TList*)GetOutputData(1);
2779
2780 if(!cRetrievedList){
2781 AliWarning("ERROR - AliAnalysisTaskPerformanceStrange: output data container list not available\n"); return;
2782 }
2093003d 2783
f00218b3 2784 fHistV0Multiplicity = dynamic_cast<TH1F*> (cRetrievedList->FindObject("fHistV0Multiplicity"));
e2e56010 2785 if (!fHistV0Multiplicity) {
2786 Printf("ERROR: fHistV0Multiplicity not available");
2787 return;
2788 }
2789
f00218b3 2790 fHistV0MultiplicityMI = dynamic_cast<TH1F*> (cRetrievedList->FindObject("fHistV0MultiplicityMI"));
e2e56010 2791 if (!fHistV0MultiplicityMI) {
2792 Printf("ERROR: fHistV0MultiplicityMI not available");
2793 return;
2794 }
2795
2093003d 2796 TCanvas *canPerformanceStrange = new TCanvas("AliAnalysisTaskCheckV0","Multiplicity",10,10,510,510);
e2e56010 2797 canPerformanceStrange->Divide(2,1);
2798 if (fHistV0Multiplicity->GetMaximum() > 0.) canPerformanceStrange->cd(1)->SetLogy();
2799 fHistV0Multiplicity->SetMarkerStyle(25);
2800 fHistV0Multiplicity->DrawCopy("E");
2801 if (fHistV0MultiplicityMI->GetMaximum() > 0.) canPerformanceStrange->cd(2)->SetLogy();
2802 fHistV0MultiplicityMI->SetMarkerStyle(24);
2803 fHistV0MultiplicityMI->DrawCopy("E");
2804
2805
9c7b62a0 2806
2807}
2808
2809//----------------------------------------------------------------------------
2810
2811Double_t AliAnalysisTaskPerformanceStrange::MyRapidity(Double_t rE, Double_t rPz) const
2812{
2813 // Local calculation for rapidity
2814 return 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13));
2815}
2816//----------------------------------------------------------------------------
2817