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 ESD tree.
20 // Author: H.Ricaud, H.Ricaud@gsi.de
21 //-----------------------------------------------------------------
23 #include <Riostream.h>
37 #include "AliAnalysisManager.h"
39 #include "AliPhysicsSelection.h"
40 #include "AliBackgroundSelection.h"
42 #include "AliESDVertex.h"
43 #include "AliESDEvent.h"
44 #include "AliESDInputHandler.h"
45 #include "AliESDtrack.h"
47 #include "AliESDtrackCuts.h"
48 #include "AliESDpid.h"
49 #include "AliMultiplicity.h"
51 #include "AliAODEvent.h"
52 #include "AliAODVertex.h"
53 #include "AliAODTrack.h"
55 #include "AliAODMCHeader.h"
56 #include "AliAODInputHandler.h"
58 //#include "AliV0vertexer.h"
60 #include "AliAODMCParticle.h"
62 #include "AliMCEventHandler.h"
63 #include "AliMCEvent.h"
65 #include "AliGenEventHeader.h"
69 #include "AliKFVertex.h"
70 #include "AliVertexerTracks.h"
72 #include "AliAnalysisTaskPerformanceStrange.h"
73 #include "AliAnalysisCentralitySelector.h"
74 #include "AliPIDResponse.h"
75 #include "AliCentrality.h"
79 ClassImp(AliAnalysisTaskPerformanceStrange)
82 //________________________________________________________________________
83 AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange()
84 : AliAnalysisTaskSE(), fAnalysisMC(0), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infoCut"),fDown(0),fUp(0), fESD(0), fListHist(0),fCentrSelector(0),fTracksCuts(0),fPIDResponse(0),
86 fHistMCPrimaryVertexX(0),
87 fHistMCPrimaryVertexY(0),
88 fHistMCPrimaryVertexZ(0),
89 fHistMCMultiplicityPrimary(0),
90 fHistMCMultiplicityTracks(0),
92 fHistMCtracksProdRadiusK0s(0),
93 fHistMCtracksProdRadiusLambda(0),
94 fHistMCtracksProdRadiusAntiLambda(0),
95 fHistMCtracksDecayRadiusK0s(0),
96 fHistMCtracksDecayRadiusLambda(0),
97 fHistMCtracksDecayRadiusAntiLambda(0),
99 fHistMCPtAllLambda(0),
100 fHistMCPtAllAntiLambda(0),
101 fHistMCProdRadiusK0s(0),
102 fHistMCProdRadiusLambda(0),
103 fHistMCProdRadiusAntiLambda(0),
105 fHistMCRapInPtRangeK0s(0),
107 fHistMCRapInPtRangeLambda(0),
108 fHistMCRapAntiLambda(0),
109 fHistMCRapInPtRangeAntiLambda(0),
111 fHistMCRapInPtRangeXi(0),
113 fHistMCRapInPtRangePhi(0),
114 ////////////////////////////////////////
117 fHistMCPtAntiLambda(0),
118 ///////////////////////////////////////////
120 fHistMCPtLambdaFromSigma(0),
121 fHistMCPtAntiLambdaFromSigma(0),
122 fHistNTimesRecK0s(0),
123 fHistNTimesRecLambda(0),
124 fHistNTimesRecAntiLambda(0),
125 fHistNTimesRecK0sVsPt(0),
126 fHistNTimesRecLambdaVsPt(0),
127 fHistNTimesRecAntiLambdaVsPt(0),
128 fHistNumberEvents(0),
129 fHistTrackPerEvent(0),
131 fHistTrackletPerEvent(0),
132 fHistMCDaughterTrack(0),
133 fHistSPDPrimaryVertexZ(0),
134 fHistPrimaryVertexX(0),
135 fHistPrimaryVertexY(0),
136 fHistPrimaryVertexZ(0),
137 fHistPrimaryVertexResX(0),
138 fHistPrimaryVertexResY(0),
139 fHistPrimaryVertexResZ(0),
140 fHistPrimaryVertexPosXV0events(0),
141 fHistPrimaryVertexPosYV0events(0),
142 fHistPrimaryVertexPosZV0events(0),
144 ////////////////////////////////////////
146 fHistDcaPosToPrimVertexK0(0),
147 fHistDcaNegToPrimVertexK0(0),
149 fHistDecayLengthV0K0(0),
150 fHistDcaV0DaughtersK0(0),
152 fHistCosPointAngleK0(0),
154 fHistDcaPosToPrimVertexK0vsMassK0(0),
155 fHistDcaNegToPrimVertexK0vsMassK0(0),
156 fHistRadiusV0K0vsMassK0(0),
157 fHistDecayLengthV0K0vsMassK0(0),
158 fHistDcaV0DaughtersK0vsMassK0(0),
159 fHistCosPointAngleK0vsMassK0(0),
161 fHistDcaPosToPrimVertexK0vsMassK0pt1(0),
162 fHistDcaNegToPrimVertexK0vsMassK0pt1(0),
163 fHistRadiusV0K0vsMassK0pt1(0),
164 fHistDecayLengthV0K0vsMassK0pt1(0),
165 fHistDcaV0DaughtersK0vsMassK0pt1(0),
166 fHistCosPointAngleK0vsMassK0pt1(0),
168 fHistDcaPosToPrimVertexK0vsMassK0pt2(0),
169 fHistDcaNegToPrimVertexK0vsMassK0pt2(0),
170 fHistRadiusV0K0vsMassK0pt2(0),
171 fHistDecayLengthV0K0vsMassK0pt2(0),
172 fHistDcaV0DaughtersK0vsMassK0pt2(0),
173 fHistCosPointAngleK0vsMassK0pt2(0),
175 fHistDcaPosToPrimVertexK0vsMassK0pt3(0),
176 fHistDcaNegToPrimVertexK0vsMassK0pt3(0),
177 fHistRadiusV0K0vsMassK0pt3(0),
178 fHistDecayLengthV0K0vsMassK0pt3(0),
179 fHistDcaV0DaughtersK0vsMassK0pt3(0),
180 fHistCosPointAngleK0vsMassK0pt3(0),
182 /////////// Lambda ///////////////////////////
184 fHistDcaPosToPrimVertexL(0),
185 fHistDcaNegToPrimVertexL(0),
187 fHistDecayLengthV0L(0),
188 fHistDcaV0DaughtersL(0),
190 fHistCosPointAngleL(0),
192 fHistDcaPosToPrimVertexLvsMassL(0),
193 fHistDcaNegToPrimVertexLvsMassL(0),
194 fHistRadiusV0LvsMassL(0),
195 fHistDecayLengthV0LvsMassL(0),
196 fHistDcaV0DaughtersLvsMassL(0),
197 fHistCosPointAngleLvsMassL(0),
201 fHistDcaPosToPrimVertexLambdaVsMasspt1(0),
202 fHistDcaNegToPrimVertexLambdaVsMasspt1(0),
203 fHistRadiusV0LambdaVsMasspt1(0),
204 fHistDecayLengthV0LambdaVsMasspt1(0),
205 fHistDcaV0DaughtersLambdaVsMasspt1(0),
206 fHistCosPointAngleLambdaVsMasspt1(0),
208 fHistDcaPosToPrimVertexLambdaVsMasspt2(0),
209 fHistDcaNegToPrimVertexLambdaVsMasspt2(0),
210 fHistRadiusV0LambdaVsMasspt2(0),
211 fHistDecayLengthV0LambdaVsMasspt2(0),
212 fHistDcaV0DaughtersLambdaVsMasspt2(0),
213 fHistCosPointAngleLambdaVsMasspt2(0),
215 fHistDcaPosToPrimVertexLambdaVsMasspt3(0),
216 fHistDcaNegToPrimVertexLambdaVsMasspt3(0),
217 fHistRadiusV0LambdaVsMasspt3(0),
218 fHistDecayLengthV0LambdaVsMasspt3(0),
219 fHistDcaV0DaughtersLambdaVsMasspt3(0),
220 fHistCosPointAngleLambdaVsMasspt3(0),
224 /////////Antilambda ///////////////////
225 fHistDcaPosToPrimVertexAntiL(0),
226 fHistDcaNegToPrimVertexAntiL(0),
227 fHistRadiusV0AntiL(0),
228 fHistDecayLengthV0AntiL(0),
229 fHistDcaV0DaughtersAntiL(0),
231 fHistCosPointAngleAntiL(0),
233 fHistDcaPosToPrimVertexAntiLvsMass(0),
234 fHistDcaNegToPrimVertexAntiLvsMass(0),
235 fHistRadiusV0AntiLvsMass(0),
236 fHistDecayLengthV0AntiLvsMass(0),
237 fHistDcaV0DaughtersAntiLvsMass(0),
238 fHistCosPointAngleAntiLvsMass(0),
242 fHistDcaPosToPrimVertexAntiLVsMasspt1(0),
243 fHistDcaNegToPrimVertexAntiLVsMasspt1(0),
244 fHistRadiusV0AntiLVsMasspt1(0),
245 fHistDecayLengthV0AntiLVsMasspt1(0),
246 fHistDcaV0DaughtersAntiLVsMasspt1(0),
247 fHistCosPointAngleAntiLVsMasspt1(0),
249 fHistDcaPosToPrimVertexAntiLVsMasspt2(0),
250 fHistDcaNegToPrimVertexAntiLVsMasspt2(0),
251 fHistRadiusV0AntiLVsMasspt2(0),
252 fHistDecayLengthV0AntiLVsMasspt2(0),
253 fHistDcaV0DaughtersAntiLVsMasspt2(0),
254 fHistCosPointAngleAntiLVsMasspt2(0),
256 fHistDcaPosToPrimVertexAntiLVsMasspt3(0),
257 fHistDcaNegToPrimVertexAntiLVsMasspt3(0),
258 fHistRadiusV0AntiLVsMasspt3(0),
259 fHistDecayLengthV0AntiLVsMasspt3(0),
260 fHistDcaV0DaughtersAntiLVsMasspt3(0),
261 fHistCosPointAngleAntiLVsMasspt3(0),
263 /////////////////////////////////////////
264 fHistV0Multiplicity(0),
267 fHistMassAntiLambda(0),
268 fHistMassVsRadiusK0(0),
269 fHistMassVsRadiusLambda(0),
270 fHistMassVsRadiusAntiLambda(0),
272 ///////////////////////////////////////
274 fHistPtVsMassLambda(0),
275 fHistPtVsMassAntiLambda(0),
276 ////////////////////////////////////////
278 fHistArmenterosPodolanski(0),
279 fHistK0sMassVsLambdaMass(0),
281 fHistNSigmaProton(0),
282 fHistNsigmaPosPionAntiLambda(0),
283 fHistNsigmaNegProtonAntiLambda(0),
284 fHistNsigmaPosProtonLambda(0),
285 fHistNsigmaNegPionLambda(0),
286 fHistNsigmaPosProtonAntiLambda(0),
287 fHistNsigmaNegPionAntiLambda(0),
288 fHistNsigmaPosPionK0(0),
289 fHistNsigmaNegPionK0(0),
291 fHistAsMcRapLambda(0),
292 fHistAsMcRapAntiLambda(0),
294 fHistAsMcPtLambda(0),
295 fHistAsMcPtAntiLambda(0),
296 fHistAsMcPtZoomK0(0),
297 fHistAsMcPtZoomLambda(0),
298 fHistAsMcPtZoomAntiLambda(0),
299 fHistAsMcProdRadiusK0(0),
300 fHistAsMcProdRadiusLambda(0),
301 fHistAsMcProdRadiusAntiLambda(0),
302 fHistAsMcProdRadiusXvsYK0s(0),
303 fHistAsMcProdRadiusXvsYLambda(0),
304 fHistAsMcProdRadiusXvsYAntiLambda(0),
306 fHistPidMcMassLambda(0),
307 fHistPidMcMassAntiLambda(0),
309 fHistAsMcMassLambda(0),
310 fHistAsMcMassAntiLambda(0),
311 fHistAsMcPtVsMassK0(0),
312 fHistAsMcPtVsMassLambda(0),
313 fHistAsMcPtVsMassAntiLambda(0),
314 fHistAsMcMassVsRadiusK0(0),
315 fHistAsMcMassVsRadiusLambda(0),
316 fHistAsMcMassVsRadiusAntiLambda(0),
320 fHistAsMcResrVsRadiusK0(0),
321 fHistAsMcReszVsRadiusK0(0),
322 fHistAsMcResxLambda(0),
323 fHistAsMcResyLambda(0),
324 fHistAsMcReszLambda(0),
325 fHistAsMcResrVsRadiusLambda(0),
326 fHistAsMcReszVsRadiusLambda(0),
327 fHistAsMcResxAntiLambda(0),
328 fHistAsMcResyAntiLambda(0),
329 fHistAsMcReszAntiLambda(0),
330 fHistAsMcResrVsRadiusAntiLambda(0),
331 fHistAsMcReszVsRadiusAntiLambda(0),
333 fHistAsMcResPtLambda(0),
334 fHistAsMcResPtAntiLambda(0),
335 fHistAsMcResPtVsRapK0(0),
336 fHistAsMcResPtVsRapLambda(0),
337 fHistAsMcResPtVsRapAntiLambda(0),
338 fHistAsMcResPtVsPtK0(0),
339 fHistAsMcResPtVsPtLambda(0),
340 fHistAsMcResPtVsPtAntiLambda(0),
341 fHistAsMcMotherPdgCodeK0s(0),
342 fHistAsMcMotherPdgCodeLambda(0),
343 fHistAsMcMotherPdgCodeAntiLambda(0),
344 fHistAsMcPtLambdaFromSigma(0),
345 fHistAsMcPtAntiLambdaFromSigma(0),
346 fHistAsMcSecondaryPtVsRapK0s(0),
347 fHistAsMcSecondaryPtVsRapLambda(0),
348 fHistAsMcSecondaryPtVsRapAntiLambda(0),
349 fHistAsMcSecondaryProdRadiusK0s(0),
350 fHistAsMcSecondaryProdRadiusLambda(0),
351 fHistAsMcSecondaryProdRadiusAntiLambda(0),
352 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
353 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
354 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
355 fHistAsMcSecondaryMotherPdgCodeK0s(0),
356 fHistAsMcSecondaryMotherPdgCodeLambda(0),
357 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
358 fHistAsMcSecondaryPtLambdaFromSigma(0),
359 fHistAsMcSecondaryPtAntiLambdaFromSigma(0)
369 //________________________________________________________________________
370 AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange(const char *name)
371 : AliAnalysisTaskSE(name), fAnalysisMC(0), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infocut"),fDown(0),fUp(0), fESD(0), fListHist(),fCentrSelector(0), fTracksCuts(0),fPIDResponse(0),
373 fHistMCPrimaryVertexX(0),
374 fHistMCPrimaryVertexY(0),
375 fHistMCPrimaryVertexZ(0),
376 fHistMCMultiplicityPrimary(0),
377 fHistMCMultiplicityTracks(0),
379 fHistMCtracksProdRadiusK0s(0),
380 fHistMCtracksProdRadiusLambda(0),
381 fHistMCtracksProdRadiusAntiLambda(0),
382 fHistMCtracksDecayRadiusK0s(0),
383 fHistMCtracksDecayRadiusLambda(0),
384 fHistMCtracksDecayRadiusAntiLambda(0),
386 fHistMCPtAllLambda(0),
387 fHistMCPtAllAntiLambda(0),
388 fHistMCProdRadiusK0s(0),
389 fHistMCProdRadiusLambda(0),
390 fHistMCProdRadiusAntiLambda(0),
392 fHistMCRapInPtRangeK0s(0),
394 fHistMCRapInPtRangeLambda(0),
395 fHistMCRapAntiLambda(0),
396 fHistMCRapInPtRangeAntiLambda(0),
398 fHistMCRapInPtRangeXi(0),
400 fHistMCRapInPtRangePhi(0),
401 ////////////////////////////////////////////////
404 fHistMCPtAntiLambda(0),
405 /////////////////////////////////////////////////
406 fHistMCPtLambdaFromSigma(0),
407 fHistMCPtAntiLambdaFromSigma(0),
408 fHistNTimesRecK0s(0),
409 fHistNTimesRecLambda(0),
410 fHistNTimesRecAntiLambda(0),
411 fHistNTimesRecK0sVsPt(0),
412 fHistNTimesRecLambdaVsPt(0),
413 fHistNTimesRecAntiLambdaVsPt(0),
414 fHistNumberEvents(0),
415 fHistTrackPerEvent(0),
417 fHistTrackletPerEvent(0),
418 fHistMCDaughterTrack(0),
419 fHistSPDPrimaryVertexZ(0),
420 fHistPrimaryVertexX(0),
421 fHistPrimaryVertexY(0),
422 fHistPrimaryVertexZ(0),
423 fHistPrimaryVertexResX(0),
424 fHistPrimaryVertexResY(0),
425 fHistPrimaryVertexResZ(0),
426 fHistPrimaryVertexPosXV0events(0),
427 fHistPrimaryVertexPosYV0events(0),
428 fHistPrimaryVertexPosZV0events(0),
430 ////////////////////////////////////////
432 fHistDcaPosToPrimVertexK0(0),
433 fHistDcaNegToPrimVertexK0(0),
435 fHistDecayLengthV0K0(0),
436 fHistDcaV0DaughtersK0(0),
438 fHistCosPointAngleK0(0),
440 fHistDcaPosToPrimVertexK0vsMassK0(0),
441 fHistDcaNegToPrimVertexK0vsMassK0(0),
442 fHistRadiusV0K0vsMassK0(0),
443 fHistDecayLengthV0K0vsMassK0(0),
444 fHistDcaV0DaughtersK0vsMassK0(0),
445 fHistCosPointAngleK0vsMassK0(0),
448 fHistDcaPosToPrimVertexK0vsMassK0pt1(0),
449 fHistDcaNegToPrimVertexK0vsMassK0pt1(0),
450 fHistRadiusV0K0vsMassK0pt1(0),
451 fHistDecayLengthV0K0vsMassK0pt1(0),
452 fHistDcaV0DaughtersK0vsMassK0pt1(0),
453 fHistCosPointAngleK0vsMassK0pt1(0),
455 fHistDcaPosToPrimVertexK0vsMassK0pt2(0),
456 fHistDcaNegToPrimVertexK0vsMassK0pt2(0),
457 fHistRadiusV0K0vsMassK0pt2(0),
458 fHistDecayLengthV0K0vsMassK0pt2(0),
459 fHistDcaV0DaughtersK0vsMassK0pt2(0),
460 fHistCosPointAngleK0vsMassK0pt2(0),
462 fHistDcaPosToPrimVertexK0vsMassK0pt3(0),
463 fHistDcaNegToPrimVertexK0vsMassK0pt3(0),
464 fHistRadiusV0K0vsMassK0pt3(0),
465 fHistDecayLengthV0K0vsMassK0pt3(0),
466 fHistDcaV0DaughtersK0vsMassK0pt3(0),
467 fHistCosPointAngleK0vsMassK0pt3(0),
469 /////////////////////////////////////////
471 fHistDcaPosToPrimVertexL(0),
472 fHistDcaNegToPrimVertexL(0),
474 fHistDecayLengthV0L(0),
475 fHistDcaV0DaughtersL(0),
477 fHistCosPointAngleL(0),
479 fHistDcaPosToPrimVertexLvsMassL(0),
480 fHistDcaNegToPrimVertexLvsMassL(0),
481 fHistRadiusV0LvsMassL(0),
482 fHistDecayLengthV0LvsMassL(0),
483 fHistDcaV0DaughtersLvsMassL(0),
484 fHistCosPointAngleLvsMassL(0),
488 fHistDcaPosToPrimVertexLambdaVsMasspt1(0),
489 fHistDcaNegToPrimVertexLambdaVsMasspt1(0),
490 fHistRadiusV0LambdaVsMasspt1(0),
491 fHistDecayLengthV0LambdaVsMasspt1(0),
492 fHistDcaV0DaughtersLambdaVsMasspt1(0),
493 fHistCosPointAngleLambdaVsMasspt1(0),
495 fHistDcaPosToPrimVertexLambdaVsMasspt2(0),
496 fHistDcaNegToPrimVertexLambdaVsMasspt2(0),
497 fHistRadiusV0LambdaVsMasspt2(0),
498 fHistDecayLengthV0LambdaVsMasspt2(0),
499 fHistDcaV0DaughtersLambdaVsMasspt2(0),
500 fHistCosPointAngleLambdaVsMasspt2(0),
502 fHistDcaPosToPrimVertexLambdaVsMasspt3(0),
503 fHistDcaNegToPrimVertexLambdaVsMasspt3(0),
504 fHistRadiusV0LambdaVsMasspt3(0),
505 fHistDecayLengthV0LambdaVsMasspt3(0),
506 fHistDcaV0DaughtersLambdaVsMasspt3(0),
507 fHistCosPointAngleLambdaVsMasspt3(0),
509 ////////////AntiLambda
510 fHistDcaPosToPrimVertexAntiL(0),
511 fHistDcaNegToPrimVertexAntiL(0),
512 fHistRadiusV0AntiL(0),
513 fHistDecayLengthV0AntiL(0),
514 fHistDcaV0DaughtersAntiL(0),
516 fHistCosPointAngleAntiL(0),
518 fHistDcaPosToPrimVertexAntiLvsMass(0),
519 fHistDcaNegToPrimVertexAntiLvsMass(0),
520 fHistRadiusV0AntiLvsMass(0),
521 fHistDecayLengthV0AntiLvsMass(0),
522 fHistDcaV0DaughtersAntiLvsMass(0),
523 fHistCosPointAngleAntiLvsMass(0),
527 fHistDcaPosToPrimVertexAntiLVsMasspt1(0),
528 fHistDcaNegToPrimVertexAntiLVsMasspt1(0),
529 fHistRadiusV0AntiLVsMasspt1(0),
530 fHistDecayLengthV0AntiLVsMasspt1(0),
531 fHistDcaV0DaughtersAntiLVsMasspt1(0),
532 fHistCosPointAngleAntiLVsMasspt1(0),
534 fHistDcaPosToPrimVertexAntiLVsMasspt2(0),
535 fHistDcaNegToPrimVertexAntiLVsMasspt2(0),
536 fHistRadiusV0AntiLVsMasspt2(0),
537 fHistDecayLengthV0AntiLVsMasspt2(0),
538 fHistDcaV0DaughtersAntiLVsMasspt2(0),
539 fHistCosPointAngleAntiLVsMasspt2(0),
541 fHistDcaPosToPrimVertexAntiLVsMasspt3(0),
542 fHistDcaNegToPrimVertexAntiLVsMasspt3(0),
543 fHistRadiusV0AntiLVsMasspt3(0),
544 fHistDecayLengthV0AntiLVsMasspt3(0),
545 fHistDcaV0DaughtersAntiLVsMasspt3(0),
546 fHistCosPointAngleAntiLVsMasspt3(0),
549 /////////////////////////////////////////
551 fHistV0Multiplicity(0),
554 fHistMassAntiLambda(0),
555 fHistMassVsRadiusK0(0),
556 fHistMassVsRadiusLambda(0),
557 fHistMassVsRadiusAntiLambda(0),
558 /////////////////////////////////////////////
560 fHistPtVsMassLambda(0),
561 fHistPtVsMassAntiLambda(0),
562 ///////////////////////////////////////////////////
563 fHistArmenterosPodolanski(0),
564 fHistK0sMassVsLambdaMass(0),
566 fHistNSigmaProton(0),
567 fHistNsigmaPosPionAntiLambda(0),
568 fHistNsigmaNegProtonAntiLambda(0),
569 fHistNsigmaPosProtonLambda(0),
570 fHistNsigmaNegPionLambda(0),
571 fHistNsigmaPosProtonAntiLambda(0),
572 fHistNsigmaNegPionAntiLambda(0),
573 fHistNsigmaPosPionK0(0),
574 fHistNsigmaNegPionK0(0),
576 fHistAsMcRapLambda(0),
577 fHistAsMcRapAntiLambda(0),
578 ///////////////////////////////////
580 fHistAsMcPtLambda(0),
581 fHistAsMcPtAntiLambda(0),
582 /////////////////////////////////////
583 fHistAsMcPtZoomK0(0),
584 fHistAsMcPtZoomLambda(0),
585 fHistAsMcPtZoomAntiLambda(0),
586 fHistAsMcProdRadiusK0(0),
587 fHistAsMcProdRadiusLambda(0),
588 fHistAsMcProdRadiusAntiLambda(0),
589 fHistAsMcProdRadiusXvsYK0s(0),
590 fHistAsMcProdRadiusXvsYLambda(0),
591 fHistAsMcProdRadiusXvsYAntiLambda(0),
593 fHistPidMcMassLambda(0),
594 fHistPidMcMassAntiLambda(0),
596 fHistAsMcMassLambda(0),
597 fHistAsMcMassAntiLambda(0),
598 fHistAsMcPtVsMassK0(0),
599 fHistAsMcPtVsMassLambda(0),
600 fHistAsMcPtVsMassAntiLambda(0),
601 fHistAsMcMassVsRadiusK0(0),
602 fHistAsMcMassVsRadiusLambda(0),
603 fHistAsMcMassVsRadiusAntiLambda(0),
607 fHistAsMcResrVsRadiusK0(0),
608 fHistAsMcReszVsRadiusK0(0),
609 fHistAsMcResxLambda(0),
610 fHistAsMcResyLambda(0),
611 fHistAsMcReszLambda(0),
612 fHistAsMcResrVsRadiusLambda(0),
613 fHistAsMcReszVsRadiusLambda(0),
614 fHistAsMcResxAntiLambda(0),
615 fHistAsMcResyAntiLambda(0),
616 fHistAsMcReszAntiLambda(0),
617 fHistAsMcResrVsRadiusAntiLambda(0),
618 fHistAsMcReszVsRadiusAntiLambda(0),
620 fHistAsMcResPtLambda(0),
621 fHistAsMcResPtAntiLambda(0),
622 fHistAsMcResPtVsRapK0(0),
623 fHistAsMcResPtVsRapLambda(0),
624 fHistAsMcResPtVsRapAntiLambda(0),
625 fHistAsMcResPtVsPtK0(0),
626 fHistAsMcResPtVsPtLambda(0),
627 fHistAsMcResPtVsPtAntiLambda(0),
628 fHistAsMcMotherPdgCodeK0s(0),
629 fHistAsMcMotherPdgCodeLambda(0),
630 fHistAsMcMotherPdgCodeAntiLambda(0),
631 fHistAsMcPtLambdaFromSigma(0),
632 fHistAsMcPtAntiLambdaFromSigma(0),
633 fHistAsMcSecondaryPtVsRapK0s(0),
634 fHistAsMcSecondaryPtVsRapLambda(0),
635 fHistAsMcSecondaryPtVsRapAntiLambda(0),
636 fHistAsMcSecondaryProdRadiusK0s(0),
637 fHistAsMcSecondaryProdRadiusLambda(0),
638 fHistAsMcSecondaryProdRadiusAntiLambda(0),
639 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
640 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
641 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
642 fHistAsMcSecondaryMotherPdgCodeK0s(0),
643 fHistAsMcSecondaryMotherPdgCodeLambda(0),
644 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
645 fHistAsMcSecondaryPtLambdaFromSigma(0),
646 fHistAsMcSecondaryPtAntiLambdaFromSigma(0)
651 // Define output slots only here
652 // Output slot #1 writes into a TList container
653 DefineOutput(1, TList::Class());
654 DefineOutput(2, AliAnalysisCentralitySelector::Class());
655 DefineOutput(3, AliESDtrackCuts::Class());
657 AliAnalysisTaskPerformanceStrange::~AliAnalysisTaskPerformanceStrange() {
661 if (fListHist && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fListHist; fListHist = 0x0; }
662 if (fCentrSelector && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fCentrSelector; fCentrSelector = 0x0; }
663 if (fTracksCuts && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fTracksCuts; fTracksCuts = 0x0; }
667 //________________________________________________________________________
668 void AliAnalysisTaskPerformanceStrange::UserCreateOutputObjects()
673 //*******************
674 fListHist = new TList();
675 fListHist->SetOwner();
676 //fListHistCuts = new TList();
677 //fListHistCuts->SetOwner();
679 // Bo: tbd: condition before allocation (i.e. if (!fHistMCMultiplicityPrimary){...} for each histo...
686 fHistMCPrimaryVertexX = new TH1F("h1MCPrimaryVertexX", "MC Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
687 fListHist->Add(fHistMCPrimaryVertexX);
689 fHistMCPrimaryVertexY = new TH1F("h1MCPrimaryVertexY", "MC Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
690 fListHist->Add(fHistMCPrimaryVertexY);
692 fHistMCPrimaryVertexZ = new TH1F("h1MCPrimaryVertexZ", "MC Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
693 fListHist->Add(fHistMCPrimaryVertexZ);
696 fHistMCMultiplicityPrimary = new TH1F("h1MCMultiplicityPrimary", "MC Primary Particles;NPrimary;Count", 201, -0.5, 200.5);
697 fListHist->Add(fHistMCMultiplicityPrimary);
699 fHistMCMultiplicityTracks = new TH1F("h1MCMultiplicityTracks", "MC Tracks;Ntracks;Count", 201, -0.5, 200.5);
700 fListHist->Add(fHistMCMultiplicityTracks);
702 // Production Radius of non-primary particles:
703 fHistMCtracksProdRadiusK0s = new TH2F("h2MCtracksProdRadiusK0s","Non-primary MC K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
704 fListHist->Add(fHistMCtracksProdRadiusK0s);
706 fHistMCtracksProdRadiusLambda = new TH2F("h2MCtracksProdRadiusLambda","Non-primary MC #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
707 fListHist->Add(fHistMCtracksProdRadiusLambda);
709 fHistMCtracksProdRadiusAntiLambda = new TH2F("h2MCtracksProdRadiusAntiLambda","Non-primary MC #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
710 fListHist->Add(fHistMCtracksProdRadiusAntiLambda);
712 // Decay Radius of non-primary particles:
713 fHistMCtracksDecayRadiusK0s = new TH1F("h1MCtracksDecayRadiusK0s","Non-primary MC K^{0} Decay Radius;r (cm)",101,-1,100);
714 fListHist->Add(fHistMCtracksDecayRadiusK0s);
716 fHistMCtracksDecayRadiusLambda = new TH1F("h1MCtracksDecayRadiusLambda","Non-primary MC #Lambda^{0} Decay Radius;r (cm)",101,-1,100);
717 fListHist->Add(fHistMCtracksDecayRadiusLambda);
719 fHistMCtracksDecayRadiusAntiLambda = new TH1F("h1MCtracksDecayRadiusAntiLambda","Non-primary #bar{#Lambda}^{0} Decay Radius;r (cm)",100,1,101);
720 fListHist->Add(fHistMCtracksDecayRadiusAntiLambda);
722 // Pt Distribution of non-primary particles:
723 fHistMCPtAllK0s = new TH1F("h1MCPtAllK0s", "Non-primary MC K^{0};p_{t} (GeV/c);Counts",240,0,12);
724 fListHist->Add(fHistMCPtAllK0s);
726 fHistMCPtAllLambda = new TH1F("h1MCPtAllLambda", "Non-primary MC #Lambda^{0};p_{t} (GeV/c);Counts",240,0,12);
727 fListHist->Add(fHistMCPtAllLambda);
729 fHistMCPtAllAntiLambda = new TH1F("h1MCPtAllAntiLambda", "Non-primary MC #bar{#Lambda}^{0};p_{t} (GeV/c);Counts",240,0,12);
730 fListHist->Add(fHistMCPtAllAntiLambda);
733 fHistMCProdRadiusK0s = new TH1F("h1MCProdRadiusK0s", "MC K^{0} Production Radius;r (cm);Count", 400, -2, 2);
734 fListHist->Add(fHistMCProdRadiusK0s);
736 fHistMCProdRadiusLambda = new TH1F("h1MCProdRadiusLambda", "MC #Lambda^{0} Production Radius;r (cm);Count", 400, -2, 2);
737 fListHist->Add(fHistMCProdRadiusLambda);
739 fHistMCProdRadiusAntiLambda = new TH1F("h1MCProdRadiusAntiLambda", "MC #bar{#Lambda}^{0} Production Radius;r (cm);Count", 400, -2, 2);
740 fListHist->Add(fHistMCProdRadiusAntiLambda);
742 // Rapidity distribution:
743 fHistMCRapK0s = new TH1F("h1MCRapK0s", "K^{0};y",160,-4,4);
744 fListHist->Add(fHistMCRapK0s);
746 fHistMCRapInPtRangeK0s = new TH1F("h1MCRapInPtRangeK0s", "K^{0};y",160,-4,4);
747 fListHist->Add(fHistMCRapInPtRangeK0s);
749 fHistMCRapLambda = new TH1F("h1MCRapLambda", "#Lambda;y",160,-4,4);
750 fListHist->Add(fHistMCRapLambda);
752 fHistMCRapInPtRangeLambda = new TH1F("h1MCRapInPtRangeLambda", "#Lambda;y",160,-4,4);
753 fListHist->Add(fHistMCRapInPtRangeLambda);
755 fHistMCRapAntiLambda = new TH1F("h1MCRapAntiLambda", "#bar{#Lambda};y",160,-4,4);
756 fListHist->Add(fHistMCRapAntiLambda);
758 fHistMCRapInPtRangeAntiLambda = new TH1F("h1MCRapInPtRangeAntiLambda", "#bar{#Lambda};y",160,-4,4);
759 fListHist->Add(fHistMCRapInPtRangeAntiLambda);
761 fHistMCRapXi = new TH1F("h1MCRapXi", "Xi;y",160,-4,4);
762 fListHist->Add(fHistMCRapXi);
764 fHistMCRapInPtRangeXi = new TH1F("h1MCRapInPtRangeXi", "Xi;y",160,-4,4);
765 fListHist->Add(fHistMCRapInPtRangeXi);
767 fHistMCRapPhi = new TH1F("h1MCRapPhi", "Phi;y",160,-4,4);
768 fListHist->Add(fHistMCRapPhi);
770 fHistMCRapInPtRangePhi = new TH1F("h1MCRapInPtRangePhi", "Phi;y",160,-4,4);
771 fListHist->Add(fHistMCRapInPtRangePhi);
774 fHistMCPtK0s = new TH1F("h1MCPtK0s", "K^{0};p_{t} (GeV/c)",240,0,12);
775 fListHist->Add(fHistMCPtK0s);
777 fHistMCPtLambda = new TH1F("h1MCPtLambda", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
778 fListHist->Add(fHistMCPtLambda);
780 fHistMCPtAntiLambda = new TH1F("h1MCPtAntiLambda", "#AntiLambda^{0};p_{t} (GeV/c)",240,0,12);
781 fListHist->Add(fHistMCPtAntiLambda);
783 // Pt distribution of Lambda coming from Sigma decay
784 fHistMCPtLambdaFromSigma = new TH1F("h1MCPtLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
785 fListHist->Add(fHistMCPtLambdaFromSigma);
787 fHistMCPtAntiLambdaFromSigma = new TH1F("h1MCPtAntiLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
788 fListHist->Add(fHistMCPtAntiLambdaFromSigma);
790 // Multiple reconstruction studies
791 fHistNTimesRecK0s = new TH1F("h1NTimesRecK0s","number of times a K0s is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
792 fListHist->Add(fHistNTimesRecK0s);
794 fHistNTimesRecLambda = new TH1F("h1NTimesRecLambda","number of times a Lambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
795 fListHist->Add(fHistNTimesRecLambda);
797 fHistNTimesRecAntiLambda = new TH1F("h1NTimesRecAntiLambda","number of times an AntiLambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
798 fListHist->Add(fHistNTimesRecAntiLambda);
800 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);
801 fListHist->Add(fHistNTimesRecK0sVsPt);
803 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);
804 fListHist->Add(fHistNTimesRecLambdaVsPt);
806 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);
807 fListHist->Add(fHistNTimesRecAntiLambdaVsPt);
809 //***********************************
810 // Reconstructed particles histograms
811 //***********************************
814 fHistNumberEvents = new TH1F("h1NumberEvents", "Number of events; index;Number of Events",10,0,10);
815 fListHist->Add(fHistNumberEvents);
818 fHistTrackPerEvent = new TH1F("h1TrackPerEvent", "Tracks per event;Number of Tracks;Number of Events",10000,0,10000);
819 fListHist->Add(fHistTrackPerEvent);
821 fHistTPCMult = new TH1F("h1HistTPCMult", "TPC tracks per event;Number of Tracks;Number of Events",10000,0,10000);
822 fListHist->Add(fHistTPCMult);
825 fHistTrackletPerEvent = new TH1F("h1TrackletPerEvent", "Number of tracklets;Number of tracklets per events;Number of events",1000,0,1000);
826 fListHist->Add(fHistTrackletPerEvent);
828 fHistMCDaughterTrack = new TH1F("h1MCDaughterTrack","Distribution of mc id for daughters;id tags;Counts",15,0,15);
829 fListHist->Add(fHistMCDaughterTrack);
831 fHistTPCTracks = new TH1F("h1TPCTracks","Distribution of TPC tracks;Number of TPC tracks:Number of events",1000,0,10000);
832 fListHist->Add(fHistTPCTracks);
835 fHistSPDPrimaryVertexZ = new TH1F("h1SPDPrimaryVertexZ", "SPD Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
836 fListHist->Add(fHistSPDPrimaryVertexZ);
838 fHistPrimaryVertexX = new TH1F("h1PrimaryVertexX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
839 fListHist->Add(fHistPrimaryVertexX);
841 fHistPrimaryVertexY = new TH1F("h1PrimaryVertexY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
842 fListHist->Add(fHistPrimaryVertexY);
844 fHistPrimaryVertexZ = new TH1F("h1PrimaryVertexZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
845 fListHist->Add(fHistPrimaryVertexZ);
848 // Primary vertex resolution
849 fHistPrimaryVertexResX = new TH1F("h1PrimaryVertexResX", "Primary Vertex Resolution X;Primary Vertex Resolution X (cm);Events",100,-0.25,0.25);
850 fListHist->Add(fHistPrimaryVertexResX);
852 fHistPrimaryVertexResY = new TH1F("h1PrimaryVertexResY", "Primary Vertex Resolution Y;Primary Vertex Resolution Y (cm);Events",100,-0.25,0.25);
853 fListHist->Add(fHistPrimaryVertexResY);
855 fHistPrimaryVertexResZ = new TH1F("h1PrimaryVertexResZ", "Primary Vertex Resolution Z;Primary Vertex Resolution Z (cm);Events",200,-0.25,0.25);
856 fListHist->Add(fHistPrimaryVertexResZ);
859 // Primary Vertex in events with V0 candidates:
860 fHistPrimaryVertexPosXV0events = new TH1F("h1PrimaryVertexPosXV0events", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
861 fListHist->Add(fHistPrimaryVertexPosXV0events);
862 fHistPrimaryVertexPosYV0events = new TH1F("h1PrimaryVertexPosYV0events", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
863 fListHist->Add(fHistPrimaryVertexPosYV0events);
864 fHistPrimaryVertexPosZV0events = new TH1F("h1PrimaryVertexPosZV0events", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20.0,20.0);
865 fListHist->Add(fHistPrimaryVertexPosZV0events);
868 fHistDaughterPt = new TH2F("h2DaughterPt", "Daughter Pt;Positive Daughter Pt; Negative Daughter Pt",200,0,2,200,0,2);
869 fListHist->Add(fHistDaughterPt);
871 //////K0s///////////////// 2D histos: cut vs on fly status////
873 fHistDcaPosToPrimVertexK0 = new TH2F("h2DcaPosToPrimVertexK0", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
874 fListHist->Add(fHistDcaPosToPrimVertexK0);
876 fHistDcaNegToPrimVertexK0 = new TH2F("h2DcaNegToPrimVertexK0", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
877 fListHist->Add(fHistDcaNegToPrimVertexK0);
880 fHistRadiusV0K0 = new TH2F("h2RadiusV0K0", "Radius;Radius(cm);Status",500,0,500,2,-0.5,1.5);
881 fListHist->Add(fHistRadiusV0K0);
883 fHistDecayLengthV0K0 = new TH2F("h2DecayLengthV0K0", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
884 fListHist->Add(fHistDecayLengthV0K0);
886 fHistDcaV0DaughtersK0 = new TH2F("h2DcaV0DaughtersK0", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
887 fListHist->Add(fHistDcaV0DaughtersK0);
889 fHistChi2K0 = new TH2F("h2Chi2K0", "V0s chi2;chi2;Status", 1000, 0, 0.1,2,-0.5,1.5);
890 fListHist->Add(fHistChi2K0);
892 fHistCosPointAngleK0 = new TH2F("h2CosPointAngleK0", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
893 fListHist->Add(fHistCosPointAngleK0);
896 ////////////K0s///////////////// 2D histos: cut vs mass////
899 fHistDcaPosToPrimVertexK0vsMassK0 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
900 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0);
902 fHistDcaNegToPrimVertexK0vsMassK0 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
903 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0);
906 fHistRadiusV0K0vsMassK0 = new TH2F("h2RadiusV0K0vsMassK0", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
907 fListHist->Add(fHistRadiusV0K0vsMassK0);
909 fHistDecayLengthV0K0vsMassK0 = new TH2F("h2DecayLengthV0K0vsMassK0", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
910 fListHist->Add(fHistDecayLengthV0K0vsMassK0);
912 fHistDcaV0DaughtersK0vsMassK0 = new TH2F("h2DcaV0DaughtersK0vsMassK0", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
913 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0);
916 fHistCosPointAngleK0vsMassK0 = new TH2F("h2CosPointAngleK0vsMassK0", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
917 fListHist->Add(fHistCosPointAngleK0vsMassK0);
919 fHistDcaPosToPrimVertexK0vsMassK0pt1 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
920 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt1);
922 fHistDcaNegToPrimVertexK0vsMassK0pt1 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
923 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt1);
925 fHistRadiusV0K0vsMassK0pt1 = new TH2F("h2RadiusV0K0vsMassK0pt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
926 fListHist->Add(fHistRadiusV0K0vsMassK0pt1);
928 fHistDecayLengthV0K0vsMassK0pt1 = new TH2F("h2DecayLengthV0K0vsMassK0pt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,200,0.4,0.6);
929 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt1);
931 fHistDcaV0DaughtersK0vsMassK0pt1 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
932 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt1);
934 fHistCosPointAngleK0vsMassK0pt1 = new TH2F("h2CosPointAngleK0vsMassK0pt1", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
935 fListHist->Add(fHistCosPointAngleK0vsMassK0pt1);
938 fHistDcaPosToPrimVertexK0vsMassK0pt2 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
939 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt2);
941 fHistDcaNegToPrimVertexK0vsMassK0pt2 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
942 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt2);
944 fHistRadiusV0K0vsMassK0pt2 = new TH2F("h2RadiusV0K0vsMassK0pt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
945 fListHist->Add(fHistRadiusV0K0vsMassK0pt2);
947 fHistDecayLengthV0K0vsMassK0pt2 = new TH2F("h2DecayLengthV0K0vsMassK0pt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
948 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt2);
950 fHistDcaV0DaughtersK0vsMassK0pt2 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
951 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt2);
953 fHistCosPointAngleK0vsMassK0pt2 = new TH2F("h2CosPointAngleK0vsMassK0pt2", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
954 fListHist->Add(fHistCosPointAngleK0vsMassK0pt2);
957 fHistDcaPosToPrimVertexK0vsMassK0pt3 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
958 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt3);
960 fHistDcaNegToPrimVertexK0vsMassK0pt3 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
961 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt3);
963 fHistRadiusV0K0vsMassK0pt3 = new TH2F("h2RadiusV0K0vsMassK0pt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
964 fListHist->Add(fHistRadiusV0K0vsMassK0pt3);
966 fHistDecayLengthV0K0vsMassK0pt3 = new TH2F("h2DecayLengthV0K0vsMassK0pt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
967 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt3);
969 fHistDcaV0DaughtersK0vsMassK0pt3 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
970 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt3);
972 fHistCosPointAngleK0vsMassK0pt3 = new TH2F("h2CosPointAngleK0vsMassK0pt3", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
973 fListHist->Add(fHistCosPointAngleK0vsMassK0pt3);
975 //////////Lambda////////////// 2D histos: cut vs on fly status////
977 fHistDcaPosToPrimVertexL = new TH2F("h2DcaPosToPrimVertexL", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
978 fListHist->Add(fHistDcaPosToPrimVertexL);
980 fHistDcaNegToPrimVertexL = new TH2F("h2DcaNegToPrimVertexL", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
981 fListHist->Add(fHistDcaNegToPrimVertexL);
984 fHistRadiusV0L = new TH2F("h2RadiusV0L", "Radius;Radius(cm);Status",100,0,110,2,-0.5,1.5);
985 fListHist->Add(fHistRadiusV0L);
987 fHistDecayLengthV0L = new TH2F("h2DecayLengthV0L", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
988 fListHist->Add(fHistDecayLengthV0L);
990 fHistDcaV0DaughtersL = new TH2F("h2DcaV0DaughtersL", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
991 fListHist->Add(fHistDcaV0DaughtersL);
993 fHistChi2L = new TH2F("h2Chi2L", "V0s chi2;chi2;Status", 100, 0, 0.10,2,-0.5,1.5);
994 fListHist->Add(fHistChi2L);
996 fHistCosPointAngleL = new TH2F("h2CosPointAngleL", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
997 fListHist->Add(fHistCosPointAngleL);
999 //////////Lambda////////////// 2D histos: cut vs mass////
1001 fHistDcaPosToPrimVertexLvsMassL = new TH2F("h2DcaPosToPrimVertexLvsMassL", "Positive V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1002 fListHist->Add(fHistDcaPosToPrimVertexLvsMassL);
1004 fHistDcaNegToPrimVertexLvsMassL = new TH2F("h2DcaNegToPrimVertexLvsMassL", "Negative V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1005 fListHist->Add(fHistDcaNegToPrimVertexLvsMassL);
1008 fHistRadiusV0LvsMassL = new TH2F("h2RadiusV0LvsMassL", "Radius;Radius(cm);Status",110,0,110,140, 1.06, 1.2);
1009 fListHist->Add(fHistRadiusV0LvsMassL);
1011 fHistDecayLengthV0LvsMassL = new TH2F("h2DecayLengthV0LvsMassL", "V0s decay Length;decay length(cm);Status", 120, 0, 120,140, 1.06, 1.2);
1012 fListHist->Add(fHistDecayLengthV0LvsMassL);
1014 fHistDcaV0DaughtersLvsMassL = new TH2F("h2DcaV0DaughtersLvsMassL", "DCA between daughters;dca(cm);Status", 110, 0, 1.1,140, 1.06, 1.2);
1015 fListHist->Add(fHistDcaV0DaughtersLvsMassL);
1017 fHistCosPointAngleLvsMassL = new TH2F("h2CosPointAngleLvsMassL", "Cosine of V0's pointing angle", 200,0.997,1.007,140, 1.06, 1.2);
1018 fListHist->Add(fHistCosPointAngleLvsMassL);
1021 fHistDcaPosToPrimVertexLambdaVsMasspt1 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1022 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt1);
1024 fHistDcaNegToPrimVertexLambdaVsMasspt1 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1025 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt1);
1027 fHistRadiusV0LambdaVsMasspt1 = new TH2F("h2RadiusV0LambdaVsMasspt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1028 fListHist->Add(fHistRadiusV0LambdaVsMasspt1);
1030 fHistDecayLengthV0LambdaVsMasspt1 = new TH2F("h2DecayLengthV0LambdaVsMasspt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,140,1.06,1.2);
1031 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt1);
1033 fHistDcaV0DaughtersLambdaVsMasspt1 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1034 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt1);
1036 fHistCosPointAngleLambdaVsMasspt1 = new TH2F("h2CosPointAngleLambdaVsMasspt1", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1037 fListHist->Add(fHistCosPointAngleLambdaVsMasspt1);
1040 fHistDcaPosToPrimVertexLambdaVsMasspt2 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1041 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt2);
1043 fHistDcaNegToPrimVertexLambdaVsMasspt2 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1044 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt2);
1046 fHistRadiusV0LambdaVsMasspt2 = new TH2F("h2RadiusV0LambdaVsMasspt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1047 fListHist->Add(fHistRadiusV0LambdaVsMasspt2);
1049 fHistDecayLengthV0LambdaVsMasspt2 = new TH2F("h2DecayLengthV0LambdaVsMasspt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1050 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt2);
1052 fHistDcaV0DaughtersLambdaVsMasspt2 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1053 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt2);
1055 fHistCosPointAngleLambdaVsMasspt2 = new TH2F("h2CosPointAngleLambdaVsMasspt2", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1056 fListHist->Add(fHistCosPointAngleLambdaVsMasspt2);
1059 fHistDcaPosToPrimVertexLambdaVsMasspt3 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1060 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt3);
1062 fHistDcaNegToPrimVertexLambdaVsMasspt3 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1063 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt3);
1065 fHistRadiusV0LambdaVsMasspt3 = new TH2F("h2RadiusV0LambdaVsMasspt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1066 fListHist->Add(fHistRadiusV0LambdaVsMasspt3);
1068 fHistDecayLengthV0LambdaVsMasspt3 = new TH2F("h2DecayLengthV0LambdaVsMasspt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1069 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt3);
1071 fHistDcaV0DaughtersLambdaVsMasspt3 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1072 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt3);
1074 fHistCosPointAngleLambdaVsMasspt3 = new TH2F("h2CosPointAngleLambdaVsMasspt3", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1075 fListHist->Add(fHistCosPointAngleLambdaVsMasspt3);
1077 //////////AntiLambda////////////// 2D histos: cut vs on fly status////
1079 fHistDcaPosToPrimVertexAntiL = new TH2F("h2DcaPosToPrimVertexAntiL", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1080 fListHist->Add(fHistDcaPosToPrimVertexAntiL);
1082 fHistDcaNegToPrimVertexAntiL = new TH2F("h2DcaNegToPrimVertexAntiL", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1083 fListHist->Add(fHistDcaNegToPrimVertexAntiL);
1086 fHistRadiusV0AntiL = new TH2F("h2RadiusV0AntiL", "Radius;Radius(cm);Status",100,0,110,2,-0.5,1.5);
1087 fListHist->Add(fHistRadiusV0AntiL);
1089 fHistDecayLengthV0AntiL = new TH2F("h2DecayLengthV0AntiL", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1090 fListHist->Add(fHistDecayLengthV0AntiL);
1092 fHistDcaV0DaughtersAntiL = new TH2F("h2DcaV0DaughtersAntiL", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1093 fListHist->Add(fHistDcaV0DaughtersAntiL);
1095 fHistChi2AntiL = new TH2F("h2Chi2AntiL", "V0s chi2;chi2;Status", 100, 0, 0.10,2,-0.5,1.5);
1096 fListHist->Add(fHistChi2AntiL);
1098 fHistCosPointAngleAntiL = new TH2F("h2CosPointAngleAntiL", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1099 fListHist->Add(fHistCosPointAngleAntiL);
1101 //////////AntiLambda////////////// 2D histos: cut vs mass////
1103 fHistDcaPosToPrimVertexAntiLvsMass = new TH2F("h2DcaPosToPrimVertexAntiLvsMass", "Positive V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1104 fListHist->Add(fHistDcaPosToPrimVertexAntiLvsMass);
1106 fHistDcaNegToPrimVertexAntiLvsMass = new TH2F("h2DcaNegToPrimVertexAntiLvsMass", "Negative V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1107 fListHist->Add(fHistDcaNegToPrimVertexAntiLvsMass);
1110 fHistRadiusV0AntiLvsMass = new TH2F("h2RadiusV0AntiLvsMass", "Radius;Radius(cm);Status",110,0,110,140, 1.06, 1.2);
1111 fListHist->Add(fHistRadiusV0AntiLvsMass);
1113 fHistDecayLengthV0AntiLvsMass = new TH2F("h2DecayLengthV0AntiLvsMass", "V0s decay Length;decay length(cm);Status", 120, 0, 120,140, 1.06, 1.2);
1114 fListHist->Add(fHistDecayLengthV0AntiLvsMass);
1116 fHistDcaV0DaughtersAntiLvsMass = new TH2F("h2DcaV0DaughtersAntiLvsMass", "DCA between daughters;dca(cm);Status", 110, 0, 1.1,140, 1.06, 1.2);
1117 fListHist->Add(fHistDcaV0DaughtersAntiLvsMass);
1119 fHistCosPointAngleAntiLvsMass = new TH2F("h2CosPointAngleAntiLvsMass", "Cosine of V0's pointing angle", 200,0.997,1.007,140, 1.06, 1.2);
1120 fListHist->Add(fHistCosPointAngleAntiLvsMass);
1123 fHistDcaPosToPrimVertexAntiLVsMasspt1 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1124 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt1);
1126 fHistDcaNegToPrimVertexAntiLVsMasspt1 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1127 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt1);
1129 fHistRadiusV0AntiLVsMasspt1 = new TH2F("h2RadiusV0AntiLVsMasspt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1130 fListHist->Add(fHistRadiusV0AntiLVsMasspt1);
1132 fHistDecayLengthV0AntiLVsMasspt1 = new TH2F("h2DecayLengthV0AntiLVsMasspt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,140,1.06,1.2);
1133 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt1);
1135 fHistDcaV0DaughtersAntiLVsMasspt1 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1136 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt1);
1138 fHistCosPointAngleAntiLVsMasspt1 = new TH2F("h2CosPointAngleAntiLVsMasspt1", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1139 fListHist->Add(fHistCosPointAngleAntiLVsMasspt1);
1142 fHistDcaPosToPrimVertexAntiLVsMasspt2 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1143 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt2);
1145 fHistDcaNegToPrimVertexAntiLVsMasspt2 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1146 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt2);
1148 fHistRadiusV0AntiLVsMasspt2 = new TH2F("h2RadiusV0AntiLVsMasspt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1149 fListHist->Add(fHistRadiusV0AntiLVsMasspt2);
1151 fHistDecayLengthV0AntiLVsMasspt2 = new TH2F("h2DecayLengthV0AntiLVsMasspt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1152 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt2);
1154 fHistDcaV0DaughtersAntiLVsMasspt2 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1155 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt2);
1157 fHistCosPointAngleAntiLVsMasspt2 = new TH2F("h2CosPointAngleAntiLVsMasspt2", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1158 fListHist->Add(fHistCosPointAngleAntiLVsMasspt2);
1161 fHistDcaPosToPrimVertexAntiLVsMasspt3 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1162 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt3);
1164 fHistDcaNegToPrimVertexAntiLVsMasspt3 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1165 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt3);
1167 fHistRadiusV0AntiLVsMasspt3 = new TH2F("h2RadiusV0AntiLVsMasspt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1168 fListHist->Add(fHistRadiusV0AntiLVsMasspt3);
1170 fHistDecayLengthV0AntiLVsMasspt3 = new TH2F("h2DecayLengthV0AntiLVsMasspt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1171 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt3);
1173 fHistDcaV0DaughtersAntiLVsMasspt3 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1174 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt3);
1176 fHistCosPointAngleAntiLVsMasspt3 = new TH2F("h2CosPointAngleAntiLVsMasspt3", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1177 fListHist->Add(fHistCosPointAngleAntiLVsMasspt3);
1181 if (!fHistV0Multiplicity) {
1182 if (fCollidingSystems)
1183 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 200, 0, 40000);
1185 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 10, 0, 10);
1186 fListHist->Add(fHistV0Multiplicity);
1191 fHistMassK0 = new TH1F("h1MassK0", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 200, 0.4, 0.6);
1192 fListHist->Add(fHistMassK0);
1194 fHistMassLambda = new TH1F("h1MassLambda", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 150, 1.05, 1.2);
1195 fListHist->Add(fHistMassLambda);
1197 fHistMassAntiLambda = new TH1F("h1MassAntiLambda", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 150, 1.05, 1.2);
1198 fListHist->Add(fHistMassAntiLambda);
1200 /* // invariant mass vs radius
1201 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};
1202 Int_t lNbinRadius = 9;
1203 Int_t lNbinInvMassLambda = 300;
1205 fHistMassVsRadiusK0 = new TH2F("h2MassVsRadiusK0", "K^{0} candidates;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",200,0,200, 200, 0.4, 0.6);
1206 fListHist->Add(fHistMassVsRadiusK0);
1208 //fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
1209 fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",200,0,200, 140, 1.06, 1.2);
1210 fListHist->Add(fHistMassVsRadiusLambda);
1213 //fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
1214 fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",200,0,200, 140, 1.06, 1.2);
1215 fListHist->Add(fHistMassVsRadiusAntiLambda);
1219 fHistPtVsMassK0 = new TH2F("h2PtVsMassK0","K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",400, 0.4, 0.6,480,0,12);
1220 fListHist->Add(fHistPtVsMassK0);
1222 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);
1223 fListHist->Add(fHistPtVsMassLambda);
1225 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);
1226 fListHist->Add(fHistPtVsMassAntiLambda);
1228 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1230 ///Armenteros Podolansky
1231 fHistArmenterosPodolanski = new TH2F("h2ArmenterosPodolanski","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5);
1232 fListHist->Add(fHistArmenterosPodolanski);
1234 ///Inv. Mass K0s vs Inv. Mass. Lambda
1235 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);
1236 fListHist->Add(fHistK0sMassVsLambdaMass);
1238 //dE/dx vs P daughters
1239 fHistTPCsignalPt = new TH2F("h2TPCsignalVsPdaughters","TPC signal Vs p_{t} daughters; p (GeV/c);TPC signal",1000,0,2,1000,0,1000);
1240 fListHist->Add(fHistTPCsignalPt);
1241 fHistNSigmaProton =new TH1F("h1NSigmaProton","Number of sigmas for proton;;Count",600,0,6);
1242 fListHist->Add(fHistNSigmaProton);
1246 fHistNsigmaPosPionAntiLambda = new TH1F("h1NsigmaPosPionAntiLambda", "Positive daughter of Antilambda;NsigmaPion;Counts",25,0,5);
1247 fListHist->Add(fHistNsigmaPosPionAntiLambda);
1249 fHistNsigmaNegProtonAntiLambda = new TH1F("h1NsigmaNegProtonAntiLambda", "Negative daughter of Antilambda;NsigmaProton;Counts",25,0,5);
1250 fListHist->Add(fHistNsigmaNegProtonAntiLambda);
1252 fHistNsigmaPosProtonLambda = new TH1F("h1NsigmaPosProtonLambda", "Positive daughter of Lambda;NsigmaProton;Counts",25,0,5);
1253 fListHist->Add(fHistNsigmaPosProtonLambda);
1255 fHistNsigmaNegPionLambda = new TH1F("h1NsigmaNegPionLambda", "Negative daughter of Lambda;NsigmaPion;Counts",25,0,5);
1256 fListHist->Add(fHistNsigmaNegPionLambda);
1258 fHistNsigmaPosProtonAntiLambda = new TH1F("h1NsigmaPosProtonAntiLambda", "Positive daughter of AntiLambda;NsigmaProton;Counts",25,0,5);
1259 fListHist->Add(fHistNsigmaPosProtonAntiLambda);
1261 fHistNsigmaNegPionAntiLambda = new TH1F("h1NsigmaNegPionAntiLambda", "Negative daughter of AntiLambda;NsigmaPion;Counts",25,0,5);
1262 fListHist->Add(fHistNsigmaNegPionAntiLambda);
1264 fHistNsigmaPosPionK0 = new TH1F("h1NsigmaPosPionK0", "Positive daughter of K0s;NsigmaPion;Counts",25,0,5);
1265 fListHist->Add(fHistNsigmaPosPionK0);
1267 fHistNsigmaNegPionK0 = new TH1F("h1NsigmaNegPionK0", "Negative daughter of K0s;NsigmaPion;Counts",25,0,5);
1268 fListHist->Add(fHistNsigmaNegPionK0);
1271 //********************************
1272 // Associated particles histograms
1273 //********************************
1276 fHistAsMcRapK0 = new TH1F("h1AsMcRapK0", "K^{0} associated;eta;Counts", 60, -1.5, 1.5);
1277 fListHist->Add(fHistAsMcRapK0);
1279 fHistAsMcRapLambda = new TH1F("h1AsMcRapLambda", "#Lambda^{0} associated;eta;Counts", 60, -1.5, 1.5);
1280 fListHist->Add(fHistAsMcRapLambda);
1282 fHistAsMcRapAntiLambda = new TH1F("h1AsMcRapAntiLambda", "#bar{#Lambda}^{0} associated;eta;Counts", 60, -1.5, 1.5);
1283 fListHist->Add(fHistAsMcRapAntiLambda);
1286 fHistAsMcPtK0 = new TH1F("h1AsMcPtK0", "K^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1287 fListHist->Add(fHistAsMcPtK0);
1289 fHistAsMcPtLambda = new TH1F("h1AsMcPtLambda", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1290 fListHist->Add(fHistAsMcPtLambda);
1292 fHistAsMcPtAntiLambda = new TH1F("h1AsMcPtAntiLambda", "#AntiLambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1293 fListHist->Add(fHistAsMcPtAntiLambda);
1296 fHistAsMcPtZoomK0 = new TH1F("h1AsMcPtZoomK0", "K^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1297 fListHist->Add(fHistAsMcPtZoomK0);
1299 fHistAsMcPtZoomLambda = new TH1F("h1AsMcPtZoomLambda", "#Lambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1300 fListHist->Add(fHistAsMcPtZoomLambda);
1302 fHistAsMcPtZoomAntiLambda = new TH1F("h1AsMcPtZoomAntiLambda", "#AntiLambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1303 fListHist->Add(fHistAsMcPtZoomAntiLambda);
1305 // Radius distribution
1306 fHistAsMcProdRadiusK0 = new TH1F("h1AsMcProdRadiusK0", "K^{0} associated;r (cm);Counts", 500, 0, 100);
1307 fListHist->Add(fHistAsMcProdRadiusK0);
1309 fHistAsMcProdRadiusLambda = new TH1F("h1AsMcProdRadiusLambda", "#Lambda^{0} associated;r (cm);Counts", 500, 0, 100);
1310 fListHist->Add(fHistAsMcProdRadiusLambda);
1312 fHistAsMcProdRadiusAntiLambda = new TH1F("h1AsMcProdRadiusAntiLambda", "#bar{#Lambda}^{0} associated;r (cm);Counts", 500, 0, 100);
1313 fListHist->Add(fHistAsMcProdRadiusAntiLambda);
1315 fHistAsMcProdRadiusXvsYK0s = new TH2F("h2AsMcProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1316 fListHist->Add(fHistAsMcProdRadiusXvsYK0s);
1318 fHistAsMcProdRadiusXvsYLambda = new TH2F("h2AsMcProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1319 fListHist->Add(fHistAsMcProdRadiusXvsYLambda);
1321 fHistAsMcProdRadiusXvsYAntiLambda = new TH2F("h2AsMcProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1322 fListHist->Add(fHistAsMcProdRadiusXvsYAntiLambda);
1325 fHistPidMcMassK0 = new TH1F("h1PidMcMassK0", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1326 fListHist->Add(fHistPidMcMassK0);
1328 fHistPidMcMassLambda = new TH1F("h1PidMcMassLambda", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1329 fListHist->Add(fHistPidMcMassLambda);
1331 fHistPidMcMassAntiLambda = new TH1F("h1PidMcMassAntiLambda", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1332 fListHist->Add(fHistPidMcMassAntiLambda);
1334 fHistAsMcMassK0 = new TH1F("h1AsMcMassK0", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1335 fListHist->Add(fHistAsMcMassK0);
1337 fHistAsMcMassLambda = new TH1F("h1AsMcMassLambda", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1338 fListHist->Add(fHistAsMcMassLambda);
1340 fHistAsMcMassAntiLambda = new TH1F("h1AsMcMassAntiLambda", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1341 fListHist->Add(fHistAsMcMassAntiLambda);
1344 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);
1345 fListHist->Add(fHistAsMcPtVsMassK0);
1347 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);
1348 fListHist->Add(fHistAsMcPtVsMassLambda);
1350 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);
1351 fListHist->Add(fHistAsMcPtVsMassAntiLambda);
1354 // invariant mass vs radius
1355 //fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 500, 0.47, 0.52);
1356 fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",200,0,200, 500, 0.47, 0.52);
1357 fListHist->Add(fHistAsMcMassVsRadiusK0);
1359 //fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, lNbinInvMassLambda, 1.10, 1.13);
1360 fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",200,0,200, 1.10, 1.13);
1361 fListHist->Add(fHistAsMcMassVsRadiusLambda);
1363 //fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius,lNbinInvMassLambda , 1.10, 1.13);
1364 fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",200,0,200 , 1.10, 1.13);
1365 fListHist->Add(fHistAsMcMassVsRadiusAntiLambda);
1367 // Position Resolution
1368 fHistAsMcResxK0 = new TH1F("h1AsMcResxK0", "K^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1369 fListHist->Add(fHistAsMcResxK0);
1370 fHistAsMcResyK0 = new TH1F("h1AsMcResyK0", "K^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1371 fListHist->Add(fHistAsMcResyK0);
1372 fHistAsMcReszK0 = new TH1F("h1AsMcReszK0", "K^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1373 fListHist->Add(fHistAsMcReszK0);
1374 fHistAsMcResrVsRadiusK0 = new TH2F("h2AsMcResrVsRadiusK0", "K^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50., 50, -0.25, 0.25);
1375 fListHist->Add(fHistAsMcResrVsRadiusK0);
1376 fHistAsMcReszVsRadiusK0 = new TH2F("h2AsMcReszVsRadiusK0", "K^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1377 fListHist->Add(fHistAsMcReszVsRadiusK0);
1379 fHistAsMcResxLambda = new TH1F("h1AsMcResxLambda", "#Lambda^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1380 fListHist->Add(fHistAsMcResxLambda);
1381 fHistAsMcResyLambda = new TH1F("h1AsMcResyLambda", "#Lambda^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1382 fListHist->Add(fHistAsMcResyLambda);
1383 fHistAsMcReszLambda = new TH1F("h1AsMcReszLambda", "#Lambda^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1384 fListHist->Add(fHistAsMcReszLambda);
1385 fHistAsMcResrVsRadiusLambda = new TH2F("h2AsMcResrVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1386 fListHist->Add(fHistAsMcResrVsRadiusLambda);
1387 fHistAsMcReszVsRadiusLambda = new TH2F("h2AsMcReszVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1388 fListHist->Add(fHistAsMcReszVsRadiusLambda);
1390 fHistAsMcResxAntiLambda = new TH1F("h1AsMcResxAntiLambda", "#bar{#Lambda}^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1391 fListHist->Add(fHistAsMcResxAntiLambda);
1392 fHistAsMcResyAntiLambda = new TH1F("h1AsMcResyAntiLambda", "#bar{#Lambda}^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1393 fListHist->Add(fHistAsMcResyAntiLambda);
1394 fHistAsMcReszAntiLambda = new TH1F("h1AsMcReszAntiLambda", "#bar{#Lambda}^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1395 fListHist->Add(fHistAsMcReszAntiLambda);
1396 fHistAsMcResrVsRadiusAntiLambda = new TH2F("h2AsMcResrVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1397 fListHist->Add(fHistAsMcResrVsRadiusAntiLambda);
1398 fHistAsMcReszVsRadiusAntiLambda = new TH2F("h2AsMcReszVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1399 fListHist->Add(fHistAsMcReszVsRadiusAntiLambda);
1402 fHistAsMcResPtK0 = new TH1F("h1AsMcResPtK0","Pt Resolution K^{0};#Delta Pt;Counts",200,-1,1);
1403 fListHist->Add(fHistAsMcResPtK0);
1405 fHistAsMcResPtLambda = new TH1F("h1AsMcResPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Counts",200,-1,1);
1406 fListHist->Add(fHistAsMcResPtLambda);
1408 fHistAsMcResPtAntiLambda = new TH1F("h1AsMcResPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Counts",200,-1,1);
1409 fListHist->Add(fHistAsMcResPtAntiLambda);
1412 fHistAsMcResPtVsRapK0 = new TH2F("h2AsMcResPtVsRapK0","Pt Resolution K^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1413 fListHist->Add(fHistAsMcResPtVsRapK0);
1415 fHistAsMcResPtVsRapLambda = new TH2F("h2AsMcResPtVsRapLambda","Pt Resolution #Lambda^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1416 fListHist->Add(fHistAsMcResPtVsRapLambda);
1418 fHistAsMcResPtVsRapAntiLambda = new TH2F("h2AsMcResPtVsRapAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1419 fListHist->Add(fHistAsMcResPtVsRapAntiLambda);
1421 fHistAsMcResPtVsPtK0 = new TH2F("h2AsMcResPtVsPtK0","Pt Resolution K^{0};#Delta Pt;Pt",600,-0.15,0.15,240,0,12);
1422 fListHist->Add(fHistAsMcResPtVsPtK0);
1424 fHistAsMcResPtVsPtLambda = new TH2F("h2AsMcResPtVsPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Pt",600,-0.15,0.15,240,0,12);
1425 fListHist->Add(fHistAsMcResPtVsPtLambda);
1427 fHistAsMcResPtVsPtAntiLambda = new TH2F("h2AsMcResPtVsPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Pt",300,-0.15,0.15,240,0,12);
1428 fListHist->Add(fHistAsMcResPtVsPtAntiLambda);
1430 // pdgcode of mother
1431 fHistAsMcMotherPdgCodeK0s = new TH1F("h1AsMcMotherPdgCodeK0s","Mother of Associated K^{0};mother;counts",11,0,11);
1432 fListHist->Add(fHistAsMcMotherPdgCodeK0s);
1434 fHistAsMcMotherPdgCodeLambda = new TH1F("h1AsMcMotherPdgCodeLambda","Mother of Associated #Lambda^{0};mother;counts",11,0,11);
1435 fListHist->Add(fHistAsMcMotherPdgCodeLambda);
1437 fHistAsMcMotherPdgCodeAntiLambda = new TH1F("h1AsMcMotherPdgCodeAntiLambda","Mother of Associated #bar{#Lambda}^{0};mother;counts",11,0,11);
1438 fListHist->Add(fHistAsMcMotherPdgCodeAntiLambda);
1440 // Pt distribution Lambda from Sigma
1441 fHistAsMcPtLambdaFromSigma = new TH1F("h1AsMcPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1442 fListHist->Add(fHistAsMcPtLambdaFromSigma);
1444 fHistAsMcPtAntiLambdaFromSigma = new TH1F("h1AsMcPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1445 fListHist->Add(fHistAsMcPtAntiLambdaFromSigma);
1447 // Associated secondary particles:
1448 // Pt and rapidity distribution
1449 fHistAsMcSecondaryPtVsRapK0s = new TH2F("h2AsMcSecondaryPtVsRapK0s", "K^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1450 fListHist->Add(fHistAsMcSecondaryPtVsRapK0s);
1452 fHistAsMcSecondaryPtVsRapLambda = new TH2F("h2AsMcSecondaryPtVsRapLambda", "#Lambda^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1453 fListHist->Add(fHistAsMcSecondaryPtVsRapLambda);
1455 fHistAsMcSecondaryPtVsRapAntiLambda = new TH2F("h2AsMcSecondaryPtVsRapAntiLambda", "#bar{#Lambda}^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1456 fListHist->Add(fHistAsMcSecondaryPtVsRapAntiLambda);
1458 // Production radius
1459 fHistAsMcSecondaryProdRadiusK0s = new TH1F("h1AsMcSecondaryProdRadiusK0s", "K^{0} Production Radius;r (cm);Count", 170, -2, 15);
1460 fListHist->Add(fHistAsMcSecondaryProdRadiusK0s);
1462 fHistAsMcSecondaryProdRadiusLambda = new TH1F("h1AsMcSecondaryProdRadiusLambda", "#Lambda^{0} Production Radius;r (cm);Count", 170, -2, 15);
1463 fListHist->Add(fHistAsMcSecondaryProdRadiusLambda);
1465 fHistAsMcSecondaryProdRadiusAntiLambda = new TH1F("h1AsMcSecondaryProdRadiusAntiLambda", "#bar{#Lambda}^{0} Production Radius;r (cm);Count", 170, -2, 15);
1466 fListHist->Add(fHistAsMcSecondaryProdRadiusAntiLambda);
1468 fHistAsMcSecondaryProdRadiusXvsYK0s = new TH2F("h2AsMcSecondaryProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1469 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYK0s);
1471 fHistAsMcSecondaryProdRadiusXvsYLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1472 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYLambda);
1474 fHistAsMcSecondaryProdRadiusXvsYAntiLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1475 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYAntiLambda);
1477 fHistAsMcSecondaryMotherPdgCodeK0s = new TH1F("h1AsMcSecondaryMotherPdgCodeK0s","Mother of Associated Secondary K^{0};mother;counts",11,0,11);
1478 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeK0s);
1480 fHistAsMcSecondaryMotherPdgCodeLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeLambda","Mother of Associated Secondary #Lambda^{0};mother;counts",11,0,11);
1481 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeLambda);
1483 fHistAsMcSecondaryMotherPdgCodeAntiLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeAntiLambda","Mother of Associated Secondary #bar{#Lambda}^{0};mother;counts",11,0,11);
1484 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeAntiLambda);
1486 // Pt distribution Lambda from Sigma
1487 fHistAsMcSecondaryPtLambdaFromSigma = new TH1F("h1AsMcSecondaryPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1488 fListHist->Add(fHistAsMcSecondaryPtLambdaFromSigma);
1490 fHistAsMcSecondaryPtAntiLambdaFromSigma = new TH1F("h1AsMcSecondaryPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1491 fListHist->Add(fHistAsMcSecondaryPtAntiLambdaFromSigma);
1492 PostData(1, fListHist);
1493 PostData(2, fCentrSelector);
1494 PostData(3, fTracksCuts);
1497 //________________________________________________________________________
1498 void AliAnalysisTaskPerformanceStrange::UserExec(Option_t *)
1501 // Called for each event
1503 AliStack* stack = NULL;
1504 // TClonesArray *mcArray = NULL;
1505 TArrayF mcPrimaryVtx;
1507 fESD=(AliESDEvent *)InputEvent();
1510 Printf("ERROR: fESD not available");
1514 // FIXME: levent not used. Can I remove it?
1515 AliVEvent* lEvent = InputEvent();
1518 Printf("ERROR: Event not available");
1522 if (fUsePID.Contains("withPID")) {
1523 AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
1524 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
1525 fPIDResponse = inputHandler->GetPIDResponse();
1529 //******************
1530 // Trigger Selection ! Warning Works only for ESD, add protection in case of AOD loop
1531 //******************
1534 (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()
1536 if (!isSelected) return;
1538 // Centrality selection
1539 static AliESDtrackCuts * trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1); // FIXME: make it a data member
1540 // printf("%x, %x", fCentrSelector, trackCuts);
1541 Bool_t isCentralitySelected = fCentrSelector->IsCentralityBinSelected(fESD,trackCuts);
1542 if(!isCentralitySelected) return;
1543 // FIXME: add to hist number events another entry for centrality.
1545 // Done by the AliPhysicsSelection Task ! Only the selected events are passed to this task
1548 fHistNumberEvents->Fill(1.5); // FIXME: use enum here
1550 //*************************
1551 //End track multiplicity
1552 //*************************
1554 // Remove Events with no tracks
1555 //if (!(fESD->GetNumberOfTracks())) return;
1557 fHistNumberEvents->Fill(2.5);
1558 // fHistTrackPerEvent->Fill(fESD->GetNumberOfTracks());
1560 //*************************************
1562 //*************************************
1565 Double_t lCutRap = 0.5;
1567 // Cut AliKF Chi2 for Reconstructed particles
1568 // Double_t cutChi2KF = 1E3;
1571 Double_t lLimitPPID = 0.7;
1572 Float_t cutNSigmaLowP = 1E3;
1573 Float_t cutNSigmaHighP = 1E3;
1574 if (fUsePID.Contains("withPID")) {
1575 cutNSigmaLowP = 3.0;
1576 cutNSigmaHighP = 3.0;
1580 // Cut Daughters pt (GeV/c):
1581 Double_t cutMinPtDaughter = 0.160;
1583 // Cut primary vertex:
1584 Double_t cutPrimVertex = 10.0;
1586 // Min number of TPC clusters:
1587 // Int_t nbMinTPCclusters = 80;
1592 Int_t LambdaPID = 0;
1593 Int_t AntiLambdaPID = 0;
1601 if(fAnalysisType == "ESD") {
1602 AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
1603 if (!eventHandler) {
1604 Printf("ERROR: Could not retrieve MC event handler");
1607 AliMCEvent* mcEvent = eventHandler->MCEvent();
1609 Printf("ERROR: Could not retrieve MC event");
1612 stack = mcEvent->Stack();
1614 Printf("ERROR: Could not retrieve stack");
1618 AliGenEventHeader* mcHeader=mcEvent->GenEventHeader();
1619 if(!mcHeader) return;
1620 mcHeader->PrimaryVertex(mcPrimaryVtx);
1625 // PID parameters for MC simulations:
1626 fAlephParameters[0] = 2.15898e+00/50.;
1627 fAlephParameters[1] = 1.75295e+01;
1628 fAlephParameters[2] = 3.40030e-09;
1629 fAlephParameters[3] = 1.96178e+00;
1630 fAlephParameters[4] = 3.91720e+00;
1635 //**********************************************
1637 //**********************************************
1639 Double_t lmcPrimVtxR = 0;
1641 Int_t lNbMCPrimary = 0;
1642 Int_t lNbMCPart = 0;
1644 Int_t lPdgcodeCurrentPart = 0;
1645 Double_t lRapCurrentPart = 0;
1646 Double_t lPtCurrentPart = 0;
1648 Int_t lComeFromSigma = 0;
1651 // Production Radius
1652 Double_t mcPosX = 0.0, mcPosY = 0.0, mcPosZ = 0.0;
1653 Double_t mcPosR = 0.0;
1656 Double_t mcDecayPosX = 0, mcDecayPosY = 0, mcDecayPosR = 0;
1658 // current mc particle 's mother
1659 Int_t iCurrentMother = 0, lPdgCurrentMother = 0;
1660 // Bool_t lCurrentMotherIsPrimary;
1662 // current mc particles 's daughter:
1663 Int_t lPdgCurrentDaughter0 = 0, lPdgCurrentDaughter1 = 0;
1665 // variables for multiple reconstruction studies:
1666 Int_t id0 = 0, id1 = 0;
1667 //Int_t lLabelTrackN = 0, lLabelTrackP = 0;
1668 //Int_t lPartNMother = 0, lPartPMother = 0;
1669 //Int_t lPartPMotherPDGcode = 0;
1670 Int_t lNtimesReconstructedK0s = 0, lNtimesReconstructedLambda = 0, lNtimesReconstructedAntiLambda = 0;
1671 // Int_t lNtimesReconstructedK0sMI = 0, lNtimesReconstructedLambdaMI = 0, lNtimesReconstructedAntiLambdaMI = 0;
1673 //****************************
1674 // Start loop over MC particles
1678 fHistMCPrimaryVertexX->Fill(mcPrimaryVtx.At(0));
1679 fHistMCPrimaryVertexY->Fill(mcPrimaryVtx.At(1));
1680 fHistMCPrimaryVertexZ->Fill(mcPrimaryVtx.At(2));
1682 lmcPrimVtxR = TMath::Sqrt(mcPrimaryVtx.At(0)*mcPrimaryVtx.At(0)+mcPrimaryVtx.At(1)*mcPrimaryVtx.At(1));
1685 if(fAnalysisType == "ESD") {
1687 lNbMCPrimary = stack->GetNprimary();
1688 lNbMCPart = stack->GetNtrack();
1690 fHistMCMultiplicityPrimary->Fill(lNbMCPrimary);
1691 fHistMCMultiplicityTracks->Fill(lNbMCPart);
1694 for (Int_t iMc = 0; iMc < (stack->GetNtrack()); iMc++) {
1695 TParticle *p0 = stack->Particle(iMc);
1697 //Printf("ERROR: particle with label %d not found in stack (mc loop)", iMc);
1700 lPdgcodeCurrentPart = p0->GetPdgCode();
1702 // Keep only K0s, Lambda and AntiLambda, Xi and Phi:
1703 if ( (lPdgcodeCurrentPart != 310 ) && (lPdgcodeCurrentPart != 3122 ) && (lPdgcodeCurrentPart != -3122 ) && (lPdgcodeCurrentPart != 3312 ) && (lPdgcodeCurrentPart != -3312) && (lPdgcodeCurrentPart != -333) ) continue;
1705 lRapCurrentPart = MyRapidity(p0->Energy(),p0->Pz());
1706 //lEtaCurrentPart = p0->Eta();
1707 lPtCurrentPart = p0->Pt();
1708 iCurrentMother = p0->GetFirstMother();
1710 // lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();
1711 if (iCurrentMother == -1){lPdgCurrentMother=0; } else {lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();}
1716 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
1718 id0 = p0->GetDaughter(0);
1719 id1 = p0->GetDaughter(1);
1721 // Decay Radius and Production Radius
1722 if ( id0 <= lNbMCPart && id0 > 0 && id1 <= lNbMCPart && id1 > 0) {
1723 TParticle *pDaughter0 = stack->Particle(id0);
1724 TParticle *pDaughter1 = stack->Particle(id1);
1725 lPdgCurrentDaughter0 = pDaughter0->GetPdgCode();
1726 lPdgCurrentDaughter1 = pDaughter1->GetPdgCode();
1728 mcDecayPosX = pDaughter0->Vx();
1729 mcDecayPosY = pDaughter0->Vy();
1730 mcDecayPosR = TMath::Sqrt(mcDecayPosX*mcDecayPosX+mcDecayPosY*mcDecayPosY);
1733 //Printf("ERROR: particle with label %d and/or %d not found in stack (mc loop)", id0,id1);
1737 if (lPdgcodeCurrentPart==310) {
1738 fHistMCtracksProdRadiusK0s->Fill(mcPosX,mcPosY);
1739 fHistMCtracksDecayRadiusK0s->Fill(mcDecayPosR);
1740 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllK0s->Fill(lPtCurrentPart);
1742 else if (lPdgcodeCurrentPart==3122) {
1743 fHistMCtracksProdRadiusLambda->Fill(mcPosX,mcPosY);
1744 fHistMCtracksDecayRadiusLambda->Fill(mcDecayPosR);
1745 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllLambda->Fill(lPtCurrentPart);
1747 else if (lPdgcodeCurrentPart==-3122) {
1748 fHistMCtracksProdRadiusAntiLambda->Fill(mcPosX,mcPosY);
1749 fHistMCtracksDecayRadiusAntiLambda->Fill(mcDecayPosR);
1750 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllAntiLambda->Fill(lPtCurrentPart);
1753 if ( ( ( TMath::Abs(lPdgCurrentMother) == 3212) ||
1754 ( TMath::Abs(lPdgCurrentMother) == 3224) ||
1755 ( TMath::Abs(lPdgCurrentMother) == 3214) ||
1756 ( TMath::Abs(lPdgCurrentMother) == 3114) )
1757 && ( iCurrentMother <= lNbMCPrimary )
1758 ) lComeFromSigma = 1;
1759 else lComeFromSigma = 0;
1761 //*********************************************
1762 // Now keep only primary particles
1763 if ( ( iMc > lNbMCPrimary ) && (!lComeFromSigma) ) continue;
1765 //********************************************
1767 lNtimesReconstructedK0s = 0; lNtimesReconstructedLambda = 0; lNtimesReconstructedAntiLambda = 0;
1771 if (lPdgcodeCurrentPart==310) {
1772 fHistMCRapK0s->Fill(lRapCurrentPart);
1773 if (lPtCurrentPart < 0.2 && lPtCurrentPart < 3.0)
1774 fHistMCRapInPtRangeK0s->Fill(lRapCurrentPart);
1777 if (lPdgcodeCurrentPart==3122) {
1778 fHistMCRapLambda->Fill(lRapCurrentPart);
1779 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5)
1780 fHistMCRapInPtRangeLambda->Fill(lRapCurrentPart);
1783 if (lPdgcodeCurrentPart==-3122) {
1784 fHistMCRapAntiLambda->Fill(lRapCurrentPart);
1785 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5)
1786 fHistMCRapInPtRangeAntiLambda->Fill(lRapCurrentPart);
1789 if (lPdgcodeCurrentPart==3312 || lPdgcodeCurrentPart==-3312) {
1790 fHistMCRapXi->Fill(lRapCurrentPart);
1791 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.0)
1792 fHistMCRapInPtRangeXi->Fill(lRapCurrentPart);
1795 if (lPdgcodeCurrentPart==333) {
1796 fHistMCRapPhi->Fill(lRapCurrentPart);
1797 if (lPtCurrentPart < 0.7 && lPtCurrentPart < 3.0)
1798 fHistMCRapInPtRangePhi->Fill(lRapCurrentPart);
1802 if (TMath::Abs(lRapCurrentPart) > lCutRap) continue;
1804 if (lPdgcodeCurrentPart==310) {
1805 fHistMCProdRadiusK0s->Fill(mcPosR);
1807 fHistMCPtK0s->Fill(lPtCurrentPart);
1811 fHistNTimesRecK0s->Fill(lNtimesReconstructedK0s);
1812 fHistNTimesRecK0sVsPt->Fill(lPtCurrentPart,lNtimesReconstructedK0s);
1815 if (lPdgcodeCurrentPart==3122) {
1816 fHistMCProdRadiusLambda->Fill(mcPosR);
1818 fHistMCPtLambda->Fill(lPtCurrentPart);
1821 fHistNTimesRecLambda->Fill(lNtimesReconstructedLambda);
1822 fHistNTimesRecLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedLambda);
1823 if (lComeFromSigma) fHistMCPtLambdaFromSigma->Fill(lPtCurrentPart);
1825 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
1826 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
1830 if (lPdgcodeCurrentPart==-3122) {
1831 fHistMCProdRadiusAntiLambda->Fill(mcPosR);
1833 fHistMCPtAntiLambda->Fill(lPtCurrentPart);
1836 fHistNTimesRecAntiLambda->Fill(lNtimesReconstructedAntiLambda);
1837 fHistNTimesRecAntiLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambda);
1838 if (lComeFromSigma) fHistMCPtAntiLambdaFromSigma->Fill(lPtCurrentPart);
1840 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
1841 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
1846 } // end loop ESD MC
1848 } // end ESD condition
1851 } // End Loop over MC condition
1857 //************************************
1859 //************************************
1861 Double_t lMagneticField = 999;
1864 Int_t nv0sTot= 0, nv0s = 0;
1867 Double_t lV0Position[3];
1869 Double_t lDcaPosToPrimVertex = 0;
1870 Double_t lDcaNegToPrimVertex = 0;
1871 Double_t lDcaV0Daughters = 0;
1872 Double_t lV0cosPointAngle = 0;
1873 Double_t lChi2V0 = 0;
1874 Double_t lV0DecayLength = 0;
1875 Double_t lV0Radius = 0;
1876 Double_t lDcaV0ToPrimVertex = 0;
1878 Int_t lOnFlyStatus = 0;
1879 //Float_t tdcaPosToPrimVertexXYZ[2], tdcaNegToPrimVertexXYZ[2]; // ..[0] = Impact parameter in XY plane and ..[1] = Impact parameter in Z
1880 //Double_t tdcaDaughterToPrimVertex[2]; // ..[0] = Pos and ..[1] = Neg
1884 Double_t lInvMassK0s = 0, lInvMassLambda = 0, lInvMassAntiLambda = 0;
1885 Double_t lPtK0s = 0, lPtLambda = 0, lPtAntiLambda = 0;
1886 Double_t lRapK0s = 0, lRapLambda = 0, lRapAntiLambda = 0;
1887 // Double_t lEtaK0s = 0, lEtaLambda = 0, lEtaAntiLambda = 0;
1888 Double_t lAlphaV0 = 0, lPtArmV0 = 0;
1890 Double_t lPzK0s = 0, lPzLambda = 0, lPzAntiLambda = 0;
1893 Double_t lV0Eta = 999;
1895 // to study Associated V0s:
1896 Int_t lIndexTrackPos = 0, lIndexTrackNeg = 0;
1897 UInt_t lLabelTrackPos = 0, lLabelTrackNeg = 0;
1898 Int_t lCheckPIdK0Short = 0, lCheckMcK0Short = 0;
1899 Int_t lCheckPIdLambda = 0, lCheckMcLambda = 0;
1900 Int_t lCheckPIdAntiLambda = 0, lCheckMcAntiLambda = 0;
1901 Int_t lCheckSecondaryK0s = 0, lCheckSecondaryLambda = 0, lCheckSecondaryAntiLambda = 0;
1902 Int_t lCheckGamma = 0;
1903 Double_t mcPosMotherX = 0, mcPosMotherY = 0, mcPosMotherZ = 0;
1904 Double_t mcPosMotherR = 0;
1905 Double_t mcMotherPt = 0;
1907 Int_t lIndexPosMother = 0;
1908 Int_t lIndexNegMother = 0;
1909 Int_t lIndexMotherOfMother = 0;
1910 Int_t lPDGCodePosDaughter = 0;
1911 Int_t lPDGCodeNegDaughter = 0;
1912 Int_t lPdgcodeMother = 0;
1913 Int_t lPdgcodeMotherOfMother = 0;
1915 // Reconstructed position
1916 Double_t rcPosXK0s = 0, rcPosYK0s = 0, rcPosZK0s = 0;
1917 Double_t rcPosRK0s = 0;
1918 Double_t rcPosXLambda = 0, rcPosYLambda = 0, rcPosZLambda = 0;
1919 Double_t rcPosRLambda = 0;
1920 Double_t rcPosXAntiLambda = 0, rcPosYAntiLambda = 0, rcPosZAntiLambda = 0;
1921 Double_t rcPosRAntiLambda = 0;
1924 Double_t deltaPtK0s = 0, deltaPtLambda = 0, deltaPtAntiLambda = 0;
1927 AliESDtrack *myTrackPos = NULL;
1928 AliESDtrack *myTrackNeg = NULL;
1929 // AliVParticle *lVPartPos = NULL;
1930 // AliVParticle *lVPartNeg = NULL;
1933 Double_t V0mom[3] = {999,999,999};
1934 Double_t V0momentum = 0;
1936 // Daughters' momentum:
1937 Double_t lMomPos[3] = {999,999,999};
1938 Double_t lMomNeg[3] = {999,999,999};
1939 Double_t lPtPos = 999, lPtNeg = 999;
1940 Double_t lPPos = 999, lPNeg = 999;
1942 // Inner Wall parameters:
1943 Double_t lMomInnerWallPos =999, lMomInnerWallNeg = 999;
1945 // AliKF Chi2 and Armenteros variables
1946 // Double_t lChi2KFK0s = 0, lChi2KFLambda = 0, lChi2KFAntiLambda = 0;
1947 // Double_t lAlphaV0K0s = 0, lAlphaV0Lambda = 0, lAlphaV0AntiLambda = 0;
1948 //Double_t lPtArmV0K0s = 0, lPtArmV0Lambda = 0, lPtArmV0AntiLambda = 0;
1949 // Double_t lQlPos = 0, lQlNeg = 0;
1953 Float_t nSigmaPosPion = 0;
1954 Float_t nSigmaNegPion = 0;
1956 Float_t nSigmaPosProton = 0;
1957 Float_t nSigmaNegProton = 0;
1960 Int_t lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
1961 Int_t lCheckPIDLambdaPosDaughter = 0, lCheckPIDLambdaNegDaughter = 0;
1962 Int_t lCheckPIDAntiLambdaPosDaughter = 0, lCheckPIDAntiLambdaNegDaughter = 0;
1966 //***********************
1967 // Primary Vertex cuts &
1968 // Magnetic field and Quality tracks cuts
1970 Double_t lPrimaryVtxPosition[3];
1971 Double_t lPrimaryVtxCov[6];
1972 Double_t lPrimaryVtxChi2 = 999;
1973 Double_t lResPrimaryVtxX = 999;
1974 Double_t lResPrimaryVtxY = 999;
1975 Double_t lResPrimaryVtxZ = 999;
1977 AliAODVertex *myPrimaryVertex = NULL;
1978 //const AliVVertex *mySPDPrimaryVertex = NULL;
1981 const AliMultiplicity *myMultiplicty = ((AliESDEvent*)fESD)->GetMultiplicity();
1983 if(fAnalysisType == "ESD") {
1985 // Best Primary Vertex:
1986 const AliESDVertex *myBestPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertex();
1987 myBestPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertex();
1988 if (!myBestPrimaryVertex) return;
1989 if (!myBestPrimaryVertex->GetStatus()) return;
1990 fHistNumberEvents->Fill(3.5);
1991 myBestPrimaryVertex->GetXYZ(lPrimaryVtxPosition);
1992 myBestPrimaryVertex->GetCovMatrix(lPrimaryVtxCov);
1993 if ( ( TMath::Abs(lPrimaryVtxPosition[2]) ) > cutPrimVertex) return ;
1994 fHistNumberEvents->Fill(4.5);
1995 lPrimaryVtxChi2 = myBestPrimaryVertex->GetChi2toNDF();
1996 lResPrimaryVtxX = myBestPrimaryVertex->GetXRes();
1997 lResPrimaryVtxY = myBestPrimaryVertex->GetYRes();
1998 lResPrimaryVtxZ = myBestPrimaryVertex->GetZRes();
2000 // remove TPC-only primary vertex : retain only events with tracking + SPD vertex
2001 const AliESDVertex *mySPDPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertexSPD();
2002 if (!mySPDPrimaryVertex) return;
2003 fHistSPDPrimaryVertexZ->Fill(mySPDPrimaryVertex->GetZ());
2004 const AliESDVertex *myPrimaryVertexTracking = ((AliESDEvent*)fESD)->GetPrimaryVertexTracks();
2005 if (!myPrimaryVertexTracking) return;
2006 if (!mySPDPrimaryVertex->GetStatus() && !myPrimaryVertexTracking->GetStatus() ) return;
2007 fHistNumberEvents->Fill(5.5);
2009 fHistTrackPerEvent->Fill(fESD->GetNumberOfTracks());
2010 myPrimaryVertex = new AliAODVertex(lPrimaryVtxPosition, lPrimaryVtxCov, lPrimaryVtxChi2, NULL, -1, AliAODVertex::kPrimary);
2011 if (!myPrimaryVertex) return;
2014 // Number of Tracklets:
2015 //const AliMultiplicity *myMultiplicty = ((AliESDEvent*)fESD)->GetMultiplicity();
2016 //if (myMultiplicty->GetNumberOfTracklets() < 10) return;
2017 fHistTrackletPerEvent->Fill(myMultiplicty->GetNumberOfTracklets());
2019 lMagneticField = ((AliESDEvent*)fESD)->GetMagneticField();
2021 fHistTPCTracks->Fill(AliESDtrackCuts::GetReferenceMultiplicity((AliESDEvent*)fESD, kTRUE));
2023 ////////////////////////////////////////////////////////////////////////////////////////
2027 for (Int_t jTracks=0;jTracks<fESD->GetNumberOfTracks();jTracks++){
2029 AliESDtrack* tPCtrack=fESD->GetTrack(jTracks);
2032 tPCtrack->GetImpactParameters(xy,z);
2033 if ((fTracksCuts->IsSelected(tPCtrack))&&(xy<1.0)&&(z<1.0)) {i=i+1;}
2037 fHistTPCMult->Fill(i);
2039 /////////////////////////////////////////////////////////////////////////////////////////
2041 // minimum number of clusters in TPC
2042 // fTracksCuts->SetMinNClustersTPC(nbMinTPCclusters);
2045 fHistPrimaryVertexX->Fill(lPrimaryVtxPosition[0]);
2046 fHistPrimaryVertexY->Fill(lPrimaryVtxPosition[1]);
2047 fHistPrimaryVertexZ->Fill(lPrimaryVtxPosition[2]);
2048 //Double_t lrcPrimVtxR = TMath::Sqrt(lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]+lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]);
2050 fHistPrimaryVertexResX->Fill(lResPrimaryVtxX);
2051 fHistPrimaryVertexResY->Fill(lResPrimaryVtxY);
2052 fHistPrimaryVertexResZ->Fill(lResPrimaryVtxZ);
2054 //***********************
2055 // AliKF Primary Vertex
2057 AliKFVertex primaryVtxKF( *myPrimaryVertex );
2058 AliKFParticle::SetField(lMagneticField);
2063 //***Rerun the V0 finder
2065 // fESD->ResetV0s();
2066 // AliV0vertexer v0Vertexer;
2067 // v0Vertexer.SetCuts(fCuts);
2068 // v0Vertexer.Tracks2V0vertices(fESD);
2070 //*************************
2073 nv0sTot = fESD->GetNumberOfV0s();
2074 if (!nv0sTot) fHistNumberEvents->Fill(6.5);
2076 for (Int_t iV0 = 0; iV0 < nv0sTot; iV0++) {
2079 AliKFParticle* negPiKF = NULL;
2080 AliKFParticle* posPiKF = NULL;
2081 AliKFParticle* posPKF = NULL;
2082 AliKFParticle* negAPKF = NULL;
2085 lIndexPosMother = 0; lIndexNegMother = 0; lIndexMotherOfMother = 0;
2086 lCheckPIdK0Short = 0; lCheckMcK0Short = 0; lCheckSecondaryK0s = 0;
2087 lCheckPIdLambda = 0; lCheckMcLambda = 0; lCheckSecondaryLambda = 0;
2088 lCheckPIdAntiLambda = 0; lCheckMcAntiLambda = 0; lCheckSecondaryAntiLambda = 0;
2089 lComeFromSigma = -1;lCheckGamma = 0;
2092 if(fAnalysisType == "ESD") {
2095 AliESDv0 *v0 = ((AliESDEvent*)fESD)->GetV0(iV0);
2098 // if ((v0->Pt())<0.6) continue;
2101 fHistPrimaryVertexPosXV0events->Fill(lPrimaryVtxPosition[0]);
2102 fHistPrimaryVertexPosYV0events->Fill(lPrimaryVtxPosition[1]);
2103 fHistPrimaryVertexPosZV0events->Fill(lPrimaryVtxPosition[2]);
2106 lIndexTrackPos = TMath::Abs(v0->GetPindex());
2107 lIndexTrackNeg = TMath::Abs(v0->GetNindex());
2108 AliESDtrack *myTrackPosTest = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2109 AliESDtrack *myTrackNegTest = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2110 if (!myTrackPosTest || !myTrackNegTest) {
2111 Printf("strange analysis::UserExec:: Error:Could not retreive one of the daughter track\n");
2115 if ((Int_t)myTrackPosTest->GetSign() == (Int_t)myTrackNegTest->GetSign()){
2119 // VO's main characteristics to check the reconstruction cuts
2120 lOnFlyStatus = v0->GetOnFlyStatus();
2121 lChi2V0 = v0->GetChi2V0();
2122 lDcaV0Daughters = v0->GetDcaV0Daughters();
2123 lDcaV0ToPrimVertex = v0->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lPrimaryVtxPosition[2]);
2124 lV0cosPointAngle = v0->GetV0CosineOfPointingAngle(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1], lPrimaryVtxPosition[2]);
2126 v0->GetXYZ(lV0Position[0], lV0Position[1], lV0Position[2]);
2128 lV0Radius = TMath::Sqrt(lV0Position[0]*lV0Position[0]+lV0Position[1]*lV0Position[1]);
2129 lV0DecayLength = TMath::Sqrt(TMath::Power(lV0Position[0] - lPrimaryVtxPosition[0],2) +
2130 TMath::Power(lV0Position[1] - lPrimaryVtxPosition[1],2) +
2131 TMath::Power(lV0Position[2] - lPrimaryVtxPosition[2],2 ));
2134 if( myTrackPosTest->GetSign() ==1){
2136 myTrackPos = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2137 myTrackNeg = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2139 // Daughters' momentum;
2140 v0->GetPPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
2141 v0->GetNPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
2144 v0->GetXYZ(V0mom[0],V0mom[1],V0mom[2]);
2145 V0momentum = TMath::Sqrt(V0mom[0]*V0mom[0] + V0mom[1]*V0mom[1] + V0mom[2]*V0mom[2]);
2147 if (negPiKF) delete negPiKF; negPiKF=NULL;
2148 if (posPiKF) delete posPiKF; posPiKF=NULL;
2149 if (posPKF) delete posPKF; posPKF=NULL;
2150 if (negAPKF) delete negAPKF; negAPKF=NULL;
2152 negPiKF = new AliKFParticle( *(v0->GetParamN()) ,-211);
2153 posPiKF = new AliKFParticle( *(v0->GetParamP()) ,211);
2154 posPKF = new AliKFParticle( *(v0->GetParamP()) ,2212);
2155 negAPKF = new AliKFParticle( *(v0->GetParamN()) ,-2212);
2159 if( myTrackPosTest->GetSign() ==-1){
2161 myTrackPos = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2162 myTrackNeg = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2164 // Daughters' momentum;
2165 v0->GetPPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
2166 v0->GetNPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
2168 if (negPiKF) delete negPiKF; negPiKF=NULL;
2169 if (posPiKF) delete posPiKF; posPiKF=NULL;
2170 if (posPKF) delete posPKF; posPKF=NULL;
2171 if (negAPKF) delete negAPKF; negAPKF=NULL;
2173 negPiKF = new AliKFParticle( *(v0->GetParamP()) ,-211);
2174 posPiKF = new AliKFParticle( *(v0->GetParamN()) ,211);
2175 posPKF = new AliKFParticle( *(v0->GetParamN()) ,2212);
2176 negAPKF = new AliKFParticle( *(v0->GetParamP()) ,-2212);
2180 lLabelTrackPos = (UInt_t)TMath::Abs(myTrackPos->GetLabel());
2181 lLabelTrackNeg = (UInt_t)TMath::Abs(myTrackNeg->GetLabel());
2183 // Daughters Pt and P:
2184 lPtPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1]);
2185 lPtNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1]);
2187 lPPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1] + lMomPos[2]*lMomPos[2]);
2188 lPNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1] + lMomNeg[2]*lMomNeg[2]);
2190 // Inner Wall parameter:
2191 const AliExternalTrackParam *myInnerWallTrackPos = myTrackPos->GetInnerParam();
2192 if(myInnerWallTrackPos) lMomInnerWallPos = myInnerWallTrackPos->GetP();
2193 const AliExternalTrackParam *myInnerWallTrackNeg = myTrackNeg->GetInnerParam();
2194 if(myInnerWallTrackNeg) lMomInnerWallNeg = myInnerWallTrackNeg->GetP();
2196 // DCA between daughter and Primary Vertex:
2197 if (myTrackPos) lDcaPosToPrimVertex = TMath::Abs(myTrackPos->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) );
2199 if (myTrackNeg) lDcaNegToPrimVertex = TMath::Abs(myTrackNeg->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) );
2201 // Quality tracks cuts:
2202 if ( !(fTracksCuts->IsSelected(myTrackPos)) || !(fTracksCuts->IsSelected(myTrackNeg)) )
2206 if (negPiKF) delete negPiKF; negPiKF=NULL;
2207 if (posPiKF) delete posPiKF; posPiKF=NULL;
2208 if (posPKF) delete posPKF; posPKF=NULL;
2209 if (negAPKF) delete negAPKF; negAPKF=NULL;
2213 // Armenteros variables:
2214 lAlphaV0 = v0->AlphaV0();
2215 lPtArmV0 = v0->PtArmV0();
2219 //////////////////////////////////////////////////////////////////////////
2221 v0->ChangeMassHypothesis(310);
2222 lInvMassK0s = v0->GetEffMass();
2226 v0->ChangeMassHypothesis(3122);
2227 lInvMassLambda = v0->GetEffMass();
2228 lPtLambda = v0->Pt();
2229 lPzLambda = v0->Pz();
2231 v0->ChangeMassHypothesis(-3122);
2232 lInvMassAntiLambda = v0->GetEffMass();
2233 lPtAntiLambda = v0->Pt();
2234 lPzAntiLambda = v0->Pz();
2238 lRapK0s = v0->Y(310);
2239 lRapLambda = v0->Y(3122);
2240 lRapAntiLambda = v0->Y(-3122);
2243 if (negPiKF) delete negPiKF; negPiKF=NULL;
2244 if (posPiKF) delete posPiKF; posPiKF=NULL;
2245 if (posPKF) delete posPKF; posPKF=NULL;
2246 if (negAPKF) delete negAPKF; negAPKF=NULL;
2250 if (negPiKF) delete negPiKF; negPiKF=NULL;
2251 if (posPiKF) delete posPiKF; posPiKF=NULL;
2252 if (posPKF) delete posPKF; posPKF=NULL;
2253 if (negAPKF) delete negAPKF; negAPKF=NULL;
2257 if (lPtAntiLambda==0) {
2258 if (negPiKF) delete negPiKF; negPiKF=NULL;
2259 if (posPiKF) delete posPiKF; posPiKF=NULL;
2260 if (posPKF) delete posPKF; posPKF=NULL;
2261 if (negAPKF) delete negAPKF; negAPKF=NULL;
2265 ///////////////////////////////////////////////////////////////////////
2267 // PID new method July 2011
2268 if (fUsePID.Contains("withPID")) {
2269 // nSigmaPosPion = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackPos,AliPID::kPion));
2270 nSigmaPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kPion));
2271 // nSigmaNegPion = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackNeg,AliPID::kPion));
2272 nSigmaNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kPion));
2273 // nSigmaPosProton = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackPos,AliPID::kProton));
2274 nSigmaPosProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kProton));
2275 // nSigmaNegProton = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackNeg,AliPID::kProton));
2276 nSigmaNegProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kProton));
2280 nSigmaPosPion = 0; nSigmaNegPion =0; nSigmaPosProton = 0; nSigmaNegProton= 0;
2285 // Monte-Carlo particle associated to reconstructed particles:
2287 //if (lLabelTrackPos < 0 || lLabelTrackNeg < 0) continue;
2288 TParticle *lMCESDPartPos = stack->Particle(lLabelTrackPos);
2289 if(!lMCESDPartPos) {
2290 // Printf("no MC particle for positive and/or negative daughter\n");
2292 if (negPiKF) delete negPiKF; negPiKF=NULL;
2293 if (posPiKF) delete posPiKF; posPiKF=NULL;
2294 if (posPKF) delete posPKF; posPKF=NULL;
2295 if (negAPKF) delete negAPKF; negAPKF=NULL;
2299 TParticle *lMCESDPartNeg = stack->Particle(lLabelTrackNeg);
2300 if (!lMCESDPartNeg) {
2301 if (negPiKF) delete negPiKF; negPiKF=NULL;
2302 if (posPiKF) delete posPiKF; posPiKF=NULL;
2303 if (posPKF) delete posPKF; posPKF=NULL;
2304 if (negAPKF) delete negAPKF; negAPKF=NULL;
2307 lPDGCodePosDaughter = lMCESDPartPos->GetPdgCode();
2308 lPDGCodeNegDaughter = lMCESDPartNeg->GetPdgCode();
2309 lIndexPosMother = lMCESDPartPos->GetFirstMother();
2310 lIndexNegMother = lMCESDPartNeg->GetFirstMother();
2312 //////////////////////////////
2313 // if (lIndexPosMother == -1) {
2314 // if (negPiKF) delete negPiKF; negPiKF=NULL;
2315 // if (posPiKF) delete posPiKF; posPiKF=NULL;
2316 // if (posPKF) delete posPKF; posPKF=NULL;
2317 // if (negAPKF) delete negAPKF; negAPKF=NULL;
2321 if (lIndexPosMother == -1) {
2325 lIndexMotherOfMother = 0;
2341 TParticle *lMCESDMother = stack->Particle(lIndexPosMother);
2342 if (!lMCESDMother) {
2343 if (negPiKF) delete negPiKF; negPiKF=NULL;
2344 if (posPiKF) delete posPiKF; posPiKF=NULL;
2345 if (posPKF) delete posPKF; posPKF=NULL;
2346 if (negAPKF) delete negAPKF; negAPKF=NULL;
2349 lPdgcodeMother = lMCESDMother->GetPdgCode();
2350 lIndexMotherOfMother = lMCESDMother->GetFirstMother();
2351 if (lIndexMotherOfMother ==-1) lPdgcodeMotherOfMother = 0;
2353 TParticle *lMCESDMotherOfMother = stack->Particle(lIndexMotherOfMother);
2354 if (!lMCESDMotherOfMother) {
2355 if (negPiKF) delete negPiKF; negPiKF=NULL;
2356 if (posPiKF) delete posPiKF; posPiKF=NULL;
2357 if (posPKF) delete posPKF; posPKF=NULL;
2358 if (negAPKF) delete negAPKF; negAPKF=NULL;
2361 lPdgcodeMotherOfMother = lMCESDMotherOfMother->GetPdgCode();
2364 mcPosX = lMCESDPartPos->Vx();
2365 mcPosY = lMCESDPartPos->Vy();
2366 mcPosZ = lMCESDPartPos->Vz();
2367 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
2368 mcPosMotherX = lMCESDMother->Vx();
2369 mcPosMotherY = lMCESDMother->Vy();
2370 mcPosMotherZ = lMCESDMother->Vz();
2371 mcPosMotherR = TMath::Sqrt(mcPosMotherX*mcPosMotherX+mcPosMotherY*mcPosMotherY);
2373 mcMotherPt = lMCESDMother->Pt();
2376 } // end ESD condition
2384 if(!lOnFlyStatus) nv0s++;
2385 // else if(lOnFlyStatus) nv0sMI++;
2387 // Daughter momentum cut: ! FIX it in case of AOD !
2388 if ( (lPtPos < cutMinPtDaughter ) ||
2389 (lPtNeg < cutMinPtDaughter )
2391 if (negPiKF) delete negPiKF; negPiKF=NULL;
2392 if (posPiKF) delete posPiKF; posPiKF=NULL;
2393 if (posPKF) delete posPKF; posPKF=NULL;
2394 if (negAPKF) delete negAPKF; negAPKF=NULL;
2398 AliKFParticle v0K0sKF;
2399 v0K0sKF+=(*negPiKF);
2400 v0K0sKF+=(*posPiKF);
2401 v0K0sKF.SetProductionVertex(primaryVtxKF);
2403 AliKFParticle v0LambdaKF;
2404 v0LambdaKF+=(*negPiKF);
2405 v0LambdaKF+=(*posPKF);
2406 v0LambdaKF.SetProductionVertex(primaryVtxKF);
2408 AliKFParticle v0AntiLambdaKF;
2409 v0AntiLambdaKF+=(*posPiKF);
2410 v0AntiLambdaKF+=(*negAPKF);
2411 v0AntiLambdaKF.SetProductionVertex(primaryVtxKF);
2412 // Look for associated particles:
2414 if( (lIndexPosMother==-1) || (lIndexNegMother==-1) ) {
2415 fHistMCDaughterTrack->Fill(1);
2418 else if( ( (lPDGCodePosDaughter==+211) && (lPDGCodeNegDaughter==-211) )
2420 lCheckPIdK0Short = 1;
2421 fHistMCDaughterTrack->Fill(3);
2422 if ( (lIndexPosMother==lIndexNegMother) &&
2423 (lPdgcodeMother==310) ) {
2424 if (lIndexPosMother <= lNbMCPrimary) lCheckMcK0Short = 1;
2425 else lCheckSecondaryK0s = 1;
2428 else if( ( (lPDGCodePosDaughter==+2212) && (lPDGCodeNegDaughter==-211) )
2430 lCheckPIdLambda = 1;
2431 fHistMCDaughterTrack->Fill(5);
2432 if ( (lIndexPosMother==lIndexNegMother) &&
2433 (lPdgcodeMother==3122) ){
2434 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2435 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2436 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2437 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2438 ) lComeFromSigma = 1;
2439 else lComeFromSigma = 0;
2440 if ( (lIndexPosMother <= lNbMCPrimary) ||
2441 ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) )
2442 ) lCheckMcLambda = 1;
2443 else lCheckSecondaryLambda = 1;
2446 else if( ( (lPDGCodePosDaughter==211) && (lPDGCodeNegDaughter==-2212) )
2448 lCheckPIdAntiLambda = 1;
2449 fHistMCDaughterTrack->Fill(7);
2450 if ( (lIndexPosMother==lIndexNegMother) &&
2451 (lPdgcodeMother==-3122) ) {
2452 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2453 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2454 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2455 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2456 ) lComeFromSigma = 1;
2457 else lComeFromSigma = 0;
2458 if ( (lIndexPosMother <= lNbMCPrimary) ||
2459 ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) )
2460 ) lCheckMcAntiLambda = 1;
2461 else lCheckSecondaryAntiLambda = 1;
2466 else if ( (lPDGCodePosDaughter==-11) &&
2467 (lPDGCodeNegDaughter==11) &&
2468 (lPdgcodeMother==22 ) )
2470 } // end "look for associated particles
2474 lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2475 lCheckPIDLambdaPosDaughter = 0, lCheckPIDLambdaNegDaughter = 0;
2476 lCheckPIDAntiLambdaPosDaughter = 0, lCheckPIDAntiLambdaNegDaughter = 0;
2478 if (lMomInnerWallPos < lLimitPPID) {
2479 if (nSigmaPosPion < cutNSigmaLowP) {
2480 lCheckPIDK0sPosDaughter = 1;
2481 lCheckPIDAntiLambdaPosDaughter = 1;
2483 if (nSigmaPosProton < cutNSigmaLowP) lCheckPIDLambdaPosDaughter = 1;
2486 else if (lMomInnerWallPos > lLimitPPID) {
2487 if (nSigmaPosPion < cutNSigmaHighP) {
2488 lCheckPIDK0sPosDaughter = 1;
2489 lCheckPIDAntiLambdaPosDaughter = 1;
2491 if (nSigmaPosProton < cutNSigmaHighP) lCheckPIDLambdaPosDaughter = 1;
2494 if (lMomInnerWallNeg < lLimitPPID) {
2495 if (nSigmaNegPion < cutNSigmaLowP) {
2496 lCheckPIDK0sNegDaughter = 1;
2497 lCheckPIDLambdaNegDaughter = 1;
2499 if (nSigmaNegProton < cutNSigmaLowP) lCheckPIDAntiLambdaNegDaughter = 1;
2502 else if (lMomInnerWallNeg > lLimitPPID) {
2503 if (nSigmaNegPion < cutNSigmaHighP) {
2504 lCheckPIDK0sNegDaughter = 1;
2505 lCheckPIDLambdaNegDaughter = 1;
2507 if (nSigmaNegProton < cutNSigmaHighP) lCheckPIDAntiLambdaNegDaughter = 1;
2512 if ( lCheckPIDAntiLambdaNegDaughter==1 || lCheckPIDAntiLambdaPosDaughter==1 || lCheckPIDLambdaPosDaughter!=1 || lCheckPIDLambdaNegDaughter!=1)
2514 if (negPiKF) delete negPiKF; negPiKF=NULL;
2515 if (posPiKF) delete posPiKF; posPiKF=NULL;
2516 if (posPKF) delete posPKF; posPKF=NULL;
2517 if (negAPKF) delete negAPKF; negAPKF=NULL;
2522 //*****************************
2523 // filling histograms
2524 //*****************************
2526 ///////////////values for cuts/////////////////////////////////////////////////////////////////////////////////////////
2527 if ((lDcaPosToPrimVertex<=0.1) || (lDcaNegToPrimVertex<=0.1) || (lDcaV0Daughters>=1.00) ||
2528 (lV0cosPointAngle<=0.998) || (lV0Radius<=0.9) || (lV0Radius>=100) )
2531 if (negPiKF) delete negPiKF; negPiKF=NULL;
2532 if (posPiKF) delete posPiKF; posPiKF=NULL;
2533 if (posPKF) delete posPKF; posPKF=NULL;
2534 if (negAPKF) delete negAPKF; negAPKF=NULL;
2537 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2540 if(fUsePID.Contains("withPID") && (lCheckPIDAntiLambdaNegDaughter==0) && lCheckPIDLambdaPosDaughter==1) LambdaPID = 1;
2542 if(fUsePID.Contains("withPID") && (lCheckPIDLambdaPosDaughter==0) && lCheckPIDAntiLambdaNegDaughter==1) AntiLambdaPID = 1;
2543 else AntiLambdaPID =0;
2545 V0momentum = TMath::Sqrt(lPzLambda*lPzLambda + lPtLambda*lPtLambda);
2547 if ((LambdaPID==1 && V0momentum <=1) || (V0momentum>1) || !(fUsePID.Contains("withPID"))){
2548 if ((TMath::Abs(lRapK0s) < lCutRap) && lOnFlyStatus==0) {
2549 fHistTPCsignalPt->Fill(V0momentum,myTrackPos->GetTPCsignal());
2550 // fHistTPCsignalPt->Fill(V0momentum,myTrackNeg->GetTPCsignal());
2554 if ((V0momentum)<1 && lOnFlyStatus==0 ){
2555 fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
2562 // insert PID condition for K0s instead of "kTRUE" value
2563 if ((fUsePID.Contains("withPID") && kTRUE) || !(fUsePID.Contains("withPID"))){
2564 if (TMath::Abs(lRapK0s) < lCutRap ) {
2566 //////2D histos: cut vs on fly status/////////////////////
2568 fHistDcaPosToPrimVertexK0->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2569 fHistDcaNegToPrimVertexK0->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2570 fHistRadiusV0K0->Fill(lV0Radius,lOnFlyStatus);
2571 fHistDecayLengthV0K0->Fill(lV0DecayLength,lOnFlyStatus);
2572 fHistDcaV0DaughtersK0->Fill(lDcaV0Daughters,lOnFlyStatus);
2573 fHistChi2K0->Fill(lChi2V0,lOnFlyStatus);
2574 fHistCosPointAngleK0->Fill(lV0cosPointAngle,lOnFlyStatus);
2576 //////2D histos: cut vs mass/////////////////////
2578 if (lOnFlyStatus==0){
2581 fHistMassK0->Fill(lInvMassK0s);
2582 fHistMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
2583 fHistPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
2586 fHistDcaPosToPrimVertexK0vsMassK0->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2587 fHistDcaNegToPrimVertexK0vsMassK0->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2588 fHistRadiusV0K0vsMassK0->Fill(lV0Radius,lInvMassK0s);
2589 fHistDecayLengthV0K0vsMassK0->Fill(lV0DecayLength,lInvMassK0s);
2590 fHistDcaV0DaughtersK0vsMassK0->Fill(lDcaV0Daughters,lInvMassK0s);
2591 fHistCosPointAngleK0vsMassK0->Fill(lV0cosPointAngle,lInvMassK0s);
2593 if (lPtK0s>0 && lPtK0s <3){
2594 fHistDcaPosToPrimVertexK0vsMassK0pt1->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2595 fHistDcaNegToPrimVertexK0vsMassK0pt1->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2596 fHistRadiusV0K0vsMassK0pt1->Fill(lV0Radius,lInvMassK0s);
2597 fHistDecayLengthV0K0vsMassK0pt1->Fill(lV0DecayLength,lInvMassK0s);
2598 fHistDcaV0DaughtersK0vsMassK0pt1->Fill(lDcaV0Daughters,lInvMassK0s);
2599 fHistCosPointAngleK0vsMassK0pt1->Fill(lV0cosPointAngle,lInvMassK0s);
2601 if (lPtK0s > 3 && lPtK0s < 6){
2602 fHistDcaPosToPrimVertexK0vsMassK0pt2->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2603 fHistDcaNegToPrimVertexK0vsMassK0pt2->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2604 fHistRadiusV0K0vsMassK0pt2->Fill(lV0Radius,lInvMassK0s);
2605 fHistDecayLengthV0K0vsMassK0pt2->Fill(lV0DecayLength,lInvMassK0s);
2606 fHistDcaV0DaughtersK0vsMassK0pt2->Fill(lDcaV0Daughters,lInvMassK0s);
2607 fHistCosPointAngleK0vsMassK0pt2->Fill(lV0cosPointAngle,lInvMassK0s);
2609 if (lPtK0s > 6 && lPtK0s < 10){
2610 fHistDcaPosToPrimVertexK0vsMassK0pt3->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2611 fHistDcaNegToPrimVertexK0vsMassK0pt3->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2612 fHistRadiusV0K0vsMassK0pt3->Fill(lV0Radius,lInvMassK0s);
2613 fHistDecayLengthV0K0vsMassK0pt3->Fill(lV0DecayLength,lInvMassK0s);
2614 fHistDcaV0DaughtersK0vsMassK0pt3->Fill(lDcaV0Daughters,lInvMassK0s);
2615 fHistCosPointAngleK0vsMassK0pt3->Fill(lV0cosPointAngle,lInvMassK0s);
2618 } // if rap. condition
2619 } // end if withPID condition
2621 // insert PID condition for Lambda instead of "kTRUE" value
2622 // if ((fUsePID.Contains("withPID") && kTRUE )|| !(fUsePID.Contains("withPID"))){
2623 if ((LambdaPID==1 && V0momentum <=1) || (V0momentum>1) || !(fUsePID.Contains("withPID"))){
2625 if (TMath::Abs(lRapLambda) < lCutRap) {
2627 //////2D histos: cut vs on fly status/////////////////////
2629 fHistDcaPosToPrimVertexL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2630 fHistDcaNegToPrimVertexL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2631 fHistRadiusV0L->Fill(lV0Radius,lOnFlyStatus);
2632 fHistDecayLengthV0L->Fill(lV0DecayLength,lOnFlyStatus);
2633 fHistDcaV0DaughtersL->Fill(lDcaV0Daughters,lOnFlyStatus);
2634 fHistChi2L->Fill(lChi2V0,lOnFlyStatus);
2635 fHistCosPointAngleL->Fill(lV0cosPointAngle,lOnFlyStatus);
2637 //////2D histos: cut vs mass/////////////////////
2639 if (lOnFlyStatus==0){
2640 fHistMassLambda->Fill(lInvMassLambda);
2641 fHistMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
2642 fHistPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
2643 if(V0momentum <=1) fHistNSigmaProton->Fill(nSigmaPosProton);
2645 fHistDcaPosToPrimVertexLvsMassL->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2646 fHistDcaNegToPrimVertexLvsMassL->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2647 fHistRadiusV0LvsMassL->Fill(lV0Radius,lInvMassLambda);
2648 fHistDecayLengthV0LvsMassL->Fill(lV0DecayLength,lInvMassLambda);
2649 fHistDcaV0DaughtersLvsMassL->Fill(lDcaV0Daughters,lInvMassLambda);
2650 fHistCosPointAngleLvsMassL->Fill(lV0cosPointAngle,lInvMassLambda);
2653 if (lPtLambda>0 && lPtLambda <3){
2654 fHistDcaPosToPrimVertexLambdaVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2655 fHistDcaNegToPrimVertexLambdaVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2656 fHistRadiusV0LambdaVsMasspt1->Fill(lV0Radius,lInvMassLambda);
2657 fHistDecayLengthV0LambdaVsMasspt1->Fill(lV0DecayLength,lInvMassLambda);
2658 fHistDcaV0DaughtersLambdaVsMasspt1->Fill(lDcaV0Daughters,lInvMassLambda);
2659 fHistCosPointAngleLambdaVsMasspt1->Fill(lV0cosPointAngle,lInvMassLambda);
2661 if (lPtLambda > 3 && lPtLambda < 6){
2662 fHistDcaPosToPrimVertexLambdaVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2663 fHistDcaNegToPrimVertexLambdaVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2664 fHistRadiusV0LambdaVsMasspt2->Fill(lV0Radius,lInvMassLambda);
2665 fHistDecayLengthV0LambdaVsMasspt2->Fill(lV0DecayLength,lInvMassLambda);
2666 fHistDcaV0DaughtersLambdaVsMasspt2->Fill(lDcaV0Daughters,lInvMassLambda);
2667 fHistCosPointAngleLambdaVsMasspt2->Fill(lV0cosPointAngle,lInvMassLambda);
2669 if (lPtLambda > 6 && lPtLambda < 10){
2670 fHistDcaPosToPrimVertexLambdaVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassLambda);
2671 fHistDcaNegToPrimVertexLambdaVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassLambda);
2672 fHistRadiusV0LambdaVsMasspt3->Fill(lV0Radius,lInvMassLambda);
2673 fHistDecayLengthV0LambdaVsMasspt3->Fill(lV0DecayLength,lInvMassLambda);
2674 fHistDcaV0DaughtersLambdaVsMasspt3->Fill(lDcaV0Daughters,lInvMassLambda);
2675 fHistCosPointAngleLambdaVsMasspt3->Fill(lV0cosPointAngle,lInvMassLambda);
2678 } //end of Rap condition
2679 } // end of PID condition
2681 /////////// Anti Lambda ///////////////
2682 if ((AntiLambdaPID==1 && lPtAntiLambda <=1) || (lPtAntiLambda>1) || !(fUsePID.Contains("withPID"))){
2683 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
2685 //////2D histos: cut vs on fly status/////////////////////
2687 fHistDcaPosToPrimVertexAntiL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2688 fHistDcaNegToPrimVertexAntiL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2689 fHistRadiusV0AntiL->Fill(lV0Radius,lOnFlyStatus);
2690 fHistDecayLengthV0AntiL->Fill(lV0DecayLength,lOnFlyStatus);
2691 fHistDcaV0DaughtersAntiL->Fill(lDcaV0Daughters,lOnFlyStatus);
2692 fHistChi2AntiL->Fill(lChi2V0,lOnFlyStatus);
2693 fHistCosPointAngleAntiL->Fill(lV0cosPointAngle,lOnFlyStatus);
2695 //////2D histos: cut vs mass/////////////////////
2697 if (lOnFlyStatus==0){
2699 fHistMassAntiLambda->Fill(lInvMassAntiLambda);
2700 fHistMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
2701 fHistPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
2704 fHistDcaPosToPrimVertexAntiLvsMass->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2705 fHistDcaNegToPrimVertexAntiLvsMass->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2706 fHistRadiusV0AntiLvsMass->Fill(lV0Radius,lInvMassAntiLambda);
2707 fHistDecayLengthV0AntiLvsMass->Fill(lV0DecayLength,lInvMassAntiLambda);
2708 fHistDcaV0DaughtersAntiLvsMass->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2709 fHistCosPointAngleAntiLvsMass->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2712 if (lPtAntiLambda>0 && lPtAntiLambda <3){
2713 fHistDcaPosToPrimVertexAntiLVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2714 fHistDcaNegToPrimVertexAntiLVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2715 fHistRadiusV0AntiLVsMasspt1->Fill(lV0Radius,lInvMassAntiLambda);
2716 fHistDecayLengthV0AntiLVsMasspt1->Fill(lV0DecayLength,lInvMassAntiLambda);
2717 fHistDcaV0DaughtersAntiLVsMasspt1->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2718 fHistCosPointAngleAntiLVsMasspt1->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2720 if (lPtAntiLambda > 3 && lPtAntiLambda < 6){
2721 fHistDcaPosToPrimVertexAntiLVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2722 fHistDcaNegToPrimVertexAntiLVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2723 fHistRadiusV0AntiLVsMasspt2->Fill(lV0Radius,lInvMassAntiLambda);
2724 fHistDecayLengthV0AntiLVsMasspt2->Fill(lV0DecayLength,lInvMassAntiLambda);
2725 fHistDcaV0DaughtersAntiLVsMasspt2->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2726 fHistCosPointAngleAntiLVsMasspt2->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2728 if (lPtAntiLambda > 6 && lPtAntiLambda < 10){
2729 fHistDcaPosToPrimVertexAntiLVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
2730 fHistDcaNegToPrimVertexAntiLVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
2731 fHistRadiusV0AntiLVsMasspt3->Fill(lV0Radius,lInvMassAntiLambda);
2732 fHistDecayLengthV0AntiLVsMasspt3->Fill(lV0DecayLength,lInvMassAntiLambda);
2733 fHistDcaV0DaughtersAntiLVsMasspt3->Fill(lDcaV0Daughters,lInvMassAntiLambda);
2734 fHistCosPointAngleAntiLVsMasspt3->Fill(lV0cosPointAngle,lInvMassAntiLambda);
2737 } //end of Rap condition
2738 } // end of PID condition
2741 ///////////////values for cuts end////////////////////////////////////////////////////////////////////////
2744 // Histo versus Rap and armenteros plot
2746 if (lCheckMcK0Short) fHistAsMcRapK0->Fill(lRapK0s);
2747 if (lCheckMcLambda) fHistAsMcRapLambda->Fill(lRapLambda);
2748 if (lCheckMcAntiLambda) fHistAsMcRapLambda->Fill(lRapAntiLambda);
2749 // fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
2750 if ((TMath::Abs(lRapK0s) < lCutRap)&&(TMath::Abs(lRapLambda) < lCutRap)) fHistK0sMassVsLambdaMass->Fill(lInvMassK0s,lInvMassLambda);
2755 // K0s associated histograms in |rap| < lCutRap:
2758 if (TMath::Abs(lRapK0s) < lCutRap) {
2760 fHistNsigmaPosPionK0->Fill(nSigmaPosPion);
2761 fHistNsigmaNegPionK0->Fill(nSigmaNegPion);
2763 switch (lOnFlyStatus){
2767 // fHistMultVsPtVsMassK0->Fill(multiplicity ,lInvMassK0s,lPtK0s);
2768 if(lCheckPIdK0Short) fHistPidMcMassK0->Fill(lInvMassK0s);
2769 if(lCheckMcK0Short) {
2770 fHistAsMcMassK0->Fill(lInvMassK0s);
2771 fHistAsMcPtK0->Fill(lPtK0s);
2774 fHistAsMcPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
2775 if (lPtK0s <= 1) fHistAsMcPtZoomK0->Fill(lPtK0s);
2776 fHistAsMcMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
2777 fHistAsMcResxK0->Fill(rcPosXK0s-mcPosX);
2778 fHistAsMcResyK0->Fill(rcPosYK0s-mcPosY);
2779 fHistAsMcReszK0->Fill(rcPosZK0s-mcPosZ);
2780 fHistAsMcResrVsRadiusK0->Fill(rcPosRK0s,rcPosRK0s-mcPosR);
2781 fHistAsMcReszVsRadiusK0->Fill(rcPosZK0s,rcPosZK0s-mcPosZ);
2782 fHistAsMcProdRadiusK0->Fill(mcPosMotherR);
2783 fHistAsMcProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
2784 fHistAsMcResPtK0->Fill(deltaPtK0s);
2785 fHistAsMcResPtVsRapK0->Fill(deltaPtK0s,lRapK0s);
2786 fHistAsMcResPtVsPtK0->Fill(deltaPtK0s,lPtK0s);
2788 else if (lCheckSecondaryK0s) {
2789 fHistAsMcSecondaryPtVsRapK0s->Fill(lPtK0s,lRapK0s);
2790 fHistAsMcSecondaryProdRadiusK0s->Fill(mcPosMotherR);
2791 fHistAsMcSecondaryProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
2792 switch (lPdgcodeMotherOfMother) {
2793 case 130 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(0.5);break; // K0L
2794 case 321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(1.5);break; // K+
2795 case -321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(2.5);break; // K-
2796 case -3122 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(3.5);break; //AntiLambda
2797 default : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(6.5);break;
2803 } // end rapidity condition
2807 // Associated Lambda histograms in |rap| < lCutRap
2808 if ((LambdaPID==1 && V0momentum <=1) || (V0momentum>1) || !(fUsePID.Contains("withPID"))){
2810 if (TMath::Abs(lRapLambda) < lCutRap) {
2812 fHistNsigmaPosProtonLambda->Fill(nSigmaPosProton);
2813 fHistNsigmaNegPionLambda->Fill(nSigmaNegPion);
2814 switch (lOnFlyStatus){
2817 // fHistMultVsPtVsMassLambda->Fill(multiplicity ,lInvMassLambda,lPtLambda);
2818 if(lCheckPIdLambda) fHistPidMcMassLambda->Fill(lInvMassLambda);
2820 if(lCheckMcLambda) {
2821 fHistAsMcMassLambda->Fill(lInvMassLambda);
2822 fHistAsMcPtLambda->Fill(lPtLambda);
2824 fHistAsMcPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
2825 if (lPtLambda <= 1) fHistAsMcPtZoomLambda->Fill(lPtLambda);
2826 fHistAsMcMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
2827 fHistAsMcResxLambda->Fill(rcPosXLambda-mcPosX);
2828 fHistAsMcResyLambda->Fill(rcPosYLambda-mcPosY);
2829 fHistAsMcReszLambda->Fill(rcPosZLambda-mcPosZ);
2830 fHistAsMcResrVsRadiusLambda->Fill(rcPosRLambda,rcPosRLambda-mcPosR);
2831 fHistAsMcReszVsRadiusLambda->Fill(rcPosZLambda,rcPosZLambda-mcPosZ);
2832 fHistAsMcProdRadiusLambda->Fill(mcPosMotherR);
2833 fHistAsMcProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
2834 fHistAsMcResPtLambda->Fill(deltaPtLambda);
2835 fHistAsMcResPtVsRapLambda->Fill(deltaPtLambda,lRapLambda);
2836 fHistAsMcResPtVsPtLambda->Fill(deltaPtLambda,lPtLambda);
2837 if (lComeFromSigma) fHistAsMcPtLambdaFromSigma->Fill(lPtLambda);
2838 switch (lPdgcodeMotherOfMother) {
2839 case 3222 : fHistAsMcMotherPdgCodeLambda->Fill(0.5); break; // Sigma +
2840 case 3212 : fHistAsMcMotherPdgCodeLambda->Fill(1.5); break; // Sigma 0
2841 case 3112 : fHistAsMcMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
2842 case 3224 : fHistAsMcMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
2843 case 3214 : fHistAsMcMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
2844 case 3114 : fHistAsMcMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
2845 case 3322 : fHistAsMcMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
2846 case 3312 : fHistAsMcMotherPdgCodeLambda->Fill(7.5); break; // Xi -
2847 case 3334 : fHistAsMcMotherPdgCodeLambda->Fill(8.5); break; // Omega
2848 case -1 : fHistAsMcMotherPdgCodeLambda->Fill(9.5); break;
2849 default : fHistAsMcMotherPdgCodeLambda->Fill(10.5);break;
2852 //printf("found Lambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtLambda,lInvMassLambda);
2853 //printf("found Lambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
2857 else if (lCheckSecondaryLambda) {
2858 fHistAsMcSecondaryPtVsRapLambda->Fill(lPtLambda,lRapLambda);
2859 fHistAsMcSecondaryProdRadiusLambda->Fill(mcPosMotherR);
2860 fHistAsMcSecondaryProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
2861 if (lComeFromSigma) fHistAsMcSecondaryPtLambdaFromSigma->Fill(lPtLambda);
2862 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
2863 switch (lPdgcodeMotherOfMother) {
2864 case 3222 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(0.5); break;// Sigma +
2865 case 3212 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(1.5); break;// Sigma 0
2866 case 3112 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
2867 case 3224 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
2868 case 3214 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
2869 case 3114 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
2870 case 3322 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
2871 case 3312 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(7.5); break; // Xi -
2872 case 3334 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(8.5); break; // Omega
2873 case -1 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(9.5); break;
2874 default : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(10.5);break;
2880 } // end rapidity condition
2881 }// end PID condition
2882 // Associated AntiLambda histograms in |rap| < lCutRap
2883 if ((AntiLambdaPID==1 && lPtAntiLambda <=1) || (lPtAntiLambda>1) || !(fUsePID.Contains("withPID"))){
2885 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
2887 fHistNsigmaPosProtonAntiLambda->Fill(nSigmaPosProton);
2888 fHistNsigmaNegPionAntiLambda->Fill(nSigmaNegPion);
2889 switch (lOnFlyStatus){
2892 // fHistMultVsPtVsMassAntiLambda->Fill(multiplicity ,lInvMassAntiLambda,lPtAntiLambda);
2893 if(lCheckPIdAntiLambda) fHistPidMcMassAntiLambda->Fill(lInvMassAntiLambda);
2895 if(lCheckMcAntiLambda) {
2896 fHistAsMcMassAntiLambda->Fill(lInvMassAntiLambda);
2897 fHistAsMcPtAntiLambda->Fill(lPtAntiLambda);
2900 fHistAsMcPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
2901 if (lPtAntiLambda <= 1) fHistAsMcPtZoomAntiLambda->Fill(lPtAntiLambda);
2902 fHistAsMcMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
2903 fHistAsMcResxAntiLambda->Fill(rcPosXAntiLambda-mcPosX);
2904 fHistAsMcResyAntiLambda->Fill(rcPosYAntiLambda-mcPosY);
2905 fHistAsMcReszAntiLambda->Fill(rcPosZAntiLambda-mcPosZ);
2906 fHistAsMcResrVsRadiusAntiLambda->Fill(rcPosRAntiLambda,rcPosRAntiLambda-mcPosR);
2907 fHistAsMcReszVsRadiusAntiLambda->Fill(rcPosZAntiLambda,rcPosZAntiLambda-mcPosZ);
2908 fHistAsMcProdRadiusAntiLambda->Fill(mcPosMotherR);
2909 fHistAsMcProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
2910 fHistAsMcResPtAntiLambda->Fill(deltaPtAntiLambda);
2911 fHistAsMcResPtVsRapAntiLambda->Fill(deltaPtAntiLambda,lRapAntiLambda);
2912 fHistAsMcResPtVsPtAntiLambda->Fill(deltaPtAntiLambda,lPtAntiLambda);
2913 if (lComeFromSigma) fHistAsMcPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
2914 switch (lPdgcodeMotherOfMother) {
2915 case 3222 : fHistAsMcMotherPdgCodeAntiLambda->Fill(0.5); break; // Sigma +
2916 case 3212 : fHistAsMcMotherPdgCodeAntiLambda->Fill(1.5); break; // Sigma 0
2917 case 3112 : fHistAsMcMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
2918 case 3224 : fHistAsMcMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
2919 case 3214 : fHistAsMcMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
2920 case 3114 : fHistAsMcMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
2921 case 3322 : fHistAsMcMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
2922 case 3312 : fHistAsMcMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
2923 case 3334 : fHistAsMcMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
2925 case -1 : fHistAsMcMotherPdgCodeAntiLambda->Fill(9.5); break;
2926 default : fHistAsMcMotherPdgCodeAntiLambda->Fill(10.5);break;
2929 //printf("found AntiLambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtAntiLambda,lInvMassAntiLambda);
2930 //printf("found AntiLambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
2934 else if (lCheckSecondaryAntiLambda) {
2935 fHistAsMcSecondaryPtVsRapAntiLambda->Fill(lPtAntiLambda,lRapAntiLambda);
2936 fHistAsMcSecondaryProdRadiusAntiLambda->Fill(mcPosMotherR);
2937 fHistAsMcSecondaryProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
2938 if (lComeFromSigma) fHistAsMcSecondaryPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
2939 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
2940 switch (lPdgcodeMotherOfMother) {
2941 case 3222 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(0.5); break;// Sigma +
2942 case 3212 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(1.5); break;// Sigma 0
2943 case 3112 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
2944 case 3224 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
2945 case 3214 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
2946 case 3114 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
2947 case 3322 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
2948 case 3312 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
2949 case 3334 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
2950 case -1 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(9.5); break;
2951 default : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(10.5);break;
2957 } // end rapidity condition
2958 }// end PID condition
2960 if (negPiKF) delete negPiKF; negPiKF= NULL;
2961 if (posPiKF) delete posPiKF; posPiKF= NULL;
2962 if (posPKF) delete posPKF; posPKF = NULL;
2963 if (negAPKF) delete negAPKF; negAPKF= NULL;
2967 // if (primaryVtxKF) delete primaryVtxKF;primaryVtxKF=NULL ;
2970 fHistV0Multiplicity->Fill(nv0s);
2971 // fHistV0MultiplicityMI->Fill(nv0sMI);
2973 if (fAnalysisType == "ESD") { if(myPrimaryVertex) delete myPrimaryVertex; }
2979 //________________________________________________________________________
2980 void AliAnalysisTaskPerformanceStrange::Terminate(Option_t *)
2982 // Draw result to the screen
2983 // Called once at the end of the query
2985 TList *cRetrievedList = 0x0;
2986 cRetrievedList = (TList*)GetOutputData(1);
2988 if(!cRetrievedList){
2989 AliWarning("ERROR - AliAnalysisTaskPerformanceStrange: output data container list not available\n"); return;
2993 fHistV0Multiplicity = dynamic_cast<TH1F*> ( cRetrievedList->FindObject("fHistV0Multiplicity"));
2994 if (!fHistV0Multiplicity) {
2995 Printf("ERROR: fHistV0Multiplicity not available");
2999 fHistV0MultiplicityMI = dynamic_cast<TH1F*> ( cRetrievedList->FindObject("fHistV0MultiplicityMI"));
3000 if (!fHistV0MultiplicityMI) {
3001 Printf("ERROR: fHistV0MultiplicityMI not available");
3005 TCanvas *canPerformanceStrange = new TCanvas("AliAnalysisTaskCheckV0","Multiplicity",10,10,510,510);
3006 canPerformanceStrange->Divide(2,1);
3007 if (fHistV0Multiplicity->GetMaximum() > 0.) canPerformanceStrange->cd(1)->SetLogy();
3008 fHistV0Multiplicity->SetMarkerStyle(25);
3009 fHistV0Multiplicity->DrawCopy("E");
3010 if (fHistV0MultiplicityMI->GetMaximum() > 0.) canPerformanceStrange->cd(2)->SetLogy();
3011 fHistV0MultiplicityMI->SetMarkerStyle(24);
3012 fHistV0MultiplicityMI->DrawCopy("E");
3018 //----------------------------------------------------------------------------
3020 Double_t AliAnalysisTaskPerformanceStrange::MyRapidity(Double_t rE, Double_t rPz) const
3022 // Local calculation for rapidity
3023 return 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13));
3025 //----------------------------------------------------------------------------