2 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
16 //-----------------------------------------------------------------
17 // AliAnalysisTaskPerformanceStrange class
18 // This task is for a performance study of V0 identification.
19 // It works with MC info and AOD tree.
20 // Author: Peter Kalinak peter.kalinak@cern.ch
21 //-----------------------------------------------------------------
23 #include <Riostream.h>
36 #include "AliAnalysisManager.h"
37 #include "AliPhysicsSelection.h"
38 #include "AliBackgroundSelection.h"
39 #include "AliMultiplicity.h"
40 #include "AliAODEvent.h"
41 #include "AliAODVertex.h"
42 #include "AliAODTrack.h"
44 #include "AliAODMCHeader.h"
45 #include "AliAODInputHandler.h"
46 #include "AliAODPid.h"
47 #include "AliVEvent.h"
48 #include "AliAODMCParticle.h"
50 #include "AliPIDResponse.h"
51 #include "AliCentrality.h"
52 #include "AliAnalysisTaskPerformanceStrangeAOD.h"
55 ClassImp(AliAnalysisTaskPerformanceStrangeAOD)
58 //________________________________________________________________________
59 AliAnalysisTaskPerformanceStrangeAOD::AliAnalysisTaskPerformanceStrangeAOD()
60 : AliAnalysisTaskSE(), fAnalysisMC(0), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infoCut"),fDown(0),fUp(0), fAOD(0), fListHist(0),fPIDResponse(0),fQASelector(0),fCentMin(0),fCentMax(0),
62 fHistMCPrimaryVertexX(0),
63 fHistMCPrimaryVertexY(0),
64 fHistMCPrimaryVertexZ(0),
65 fHistMCMultiplicityPrimary(0),
66 fHistMCMultiplicityTracks(0),
68 fHistMCtracksProdRadiusK0s(0),
69 fHistMCtracksProdRadiusLambda(0),
70 fHistMCtracksProdRadiusAntiLambda(0),
71 fHistMCtracksDecayRadiusK0s(0),
72 fHistMCtracksDecayRadiusLambda(0),
73 fHistMCtracksDecayRadiusAntiLambda(0),
75 fHistMCPtAllLambda(0),
76 fHistMCPtAllAntiLambda(0),
77 fHistMCProdRadiusK0s(0),
78 fHistMCProdRadiusLambda(0),
79 fHistMCProdRadiusAntiLambda(0),
81 fHistMCRapInPtRangeK0s(0),
83 fHistMCRapInPtRangeLambda(0),
84 fHistMCRapAntiLambda(0),
85 fHistMCRapInPtRangeAntiLambda(0),
87 fHistMCRapInPtRangeXi(0),
89 fHistMCRapInPtRangePhi(0),
90 ////////////////////////////////////////
93 fHistMCPtAntiLambda(0),
94 ///////////////////////////////////////////
96 fHistMCPtLambdaFromSigma(0),
97 fHistMCPtAntiLambdaFromSigma(0),
99 fHistNTimesRecLambda(0),
100 fHistNTimesRecAntiLambda(0),
101 fHistNTimesRecK0sVsPt(0),
102 fHistNTimesRecLambdaVsPt(0),
103 fHistNTimesRecAntiLambdaVsPt(0),
104 fHistNumberEvents(0),
105 fHistTrackPerEvent(0),
107 fHistTrackletPerEvent(0),
108 fHistMCDaughterTrack(0),
109 fHistSPDPrimaryVertexZ(0),
110 fHistPrimaryVertexX(0),
111 fHistPrimaryVertexY(0),
112 fHistPrimaryVertexZ(0),
113 fHistPrimaryVertexResX(0),
114 fHistPrimaryVertexResY(0),
115 fHistPrimaryVertexResZ(0),
116 fHistPrimaryVertexPosXV0events(0),
117 fHistPrimaryVertexPosYV0events(0),
118 fHistPrimaryVertexPosZV0events(0),
120 ////////////////////////////////////////
122 fHistDcaPosToPrimVertexK0(0),
123 fHistDcaNegToPrimVertexK0(0),
125 fHistDecayLengthV0K0(0),
126 fHistDcaV0DaughtersK0(0),
128 fHistCosPointAngleK0(0),
130 fHistDcaPosToPrimVertexK0vsMassK0(0),
131 fHistDcaNegToPrimVertexK0vsMassK0(0),
132 fHistRadiusV0K0vsMassK0(0),
133 fHistDecayLengthV0K0vsMassK0(0),
134 fHistDcaV0DaughtersK0vsMassK0(0),
135 fHistCosPointAngleK0vsMassK0(0),
137 fHistDcaPosToPrimVertexK0vsMassK0pt1(0),
138 fHistDcaNegToPrimVertexK0vsMassK0pt1(0),
139 fHistRadiusV0K0vsMassK0pt1(0),
140 fHistDecayLengthV0K0vsMassK0pt1(0),
141 fHistDcaV0DaughtersK0vsMassK0pt1(0),
142 fHistCosPointAngleK0vsMassK0pt1(0),
144 fHistDcaPosToPrimVertexK0vsMassK0pt2(0),
145 fHistDcaNegToPrimVertexK0vsMassK0pt2(0),
146 fHistRadiusV0K0vsMassK0pt2(0),
147 fHistDecayLengthV0K0vsMassK0pt2(0),
148 fHistDcaV0DaughtersK0vsMassK0pt2(0),
149 fHistCosPointAngleK0vsMassK0pt2(0),
151 fHistDcaPosToPrimVertexK0vsMassK0pt3(0),
152 fHistDcaNegToPrimVertexK0vsMassK0pt3(0),
153 fHistRadiusV0K0vsMassK0pt3(0),
154 fHistDecayLengthV0K0vsMassK0pt3(0),
155 fHistDcaV0DaughtersK0vsMassK0pt3(0),
156 fHistCosPointAngleK0vsMassK0pt3(0),
158 /////////// Lambda ///////////////////////////
160 fHistDcaPosToPrimVertexL(0),
161 fHistDcaNegToPrimVertexL(0),
163 fHistDecayLengthV0L(0),
164 fHistDcaV0DaughtersL(0),
166 fHistCosPointAngleL(0),
169 fHistDcaPosToPrimVertexLvsMassL(0),
170 fHistDcaNegToPrimVertexLvsMassL(0),
171 fHistRadiusV0LvsMassL(0),
172 fHistDecayLengthV0LvsMassL(0),
173 fHistDcaV0DaughtersLvsMassL(0),
174 fHistCosPointAngleLvsMassL(0),
175 fHistCosPointAngleLvsMassVsPtsigL(0),
176 fHistCosPointAngleLvsMassVsPtbackL(0),
179 fHistDcaPosToPrimVertexLambdaVsMasspt1(0),
180 fHistDcaNegToPrimVertexLambdaVsMasspt1(0),
181 fHistRadiusV0LambdaVsMasspt1(0),
182 fHistDecayLengthV0LambdaVsMasspt1(0),
183 fHistDcaV0DaughtersLambdaVsMasspt1(0),
184 fHistCosPointAngleLambdaVsMasspt1(0),
186 fHistDcaPosToPrimVertexLambdaVsMasspt2(0),
187 fHistDcaNegToPrimVertexLambdaVsMasspt2(0),
188 fHistRadiusV0LambdaVsMasspt2(0),
189 fHistDecayLengthV0LambdaVsMasspt2(0),
190 fHistDcaV0DaughtersLambdaVsMasspt2(0),
191 fHistCosPointAngleLambdaVsMasspt2(0),
193 fHistDcaPosToPrimVertexLambdaVsMasspt3(0),
194 fHistDcaNegToPrimVertexLambdaVsMasspt3(0),
195 fHistRadiusV0LambdaVsMasspt3(0),
196 fHistDecayLengthV0LambdaVsMasspt3(0),
197 fHistDcaV0DaughtersLambdaVsMasspt3(0),
198 fHistCosPointAngleLambdaVsMasspt3(0),
202 /////////Antilambda ///////////////////
203 fHistDcaPosToPrimVertexAntiL(0),
204 fHistDcaNegToPrimVertexAntiL(0),
205 fHistRadiusV0AntiL(0),
206 fHistDecayLengthV0AntiL(0),
207 fHistDcaV0DaughtersAntiL(0),
209 fHistCosPointAngleAntiL(0),
211 fHistDcaPosToPrimVertexAntiLvsMass(0),
212 fHistDcaNegToPrimVertexAntiLvsMass(0),
213 fHistRadiusV0AntiLvsMass(0),
214 fHistDecayLengthV0AntiLvsMass(0),
215 fHistDcaV0DaughtersAntiLvsMass(0),
216 fHistCosPointAngleAntiLvsMass(0),
220 fHistDcaPosToPrimVertexAntiLVsMasspt1(0),
221 fHistDcaNegToPrimVertexAntiLVsMasspt1(0),
222 fHistRadiusV0AntiLVsMasspt1(0),
223 fHistDecayLengthV0AntiLVsMasspt1(0),
224 fHistDcaV0DaughtersAntiLVsMasspt1(0),
225 fHistCosPointAngleAntiLVsMasspt1(0),
227 fHistDcaPosToPrimVertexAntiLVsMasspt2(0),
228 fHistDcaNegToPrimVertexAntiLVsMasspt2(0),
229 fHistRadiusV0AntiLVsMasspt2(0),
230 fHistDecayLengthV0AntiLVsMasspt2(0),
231 fHistDcaV0DaughtersAntiLVsMasspt2(0),
232 fHistCosPointAngleAntiLVsMasspt2(0),
234 fHistDcaPosToPrimVertexAntiLVsMasspt3(0),
235 fHistDcaNegToPrimVertexAntiLVsMasspt3(0),
236 fHistRadiusV0AntiLVsMasspt3(0),
237 fHistDecayLengthV0AntiLVsMasspt3(0),
238 fHistDcaV0DaughtersAntiLVsMasspt3(0),
239 fHistCosPointAngleAntiLVsMasspt3(0),
241 /////////////////////////////////////////
242 fHistV0Multiplicity(0),
245 fHistMassAntiLambda(0),
246 fHistMassVsRadiusK0(0),
247 fHistMassVsRadiusLambda(0),
248 fHistMassVsRadiusAntiLambda(0),
250 ///////////////////////////////////////
252 fHistPtVsMassLambda(0),
253 fHistPtVsMassAntiLambda(0),
254 ////////////////////////////////////////
256 fHistArmenterosPodolanski(0),
257 fHistK0sMassVsLambdaMass(0),
258 fHistTPCsigPLambda(0),
259 fHistTPCsigPAntiLambda(0),
260 fHistNSigmaProton(0),
261 fHistNsigmaPosPionAntiLambda(0),
262 fHistNsigmaNegProtonAntiLambda(0),
263 fHistNsigmaPosProtonLambda(0),
264 fHistNsigmaNegPionLambda(0),
265 fHistNsigmaPosProtonAntiLambda(0),
266 fHistNsigmaNegPionAntiLambda(0),
267 fHistNsigmaPosPionK0(0),
268 fHistNsigmaNegPionK0(0),
270 fHistAsMcRapLambda(0),
271 fHistAsMcRapAntiLambda(0),
273 fHistAsMcPtLambda(0),
274 fHistAsMcPtAntiLambda(0),
275 fHistAsMcPtZoomK0(0),
276 fHistAsMcPtZoomLambda(0),
277 fHistAsMcPtZoomAntiLambda(0),
278 fHistAsMcProdRadiusK0(0),
279 fHistAsMcProdRadiusLambda(0),
280 fHistAsMcProdRadiusAntiLambda(0),
281 fHistAsMcProdRadiusXvsYK0s(0),
282 fHistAsMcProdRadiusXvsYLambda(0),
283 fHistAsMcProdRadiusXvsYAntiLambda(0),
285 fHistPidMcMassLambda(0),
286 fHistPidMcMassAntiLambda(0),
288 fHistAsMcMassLambda(0),
289 fHistAsMcMassAntiLambda(0),
290 fHistAsMcPtVsMassK0(0),
291 fHistAsMcPtVsMassLambda(0),
292 fHistAsMcPtVsMassAntiLambda(0),
293 fHistAsMcMassVsRadiusK0(0),
294 fHistAsMcMassVsRadiusLambda(0),
295 fHistAsMcMassVsRadiusAntiLambda(0),
299 fHistAsMcResrVsRadiusK0(0),
300 fHistAsMcReszVsRadiusK0(0),
301 fHistAsMcResxLambda(0),
302 fHistAsMcResyLambda(0),
303 fHistAsMcReszLambda(0),
304 fHistAsMcResrVsRadiusLambda(0),
305 fHistAsMcReszVsRadiusLambda(0),
306 fHistAsMcResxAntiLambda(0),
307 fHistAsMcResyAntiLambda(0),
308 fHistAsMcReszAntiLambda(0),
309 fHistAsMcResrVsRadiusAntiLambda(0),
310 fHistAsMcReszVsRadiusAntiLambda(0),
312 fHistAsMcResPtLambda(0),
313 fHistAsMcResPtAntiLambda(0),
314 fHistAsMcResPtVsRapK0(0),
315 fHistAsMcResPtVsRapLambda(0),
316 fHistAsMcResPtVsRapAntiLambda(0),
317 fHistAsMcResPtVsPtK0(0),
318 fHistAsMcResPtVsPtLambda(0),
319 fHistAsMcResPtVsPtAntiLambda(0),
320 fHistAsMcMotherPdgCodeK0s(0),
321 fHistAsMcMotherPdgCodeLambda(0),
322 fHistAsMcMotherPdgCodeAntiLambda(0),
323 fHistAsMcPtLambdaFromSigma(0),
324 fHistAsMcPtAntiLambdaFromSigma(0),
325 fHistAsMcSecondaryPtVsRapK0s(0),
326 fHistAsMcSecondaryPtVsRapLambda(0),
327 fHistAsMcSecondaryPtVsRapAntiLambda(0),
328 fHistAsMcSecondaryProdRadiusK0s(0),
329 fHistAsMcSecondaryProdRadiusLambda(0),
330 fHistAsMcSecondaryProdRadiusAntiLambda(0),
331 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
332 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
333 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
334 fHistAsMcSecondaryMotherPdgCodeK0s(0),
335 fHistAsMcSecondaryMotherPdgCodeLambda(0),
336 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
337 fHistAsMcSecondaryPtLambdaFromSigma(0),
338 fHistAsMcSecondaryPtAntiLambdaFromSigma(0)
348 //________________________________________________________________________
349 AliAnalysisTaskPerformanceStrangeAOD::AliAnalysisTaskPerformanceStrangeAOD(const char *name)
350 : AliAnalysisTaskSE(name), fAnalysisMC(0), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infocut"),fDown(0),fUp(0), fAOD(0), fListHist(),fPIDResponse(0),fQASelector(0),fCentMin(0),fCentMax(0),
352 fHistMCPrimaryVertexX(0),
353 fHistMCPrimaryVertexY(0),
354 fHistMCPrimaryVertexZ(0),
355 fHistMCMultiplicityPrimary(0),
356 fHistMCMultiplicityTracks(0),
358 fHistMCtracksProdRadiusK0s(0),
359 fHistMCtracksProdRadiusLambda(0),
360 fHistMCtracksProdRadiusAntiLambda(0),
361 fHistMCtracksDecayRadiusK0s(0),
362 fHistMCtracksDecayRadiusLambda(0),
363 fHistMCtracksDecayRadiusAntiLambda(0),
365 fHistMCPtAllLambda(0),
366 fHistMCPtAllAntiLambda(0),
367 fHistMCProdRadiusK0s(0),
368 fHistMCProdRadiusLambda(0),
369 fHistMCProdRadiusAntiLambda(0),
371 fHistMCRapInPtRangeK0s(0),
373 fHistMCRapInPtRangeLambda(0),
374 fHistMCRapAntiLambda(0),
375 fHistMCRapInPtRangeAntiLambda(0),
377 fHistMCRapInPtRangeXi(0),
379 fHistMCRapInPtRangePhi(0),
380 ////////////////////////////////////////////////
383 fHistMCPtAntiLambda(0),
384 /////////////////////////////////////////////////
385 fHistMCPtLambdaFromSigma(0),
386 fHistMCPtAntiLambdaFromSigma(0),
387 fHistNTimesRecK0s(0),
388 fHistNTimesRecLambda(0),
389 fHistNTimesRecAntiLambda(0),
390 fHistNTimesRecK0sVsPt(0),
391 fHistNTimesRecLambdaVsPt(0),
392 fHistNTimesRecAntiLambdaVsPt(0),
393 fHistNumberEvents(0),
394 fHistTrackPerEvent(0),
396 fHistTrackletPerEvent(0),
397 fHistMCDaughterTrack(0),
398 fHistSPDPrimaryVertexZ(0),
399 fHistPrimaryVertexX(0),
400 fHistPrimaryVertexY(0),
401 fHistPrimaryVertexZ(0),
402 fHistPrimaryVertexResX(0),
403 fHistPrimaryVertexResY(0),
404 fHistPrimaryVertexResZ(0),
405 fHistPrimaryVertexPosXV0events(0),
406 fHistPrimaryVertexPosYV0events(0),
407 fHistPrimaryVertexPosZV0events(0),
409 ////////////////////////////////////////
411 fHistDcaPosToPrimVertexK0(0),
412 fHistDcaNegToPrimVertexK0(0),
414 fHistDecayLengthV0K0(0),
415 fHistDcaV0DaughtersK0(0),
417 fHistCosPointAngleK0(0),
419 fHistDcaPosToPrimVertexK0vsMassK0(0),
420 fHistDcaNegToPrimVertexK0vsMassK0(0),
421 fHistRadiusV0K0vsMassK0(0),
422 fHistDecayLengthV0K0vsMassK0(0),
423 fHistDcaV0DaughtersK0vsMassK0(0),
424 fHistCosPointAngleK0vsMassK0(0),
427 fHistDcaPosToPrimVertexK0vsMassK0pt1(0),
428 fHistDcaNegToPrimVertexK0vsMassK0pt1(0),
429 fHistRadiusV0K0vsMassK0pt1(0),
430 fHistDecayLengthV0K0vsMassK0pt1(0),
431 fHistDcaV0DaughtersK0vsMassK0pt1(0),
432 fHistCosPointAngleK0vsMassK0pt1(0),
434 fHistDcaPosToPrimVertexK0vsMassK0pt2(0),
435 fHistDcaNegToPrimVertexK0vsMassK0pt2(0),
436 fHistRadiusV0K0vsMassK0pt2(0),
437 fHistDecayLengthV0K0vsMassK0pt2(0),
438 fHistDcaV0DaughtersK0vsMassK0pt2(0),
439 fHistCosPointAngleK0vsMassK0pt2(0),
441 fHistDcaPosToPrimVertexK0vsMassK0pt3(0),
442 fHistDcaNegToPrimVertexK0vsMassK0pt3(0),
443 fHistRadiusV0K0vsMassK0pt3(0),
444 fHistDecayLengthV0K0vsMassK0pt3(0),
445 fHistDcaV0DaughtersK0vsMassK0pt3(0),
446 fHistCosPointAngleK0vsMassK0pt3(0),
448 /////////////////////////////////////////
450 fHistDcaPosToPrimVertexL(0),
451 fHistDcaNegToPrimVertexL(0),
453 fHistDecayLengthV0L(0),
454 fHistDcaV0DaughtersL(0),
456 fHistCosPointAngleL(0),
459 fHistDcaPosToPrimVertexLvsMassL(0),
460 fHistDcaNegToPrimVertexLvsMassL(0),
461 fHistRadiusV0LvsMassL(0),
462 fHistDecayLengthV0LvsMassL(0),
463 fHistDcaV0DaughtersLvsMassL(0),
464 fHistCosPointAngleLvsMassL(0),
465 fHistCosPointAngleLvsMassVsPtsigL(0),
466 fHistCosPointAngleLvsMassVsPtbackL(0),
470 fHistDcaPosToPrimVertexLambdaVsMasspt1(0),
471 fHistDcaNegToPrimVertexLambdaVsMasspt1(0),
472 fHistRadiusV0LambdaVsMasspt1(0),
473 fHistDecayLengthV0LambdaVsMasspt1(0),
474 fHistDcaV0DaughtersLambdaVsMasspt1(0),
475 fHistCosPointAngleLambdaVsMasspt1(0),
477 fHistDcaPosToPrimVertexLambdaVsMasspt2(0),
478 fHistDcaNegToPrimVertexLambdaVsMasspt2(0),
479 fHistRadiusV0LambdaVsMasspt2(0),
480 fHistDecayLengthV0LambdaVsMasspt2(0),
481 fHistDcaV0DaughtersLambdaVsMasspt2(0),
482 fHistCosPointAngleLambdaVsMasspt2(0),
484 fHistDcaPosToPrimVertexLambdaVsMasspt3(0),
485 fHistDcaNegToPrimVertexLambdaVsMasspt3(0),
486 fHistRadiusV0LambdaVsMasspt3(0),
487 fHistDecayLengthV0LambdaVsMasspt3(0),
488 fHistDcaV0DaughtersLambdaVsMasspt3(0),
489 fHistCosPointAngleLambdaVsMasspt3(0),
491 ////////////AntiLambda
492 fHistDcaPosToPrimVertexAntiL(0),
493 fHistDcaNegToPrimVertexAntiL(0),
494 fHistRadiusV0AntiL(0),
495 fHistDecayLengthV0AntiL(0),
496 fHistDcaV0DaughtersAntiL(0),
498 fHistCosPointAngleAntiL(0),
500 fHistDcaPosToPrimVertexAntiLvsMass(0),
501 fHistDcaNegToPrimVertexAntiLvsMass(0),
502 fHistRadiusV0AntiLvsMass(0),
503 fHistDecayLengthV0AntiLvsMass(0),
504 fHistDcaV0DaughtersAntiLvsMass(0),
505 fHistCosPointAngleAntiLvsMass(0),
509 fHistDcaPosToPrimVertexAntiLVsMasspt1(0),
510 fHistDcaNegToPrimVertexAntiLVsMasspt1(0),
511 fHistRadiusV0AntiLVsMasspt1(0),
512 fHistDecayLengthV0AntiLVsMasspt1(0),
513 fHistDcaV0DaughtersAntiLVsMasspt1(0),
514 fHistCosPointAngleAntiLVsMasspt1(0),
516 fHistDcaPosToPrimVertexAntiLVsMasspt2(0),
517 fHistDcaNegToPrimVertexAntiLVsMasspt2(0),
518 fHistRadiusV0AntiLVsMasspt2(0),
519 fHistDecayLengthV0AntiLVsMasspt2(0),
520 fHistDcaV0DaughtersAntiLVsMasspt2(0),
521 fHistCosPointAngleAntiLVsMasspt2(0),
523 fHistDcaPosToPrimVertexAntiLVsMasspt3(0),
524 fHistDcaNegToPrimVertexAntiLVsMasspt3(0),
525 fHistRadiusV0AntiLVsMasspt3(0),
526 fHistDecayLengthV0AntiLVsMasspt3(0),
527 fHistDcaV0DaughtersAntiLVsMasspt3(0),
528 fHistCosPointAngleAntiLVsMasspt3(0),
531 /////////////////////////////////////////
533 fHistV0Multiplicity(0),
536 fHistMassAntiLambda(0),
537 fHistMassVsRadiusK0(0),
538 fHistMassVsRadiusLambda(0),
539 fHistMassVsRadiusAntiLambda(0),
540 /////////////////////////////////////////////
542 fHistPtVsMassLambda(0),
543 fHistPtVsMassAntiLambda(0),
544 ///////////////////////////////////////////////////
545 fHistArmenterosPodolanski(0),
546 fHistK0sMassVsLambdaMass(0),
547 fHistTPCsigPLambda(0),
548 fHistTPCsigPAntiLambda(0),
549 fHistNSigmaProton(0),
550 fHistNsigmaPosPionAntiLambda(0),
551 fHistNsigmaNegProtonAntiLambda(0),
552 fHistNsigmaPosProtonLambda(0),
553 fHistNsigmaNegPionLambda(0),
554 fHistNsigmaPosProtonAntiLambda(0),
555 fHistNsigmaNegPionAntiLambda(0),
556 fHistNsigmaPosPionK0(0),
557 fHistNsigmaNegPionK0(0),
559 fHistAsMcRapLambda(0),
560 fHistAsMcRapAntiLambda(0),
561 ///////////////////////////////////
563 fHistAsMcPtLambda(0),
564 fHistAsMcPtAntiLambda(0),
565 /////////////////////////////////////
566 fHistAsMcPtZoomK0(0),
567 fHistAsMcPtZoomLambda(0),
568 fHistAsMcPtZoomAntiLambda(0),
569 fHistAsMcProdRadiusK0(0),
570 fHistAsMcProdRadiusLambda(0),
571 fHistAsMcProdRadiusAntiLambda(0),
572 fHistAsMcProdRadiusXvsYK0s(0),
573 fHistAsMcProdRadiusXvsYLambda(0),
574 fHistAsMcProdRadiusXvsYAntiLambda(0),
576 fHistPidMcMassLambda(0),
577 fHistPidMcMassAntiLambda(0),
579 fHistAsMcMassLambda(0),
580 fHistAsMcMassAntiLambda(0),
581 fHistAsMcPtVsMassK0(0),
582 fHistAsMcPtVsMassLambda(0),
583 fHistAsMcPtVsMassAntiLambda(0),
584 fHistAsMcMassVsRadiusK0(0),
585 fHistAsMcMassVsRadiusLambda(0),
586 fHistAsMcMassVsRadiusAntiLambda(0),
590 fHistAsMcResrVsRadiusK0(0),
591 fHistAsMcReszVsRadiusK0(0),
592 fHistAsMcResxLambda(0),
593 fHistAsMcResyLambda(0),
594 fHistAsMcReszLambda(0),
595 fHistAsMcResrVsRadiusLambda(0),
596 fHistAsMcReszVsRadiusLambda(0),
597 fHistAsMcResxAntiLambda(0),
598 fHistAsMcResyAntiLambda(0),
599 fHistAsMcReszAntiLambda(0),
600 fHistAsMcResrVsRadiusAntiLambda(0),
601 fHistAsMcReszVsRadiusAntiLambda(0),
603 fHistAsMcResPtLambda(0),
604 fHistAsMcResPtAntiLambda(0),
605 fHistAsMcResPtVsRapK0(0),
606 fHistAsMcResPtVsRapLambda(0),
607 fHistAsMcResPtVsRapAntiLambda(0),
608 fHistAsMcResPtVsPtK0(0),
609 fHistAsMcResPtVsPtLambda(0),
610 fHistAsMcResPtVsPtAntiLambda(0),
611 fHistAsMcMotherPdgCodeK0s(0),
612 fHistAsMcMotherPdgCodeLambda(0),
613 fHistAsMcMotherPdgCodeAntiLambda(0),
614 fHistAsMcPtLambdaFromSigma(0),
615 fHistAsMcPtAntiLambdaFromSigma(0),
616 fHistAsMcSecondaryPtVsRapK0s(0),
617 fHistAsMcSecondaryPtVsRapLambda(0),
618 fHistAsMcSecondaryPtVsRapAntiLambda(0),
619 fHistAsMcSecondaryProdRadiusK0s(0),
620 fHistAsMcSecondaryProdRadiusLambda(0),
621 fHistAsMcSecondaryProdRadiusAntiLambda(0),
622 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
623 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
624 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
625 fHistAsMcSecondaryMotherPdgCodeK0s(0),
626 fHistAsMcSecondaryMotherPdgCodeLambda(0),
627 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
628 fHistAsMcSecondaryPtLambdaFromSigma(0),
629 fHistAsMcSecondaryPtAntiLambdaFromSigma(0)
634 // Define output slots only here
635 // Output slot #1 writes into a TList container
636 DefineOutput(1, TList::Class());
637 // DefineOutput(3, AliESDtrackCuts::Class());
639 AliAnalysisTaskPerformanceStrangeAOD::~AliAnalysisTaskPerformanceStrangeAOD() {
643 if (fListHist && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fListHist; fListHist = 0x0; }
644 // if (fTracksCuts && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fTracksCuts; fTracksCuts = 0x0; }
648 //________________________________________________________________________
649 void AliAnalysisTaskPerformanceStrangeAOD::UserCreateOutputObjects()
654 //*******************
655 fListHist = new TList();
656 fListHist->SetOwner();
657 //fListHistCuts = new TList();
658 //fListHistCuts->SetOwner();
660 // Bo: tbd: condition before allocation (i.e. if (!fHistMCMultiplicityPrimary){...} for each histo...
667 fHistMCPrimaryVertexX = new TH1F("h1MCPrimaryVertexX", "MC Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
668 fListHist->Add(fHistMCPrimaryVertexX);
670 fHistMCPrimaryVertexY = new TH1F("h1MCPrimaryVertexY", "MC Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
671 fListHist->Add(fHistMCPrimaryVertexY);
673 fHistMCPrimaryVertexZ = new TH1F("h1MCPrimaryVertexZ", "MC Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
674 fListHist->Add(fHistMCPrimaryVertexZ);
677 fHistMCMultiplicityPrimary = new TH1F("h1MCMultiplicityPrimary", "MC Primary Particles;NPrimary;Count", 201, -0.5, 200.5);
678 fListHist->Add(fHistMCMultiplicityPrimary);
680 fHistMCMultiplicityTracks = new TH1F("h1MCMultiplicityTracks", "MC Tracks;Ntracks;Count", 201, -0.5, 200.5);
681 fListHist->Add(fHistMCMultiplicityTracks);
683 // Production Radius of non-primary particles:
684 fHistMCtracksProdRadiusK0s = new TH2F("h2MCtracksProdRadiusK0s","Non-primary MC K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
685 fListHist->Add(fHistMCtracksProdRadiusK0s);
687 fHistMCtracksProdRadiusLambda = new TH2F("h2MCtracksProdRadiusLambda","Non-primary MC #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
688 fListHist->Add(fHistMCtracksProdRadiusLambda);
690 fHistMCtracksProdRadiusAntiLambda = new TH2F("h2MCtracksProdRadiusAntiLambda","Non-primary MC #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
691 fListHist->Add(fHistMCtracksProdRadiusAntiLambda);
693 // Decay Radius of non-primary particles:
694 fHistMCtracksDecayRadiusK0s = new TH1F("h1MCtracksDecayRadiusK0s","Non-primary MC K^{0} Decay Radius;r (cm)",101,-1,100);
695 fListHist->Add(fHistMCtracksDecayRadiusK0s);
697 fHistMCtracksDecayRadiusLambda = new TH1F("h1MCtracksDecayRadiusLambda","Non-primary MC #Lambda^{0} Decay Radius;r (cm)",101,-1,100);
698 fListHist->Add(fHistMCtracksDecayRadiusLambda);
700 fHistMCtracksDecayRadiusAntiLambda = new TH1F("h1MCtracksDecayRadiusAntiLambda","Non-primary #bar{#Lambda}^{0} Decay Radius;r (cm)",100,1,101);
701 fListHist->Add(fHistMCtracksDecayRadiusAntiLambda);
703 // Pt Distribution of non-primary particles:
704 fHistMCPtAllK0s = new TH1F("h1MCPtAllK0s", "Non-primary MC K^{0};p_{t} (GeV/c);Counts",240,0,12);
705 fListHist->Add(fHistMCPtAllK0s);
707 fHistMCPtAllLambda = new TH1F("h1MCPtAllLambda", "Non-primary MC #Lambda^{0};p_{t} (GeV/c);Counts",240,0,12);
708 fListHist->Add(fHistMCPtAllLambda);
710 fHistMCPtAllAntiLambda = new TH1F("h1MCPtAllAntiLambda", "Non-primary MC #bar{#Lambda}^{0};p_{t} (GeV/c);Counts",240,0,12);
711 fListHist->Add(fHistMCPtAllAntiLambda);
714 fHistMCProdRadiusK0s = new TH1F("h1MCProdRadiusK0s", "MC K^{0} Production Radius;r (cm);Count", 400, -2, 2);
715 fListHist->Add(fHistMCProdRadiusK0s);
717 fHistMCProdRadiusLambda = new TH1F("h1MCProdRadiusLambda", "MC #Lambda^{0} Production Radius;r (cm);Count", 400, -2, 2);
718 fListHist->Add(fHistMCProdRadiusLambda);
720 fHistMCProdRadiusAntiLambda = new TH1F("h1MCProdRadiusAntiLambda", "MC #bar{#Lambda}^{0} Production Radius;r (cm);Count", 400, -2, 2);
721 fListHist->Add(fHistMCProdRadiusAntiLambda);
723 // Rapidity distribution:
724 fHistMCRapK0s = new TH1F("h1MCRapK0s", "K^{0};y",160,-4,4);
725 fListHist->Add(fHistMCRapK0s);
727 fHistMCRapInPtRangeK0s = new TH1F("h1MCRapInPtRangeK0s", "K^{0};y",160,-4,4);
728 fListHist->Add(fHistMCRapInPtRangeK0s);
730 fHistMCRapLambda = new TH1F("h1MCRapLambda", "#Lambda;y",160,-4,4);
731 fListHist->Add(fHistMCRapLambda);
733 fHistMCRapInPtRangeLambda = new TH1F("h1MCRapInPtRangeLambda", "#Lambda;y",160,-4,4);
734 fListHist->Add(fHistMCRapInPtRangeLambda);
736 fHistMCRapAntiLambda = new TH1F("h1MCRapAntiLambda", "#bar{#Lambda};y",160,-4,4);
737 fListHist->Add(fHistMCRapAntiLambda);
739 fHistMCRapInPtRangeAntiLambda = new TH1F("h1MCRapInPtRangeAntiLambda", "#bar{#Lambda};y",160,-4,4);
740 fListHist->Add(fHistMCRapInPtRangeAntiLambda);
742 fHistMCRapXi = new TH1F("h1MCRapXi", "Xi;y",160,-4,4);
743 fListHist->Add(fHistMCRapXi);
745 fHistMCRapInPtRangeXi = new TH1F("h1MCRapInPtRangeXi", "Xi;y",160,-4,4);
746 fListHist->Add(fHistMCRapInPtRangeXi);
748 fHistMCRapPhi = new TH1F("h1MCRapPhi", "Phi;y",160,-4,4);
749 fListHist->Add(fHistMCRapPhi);
751 fHistMCRapInPtRangePhi = new TH1F("h1MCRapInPtRangePhi", "Phi;y",160,-4,4);
752 fListHist->Add(fHistMCRapInPtRangePhi);
755 fHistMCPtK0s = new TH1F("h1MCPtK0s", "K^{0};p_{t} (GeV/c)",240,0,12);
756 fListHist->Add(fHistMCPtK0s);
758 fHistMCPtLambda = new TH1F("h1MCPtLambda", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
759 fListHist->Add(fHistMCPtLambda);
761 fHistMCPtAntiLambda = new TH1F("h1MCPtAntiLambda", "#AntiLambda^{0};p_{t} (GeV/c)",240,0,12);
762 fListHist->Add(fHistMCPtAntiLambda);
764 // Pt distribution of Lambda coming from Sigma decay
765 fHistMCPtLambdaFromSigma = new TH1F("h1MCPtLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
766 fListHist->Add(fHistMCPtLambdaFromSigma);
768 fHistMCPtAntiLambdaFromSigma = new TH1F("h1MCPtAntiLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
769 fListHist->Add(fHistMCPtAntiLambdaFromSigma);
771 // Multiple reconstruction studies
772 fHistNTimesRecK0s = new TH1F("h1NTimesRecK0s","number of times a K0s is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
773 fListHist->Add(fHistNTimesRecK0s);
775 fHistNTimesRecLambda = new TH1F("h1NTimesRecLambda","number of times a Lambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
776 fListHist->Add(fHistNTimesRecLambda);
778 fHistNTimesRecAntiLambda = new TH1F("h1NTimesRecAntiLambda","number of times an AntiLambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
779 fListHist->Add(fHistNTimesRecAntiLambda);
781 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);
782 fListHist->Add(fHistNTimesRecK0sVsPt);
784 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);
785 fListHist->Add(fHistNTimesRecLambdaVsPt);
787 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);
788 fListHist->Add(fHistNTimesRecAntiLambdaVsPt);
790 //***********************************
791 // Reconstructed particles histograms
792 //***********************************
795 fHistNumberEvents = new TH1F("h1NumberEvents", "Number of events; index;Number of Events",10,0,10);
796 fListHist->Add(fHistNumberEvents);
799 fHistTrackPerEvent = new TH1F("h1TrackPerEvent", "Tracks per event;Number of Tracks;Number of Events",10000,0,10000);
800 fListHist->Add(fHistTrackPerEvent);
802 fHistTPCMult = new TH1F("h1HistTPCMult", "TPC tracks per event;Number of Tracks;Number of Events",10000,0,10000);
803 fListHist->Add(fHistTPCMult);
806 fHistTrackletPerEvent = new TH1F("h1TrackletPerEvent", "Number of tracklets;Number of tracklets per events;Number of events",1000,0,1000);
807 fListHist->Add(fHistTrackletPerEvent);
809 fHistMCDaughterTrack = new TH1F("h1MCDaughterTrack","Distribution of mc id for daughters;id tags;Counts",15,0,15);
810 fListHist->Add(fHistMCDaughterTrack);
812 fHistTPCTracks = new TH1F("h1TPCTracks","Distribution of TPC tracks;Number of TPC tracks:Number of events",1000,0,10000);
813 fListHist->Add(fHistTPCTracks);
816 fHistSPDPrimaryVertexZ = new TH1F("h1SPDPrimaryVertexZ", "SPD Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
817 fListHist->Add(fHistSPDPrimaryVertexZ);
819 fHistPrimaryVertexX = new TH1F("h1PrimaryVertexX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
820 fListHist->Add(fHistPrimaryVertexX);
822 fHistPrimaryVertexY = new TH1F("h1PrimaryVertexY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
823 fListHist->Add(fHistPrimaryVertexY);
825 fHistPrimaryVertexZ = new TH1F("h1PrimaryVertexZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
826 fListHist->Add(fHistPrimaryVertexZ);
829 // Primary vertex resolution
830 fHistPrimaryVertexResX = new TH1F("h1PrimaryVertexResX", "Primary Vertex Resolution X;Primary Vertex Resolution X (cm);Events",100,-0.25,0.25);
831 fListHist->Add(fHistPrimaryVertexResX);
833 fHistPrimaryVertexResY = new TH1F("h1PrimaryVertexResY", "Primary Vertex Resolution Y;Primary Vertex Resolution Y (cm);Events",100,-0.25,0.25);
834 fListHist->Add(fHistPrimaryVertexResY);
836 fHistPrimaryVertexResZ = new TH1F("h1PrimaryVertexResZ", "Primary Vertex Resolution Z;Primary Vertex Resolution Z (cm);Events",200,-0.25,0.25);
837 fListHist->Add(fHistPrimaryVertexResZ);
840 // Primary Vertex in events with V0 candidates:
841 fHistPrimaryVertexPosXV0events = new TH1F("h1PrimaryVertexPosXV0events", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
842 fListHist->Add(fHistPrimaryVertexPosXV0events);
843 fHistPrimaryVertexPosYV0events = new TH1F("h1PrimaryVertexPosYV0events", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
844 fListHist->Add(fHistPrimaryVertexPosYV0events);
845 fHistPrimaryVertexPosZV0events = new TH1F("h1PrimaryVertexPosZV0events", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20.0,20.0);
846 fListHist->Add(fHistPrimaryVertexPosZV0events);
849 fHistDaughterPt = new TH2F("h2DaughterPt", "Daughter Pt;Positive Daughter Pt; Negative Daughter Pt",200,0,2,200,0,2);
850 fListHist->Add(fHistDaughterPt);
852 //////K0s///////////////// 2D histos: cut vs on fly status////
854 fHistDcaPosToPrimVertexK0 = new TH2F("h2DcaPosToPrimVertexK0", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
855 fListHist->Add(fHistDcaPosToPrimVertexK0);
857 fHistDcaNegToPrimVertexK0 = new TH2F("h2DcaNegToPrimVertexK0", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
858 fListHist->Add(fHistDcaNegToPrimVertexK0);
861 fHistRadiusV0K0 = new TH2F("h2RadiusV0K0", "Radius;Radius(cm);Status",500,0,500,2,-0.5,1.5);
862 fListHist->Add(fHistRadiusV0K0);
864 fHistDecayLengthV0K0 = new TH2F("h2DecayLengthV0K0", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
865 fListHist->Add(fHistDecayLengthV0K0);
867 fHistDcaV0DaughtersK0 = new TH2F("h2DcaV0DaughtersK0", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
868 fListHist->Add(fHistDcaV0DaughtersK0);
870 fHistChi2K0 = new TH2F("h2Chi2K0", "V0s chi2;chi2;Status", 1000, 0, 0.1,2,-0.5,1.5);
871 fListHist->Add(fHistChi2K0);
873 fHistCosPointAngleK0 = new TH2F("h2CosPointAngleK0", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
874 fListHist->Add(fHistCosPointAngleK0);
877 ////////////K0s///////////////// 2D histos: cut vs mass////
880 fHistDcaPosToPrimVertexK0vsMassK0 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
881 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0);
883 fHistDcaNegToPrimVertexK0vsMassK0 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
884 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0);
887 fHistRadiusV0K0vsMassK0 = new TH2F("h2RadiusV0K0vsMassK0", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
888 fListHist->Add(fHistRadiusV0K0vsMassK0);
890 fHistDecayLengthV0K0vsMassK0 = new TH2F("h2DecayLengthV0K0vsMassK0", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
891 fListHist->Add(fHistDecayLengthV0K0vsMassK0);
893 fHistDcaV0DaughtersK0vsMassK0 = new TH2F("h2DcaV0DaughtersK0vsMassK0", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
894 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0);
897 fHistCosPointAngleK0vsMassK0 = new TH2F("h2CosPointAngleK0vsMassK0", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
898 fListHist->Add(fHistCosPointAngleK0vsMassK0);
901 fHistDcaPosToPrimVertexK0vsMassK0pt1 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
902 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt1);
904 fHistDcaNegToPrimVertexK0vsMassK0pt1 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
905 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt1);
907 fHistRadiusV0K0vsMassK0pt1 = new TH2F("h2RadiusV0K0vsMassK0pt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
908 fListHist->Add(fHistRadiusV0K0vsMassK0pt1);
910 fHistDecayLengthV0K0vsMassK0pt1 = new TH2F("h2DecayLengthV0K0vsMassK0pt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,200,0.4,0.6);
911 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt1);
913 fHistDcaV0DaughtersK0vsMassK0pt1 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
914 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt1);
916 fHistCosPointAngleK0vsMassK0pt1 = new TH2F("h2CosPointAngleK0vsMassK0pt1", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
917 fListHist->Add(fHistCosPointAngleK0vsMassK0pt1);
920 fHistDcaPosToPrimVertexK0vsMassK0pt2 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
921 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt2);
923 fHistDcaNegToPrimVertexK0vsMassK0pt2 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
924 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt2);
926 fHistRadiusV0K0vsMassK0pt2 = new TH2F("h2RadiusV0K0vsMassK0pt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
927 fListHist->Add(fHistRadiusV0K0vsMassK0pt2);
929 fHistDecayLengthV0K0vsMassK0pt2 = new TH2F("h2DecayLengthV0K0vsMassK0pt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
930 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt2);
932 fHistDcaV0DaughtersK0vsMassK0pt2 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
933 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt2);
935 fHistCosPointAngleK0vsMassK0pt2 = new TH2F("h2CosPointAngleK0vsMassK0pt2", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
936 fListHist->Add(fHistCosPointAngleK0vsMassK0pt2);
939 fHistDcaPosToPrimVertexK0vsMassK0pt3 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
940 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt3);
942 fHistDcaNegToPrimVertexK0vsMassK0pt3 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
943 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt3);
945 fHistRadiusV0K0vsMassK0pt3 = new TH2F("h2RadiusV0K0vsMassK0pt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
946 fListHist->Add(fHistRadiusV0K0vsMassK0pt3);
948 fHistDecayLengthV0K0vsMassK0pt3 = new TH2F("h2DecayLengthV0K0vsMassK0pt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
949 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt3);
951 fHistDcaV0DaughtersK0vsMassK0pt3 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
952 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt3);
954 fHistCosPointAngleK0vsMassK0pt3 = new TH2F("h2CosPointAngleK0vsMassK0pt3", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
955 fListHist->Add(fHistCosPointAngleK0vsMassK0pt3);
957 //////////Lambda////////////// 2D histos: cut vs on fly status////
959 fHistDcaPosToPrimVertexL = new TH2F("h2DcaPosToPrimVertexL", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
960 fListHist->Add(fHistDcaPosToPrimVertexL);
962 fHistDcaNegToPrimVertexL = new TH2F("h2DcaNegToPrimVertexL", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
963 fListHist->Add(fHistDcaNegToPrimVertexL);
965 fHistRadiusV0L = new TH2F("h2RadiusV0L", "Radius;Radius(cm);Status",100,0,110,2,-0.5,1.5);
966 fListHist->Add(fHistRadiusV0L);
968 fHistDecayLengthV0L = new TH2F("h2DecayLengthV0L", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
969 fListHist->Add(fHistDecayLengthV0L);
971 fHistDcaV0DaughtersL = new TH2F("h2DcaV0DaughtersL", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
972 fListHist->Add(fHistDcaV0DaughtersL);
974 fHistChi2L = new TH2F("h2Chi2L", "V0s chi2;chi2;Status", 100, 0, 0.10,2,-0.5,1.5);
975 fListHist->Add(fHistChi2L);
977 fHistCosPointAngleL = new TH2F("h2CosPointAngleL", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
978 fListHist->Add(fHistCosPointAngleL);
980 fHistcTauL = new TH1F("h1cTauL","cTaou of Lambdas",100,0,100);
981 fListHist->Add(fHistcTauL);
982 //////////Lambda////////////// 2D histos: cut vs mass////
983 fHistDcaPosToPrimVertexLvsMassL = new TH2F("h2DcaPosToPrimVertexLvsMassL", "Positive V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
984 fListHist->Add(fHistDcaPosToPrimVertexLvsMassL);
986 fHistDcaNegToPrimVertexLvsMassL = new TH2F("h2DcaNegToPrimVertexLvsMassL", "Negative V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
987 fListHist->Add(fHistDcaNegToPrimVertexLvsMassL);
990 fHistRadiusV0LvsMassL = new TH2F("h2RadiusV0LvsMassL", "Radius;Radius(cm);Status",110,0,110,140, 1.06, 1.2);
991 fListHist->Add(fHistRadiusV0LvsMassL);
993 fHistDecayLengthV0LvsMassL = new TH2F("h2DecayLengthV0LvsMassL", "V0s decay Length;decay length(cm);Status", 120, 0, 120,140, 1.06, 1.2);
994 fListHist->Add(fHistDecayLengthV0LvsMassL);
996 fHistDcaV0DaughtersLvsMassL = new TH2F("h2DcaV0DaughtersLvsMassL", "DCA between daughters;dca(cm);Status", 110, 0, 1.1,140, 1.06, 1.2);
997 fListHist->Add(fHistDcaV0DaughtersLvsMassL);
999 fHistCosPointAngleLvsMassL = new TH2F("h2CosPointAngleLvsMassL", "Cosine of V0's pointing angle", 200,0.997,1.007,140, 1.06, 1.2);
1000 fListHist->Add(fHistCosPointAngleLvsMassL);
1002 fHistCosPointAngleLvsMassVsPtsigL = new TH3F("h3McCosPointAngleLvsMassVsPtsigL", "Cosine of V0's pointing angle",3,0,12, 2,00.997,1.007,140, 1.06, 1.2);
1003 fListHist->Add(fHistCosPointAngleLvsMassVsPtsigL);
1004 fHistCosPointAngleLvsMassVsPtbackL = new TH3F("h3McCosPointAngleLvsMassVsPtbackL", "Cosine of V0's pointing angle",3,0,12, 20,0.997,1.007,140, 1.06, 1.2);
1005 fListHist->Add(fHistCosPointAngleLvsMassVsPtbackL);
1010 fHistDcaPosToPrimVertexLambdaVsMasspt1 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1011 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt1);
1013 fHistDcaNegToPrimVertexLambdaVsMasspt1 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1014 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt1);
1016 fHistRadiusV0LambdaVsMasspt1 = new TH2F("h2RadiusV0LambdaVsMasspt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1017 fListHist->Add(fHistRadiusV0LambdaVsMasspt1);
1019 fHistDecayLengthV0LambdaVsMasspt1 = new TH2F("h2DecayLengthV0LambdaVsMasspt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,140,1.06,1.2);
1020 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt1);
1022 fHistDcaV0DaughtersLambdaVsMasspt1 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1023 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt1);
1025 fHistCosPointAngleLambdaVsMasspt1 = new TH2F("h2CosPointAngleLambdaVsMasspt1", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1026 fListHist->Add(fHistCosPointAngleLambdaVsMasspt1);
1029 fHistDcaPosToPrimVertexLambdaVsMasspt2 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1030 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt2);
1032 fHistDcaNegToPrimVertexLambdaVsMasspt2 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1033 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt2);
1035 fHistRadiusV0LambdaVsMasspt2 = new TH2F("h2RadiusV0LambdaVsMasspt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1036 fListHist->Add(fHistRadiusV0LambdaVsMasspt2);
1038 fHistDecayLengthV0LambdaVsMasspt2 = new TH2F("h2DecayLengthV0LambdaVsMasspt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1039 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt2);
1041 fHistDcaV0DaughtersLambdaVsMasspt2 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1042 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt2);
1044 fHistCosPointAngleLambdaVsMasspt2 = new TH2F("h2CosPointAngleLambdaVsMasspt2", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1045 fListHist->Add(fHistCosPointAngleLambdaVsMasspt2);
1048 fHistDcaPosToPrimVertexLambdaVsMasspt3 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1049 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt3);
1051 fHistDcaNegToPrimVertexLambdaVsMasspt3 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1052 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt3);
1054 fHistRadiusV0LambdaVsMasspt3 = new TH2F("h2RadiusV0LambdaVsMasspt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1055 fListHist->Add(fHistRadiusV0LambdaVsMasspt3);
1057 fHistDecayLengthV0LambdaVsMasspt3 = new TH2F("h2DecayLengthV0LambdaVsMasspt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1058 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt3);
1060 fHistDcaV0DaughtersLambdaVsMasspt3 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1061 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt3);
1063 fHistCosPointAngleLambdaVsMasspt3 = new TH2F("h2CosPointAngleLambdaVsMasspt3", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1064 fListHist->Add(fHistCosPointAngleLambdaVsMasspt3);
1065 } // end QA condition
1066 //////////AntiLambda////////////// 2D histos: cut vs on fly status////
1068 fHistDcaPosToPrimVertexAntiL = new TH2F("h2DcaPosToPrimVertexAntiL", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1069 fListHist->Add(fHistDcaPosToPrimVertexAntiL);
1071 fHistDcaNegToPrimVertexAntiL = new TH2F("h2DcaNegToPrimVertexAntiL", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1072 fListHist->Add(fHistDcaNegToPrimVertexAntiL);
1075 fHistRadiusV0AntiL = new TH2F("h2RadiusV0AntiL", "Radius;Radius(cm);Status",100,0,110,2,-0.5,1.5);
1076 fListHist->Add(fHistRadiusV0AntiL);
1078 fHistDecayLengthV0AntiL = new TH2F("h2DecayLengthV0AntiL", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1079 fListHist->Add(fHistDecayLengthV0AntiL);
1081 fHistDcaV0DaughtersAntiL = new TH2F("h2DcaV0DaughtersAntiL", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1082 fListHist->Add(fHistDcaV0DaughtersAntiL);
1084 fHistChi2AntiL = new TH2F("h2Chi2AntiL", "V0s chi2;chi2;Status", 100, 0, 0.10,2,-0.5,1.5);
1085 fListHist->Add(fHistChi2AntiL);
1087 fHistCosPointAngleAntiL = new TH2F("h2CosPointAngleAntiL", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1088 fListHist->Add(fHistCosPointAngleAntiL);
1090 //////////AntiLambda////////////// 2D histos: cut vs mass////
1092 fHistDcaPosToPrimVertexAntiLvsMass = new TH2F("h2DcaPosToPrimVertexAntiLvsMass", "Positive V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1093 fListHist->Add(fHistDcaPosToPrimVertexAntiLvsMass);
1095 fHistDcaNegToPrimVertexAntiLvsMass = new TH2F("h2DcaNegToPrimVertexAntiLvsMass", "Negative V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1096 fListHist->Add(fHistDcaNegToPrimVertexAntiLvsMass);
1099 fHistRadiusV0AntiLvsMass = new TH2F("h2RadiusV0AntiLvsMass", "Radius;Radius(cm);Status",110,0,110,140, 1.06, 1.2);
1100 fListHist->Add(fHistRadiusV0AntiLvsMass);
1102 fHistDecayLengthV0AntiLvsMass = new TH2F("h2DecayLengthV0AntiLvsMass", "V0s decay Length;decay length(cm);Status", 120, 0, 120,140, 1.06, 1.2);
1103 fListHist->Add(fHistDecayLengthV0AntiLvsMass);
1105 fHistDcaV0DaughtersAntiLvsMass = new TH2F("h2DcaV0DaughtersAntiLvsMass", "DCA between daughters;dca(cm);Status", 110, 0, 1.1,140, 1.06, 1.2);
1106 fListHist->Add(fHistDcaV0DaughtersAntiLvsMass);
1108 fHistCosPointAngleAntiLvsMass = new TH2F("h2CosPointAngleAntiLvsMass", "Cosine of V0's pointing angle", 200,0.997,1.007,140, 1.06, 1.2);
1109 fListHist->Add(fHistCosPointAngleAntiLvsMass);
1112 fHistDcaPosToPrimVertexAntiLVsMasspt1 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1113 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt1);
1115 fHistDcaNegToPrimVertexAntiLVsMasspt1 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1116 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt1);
1118 fHistRadiusV0AntiLVsMasspt1 = new TH2F("h2RadiusV0AntiLVsMasspt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1119 fListHist->Add(fHistRadiusV0AntiLVsMasspt1);
1121 fHistDecayLengthV0AntiLVsMasspt1 = new TH2F("h2DecayLengthV0AntiLVsMasspt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,140,1.06,1.2);
1122 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt1);
1124 fHistDcaV0DaughtersAntiLVsMasspt1 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1125 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt1);
1127 fHistCosPointAngleAntiLVsMasspt1 = new TH2F("h2CosPointAngleAntiLVsMasspt1", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1128 fListHist->Add(fHistCosPointAngleAntiLVsMasspt1);
1131 fHistDcaPosToPrimVertexAntiLVsMasspt2 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1132 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt2);
1134 fHistDcaNegToPrimVertexAntiLVsMasspt2 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1135 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt2);
1137 fHistRadiusV0AntiLVsMasspt2 = new TH2F("h2RadiusV0AntiLVsMasspt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1138 fListHist->Add(fHistRadiusV0AntiLVsMasspt2);
1140 fHistDecayLengthV0AntiLVsMasspt2 = new TH2F("h2DecayLengthV0AntiLVsMasspt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1141 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt2);
1143 fHistDcaV0DaughtersAntiLVsMasspt2 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1144 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt2);
1146 fHistCosPointAngleAntiLVsMasspt2 = new TH2F("h2CosPointAngleAntiLVsMasspt2", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1147 fListHist->Add(fHistCosPointAngleAntiLVsMasspt2);
1150 fHistDcaPosToPrimVertexAntiLVsMasspt3 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1151 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt3);
1153 fHistDcaNegToPrimVertexAntiLVsMasspt3 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1154 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt3);
1156 fHistRadiusV0AntiLVsMasspt3 = new TH2F("h2RadiusV0AntiLVsMasspt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1157 fListHist->Add(fHistRadiusV0AntiLVsMasspt3);
1159 fHistDecayLengthV0AntiLVsMasspt3 = new TH2F("h2DecayLengthV0AntiLVsMasspt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1160 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt3);
1162 fHistDcaV0DaughtersAntiLVsMasspt3 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1163 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt3);
1165 fHistCosPointAngleAntiLVsMasspt3 = new TH2F("h2CosPointAngleAntiLVsMasspt3", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1166 fListHist->Add(fHistCosPointAngleAntiLVsMasspt3);
1167 } //end QA condition for AntiLambda
1170 if (!fHistV0Multiplicity) {
1171 if (fCollidingSystems)
1172 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 200, 0, 40000);
1174 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 10, 0, 10);
1175 fListHist->Add(fHistV0Multiplicity);
1180 fHistMassK0 = new TH1F("h1MassK0", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 200, 0.4, 0.6);
1181 fListHist->Add(fHistMassK0);
1183 fHistMassLambda = new TH1F("h1MassLambda", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 150, 1.05, 1.2);
1184 fListHist->Add(fHistMassLambda);
1186 fHistMassAntiLambda = new TH1F("h1MassAntiLambda", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 150, 1.05, 1.2);
1187 fListHist->Add(fHistMassAntiLambda);
1189 /* // invariant mass vs radius
1190 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};
1191 Int_t lNbinRadius = 9;
1192 Int_t lNbinInvMassLambda = 300;
1194 fHistMassVsRadiusK0 = new TH2F("h2MassVsRadiusK0", "K^{0} candidates;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",200,0,200, 200, 0.4, 0.6);
1195 fListHist->Add(fHistMassVsRadiusK0);
1197 //fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
1198 fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",200,0,200, 140, 1.06, 1.2);
1199 fListHist->Add(fHistMassVsRadiusLambda);
1202 //fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
1203 fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",200,0,200, 140, 1.06, 1.2);
1204 fListHist->Add(fHistMassVsRadiusAntiLambda);
1208 fHistPtVsMassK0 = new TH2F("h2PtVsMassK0","K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",400, 0.4, 0.6,240,0,12);
1209 fListHist->Add(fHistPtVsMassK0);
1211 fHistPtVsMassLambda = new TH2F("h2PtVsMassLambda","#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",280, 1.06, 1.2,240,0,12);
1212 fListHist->Add(fHistPtVsMassLambda);
1214 fHistPtVsMassAntiLambda = new TH2F("h2PtVsMassAntiLambda","#AntiLambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",280, 1.06, 1.2,240,0,12);
1215 fListHist->Add(fHistPtVsMassAntiLambda);
1217 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1219 ///Armenteros Podolansky
1220 fHistArmenterosPodolanski = new TH2F("h2ArmenterosPodolanski","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5);
1221 fListHist->Add(fHistArmenterosPodolanski);
1223 ///Inv. Mass K0s vs Inv. Mass. Lambda
1224 fHistK0sMassVsLambdaMass = new TH2F("h2HistK0sMassVsLambdaMass","K^{0} vs #Lambda^{0} candidates; M(#pi^{+}#pi^{-}) (GeV/c^{2}); M(p#pi^{-}) (GeV/c^{2})",200, 0.4, 0.6,140, 1.06, 1.2);
1225 fListHist->Add(fHistK0sMassVsLambdaMass);
1227 //dE/dx vs P daughters
1228 fHistTPCsigPLambda = new TH2F("h2TPCsignalVsPLambda","TPC signal Vs p_{t} daughters; p (GeV/c);TPC signal",1000,0,2,1000,0,1000);
1229 fListHist->Add(fHistTPCsigPLambda);
1232 fHistTPCsigPAntiLambda = new TH2F("h2TPCsignalVsPAntiLambda","TPC signal Vs p_{t} daughters; p (GeV/c);TPC signal",1000,0,2,1000,0,1000);
1233 fListHist->Add(fHistTPCsigPAntiLambda);
1236 fHistNSigmaProton =new TH1F("h1NSigmaProton","Number of sigmas for proton;;Count",600,0,6);
1237 fListHist->Add(fHistNSigmaProton);
1241 fHistNsigmaPosPionAntiLambda = new TH1F("h1NsigmaPosPionAntiLambda", "Positive daughter of Antilambda;NsigmaPion;Counts",25,0,5);
1242 fListHist->Add(fHistNsigmaPosPionAntiLambda);
1244 fHistNsigmaNegProtonAntiLambda = new TH1F("h1NsigmaNegProtonAntiLambda", "Negative daughter of Antilambda;NsigmaProton;Counts",25,0,5);
1245 fListHist->Add(fHistNsigmaNegProtonAntiLambda);
1247 fHistNsigmaPosProtonLambda = new TH1F("h1NsigmaPosProtonLambda", "Positive daughter of Lambda;NsigmaProton;Counts",25,0,5);
1248 fListHist->Add(fHistNsigmaPosProtonLambda);
1250 fHistNsigmaNegPionLambda = new TH1F("h1NsigmaNegPionLambda", "Negative daughter of Lambda;NsigmaPion;Counts",25,0,5);
1251 fListHist->Add(fHistNsigmaNegPionLambda);
1253 fHistNsigmaPosProtonAntiLambda = new TH1F("h1NsigmaPosProtonAntiLambda", "Positive daughter of AntiLambda;NsigmaProton;Counts",25,0,5);
1254 fListHist->Add(fHistNsigmaPosProtonAntiLambda);
1256 fHistNsigmaNegPionAntiLambda = new TH1F("h1NsigmaNegPionAntiLambda", "Negative daughter of AntiLambda;NsigmaPion;Counts",25,0,5);
1257 fListHist->Add(fHistNsigmaNegPionAntiLambda);
1259 fHistNsigmaPosPionK0 = new TH1F("h1NsigmaPosPionK0", "Positive daughter of K0s;NsigmaPion;Counts",25,0,5);
1260 fListHist->Add(fHistNsigmaPosPionK0);
1262 fHistNsigmaNegPionK0 = new TH1F("h1NsigmaNegPionK0", "Negative daughter of K0s;NsigmaPion;Counts",25,0,5);
1263 fListHist->Add(fHistNsigmaNegPionK0);
1266 //********************************
1267 // Associated particles histograms
1268 //********************************
1271 fHistAsMcRapK0 = new TH1F("h1AsMcRapK0", "K^{0} associated;eta;Counts", 60, -1.5, 1.5);
1272 fListHist->Add(fHistAsMcRapK0);
1274 fHistAsMcRapLambda = new TH1F("h1AsMcRapLambda", "#Lambda^{0} associated;eta;Counts", 60, -1.5, 1.5);
1275 fListHist->Add(fHistAsMcRapLambda);
1277 fHistAsMcRapAntiLambda = new TH1F("h1AsMcRapAntiLambda", "#bar{#Lambda}^{0} associated;eta;Counts", 60, -1.5, 1.5);
1278 fListHist->Add(fHistAsMcRapAntiLambda);
1281 fHistAsMcPtK0 = new TH1F("h1AsMcPtK0", "K^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1282 fListHist->Add(fHistAsMcPtK0);
1284 fHistAsMcPtLambda = new TH1F("h1AsMcPtLambda", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1285 fListHist->Add(fHistAsMcPtLambda);
1287 fHistAsMcPtAntiLambda = new TH1F("h1AsMcPtAntiLambda", "#AntiLambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1288 fListHist->Add(fHistAsMcPtAntiLambda);
1291 fHistAsMcPtZoomK0 = new TH1F("h1AsMcPtZoomK0", "K^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1292 fListHist->Add(fHistAsMcPtZoomK0);
1294 fHistAsMcPtZoomLambda = new TH1F("h1AsMcPtZoomLambda", "#Lambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1295 fListHist->Add(fHistAsMcPtZoomLambda);
1297 fHistAsMcPtZoomAntiLambda = new TH1F("h1AsMcPtZoomAntiLambda", "#AntiLambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1298 fListHist->Add(fHistAsMcPtZoomAntiLambda);
1300 // Radius distribution
1301 fHistAsMcProdRadiusK0 = new TH1F("h1AsMcProdRadiusK0", "K^{0} associated;r (cm);Counts", 500, 0, 100);
1302 fListHist->Add(fHistAsMcProdRadiusK0);
1304 fHistAsMcProdRadiusLambda = new TH1F("h1AsMcProdRadiusLambda", "#Lambda^{0} associated;r (cm);Counts", 500, 0, 100);
1305 fListHist->Add(fHistAsMcProdRadiusLambda);
1307 fHistAsMcProdRadiusAntiLambda = new TH1F("h1AsMcProdRadiusAntiLambda", "#bar{#Lambda}^{0} associated;r (cm);Counts", 500, 0, 100);
1308 fListHist->Add(fHistAsMcProdRadiusAntiLambda);
1310 fHistAsMcProdRadiusXvsYK0s = new TH2F("h2AsMcProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1311 fListHist->Add(fHistAsMcProdRadiusXvsYK0s);
1313 fHistAsMcProdRadiusXvsYLambda = new TH2F("h2AsMcProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1314 fListHist->Add(fHistAsMcProdRadiusXvsYLambda);
1316 fHistAsMcProdRadiusXvsYAntiLambda = new TH2F("h2AsMcProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1317 fListHist->Add(fHistAsMcProdRadiusXvsYAntiLambda);
1320 fHistPidMcMassK0 = new TH1F("h1PidMcMassK0", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1321 fListHist->Add(fHistPidMcMassK0);
1323 fHistPidMcMassLambda = new TH1F("h1PidMcMassLambda", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1324 fListHist->Add(fHistPidMcMassLambda);
1326 fHistPidMcMassAntiLambda = new TH1F("h1PidMcMassAntiLambda", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1327 fListHist->Add(fHistPidMcMassAntiLambda);
1329 fHistAsMcMassK0 = new TH1F("h1AsMcMassK0", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1330 fListHist->Add(fHistAsMcMassK0);
1332 fHistAsMcMassLambda = new TH1F("h1AsMcMassLambda", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1333 fListHist->Add(fHistAsMcMassLambda);
1335 fHistAsMcMassAntiLambda = new TH1F("h1AsMcMassAntiLambda", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1336 fListHist->Add(fHistAsMcMassAntiLambda);
1339 fHistAsMcPtVsMassK0 = new TH2F("h2AsMcPtVsMassK0","K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",200, 0.4, 0.6,240,0,12);
1340 fListHist->Add(fHistAsMcPtVsMassK0);
1342 fHistAsMcPtVsMassLambda = new TH2F("h2AsMcPtVsMassLambda","#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,240,0,12);
1343 fListHist->Add(fHistAsMcPtVsMassLambda);
1345 fHistAsMcPtVsMassAntiLambda = new TH2F("h2AsMcPtVsMassAntiLambda","#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,240,0,12);
1346 fListHist->Add(fHistAsMcPtVsMassAntiLambda);
1349 // invariant mass vs radius
1350 //fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 500, 0.47, 0.52);
1351 fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",200,0,200, 500, 0.47, 0.52);
1352 fListHist->Add(fHistAsMcMassVsRadiusK0);
1354 //fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, lNbinInvMassLambda, 1.10, 1.13);
1355 fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",200,0,200, 1.10, 1.13);
1356 fListHist->Add(fHistAsMcMassVsRadiusLambda);
1358 //fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius,lNbinInvMassLambda , 1.10, 1.13);
1359 fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",200,0,200 , 1.10, 1.13);
1360 fListHist->Add(fHistAsMcMassVsRadiusAntiLambda);
1362 // Position Resolution
1363 fHistAsMcResxK0 = new TH1F("h1AsMcResxK0", "K^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1364 fListHist->Add(fHistAsMcResxK0);
1365 fHistAsMcResyK0 = new TH1F("h1AsMcResyK0", "K^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1366 fListHist->Add(fHistAsMcResyK0);
1367 fHistAsMcReszK0 = new TH1F("h1AsMcReszK0", "K^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1368 fListHist->Add(fHistAsMcReszK0);
1369 fHistAsMcResrVsRadiusK0 = new TH2F("h2AsMcResrVsRadiusK0", "K^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50., 50, -0.25, 0.25);
1370 fListHist->Add(fHistAsMcResrVsRadiusK0);
1371 fHistAsMcReszVsRadiusK0 = new TH2F("h2AsMcReszVsRadiusK0", "K^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1372 fListHist->Add(fHistAsMcReszVsRadiusK0);
1374 fHistAsMcResxLambda = new TH1F("h1AsMcResxLambda", "#Lambda^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1375 fListHist->Add(fHistAsMcResxLambda);
1376 fHistAsMcResyLambda = new TH1F("h1AsMcResyLambda", "#Lambda^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1377 fListHist->Add(fHistAsMcResyLambda);
1378 fHistAsMcReszLambda = new TH1F("h1AsMcReszLambda", "#Lambda^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1379 fListHist->Add(fHistAsMcReszLambda);
1380 fHistAsMcResrVsRadiusLambda = new TH2F("h2AsMcResrVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1381 fListHist->Add(fHistAsMcResrVsRadiusLambda);
1382 fHistAsMcReszVsRadiusLambda = new TH2F("h2AsMcReszVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1383 fListHist->Add(fHistAsMcReszVsRadiusLambda);
1385 fHistAsMcResxAntiLambda = new TH1F("h1AsMcResxAntiLambda", "#bar{#Lambda}^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1386 fListHist->Add(fHistAsMcResxAntiLambda);
1387 fHistAsMcResyAntiLambda = new TH1F("h1AsMcResyAntiLambda", "#bar{#Lambda}^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1388 fListHist->Add(fHistAsMcResyAntiLambda);
1389 fHistAsMcReszAntiLambda = new TH1F("h1AsMcReszAntiLambda", "#bar{#Lambda}^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1390 fListHist->Add(fHistAsMcReszAntiLambda);
1391 fHistAsMcResrVsRadiusAntiLambda = new TH2F("h2AsMcResrVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1392 fListHist->Add(fHistAsMcResrVsRadiusAntiLambda);
1393 fHistAsMcReszVsRadiusAntiLambda = new TH2F("h2AsMcReszVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1394 fListHist->Add(fHistAsMcReszVsRadiusAntiLambda);
1397 fHistAsMcResPtK0 = new TH1F("h1AsMcResPtK0","Pt Resolution K^{0};#Delta Pt;Counts",200,-1,1);
1398 fListHist->Add(fHistAsMcResPtK0);
1400 fHistAsMcResPtLambda = new TH1F("h1AsMcResPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Counts",200,-1,1);
1401 fListHist->Add(fHistAsMcResPtLambda);
1403 fHistAsMcResPtAntiLambda = new TH1F("h1AsMcResPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Counts",200,-1,1);
1404 fListHist->Add(fHistAsMcResPtAntiLambda);
1407 fHistAsMcResPtVsRapK0 = new TH2F("h2AsMcResPtVsRapK0","Pt Resolution K^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1408 fListHist->Add(fHistAsMcResPtVsRapK0);
1410 fHistAsMcResPtVsRapLambda = new TH2F("h2AsMcResPtVsRapLambda","Pt Resolution #Lambda^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1411 fListHist->Add(fHistAsMcResPtVsRapLambda);
1413 fHistAsMcResPtVsRapAntiLambda = new TH2F("h2AsMcResPtVsRapAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1414 fListHist->Add(fHistAsMcResPtVsRapAntiLambda);
1416 fHistAsMcResPtVsPtK0 = new TH2F("h2AsMcResPtVsPtK0","Pt Resolution K^{0};#Delta Pt;Pt",600,-0.15,0.15,240,0,12);
1417 fListHist->Add(fHistAsMcResPtVsPtK0);
1419 fHistAsMcResPtVsPtLambda = new TH2F("h2AsMcResPtVsPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Pt",600,-0.15,0.15,240,0,12);
1420 fListHist->Add(fHistAsMcResPtVsPtLambda);
1422 fHistAsMcResPtVsPtAntiLambda = new TH2F("h2AsMcResPtVsPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Pt",300,-0.15,0.15,240,0,12);
1423 fListHist->Add(fHistAsMcResPtVsPtAntiLambda);
1425 // pdgcode of mother
1426 fHistAsMcMotherPdgCodeK0s = new TH1F("h1AsMcMotherPdgCodeK0s","Mother of Associated K^{0};mother;counts",11,0,11);
1427 fListHist->Add(fHistAsMcMotherPdgCodeK0s);
1429 fHistAsMcMotherPdgCodeLambda = new TH1F("h1AsMcMotherPdgCodeLambda","Mother of Associated #Lambda^{0};mother;counts",11,0,11);
1430 fListHist->Add(fHistAsMcMotherPdgCodeLambda);
1432 fHistAsMcMotherPdgCodeAntiLambda = new TH1F("h1AsMcMotherPdgCodeAntiLambda","Mother of Associated #bar{#Lambda}^{0};mother;counts",11,0,11);
1433 fListHist->Add(fHistAsMcMotherPdgCodeAntiLambda);
1435 // Pt distribution Lambda from Sigma
1436 fHistAsMcPtLambdaFromSigma = new TH1F("h1AsMcPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1437 fListHist->Add(fHistAsMcPtLambdaFromSigma);
1439 fHistAsMcPtAntiLambdaFromSigma = new TH1F("h1AsMcPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1440 fListHist->Add(fHistAsMcPtAntiLambdaFromSigma);
1442 // Associated secondary particles:
1443 // Pt and rapidity distribution
1444 fHistAsMcSecondaryPtVsRapK0s = new TH2F("h2AsMcSecondaryPtVsRapK0s", "K^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1445 fListHist->Add(fHistAsMcSecondaryPtVsRapK0s);
1447 fHistAsMcSecondaryPtVsRapLambda = new TH2F("h2AsMcSecondaryPtVsRapLambda", "#Lambda^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1448 fListHist->Add(fHistAsMcSecondaryPtVsRapLambda);
1450 fHistAsMcSecondaryPtVsRapAntiLambda = new TH2F("h2AsMcSecondaryPtVsRapAntiLambda", "#bar{#Lambda}^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1451 fListHist->Add(fHistAsMcSecondaryPtVsRapAntiLambda);
1453 // Production radius
1454 fHistAsMcSecondaryProdRadiusK0s = new TH1F("h1AsMcSecondaryProdRadiusK0s", "K^{0} Production Radius;r (cm);Count", 170, -2, 15);
1455 fListHist->Add(fHistAsMcSecondaryProdRadiusK0s);
1457 fHistAsMcSecondaryProdRadiusLambda = new TH1F("h1AsMcSecondaryProdRadiusLambda", "#Lambda^{0} Production Radius;r (cm);Count", 170, -2, 15);
1458 fListHist->Add(fHistAsMcSecondaryProdRadiusLambda);
1460 fHistAsMcSecondaryProdRadiusAntiLambda = new TH1F("h1AsMcSecondaryProdRadiusAntiLambda", "#bar{#Lambda}^{0} Production Radius;r (cm);Count", 170, -2, 15);
1461 fListHist->Add(fHistAsMcSecondaryProdRadiusAntiLambda);
1463 fHistAsMcSecondaryProdRadiusXvsYK0s = new TH2F("h2AsMcSecondaryProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1464 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYK0s);
1466 fHistAsMcSecondaryProdRadiusXvsYLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1467 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYLambda);
1469 fHistAsMcSecondaryProdRadiusXvsYAntiLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1470 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYAntiLambda);
1472 fHistAsMcSecondaryMotherPdgCodeK0s = new TH1F("h1AsMcSecondaryMotherPdgCodeK0s","Mother of Associated Secondary K^{0};mother;counts",11,0,11);
1473 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeK0s);
1475 fHistAsMcSecondaryMotherPdgCodeLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeLambda","Mother of Associated Secondary #Lambda^{0};mother;counts",11,0,11);
1476 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeLambda);
1478 fHistAsMcSecondaryMotherPdgCodeAntiLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeAntiLambda","Mother of Associated Secondary #bar{#Lambda}^{0};mother;counts",11,0,11);
1479 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeAntiLambda);
1481 // Pt distribution Lambda from Sigma
1482 fHistAsMcSecondaryPtLambdaFromSigma = new TH1F("h1AsMcSecondaryPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1483 fListHist->Add(fHistAsMcSecondaryPtLambdaFromSigma);
1485 fHistAsMcSecondaryPtAntiLambdaFromSigma = new TH1F("h1AsMcSecondaryPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1486 fListHist->Add(fHistAsMcSecondaryPtAntiLambdaFromSigma);
1487 PostData(1, fListHist);
1488 // PostData(3, fTracksCuts);
1491 static Bool_t AcceptTrack(const AliAODTrack *t) {
1492 if (!t->IsOn(AliAODTrack::kTPCrefit)) return kFALSE;
1493 //if (t->GetKinkIndex(0)>0) return kFALSE;
1495 Float_t nCrossedRowsTPC = t->GetTPCClusterInfo(2,1);
1496 if (nCrossedRowsTPC < 70) return kFALSE;
1497 Int_t findable=t->GetTPCNclsF();
1498 if (findable <= 0) return kFALSE;
1499 if (nCrossedRowsTPC/findable < 0.8) return kFALSE;
1504 static Bool_t AcceptV0(const AliAODv0 *v1, const AliAODEvent *aod, const Double_t etaCut) {
1505 // Double_t pMin = 0.2;
1506 // Double_t pMin = 0.16;
1508 if (v1->GetOnFlyStatus()) return kFALSE;
1510 // if (v1->Pt() < pMin) return kFALSE;
1512 const AliAODTrack *ntrack1=(AliAODTrack *)v1->GetDaughter(1);
1513 if (!AcceptTrack(ntrack1)) return kFALSE;
1515 const AliAODTrack *ptrack1=(AliAODTrack *)v1->GetDaughter(0);
1516 if (!AcceptTrack(ptrack1)) return kFALSE;
1517 // if(ntrack1->Pt()<pMin || ptrack1->Pt()<pMin) return kFALSE;
1519 Float_t xy=v1->DcaNegToPrimVertex();
1520 if (TMath::Abs(xy)<0.1) return kFALSE;
1521 xy=v1->DcaPosToPrimVertex();
1522 if (TMath::Abs(xy)<0.1) return kFALSE;
1524 Double_t neta = ntrack1->Eta();
1525 if (neta > etaCut) return kFALSE;
1526 Double_t peta = ptrack1->Eta();
1527 if (peta > etaCut) return kFALSE;
1529 Double_t dca=v1->DcaV0Daughters();
1530 if (dca>1.0) return kFALSE;
1531 //if (dca>0.7) return kFALSE;
1532 //if (dca>0.4) return kFALSE;
1534 Double_t cpa=v1->CosPointingAngle(aod->GetPrimaryVertex());
1535 if (cpa<0.998) return kFALSE;
1536 //if (cpa<0.99875) return kFALSE;
1537 //if (cpa<0.9995) return kFALSE;
1539 Double_t xyz[3]; v1->GetSecondaryVtx(xyz);
1540 Double_t r2=xyz[0]*xyz[0] + xyz[1]*xyz[1];
1541 if (r2<0.9*0.9) return kFALSE;
1542 if (r2>100*100) return kFALSE;
1547 //________________________________________________________________________
1548 void AliAnalysisTaskPerformanceStrangeAOD::UserExec(Option_t *)
1551 // Called for each event
1553 fHistNumberEvents->Fill(0.5); // FIXME: use enum here
1555 TArrayF mcPrimaryVtx;
1557 AliAODEvent *aod=(AliAODEvent *)InputEvent();
1560 Printf("ERROR: aod not available");
1565 AliAnalysisManager *man= AliAnalysisManager::GetAnalysisManager();
1566 AliInputEventHandler *inputHandler=(AliInputEventHandler*)man->GetInputEventHandler();
1570 if (fUsePID.Contains("withPID")) {
1571 fPIDResponse = inputHandler->GetPIDResponse();
1575 // Physics selection
1576 UInt_t maskIsSelected = inputHandler->IsEventSelected();
1577 // Bool_t isSelected = (maskIsSelected & AliVEvent::kMB);
1578 Bool_t isSelected = (maskIsSelected);
1579 // Bool_t isSelected = (maskIsSelected & !(AliVEvent::kOnlyFast) );
1580 if (!isSelected) return;
1582 fHistNumberEvents->Fill(1.5);
1585 // Centrality selection
1586 AliCentrality *cent=aod->GetCentrality();
1587 if (!cent->IsEventInCentralityClass(fCentMin,fCentMax,"V0M")) return;
1589 // FIXME: add to hist number events another entry for centrality.
1591 // Done by the AliPhysicsSelection Task ! Only the selected events are passed to this task
1593 fHistNumberEvents->Fill(2.5);
1596 //*************************
1597 //End track multiplicity
1598 //*************************
1600 // Remove Events with no tracks
1601 //if (!(fESD->GetNumberOfTracks())) return;
1604 // fHistTrackPerEvent->Fill(fESD->GetNumberOfTracks());
1606 //*************************************
1608 //*************************************
1611 Double_t lCutRap = 0.5;
1613 const Double_t lCutPseudorap = 0.8;
1616 // Cut AliKF Chi2 for Reconstructed particles
1617 // Double_t cutChi2KF = 1E3;
1620 Double_t lLimitPPID = 0.7;
1621 Float_t cutNSigmaLowP = 1E3;
1622 Float_t cutNSigmaHighP = 1E3;
1623 if (fUsePID.Contains("withPID")) {
1624 cutNSigmaLowP = 3.0;
1625 cutNSigmaHighP = 3.0;
1629 // Cut Daughters pt (GeV/c):
1630 Double_t cutMinPtDaughter = 0.160;
1632 // Cut primary vertex:
1633 Double_t cutPrimVertex = 10.0;
1635 Double_t cutcTauL = 3*7.89;
1636 Double_t cutcTauK0s = 3*2.68;
1637 // Min number of TPC clusters:
1638 // Int_t nbMinTPCclusters = 80;
1643 Int_t LambdaPID = 0;
1644 Int_t AntiLambdaPID = 0;
1651 TClonesArray *stack = 0x0;
1652 Double_t mcXv=0., mcYv=0., mcZv=0.;
1653 Int_t ntrk =0, ntrk0=0;
1656 TList *lst = aod->GetList();
1657 stack = (TClonesArray*)lst->FindObject(AliAODMCParticle::StdBranchName());
1659 Printf("ERROR: stack not available");
1663 mcHdr=(AliAODMCHeader*)lst->FindObject(AliAODMCHeader::StdBranchName());
1665 mcXv=mcHdr->GetVtxX(); mcYv=mcHdr->GetVtxY(); mcZv=mcHdr->GetVtxZ();
1667 ntrk=stack->GetEntriesFast(), ntrk0=ntrk;
1669 if(TMath::Abs(mcZv)>10)return;
1672 fHistNumberEvents->Fill(3.5);
1673 //**********************************************
1675 //**********************************************
1677 Double_t lmcPrimVtxR = 0;
1679 Int_t lNbMCPrimary = 0;
1680 Int_t lNbMCPart = 0;
1682 Int_t lPdgcodeCurrentPart = 0;
1683 Double_t lRapCurrentPart = 0;
1684 Double_t lPtCurrentPart = 0;
1686 Int_t lComeFromSigma = 0;
1689 // Production Radius
1690 Double_t mcPosX = 0.0, mcPosY = 0.0, mcPosZ = 0.0;
1691 Double_t mcPosR = 0.0;
1694 Double_t mcDecayPosX = 0, mcDecayPosY = 0, mcDecayPosR = 0;
1696 // current mc particle 's mother
1697 Int_t iCurrentMother = 0, lPdgCurrentMother = 0;
1698 // Bool_t lCurrentMotherIsPrimary;
1700 // current mc particles 's daughter:
1701 Int_t lPdgCurrentDaughter0 = 0, lPdgCurrentDaughter1 = 0;
1703 // variables for multiple reconstruction studies:
1704 Int_t id0 = 0, id1 = 0;
1705 //Int_t lLabelTrackN = 0, lLabelTrackP = 0;
1706 //Int_t lPartNMother = 0, lPartPMother = 0;
1707 //Int_t lPartPMotherPDGcode = 0;
1708 Int_t lNtimesReconstructedK0s = 0, lNtimesReconstructedLambda = 0, lNtimesReconstructedAntiLambda = 0;
1709 // Int_t lNtimesReconstructedK0sMI = 0, lNtimesReconstructedLambdaMI = 0, lNtimesReconstructedAntiLambdaMI = 0;
1711 //****************************
1712 // Start loop over MC particles
1716 fHistMCPrimaryVertexX->Fill(mcXv);
1717 fHistMCPrimaryVertexY->Fill(mcYv);
1718 fHistMCPrimaryVertexZ->Fill(mcZv);
1720 lmcPrimVtxR = TMath::Sqrt(mcXv*mcXv+mcYv*mcYv);
1723 if(fAnalysisType == "AOD") {
1725 // lNbMCPrimary = stack->GetNprimary();
1727 fHistMCMultiplicityPrimary->Fill(lNbMCPrimary);
1728 fHistMCMultiplicityTracks->Fill(lNbMCPart);
1729 lNbMCPart = lNbMCPart +1;
1731 for (Int_t iMc = 0; iMc < (ntrk); iMc++) {
1732 AliAODMCParticle *p0=(AliAODMCParticle*)stack->UncheckedAt(iMc);
1734 //Printf("ERROR: particle with label %d not found in stack (mc loop)", iMc);
1737 lPdgcodeCurrentPart = p0->GetPdgCode();
1739 // Keep only K0s, Lambda and AntiLambda, Xi and Phi:
1740 if ( (lPdgcodeCurrentPart != 310 ) && (lPdgcodeCurrentPart != 3122 ) && (lPdgcodeCurrentPart != -3122 ) && (lPdgcodeCurrentPart != 3312 ) && (lPdgcodeCurrentPart != -3312) && (lPdgcodeCurrentPart != -333) ) continue;
1742 lRapCurrentPart = MyRapidity(p0->E(),p0->Pz());
1743 //lEtaCurrentPart = p0->Eta();
1744 lPtCurrentPart = p0->Pt();
1745 iCurrentMother = p0->GetMother();
1747 AliAODMCParticle *Mother = (AliAODMCParticle*)stack->UncheckedAt(iCurrentMother);
1748 // lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();
1749 if (iCurrentMother == -1){lPdgCurrentMother=0; } else {lPdgCurrentMother = Mother->GetPdgCode();}
1754 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
1756 id0 = p0->GetDaughter(0);
1757 id1 = p0->GetDaughter(1);
1759 // Decay Radius and Production Radius
1760 if ( id0 <= ntrk && id0 > 0 && id1 <= ntrk && id1 > 0) {
1761 AliAODMCParticle *pDaughter0 = (AliAODMCParticle*)stack->UncheckedAt(id0);
1762 AliAODMCParticle *pDaughter1 = (AliAODMCParticle*)stack->UncheckedAt(id1);
1763 lPdgCurrentDaughter0 = pDaughter0->GetPdgCode();
1764 lPdgCurrentDaughter1 = pDaughter1->GetPdgCode();
1766 mcDecayPosX = pDaughter0->Xv();
1767 mcDecayPosY = pDaughter0->Yv();
1768 mcDecayPosR = TMath::Sqrt(mcDecayPosX*mcDecayPosX+mcDecayPosY*mcDecayPosY);
1771 //Printf("ERROR: particle with label %d and/or %d not found in stack (mc loop)", id0,id1);
1775 if (lPdgcodeCurrentPart==310) {
1776 fHistMCtracksProdRadiusK0s->Fill(mcPosX,mcPosY);
1777 fHistMCtracksDecayRadiusK0s->Fill(mcDecayPosR);
1778 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllK0s->Fill(lPtCurrentPart);
1780 else if (lPdgcodeCurrentPart==3122) {
1781 fHistMCtracksProdRadiusLambda->Fill(mcPosX,mcPosY);
1782 fHistMCtracksDecayRadiusLambda->Fill(mcDecayPosR);
1783 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllLambda->Fill(lPtCurrentPart);
1785 else if (lPdgcodeCurrentPart==-3122) {
1786 fHistMCtracksProdRadiusAntiLambda->Fill(mcPosX,mcPosY);
1787 fHistMCtracksDecayRadiusAntiLambda->Fill(mcDecayPosR);
1788 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllAntiLambda->Fill(lPtCurrentPart);
1791 if ( ( ( TMath::Abs(lPdgCurrentMother) == 3212) ||
1792 ( TMath::Abs(lPdgCurrentMother) == 3224) ||
1793 ( TMath::Abs(lPdgCurrentMother) == 3214) ||
1794 ( TMath::Abs(lPdgCurrentMother) == 3114) )
1795 // && ( iCurrentMother <= lNbMCPrimary )
1796 // && ( Mother->IsPhysicalPrimary() )
1797 && ( Mother->GetMother() == -1) //&& (Mother->GetDaughter(0) == (iCurrentMother+1))
1798 ) lComeFromSigma = 1;
1799 else lComeFromSigma = 0;
1801 //*********************************************
1802 // Now keep only primary particles
1803 // if ( ( iMc > lNbMCPrimary ) && (!lComeFromSigma) ) continue;
1804 // if ( !((p0->GetMother() == -1) && (p0->GetDaughter(0) == (iMc+1) ) && p0->IsPhysicalPrimary()) && (!lComeFromSigma) ) continue;
1805 // if ( !(p0->GetMother() == -1) && (!lComeFromSigma) ) continue;
1806 //*************************************//
1807 // new definition of primary particles //
1808 //*************************************//
1813 Double_t ProdDistance = 0;
1816 dx = ( ( mcXv) - (mcPosX) );
1817 dy = ( ( mcYv) - (mcPosY) );
1818 dz = ( ( mcZv) - (mcPosZ) );
1820 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
1822 if (ProdDistance > 0.001) continue; // secondary V0
1826 //********************************************
1828 lNtimesReconstructedK0s = 0; lNtimesReconstructedLambda = 0; lNtimesReconstructedAntiLambda = 0;
1832 if (lPdgcodeCurrentPart==310) {
1833 fHistMCRapK0s->Fill(lRapCurrentPart);
1834 if (lPtCurrentPart < 0.2 && lPtCurrentPart < 3.0)
1835 fHistMCRapInPtRangeK0s->Fill(lRapCurrentPart);
1838 if (lPdgcodeCurrentPart==3122) {
1839 fHistMCRapLambda->Fill(lRapCurrentPart);
1840 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5)
1841 fHistMCRapInPtRangeLambda->Fill(lRapCurrentPart);
1844 if (lPdgcodeCurrentPart==-3122) {
1845 fHistMCRapAntiLambda->Fill(lRapCurrentPart);
1846 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5)
1847 fHistMCRapInPtRangeAntiLambda->Fill(lRapCurrentPart);
1850 if (lPdgcodeCurrentPart==3312 || lPdgcodeCurrentPart==-3312) {
1851 fHistMCRapXi->Fill(lRapCurrentPart);
1852 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.0)
1853 fHistMCRapInPtRangeXi->Fill(lRapCurrentPart);
1856 if (lPdgcodeCurrentPart==333) {
1857 fHistMCRapPhi->Fill(lRapCurrentPart);
1858 if (lPtCurrentPart < 0.7 && lPtCurrentPart < 3.0)
1859 fHistMCRapInPtRangePhi->Fill(lRapCurrentPart);
1863 if (TMath::Abs(lRapCurrentPart) > lCutRap) continue;
1865 if (lPdgcodeCurrentPart==310) {
1866 fHistMCProdRadiusK0s->Fill(mcPosR);
1868 fHistMCPtK0s->Fill(lPtCurrentPart);
1872 fHistNTimesRecK0s->Fill(lNtimesReconstructedK0s);
1873 fHistNTimesRecK0sVsPt->Fill(lPtCurrentPart,lNtimesReconstructedK0s);
1876 if (lPdgcodeCurrentPart==3122) {
1877 fHistMCProdRadiusLambda->Fill(mcPosR);
1879 fHistMCPtLambda->Fill(lPtCurrentPart);
1882 fHistNTimesRecLambda->Fill(lNtimesReconstructedLambda);
1883 fHistNTimesRecLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedLambda);
1884 if (lComeFromSigma) fHistMCPtLambdaFromSigma->Fill(lPtCurrentPart);
1886 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
1887 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
1891 if (lPdgcodeCurrentPart==-3122) {
1892 fHistMCProdRadiusAntiLambda->Fill(mcPosR);
1894 fHistMCPtAntiLambda->Fill(lPtCurrentPart);
1897 fHistNTimesRecAntiLambda->Fill(lNtimesReconstructedAntiLambda);
1898 fHistNTimesRecAntiLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambda);
1899 if (lComeFromSigma) fHistMCPtAntiLambdaFromSigma->Fill(lPtCurrentPart);
1901 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
1902 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
1907 } // end loop ESD MC
1909 } // end ESD condition
1912 } // End Loop over MC condition
1918 //************************************
1920 //************************************
1922 // Double_t lLambdaMass = 1.115683; //PDG
1923 Double_t lPLambda = 0;
1924 Double_t lPAntiLambda = 0;
1926 // Double_t lMagneticField = 999;
1929 // Int_t nv0sTot= 0;
1933 Double_t lV0Position[3];
1935 Double_t lDcaPosToPrimVertex = 0;
1936 Double_t lDcaNegToPrimVertex = 0;
1937 Double_t lDcaV0Daughters = 0;
1938 Double_t lV0cosPointAngle = 0;
1939 Double_t lChi2V0 = 0;
1940 Double_t lV0DecayLength = 0;
1941 Double_t lV0Radius = 0;
1942 Double_t lDcaV0ToPrimVertex = 0;
1943 Double_t lcTauLambda = 0;
1944 Double_t lcTauAntiLambda = 0;
1945 Double_t lcTauK0s = 0;
1946 Int_t lOnFlyStatus = 0;
1947 //Float_t tdcaPosToPrimVertexXYZ[2], tdcaNegToPrimVertexXYZ[2]; // ..[0] = Impact parameter in XY plane and ..[1] = Impact parameter in Z
1948 //Double_t tdcaDaughterToPrimVertex[2]; // ..[0] = Pos and ..[1] = Neg
1952 Double_t lInvMassK0s = 0, lInvMassLambda = 0, lInvMassAntiLambda = 0;
1953 Double_t lPtK0s = 0, lPtLambda = 0, lPtAntiLambda = 0;
1954 Double_t lRapK0s = 0, lRapLambda = 0, lRapAntiLambda = 0;
1955 // Double_t lEtaK0s = 0, lEtaLambda = 0, lEtaAntiLambda = 0;
1956 Double_t lAlphaV0 = 0, lPtArmV0 = 0;
1958 Double_t lPzK0s = 0, lPzLambda = 0, lPzAntiLambda = 0;
1961 Double_t lV0Eta = 999;
1963 // to study Associated V0s:
1964 // Int_t lIndexTrackPos = 0, lIndexTrackNeg = 0;
1965 UInt_t lLabelTrackPos = 0, lLabelTrackNeg = 0;
1966 Int_t lCheckPIdK0Short = 0, lCheckMcK0Short = 0;
1967 Int_t lCheckPIdLambda = 0, lCheckMcLambda = 0;
1968 Int_t lCheckPIdAntiLambda = 0, lCheckMcAntiLambda = 0;
1969 Int_t lCheckSecondaryK0s = 0, lCheckSecondaryLambda = 0, lCheckSecondaryAntiLambda = 0;
1970 Int_t lCheckGamma = 0;
1971 Double_t mcPosMotherX = 0, mcPosMotherY = 0, mcPosMotherZ = 0;
1972 Double_t mcPosMotherR = 0;
1973 Double_t mcMotherPt = 0;
1975 Int_t lIndexPosMother = 0;
1976 Int_t lIndexNegMother = 0;
1977 Int_t lIndexMotherOfMother = 0;
1978 Int_t lPDGCodePosDaughter = 0;
1979 Int_t lPDGCodeNegDaughter = 0;
1980 Int_t lPdgcodeMother = 0;
1981 Int_t lPdgcodeMotherOfMother = 0;
1983 // Reconstructed position
1984 Double_t rcPosXK0s = 0, rcPosYK0s = 0, rcPosZK0s = 0;
1985 Double_t rcPosRK0s = 0;
1986 Double_t rcPosXLambda = 0, rcPosYLambda = 0, rcPosZLambda = 0;
1987 Double_t rcPosRLambda = 0;
1988 Double_t rcPosXAntiLambda = 0, rcPosYAntiLambda = 0, rcPosZAntiLambda = 0;
1989 Double_t rcPosRAntiLambda = 0;
1992 Double_t deltaPtK0s = 0, deltaPtLambda = 0, deltaPtAntiLambda = 0;
1995 const AliAODTrack *myTrackPos = NULL;
1996 const AliAODTrack *myTrackNeg = NULL;
1997 // AliVParticle *lVPartPos = NULL;
1998 // AliVParticle *lVPartNeg = NULL;
2001 // Double_t V0mom[3] = {999,999,999};
2002 Double_t lPosMom = 0;
2003 Double_t lNegMom = 0;
2004 // Double_t lPmom = 0;
2005 // Double_t lPLambda = 0;
2007 // Daughters' momentum:
2008 Double_t lMomPos[3] = {999,999,999};
2009 Double_t lMomNeg[3] = {999,999,999};
2010 Double_t lPtPos = 999, lPtNeg = 999;
2011 Double_t lPPos = 999, lPNeg = 999;
2013 // Inner Wall parameters:
2014 Double_t lMomInnerWallPos =999, lMomInnerWallNeg = 999;
2016 // AliKF Chi2 and Armenteros variables
2017 // Double_t lChi2KFK0s = 0, lChi2KFLambda = 0, lChi2KFAntiLambda = 0;
2018 // Double_t lAlphaV0K0s = 0, lAlphaV0Lambda = 0, lAlphaV0AntiLambda = 0;
2019 //Double_t lPtArmV0K0s = 0, lPtArmV0Lambda = 0, lPtArmV0AntiLambda = 0;
2020 // Double_t lQlPos = 0, lQlNeg = 0;
2024 Float_t nSigmaPosPion = 0;
2025 Float_t nSigmaNegPion = 0;
2027 Float_t nSigmaPosProton = 0;
2028 Float_t nSigmaNegProton = 0;
2031 Int_t lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2032 Int_t lCheckPIDLambdaPosDaughter = 0, lCheckPIDLambdaNegDaughter = 0;
2033 Int_t lCheckPIDAntiLambdaPosDaughter = 0, lCheckPIDAntiLambdaNegDaughter = 0;
2037 //***********************
2038 // Primary Vertex cuts &
2039 // Magnetic field and Quality tracks cuts
2041 Double_t lPrimaryVtxPosition[3];
2042 // Double_t lPrimaryVtxCov[6];
2043 Double_t lPrimaryVtxChi2 = 999;
2044 // Double_t lResPrimaryVtxX = 999;
2045 // Double_t lResPrimaryVtxY = 999;
2046 // Double_t lResPrimaryVtxZ = 999;
2048 AliAODVertex *myPrimaryVertex = NULL;
2049 //const AliVVertex *mySPDPrimaryVertex = NULL;
2051 if(fAnalysisType == "AOD") {
2052 AliAODVertex *myPrimVertex = aod->GetPrimaryVertex();
2053 // AliAODVertex(myPrimVertex);
2054 myPrimVertex->GetXYZ(lPrimaryVtxPosition);
2055 if ( ( TMath::Abs(myPrimVertex->GetZ()) ) > cutPrimVertex) return ;
2056 fHistNumberEvents->Fill(4.5);
2057 lPrimaryVtxChi2 = myPrimVertex->GetChi2perNDF();
2060 ntrk=aod->GetNumberOfTracks();
2063 for (Int_t i=0; i<ntrk; i++) {
2064 AliAODTrack *t=aod->GetTrack(i);
2065 if (t->IsMuonTrack()) continue;
2066 if (!t->IsOn(AliAODTrack::kTPCrefit)) continue;
2069 if (t->GetPosition(xyz)) continue;
2070 if (TMath::Abs(xyz[0])>3.) continue;
2071 if (TMath::Abs(xyz[1])>3.) continue;
2073 Double_t pt=t->Pt(),pz=t->Pz();
2074 if (TMath::Abs(pz/pt)>0.8) continue;
2078 /* const AliAODPid *pid=t->GetDetPid();
2081 Double_t p=pid->GetTPCmomentum();
2082 Double_t dedx=pid->GetTPCsignal()/47.;
2083 fdEdx->Fill(p,dedx,1);
2085 nsig=pidResponse->NumberOfSigmasTPC(t,AliPID::kProton);
2086 if (TMath::Abs(nsig) < 3.) fdEdxPid->Fill(p,dedx,1);
2090 fHistTPCMult->Fill(mult);
2093 fHistPrimaryVertexX->Fill(lPrimaryVtxPosition[0]);
2094 fHistPrimaryVertexY->Fill(lPrimaryVtxPosition[1]);
2095 fHistPrimaryVertexZ->Fill(lPrimaryVtxPosition[2]);
2096 //Double_t lrcPrimVtxR = TMath::Sqrt(lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]+lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]);
2098 fHistPrimaryVertexResX->Fill(lResPrimaryVtxX);
2099 fHistPrimaryVertexResY->Fill(lResPrimaryVtxY);
2100 fHistPrimaryVertexResZ->Fill(lResPrimaryVtxZ);
2104 Int_t nv0 = aod->GetNumberOfV0s();
2106 AliAODv0 *v0=aod->GetV0(nv0);
2107 if (!v0) { fHistNumberEvents->Fill(5.5);continue;}
2109 if (!AcceptV0(v0,aod,lCutPseudorap)){ fHistNumberEvents->Fill(6.5); continue;}
2110 fHistNumberEvents->Fill(7.5);
2113 lIndexPosMother = 0; lIndexNegMother = 0; lIndexMotherOfMother = 0;
2114 lCheckPIdK0Short = 0; lCheckMcK0Short = 0; lCheckSecondaryK0s = 0;
2115 lCheckPIdLambda = 0; lCheckMcLambda = 0; lCheckSecondaryLambda = 0;
2116 lCheckPIdAntiLambda = 0; lCheckMcAntiLambda = 0; lCheckSecondaryAntiLambda = 0;
2117 lComeFromSigma = -1;lCheckGamma = 0;
2120 if(fAnalysisType == "AOD") {
2123 fHistPrimaryVertexPosXV0events->Fill(lPrimaryVtxPosition[0]);
2124 fHistPrimaryVertexPosYV0events->Fill(lPrimaryVtxPosition[1]);
2125 fHistPrimaryVertexPosZV0events->Fill(lPrimaryVtxPosition[2]);
2128 // lIndexTrackPos = TMath::Abs(v0->GetPindex());
2129 //lIndexTrackNeg = TMath::Abs(v0->GetNindex());
2130 AliAODTrack *myTrackNegTest=(AliAODTrack *)v0->GetDaughter(1);
2131 AliAODTrack *myTrackPosTest=(AliAODTrack *)v0->GetDaughter(0);
2133 // AliExternalTrackParam *NegParam = AliExternalTrackParam(myTrackNegTest);
2134 //AliExternalTrackParam *PosParam = AliExternalTrackParam(myTrackPosTest);
2135 // const AliExternalTrackParam *NegParam = myTrackNegTest->GetOuterParam();
2136 //const AliExternalTrackParam *PosParam = myTrackPosTest->GetOuterParam();
2138 if (!myTrackPosTest || !myTrackNegTest) {
2139 Printf("strange analysis::UserExec:: Error:Could not retreive one of the daughter track\n");
2143 if (myTrackNegTest->Charge() == myTrackPosTest->Charge()){
2147 // VO's main characteristics to check the reconstruction cuts
2148 lOnFlyStatus = v0->GetOnFlyStatus();
2149 lChi2V0 = v0->Chi2V0();
2150 lDcaV0Daughters = v0->DcaV0Daughters();
2151 lDcaV0ToPrimVertex = v0->DcaV0ToPrimVertex();
2152 lV0cosPointAngle = v0->CosPointingAngle(lPrimaryVtxPosition);
2154 v0->GetXYZ(lV0Position);
2156 lV0Radius = TMath::Sqrt(lV0Position[0]*lV0Position[0]+lV0Position[1]*lV0Position[1]);
2157 lV0DecayLength = TMath::Sqrt(TMath::Power(lV0Position[0] - lPrimaryVtxPosition[0],2) +
2158 TMath::Power(lV0Position[1] - lPrimaryVtxPosition[1],2) +
2159 TMath::Power(lV0Position[2] - lPrimaryVtxPosition[2],2 ));
2162 if( myTrackPosTest->Charge() ==1){
2164 myTrackPos = myTrackPosTest;
2165 myTrackNeg = myTrackNegTest;
2167 // Daughters' momentum;
2168 myTrackPos->GetPxPyPz(lMomPos);
2169 myTrackNeg->GetPxPyPz(lMomNeg);
2172 if( myTrackPosTest->Charge() ==-1){
2174 myTrackPos = myTrackNegTest;
2175 myTrackNeg = myTrackPosTest;
2177 // Daughters' momentum;
2178 myTrackPos->GetPxPyPz(lMomPos);
2179 myTrackNeg->GetPxPyPz(lMomNeg);
2182 lLabelTrackPos = (UInt_t)TMath::Abs(myTrackPos->GetLabel());
2183 lLabelTrackNeg = (UInt_t)TMath::Abs(myTrackNeg->GetLabel());
2185 // Daughters Pt and P:
2186 lPtPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1]);
2187 lPtNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1]);
2189 lPPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1] + lMomPos[2]*lMomPos[2]);
2190 lPNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1] + lMomNeg[2]*lMomNeg[2]);
2196 // Inner Wall parameter:
2197 const AliAODPid *pidPos=myTrackPos->GetDetPid();
2198 const AliAODPid *pidNeg=myTrackNeg->GetDetPid();
2200 // innerWall momentum
2201 lMomInnerWallPos = pidPos->GetTPCmomentum();
2202 lMomInnerWallNeg = pidNeg->GetTPCmomentum();;
2204 // DCA between daughter and Primary Vertex:
2205 if (myTrackPos) lDcaPosToPrimVertex = v0->DcaPosToPrimVertex();
2206 if (myTrackNeg) lDcaNegToPrimVertex = v0->DcaNegToPrimVertex();
2209 // Quality tracks cuts:
2210 if ( !(AcceptTrack(myTrackPos)) || !(AcceptTrack(myTrackNeg)) )
2213 // Armenteros variables:
2214 lAlphaV0 = v0->AlphaV0();
2215 lPtArmV0 = v0->PtArmV0();
2218 lV0Eta = v0->PseudoRapV0();
2219 //////////////////////////////////////////////////////////////////////////
2221 lInvMassK0s = v0->MassK0Short();
2225 lInvMassLambda = v0->MassLambda();
2226 lPtLambda = v0->Pt();
2227 lPzLambda = v0->Pz();
2229 lInvMassAntiLambda = v0->MassAntiLambda();
2230 lPtAntiLambda = v0->Pt();
2231 lPzAntiLambda = v0->Pz();
2235 lRapK0s = v0->RapK0Short();
2236 lRapLambda = v0->RapLambda();
2237 lRapAntiLambda = v0->Y(-3122);
2239 if (lPtK0s==0) {continue;}
2240 if (lPtLambda==0) {continue;}
2241 if (lPtAntiLambda==0) {continue;}
2243 ///////////////////////////////////////////////////////////////////////
2245 // PID new method July 2011
2246 if (fUsePID.Contains("withPID")) {
2247 nSigmaPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kPion));
2248 nSigmaNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kPion));
2249 nSigmaPosProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kProton));
2250 nSigmaNegProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kProton));
2253 nSigmaPosPion = 0; nSigmaNegPion =0; nSigmaPosProton = 0; nSigmaNegProton= 0;
2256 // Monte-Carlo particle associated to reconstructed particles:
2258 //if (lLabelTrackPos < 0 || lLabelTrackNeg < 0) continue;
2259 AliAODMCParticle *pp=(AliAODMCParticle*)stack->UncheckedAt(lLabelTrackPos);
2261 // Printf("no MC particle for positive and/or negative daughter\n");
2264 AliAODMCParticle *np=(AliAODMCParticle*)stack->UncheckedAt(lLabelTrackNeg);
2265 if (!np) { continue;}
2266 lPDGCodePosDaughter = pp->GetPdgCode();
2267 lPDGCodeNegDaughter = np->GetPdgCode();
2268 lIndexPosMother = pp->GetMother();
2269 lIndexNegMother = np->GetMother();
2271 if (lIndexPosMother == -1) {
2274 lIndexMotherOfMother = 0;
2287 AliAODMCParticle *lMCAODMother=(AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother);
2288 if (!lMCAODMother) { continue;}
2289 lPdgcodeMother = lMCAODMother->GetPdgCode();
2290 lIndexMotherOfMother = lMCAODMother->GetMother();
2291 if (lIndexMotherOfMother ==-1) lPdgcodeMotherOfMother = 0;
2293 AliAODMCParticle *lMCAODMotherOfMother=(AliAODMCParticle*)stack->UncheckedAt(lIndexMotherOfMother);
2294 if (!lMCAODMotherOfMother) {continue;}
2295 lPdgcodeMotherOfMother = lMCAODMotherOfMother->GetPdgCode();
2301 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
2302 mcPosMotherX = lMCAODMother->Xv();
2303 mcPosMotherY = lMCAODMother->Yv();
2304 mcPosMotherZ = lMCAODMother->Zv();
2305 mcPosMotherR = TMath::Sqrt(mcPosMotherX*mcPosMotherX+mcPosMotherY*mcPosMotherY);
2307 mcMotherPt = lMCAODMother->Pt();
2310 } // end AOD condition
2313 if(!lOnFlyStatus) nv0s++;
2314 // else if(lOnFlyStatus) nv0sMI++;
2316 // Daughter momentum cut: ! FIX it in case of AOD !
2317 if ( (lPtPos < cutMinPtDaughter ) ||
2318 (lPtNeg < cutMinPtDaughter )
2320 // Look for associated particles:
2322 if( (lIndexPosMother==-1) || (lIndexNegMother==-1) ) {
2323 fHistMCDaughterTrack->Fill(1);
2326 else if( ( (lPDGCodePosDaughter==+211) && (lPDGCodeNegDaughter==-211) )
2328 lCheckPIdK0Short = 1;
2329 fHistMCDaughterTrack->Fill(3);
2330 if ( (lIndexPosMother==lIndexNegMother) &&
2331 (lPdgcodeMother==310) ) {
2332 if (((AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother))->IsPrimary()) lCheckMcK0Short = 1;
2333 else lCheckSecondaryK0s = 1;
2336 else if( ( (lPDGCodePosDaughter==+2212) && (lPDGCodeNegDaughter==-211) )
2338 lCheckPIdLambda = 1;
2339 fHistMCDaughterTrack->Fill(5);
2340 if ( (lIndexPosMother==lIndexNegMother) &&
2341 (lPdgcodeMother==3122) ){
2342 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2343 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2344 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2345 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2346 ) lComeFromSigma = 1;
2347 else lComeFromSigma = 0;
2348 if ( ((AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother))->IsPrimary() ||
2349 (!(((AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother))->IsPrimary() ) && (lComeFromSigma) )
2350 ) lCheckMcLambda = 1;
2351 else lCheckSecondaryLambda = 1;
2354 else if( ( (lPDGCodePosDaughter==211) && (lPDGCodeNegDaughter==-2212) )
2356 lCheckPIdAntiLambda = 1;
2357 fHistMCDaughterTrack->Fill(7);
2358 if ( (lIndexPosMother==lIndexNegMother) &&
2359 (lPdgcodeMother==-3122) ) {
2360 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2361 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2362 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2363 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2364 ) lComeFromSigma = 1;
2365 else lComeFromSigma = 0;
2366 if ( ((AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother))->IsPrimary() ||
2367 ( (!((AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother))->IsPrimary()) && (lComeFromSigma) )
2368 ) lCheckMcAntiLambda = 1;
2369 else lCheckSecondaryAntiLambda = 1;
2374 else if ( (lPDGCodePosDaughter==-11) &&
2375 (lPDGCodeNegDaughter==11) &&
2376 (lPdgcodeMother==22 ) )
2378 } // end "look for associated particles
2382 lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2383 lCheckPIDLambdaPosDaughter = 0, lCheckPIDLambdaNegDaughter = 0;
2384 lCheckPIDAntiLambdaPosDaughter = 0, lCheckPIDAntiLambdaNegDaughter = 0;
2386 if (lMomInnerWallPos < lLimitPPID) {
2387 if (nSigmaPosPion < cutNSigmaLowP) {
2388 lCheckPIDK0sPosDaughter = 1;
2389 lCheckPIDAntiLambdaPosDaughter = 1;
2391 if (nSigmaPosProton < cutNSigmaLowP) lCheckPIDLambdaPosDaughter = 1;
2394 else if (lMomInnerWallPos > lLimitPPID) {
2395 if (nSigmaPosPion < cutNSigmaHighP) {
2396 lCheckPIDK0sPosDaughter = 1;
2397 lCheckPIDAntiLambdaPosDaughter = 1;
2399 if (nSigmaPosProton < cutNSigmaHighP) lCheckPIDLambdaPosDaughter = 1;
2402 if (lMomInnerWallNeg < lLimitPPID) {
2403 if (nSigmaNegPion < cutNSigmaLowP) {
2404 lCheckPIDK0sNegDaughter = 1;
2405 lCheckPIDLambdaNegDaughter = 1;
2407 if (nSigmaNegProton < cutNSigmaLowP) lCheckPIDAntiLambdaNegDaughter = 1;
2410 else if (lMomInnerWallNeg > lLimitPPID) {
2411 if (nSigmaNegPion < cutNSigmaHighP) {
2412 lCheckPIDK0sNegDaughter = 1;
2413 lCheckPIDLambdaNegDaughter = 1;
2415 if (nSigmaNegProton < cutNSigmaHighP) lCheckPIDAntiLambdaNegDaughter = 1;
2418 //*****************************
2419 // filling histograms
2420 //*****************************
2422 if(fUsePID.Contains("withPID") && (lCheckPIDAntiLambdaNegDaughter==0) && lCheckPIDLambdaPosDaughter==1) LambdaPID = 1;
2424 if(fUsePID.Contains("withPID") && (lCheckPIDLambdaPosDaughter==0) && lCheckPIDAntiLambdaNegDaughter==1) AntiLambdaPID = 1;
2425 else AntiLambdaPID =0;
2427 lPLambda = TMath::Sqrt(lPzLambda*lPzLambda + lPtLambda*lPtLambda);
2428 lPAntiLambda = TMath::Sqrt(lPzAntiLambda*lPzAntiLambda + lPtAntiLambda*lPtAntiLambda);
2429 lPK0s = TMath::Sqrt(lPzK0s*lPzK0s + lPtK0s*lPtK0s);
2431 if ((LambdaPID==1 && lPosMom <=1) || (lPosMom>1) || !(fUsePID.Contains("withPID"))){
2432 if ((TMath::Abs(lRapLambda) < lCutRap) && lOnFlyStatus==0) {
2433 fHistTPCsigPLambda->Fill(lPosMom,myTrackPos->GetTPCsignal());
2438 if ((AntiLambdaPID==1 && lNegMom <=1) || (lNegMom>1) || !(fUsePID.Contains("withPID"))){
2439 if ((TMath::Abs(lRapAntiLambda) < lCutRap) && lOnFlyStatus==0) {
2440 fHistTPCsigPAntiLambda->Fill(lNegMom,myTrackNeg->GetTPCsignal());
2446 lcTauLambda = (lV0DecayLength*lInvMassLambda)/lPLambda;
2448 lcTauAntiLambda = (lV0DecayLength*lInvMassAntiLambda)/lPAntiLambda;
2450 lcTauK0s = (lV0DecayLength*lInvMassK0s)/lPK0s;
2452 if (lPLambda <1 && lOnFlyStatus==0 ){
2453 fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
2454 fHistcTauL->Fill(lcTauLambda);
2463 if (lcTauK0s< cutcTauK0s) {
2465 if (TMath::Abs(lRapK0s) < lCutRap ) {
2467 //////2D histos: cut vs on fly status/////////////////////
2469 fHistDcaPosToPrimVertexK0->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2470 fHistDcaNegToPrimVertexK0->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2471 fHistRadiusV0K0->Fill(lV0Radius,lOnFlyStatus);
2472 fHistDecayLengthV0K0->Fill(lV0DecayLength,lOnFlyStatus);
2473 fHistDcaV0DaughtersK0->Fill(lDcaV0Daughters,lOnFlyStatus);
2474 fHistChi2K0->Fill(lChi2V0,lOnFlyStatus);
2475 fHistCosPointAngleK0->Fill(lV0cosPointAngle,lOnFlyStatus);
2477 //////2D histos: cut vs mass/////////////////////
2479 if (lOnFlyStatus==0){
2482 fHistMassK0->Fill(lInvMassK0s);
2483 fHistMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
2484 fHistPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
2487 fHistDcaPosToPrimVertexK0vsMassK0->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2488 fHistDcaNegToPrimVertexK0vsMassK0->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2489 fHistRadiusV0K0vsMassK0->Fill(lV0Radius,lInvMassK0s);
2490 fHistDecayLengthV0K0vsMassK0->Fill(lV0DecayLength,lInvMassK0s);
2491 fHistDcaV0DaughtersK0vsMassK0->Fill(lDcaV0Daughters,lInvMassK0s);
2492 fHistCosPointAngleK0vsMassK0->Fill(lV0cosPointAngle,lInvMassK0s);
2494 if (lPtK0s>0 && lPtK0s <3){
2495 fHistDcaPosToPrimVertexK0vsMassK0pt1->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2496 fHistDcaNegToPrimVertexK0vsMassK0pt1->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2497 fHistRadiusV0K0vsMassK0pt1->Fill(lV0Radius,lInvMassK0s);
2498 fHistDecayLengthV0K0vsMassK0pt1->Fill(lV0DecayLength,lInvMassK0s);
2499 fHistDcaV0DaughtersK0vsMassK0pt1->Fill(lDcaV0Daughters,lInvMassK0s);
2500 fHistCosPointAngleK0vsMassK0pt1->Fill(lV0cosPointAngle,lInvMassK0s);
2502 if (lPtK0s > 3 && lPtK0s < 6){
2503 fHistDcaPosToPrimVertexK0vsMassK0pt2->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2504 fHistDcaNegToPrimVertexK0vsMassK0pt2->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2505 fHistRadiusV0K0vsMassK0pt2->Fill(lV0Radius,lInvMassK0s);
2506 fHistDecayLengthV0K0vsMassK0pt2->Fill(lV0DecayLength,lInvMassK0s);
2507 fHistDcaV0DaughtersK0vsMassK0pt2->Fill(lDcaV0Daughters,lInvMassK0s);
2508 fHistCosPointAngleK0vsMassK0pt2->Fill(lV0cosPointAngle,lInvMassK0s);
2510 if (lPtK0s > 6 && lPtK0s < 10){
2511 fHistDcaPosToPrimVertexK0vsMassK0pt3->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2512 fHistDcaNegToPrimVertexK0vsMassK0pt3->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2513 fHistRadiusV0K0vsMassK0pt3->Fill(lV0Radius,lInvMassK0s);
2514 fHistDecayLengthV0K0vsMassK0pt3->Fill(lV0DecayLength,lInvMassK0s);
2515 fHistDcaV0DaughtersK0vsMassK0pt3->Fill(lDcaV0Daughters,lInvMassK0s);
2516 fHistCosPointAngleK0vsMassK0pt3->Fill(lV0cosPointAngle,lInvMassK0s);
2520 } // if rap. condition
2521 } // end cTau condition
2524 ////////////////////////////
2528 ////////////////////////////
2531 if (lcTauLambda < cutcTauL){
2534 // if ((LambdaPID==1 && lPosMom <=1 ) || (lPosMom>1 ) || !(fUsePID.Contains("withPID"))){ This was set before. Global momentum used instead InnerWall momentum. which one is ok?
2535 if ((LambdaPID==1 && lMomInnerWallPos <=1 ) || (lMomInnerWallPos >1 ) || !(fUsePID.Contains("withPID"))){
2537 if (TMath::Abs(lRapLambda) < lCutRap) {
2539 //////2D histos: cut vs on fly status/////////////////////
2541 fHistDcaPosToPrimVertexL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2542 fHistDcaNegToPrimVertexL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2543 fHistRadiusV0L->Fill(lV0Radius,lOnFlyStatus);
2544 fHistDecayLengthV0L->Fill(lV0DecayLength,lOnFlyStatus);
2545 fHistDcaV0DaughtersL->Fill(lDcaV0Daughters,lOnFlyStatus);
2546 fHistChi2L->Fill(lChi2V0,lOnFlyStatus);
2547 fHistCosPointAngleL->Fill(lV0cosPointAngle,lOnFlyStatus);
2549 //////2D histos: cut vs mass/////////////////////
2551 if (lOnFlyStatus==0){
2552 fHistMassLambda->Fill(lInvMassLambda);
2553 fHistMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
2554 fHistPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
2555 if(lPtLambda <=1) fHistNSigmaProton->Fill(nSigmaPosProton);
2557 fHistDcaPosToPrimVertexLvsMassL->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2558 fHistDcaNegToPrimVertexLvsMassL->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2559 fHistRadiusV0LvsMassL->Fill(lV0Radius,lInvMassLambda);
2560 fHistDecayLengthV0LvsMassL->Fill(lV0DecayLength,lInvMassLambda);
2561 fHistDcaV0DaughtersLvsMassL->Fill(lDcaV0Daughters,lInvMassLambda);
2562 fHistCosPointAngleLvsMassL->Fill(lV0cosPointAngle,lInvMassLambda);
2565 if (lPtLambda>0 && lPtLambda <3){
2566 fHistDcaPosToPrimVertexLambdaVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2567 fHistDcaNegToPrimVertexLambdaVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2568 fHistRadiusV0LambdaVsMasspt1->Fill(lV0Radius,lInvMassLambda);
2569 fHistDecayLengthV0LambdaVsMasspt1->Fill(lV0DecayLength,lInvMassLambda);
2570 fHistDcaV0DaughtersLambdaVsMasspt1->Fill(lDcaV0Daughters,lInvMassLambda);
2571 fHistCosPointAngleLambdaVsMasspt1->Fill(lV0cosPointAngle,lInvMassLambda);
2573 if (lPtLambda > 3 && lPtLambda < 6){
2574 fHistDcaPosToPrimVertexLambdaVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2575 fHistDcaNegToPrimVertexLambdaVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2576 fHistRadiusV0LambdaVsMasspt2->Fill(lV0Radius,lInvMassLambda);
2577 fHistDecayLengthV0LambdaVsMasspt2->Fill(lV0DecayLength,lInvMassLambda);
2578 fHistDcaV0DaughtersLambdaVsMasspt2->Fill(lDcaV0Daughters,lInvMassLambda);
2579 fHistCosPointAngleLambdaVsMasspt2->Fill(lV0cosPointAngle,lInvMassLambda);
2581 if (lPtLambda > 6 && lPtLambda < 10){
2582 fHistDcaPosToPrimVertexLambdaVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2583 fHistDcaNegToPrimVertexLambdaVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2584 fHistRadiusV0LambdaVsMasspt3->Fill(lV0Radius,lInvMassLambda);
2585 fHistDecayLengthV0LambdaVsMasspt3->Fill(lV0DecayLength,lInvMassLambda);
2586 fHistDcaV0DaughtersLambdaVsMasspt3->Fill(lDcaV0Daughters,lInvMassLambda);
2587 fHistCosPointAngleLambdaVsMasspt3->Fill(lV0cosPointAngle,lInvMassLambda);
2591 } //end of Rap condition
2592 } // end of PID condition
2593 } //end cTau condition
2596 ////////////////////////////
2600 ////////////////////////////
2603 if (lcTauAntiLambda < cutcTauL){
2605 // if ((AntiLambdaPID==1 && lNegMom <=1) || (lNegMom>1) || !(fUsePID.Contains("withPID"))){
2606 if ((AntiLambdaPID==1 && lMomInnerWallNeg <=1) || (lMomInnerWallNeg >1) || !(fUsePID.Contains("withPID"))){
2607 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
2609 //////2D histos: cut vs on fly status/////////////////////
2611 fHistDcaPosToPrimVertexAntiL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2612 fHistDcaNegToPrimVertexAntiL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2613 fHistRadiusV0AntiL->Fill(lV0Radius,lOnFlyStatus);
2614 fHistDecayLengthV0AntiL->Fill(lV0DecayLength,lOnFlyStatus);
2615 fHistDcaV0DaughtersAntiL->Fill(lDcaV0Daughters,lOnFlyStatus);
2616 fHistChi2AntiL->Fill(lChi2V0,lOnFlyStatus);
2617 fHistCosPointAngleAntiL->Fill(lV0cosPointAngle,lOnFlyStatus);
2619 //////2D histos: cut vs mass/////////////////////
2621 if (lOnFlyStatus==0){
2623 fHistMassAntiLambda->Fill(lInvMassAntiLambda);
2624 fHistMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
2625 fHistPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
2628 fHistDcaPosToPrimVertexAntiLvsMass->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2629 fHistDcaNegToPrimVertexAntiLvsMass->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2630 fHistRadiusV0AntiLvsMass->Fill(lV0Radius,lInvMassAntiLambda);
2631 fHistDecayLengthV0AntiLvsMass->Fill(lV0DecayLength,lInvMassAntiLambda);
2632 fHistDcaV0DaughtersAntiLvsMass->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2633 fHistCosPointAngleAntiLvsMass->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2636 if (lPtAntiLambda>0 && lPtAntiLambda <3){
2637 fHistDcaPosToPrimVertexAntiLVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2638 fHistDcaNegToPrimVertexAntiLVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2639 fHistRadiusV0AntiLVsMasspt1->Fill(lV0Radius,lInvMassAntiLambda);
2640 fHistDecayLengthV0AntiLVsMasspt1->Fill(lV0DecayLength,lInvMassAntiLambda);
2641 fHistDcaV0DaughtersAntiLVsMasspt1->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2642 fHistCosPointAngleAntiLVsMasspt1->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2644 if (lPtAntiLambda > 3 && lPtAntiLambda < 6){
2645 fHistDcaPosToPrimVertexAntiLVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2646 fHistDcaNegToPrimVertexAntiLVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2647 fHistRadiusV0AntiLVsMasspt2->Fill(lV0Radius,lInvMassAntiLambda);
2648 fHistDecayLengthV0AntiLVsMasspt2->Fill(lV0DecayLength,lInvMassAntiLambda);
2649 fHistDcaV0DaughtersAntiLVsMasspt2->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2650 fHistCosPointAngleAntiLVsMasspt2->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2652 if (lPtAntiLambda > 6 && lPtAntiLambda < 10){
2653 fHistDcaPosToPrimVertexAntiLVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2654 fHistDcaNegToPrimVertexAntiLVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2655 fHistRadiusV0AntiLVsMasspt3->Fill(lV0Radius,lInvMassAntiLambda);
2656 fHistDecayLengthV0AntiLVsMasspt3->Fill(lV0DecayLength,lInvMassAntiLambda);
2657 fHistDcaV0DaughtersAntiLVsMasspt3->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2658 fHistCosPointAngleAntiLVsMasspt3->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2662 } //end of Rap condition
2663 } // end of PID condition
2664 } //end cTau condition
2666 ///////////////values for cuts end////////////////////////////////////////////////////////////////////////
2669 // Histo versus Rap and armenteros plot
2671 if (lCheckMcK0Short) fHistAsMcRapK0->Fill(lRapK0s);
2672 if (lCheckMcLambda) fHistAsMcRapLambda->Fill(lRapLambda);
2673 if (lCheckMcAntiLambda) fHistAsMcRapLambda->Fill(lRapAntiLambda);
2674 // fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
2675 if ((TMath::Abs(lRapK0s) < lCutRap)&&(TMath::Abs(lRapLambda) < lCutRap)) fHistK0sMassVsLambdaMass->Fill(lInvMassK0s,lInvMassLambda);
2679 /////////////////////////////////////////////////
2681 // K0s associated histograms
2683 /////////////////////////////////////////////////
2685 if (lcTauK0s< cutcTauK0s) {
2687 if (TMath::Abs(lRapK0s) < lCutRap) {
2689 fHistNsigmaPosPionK0->Fill(nSigmaPosPion);
2690 fHistNsigmaNegPionK0->Fill(nSigmaNegPion);
2692 switch (lOnFlyStatus){
2696 // fHistMultVsPtVsMassK0->Fill(multiplicity ,lInvMassK0s,lPtK0s);
2697 if(lCheckPIdK0Short) fHistPidMcMassK0->Fill(lInvMassK0s);
2698 if(lCheckMcK0Short) {
2699 fHistAsMcMassK0->Fill(lInvMassK0s);
2700 fHistAsMcPtK0->Fill(lPtK0s);
2703 fHistAsMcPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
2704 if (lPtK0s <= 1) fHistAsMcPtZoomK0->Fill(lPtK0s);
2705 fHistAsMcMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
2706 fHistAsMcResxK0->Fill(rcPosXK0s-mcPosX);
2707 fHistAsMcResyK0->Fill(rcPosYK0s-mcPosY);
2708 fHistAsMcReszK0->Fill(rcPosZK0s-mcPosZ);
2709 fHistAsMcResrVsRadiusK0->Fill(rcPosRK0s,rcPosRK0s-mcPosR);
2710 fHistAsMcReszVsRadiusK0->Fill(rcPosZK0s,rcPosZK0s-mcPosZ);
2711 fHistAsMcProdRadiusK0->Fill(mcPosMotherR);
2712 fHistAsMcProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
2713 fHistAsMcResPtK0->Fill(deltaPtK0s);
2714 fHistAsMcResPtVsRapK0->Fill(deltaPtK0s,lRapK0s);
2715 fHistAsMcResPtVsPtK0->Fill(deltaPtK0s,lPtK0s);
2717 else if (lCheckSecondaryK0s) {
2718 fHistAsMcSecondaryPtVsRapK0s->Fill(lPtK0s,lRapK0s);
2719 fHistAsMcSecondaryProdRadiusK0s->Fill(mcPosMotherR);
2720 fHistAsMcSecondaryProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
2721 switch (lPdgcodeMotherOfMother) {
2722 case 130 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(0.5);break; // K0L
2723 case 321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(1.5);break; // K+
2724 case -321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(2.5);break; // K-
2725 case -3122 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(3.5);break; //AntiLambda
2726 default : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(6.5);break;
2732 } // end rapidity condition
2733 } //end cTau condition
2736 // Associated Lambda histograms in |rap| < lCutRap
2737 if (lcTauLambda < cutcTauL){
2739 // if ((LambdaPID==1 && lMomInnerWallPos <=1) || (lMomInnerWallPos>1) || !(fUsePID.Contains("withPID"))){
2740 if (TMath::Abs(lRapLambda) < lCutRap) {
2742 fHistNsigmaPosProtonLambda->Fill(nSigmaPosProton);
2743 fHistNsigmaNegPionLambda->Fill(nSigmaNegPion);
2744 switch (lOnFlyStatus){
2747 // fHistMultVsPtVsMassLambda->Fill(multiplicity ,lInvMassLambda,lPtLambda);
2748 if(lCheckPIdLambda) fHistPidMcMassLambda->Fill(lInvMassLambda);
2750 if(lCheckMcLambda) {
2751 fHistAsMcMassLambda->Fill(lInvMassLambda);
2752 fHistAsMcPtLambda->Fill(lPtLambda);
2753 fHistCosPointAngleLvsMassVsPtsigL->Fill(lPtLambda,lV0cosPointAngle,lInvMassLambda);
2755 fHistAsMcPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
2756 if (lPtLambda <= 1) fHistAsMcPtZoomLambda->Fill(lPtLambda);
2757 fHistAsMcMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
2758 fHistAsMcResxLambda->Fill(rcPosXLambda-mcPosX);
2759 fHistAsMcResyLambda->Fill(rcPosYLambda-mcPosY);
2760 fHistAsMcReszLambda->Fill(rcPosZLambda-mcPosZ);
2761 fHistAsMcResrVsRadiusLambda->Fill(rcPosRLambda,rcPosRLambda-mcPosR);
2762 fHistAsMcReszVsRadiusLambda->Fill(rcPosZLambda,rcPosZLambda-mcPosZ);
2763 fHistAsMcProdRadiusLambda->Fill(mcPosMotherR);
2764 fHistAsMcProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
2765 fHistAsMcResPtLambda->Fill(deltaPtLambda);
2766 fHistAsMcResPtVsRapLambda->Fill(deltaPtLambda,lRapLambda);
2767 fHistAsMcResPtVsPtLambda->Fill(deltaPtLambda,lPtLambda);
2768 if (lComeFromSigma) fHistAsMcPtLambdaFromSigma->Fill(lPtLambda);
2769 switch (lPdgcodeMotherOfMother) {
2770 case 3222 : fHistAsMcMotherPdgCodeLambda->Fill(0.5); break; // Sigma +
2771 case 3212 : fHistAsMcMotherPdgCodeLambda->Fill(1.5); break; // Sigma 0
2772 case 3112 : fHistAsMcMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
2773 case 3224 : fHistAsMcMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
2774 case 3214 : fHistAsMcMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
2775 case 3114 : fHistAsMcMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
2776 case 3322 : fHistAsMcMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
2777 case 3312 : fHistAsMcMotherPdgCodeLambda->Fill(7.5); break; // Xi -
2778 case 3334 : fHistAsMcMotherPdgCodeLambda->Fill(8.5); break; // Omega
2779 case -1 : fHistAsMcMotherPdgCodeLambda->Fill(9.5); break;
2780 default : fHistAsMcMotherPdgCodeLambda->Fill(10.5);break;
2783 //printf("found Lambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtLambda,lInvMassLambda);
2784 //printf("found Lambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
2788 else if (lCheckSecondaryLambda) {
2789 fHistAsMcSecondaryPtVsRapLambda->Fill(lPtLambda,lRapLambda);
2790 fHistAsMcSecondaryProdRadiusLambda->Fill(mcPosMotherR);
2791 fHistAsMcSecondaryProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
2792 if (lComeFromSigma) fHistAsMcSecondaryPtLambdaFromSigma->Fill(lPtLambda);
2793 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
2794 switch (lPdgcodeMotherOfMother) {
2795 case 3222 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(0.5); break;// Sigma +
2796 case 3212 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(1.5); break;// Sigma 0
2797 case 3112 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
2798 case 3224 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
2799 case 3214 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
2800 case 3114 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
2801 case 3322 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
2802 case 3312 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(7.5); break; // Xi -
2803 case 3334 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(8.5); break; // Omega
2804 case -1 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(9.5); break;
2805 default : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(10.5);break;
2809 if(!lCheckMcLambda)fHistCosPointAngleLvsMassVsPtbackL->Fill(lPtLambda,lV0cosPointAngle,lInvMassLambda);
2813 } // end rapidity condition
2814 // }// end PID condition
2815 }//end cTau condition
2817 /////////////////////////////////////////////////////
2818 // Associated AntiLambda histograms
2819 /////////////////////////////////////////////////////
2821 if (lcTauAntiLambda < cutcTauL){
2823 // if ((AntiLambdaPID==1 && lMomInnerWallNeg <=1) || (lMomInnerWallNeg>1) || !(fUsePID.Contains("withPID"))){
2824 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
2826 fHistNsigmaPosProtonAntiLambda->Fill(nSigmaPosProton);
2827 fHistNsigmaNegPionAntiLambda->Fill(nSigmaNegPion);
2828 switch (lOnFlyStatus){
2831 // fHistMultVsPtVsMassAntiLambda->Fill(multiplicity ,lInvMassAntiLambda,lPtAntiLambda);
2832 if(lCheckPIdAntiLambda) fHistPidMcMassAntiLambda->Fill(lInvMassAntiLambda);
2834 if(lCheckMcAntiLambda) {
2835 fHistAsMcMassAntiLambda->Fill(lInvMassAntiLambda);
2836 fHistAsMcPtAntiLambda->Fill(lPtAntiLambda);
2839 fHistAsMcPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
2840 if (lPtAntiLambda <= 1) fHistAsMcPtZoomAntiLambda->Fill(lPtAntiLambda);
2841 fHistAsMcMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
2842 fHistAsMcResxAntiLambda->Fill(rcPosXAntiLambda-mcPosX);
2843 fHistAsMcResyAntiLambda->Fill(rcPosYAntiLambda-mcPosY);
2844 fHistAsMcReszAntiLambda->Fill(rcPosZAntiLambda-mcPosZ);
2845 fHistAsMcResrVsRadiusAntiLambda->Fill(rcPosRAntiLambda,rcPosRAntiLambda-mcPosR);
2846 fHistAsMcReszVsRadiusAntiLambda->Fill(rcPosZAntiLambda,rcPosZAntiLambda-mcPosZ);
2847 fHistAsMcProdRadiusAntiLambda->Fill(mcPosMotherR);
2848 fHistAsMcProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
2849 fHistAsMcResPtAntiLambda->Fill(deltaPtAntiLambda);
2850 fHistAsMcResPtVsRapAntiLambda->Fill(deltaPtAntiLambda,lRapAntiLambda);
2851 fHistAsMcResPtVsPtAntiLambda->Fill(deltaPtAntiLambda,lPtAntiLambda);
2852 if (lComeFromSigma) fHistAsMcPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
2853 switch (lPdgcodeMotherOfMother) {
2854 case 3222 : fHistAsMcMotherPdgCodeAntiLambda->Fill(0.5); break; // Sigma +
2855 case 3212 : fHistAsMcMotherPdgCodeAntiLambda->Fill(1.5); break; // Sigma 0
2856 case 3112 : fHistAsMcMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
2857 case 3224 : fHistAsMcMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
2858 case 3214 : fHistAsMcMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
2859 case 3114 : fHistAsMcMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
2860 case 3322 : fHistAsMcMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
2861 case 3312 : fHistAsMcMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
2862 case 3334 : fHistAsMcMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
2864 case -1 : fHistAsMcMotherPdgCodeAntiLambda->Fill(9.5); break;
2865 default : fHistAsMcMotherPdgCodeAntiLambda->Fill(10.5);break;
2868 //printf("found AntiLambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtAntiLambda,lInvMassAntiLambda);
2869 //printf("found AntiLambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
2873 else if (lCheckSecondaryAntiLambda) {
2874 fHistAsMcSecondaryPtVsRapAntiLambda->Fill(lPtAntiLambda,lRapAntiLambda);
2875 fHistAsMcSecondaryProdRadiusAntiLambda->Fill(mcPosMotherR);
2876 fHistAsMcSecondaryProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
2877 if (lComeFromSigma) fHistAsMcSecondaryPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
2878 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
2879 switch (lPdgcodeMotherOfMother) {
2880 case 3222 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(0.5); break;// Sigma +
2881 case 3212 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(1.5); break;// Sigma 0
2882 case 3112 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
2883 case 3224 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
2884 case 3214 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
2885 case 3114 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
2886 case 3322 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
2887 case 3312 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
2888 case 3334 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
2889 case -1 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(9.5); break;
2890 default : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(10.5);break;
2896 } // end rapidity condition
2897 // }// end PID condition
2898 }//end cTau condition
2902 // if (primaryVtxKF) delete primaryVtxKF;primaryVtxKF=NULL ;
2905 fHistV0Multiplicity->Fill(nv0s);
2906 // fHistV0MultiplicityMI->Fill(nv0sMI);
2908 if (fAnalysisType == "AOD") { if(myPrimaryVertex) delete myPrimaryVertex; }
2915 //________________________________________________________________________
2916 void AliAnalysisTaskPerformanceStrangeAOD::Terminate(Option_t *)
2920 //----------------------------------------------------------------------------
2922 Double_t AliAnalysisTaskPerformanceStrangeAOD::MyRapidity(Double_t rE, Double_t rPz) const
2924 // Local calculation for rapidity
2925 return 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13));
2927 //----------------------------------------------------------------------------