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),fArmenterosCut(0.2),
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),fArmenterosCut(0.2),
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 Double_t cutArmenteros = fArmenterosCut;
1638 // Min number of TPC clusters:
1639 // Int_t nbMinTPCclusters = 80;
1644 Int_t LambdaPID = 0;
1645 Int_t AntiLambdaPID = 0;
1652 TClonesArray *stack = 0x0;
1653 Double_t mcXv=0., mcYv=0., mcZv=0.;
1654 Int_t ntrk =0, ntrk0=0;
1657 TList *lst = aod->GetList();
1658 stack = (TClonesArray*)lst->FindObject(AliAODMCParticle::StdBranchName());
1660 Printf("ERROR: stack not available");
1664 mcHdr=(AliAODMCHeader*)lst->FindObject(AliAODMCHeader::StdBranchName());
1666 mcXv=mcHdr->GetVtxX(); mcYv=mcHdr->GetVtxY(); mcZv=mcHdr->GetVtxZ();
1668 ntrk=stack->GetEntriesFast(), ntrk0=ntrk;
1670 if(TMath::Abs(mcZv)>10)return;
1673 fHistNumberEvents->Fill(3.5);
1674 //**********************************************
1676 //**********************************************
1678 Double_t lmcPrimVtxR = 0;
1680 Int_t lNbMCPrimary = 0;
1681 Int_t lNbMCPart = 0;
1683 Int_t lPdgcodeCurrentPart = 0;
1684 Double_t lRapCurrentPart = 0;
1685 Double_t lPtCurrentPart = 0;
1687 Int_t lComeFromSigma = 0;
1690 // Production Radius
1691 Double_t mcPosX = 0.0, mcPosY = 0.0, mcPosZ = 0.0;
1692 Double_t mcPosR = 0.0;
1695 Double_t mcDecayPosX = 0, mcDecayPosY = 0, mcDecayPosR = 0;
1697 // current mc particle 's mother
1698 Int_t iCurrentMother = 0, lPdgCurrentMother = 0;
1699 // Bool_t lCurrentMotherIsPrimary;
1701 // current mc particles 's daughter:
1702 Int_t lPdgCurrentDaughter0 = 0, lPdgCurrentDaughter1 = 0;
1704 // variables for multiple reconstruction studies:
1705 Int_t id0 = 0, id1 = 0;
1706 //Int_t lLabelTrackN = 0, lLabelTrackP = 0;
1707 //Int_t lPartNMother = 0, lPartPMother = 0;
1708 //Int_t lPartPMotherPDGcode = 0;
1709 Int_t lNtimesReconstructedK0s = 0, lNtimesReconstructedLambda = 0, lNtimesReconstructedAntiLambda = 0;
1710 // Int_t lNtimesReconstructedK0sMI = 0, lNtimesReconstructedLambdaMI = 0, lNtimesReconstructedAntiLambdaMI = 0;
1712 //****************************
1713 // Start loop over MC particles
1717 fHistMCPrimaryVertexX->Fill(mcXv);
1718 fHistMCPrimaryVertexY->Fill(mcYv);
1719 fHistMCPrimaryVertexZ->Fill(mcZv);
1721 lmcPrimVtxR = TMath::Sqrt(mcXv*mcXv+mcYv*mcYv);
1724 if(fAnalysisType == "AOD") {
1726 // lNbMCPrimary = stack->GetNprimary();
1728 fHistMCMultiplicityPrimary->Fill(lNbMCPrimary);
1729 fHistMCMultiplicityTracks->Fill(lNbMCPart);
1730 lNbMCPart = lNbMCPart +1;
1732 for (Int_t iMc = 0; iMc < (ntrk); iMc++) {
1733 AliAODMCParticle *p0=(AliAODMCParticle*)stack->UncheckedAt(iMc);
1735 //Printf("ERROR: particle with label %d not found in stack (mc loop)", iMc);
1738 lPdgcodeCurrentPart = p0->GetPdgCode();
1740 // Keep only K0s, Lambda and AntiLambda, Xi and Phi:
1741 if ( (lPdgcodeCurrentPart != 310 ) && (lPdgcodeCurrentPart != 3122 ) && (lPdgcodeCurrentPart != -3122 ) && (lPdgcodeCurrentPart != 3312 ) && (lPdgcodeCurrentPart != -3312) && (lPdgcodeCurrentPart != -333) ) continue;
1743 lRapCurrentPart = MyRapidity(p0->E(),p0->Pz());
1744 //lEtaCurrentPart = p0->Eta();
1745 lPtCurrentPart = p0->Pt();
1746 iCurrentMother = p0->GetMother();
1748 AliAODMCParticle *Mother = (AliAODMCParticle*)stack->UncheckedAt(iCurrentMother);
1749 // lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();
1750 if (iCurrentMother == -1){lPdgCurrentMother=0; } else {lPdgCurrentMother = Mother->GetPdgCode();}
1755 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
1757 id0 = p0->GetDaughter(0);
1758 id1 = p0->GetDaughter(1);
1760 // Decay Radius and Production Radius
1761 if ( id0 <= ntrk && id0 > 0 && id1 <= ntrk && id1 > 0) {
1762 AliAODMCParticle *pDaughter0 = (AliAODMCParticle*)stack->UncheckedAt(id0);
1763 AliAODMCParticle *pDaughter1 = (AliAODMCParticle*)stack->UncheckedAt(id1);
1764 lPdgCurrentDaughter0 = pDaughter0->GetPdgCode();
1765 lPdgCurrentDaughter1 = pDaughter1->GetPdgCode();
1767 mcDecayPosX = pDaughter0->Xv();
1768 mcDecayPosY = pDaughter0->Yv();
1769 mcDecayPosR = TMath::Sqrt(mcDecayPosX*mcDecayPosX+mcDecayPosY*mcDecayPosY);
1772 //Printf("ERROR: particle with label %d and/or %d not found in stack (mc loop)", id0,id1);
1776 if (lPdgcodeCurrentPart==310) {
1777 fHistMCtracksProdRadiusK0s->Fill(mcPosX,mcPosY);
1778 fHistMCtracksDecayRadiusK0s->Fill(mcDecayPosR);
1779 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllK0s->Fill(lPtCurrentPart);
1781 else if (lPdgcodeCurrentPart==3122) {
1782 fHistMCtracksProdRadiusLambda->Fill(mcPosX,mcPosY);
1783 fHistMCtracksDecayRadiusLambda->Fill(mcDecayPosR);
1784 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllLambda->Fill(lPtCurrentPart);
1786 else if (lPdgcodeCurrentPart==-3122) {
1787 fHistMCtracksProdRadiusAntiLambda->Fill(mcPosX,mcPosY);
1788 fHistMCtracksDecayRadiusAntiLambda->Fill(mcDecayPosR);
1789 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllAntiLambda->Fill(lPtCurrentPart);
1792 if ( ( ( TMath::Abs(lPdgCurrentMother) == 3212) ||
1793 ( TMath::Abs(lPdgCurrentMother) == 3224) ||
1794 ( TMath::Abs(lPdgCurrentMother) == 3214) ||
1795 ( TMath::Abs(lPdgCurrentMother) == 3114) )
1796 // && ( iCurrentMother <= lNbMCPrimary )
1797 // && ( Mother->IsPhysicalPrimary() )
1798 && ( Mother->GetMother() == -1) //&& (Mother->GetDaughter(0) == (iCurrentMother+1))
1799 ) lComeFromSigma = 1;
1800 else lComeFromSigma = 0;
1802 //*********************************************
1803 // Now keep only primary particles
1804 // if ( ( iMc > lNbMCPrimary ) && (!lComeFromSigma) ) continue;
1805 // if ( !((p0->GetMother() == -1) && (p0->GetDaughter(0) == (iMc+1) ) && p0->IsPhysicalPrimary()) && (!lComeFromSigma) ) continue;
1806 // if ( !(p0->GetMother() == -1) && (!lComeFromSigma) ) continue;
1807 //*************************************//
1808 // new definition of primary particles //
1809 //*************************************//
1814 Double_t ProdDistance = 0;
1817 dx = ( ( mcXv) - (mcPosX) );
1818 dy = ( ( mcYv) - (mcPosY) );
1819 dz = ( ( mcZv) - (mcPosZ) );
1821 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
1823 if (ProdDistance > 0.001) continue; // secondary V0
1827 //********************************************
1829 lNtimesReconstructedK0s = 0; lNtimesReconstructedLambda = 0; lNtimesReconstructedAntiLambda = 0;
1833 if (lPdgcodeCurrentPart==310) {
1834 fHistMCRapK0s->Fill(lRapCurrentPart);
1835 if (lPtCurrentPart < 0.2 && lPtCurrentPart < 3.0)
1836 fHistMCRapInPtRangeK0s->Fill(lRapCurrentPart);
1839 if (lPdgcodeCurrentPart==3122) {
1840 fHistMCRapLambda->Fill(lRapCurrentPart);
1841 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5)
1842 fHistMCRapInPtRangeLambda->Fill(lRapCurrentPart);
1845 if (lPdgcodeCurrentPart==-3122) {
1846 fHistMCRapAntiLambda->Fill(lRapCurrentPart);
1847 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5)
1848 fHistMCRapInPtRangeAntiLambda->Fill(lRapCurrentPart);
1851 if (lPdgcodeCurrentPart==3312 || lPdgcodeCurrentPart==-3312) {
1852 fHistMCRapXi->Fill(lRapCurrentPart);
1853 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.0)
1854 fHistMCRapInPtRangeXi->Fill(lRapCurrentPart);
1857 if (lPdgcodeCurrentPart==333) {
1858 fHistMCRapPhi->Fill(lRapCurrentPart);
1859 if (lPtCurrentPart < 0.7 && lPtCurrentPart < 3.0)
1860 fHistMCRapInPtRangePhi->Fill(lRapCurrentPart);
1864 if (TMath::Abs(lRapCurrentPart) > lCutRap) continue;
1866 if (lPdgcodeCurrentPart==310) {
1867 fHistMCProdRadiusK0s->Fill(mcPosR);
1869 fHistMCPtK0s->Fill(lPtCurrentPart);
1873 fHistNTimesRecK0s->Fill(lNtimesReconstructedK0s);
1874 fHistNTimesRecK0sVsPt->Fill(lPtCurrentPart,lNtimesReconstructedK0s);
1877 if (lPdgcodeCurrentPart==3122) {
1878 fHistMCProdRadiusLambda->Fill(mcPosR);
1880 fHistMCPtLambda->Fill(lPtCurrentPart);
1883 fHistNTimesRecLambda->Fill(lNtimesReconstructedLambda);
1884 fHistNTimesRecLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedLambda);
1885 if (lComeFromSigma) fHistMCPtLambdaFromSigma->Fill(lPtCurrentPart);
1887 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
1888 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
1892 if (lPdgcodeCurrentPart==-3122) {
1893 fHistMCProdRadiusAntiLambda->Fill(mcPosR);
1895 fHistMCPtAntiLambda->Fill(lPtCurrentPart);
1898 fHistNTimesRecAntiLambda->Fill(lNtimesReconstructedAntiLambda);
1899 fHistNTimesRecAntiLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambda);
1900 if (lComeFromSigma) fHistMCPtAntiLambdaFromSigma->Fill(lPtCurrentPart);
1902 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
1903 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
1908 } // end loop ESD MC
1910 } // end ESD condition
1913 } // End Loop over MC condition
1919 //************************************
1921 //************************************
1923 // Double_t lLambdaMass = 1.115683; //PDG
1924 Double_t lPLambda = 0;
1925 Double_t lPAntiLambda = 0;
1927 // Double_t lMagneticField = 999;
1930 // Int_t nv0sTot= 0;
1934 Double_t lV0Position[3];
1936 Double_t lDcaPosToPrimVertex = 0;
1937 Double_t lDcaNegToPrimVertex = 0;
1938 Double_t lDcaV0Daughters = 0;
1939 Double_t lV0cosPointAngle = 0;
1940 Double_t lChi2V0 = 0;
1941 Double_t lV0DecayLength = 0;
1942 Double_t lV0Radius = 0;
1943 Double_t lDcaV0ToPrimVertex = 0;
1944 Double_t lcTauLambda = 0;
1945 Double_t lcTauAntiLambda = 0;
1946 Double_t lcTauK0s = 0;
1947 Int_t lOnFlyStatus = 0;
1948 //Float_t tdcaPosToPrimVertexXYZ[2], tdcaNegToPrimVertexXYZ[2]; // ..[0] = Impact parameter in XY plane and ..[1] = Impact parameter in Z
1949 //Double_t tdcaDaughterToPrimVertex[2]; // ..[0] = Pos and ..[1] = Neg
1953 Double_t lInvMassK0s = 0, lInvMassLambda = 0, lInvMassAntiLambda = 0;
1954 Double_t lPtK0s = 0, lPtLambda = 0, lPtAntiLambda = 0;
1955 Double_t lRapK0s = 0, lRapLambda = 0, lRapAntiLambda = 0;
1956 // Double_t lEtaK0s = 0, lEtaLambda = 0, lEtaAntiLambda = 0;
1957 Double_t lAlphaV0 = 0, lPtArmV0 = 0;
1959 Double_t lPzK0s = 0, lPzLambda = 0, lPzAntiLambda = 0;
1962 Double_t lV0Eta = 999;
1964 // to study Associated V0s:
1965 // Int_t lIndexTrackPos = 0, lIndexTrackNeg = 0;
1966 UInt_t lLabelTrackPos = 0, lLabelTrackNeg = 0;
1967 Int_t lCheckPIdK0Short = 0, lCheckMcK0Short = 0;
1968 Int_t lCheckPIdLambda = 0, lCheckMcLambda = 0;
1969 Int_t lCheckPIdAntiLambda = 0, lCheckMcAntiLambda = 0;
1970 Int_t lCheckSecondaryK0s = 0, lCheckSecondaryLambda = 0, lCheckSecondaryAntiLambda = 0;
1971 Int_t lCheckGamma = 0;
1972 Double_t mcPosMotherX = 0, mcPosMotherY = 0, mcPosMotherZ = 0;
1973 Double_t mcPosMotherR = 0;
1974 Double_t mcMotherPt = 0;
1976 Int_t lIndexPosMother = 0;
1977 Int_t lIndexNegMother = 0;
1978 Int_t lIndexMotherOfMother = 0;
1979 Int_t lPDGCodePosDaughter = 0;
1980 Int_t lPDGCodeNegDaughter = 0;
1981 Int_t lPdgcodeMother = 0;
1982 Int_t lPdgcodeMotherOfMother = 0;
1984 // Reconstructed position
1985 Double_t rcPosXK0s = 0, rcPosYK0s = 0, rcPosZK0s = 0;
1986 Double_t rcPosRK0s = 0;
1987 Double_t rcPosXLambda = 0, rcPosYLambda = 0, rcPosZLambda = 0;
1988 Double_t rcPosRLambda = 0;
1989 Double_t rcPosXAntiLambda = 0, rcPosYAntiLambda = 0, rcPosZAntiLambda = 0;
1990 Double_t rcPosRAntiLambda = 0;
1993 Double_t deltaPtK0s = 0, deltaPtLambda = 0, deltaPtAntiLambda = 0;
1996 const AliAODTrack *myTrackPos = NULL;
1997 const AliAODTrack *myTrackNeg = NULL;
1998 // AliVParticle *lVPartPos = NULL;
1999 // AliVParticle *lVPartNeg = NULL;
2002 // Double_t V0mom[3] = {999,999,999};
2003 Double_t lPosMom = 0;
2004 Double_t lNegMom = 0;
2005 // Double_t lPmom = 0;
2006 // Double_t lPLambda = 0;
2008 // Daughters' momentum:
2009 Double_t lMomPos[3] = {999,999,999};
2010 Double_t lMomNeg[3] = {999,999,999};
2011 Double_t lPtPos = 999, lPtNeg = 999;
2012 Double_t lPPos = 999, lPNeg = 999;
2014 // Inner Wall parameters:
2015 Double_t lMomInnerWallPos =999, lMomInnerWallNeg = 999;
2017 // AliKF Chi2 and Armenteros variables
2018 // Double_t lChi2KFK0s = 0, lChi2KFLambda = 0, lChi2KFAntiLambda = 0;
2019 // Double_t lAlphaV0K0s = 0, lAlphaV0Lambda = 0, lAlphaV0AntiLambda = 0;
2020 //Double_t lPtArmV0K0s = 0, lPtArmV0Lambda = 0, lPtArmV0AntiLambda = 0;
2021 // Double_t lQlPos = 0, lQlNeg = 0;
2025 Float_t nSigmaPosPion = 0;
2026 Float_t nSigmaNegPion = 0;
2028 Float_t nSigmaPosProton = 0;
2029 Float_t nSigmaNegProton = 0;
2032 Int_t lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2033 Int_t lCheckPIDLambdaPosDaughter = 0, lCheckPIDLambdaNegDaughter = 0;
2034 Int_t lCheckPIDAntiLambdaPosDaughter = 0, lCheckPIDAntiLambdaNegDaughter = 0;
2038 //***********************
2039 // Primary Vertex cuts &
2040 // Magnetic field and Quality tracks cuts
2042 Double_t lPrimaryVtxPosition[3];
2043 // Double_t lPrimaryVtxCov[6];
2044 Double_t lPrimaryVtxChi2 = 999;
2045 // Double_t lResPrimaryVtxX = 999;
2046 // Double_t lResPrimaryVtxY = 999;
2047 // Double_t lResPrimaryVtxZ = 999;
2049 AliAODVertex *myPrimaryVertex = NULL;
2050 //const AliVVertex *mySPDPrimaryVertex = NULL;
2052 if(fAnalysisType == "AOD") {
2053 AliAODVertex *myPrimVertex = aod->GetPrimaryVertex();
2054 // AliAODVertex(myPrimVertex);
2055 myPrimVertex->GetXYZ(lPrimaryVtxPosition);
2056 if ( ( TMath::Abs(myPrimVertex->GetZ()) ) > cutPrimVertex) return ;
2057 fHistNumberEvents->Fill(4.5);
2058 lPrimaryVtxChi2 = myPrimVertex->GetChi2perNDF();
2061 ntrk=aod->GetNumberOfTracks();
2064 for (Int_t i=0; i<ntrk; i++) {
2065 AliAODTrack *t=aod->GetTrack(i);
2066 if (t->IsMuonTrack()) continue;
2067 if (!t->IsOn(AliAODTrack::kTPCrefit)) continue;
2070 if (t->GetPosition(xyz)) continue;
2071 if (TMath::Abs(xyz[0])>3.) continue;
2072 if (TMath::Abs(xyz[1])>3.) continue;
2074 Double_t pt=t->Pt(),pz=t->Pz();
2075 if (TMath::Abs(pz/pt)>0.8) continue;
2079 /* const AliAODPid *pid=t->GetDetPid();
2082 Double_t p=pid->GetTPCmomentum();
2083 Double_t dedx=pid->GetTPCsignal()/47.;
2084 fdEdx->Fill(p,dedx,1);
2086 nsig=pidResponse->NumberOfSigmasTPC(t,AliPID::kProton);
2087 if (TMath::Abs(nsig) < 3.) fdEdxPid->Fill(p,dedx,1);
2091 fHistTPCMult->Fill(mult);
2094 fHistPrimaryVertexX->Fill(lPrimaryVtxPosition[0]);
2095 fHistPrimaryVertexY->Fill(lPrimaryVtxPosition[1]);
2096 fHistPrimaryVertexZ->Fill(lPrimaryVtxPosition[2]);
2097 //Double_t lrcPrimVtxR = TMath::Sqrt(lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]+lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]);
2099 fHistPrimaryVertexResX->Fill(lResPrimaryVtxX);
2100 fHistPrimaryVertexResY->Fill(lResPrimaryVtxY);
2101 fHistPrimaryVertexResZ->Fill(lResPrimaryVtxZ);
2105 Int_t nv0 = aod->GetNumberOfV0s();
2107 AliAODv0 *v0=aod->GetV0(nv0);
2108 if (!v0) { fHistNumberEvents->Fill(5.5);continue;}
2110 if (!AcceptV0(v0,aod,lCutPseudorap)){ fHistNumberEvents->Fill(6.5); continue;}
2111 fHistNumberEvents->Fill(7.5);
2114 lIndexPosMother = 0; lIndexNegMother = 0; lIndexMotherOfMother = 0;
2115 lCheckPIdK0Short = 0; lCheckMcK0Short = 0; lCheckSecondaryK0s = 0;
2116 lCheckPIdLambda = 0; lCheckMcLambda = 0; lCheckSecondaryLambda = 0;
2117 lCheckPIdAntiLambda = 0; lCheckMcAntiLambda = 0; lCheckSecondaryAntiLambda = 0;
2118 lComeFromSigma = -1;lCheckGamma = 0;
2121 if(fAnalysisType == "AOD") {
2124 fHistPrimaryVertexPosXV0events->Fill(lPrimaryVtxPosition[0]);
2125 fHistPrimaryVertexPosYV0events->Fill(lPrimaryVtxPosition[1]);
2126 fHistPrimaryVertexPosZV0events->Fill(lPrimaryVtxPosition[2]);
2129 // lIndexTrackPos = TMath::Abs(v0->GetPindex());
2130 //lIndexTrackNeg = TMath::Abs(v0->GetNindex());
2131 AliAODTrack *myTrackNegTest=(AliAODTrack *)v0->GetDaughter(1);
2132 AliAODTrack *myTrackPosTest=(AliAODTrack *)v0->GetDaughter(0);
2134 // AliExternalTrackParam *NegParam = AliExternalTrackParam(myTrackNegTest);
2135 //AliExternalTrackParam *PosParam = AliExternalTrackParam(myTrackPosTest);
2136 // const AliExternalTrackParam *NegParam = myTrackNegTest->GetOuterParam();
2137 //const AliExternalTrackParam *PosParam = myTrackPosTest->GetOuterParam();
2139 if (!myTrackPosTest || !myTrackNegTest) {
2140 Printf("strange analysis::UserExec:: Error:Could not retreive one of the daughter track\n");
2144 if (myTrackNegTest->Charge() == myTrackPosTest->Charge()){
2148 // VO's main characteristics to check the reconstruction cuts
2149 lOnFlyStatus = v0->GetOnFlyStatus();
2150 lChi2V0 = v0->Chi2V0();
2151 lDcaV0Daughters = v0->DcaV0Daughters();
2152 lDcaV0ToPrimVertex = v0->DcaV0ToPrimVertex();
2153 lV0cosPointAngle = v0->CosPointingAngle(lPrimaryVtxPosition);
2155 v0->GetXYZ(lV0Position);
2157 lV0Radius = TMath::Sqrt(lV0Position[0]*lV0Position[0]+lV0Position[1]*lV0Position[1]);
2158 lV0DecayLength = TMath::Sqrt(TMath::Power(lV0Position[0] - lPrimaryVtxPosition[0],2) +
2159 TMath::Power(lV0Position[1] - lPrimaryVtxPosition[1],2) +
2160 TMath::Power(lV0Position[2] - lPrimaryVtxPosition[2],2 ));
2163 if( myTrackPosTest->Charge() ==1){
2165 myTrackPos = myTrackPosTest;
2166 myTrackNeg = myTrackNegTest;
2168 // Daughters' momentum;
2169 myTrackPos->GetPxPyPz(lMomPos);
2170 myTrackNeg->GetPxPyPz(lMomNeg);
2173 if( myTrackPosTest->Charge() ==-1){
2175 myTrackPos = myTrackNegTest;
2176 myTrackNeg = myTrackPosTest;
2178 // Daughters' momentum;
2179 myTrackPos->GetPxPyPz(lMomPos);
2180 myTrackNeg->GetPxPyPz(lMomNeg);
2183 lLabelTrackPos = (UInt_t)TMath::Abs(myTrackPos->GetLabel());
2184 lLabelTrackNeg = (UInt_t)TMath::Abs(myTrackNeg->GetLabel());
2186 // Daughters Pt and P:
2187 lPtPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1]);
2188 lPtNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1]);
2190 lPPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1] + lMomPos[2]*lMomPos[2]);
2191 lPNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1] + lMomNeg[2]*lMomNeg[2]);
2197 // Inner Wall parameter:
2198 const AliAODPid *pidPos=myTrackPos->GetDetPid();
2199 const AliAODPid *pidNeg=myTrackNeg->GetDetPid();
2201 // innerWall momentum
2202 lMomInnerWallPos = pidPos->GetTPCmomentum();
2203 lMomInnerWallNeg = pidNeg->GetTPCmomentum();;
2205 // DCA between daughter and Primary Vertex:
2206 if (myTrackPos) lDcaPosToPrimVertex = v0->DcaPosToPrimVertex();
2207 if (myTrackNeg) lDcaNegToPrimVertex = v0->DcaNegToPrimVertex();
2210 // Quality tracks cuts:
2211 if ( !(AcceptTrack(myTrackPos)) || !(AcceptTrack(myTrackNeg)) )
2214 // Armenteros variables:
2215 lAlphaV0 = v0->AlphaV0();
2216 lPtArmV0 = v0->PtArmV0();
2219 lV0Eta = v0->PseudoRapV0();
2220 //////////////////////////////////////////////////////////////////////////
2222 lInvMassK0s = v0->MassK0Short();
2226 lInvMassLambda = v0->MassLambda();
2227 lPtLambda = v0->Pt();
2228 lPzLambda = v0->Pz();
2230 lInvMassAntiLambda = v0->MassAntiLambda();
2231 lPtAntiLambda = v0->Pt();
2232 lPzAntiLambda = v0->Pz();
2236 lRapK0s = v0->RapK0Short();
2237 lRapLambda = v0->RapLambda();
2238 lRapAntiLambda = v0->Y(-3122);
2240 if (lPtK0s==0) {continue;}
2241 if (lPtLambda==0) {continue;}
2242 if (lPtAntiLambda==0) {continue;}
2244 ///////////////////////////////////////////////////////////////////////
2246 // PID new method July 2011
2247 if (fUsePID.Contains("withPID")) {
2248 nSigmaPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kPion));
2249 nSigmaNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kPion));
2250 nSigmaPosProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kProton));
2251 nSigmaNegProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kProton));
2254 nSigmaPosPion = 0; nSigmaNegPion =0; nSigmaPosProton = 0; nSigmaNegProton= 0;
2257 // Monte-Carlo particle associated to reconstructed particles:
2259 //if (lLabelTrackPos < 0 || lLabelTrackNeg < 0) continue;
2260 AliAODMCParticle *pp=(AliAODMCParticle*)stack->UncheckedAt(lLabelTrackPos);
2262 // Printf("no MC particle for positive and/or negative daughter\n");
2265 AliAODMCParticle *np=(AliAODMCParticle*)stack->UncheckedAt(lLabelTrackNeg);
2266 if (!np) { continue;}
2267 lPDGCodePosDaughter = pp->GetPdgCode();
2268 lPDGCodeNegDaughter = np->GetPdgCode();
2269 lIndexPosMother = pp->GetMother();
2270 lIndexNegMother = np->GetMother();
2272 if (lIndexPosMother == -1) {
2275 lIndexMotherOfMother = 0;
2288 AliAODMCParticle *lMCAODMother=(AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother);
2289 if (!lMCAODMother) { continue;}
2290 lPdgcodeMother = lMCAODMother->GetPdgCode();
2291 lIndexMotherOfMother = lMCAODMother->GetMother();
2292 if (lIndexMotherOfMother ==-1) lPdgcodeMotherOfMother = 0;
2294 AliAODMCParticle *lMCAODMotherOfMother=(AliAODMCParticle*)stack->UncheckedAt(lIndexMotherOfMother);
2295 if (!lMCAODMotherOfMother) {continue;}
2296 lPdgcodeMotherOfMother = lMCAODMotherOfMother->GetPdgCode();
2302 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
2303 mcPosMotherX = lMCAODMother->Xv();
2304 mcPosMotherY = lMCAODMother->Yv();
2305 mcPosMotherZ = lMCAODMother->Zv();
2306 mcPosMotherR = TMath::Sqrt(mcPosMotherX*mcPosMotherX+mcPosMotherY*mcPosMotherY);
2308 mcMotherPt = lMCAODMother->Pt();
2311 } // end AOD condition
2314 if(!lOnFlyStatus) nv0s++;
2315 // else if(lOnFlyStatus) nv0sMI++;
2317 // Daughter momentum cut: ! FIX it in case of AOD !
2318 if ( (lPtPos < cutMinPtDaughter ) ||
2319 (lPtNeg < cutMinPtDaughter )
2321 // Look for associated particles:
2323 if( (lIndexPosMother==-1) || (lIndexNegMother==-1) ) {
2324 fHistMCDaughterTrack->Fill(1);
2327 else if( ( (lPDGCodePosDaughter==+211) && (lPDGCodeNegDaughter==-211) )
2329 lCheckPIdK0Short = 1;
2330 fHistMCDaughterTrack->Fill(3);
2331 if ( (lIndexPosMother==lIndexNegMother) &&
2332 (lPdgcodeMother==310) ) {
2333 if (((AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother))->IsPrimary()) lCheckMcK0Short = 1;
2334 else lCheckSecondaryK0s = 1;
2337 else if( ( (lPDGCodePosDaughter==+2212) && (lPDGCodeNegDaughter==-211) )
2339 lCheckPIdLambda = 1;
2340 fHistMCDaughterTrack->Fill(5);
2341 if ( (lIndexPosMother==lIndexNegMother) &&
2342 (lPdgcodeMother==3122) ){
2343 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2344 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2345 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2346 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2347 ) lComeFromSigma = 1;
2348 else lComeFromSigma = 0;
2349 if ( ((AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother))->IsPrimary() ||
2350 (!(((AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother))->IsPrimary() ) && (lComeFromSigma) )
2351 ) lCheckMcLambda = 1;
2352 else lCheckSecondaryLambda = 1;
2355 else if( ( (lPDGCodePosDaughter==211) && (lPDGCodeNegDaughter==-2212) )
2357 lCheckPIdAntiLambda = 1;
2358 fHistMCDaughterTrack->Fill(7);
2359 if ( (lIndexPosMother==lIndexNegMother) &&
2360 (lPdgcodeMother==-3122) ) {
2361 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2362 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2363 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2364 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2365 ) lComeFromSigma = 1;
2366 else lComeFromSigma = 0;
2367 if ( ((AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother))->IsPrimary() ||
2368 ( (!((AliAODMCParticle*)stack->UncheckedAt(lIndexPosMother))->IsPrimary()) && (lComeFromSigma) )
2369 ) lCheckMcAntiLambda = 1;
2370 else lCheckSecondaryAntiLambda = 1;
2375 else if ( (lPDGCodePosDaughter==-11) &&
2376 (lPDGCodeNegDaughter==11) &&
2377 (lPdgcodeMother==22 ) )
2379 } // end "look for associated particles
2383 lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2384 lCheckPIDLambdaPosDaughter = 0, lCheckPIDLambdaNegDaughter = 0;
2385 lCheckPIDAntiLambdaPosDaughter = 0, lCheckPIDAntiLambdaNegDaughter = 0;
2387 if (lMomInnerWallPos < lLimitPPID) {
2388 if (nSigmaPosPion < cutNSigmaLowP) {
2389 lCheckPIDK0sPosDaughter = 1;
2390 lCheckPIDAntiLambdaPosDaughter = 1;
2392 if (nSigmaPosProton < cutNSigmaLowP) lCheckPIDLambdaPosDaughter = 1;
2395 else if (lMomInnerWallPos > lLimitPPID) {
2396 if (nSigmaPosPion < cutNSigmaHighP) {
2397 lCheckPIDK0sPosDaughter = 1;
2398 lCheckPIDAntiLambdaPosDaughter = 1;
2400 if (nSigmaPosProton < cutNSigmaHighP) lCheckPIDLambdaPosDaughter = 1;
2403 if (lMomInnerWallNeg < lLimitPPID) {
2404 if (nSigmaNegPion < cutNSigmaLowP) {
2405 lCheckPIDK0sNegDaughter = 1;
2406 lCheckPIDLambdaNegDaughter = 1;
2408 if (nSigmaNegProton < cutNSigmaLowP) lCheckPIDAntiLambdaNegDaughter = 1;
2411 else if (lMomInnerWallNeg > lLimitPPID) {
2412 if (nSigmaNegPion < cutNSigmaHighP) {
2413 lCheckPIDK0sNegDaughter = 1;
2414 lCheckPIDLambdaNegDaughter = 1;
2416 if (nSigmaNegProton < cutNSigmaHighP) lCheckPIDAntiLambdaNegDaughter = 1;
2419 //*****************************
2420 // filling histograms
2421 //*****************************
2423 if(fUsePID.Contains("withPID") && (lCheckPIDAntiLambdaNegDaughter==0) && lCheckPIDLambdaPosDaughter==1) LambdaPID = 1;
2425 if(fUsePID.Contains("withPID") && (lCheckPIDLambdaPosDaughter==0) && lCheckPIDAntiLambdaNegDaughter==1) AntiLambdaPID = 1;
2426 else AntiLambdaPID =0;
2428 lPLambda = TMath::Sqrt(lPzLambda*lPzLambda + lPtLambda*lPtLambda);
2429 lPAntiLambda = TMath::Sqrt(lPzAntiLambda*lPzAntiLambda + lPtAntiLambda*lPtAntiLambda);
2430 lPK0s = TMath::Sqrt(lPzK0s*lPzK0s + lPtK0s*lPtK0s);
2432 if ((LambdaPID==1 && lPosMom <=1) || (lPosMom>1) || !(fUsePID.Contains("withPID"))){
2433 if ((TMath::Abs(lRapLambda) < lCutRap) && lOnFlyStatus==0) {
2434 fHistTPCsigPLambda->Fill(lPosMom,myTrackPos->GetTPCsignal());
2439 if ((AntiLambdaPID==1 && lNegMom <=1) || (lNegMom>1) || !(fUsePID.Contains("withPID"))){
2440 if ((TMath::Abs(lRapAntiLambda) < lCutRap) && lOnFlyStatus==0) {
2441 fHistTPCsigPAntiLambda->Fill(lNegMom,myTrackNeg->GetTPCsignal());
2447 lcTauLambda = (lV0DecayLength*lInvMassLambda)/lPLambda;
2449 lcTauAntiLambda = (lV0DecayLength*lInvMassAntiLambda)/lPAntiLambda;
2451 lcTauK0s = (lV0DecayLength*lInvMassK0s)/lPK0s;
2453 if (lPLambda <1 && lOnFlyStatus==0 ){
2454 fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
2455 fHistcTauL->Fill(lcTauLambda);
2464 if (lcTauK0s< cutcTauK0s)
2466 if (lPtArmV0 >= TMath::Abs(cutArmenteros*lAlphaV0))
2469 if (TMath::Abs(lRapK0s) < lCutRap ) {
2471 //////2D histos: cut vs on fly status/////////////////////
2473 fHistDcaPosToPrimVertexK0->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2474 fHistDcaNegToPrimVertexK0->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2475 fHistRadiusV0K0->Fill(lV0Radius,lOnFlyStatus);
2476 fHistDecayLengthV0K0->Fill(lV0DecayLength,lOnFlyStatus);
2477 fHistDcaV0DaughtersK0->Fill(lDcaV0Daughters,lOnFlyStatus);
2478 fHistChi2K0->Fill(lChi2V0,lOnFlyStatus);
2479 fHistCosPointAngleK0->Fill(lV0cosPointAngle,lOnFlyStatus);
2481 //////2D histos: cut vs mass/////////////////////
2483 if (lOnFlyStatus==0){
2486 fHistMassK0->Fill(lInvMassK0s);
2487 fHistMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
2488 fHistPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
2491 fHistDcaPosToPrimVertexK0vsMassK0->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2492 fHistDcaNegToPrimVertexK0vsMassK0->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2493 fHistRadiusV0K0vsMassK0->Fill(lV0Radius,lInvMassK0s);
2494 fHistDecayLengthV0K0vsMassK0->Fill(lV0DecayLength,lInvMassK0s);
2495 fHistDcaV0DaughtersK0vsMassK0->Fill(lDcaV0Daughters,lInvMassK0s);
2496 fHistCosPointAngleK0vsMassK0->Fill(lV0cosPointAngle,lInvMassK0s);
2498 if (lPtK0s>0 && lPtK0s <3){
2499 fHistDcaPosToPrimVertexK0vsMassK0pt1->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2500 fHistDcaNegToPrimVertexK0vsMassK0pt1->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2501 fHistRadiusV0K0vsMassK0pt1->Fill(lV0Radius,lInvMassK0s);
2502 fHistDecayLengthV0K0vsMassK0pt1->Fill(lV0DecayLength,lInvMassK0s);
2503 fHistDcaV0DaughtersK0vsMassK0pt1->Fill(lDcaV0Daughters,lInvMassK0s);
2504 fHistCosPointAngleK0vsMassK0pt1->Fill(lV0cosPointAngle,lInvMassK0s);
2506 if (lPtK0s > 3 && lPtK0s < 6){
2507 fHistDcaPosToPrimVertexK0vsMassK0pt2->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2508 fHistDcaNegToPrimVertexK0vsMassK0pt2->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2509 fHistRadiusV0K0vsMassK0pt2->Fill(lV0Radius,lInvMassK0s);
2510 fHistDecayLengthV0K0vsMassK0pt2->Fill(lV0DecayLength,lInvMassK0s);
2511 fHistDcaV0DaughtersK0vsMassK0pt2->Fill(lDcaV0Daughters,lInvMassK0s);
2512 fHistCosPointAngleK0vsMassK0pt2->Fill(lV0cosPointAngle,lInvMassK0s);
2514 if (lPtK0s > 6 && lPtK0s < 10){
2515 fHistDcaPosToPrimVertexK0vsMassK0pt3->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2516 fHistDcaNegToPrimVertexK0vsMassK0pt3->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2517 fHistRadiusV0K0vsMassK0pt3->Fill(lV0Radius,lInvMassK0s);
2518 fHistDecayLengthV0K0vsMassK0pt3->Fill(lV0DecayLength,lInvMassK0s);
2519 fHistDcaV0DaughtersK0vsMassK0pt3->Fill(lDcaV0Daughters,lInvMassK0s);
2520 fHistCosPointAngleK0vsMassK0pt3->Fill(lV0cosPointAngle,lInvMassK0s);
2524 } // if rap. condition
2525 } //end Armenteros cut condition
2526 } // end cTau condition
2529 ////////////////////////////
2533 ////////////////////////////
2536 if (lcTauLambda < cutcTauL){
2539 // if ((LambdaPID==1 && lPosMom <=1 ) || (lPosMom>1 ) || !(fUsePID.Contains("withPID"))){ This was set before. Global momentum used instead InnerWall momentum. which one is ok?
2540 if ((LambdaPID==1 && lMomInnerWallPos <=1 ) || (lMomInnerWallPos >1 ) || !(fUsePID.Contains("withPID"))){
2542 if (TMath::Abs(lRapLambda) < lCutRap) {
2544 //////2D histos: cut vs on fly status/////////////////////
2546 fHistDcaPosToPrimVertexL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2547 fHistDcaNegToPrimVertexL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2548 fHistRadiusV0L->Fill(lV0Radius,lOnFlyStatus);
2549 fHistDecayLengthV0L->Fill(lV0DecayLength,lOnFlyStatus);
2550 fHistDcaV0DaughtersL->Fill(lDcaV0Daughters,lOnFlyStatus);
2551 fHistChi2L->Fill(lChi2V0,lOnFlyStatus);
2552 fHistCosPointAngleL->Fill(lV0cosPointAngle,lOnFlyStatus);
2554 //////2D histos: cut vs mass/////////////////////
2556 if (lOnFlyStatus==0){
2557 fHistMassLambda->Fill(lInvMassLambda);
2558 fHistMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
2559 fHistPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
2560 if(lPtLambda <=1) fHistNSigmaProton->Fill(nSigmaPosProton);
2562 fHistDcaPosToPrimVertexLvsMassL->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2563 fHistDcaNegToPrimVertexLvsMassL->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2564 fHistRadiusV0LvsMassL->Fill(lV0Radius,lInvMassLambda);
2565 fHistDecayLengthV0LvsMassL->Fill(lV0DecayLength,lInvMassLambda);
2566 fHistDcaV0DaughtersLvsMassL->Fill(lDcaV0Daughters,lInvMassLambda);
2567 fHistCosPointAngleLvsMassL->Fill(lV0cosPointAngle,lInvMassLambda);
2570 if (lPtLambda>0 && lPtLambda <3){
2571 fHistDcaPosToPrimVertexLambdaVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2572 fHistDcaNegToPrimVertexLambdaVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2573 fHistRadiusV0LambdaVsMasspt1->Fill(lV0Radius,lInvMassLambda);
2574 fHistDecayLengthV0LambdaVsMasspt1->Fill(lV0DecayLength,lInvMassLambda);
2575 fHistDcaV0DaughtersLambdaVsMasspt1->Fill(lDcaV0Daughters,lInvMassLambda);
2576 fHistCosPointAngleLambdaVsMasspt1->Fill(lV0cosPointAngle,lInvMassLambda);
2578 if (lPtLambda > 3 && lPtLambda < 6){
2579 fHistDcaPosToPrimVertexLambdaVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2580 fHistDcaNegToPrimVertexLambdaVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2581 fHistRadiusV0LambdaVsMasspt2->Fill(lV0Radius,lInvMassLambda);
2582 fHistDecayLengthV0LambdaVsMasspt2->Fill(lV0DecayLength,lInvMassLambda);
2583 fHistDcaV0DaughtersLambdaVsMasspt2->Fill(lDcaV0Daughters,lInvMassLambda);
2584 fHistCosPointAngleLambdaVsMasspt2->Fill(lV0cosPointAngle,lInvMassLambda);
2586 if (lPtLambda > 6 && lPtLambda < 10){
2587 fHistDcaPosToPrimVertexLambdaVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2588 fHistDcaNegToPrimVertexLambdaVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2589 fHistRadiusV0LambdaVsMasspt3->Fill(lV0Radius,lInvMassLambda);
2590 fHistDecayLengthV0LambdaVsMasspt3->Fill(lV0DecayLength,lInvMassLambda);
2591 fHistDcaV0DaughtersLambdaVsMasspt3->Fill(lDcaV0Daughters,lInvMassLambda);
2592 fHistCosPointAngleLambdaVsMasspt3->Fill(lV0cosPointAngle,lInvMassLambda);
2596 } //end of Rap condition
2597 } // end of PID condition
2598 } //end cTau condition
2601 ////////////////////////////
2605 ////////////////////////////
2608 if (lcTauAntiLambda < cutcTauL){
2610 // if ((AntiLambdaPID==1 && lNegMom <=1) || (lNegMom>1) || !(fUsePID.Contains("withPID"))){
2611 if ((AntiLambdaPID==1 && lMomInnerWallNeg <=1) || (lMomInnerWallNeg >1) || !(fUsePID.Contains("withPID"))){
2612 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
2614 //////2D histos: cut vs on fly status/////////////////////
2616 fHistDcaPosToPrimVertexAntiL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2617 fHistDcaNegToPrimVertexAntiL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2618 fHistRadiusV0AntiL->Fill(lV0Radius,lOnFlyStatus);
2619 fHistDecayLengthV0AntiL->Fill(lV0DecayLength,lOnFlyStatus);
2620 fHistDcaV0DaughtersAntiL->Fill(lDcaV0Daughters,lOnFlyStatus);
2621 fHistChi2AntiL->Fill(lChi2V0,lOnFlyStatus);
2622 fHistCosPointAngleAntiL->Fill(lV0cosPointAngle,lOnFlyStatus);
2624 //////2D histos: cut vs mass/////////////////////
2626 if (lOnFlyStatus==0){
2628 fHistMassAntiLambda->Fill(lInvMassAntiLambda);
2629 fHistMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
2630 fHistPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
2633 fHistDcaPosToPrimVertexAntiLvsMass->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2634 fHistDcaNegToPrimVertexAntiLvsMass->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2635 fHistRadiusV0AntiLvsMass->Fill(lV0Radius,lInvMassAntiLambda);
2636 fHistDecayLengthV0AntiLvsMass->Fill(lV0DecayLength,lInvMassAntiLambda);
2637 fHistDcaV0DaughtersAntiLvsMass->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2638 fHistCosPointAngleAntiLvsMass->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2641 if (lPtAntiLambda>0 && lPtAntiLambda <3){
2642 fHistDcaPosToPrimVertexAntiLVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2643 fHistDcaNegToPrimVertexAntiLVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2644 fHistRadiusV0AntiLVsMasspt1->Fill(lV0Radius,lInvMassAntiLambda);
2645 fHistDecayLengthV0AntiLVsMasspt1->Fill(lV0DecayLength,lInvMassAntiLambda);
2646 fHistDcaV0DaughtersAntiLVsMasspt1->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2647 fHistCosPointAngleAntiLVsMasspt1->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2649 if (lPtAntiLambda > 3 && lPtAntiLambda < 6){
2650 fHistDcaPosToPrimVertexAntiLVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2651 fHistDcaNegToPrimVertexAntiLVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2652 fHistRadiusV0AntiLVsMasspt2->Fill(lV0Radius,lInvMassAntiLambda);
2653 fHistDecayLengthV0AntiLVsMasspt2->Fill(lV0DecayLength,lInvMassAntiLambda);
2654 fHistDcaV0DaughtersAntiLVsMasspt2->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2655 fHistCosPointAngleAntiLVsMasspt2->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2657 if (lPtAntiLambda > 6 && lPtAntiLambda < 10){
2658 fHistDcaPosToPrimVertexAntiLVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2659 fHistDcaNegToPrimVertexAntiLVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2660 fHistRadiusV0AntiLVsMasspt3->Fill(lV0Radius,lInvMassAntiLambda);
2661 fHistDecayLengthV0AntiLVsMasspt3->Fill(lV0DecayLength,lInvMassAntiLambda);
2662 fHistDcaV0DaughtersAntiLVsMasspt3->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2663 fHistCosPointAngleAntiLVsMasspt3->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2667 } //end of Rap condition
2668 } // end of PID condition
2669 } //end cTau condition
2671 ///////////////values for cuts end////////////////////////////////////////////////////////////////////////
2674 // Histo versus Rap and armenteros plot
2676 if (lCheckMcK0Short) fHistAsMcRapK0->Fill(lRapK0s);
2677 if (lCheckMcLambda) fHistAsMcRapLambda->Fill(lRapLambda);
2678 if (lCheckMcAntiLambda) fHistAsMcRapLambda->Fill(lRapAntiLambda);
2679 // fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
2680 if ((TMath::Abs(lRapK0s) < lCutRap)&&(TMath::Abs(lRapLambda) < lCutRap)) fHistK0sMassVsLambdaMass->Fill(lInvMassK0s,lInvMassLambda);
2684 /////////////////////////////////////////////////
2686 // K0s associated histograms
2688 /////////////////////////////////////////////////
2690 if (lcTauK0s< cutcTauK0s)
2692 if (lPtArmV0 >= TMath::Abs(cutArmenteros*lAlphaV0))
2695 if (TMath::Abs(lRapK0s) < lCutRap) {
2697 fHistNsigmaPosPionK0->Fill(nSigmaPosPion);
2698 fHistNsigmaNegPionK0->Fill(nSigmaNegPion);
2700 switch (lOnFlyStatus){
2704 // fHistMultVsPtVsMassK0->Fill(multiplicity ,lInvMassK0s,lPtK0s);
2705 if(lCheckPIdK0Short) fHistPidMcMassK0->Fill(lInvMassK0s);
2706 if(lCheckMcK0Short) {
2707 fHistAsMcMassK0->Fill(lInvMassK0s);
2708 fHistAsMcPtK0->Fill(lPtK0s);
2711 fHistAsMcPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
2712 if (lPtK0s <= 1) fHistAsMcPtZoomK0->Fill(lPtK0s);
2713 fHistAsMcMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
2714 fHistAsMcResxK0->Fill(rcPosXK0s-mcPosX);
2715 fHistAsMcResyK0->Fill(rcPosYK0s-mcPosY);
2716 fHistAsMcReszK0->Fill(rcPosZK0s-mcPosZ);
2717 fHistAsMcResrVsRadiusK0->Fill(rcPosRK0s,rcPosRK0s-mcPosR);
2718 fHistAsMcReszVsRadiusK0->Fill(rcPosZK0s,rcPosZK0s-mcPosZ);
2719 fHistAsMcProdRadiusK0->Fill(mcPosMotherR);
2720 fHistAsMcProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
2721 fHistAsMcResPtK0->Fill(deltaPtK0s);
2722 fHistAsMcResPtVsRapK0->Fill(deltaPtK0s,lRapK0s);
2723 fHistAsMcResPtVsPtK0->Fill(deltaPtK0s,lPtK0s);
2725 else if (lCheckSecondaryK0s) {
2726 fHistAsMcSecondaryPtVsRapK0s->Fill(lPtK0s,lRapK0s);
2727 fHistAsMcSecondaryProdRadiusK0s->Fill(mcPosMotherR);
2728 fHistAsMcSecondaryProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
2729 switch (lPdgcodeMotherOfMother) {
2730 case 130 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(0.5);break; // K0L
2731 case 321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(1.5);break; // K+
2732 case -321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(2.5);break; // K-
2733 case -3122 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(3.5);break; //AntiLambda
2734 default : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(6.5);break;
2740 } // end rapidity condition
2741 } // end Armenteros cut condition
2742 } //end cTau condition
2745 // Associated Lambda histograms in |rap| < lCutRap
2746 if (lcTauLambda < cutcTauL){
2748 // if ((LambdaPID==1 && lMomInnerWallPos <=1) || (lMomInnerWallPos>1) || !(fUsePID.Contains("withPID"))){
2749 if (TMath::Abs(lRapLambda) < lCutRap) {
2751 fHistNsigmaPosProtonLambda->Fill(nSigmaPosProton);
2752 fHistNsigmaNegPionLambda->Fill(nSigmaNegPion);
2753 switch (lOnFlyStatus){
2756 // fHistMultVsPtVsMassLambda->Fill(multiplicity ,lInvMassLambda,lPtLambda);
2757 if(lCheckPIdLambda) fHistPidMcMassLambda->Fill(lInvMassLambda);
2759 if(lCheckMcLambda) {
2760 fHistAsMcMassLambda->Fill(lInvMassLambda);
2761 fHistAsMcPtLambda->Fill(lPtLambda);
2762 fHistCosPointAngleLvsMassVsPtsigL->Fill(lPtLambda,lV0cosPointAngle,lInvMassLambda);
2764 fHistAsMcPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
2765 if (lPtLambda <= 1) fHistAsMcPtZoomLambda->Fill(lPtLambda);
2766 fHistAsMcMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
2767 fHistAsMcResxLambda->Fill(rcPosXLambda-mcPosX);
2768 fHistAsMcResyLambda->Fill(rcPosYLambda-mcPosY);
2769 fHistAsMcReszLambda->Fill(rcPosZLambda-mcPosZ);
2770 fHistAsMcResrVsRadiusLambda->Fill(rcPosRLambda,rcPosRLambda-mcPosR);
2771 fHistAsMcReszVsRadiusLambda->Fill(rcPosZLambda,rcPosZLambda-mcPosZ);
2772 fHistAsMcProdRadiusLambda->Fill(mcPosMotherR);
2773 fHistAsMcProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
2774 fHistAsMcResPtLambda->Fill(deltaPtLambda);
2775 fHistAsMcResPtVsRapLambda->Fill(deltaPtLambda,lRapLambda);
2776 fHistAsMcResPtVsPtLambda->Fill(deltaPtLambda,lPtLambda);
2777 if (lComeFromSigma) fHistAsMcPtLambdaFromSigma->Fill(lPtLambda);
2778 switch (lPdgcodeMotherOfMother) {
2779 case 3222 : fHistAsMcMotherPdgCodeLambda->Fill(0.5); break; // Sigma +
2780 case 3212 : fHistAsMcMotherPdgCodeLambda->Fill(1.5); break; // Sigma 0
2781 case 3112 : fHistAsMcMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
2782 case 3224 : fHistAsMcMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
2783 case 3214 : fHistAsMcMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
2784 case 3114 : fHistAsMcMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
2785 case 3322 : fHistAsMcMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
2786 case 3312 : fHistAsMcMotherPdgCodeLambda->Fill(7.5); break; // Xi -
2787 case 3334 : fHistAsMcMotherPdgCodeLambda->Fill(8.5); break; // Omega
2788 case -1 : fHistAsMcMotherPdgCodeLambda->Fill(9.5); break;
2789 default : fHistAsMcMotherPdgCodeLambda->Fill(10.5);break;
2792 //printf("found Lambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtLambda,lInvMassLambda);
2793 //printf("found Lambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
2797 else if (lCheckSecondaryLambda) {
2798 fHistAsMcSecondaryPtVsRapLambda->Fill(lPtLambda,lRapLambda);
2799 fHistAsMcSecondaryProdRadiusLambda->Fill(mcPosMotherR);
2800 fHistAsMcSecondaryProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
2801 if (lComeFromSigma) fHistAsMcSecondaryPtLambdaFromSigma->Fill(lPtLambda);
2802 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
2803 switch (lPdgcodeMotherOfMother) {
2804 case 3222 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(0.5); break;// Sigma +
2805 case 3212 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(1.5); break;// Sigma 0
2806 case 3112 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
2807 case 3224 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
2808 case 3214 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
2809 case 3114 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
2810 case 3322 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
2811 case 3312 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(7.5); break; // Xi -
2812 case 3334 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(8.5); break; // Omega
2813 case -1 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(9.5); break;
2814 default : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(10.5);break;
2818 if(!lCheckMcLambda)fHistCosPointAngleLvsMassVsPtbackL->Fill(lPtLambda,lV0cosPointAngle,lInvMassLambda);
2822 } // end rapidity condition
2823 // }// end PID condition
2824 }//end cTau condition
2826 /////////////////////////////////////////////////////
2827 // Associated AntiLambda histograms
2828 /////////////////////////////////////////////////////
2830 if (lcTauAntiLambda < cutcTauL){
2832 // if ((AntiLambdaPID==1 && lMomInnerWallNeg <=1) || (lMomInnerWallNeg>1) || !(fUsePID.Contains("withPID"))){
2833 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
2835 fHistNsigmaPosProtonAntiLambda->Fill(nSigmaPosProton);
2836 fHistNsigmaNegPionAntiLambda->Fill(nSigmaNegPion);
2837 switch (lOnFlyStatus){
2840 // fHistMultVsPtVsMassAntiLambda->Fill(multiplicity ,lInvMassAntiLambda,lPtAntiLambda);
2841 if(lCheckPIdAntiLambda) fHistPidMcMassAntiLambda->Fill(lInvMassAntiLambda);
2843 if(lCheckMcAntiLambda) {
2844 fHistAsMcMassAntiLambda->Fill(lInvMassAntiLambda);
2845 fHistAsMcPtAntiLambda->Fill(lPtAntiLambda);
2848 fHistAsMcPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
2849 if (lPtAntiLambda <= 1) fHistAsMcPtZoomAntiLambda->Fill(lPtAntiLambda);
2850 fHistAsMcMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
2851 fHistAsMcResxAntiLambda->Fill(rcPosXAntiLambda-mcPosX);
2852 fHistAsMcResyAntiLambda->Fill(rcPosYAntiLambda-mcPosY);
2853 fHistAsMcReszAntiLambda->Fill(rcPosZAntiLambda-mcPosZ);
2854 fHistAsMcResrVsRadiusAntiLambda->Fill(rcPosRAntiLambda,rcPosRAntiLambda-mcPosR);
2855 fHistAsMcReszVsRadiusAntiLambda->Fill(rcPosZAntiLambda,rcPosZAntiLambda-mcPosZ);
2856 fHistAsMcProdRadiusAntiLambda->Fill(mcPosMotherR);
2857 fHistAsMcProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
2858 fHistAsMcResPtAntiLambda->Fill(deltaPtAntiLambda);
2859 fHistAsMcResPtVsRapAntiLambda->Fill(deltaPtAntiLambda,lRapAntiLambda);
2860 fHistAsMcResPtVsPtAntiLambda->Fill(deltaPtAntiLambda,lPtAntiLambda);
2861 if (lComeFromSigma) fHistAsMcPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
2862 switch (lPdgcodeMotherOfMother) {
2863 case 3222 : fHistAsMcMotherPdgCodeAntiLambda->Fill(0.5); break; // Sigma +
2864 case 3212 : fHistAsMcMotherPdgCodeAntiLambda->Fill(1.5); break; // Sigma 0
2865 case 3112 : fHistAsMcMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
2866 case 3224 : fHistAsMcMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
2867 case 3214 : fHistAsMcMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
2868 case 3114 : fHistAsMcMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
2869 case 3322 : fHistAsMcMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
2870 case 3312 : fHistAsMcMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
2871 case 3334 : fHistAsMcMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
2873 case -1 : fHistAsMcMotherPdgCodeAntiLambda->Fill(9.5); break;
2874 default : fHistAsMcMotherPdgCodeAntiLambda->Fill(10.5);break;
2877 //printf("found AntiLambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtAntiLambda,lInvMassAntiLambda);
2878 //printf("found AntiLambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
2882 else if (lCheckSecondaryAntiLambda) {
2883 fHistAsMcSecondaryPtVsRapAntiLambda->Fill(lPtAntiLambda,lRapAntiLambda);
2884 fHistAsMcSecondaryProdRadiusAntiLambda->Fill(mcPosMotherR);
2885 fHistAsMcSecondaryProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
2886 if (lComeFromSigma) fHistAsMcSecondaryPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
2887 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
2888 switch (lPdgcodeMotherOfMother) {
2889 case 3222 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(0.5); break;// Sigma +
2890 case 3212 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(1.5); break;// Sigma 0
2891 case 3112 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
2892 case 3224 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
2893 case 3214 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
2894 case 3114 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
2895 case 3322 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
2896 case 3312 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
2897 case 3334 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
2898 case -1 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(9.5); break;
2899 default : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(10.5);break;
2905 } // end rapidity condition
2906 // }// end PID condition
2907 }//end cTau condition
2911 // if (primaryVtxKF) delete primaryVtxKF;primaryVtxKF=NULL ;
2914 fHistV0Multiplicity->Fill(nv0s);
2915 // fHistV0MultiplicityMI->Fill(nv0sMI);
2917 if (fAnalysisType == "AOD") { if(myPrimaryVertex) delete myPrimaryVertex; }
2924 //________________________________________________________________________
2925 void AliAnalysisTaskPerformanceStrangeAOD::Terminate(Option_t *)
2929 //----------------------------------------------------------------------------
2931 Double_t AliAnalysisTaskPerformanceStrangeAOD::MyRapidity(Double_t rE, Double_t rPz) const
2933 // Local calculation for rapidity
2934 return 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13));
2936 //----------------------------------------------------------------------------