1 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
3 * Author: The ALICE Off-line Project. *
4 * Contributors are mentioned in the code where appropriate. *
6 * Permission to use, copy, modify and distribute this software and its *
7 * documentation strictly for non-commercial purposes is hereby granted *
8 * without fee, provided that the above copyright notice appears in all *
9 * copies and that both the copyright notice and this permission notice *
10 * appear in the supporting documentation. The authors make no claims *
11 * about the suitability of this software for any purpose. It is *
12 * provided "as is" without express or implied warranty. *
13 **************************************************************************/
15 //--------------------------------------------------------------------------
16 // AliAnalysisTaskPerformanceStrange class
17 // This task is for a performance study of V0 identification.
18 // It works with MC info and ESD tree.
19 // Author: Peter Kalinak pkalinak@cern.ch kalinak@saske.sk
20 //--------------------------------------------------------------------------
22 #include <Riostream.h>
36 #include "AliAnalysisManager.h"
38 #include "AliPhysicsSelection.h"
39 #include "AliBackgroundSelection.h"
41 #include "AliESDVertex.h"
42 #include "AliESDEvent.h"
43 #include "AliESDInputHandler.h"
44 #include "AliESDtrack.h"
46 #include "AliESDtrackCuts.h"
47 #include "AliESDpid.h"
48 #include "AliMultiplicity.h"
50 #include "AliAODEvent.h"
51 #include "AliAODVertex.h"
52 #include "AliAODTrack.h"
54 #include "AliAODMCHeader.h"
55 #include "AliAODInputHandler.h"
57 //#include "AliV0vertexer.h"
59 #include "AliAODMCParticle.h"
61 #include "AliMCEventHandler.h"
62 #include "AliMCEvent.h"
64 #include "AliGenEventHeader.h"
68 #include "AliKFVertex.h"
69 #include "AliVertexerTracks.h"
71 #include "AliAnalysisTaskPerformanceStrange.h"
72 #include "AliAnalysisCentralitySelector.h"
73 #include "AliPIDResponse.h"
74 #include "AliCentrality.h"
78 ClassImp(AliAnalysisTaskPerformanceStrange)
81 //________________________________________________________________________
82 AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange()
83 : 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),fQASelector(0),
85 fHistMCPrimaryVertexX(0),
86 fHistMCPrimaryVertexY(0),
87 fHistMCPrimaryVertexZ(0),
88 fHistPtTracksITSRefit(0),
90 fHistPtTracksPITSRefit(0),
92 fHistMCMultiplicityPrimary(0),
93 fHistMCMultiplicityTracks(0),
95 fHistMCtracksProdRadiusK0s(0),
96 fHistMCtracksProdRadiusLambda(0),
97 fHistMCtracksProdRadiusAntiLambda(0),
98 fHistMCtracksDecayRadiusK0s(0),
99 fHistMCtracksDecayRadiusLambda(0),
100 fHistMCtracksDecayRadiusAntiLambda(0),
103 fHistMCPtAllLambda(0),
104 fHistMCPtAllAntiLambda(0),
107 fHistMCPtAllK0sRap3(0),
108 fHistMCPtAllLambdaRap3(0),
109 fHistMCPtAllAntiLambdaRap3(0),
112 fHistMCProdRadiusK0s(0),
113 fHistMCProdRadiusLambda(0),
114 fHistMCProdRadiusAntiLambda(0),
116 //Decay radius of primary V0s
117 fHistMCPrimDecayRadiusK0s(0),
118 fHistMCPrimDecayRadiusLambda(0),
119 fHistMCPrimDecayRadiusAntiLambda(0),
122 fHistMCRapInPtRangeK0s(0),
124 fHistMCRapInPtRangeLambda(0),
125 fHistMCRapAntiLambda(0),
126 fHistMCRapInPtRangeAntiLambda(0),
128 fHistMCRapInPtRangeXi(0),
130 fHistMCRapInPtRangePhi(0),
131 ////////////////////////////////////////
135 fHistMCPtAntiLambda(0),
139 fHistMCPtLambdaRap3(0),
140 fHistMCPtAntiLambdaRap3(0),
143 ///////////////////////////////////////////
145 fHistMCPtLambdaFromSigma(0),
146 fHistMCPtAntiLambdaFromSigma(0),
147 fHistNTimesRecK0s(0),
148 fHistNTimesRecLambda(0),
149 fHistNTimesRecAntiLambda(0),
150 fHistNTimesRecK0sVsPt(0),
151 fHistNTimesRecLambdaVsPt(0),
152 fHistNTimesRecAntiLambdaVsPt(0),
153 fHistNumberEvents(0),
154 fHistTrackPerEvent(0),
156 fHistTrackletPerEvent(0),
157 fHistMCDaughterTrack(0),
158 fHistSPDPrimaryVertexZ(0),
159 fHistPrimaryVertexX(0),
160 fHistPrimaryVertexY(0),
161 fHistPrimaryVertexZ(0),
162 fHistPrimaryVertexResX(0),
163 fHistPrimaryVertexResY(0),
164 fHistPrimaryVertexResZ(0),
165 fHistPrimaryVertexPosXV0events(0),
166 fHistPrimaryVertexPosYV0events(0),
167 fHistPrimaryVertexPosZV0events(0),
169 ////////////////////////////////////////
171 fHistDcaPosToPrimVertexK0(0),
172 fHistDcaNegToPrimVertexK0(0),
174 fHistDecayLengthV0K0(0),
175 fHistDcaV0DaughtersK0(0),
177 fHistCosPointAngleK0(0),
180 fHistDcaPosToPrimVertexK0vsMassK0(0),
181 fHistDcaNegToPrimVertexK0vsMassK0(0),
182 fHistRadiusV0K0vsMassK0(0),
183 fHistDecayLengthV0K0vsMassK0(0),
184 fHistDcaV0DaughtersK0vsMassK0(0),
185 fHistCosPointAngleK0vsMassK0(0),
187 fHistDcaPosToPrimVertexK0vsMassK0pt1(0),
188 fHistDcaNegToPrimVertexK0vsMassK0pt1(0),
189 fHistRadiusV0K0vsMassK0pt1(0),
190 fHistDecayLengthV0K0vsMassK0pt1(0),
191 fHistDcaV0DaughtersK0vsMassK0pt1(0),
192 fHistCosPointAngleK0vsMassK0pt1(0),
194 fHistDcaPosToPrimVertexK0vsMassK0pt2(0),
195 fHistDcaNegToPrimVertexK0vsMassK0pt2(0),
196 fHistRadiusV0K0vsMassK0pt2(0),
197 fHistDecayLengthV0K0vsMassK0pt2(0),
198 fHistDcaV0DaughtersK0vsMassK0pt2(0),
199 fHistCosPointAngleK0vsMassK0pt2(0),
201 fHistDcaPosToPrimVertexK0vsMassK0pt3(0),
202 fHistDcaNegToPrimVertexK0vsMassK0pt3(0),
203 fHistRadiusV0K0vsMassK0pt3(0),
204 fHistDecayLengthV0K0vsMassK0pt3(0),
205 fHistDcaV0DaughtersK0vsMassK0pt3(0),
206 fHistCosPointAngleK0vsMassK0pt3(0),
208 /////////// Lambda ///////////////////////////
210 fHistDcaPosToPrimVertexL(0),
211 fHistDcaNegToPrimVertexL(0),
213 fHistDecayLengthV0L(0),
214 fHistDcaV0DaughtersL(0),
216 fHistCosPointAngleL(0),
219 fHistDcaPosToPrimVertexLvsMassL(0),
220 fHistDcaNegToPrimVertexLvsMassL(0),
221 fHistRadiusV0LvsMassL(0),
222 fHistDecayLengthV0LvsMassL(0),
223 fHistDcaV0DaughtersLvsMassL(0),
224 fHistCosPointAngleLvsMassL(0),
225 fHistCosPointAngleLvsMassVsPtsigL(0),
226 fHistCosPointAngleLvsMassVsPtbackL(0),
229 fHistDcaPosToPrimVertexLambdaVsMasspt1(0),
230 fHistDcaNegToPrimVertexLambdaVsMasspt1(0),
231 fHistRadiusV0LambdaVsMasspt1(0),
232 fHistDecayLengthV0LambdaVsMasspt1(0),
233 fHistDcaV0DaughtersLambdaVsMasspt1(0),
234 fHistCosPointAngleLambdaVsMasspt1(0),
236 fHistDcaPosToPrimVertexLambdaVsMasspt2(0),
237 fHistDcaNegToPrimVertexLambdaVsMasspt2(0),
238 fHistRadiusV0LambdaVsMasspt2(0),
239 fHistDecayLengthV0LambdaVsMasspt2(0),
240 fHistDcaV0DaughtersLambdaVsMasspt2(0),
241 fHistCosPointAngleLambdaVsMasspt2(0),
243 fHistDcaPosToPrimVertexLambdaVsMasspt3(0),
244 fHistDcaNegToPrimVertexLambdaVsMasspt3(0),
245 fHistRadiusV0LambdaVsMasspt3(0),
246 fHistDecayLengthV0LambdaVsMasspt3(0),
247 fHistDcaV0DaughtersLambdaVsMasspt3(0),
248 fHistCosPointAngleLambdaVsMasspt3(0),
252 /////////Antilambda ///////////////////
253 fHistDcaPosToPrimVertexAntiL(0),
254 fHistDcaNegToPrimVertexAntiL(0),
255 fHistRadiusV0AntiL(0),
256 fHistDecayLengthV0AntiL(0),
257 fHistDcaV0DaughtersAntiL(0),
259 fHistCosPointAngleAntiL(0),
262 fHistDcaPosToPrimVertexAntiLvsMass(0),
263 fHistDcaNegToPrimVertexAntiLvsMass(0),
264 fHistRadiusV0AntiLvsMass(0),
265 fHistDecayLengthV0AntiLvsMass(0),
266 fHistDcaV0DaughtersAntiLvsMass(0),
267 fHistCosPointAngleAntiLvsMass(0),
271 fHistDcaPosToPrimVertexAntiLVsMasspt1(0),
272 fHistDcaNegToPrimVertexAntiLVsMasspt1(0),
273 fHistRadiusV0AntiLVsMasspt1(0),
274 fHistDecayLengthV0AntiLVsMasspt1(0),
275 fHistDcaV0DaughtersAntiLVsMasspt1(0),
276 fHistCosPointAngleAntiLVsMasspt1(0),
278 fHistDcaPosToPrimVertexAntiLVsMasspt2(0),
279 fHistDcaNegToPrimVertexAntiLVsMasspt2(0),
280 fHistRadiusV0AntiLVsMasspt2(0),
281 fHistDecayLengthV0AntiLVsMasspt2(0),
282 fHistDcaV0DaughtersAntiLVsMasspt2(0),
283 fHistCosPointAngleAntiLVsMasspt2(0),
285 fHistDcaPosToPrimVertexAntiLVsMasspt3(0),
286 fHistDcaNegToPrimVertexAntiLVsMasspt3(0),
287 fHistRadiusV0AntiLVsMasspt3(0),
288 fHistDecayLengthV0AntiLVsMasspt3(0),
289 fHistDcaV0DaughtersAntiLVsMasspt3(0),
290 fHistCosPointAngleAntiLVsMasspt3(0),
292 /////////////////////////////////////////
293 fHistV0Multiplicity(0),
296 fHistMassAntiLambda(0),
297 fHistMassVsRadiusK0(0),
298 fHistMassVsRadiusLambda(0),
299 fHistMassVsRadiusAntiLambda(0),
301 ///////////////////////////////////////
303 fHistPtVsMassLambda(0),
304 fHistPtVsMassAntiLambda(0),
307 fHistPtVsMassK0Rap3(0),
308 fHistPtVsMassLambdaRap3(0),
309 fHistPtVsMassAntiLambdaRap3(0),
312 fHistTranscTauVsMassL(0),
313 fHistTranscTauVsMassAntiL(0),
314 fHistTranscTauVsMassK0s(0),
316 // cTau Trans Vs. Mass Rap3
317 fHistTranscTauVsMassLRap3(0),
318 fHistTranscTauVsMassAntiLRap3(0),
319 fHistTranscTauVsMassK0sRap3(0),
321 // cTau Trans Vs Mass Low pt
322 fHistTranscTauVsMassLptLow(0),
323 fHistTranscTauVsMassAntiLptLow(0),
324 fHistTranscTauVsMassK0sptLow(0),
326 // cTau Trans Vs Mass Low pt Rap3
327 fHistTranscTauVsMassLptLowRap3(0),
328 fHistTranscTauVsMassAntiLptLowRap3(0),
329 fHistTranscTauVsMassK0sptLowRap3(0),
332 ////////////////////////////////////////
334 fHistArmenterosPodolanski(0),
335 fHistK0sMassVsLambdaMass(0),
336 fHistTPCsigPLambda(0),
337 fHistTPCsigPAntiLambda(0),
338 fHistNSigmaProton(0),
339 fHistNsigmaPosPionAntiLambda(0),
340 fHistNsigmaNegProtonAntiLambda(0),
341 fHistNsigmaPosProtonLambda(0),
342 fHistNsigmaNegPionLambda(0),
343 fHistNsigmaPosProtonAntiLambda(0),
344 fHistNsigmaNegPionAntiLambda(0),
345 fHistNsigmaPosPionK0(0),
346 fHistNsigmaNegPionK0(0),
348 fHistAsMcRapLambda(0),
349 fHistAsMcRapAntiLambda(0),
351 // pt distribution /////////////////////
353 fHistAsMcPtLambda(0),
354 fHistAsMcPtAntiLambda(0),
357 // Transverse cTau distribution
358 fHistAsMcTranscTauL(0),
359 fHistAsMcTranscTauAntiL(0),
360 fHistAsMcTranscTauK0s(0),
362 fHistAsMcTranscTauLptLow(0),
363 fHistAsMcTranscTauAntiLptLow(0),
364 fHistAsMcTranscTauK0sptLow(0),
367 fHistAsMcTranscTauLptLowRap3(0),
368 fHistAsMcTranscTauAntiLptLowRap3(0),
369 fHistAsMcTranscTauK0sptLowRap3(0),
372 fHistAsMcPtK0Rap3(0),
373 fHistAsMcPtLambdaRap3(0),
374 fHistAsMcPtAntiLambdaRap3(0),
377 /////////////////////////////////////
379 fHistAsMcPtZoomK0(0),
380 fHistAsMcPtZoomLambda(0),
381 fHistAsMcPtZoomAntiLambda(0),
382 fHistAsMcProdRadiusK0(0),
383 fHistAsMcProdRadiusLambda(0),
384 fHistAsMcProdRadiusAntiLambda(0),
385 fHistAsMcProdRadiusXvsYK0s(0),
386 fHistAsMcProdRadiusXvsYLambda(0),
387 fHistAsMcProdRadiusXvsYAntiLambda(0),
389 fHistPidMcMassLambda(0),
390 fHistPidMcMassAntiLambda(0),
393 ///////////////////////////////
396 fHistAsMcMassLambda(0),
397 fHistAsMcMassAntiLambda(0),
400 fHistAsMcMassK0Rap3(0),
401 fHistAsMcMassLambdaRap3(0),
402 fHistAsMcMassAntiLambdaRap3(0),
405 fHistAsMcPtVsMassK0(0),
406 fHistAsMcPtVsMassLambda(0),
407 fHistAsMcPtVsMassAntiLambda(0),
410 fHistAsMcPtVsMassK0Rap3(0),
411 fHistAsMcPtVsMassLambdaRap3(0),
412 fHistAsMcPtVsMassAntiLambdaRap3(0),
414 ///////////////////////////////////////
416 fHistAsMcMassVsRadiusK0(0),
417 fHistAsMcMassVsRadiusLambda(0),
418 fHistAsMcMassVsRadiusAntiLambda(0),
422 fHistAsMcResrVsRadiusK0(0),
423 fHistAsMcReszVsRadiusK0(0),
424 fHistAsMcResxLambda(0),
425 fHistAsMcResyLambda(0),
426 fHistAsMcReszLambda(0),
427 fHistAsMcResrVsRadiusLambda(0),
428 fHistAsMcReszVsRadiusLambda(0),
429 fHistAsMcResxAntiLambda(0),
430 fHistAsMcResyAntiLambda(0),
431 fHistAsMcReszAntiLambda(0),
432 fHistAsMcResrVsRadiusAntiLambda(0),
433 fHistAsMcReszVsRadiusAntiLambda(0),
435 fHistAsMcResPtLambda(0),
436 fHistAsMcResPtAntiLambda(0),
437 fHistAsMcResPtVsRapK0(0),
438 fHistAsMcResPtVsRapLambda(0),
439 fHistAsMcResPtVsRapAntiLambda(0),
440 fHistAsMcResPtVsPtK0(0),
441 fHistAsMcResPtVsPtLambda(0),
442 fHistAsMcResPtVsPtAntiLambda(0),
443 fHistAsMcMotherPdgCodeK0s(0),
444 fHistAsMcMotherPdgCodeLambda(0),
445 fHistAsMcMotherPdgCodeAntiLambda(0),
446 fHistAsMcPtLambdaFromSigma(0),
447 fHistAsMcPtAntiLambdaFromSigma(0),
448 fHistAsMcSecondaryPtVsRapK0s(0),
449 fHistAsMcSecondaryPtVsRapLambda(0),
450 fHistAsMcSecondaryPtVsRapAntiLambda(0),
451 fHistAsMcSecondaryProdRadiusK0s(0),
452 fHistAsMcSecondaryProdRadiusLambda(0),
453 fHistAsMcSecondaryProdRadiusAntiLambda(0),
454 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
455 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
456 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
457 fHistAsMcSecondaryMotherPdgCodeK0s(0),
458 fHistAsMcSecondaryMotherPdgCodeLambda(0),
459 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
460 fHistAsMcSecondaryPtLambdaFromSigma(0),
461 fHistAsMcSecondaryPtAntiLambdaFromSigma(0)
471 //________________________________________________________________________
472 AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange(const char *name)
473 : 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),fQASelector(0),
475 fHistMCPrimaryVertexX(0),
476 fHistMCPrimaryVertexY(0),
477 fHistMCPrimaryVertexZ(0),
478 fHistPtTracksITSRefit(0),
480 fHistPtTracksPITSRefit(0),
482 fHistMCMultiplicityPrimary(0),
483 fHistMCMultiplicityTracks(0),
485 fHistMCtracksProdRadiusK0s(0),
486 fHistMCtracksProdRadiusLambda(0),
487 fHistMCtracksProdRadiusAntiLambda(0),
488 fHistMCtracksDecayRadiusK0s(0),
489 fHistMCtracksDecayRadiusLambda(0),
490 fHistMCtracksDecayRadiusAntiLambda(0),
493 fHistMCPtAllLambda(0),
494 fHistMCPtAllAntiLambda(0),
497 fHistMCPtAllK0sRap3(0),
498 fHistMCPtAllLambdaRap3(0),
499 fHistMCPtAllAntiLambdaRap3(0),
502 fHistMCProdRadiusK0s(0),
503 fHistMCProdRadiusLambda(0),
504 fHistMCProdRadiusAntiLambda(0),
506 // Decay radius of Primary V0s
507 fHistMCPrimDecayRadiusK0s(0),
508 fHistMCPrimDecayRadiusLambda(0),
509 fHistMCPrimDecayRadiusAntiLambda(0),
512 fHistMCRapInPtRangeK0s(0),
514 fHistMCRapInPtRangeLambda(0),
515 fHistMCRapAntiLambda(0),
516 fHistMCRapInPtRangeAntiLambda(0),
518 fHistMCRapInPtRangeXi(0),
520 fHistMCRapInPtRangePhi(0),
521 ////////////////////////////////////////
525 fHistMCPtAntiLambda(0),
529 fHistMCPtLambdaRap3(0),
530 fHistMCPtAntiLambdaRap3(0),
533 ///////////////////////////////////////////
535 fHistMCPtLambdaFromSigma(0),
536 fHistMCPtAntiLambdaFromSigma(0),
537 fHistNTimesRecK0s(0),
538 fHistNTimesRecLambda(0),
539 fHistNTimesRecAntiLambda(0),
540 fHistNTimesRecK0sVsPt(0),
541 fHistNTimesRecLambdaVsPt(0),
542 fHistNTimesRecAntiLambdaVsPt(0),
543 fHistNumberEvents(0),
544 fHistTrackPerEvent(0),
546 fHistTrackletPerEvent(0),
547 fHistMCDaughterTrack(0),
548 fHistSPDPrimaryVertexZ(0),
549 fHistPrimaryVertexX(0),
550 fHistPrimaryVertexY(0),
551 fHistPrimaryVertexZ(0),
552 fHistPrimaryVertexResX(0),
553 fHistPrimaryVertexResY(0),
554 fHistPrimaryVertexResZ(0),
555 fHistPrimaryVertexPosXV0events(0),
556 fHistPrimaryVertexPosYV0events(0),
557 fHistPrimaryVertexPosZV0events(0),
559 ////////////////////////////////////////
561 fHistDcaPosToPrimVertexK0(0),
562 fHistDcaNegToPrimVertexK0(0),
564 fHistDecayLengthV0K0(0),
565 fHistDcaV0DaughtersK0(0),
567 fHistCosPointAngleK0(0),
570 fHistDcaPosToPrimVertexK0vsMassK0(0),
571 fHistDcaNegToPrimVertexK0vsMassK0(0),
572 fHistRadiusV0K0vsMassK0(0),
573 fHistDecayLengthV0K0vsMassK0(0),
574 fHistDcaV0DaughtersK0vsMassK0(0),
575 fHistCosPointAngleK0vsMassK0(0),
577 fHistDcaPosToPrimVertexK0vsMassK0pt1(0),
578 fHistDcaNegToPrimVertexK0vsMassK0pt1(0),
579 fHistRadiusV0K0vsMassK0pt1(0),
580 fHistDecayLengthV0K0vsMassK0pt1(0),
581 fHistDcaV0DaughtersK0vsMassK0pt1(0),
582 fHistCosPointAngleK0vsMassK0pt1(0),
584 fHistDcaPosToPrimVertexK0vsMassK0pt2(0),
585 fHistDcaNegToPrimVertexK0vsMassK0pt2(0),
586 fHistRadiusV0K0vsMassK0pt2(0),
587 fHistDecayLengthV0K0vsMassK0pt2(0),
588 fHistDcaV0DaughtersK0vsMassK0pt2(0),
589 fHistCosPointAngleK0vsMassK0pt2(0),
591 fHistDcaPosToPrimVertexK0vsMassK0pt3(0),
592 fHistDcaNegToPrimVertexK0vsMassK0pt3(0),
593 fHistRadiusV0K0vsMassK0pt3(0),
594 fHistDecayLengthV0K0vsMassK0pt3(0),
595 fHistDcaV0DaughtersK0vsMassK0pt3(0),
596 fHistCosPointAngleK0vsMassK0pt3(0),
598 /////////// Lambda ///////////////////////////
600 fHistDcaPosToPrimVertexL(0),
601 fHistDcaNegToPrimVertexL(0),
603 fHistDecayLengthV0L(0),
604 fHistDcaV0DaughtersL(0),
606 fHistCosPointAngleL(0),
610 fHistDcaPosToPrimVertexLvsMassL(0),
611 fHistDcaNegToPrimVertexLvsMassL(0),
612 fHistRadiusV0LvsMassL(0),
613 fHistDecayLengthV0LvsMassL(0),
614 fHistDcaV0DaughtersLvsMassL(0),
615 fHistCosPointAngleLvsMassL(0),
616 fHistCosPointAngleLvsMassVsPtsigL(0),
617 fHistCosPointAngleLvsMassVsPtbackL(0),
620 fHistDcaPosToPrimVertexLambdaVsMasspt1(0),
621 fHistDcaNegToPrimVertexLambdaVsMasspt1(0),
622 fHistRadiusV0LambdaVsMasspt1(0),
623 fHistDecayLengthV0LambdaVsMasspt1(0),
624 fHistDcaV0DaughtersLambdaVsMasspt1(0),
625 fHistCosPointAngleLambdaVsMasspt1(0),
627 fHistDcaPosToPrimVertexLambdaVsMasspt2(0),
628 fHistDcaNegToPrimVertexLambdaVsMasspt2(0),
629 fHistRadiusV0LambdaVsMasspt2(0),
630 fHistDecayLengthV0LambdaVsMasspt2(0),
631 fHistDcaV0DaughtersLambdaVsMasspt2(0),
632 fHistCosPointAngleLambdaVsMasspt2(0),
634 fHistDcaPosToPrimVertexLambdaVsMasspt3(0),
635 fHistDcaNegToPrimVertexLambdaVsMasspt3(0),
636 fHistRadiusV0LambdaVsMasspt3(0),
637 fHistDecayLengthV0LambdaVsMasspt3(0),
638 fHistDcaV0DaughtersLambdaVsMasspt3(0),
639 fHistCosPointAngleLambdaVsMasspt3(0),
643 /////////Antilambda ///////////////////
644 fHistDcaPosToPrimVertexAntiL(0),
645 fHistDcaNegToPrimVertexAntiL(0),
646 fHistRadiusV0AntiL(0),
647 fHistDecayLengthV0AntiL(0),
648 fHistDcaV0DaughtersAntiL(0),
650 fHistCosPointAngleAntiL(0),
653 fHistDcaPosToPrimVertexAntiLvsMass(0),
654 fHistDcaNegToPrimVertexAntiLvsMass(0),
655 fHistRadiusV0AntiLvsMass(0),
656 fHistDecayLengthV0AntiLvsMass(0),
657 fHistDcaV0DaughtersAntiLvsMass(0),
658 fHistCosPointAngleAntiLvsMass(0),
662 fHistDcaPosToPrimVertexAntiLVsMasspt1(0),
663 fHistDcaNegToPrimVertexAntiLVsMasspt1(0),
664 fHistRadiusV0AntiLVsMasspt1(0),
665 fHistDecayLengthV0AntiLVsMasspt1(0),
666 fHistDcaV0DaughtersAntiLVsMasspt1(0),
667 fHistCosPointAngleAntiLVsMasspt1(0),
669 fHistDcaPosToPrimVertexAntiLVsMasspt2(0),
670 fHistDcaNegToPrimVertexAntiLVsMasspt2(0),
671 fHistRadiusV0AntiLVsMasspt2(0),
672 fHistDecayLengthV0AntiLVsMasspt2(0),
673 fHistDcaV0DaughtersAntiLVsMasspt2(0),
674 fHistCosPointAngleAntiLVsMasspt2(0),
676 fHistDcaPosToPrimVertexAntiLVsMasspt3(0),
677 fHistDcaNegToPrimVertexAntiLVsMasspt3(0),
678 fHistRadiusV0AntiLVsMasspt3(0),
679 fHistDecayLengthV0AntiLVsMasspt3(0),
680 fHistDcaV0DaughtersAntiLVsMasspt3(0),
681 fHistCosPointAngleAntiLVsMasspt3(0),
683 /////////////////////////////////////////
684 fHistV0Multiplicity(0),
687 fHistMassAntiLambda(0),
688 fHistMassVsRadiusK0(0),
689 fHistMassVsRadiusLambda(0),
690 fHistMassVsRadiusAntiLambda(0),
692 ///////////////////////////////////////
694 fHistPtVsMassLambda(0),
695 fHistPtVsMassAntiLambda(0),
698 fHistPtVsMassK0Rap3(0),
699 fHistPtVsMassLambdaRap3(0),
700 fHistPtVsMassAntiLambdaRap3(0),
703 fHistTranscTauVsMassL(0),
704 fHistTranscTauVsMassAntiL(0),
705 fHistTranscTauVsMassK0s(0),
707 // cTau Trans Vs. Mass Rap3
708 fHistTranscTauVsMassLRap3(0),
709 fHistTranscTauVsMassAntiLRap3(0),
710 fHistTranscTauVsMassK0sRap3(0),
712 // cTau Trans Vs Mass Low pt
713 fHistTranscTauVsMassLptLow(0),
714 fHistTranscTauVsMassAntiLptLow(0),
715 fHistTranscTauVsMassK0sptLow(0),
717 // cTau Trans Vs Mass Low pt Rap3
718 fHistTranscTauVsMassLptLowRap3(0),
719 fHistTranscTauVsMassAntiLptLowRap3(0),
720 fHistTranscTauVsMassK0sptLowRap3(0),
722 ////////////////////////////////////////
723 fHistArmenterosPodolanski(0),
724 fHistK0sMassVsLambdaMass(0),
725 fHistTPCsigPLambda(0),
726 fHistTPCsigPAntiLambda(0),
727 fHistNSigmaProton(0),
728 fHistNsigmaPosPionAntiLambda(0),
729 fHistNsigmaNegProtonAntiLambda(0),
730 fHistNsigmaPosProtonLambda(0),
731 fHistNsigmaNegPionLambda(0),
732 fHistNsigmaPosProtonAntiLambda(0),
733 fHistNsigmaNegPionAntiLambda(0),
734 fHistNsigmaPosPionK0(0),
735 fHistNsigmaNegPionK0(0),
737 fHistAsMcRapLambda(0),
738 fHistAsMcRapAntiLambda(0),
740 /// Pt distribution /////////////////////
742 fHistAsMcPtLambda(0),
743 fHistAsMcPtAntiLambda(0),
746 fHistAsMcTranscTauL(0),
747 fHistAsMcTranscTauAntiL(0),
748 fHistAsMcTranscTauK0s(0),
751 fHistAsMcTranscTauLRap3(0),
752 fHistAsMcTranscTauAntiLRap3(0),
753 fHistAsMcTranscTauK0sRap3(0),
756 fHistAsMcTranscTauLptLow(0),
757 fHistAsMcTranscTauAntiLptLow(0),
758 fHistAsMcTranscTauK0sptLow(0),
761 fHistAsMcTranscTauLptLowRap3(0),
762 fHistAsMcTranscTauAntiLptLowRap3(0),
763 fHistAsMcTranscTauK0sptLowRap3(0),
767 fHistAsMcPtK0Rap3(0),
768 fHistAsMcPtLambdaRap3(0),
769 fHistAsMcPtAntiLambdaRap3(0),
772 /////////////////////////////////////
774 fHistAsMcPtZoomK0(0),
775 fHistAsMcPtZoomLambda(0),
776 fHistAsMcPtZoomAntiLambda(0),
777 fHistAsMcProdRadiusK0(0),
778 fHistAsMcProdRadiusLambda(0),
779 fHistAsMcProdRadiusAntiLambda(0),
780 fHistAsMcProdRadiusXvsYK0s(0),
781 fHistAsMcProdRadiusXvsYLambda(0),
782 fHistAsMcProdRadiusXvsYAntiLambda(0),
784 fHistPidMcMassLambda(0),
785 fHistPidMcMassAntiLambda(0),
788 ///////////////////////////////
791 fHistAsMcMassLambda(0),
792 fHistAsMcMassAntiLambda(0),
795 fHistAsMcMassK0Rap3(0),
796 fHistAsMcMassLambdaRap3(0),
797 fHistAsMcMassAntiLambdaRap3(0),
800 fHistAsMcPtVsMassK0(0),
801 fHistAsMcPtVsMassLambda(0),
802 fHistAsMcPtVsMassAntiLambda(0),
805 fHistAsMcPtVsMassK0Rap3(0),
806 fHistAsMcPtVsMassLambdaRap3(0),
807 fHistAsMcPtVsMassAntiLambdaRap3(0),
809 ///////////////////////////////////////
811 fHistAsMcMassVsRadiusK0(0),
812 fHistAsMcMassVsRadiusLambda(0),
813 fHistAsMcMassVsRadiusAntiLambda(0),
817 fHistAsMcResrVsRadiusK0(0),
818 fHistAsMcReszVsRadiusK0(0),
819 fHistAsMcResxLambda(0),
820 fHistAsMcResyLambda(0),
821 fHistAsMcReszLambda(0),
822 fHistAsMcResrVsRadiusLambda(0),
823 fHistAsMcReszVsRadiusLambda(0),
824 fHistAsMcResxAntiLambda(0),
825 fHistAsMcResyAntiLambda(0),
826 fHistAsMcReszAntiLambda(0),
827 fHistAsMcResrVsRadiusAntiLambda(0),
828 fHistAsMcReszVsRadiusAntiLambda(0),
830 fHistAsMcResPtLambda(0),
831 fHistAsMcResPtAntiLambda(0),
832 fHistAsMcResPtVsRapK0(0),
833 fHistAsMcResPtVsRapLambda(0),
834 fHistAsMcResPtVsRapAntiLambda(0),
835 fHistAsMcResPtVsPtK0(0),
836 fHistAsMcResPtVsPtLambda(0),
837 fHistAsMcResPtVsPtAntiLambda(0),
838 fHistAsMcMotherPdgCodeK0s(0),
839 fHistAsMcMotherPdgCodeLambda(0),
840 fHistAsMcMotherPdgCodeAntiLambda(0),
841 fHistAsMcPtLambdaFromSigma(0),
842 fHistAsMcPtAntiLambdaFromSigma(0),
843 fHistAsMcSecondaryPtVsRapK0s(0),
844 fHistAsMcSecondaryPtVsRapLambda(0),
845 fHistAsMcSecondaryPtVsRapAntiLambda(0),
846 fHistAsMcSecondaryProdRadiusK0s(0),
847 fHistAsMcSecondaryProdRadiusLambda(0),
848 fHistAsMcSecondaryProdRadiusAntiLambda(0),
849 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
850 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
851 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
852 fHistAsMcSecondaryMotherPdgCodeK0s(0),
853 fHistAsMcSecondaryMotherPdgCodeLambda(0),
854 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
855 fHistAsMcSecondaryPtLambdaFromSigma(0),
856 fHistAsMcSecondaryPtAntiLambdaFromSigma(0)
861 // Define output slots only here
862 // Output slot #1 writes into a TList container
863 DefineOutput(1, TList::Class());
864 DefineOutput(2, AliAnalysisCentralitySelector::Class());
865 DefineOutput(3, AliESDtrackCuts::Class());
867 AliAnalysisTaskPerformanceStrange::~AliAnalysisTaskPerformanceStrange() {
871 if (fListHist && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fListHist; fListHist = 0x0; }
872 if (fCentrSelector && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fCentrSelector; fCentrSelector = 0x0; }
873 if (fTracksCuts && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fTracksCuts; fTracksCuts = 0x0; }
877 //________________________________________________________________________
878 void AliAnalysisTaskPerformanceStrange::UserCreateOutputObjects()
883 //*******************
884 fListHist = new TList();
885 fListHist->SetOwner();
886 //fListHistCuts = new TList();
887 //fListHistCuts->SetOwner();
889 // Bo: tbd: condition before allocation (i.e. if (!fHistMCMultiplicityPrimary){...} for each histo...
896 fHistMCPrimaryVertexX = new TH1F("h1MCPrimaryVertexX", "MC Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
897 fListHist->Add(fHistMCPrimaryVertexX);
899 fHistMCPrimaryVertexY = new TH1F("h1MCPrimaryVertexY", "MC Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
900 fListHist->Add(fHistMCPrimaryVertexY);
902 fHistMCPrimaryVertexZ = new TH1F("h1MCPrimaryVertexZ", "MC Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
903 fListHist->Add(fHistMCPrimaryVertexZ);
905 // Pt track distribution
906 fHistPtTracksITSRefit = new TH1F("h1PtTracksITSRefit", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
907 fListHist->Add(fHistPtTracksITSRefit);
909 fHistPtTracks = new TH1F("h1PtTracks", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
910 fListHist->Add(fHistPtTracks);
912 // Pt track distribution
913 fHistPtTracksPITSRefit = new TH1F("h1PtTracksPITSRefit", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
914 fListHist->Add(fHistPtTracksPITSRefit);
916 fHistPtTracksP = new TH1F("h1PtTracksP", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
917 fListHist->Add(fHistPtTracksP);
920 fHistMCMultiplicityPrimary = new TH1F("h1MCMultiplicityPrimary", "MC Primary Particles;NPrimary;Count", 201, -0.5, 200.5);
921 fListHist->Add(fHistMCMultiplicityPrimary);
923 fHistMCMultiplicityTracks = new TH1F("h1MCMultiplicityTracks", "MC Tracks;Ntracks;Count", 201, -0.5, 200.5);
924 fListHist->Add(fHistMCMultiplicityTracks);
926 // Production Radius of non-primary particles:
927 fHistMCtracksProdRadiusK0s = new TH2F("h2MCtracksProdRadiusK0s","Non-primary MC K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
928 fListHist->Add(fHistMCtracksProdRadiusK0s);
930 fHistMCtracksProdRadiusLambda = new TH2F("h2MCtracksProdRadiusLambda","Non-primary MC #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
931 fListHist->Add(fHistMCtracksProdRadiusLambda);
933 fHistMCtracksProdRadiusAntiLambda = new TH2F("h2MCtracksProdRadiusAntiLambda","Non-primary MC #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
934 fListHist->Add(fHistMCtracksProdRadiusAntiLambda);
936 // Decay Radius of non-primary particles:
937 fHistMCtracksDecayRadiusK0s = new TH1F("h1MCtracksDecayRadiusK0s","Non-primary MC K^{0} Decay Radius;r (cm)",100,0,100);
938 fListHist->Add(fHistMCtracksDecayRadiusK0s);
940 fHistMCtracksDecayRadiusLambda = new TH1F("h1MCtracksDecayRadiusLambda","Non-primary MC #Lambda^{0} Decay Radius;r (cm)",100,0,100);
941 fListHist->Add(fHistMCtracksDecayRadiusLambda);
943 fHistMCtracksDecayRadiusAntiLambda = new TH1F("h1MCtracksDecayRadiusAntiLambda","Non-primary #bar{#Lambda}^{0} Decay Radius;r (cm)",100,0,100);
944 fListHist->Add(fHistMCtracksDecayRadiusAntiLambda);
946 // Pt Distribution of non-primary particles:
947 fHistMCPtAllK0s = new TH1F("h1MCPtAllK0s", "Non-primary MC K^{0};p_{t} (GeV/c);Counts",240,0,12);
948 fListHist->Add(fHistMCPtAllK0s);
950 fHistMCPtAllLambda = new TH1F("h1MCPtAllLambda", "Non-primary MC #Lambda^{0};p_{t} (GeV/c);Counts",240,0,12);
951 fListHist->Add(fHistMCPtAllLambda);
953 fHistMCPtAllAntiLambda = new TH1F("h1MCPtAllAntiLambda", "Non-primary MC #bar{#Lambda}^{0};p_{t} (GeV/c);Counts",240,0,12);
954 fListHist->Add(fHistMCPtAllAntiLambda);
957 // Pt Distribution of non-primary particles Rap3:
958 fHistMCPtAllK0sRap3 = new TH1F("h1MCPtAllK0sRap3", "Non-primary MC K^{0};p_{t} (GeV/c);Counts",240,0,12);
959 fListHist->Add(fHistMCPtAllK0sRap3);
961 fHistMCPtAllLambdaRap3 = new TH1F("h1MCPtAllLambdaRap3", "Non-primary MC #LambdaRap3^{0};p_{t} (GeV/c);Counts",240,0,12);
962 fListHist->Add(fHistMCPtAllLambdaRap3);
964 fHistMCPtAllAntiLambdaRap3 = new TH1F("h1MCPtAllAntiLambdaRap3", "Non-primary MC #bar{#LambdaRap3}^{0};p_{t} (GeV/c);Counts",240,0,12);
965 fListHist->Add(fHistMCPtAllAntiLambdaRap3);
969 fHistMCProdRadiusK0s = new TH1F("h1MCProdRadiusK0s", "MC K^{0} Production Radius;r (cm);Count", 400, -2, 2);
970 fListHist->Add(fHistMCProdRadiusK0s);
972 fHistMCProdRadiusLambda = new TH1F("h1MCProdRadiusLambda", "MC #Lambda^{0} Production Radius;r (cm);Count", 400, -2, 2);
973 fListHist->Add(fHistMCProdRadiusLambda);
975 fHistMCProdRadiusAntiLambda = new TH1F("h1MCProdRadiusAntiLambda", "MC #bar{#Lambda}^{0} Production Radius;r (cm);Count", 400, -2, 2);
976 fListHist->Add(fHistMCProdRadiusAntiLambda);
978 // Decay radius of primary V0s
979 fHistMCPrimDecayRadiusK0s = new TH1F("fHistMCPrimDecayRadiusK0s", "MC K^{0} Decay Radius;r (cm);Count", 100, 0, 100);
980 fListHist->Add(fHistMCPrimDecayRadiusK0s);
982 fHistMCPrimDecayRadiusLambda = new TH1F("fHistMCPrimDecayRadiusLambda", "MC #Lambda^{0} Decay Radius;r (cm);Count", 100, 0, 100);
983 fListHist->Add(fHistMCPrimDecayRadiusLambda);
985 fHistMCPrimDecayRadiusAntiLambda = new TH1F("fHistMCPrimDecayRadiusAntiLambda", "MC #bar{#Lambda}^{0} Decay Radius;r (cm);Count", 100, 0, 100);
986 fListHist->Add(fHistMCPrimDecayRadiusAntiLambda);
988 // Rapidity distribution:
989 fHistMCRapK0s = new TH1F("h1MCRapK0s", "K^{0};y",160,-4,4);
990 fListHist->Add(fHistMCRapK0s);
992 fHistMCRapInPtRangeK0s = new TH1F("h1MCRapInPtRangeK0s", "K^{0};y",160,-4,4);
993 fListHist->Add(fHistMCRapInPtRangeK0s);
995 fHistMCRapLambda = new TH1F("h1MCRapLambda", "#Lambda;y",160,-4,4);
996 fListHist->Add(fHistMCRapLambda);
998 fHistMCRapInPtRangeLambda = new TH1F("h1MCRapInPtRangeLambda", "#Lambda;y",160,-4,4);
999 fListHist->Add(fHistMCRapInPtRangeLambda);
1001 fHistMCRapAntiLambda = new TH1F("h1MCRapAntiLambda", "#bar{#Lambda};y",160,-4,4);
1002 fListHist->Add(fHistMCRapAntiLambda);
1004 fHistMCRapInPtRangeAntiLambda = new TH1F("h1MCRapInPtRangeAntiLambda", "#bar{#Lambda};y",160,-4,4);
1005 fListHist->Add(fHistMCRapInPtRangeAntiLambda);
1007 fHistMCRapXi = new TH1F("h1MCRapXi", "Xi;y",160,-4,4);
1008 fListHist->Add(fHistMCRapXi);
1010 fHistMCRapInPtRangeXi = new TH1F("h1MCRapInPtRangeXi", "Xi;y",160,-4,4);
1011 fListHist->Add(fHistMCRapInPtRangeXi);
1013 fHistMCRapPhi = new TH1F("h1MCRapPhi", "Phi;y",160,-4,4);
1014 fListHist->Add(fHistMCRapPhi);
1016 fHistMCRapInPtRangePhi = new TH1F("h1MCRapInPtRangePhi", "Phi;y",160,-4,4);
1017 fListHist->Add(fHistMCRapInPtRangePhi);
1020 fHistMCPtK0s = new TH1F("h1MCPtK0s", "K^{0};p_{t} (GeV/c)",240,0,12);
1021 fListHist->Add(fHistMCPtK0s);
1023 fHistMCPtLambda = new TH1F("h1MCPtLambda", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
1024 fListHist->Add(fHistMCPtLambda);
1026 fHistMCPtAntiLambda = new TH1F("h1MCPtAntiLambda", "#AntiLambda^{0};p_{t} (GeV/c)",240,0,12);
1027 fListHist->Add(fHistMCPtAntiLambda);
1030 // Pt distribution Rap3:
1031 fHistMCPtK0sRap3 = new TH1F("h1MCPtK0sRap3", "K^{0};p_{t} (GeV/c)",240,0,12);
1032 fListHist->Add(fHistMCPtK0sRap3);
1034 fHistMCPtLambdaRap3 = new TH1F("h1MCPtLambdaRap3", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
1035 fListHist->Add(fHistMCPtLambdaRap3);
1037 fHistMCPtAntiLambdaRap3 = new TH1F("h1MCPtAntiLambdaRap3", "#AntiLambda^{0};p_{t} (GeV/c)",240,0,12);
1038 fListHist->Add(fHistMCPtAntiLambdaRap3);
1041 // Pt distribution of Lambda coming from Sigma decay
1042 fHistMCPtLambdaFromSigma = new TH1F("h1MCPtLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
1043 fListHist->Add(fHistMCPtLambdaFromSigma);
1045 fHistMCPtAntiLambdaFromSigma = new TH1F("h1MCPtAntiLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
1046 fListHist->Add(fHistMCPtAntiLambdaFromSigma);
1048 // Multiple reconstruction studies
1049 fHistNTimesRecK0s = new TH1F("h1NTimesRecK0s","number of times a K0s is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
1050 fListHist->Add(fHistNTimesRecK0s);
1052 fHistNTimesRecLambda = new TH1F("h1NTimesRecLambda","number of times a Lambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
1053 fListHist->Add(fHistNTimesRecLambda);
1055 fHistNTimesRecAntiLambda = new TH1F("h1NTimesRecAntiLambda","number of times an AntiLambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
1056 fListHist->Add(fHistNTimesRecAntiLambda);
1058 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);
1059 fListHist->Add(fHistNTimesRecK0sVsPt);
1061 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);
1062 fListHist->Add(fHistNTimesRecLambdaVsPt);
1064 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);
1065 fListHist->Add(fHistNTimesRecAntiLambdaVsPt);
1067 //***********************************
1068 // Reconstructed particles histograms
1069 //***********************************
1071 // Number of events;
1072 fHistNumberEvents = new TH1F("h1NumberEvents", "Number of events; index;Number of Events",10,0,10);
1073 fListHist->Add(fHistNumberEvents);
1076 fHistTrackPerEvent = new TH1F("h1TrackPerEvent", "Tracks per event;Number of Tracks;Number of Events",10000,0,10000);
1077 fListHist->Add(fHistTrackPerEvent);
1079 fHistTPCMult = new TH1F("h1HistTPCMult", "TPC tracks per event;Number of Tracks;Number of Events",10000,0,10000);
1080 fListHist->Add(fHistTPCMult);
1083 fHistTrackletPerEvent = new TH1F("h1TrackletPerEvent", "Number of tracklets;Number of tracklets per events;Number of events",1000,0,1000);
1084 fListHist->Add(fHistTrackletPerEvent);
1086 fHistMCDaughterTrack = new TH1F("h1MCDaughterTrack","Distribution of mc id for daughters;id tags;Counts",15,0,15);
1087 fListHist->Add(fHistMCDaughterTrack);
1089 fHistTPCTracks = new TH1F("h1TPCTracks","Distribution of TPC tracks;Number of TPC tracks:Number of events",1000,0,10000);
1090 fListHist->Add(fHistTPCTracks);
1093 fHistSPDPrimaryVertexZ = new TH1F("h1SPDPrimaryVertexZ", "SPD Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
1094 fListHist->Add(fHistSPDPrimaryVertexZ);
1096 fHistPrimaryVertexX = new TH1F("h1PrimaryVertexX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
1097 fListHist->Add(fHistPrimaryVertexX);
1099 fHistPrimaryVertexY = new TH1F("h1PrimaryVertexY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
1100 fListHist->Add(fHistPrimaryVertexY);
1102 fHistPrimaryVertexZ = new TH1F("h1PrimaryVertexZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
1103 fListHist->Add(fHistPrimaryVertexZ);
1106 // Primary vertex resolution
1107 fHistPrimaryVertexResX = new TH1F("h1PrimaryVertexResX", "Primary Vertex Resolution X;Primary Vertex Resolution X (cm);Events",100,-0.25,0.25);
1108 fListHist->Add(fHistPrimaryVertexResX);
1110 fHistPrimaryVertexResY = new TH1F("h1PrimaryVertexResY", "Primary Vertex Resolution Y;Primary Vertex Resolution Y (cm);Events",100,-0.25,0.25);
1111 fListHist->Add(fHistPrimaryVertexResY);
1113 fHistPrimaryVertexResZ = new TH1F("h1PrimaryVertexResZ", "Primary Vertex Resolution Z;Primary Vertex Resolution Z (cm);Events",200,-0.25,0.25);
1114 fListHist->Add(fHistPrimaryVertexResZ);
1117 // Primary Vertex in events with V0 candidates:
1118 fHistPrimaryVertexPosXV0events = new TH1F("h1PrimaryVertexPosXV0events", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
1119 fListHist->Add(fHistPrimaryVertexPosXV0events);
1120 fHistPrimaryVertexPosYV0events = new TH1F("h1PrimaryVertexPosYV0events", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
1121 fListHist->Add(fHistPrimaryVertexPosYV0events);
1122 fHistPrimaryVertexPosZV0events = new TH1F("h1PrimaryVertexPosZV0events", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20.0,20.0);
1123 fListHist->Add(fHistPrimaryVertexPosZV0events);
1126 fHistDaughterPt = new TH2F("h2DaughterPt", "Daughter Pt;Positive Daughter Pt; Negative Daughter Pt",200,0,2,200,0,2);
1127 fListHist->Add(fHistDaughterPt);
1129 //////K0s///////////////// 2D histos: cut vs on fly status////
1131 fHistDcaPosToPrimVertexK0 = new TH2F("h2DcaPosToPrimVertexK0", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1132 fListHist->Add(fHistDcaPosToPrimVertexK0);
1134 fHistDcaNegToPrimVertexK0 = new TH2F("h2DcaNegToPrimVertexK0", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1135 fListHist->Add(fHistDcaNegToPrimVertexK0);
1138 fHistRadiusV0K0 = new TH2F("h2RadiusV0K0", "Radius;Radius(cm);Status",500,0,500,2,-0.5,1.5);
1139 fListHist->Add(fHistRadiusV0K0);
1141 fHistDecayLengthV0K0 = new TH2F("h2DecayLengthV0K0", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1142 fListHist->Add(fHistDecayLengthV0K0);
1144 fHistDcaV0DaughtersK0 = new TH2F("h2DcaV0DaughtersK0", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1145 fListHist->Add(fHistDcaV0DaughtersK0);
1147 fHistChi2K0 = new TH2F("h2Chi2K0", "V0s chi2;chi2;Status", 1000, 0, 0.1,2,-0.5,1.5);
1148 fListHist->Add(fHistChi2K0);
1150 fHistCosPointAngleK0 = new TH2F("h2CosPointAngleK0", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1151 fListHist->Add(fHistCosPointAngleK0);
1154 ////////////K0s///////////////// 2D histos: cut vs mass////
1157 fHistDcaPosToPrimVertexK0vsMassK0 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1158 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0);
1160 fHistDcaNegToPrimVertexK0vsMassK0 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1161 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0);
1164 fHistRadiusV0K0vsMassK0 = new TH2F("h2RadiusV0K0vsMassK0", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1165 fListHist->Add(fHistRadiusV0K0vsMassK0);
1167 fHistDecayLengthV0K0vsMassK0 = new TH2F("h2DecayLengthV0K0vsMassK0", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
1168 fListHist->Add(fHistDecayLengthV0K0vsMassK0);
1170 fHistDcaV0DaughtersK0vsMassK0 = new TH2F("h2DcaV0DaughtersK0vsMassK0", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1171 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0);
1174 fHistCosPointAngleK0vsMassK0 = new TH2F("h2CosPointAngleK0vsMassK0", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1175 fListHist->Add(fHistCosPointAngleK0vsMassK0);
1178 fHistDcaPosToPrimVertexK0vsMassK0pt1 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1179 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt1);
1181 fHistDcaNegToPrimVertexK0vsMassK0pt1 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1182 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt1);
1184 fHistRadiusV0K0vsMassK0pt1 = new TH2F("h2RadiusV0K0vsMassK0pt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1185 fListHist->Add(fHistRadiusV0K0vsMassK0pt1);
1187 fHistDecayLengthV0K0vsMassK0pt1 = new TH2F("h2DecayLengthV0K0vsMassK0pt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,200,0.4,0.6);
1188 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt1);
1190 fHistDcaV0DaughtersK0vsMassK0pt1 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1191 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt1);
1193 fHistCosPointAngleK0vsMassK0pt1 = new TH2F("h2CosPointAngleK0vsMassK0pt1", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1194 fListHist->Add(fHistCosPointAngleK0vsMassK0pt1);
1197 fHistDcaPosToPrimVertexK0vsMassK0pt2 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1198 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt2);
1200 fHistDcaNegToPrimVertexK0vsMassK0pt2 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1201 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt2);
1203 fHistRadiusV0K0vsMassK0pt2 = new TH2F("h2RadiusV0K0vsMassK0pt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1204 fListHist->Add(fHistRadiusV0K0vsMassK0pt2);
1206 fHistDecayLengthV0K0vsMassK0pt2 = new TH2F("h2DecayLengthV0K0vsMassK0pt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
1207 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt2);
1209 fHistDcaV0DaughtersK0vsMassK0pt2 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1210 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt2);
1212 fHistCosPointAngleK0vsMassK0pt2 = new TH2F("h2CosPointAngleK0vsMassK0pt2", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1213 fListHist->Add(fHistCosPointAngleK0vsMassK0pt2);
1216 fHistDcaPosToPrimVertexK0vsMassK0pt3 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1217 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt3);
1219 fHistDcaNegToPrimVertexK0vsMassK0pt3 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1220 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt3);
1222 fHistRadiusV0K0vsMassK0pt3 = new TH2F("h2RadiusV0K0vsMassK0pt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1223 fListHist->Add(fHistRadiusV0K0vsMassK0pt3);
1225 fHistDecayLengthV0K0vsMassK0pt3 = new TH2F("h2DecayLengthV0K0vsMassK0pt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
1226 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt3);
1228 fHistDcaV0DaughtersK0vsMassK0pt3 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1229 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt3);
1231 fHistCosPointAngleK0vsMassK0pt3 = new TH2F("h2CosPointAngleK0vsMassK0pt3", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1232 fListHist->Add(fHistCosPointAngleK0vsMassK0pt3);
1233 } //end QA condition
1234 //////////Lambda////////////// 2D histos: cut vs on fly status////
1236 fHistDcaPosToPrimVertexL = new TH2F("h2DcaPosToPrimVertexL", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1237 fListHist->Add(fHistDcaPosToPrimVertexL);
1239 fHistDcaNegToPrimVertexL = new TH2F("h2DcaNegToPrimVertexL", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1240 fListHist->Add(fHistDcaNegToPrimVertexL);
1242 fHistRadiusV0L = new TH2F("h2RadiusV0L", "Radius;Radius(cm);Status",100,0,110,2,-0.5,1.5);
1243 fListHist->Add(fHistRadiusV0L);
1245 fHistDecayLengthV0L = new TH2F("h2DecayLengthV0L", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1246 fListHist->Add(fHistDecayLengthV0L);
1248 fHistDcaV0DaughtersL = new TH2F("h2DcaV0DaughtersL", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1249 fListHist->Add(fHistDcaV0DaughtersL);
1251 fHistChi2L = new TH2F("h2Chi2L", "V0s chi2;chi2;Status", 100, 0, 0.10,2,-0.5,1.5);
1252 fListHist->Add(fHistChi2L);
1254 fHistCosPointAngleL = new TH2F("h2CosPointAngleL", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1255 fListHist->Add(fHistCosPointAngleL);
1257 //////////Lambda////////////// 2D histos: cut vs mass////
1258 fHistDcaPosToPrimVertexLvsMassL = new TH2F("h2DcaPosToPrimVertexLvsMassL", "Positive V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1259 fListHist->Add(fHistDcaPosToPrimVertexLvsMassL);
1261 fHistDcaNegToPrimVertexLvsMassL = new TH2F("h2DcaNegToPrimVertexLvsMassL", "Negative V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1262 fListHist->Add(fHistDcaNegToPrimVertexLvsMassL);
1265 fHistRadiusV0LvsMassL = new TH2F("h2RadiusV0LvsMassL", "Radius;Radius(cm);Status",110,0,110,140, 1.06, 1.2);
1266 fListHist->Add(fHistRadiusV0LvsMassL);
1268 fHistDecayLengthV0LvsMassL = new TH2F("h2DecayLengthV0LvsMassL", "V0s decay Length;decay length(cm);Status", 120, 0, 120,140, 1.06, 1.2);
1269 fListHist->Add(fHistDecayLengthV0LvsMassL);
1271 fHistDcaV0DaughtersLvsMassL = new TH2F("h2DcaV0DaughtersLvsMassL", "DCA between daughters;dca(cm);Status", 110, 0, 1.1,140, 1.06, 1.2);
1272 fListHist->Add(fHistDcaV0DaughtersLvsMassL);
1274 fHistCosPointAngleLvsMassL = new TH2F("h2CosPointAngleLvsMassL", "Cosine of V0's pointing angle", 200,0.997,1.007,140, 1.06, 1.2);
1275 fListHist->Add(fHistCosPointAngleLvsMassL);
1277 fHistCosPointAngleLvsMassVsPtsigL = new TH3F("h3McCosPointAngleLvsMassVsPtsigL", "Cosine of V0's pointing angle",3,0,12, 2,00.997,1.007,140, 1.06, 1.2);
1278 fListHist->Add(fHistCosPointAngleLvsMassVsPtsigL);
1279 fHistCosPointAngleLvsMassVsPtbackL = new TH3F("h3McCosPointAngleLvsMassVsPtbackL", "Cosine of V0's pointing angle",3,0,12, 20,0.997,1.007,140, 1.06, 1.2);
1280 fListHist->Add(fHistCosPointAngleLvsMassVsPtbackL);
1285 fHistDcaPosToPrimVertexLambdaVsMasspt1 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1286 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt1);
1288 fHistDcaNegToPrimVertexLambdaVsMasspt1 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1289 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt1);
1291 fHistRadiusV0LambdaVsMasspt1 = new TH2F("h2RadiusV0LambdaVsMasspt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1292 fListHist->Add(fHistRadiusV0LambdaVsMasspt1);
1294 fHistDecayLengthV0LambdaVsMasspt1 = new TH2F("h2DecayLengthV0LambdaVsMasspt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,140,1.06,1.2);
1295 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt1);
1297 fHistDcaV0DaughtersLambdaVsMasspt1 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1298 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt1);
1300 fHistCosPointAngleLambdaVsMasspt1 = new TH2F("h2CosPointAngleLambdaVsMasspt1", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1301 fListHist->Add(fHistCosPointAngleLambdaVsMasspt1);
1304 fHistDcaPosToPrimVertexLambdaVsMasspt2 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1305 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt2);
1307 fHistDcaNegToPrimVertexLambdaVsMasspt2 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1308 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt2);
1310 fHistRadiusV0LambdaVsMasspt2 = new TH2F("h2RadiusV0LambdaVsMasspt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1311 fListHist->Add(fHistRadiusV0LambdaVsMasspt2);
1313 fHistDecayLengthV0LambdaVsMasspt2 = new TH2F("h2DecayLengthV0LambdaVsMasspt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1314 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt2);
1316 fHistDcaV0DaughtersLambdaVsMasspt2 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1317 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt2);
1319 fHistCosPointAngleLambdaVsMasspt2 = new TH2F("h2CosPointAngleLambdaVsMasspt2", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1320 fListHist->Add(fHistCosPointAngleLambdaVsMasspt2);
1323 fHistDcaPosToPrimVertexLambdaVsMasspt3 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1324 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt3);
1326 fHistDcaNegToPrimVertexLambdaVsMasspt3 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1327 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt3);
1329 fHistRadiusV0LambdaVsMasspt3 = new TH2F("h2RadiusV0LambdaVsMasspt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1330 fListHist->Add(fHistRadiusV0LambdaVsMasspt3);
1332 fHistDecayLengthV0LambdaVsMasspt3 = new TH2F("h2DecayLengthV0LambdaVsMasspt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1333 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt3);
1335 fHistDcaV0DaughtersLambdaVsMasspt3 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1336 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt3);
1338 fHistCosPointAngleLambdaVsMasspt3 = new TH2F("h2CosPointAngleLambdaVsMasspt3", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1339 fListHist->Add(fHistCosPointAngleLambdaVsMasspt3);
1340 } // end QA condition
1341 //////////AntiLambda////////////// 2D histos: cut vs on fly status////
1343 fHistDcaPosToPrimVertexAntiL = new TH2F("h2DcaPosToPrimVertexAntiL", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1344 fListHist->Add(fHistDcaPosToPrimVertexAntiL);
1346 fHistDcaNegToPrimVertexAntiL = new TH2F("h2DcaNegToPrimVertexAntiL", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1347 fListHist->Add(fHistDcaNegToPrimVertexAntiL);
1350 fHistRadiusV0AntiL = new TH2F("h2RadiusV0AntiL", "Radius;Radius(cm);Status",100,0,110,2,-0.5,1.5);
1351 fListHist->Add(fHistRadiusV0AntiL);
1353 fHistDecayLengthV0AntiL = new TH2F("h2DecayLengthV0AntiL", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1354 fListHist->Add(fHistDecayLengthV0AntiL);
1356 fHistDcaV0DaughtersAntiL = new TH2F("h2DcaV0DaughtersAntiL", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1357 fListHist->Add(fHistDcaV0DaughtersAntiL);
1359 fHistChi2AntiL = new TH2F("h2Chi2AntiL", "V0s chi2;chi2;Status", 100, 0, 0.10,2,-0.5,1.5);
1360 fListHist->Add(fHistChi2AntiL);
1362 fHistCosPointAngleAntiL = new TH2F("h2CosPointAngleAntiL", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1363 fListHist->Add(fHistCosPointAngleAntiL);
1365 //////////AntiLambda////////////// 2D histos: cut vs mass////
1367 fHistDcaPosToPrimVertexAntiLvsMass = new TH2F("h2DcaPosToPrimVertexAntiLvsMass", "Positive V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1368 fListHist->Add(fHistDcaPosToPrimVertexAntiLvsMass);
1370 fHistDcaNegToPrimVertexAntiLvsMass = new TH2F("h2DcaNegToPrimVertexAntiLvsMass", "Negative V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1371 fListHist->Add(fHistDcaNegToPrimVertexAntiLvsMass);
1374 fHistRadiusV0AntiLvsMass = new TH2F("h2RadiusV0AntiLvsMass", "Radius;Radius(cm);Status",110,0,110,140, 1.06, 1.2);
1375 fListHist->Add(fHistRadiusV0AntiLvsMass);
1377 fHistDecayLengthV0AntiLvsMass = new TH2F("h2DecayLengthV0AntiLvsMass", "V0s decay Length;decay length(cm);Status", 120, 0, 120,140, 1.06, 1.2);
1378 fListHist->Add(fHistDecayLengthV0AntiLvsMass);
1380 fHistDcaV0DaughtersAntiLvsMass = new TH2F("h2DcaV0DaughtersAntiLvsMass", "DCA between daughters;dca(cm);Status", 110, 0, 1.1,140, 1.06, 1.2);
1381 fListHist->Add(fHistDcaV0DaughtersAntiLvsMass);
1383 fHistCosPointAngleAntiLvsMass = new TH2F("h2CosPointAngleAntiLvsMass", "Cosine of V0's pointing angle", 200,0.997,1.007,140, 1.06, 1.2);
1384 fListHist->Add(fHistCosPointAngleAntiLvsMass);
1387 fHistDcaPosToPrimVertexAntiLVsMasspt1 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1388 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt1);
1390 fHistDcaNegToPrimVertexAntiLVsMasspt1 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1391 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt1);
1393 fHistRadiusV0AntiLVsMasspt1 = new TH2F("h2RadiusV0AntiLVsMasspt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1394 fListHist->Add(fHistRadiusV0AntiLVsMasspt1);
1396 fHistDecayLengthV0AntiLVsMasspt1 = new TH2F("h2DecayLengthV0AntiLVsMasspt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,140,1.06,1.2);
1397 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt1);
1399 fHistDcaV0DaughtersAntiLVsMasspt1 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1400 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt1);
1402 fHistCosPointAngleAntiLVsMasspt1 = new TH2F("h2CosPointAngleAntiLVsMasspt1", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1403 fListHist->Add(fHistCosPointAngleAntiLVsMasspt1);
1406 fHistDcaPosToPrimVertexAntiLVsMasspt2 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1407 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt2);
1409 fHistDcaNegToPrimVertexAntiLVsMasspt2 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1410 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt2);
1412 fHistRadiusV0AntiLVsMasspt2 = new TH2F("h2RadiusV0AntiLVsMasspt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1413 fListHist->Add(fHistRadiusV0AntiLVsMasspt2);
1415 fHistDecayLengthV0AntiLVsMasspt2 = new TH2F("h2DecayLengthV0AntiLVsMasspt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1416 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt2);
1418 fHistDcaV0DaughtersAntiLVsMasspt2 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1419 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt2);
1421 fHistCosPointAngleAntiLVsMasspt2 = new TH2F("h2CosPointAngleAntiLVsMasspt2", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1422 fListHist->Add(fHistCosPointAngleAntiLVsMasspt2);
1425 fHistDcaPosToPrimVertexAntiLVsMasspt3 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1426 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt3);
1428 fHistDcaNegToPrimVertexAntiLVsMasspt3 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1429 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt3);
1431 fHistRadiusV0AntiLVsMasspt3 = new TH2F("h2RadiusV0AntiLVsMasspt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1432 fListHist->Add(fHistRadiusV0AntiLVsMasspt3);
1434 fHistDecayLengthV0AntiLVsMasspt3 = new TH2F("h2DecayLengthV0AntiLVsMasspt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1435 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt3);
1437 fHistDcaV0DaughtersAntiLVsMasspt3 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1438 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt3);
1440 fHistCosPointAngleAntiLVsMasspt3 = new TH2F("h2CosPointAngleAntiLVsMasspt3", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1441 fListHist->Add(fHistCosPointAngleAntiLVsMasspt3);
1442 } //end QA condition for AntiLambda
1445 if (!fHistV0Multiplicity) {
1446 if (fCollidingSystems)
1447 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 200, 0, 40000);
1449 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 10, 0, 10);
1450 fListHist->Add(fHistV0Multiplicity);
1455 fHistMassK0 = new TH1F("h1MassK0", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 200, 0.4, 0.6);
1456 fListHist->Add(fHistMassK0);
1458 fHistMassLambda = new TH1F("h1MassLambda", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 150, 1.05, 1.2);
1459 fListHist->Add(fHistMassLambda);
1461 fHistMassAntiLambda = new TH1F("h1MassAntiLambda", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 150, 1.05, 1.2);
1462 fListHist->Add(fHistMassAntiLambda);
1464 /* // invariant mass vs radius
1465 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};
1466 Int_t lNbinRadius = 9;
1467 Int_t lNbinInvMassLambda = 300;
1469 fHistMassVsRadiusK0 = new TH2F("h2MassVsRadiusK0", "K^{0} candidates;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",200,0,200, 200, 0.4, 0.6);
1470 fListHist->Add(fHistMassVsRadiusK0);
1472 //fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
1473 fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",200,0,200, 140, 1.06, 1.2);
1474 fListHist->Add(fHistMassVsRadiusLambda);
1477 //fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
1478 fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",200,0,200, 140, 1.06, 1.2);
1479 fListHist->Add(fHistMassVsRadiusAntiLambda);
1483 fHistPtVsMassK0 = new TH2F("h2PtVsMassK0","K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",400, 0.4, 0.6,240,0,12);
1484 fListHist->Add(fHistPtVsMassK0);
1486 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);
1487 fListHist->Add(fHistPtVsMassLambda);
1489 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);
1490 fListHist->Add(fHistPtVsMassAntiLambda);
1493 ////////// Transverse CTau distributions Vs Mass ////////////////
1494 fHistTranscTauVsMassL = new TH2F("h2TranscTauVsMassL","cTauVsMass Lambdas",100,0,100,280, 1.06, 1.2);
1495 fListHist->Add(fHistTranscTauVsMassL);
1497 fHistTranscTauVsMassAntiL = new TH2F("h2TranscTauVsMassAntiL","cTauVsMass AntiLambdas",100,0,100,280, 1.06, 1.2);
1498 fListHist->Add(fHistTranscTauVsMassAntiL);
1500 fHistTranscTauVsMassK0s = new TH2F("h2TranscTauVsMassK0s","Transverse K0s cTau vs Mass ",100,0,100,400, 0.4, 0.6);
1501 fListHist->Add(fHistTranscTauVsMassK0s);
1504 fHistTranscTauVsMassLRap3 = new TH2F("h2TranscTauVsMassLRap3","cTauVsMass Lambdas",100,0,100,280, 1.06, 1.2);
1505 fListHist->Add(fHistTranscTauVsMassLRap3);
1507 fHistTranscTauVsMassAntiLRap3 = new TH2F("h2TranscTauVsMassAntiLRap3","cTauVsMass AntiLambdas",100,0,100,280, 1.06, 1.2);
1508 fListHist->Add(fHistTranscTauVsMassAntiLRap3);
1510 fHistTranscTauVsMassK0sRap3 = new TH2F("h2TranscTauVsMassK0sRap3","Transverse K0s cTau vs Mass ",100,0,100,400, 0.4, 0.6);
1511 fListHist->Add(fHistTranscTauVsMassK0sRap3);
1514 fHistTranscTauVsMassLptLow = new TH2F("h2TranscTauVsMassLptLow","cTauVsMass Lambdas",100,0,100,280, 1.06, 1.2);
1515 fListHist->Add(fHistTranscTauVsMassLptLow);
1517 fHistTranscTauVsMassAntiLptLow = new TH2F("h2TranscTauVsMassAntiLptLow","cTauVsMass AntiLambdas",100,0,100,280, 1.06, 1.2);
1518 fListHist->Add(fHistTranscTauVsMassAntiLptLow);
1520 fHistTranscTauVsMassK0sptLow = new TH2F("h2TranscTauVsMassK0sptLow","Transverse K0s cTau vs Mass ",100,0,100,400, 0.4, 0.6);
1521 fListHist->Add(fHistTranscTauVsMassK0sptLow);
1523 //cTauVsMass Low pt Rap3
1524 fHistTranscTauVsMassLptLowRap3 = new TH2F("h2TranscTauVsMassLptLowRap3","cTauVsMass Lambdas",100,0,100,280, 1.06, 1.2);
1525 fListHist->Add(fHistTranscTauVsMassLptLowRap3);
1527 fHistTranscTauVsMassAntiLptLowRap3 = new TH2F("h2TranscTauVsMassAntiLptLowRap3","cTauVsMass AntiLambdas",100,0,100,280, 1.06, 1.2);
1528 fListHist->Add(fHistTranscTauVsMassAntiLptLowRap3);
1530 fHistTranscTauVsMassK0sptLowRap3 = new TH2F("h2TranscTauVsMassK0sptLowRap3","Transverse K0s cTau vs Mass ",100,0,100,400, 0.4, 0.6);
1531 fListHist->Add(fHistTranscTauVsMassK0sptLowRap3);
1537 fHistPtVsMassK0Rap3 = new TH2F("h2PtVsMassK0Rap3","K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",400, 0.4, 0.6,240,0,12);
1538 fListHist->Add(fHistPtVsMassK0Rap3);
1540 fHistPtVsMassLambdaRap3 = new TH2F("h2PtVsMassLambdaRap3","#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",280, 1.06, 1.2,240,0,12);
1541 fListHist->Add(fHistPtVsMassLambdaRap3);
1543 fHistPtVsMassAntiLambdaRap3 = new TH2F("h2PtVsMassAntiLambdaRap3","#AntiLambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",280, 1.06, 1.2,240,0,12);
1544 fListHist->Add(fHistPtVsMassAntiLambdaRap3);
1547 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1549 ///Armenteros Podolansky
1550 fHistArmenterosPodolanski = new TH2F("h2ArmenterosPodolanski","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5);
1551 fListHist->Add(fHistArmenterosPodolanski);
1553 ///Inv. Mass K0s vs Inv. Mass. Lambda
1554 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);
1555 fListHist->Add(fHistK0sMassVsLambdaMass);
1557 //dE/dx vs P daughters
1558 fHistTPCsigPLambda = new TH2F("h2TPCsignalVsPLambda","TPC signal Vs p_{t} daughters; p (GeV/c);TPC signal",1000,0,2,1000,0,1000);
1559 fListHist->Add(fHistTPCsigPLambda);
1562 fHistTPCsigPAntiLambda = new TH2F("h2TPCsignalVsPAntiLambda","TPC signal Vs p_{t} daughters; p (GeV/c);TPC signal",1000,0,2,1000,0,1000);
1563 fListHist->Add(fHistTPCsigPAntiLambda);
1566 fHistNSigmaProton =new TH1F("h1NSigmaProton","Number of sigmas for proton;;Count",600,0,6);
1567 fListHist->Add(fHistNSigmaProton);
1571 fHistNsigmaPosPionAntiLambda = new TH1F("h1NsigmaPosPionAntiLambda", "Positive daughter of Antilambda;NsigmaPion;Counts",25,0,5);
1572 fListHist->Add(fHistNsigmaPosPionAntiLambda);
1574 fHistNsigmaNegProtonAntiLambda = new TH1F("h1NsigmaNegProtonAntiLambda", "Negative daughter of Antilambda;NsigmaProton;Counts",25,0,5);
1575 fListHist->Add(fHistNsigmaNegProtonAntiLambda);
1577 fHistNsigmaPosProtonLambda = new TH1F("h1NsigmaPosProtonLambda", "Positive daughter of Lambda;NsigmaProton;Counts",25,0,5);
1578 fListHist->Add(fHistNsigmaPosProtonLambda);
1580 fHistNsigmaNegPionLambda = new TH1F("h1NsigmaNegPionLambda", "Negative daughter of Lambda;NsigmaPion;Counts",25,0,5);
1581 fListHist->Add(fHistNsigmaNegPionLambda);
1583 fHistNsigmaPosProtonAntiLambda = new TH1F("h1NsigmaPosProtonAntiLambda", "Positive daughter of AntiLambda;NsigmaProton;Counts",25,0,5);
1584 fListHist->Add(fHistNsigmaPosProtonAntiLambda);
1586 fHistNsigmaNegPionAntiLambda = new TH1F("h1NsigmaNegPionAntiLambda", "Negative daughter of AntiLambda;NsigmaPion;Counts",25,0,5);
1587 fListHist->Add(fHistNsigmaNegPionAntiLambda);
1589 fHistNsigmaPosPionK0 = new TH1F("h1NsigmaPosPionK0", "Positive daughter of K0s;NsigmaPion;Counts",25,0,5);
1590 fListHist->Add(fHistNsigmaPosPionK0);
1592 fHistNsigmaNegPionK0 = new TH1F("h1NsigmaNegPionK0", "Negative daughter of K0s;NsigmaPion;Counts",25,0,5);
1593 fListHist->Add(fHistNsigmaNegPionK0);
1596 //********************************
1597 // Associated particles histograms
1598 //********************************
1601 fHistAsMcRapK0 = new TH1F("h1AsMcRapK0", "K^{0} associated;eta;Counts", 60, -1.5, 1.5);
1602 fListHist->Add(fHistAsMcRapK0);
1604 fHistAsMcRapLambda = new TH1F("h1AsMcRapLambda", "#Lambda^{0} associated;eta;Counts", 60, -1.5, 1.5);
1605 fListHist->Add(fHistAsMcRapLambda);
1607 fHistAsMcRapAntiLambda = new TH1F("h1AsMcRapAntiLambda", "#bar{#Lambda}^{0} associated;eta;Counts", 60, -1.5, 1.5);
1608 fListHist->Add(fHistAsMcRapAntiLambda);
1611 fHistAsMcPtK0 = new TH1F("h1AsMcPtK0", "K^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1612 fListHist->Add(fHistAsMcPtK0);
1614 fHistAsMcPtLambda = new TH1F("h1AsMcPtLambda", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1615 fListHist->Add(fHistAsMcPtLambda);
1617 fHistAsMcPtAntiLambda = new TH1F("h1AsMcPtAntiLambda", "#AntiLambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1618 fListHist->Add(fHistAsMcPtAntiLambda);
1621 fHistAsMcPtZoomK0 = new TH1F("h1AsMcPtZoomK0", "K^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1622 fListHist->Add(fHistAsMcPtZoomK0);
1624 fHistAsMcPtZoomLambda = new TH1F("h1AsMcPtZoomLambda", "#Lambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1625 fListHist->Add(fHistAsMcPtZoomLambda);
1627 fHistAsMcPtZoomAntiLambda = new TH1F("h1AsMcPtZoomAntiLambda", "#AntiLambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1628 fListHist->Add(fHistAsMcPtZoomAntiLambda);
1630 //Pt distribution Rap3
1631 fHistAsMcPtK0Rap3 = new TH1F("h1AsMcPtK0Rap3", "K^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1632 fListHist->Add(fHistAsMcPtK0Rap3);
1634 fHistAsMcPtLambdaRap3 = new TH1F("h1AsMcPtLambdaRap3", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1635 fListHist->Add(fHistAsMcPtLambdaRap3);
1637 fHistAsMcPtAntiLambdaRap3 = new TH1F("h1AsMcPtAntiLambdaRap3", "#AntiLambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1638 fListHist->Add(fHistAsMcPtAntiLambdaRap3);
1641 fHistAsMcTranscTauL = new TH1F("h1AsMcTranscTauL","cTau of AntiLambdas",100,0,100);
1642 fListHist->Add(fHistAsMcTranscTauL);
1643 fHistAsMcTranscTauAntiL = new TH1F("h1AsMcTranscTauAntiL","cTau of AntiLambdas",100,0,100);
1644 fListHist->Add(fHistAsMcTranscTauAntiL);
1645 fHistAsMcTranscTauK0s = new TH1F("h1AsMcTranscTauK0s","cTau of K0s",100,0,100);
1646 fListHist->Add(fHistAsMcTranscTauK0s);
1649 fHistAsMcTranscTauLRap3 = new TH1F("h1AsMcTranscTauLRap3","cTau of AntiLambdas",100,0,100);
1650 fListHist->Add(fHistAsMcTranscTauLRap3);
1651 fHistAsMcTranscTauAntiLRap3 = new TH1F("h1AsMcTranscTauAntiLRap3","cTau of AntiLambdas",100,0,100);
1652 fListHist->Add(fHistAsMcTranscTauAntiLRap3);
1653 fHistAsMcTranscTauK0sRap3 = new TH1F("h1AsMcTranscTauK0sRap3","cTau of K0s",100,0,100);
1654 fListHist->Add(fHistAsMcTranscTauK0sRap3);
1658 fHistAsMcTranscTauLptLow = new TH1F("h1AsMcTranscTauLptLow","cTau of AntiLambdas",100,0,100);
1659 fListHist->Add(fHistAsMcTranscTauLptLow);
1660 fHistAsMcTranscTauAntiLptLow = new TH1F("h1AsMcTranscTauAntiLptLow","cTau of AntiLambdas",100,0,100);
1661 fListHist->Add(fHistAsMcTranscTauAntiLptLow);
1662 fHistAsMcTranscTauK0sptLow = new TH1F("h1AsMcTranscTauK0sptLow","cTau of K0s",100,0,100);
1663 fListHist->Add(fHistAsMcTranscTauK0sptLow);
1666 //cTau ptLowRap3 Low pt
1667 fHistAsMcTranscTauLptLowRap3 = new TH1F("h1AsMcTranscTauLptLowRap3","cTau of AntiLambdas",100,0,100);
1668 fListHist->Add(fHistAsMcTranscTauLptLowRap3);
1669 fHistAsMcTranscTauAntiLptLowRap3 = new TH1F("h1AsMcTranscTauAntiLptLowRap3","cTau of AntiLambdas",100,0,100);
1670 fListHist->Add(fHistAsMcTranscTauAntiLptLowRap3);
1671 fHistAsMcTranscTauK0sptLowRap3 = new TH1F("h1AsMcTranscTauK0sptLowRap3","cTau of K0s",100,0,100);
1672 fListHist->Add(fHistAsMcTranscTauK0sptLowRap3);
1677 // Radius distribution
1678 fHistAsMcProdRadiusK0 = new TH1F("h1AsMcProdRadiusK0", "K^{0} associated;r (cm);Counts", 500, 0, 100);
1679 fListHist->Add(fHistAsMcProdRadiusK0);
1681 fHistAsMcProdRadiusLambda = new TH1F("h1AsMcProdRadiusLambda", "#Lambda^{0} associated;r (cm);Counts", 500, 0, 100);
1682 fListHist->Add(fHistAsMcProdRadiusLambda);
1684 fHistAsMcProdRadiusAntiLambda = new TH1F("h1AsMcProdRadiusAntiLambda", "#bar{#Lambda}^{0} associated;r (cm);Counts", 500, 0, 100);
1685 fListHist->Add(fHistAsMcProdRadiusAntiLambda);
1687 fHistAsMcProdRadiusXvsYK0s = new TH2F("h2AsMcProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1688 fListHist->Add(fHistAsMcProdRadiusXvsYK0s);
1690 fHistAsMcProdRadiusXvsYLambda = new TH2F("h2AsMcProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1691 fListHist->Add(fHistAsMcProdRadiusXvsYLambda);
1693 fHistAsMcProdRadiusXvsYAntiLambda = new TH2F("h2AsMcProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1694 fListHist->Add(fHistAsMcProdRadiusXvsYAntiLambda);
1697 fHistPidMcMassK0 = new TH1F("h1PidMcMassK0", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1698 fListHist->Add(fHistPidMcMassK0);
1700 fHistPidMcMassLambda = new TH1F("h1PidMcMassLambda", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1701 fListHist->Add(fHistPidMcMassLambda);
1703 fHistPidMcMassAntiLambda = new TH1F("h1PidMcMassAntiLambda", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1704 fListHist->Add(fHistPidMcMassAntiLambda);
1706 fHistAsMcMassK0 = new TH1F("h1AsMcMassK0", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1707 fListHist->Add(fHistAsMcMassK0);
1709 fHistAsMcMassLambda = new TH1F("h1AsMcMassLambda", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1710 fListHist->Add(fHistAsMcMassLambda);
1712 fHistAsMcMassAntiLambda = new TH1F("h1AsMcMassAntiLambda", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1713 fListHist->Add(fHistAsMcMassAntiLambda);
1717 fHistAsMcMassK0Rap3 = new TH1F("h1AsMcMassK0Rap3", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1718 fListHist->Add(fHistAsMcMassK0Rap3);
1720 fHistAsMcMassLambdaRap3 = new TH1F("h1AsMcMassLambdaRap3", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1721 fListHist->Add(fHistAsMcMassLambdaRap3);
1723 fHistAsMcMassAntiLambdaRap3 = new TH1F("h1AsMcMassAntiLambdaRap3", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1724 fListHist->Add(fHistAsMcMassAntiLambdaRap3);
1729 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);
1730 fListHist->Add(fHistAsMcPtVsMassK0);
1732 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);
1733 fListHist->Add(fHistAsMcPtVsMassLambda);
1735 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);
1736 fListHist->Add(fHistAsMcPtVsMassAntiLambda);
1739 //Pt versus Mass Rap3
1740 fHistAsMcPtVsMassK0Rap3 = new TH2F("h2AsMcPtVsMassK0Rap3","K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",200, 0.4, 0.6,240,0,12);
1741 fListHist->Add(fHistAsMcPtVsMassK0Rap3);
1743 fHistAsMcPtVsMassLambdaRap3 = new TH2F("h2AsMcPtVsMassLambdaRap3","#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,240,0,12);
1744 fListHist->Add(fHistAsMcPtVsMassLambdaRap3);
1746 fHistAsMcPtVsMassAntiLambdaRap3 = new TH2F("h2AsMcPtVsMassAntiLambdaRap3","#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,240,0,12);
1747 fListHist->Add(fHistAsMcPtVsMassAntiLambdaRap3);
1753 // invariant mass vs radius
1754 //fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 500, 0.47, 0.52);
1755 fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",200,0,200, 500, 0.47, 0.52);
1756 fListHist->Add(fHistAsMcMassVsRadiusK0);
1758 //fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, lNbinInvMassLambda, 1.10, 1.13);
1759 fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",200,0,200, 1.10, 1.13);
1760 fListHist->Add(fHistAsMcMassVsRadiusLambda);
1762 //fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius,lNbinInvMassLambda , 1.10, 1.13);
1763 fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",200,0,200 , 1.10, 1.13);
1764 fListHist->Add(fHistAsMcMassVsRadiusAntiLambda);
1766 // Position Resolution
1767 fHistAsMcResxK0 = new TH1F("h1AsMcResxK0", "K^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1768 fListHist->Add(fHistAsMcResxK0);
1769 fHistAsMcResyK0 = new TH1F("h1AsMcResyK0", "K^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1770 fListHist->Add(fHistAsMcResyK0);
1771 fHistAsMcReszK0 = new TH1F("h1AsMcReszK0", "K^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1772 fListHist->Add(fHistAsMcReszK0);
1773 fHistAsMcResrVsRadiusK0 = new TH2F("h2AsMcResrVsRadiusK0", "K^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50., 50, -0.25, 0.25);
1774 fListHist->Add(fHistAsMcResrVsRadiusK0);
1775 fHistAsMcReszVsRadiusK0 = new TH2F("h2AsMcReszVsRadiusK0", "K^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1776 fListHist->Add(fHistAsMcReszVsRadiusK0);
1778 fHistAsMcResxLambda = new TH1F("h1AsMcResxLambda", "#Lambda^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1779 fListHist->Add(fHistAsMcResxLambda);
1780 fHistAsMcResyLambda = new TH1F("h1AsMcResyLambda", "#Lambda^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1781 fListHist->Add(fHistAsMcResyLambda);
1782 fHistAsMcReszLambda = new TH1F("h1AsMcReszLambda", "#Lambda^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1783 fListHist->Add(fHistAsMcReszLambda);
1784 fHistAsMcResrVsRadiusLambda = new TH2F("h2AsMcResrVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1785 fListHist->Add(fHistAsMcResrVsRadiusLambda);
1786 fHistAsMcReszVsRadiusLambda = new TH2F("h2AsMcReszVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1787 fListHist->Add(fHistAsMcReszVsRadiusLambda);
1789 fHistAsMcResxAntiLambda = new TH1F("h1AsMcResxAntiLambda", "#bar{#Lambda}^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1790 fListHist->Add(fHistAsMcResxAntiLambda);
1791 fHistAsMcResyAntiLambda = new TH1F("h1AsMcResyAntiLambda", "#bar{#Lambda}^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1792 fListHist->Add(fHistAsMcResyAntiLambda);
1793 fHistAsMcReszAntiLambda = new TH1F("h1AsMcReszAntiLambda", "#bar{#Lambda}^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1794 fListHist->Add(fHistAsMcReszAntiLambda);
1795 fHistAsMcResrVsRadiusAntiLambda = new TH2F("h2AsMcResrVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1796 fListHist->Add(fHistAsMcResrVsRadiusAntiLambda);
1797 fHistAsMcReszVsRadiusAntiLambda = new TH2F("h2AsMcReszVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1798 fListHist->Add(fHistAsMcReszVsRadiusAntiLambda);
1801 fHistAsMcResPtK0 = new TH1F("h1AsMcResPtK0","Pt Resolution K^{0};#Delta Pt;Counts",200,-1,1);
1802 fListHist->Add(fHistAsMcResPtK0);
1804 fHistAsMcResPtLambda = new TH1F("h1AsMcResPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Counts",200,-1,1);
1805 fListHist->Add(fHistAsMcResPtLambda);
1807 fHistAsMcResPtAntiLambda = new TH1F("h1AsMcResPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Counts",200,-1,1);
1808 fListHist->Add(fHistAsMcResPtAntiLambda);
1811 fHistAsMcResPtVsRapK0 = new TH2F("h2AsMcResPtVsRapK0","Pt Resolution K^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1812 fListHist->Add(fHistAsMcResPtVsRapK0);
1814 fHistAsMcResPtVsRapLambda = new TH2F("h2AsMcResPtVsRapLambda","Pt Resolution #Lambda^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1815 fListHist->Add(fHistAsMcResPtVsRapLambda);
1817 fHistAsMcResPtVsRapAntiLambda = new TH2F("h2AsMcResPtVsRapAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1818 fListHist->Add(fHistAsMcResPtVsRapAntiLambda);
1820 fHistAsMcResPtVsPtK0 = new TH2F("h2AsMcResPtVsPtK0","Pt Resolution K^{0};#Delta Pt;Pt",600,-0.15,0.15,240,0,12);
1821 fListHist->Add(fHistAsMcResPtVsPtK0);
1823 fHistAsMcResPtVsPtLambda = new TH2F("h2AsMcResPtVsPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Pt",600,-0.15,0.15,240,0,12);
1824 fListHist->Add(fHistAsMcResPtVsPtLambda);
1826 fHistAsMcResPtVsPtAntiLambda = new TH2F("h2AsMcResPtVsPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Pt",300,-0.15,0.15,240,0,12);
1827 fListHist->Add(fHistAsMcResPtVsPtAntiLambda);
1829 // pdgcode of mother
1830 fHistAsMcMotherPdgCodeK0s = new TH1F("h1AsMcMotherPdgCodeK0s","Mother of Associated K^{0};mother;counts",11,0,11);
1831 fListHist->Add(fHistAsMcMotherPdgCodeK0s);
1833 fHistAsMcMotherPdgCodeLambda = new TH1F("h1AsMcMotherPdgCodeLambda","Mother of Associated #Lambda^{0};mother;counts",11,0,11);
1834 fListHist->Add(fHistAsMcMotherPdgCodeLambda);
1836 fHistAsMcMotherPdgCodeAntiLambda = new TH1F("h1AsMcMotherPdgCodeAntiLambda","Mother of Associated #bar{#Lambda}^{0};mother;counts",11,0,11);
1837 fListHist->Add(fHistAsMcMotherPdgCodeAntiLambda);
1839 // Pt distribution Lambda from Sigma
1840 fHistAsMcPtLambdaFromSigma = new TH1F("h1AsMcPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1841 fListHist->Add(fHistAsMcPtLambdaFromSigma);
1843 fHistAsMcPtAntiLambdaFromSigma = new TH1F("h1AsMcPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1844 fListHist->Add(fHistAsMcPtAntiLambdaFromSigma);
1846 // Associated secondary particles:
1847 // Pt and rapidity distribution
1848 fHistAsMcSecondaryPtVsRapK0s = new TH2F("h2AsMcSecondaryPtVsRapK0s", "K^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1849 fListHist->Add(fHistAsMcSecondaryPtVsRapK0s);
1851 fHistAsMcSecondaryPtVsRapLambda = new TH2F("h2AsMcSecondaryPtVsRapLambda", "#Lambda^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1852 fListHist->Add(fHistAsMcSecondaryPtVsRapLambda);
1854 fHistAsMcSecondaryPtVsRapAntiLambda = new TH2F("h2AsMcSecondaryPtVsRapAntiLambda", "#bar{#Lambda}^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1855 fListHist->Add(fHistAsMcSecondaryPtVsRapAntiLambda);
1857 // Production radius
1858 fHistAsMcSecondaryProdRadiusK0s = new TH1F("h1AsMcSecondaryProdRadiusK0s", "K^{0} Production Radius;r (cm);Count", 170, -2, 15);
1859 fListHist->Add(fHistAsMcSecondaryProdRadiusK0s);
1861 fHistAsMcSecondaryProdRadiusLambda = new TH1F("h1AsMcSecondaryProdRadiusLambda", "#Lambda^{0} Production Radius;r (cm);Count", 170, -2, 15);
1862 fListHist->Add(fHistAsMcSecondaryProdRadiusLambda);
1864 fHistAsMcSecondaryProdRadiusAntiLambda = new TH1F("h1AsMcSecondaryProdRadiusAntiLambda", "#bar{#Lambda}^{0} Production Radius;r (cm);Count", 170, -2, 15);
1865 fListHist->Add(fHistAsMcSecondaryProdRadiusAntiLambda);
1867 fHistAsMcSecondaryProdRadiusXvsYK0s = new TH2F("h2AsMcSecondaryProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1868 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYK0s);
1870 fHistAsMcSecondaryProdRadiusXvsYLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1871 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYLambda);
1873 fHistAsMcSecondaryProdRadiusXvsYAntiLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1874 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYAntiLambda);
1876 fHistAsMcSecondaryMotherPdgCodeK0s = new TH1F("h1AsMcSecondaryMotherPdgCodeK0s","Mother of Associated Secondary K^{0};mother;counts",11,0,11);
1877 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeK0s);
1879 fHistAsMcSecondaryMotherPdgCodeLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeLambda","Mother of Associated Secondary #Lambda^{0};mother;counts",11,0,11);
1880 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeLambda);
1882 fHistAsMcSecondaryMotherPdgCodeAntiLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeAntiLambda","Mother of Associated Secondary #bar{#Lambda}^{0};mother;counts",11,0,11);
1883 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeAntiLambda);
1885 // Pt distribution Lambda from Sigma
1886 fHistAsMcSecondaryPtLambdaFromSigma = new TH1F("h1AsMcSecondaryPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1887 fListHist->Add(fHistAsMcSecondaryPtLambdaFromSigma);
1889 fHistAsMcSecondaryPtAntiLambdaFromSigma = new TH1F("h1AsMcSecondaryPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1890 fListHist->Add(fHistAsMcSecondaryPtAntiLambdaFromSigma);
1891 PostData(1, fListHist);
1892 PostData(2, fCentrSelector);
1893 PostData(3, fTracksCuts);
1896 //________________________________________________________________________
1897 void AliAnalysisTaskPerformanceStrange::UserExec(Option_t *)
1900 // Called for each event
1902 AliStack* stack = NULL;
1903 // TClonesArray *mcArray = NULL;
1904 TArrayF mcPrimaryVtx;
1906 fESD=(AliESDEvent *)InputEvent();
1909 Printf("ERROR: fESD not available");
1913 AliVEvent* lEvent = InputEvent();
1916 Printf("ERROR: Event not available");
1924 if (fUsePID.Contains("withPID")) {
1925 AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
1926 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
1927 fPIDResponse = inputHandler->GetPIDResponse();
1930 fHistNumberEvents->Fill(0.5);
1932 //******************
1933 // Trigger Selection ! Warning Works only for ESD, add protection in case of AOD loop
1934 //******************
1935 Bool_t isSelected = kFALSE;
1936 if(fCollidingSystems == 2)
1937 isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()& AliVEvent::kCINT5 && ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()& AliVEvent::kINT7);
1938 // isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()& AliVEvent::kCINT7);
1940 isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()& AliVEvent::kMB);
1942 if (!isSelected) return;
1944 fHistNumberEvents->Fill(1.5);
1947 // Centrality selection
1949 static AliESDtrackCuts * trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1);
1950 Bool_t isCentralitySelected = fCentrSelector->IsCentralityBinSelected(fESD,trackCuts);
1951 if(!isCentralitySelected) return;
1953 // Done by the AliPhysicsSelection Task ! Only the selected events are passed to this task
1955 AliESDtrackCuts *TestTrackCuts = new AliESDtrackCuts();
1956 TestTrackCuts->SetRequireTPCRefit(kTRUE);
1957 TestTrackCuts->SetRequireITSRefit(kFALSE);
1958 // mytracksCuts->SetMinNClustersTPC(nbMinTPCclusters);
1959 TestTrackCuts->SetMinNCrossedRowsTPC(70);
1960 TestTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
1962 AliESDtrack *track = 0x0;
1963 Double_t trackP[3] = {0,0,0};
1964 for (int i = 0; i<fESD->GetNumberOfTracks();i++){
1965 track = fESD->GetTrack(i);
1966 track->GetInnerPxPyPz(trackP);
1967 TestTrackCuts->SetRequireITSRefit(kFALSE);
1968 if(TestTrackCuts->IsSelected(track)) fHistPtTracks->Fill(trackP[2]);
1969 TestTrackCuts->SetRequireITSRefit(kTRUE);
1970 if(TestTrackCuts->IsSelected(track)) fHistPtTracksITSRefit->Fill(trackP[2]);
1974 // Remove Events with no tracks
1975 //if (!(fESD->GetNumberOfTracks())) return;
1977 fHistNumberEvents->Fill(2.5);
1978 // fHistTrackPerEvent->Fill(fESD->GetNumberOfTracks());
1980 //*************************************
1982 //*************************************
1985 Double_t lCutRap = 0.5;
1987 // cut Pseudorapidity:
1989 Double_t lCutPseudorap = 0.8;
1991 // Cut AliKF Chi2 for Reconstructed particles
1992 // Double_t cutChi2KF = 1E3;
1995 Double_t lLimitPPID = 0.7;
1996 Float_t cutNSigmaLowP = 1E3;
1997 Float_t cutNSigmaHighP = 1E3;
1998 if (fUsePID.Contains("withPID")) {
1999 cutNSigmaLowP = 3.0;
2000 cutNSigmaHighP = 3.0;
2004 // Cut Daughters pt (GeV/c):
2005 //Double_t cutMinPtDaughter = 0.160;
2007 // Cut primary vertex:
2008 Double_t cutPrimVertex = 10.0;
2011 Double_t cutcTauL = 3*7.89;
2012 Double_t cutcTauK0s = 3*2.68;
2014 // Min number of TPC clusters:
2015 // Int_t nbMinTPCclusters = 80;
2020 Int_t LambdaPID = 0;
2021 Int_t AntiLambdaPID = 0;
2024 //////******************************************
2025 ////// Access MC: ******************************
2026 //////******************************************
2029 if(fAnalysisType == "ESD") {
2030 AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
2031 if (!eventHandler) {
2032 Printf("ERROR: Could not retrieve MC event handler");
2035 AliMCEvent* mcEvent = eventHandler->MCEvent();
2037 Printf("ERROR: Could not retrieve MC event");
2040 stack = mcEvent->Stack();
2042 Printf("ERROR: Could not retrieve stack");
2046 AliGenEventHeader* mcHeader=mcEvent->GenEventHeader();
2047 if(!mcHeader) return;
2048 mcHeader->PrimaryVertex(mcPrimaryVtx);
2050 if (TMath::Abs(mcPrimaryVtx.At(2)) > cutPrimVertex) return; /// cut on z of prim. vertex !!!!!!
2054 // PID parameters for MC simulations:
2055 fAlephParameters[0] = 2.15898e+00/50.;
2056 fAlephParameters[1] = 1.75295e+01;
2057 fAlephParameters[2] = 3.40030e-09;
2058 fAlephParameters[3] = 1.96178e+00;
2059 fAlephParameters[4] = 3.91720e+00;
2064 //**********************************************
2066 //**********************************************
2068 // Double_t lmcPrimVtxR = 0;
2070 Int_t lNbMCPrimary = 0;
2071 Int_t lNbMCPart = 0;
2073 Int_t lPdgcodeCurrentPart = 0;
2074 Double_t lRapCurrentPart = 0;
2075 Double_t lPtCurrentPart = 0;
2077 Int_t lComeFromSigma = 0;
2080 // Production Radius
2081 Double_t mcPosX = 0.0, mcPosY = 0.0, mcPosZ = 0.0;
2082 Double_t mcPosR = 0.0;
2085 Double_t mcDecayPosX = 0, mcDecayPosY = 0, mcDecayPosR = 0;
2087 // current mc particle 's mother
2088 Int_t iCurrentMother = 0, lPdgCurrentMother = 0;
2089 // Bool_t lCurrentMotherIsPrimary;
2091 // current mc particles 's daughter:
2092 // Int_t lPdgCurrentDaughter0 = 0, lPdgCurrentDaughter1 = 0;
2094 // variables for multiple reconstruction studies:
2095 Int_t id0 = 0, id1 = 0;
2096 //Int_t lLabelTrackN = 0, lLabelTrackP = 0;
2097 //Int_t lPartNMother = 0, lPartPMother = 0;
2098 //Int_t lPartPMotherPDGcode = 0;
2099 Int_t lNtimesReconstructedK0s = 0, lNtimesReconstructedLambda = 0, lNtimesReconstructedAntiLambda = 0;
2100 // Int_t lNtimesReconstructedK0sMI = 0, lNtimesReconstructedLambdaMI = 0, lNtimesReconstructedAntiLambdaMI = 0;
2102 ////********************************
2103 ////Start loop over MC particles****
2104 ////********************************
2109 fHistMCPrimaryVertexX->Fill(mcPrimaryVtx.At(0));
2110 fHistMCPrimaryVertexY->Fill(mcPrimaryVtx.At(1));
2111 fHistMCPrimaryVertexZ->Fill(mcPrimaryVtx.At(2));
2113 // lmcPrimVtxR = TMath::Sqrt(mcPrimaryVtx.At(0)*mcPrimaryVtx.At(0)+mcPrimaryVtx.At(1)*mcPrimaryVtx.At(1));
2116 if(fAnalysisType == "ESD") {
2118 lNbMCPrimary = stack->GetNprimary();
2119 lNbMCPart = stack->GetNtrack();
2121 fHistMCMultiplicityPrimary->Fill(lNbMCPrimary);
2122 fHistMCMultiplicityTracks->Fill(lNbMCPart);
2125 for (Int_t iMc = 0; iMc < (stack->GetNtrack()); iMc++) {
2126 TParticle *p0 = stack->Particle(iMc);
2128 //Printf("ERROR: particle with label %d not found in stack (mc loop)", iMc);
2131 lPdgcodeCurrentPart = p0->GetPdgCode();
2133 // Keep only K0s, Lambda and AntiLambda, Xi and Phi:
2134 if ( (lPdgcodeCurrentPart != 310 ) && (lPdgcodeCurrentPart != 3122 ) && (lPdgcodeCurrentPart != -3122 ) && (lPdgcodeCurrentPart != 3312 ) && (lPdgcodeCurrentPart != -3312) && (lPdgcodeCurrentPart != -333) ) continue;
2136 lRapCurrentPart = MyRapidity(p0->Energy(),p0->Pz());
2137 //lEtaCurrentPart = p0->Eta();
2138 lPtCurrentPart = p0->Pt();
2139 iCurrentMother = p0->GetFirstMother();
2141 // lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();
2142 if (iCurrentMother == -1){lPdgCurrentMother=0; } else {lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();}
2147 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
2149 id0 = p0->GetDaughter(0);
2150 id1 = p0->GetDaughter(1);
2152 // Decay Radius and Production Radius
2153 if ( id0 <= lNbMCPart && id0 > 0 && id1 <= lNbMCPart && id1 > 0) {
2154 TParticle *pDaughter0 = stack->Particle(id0);
2155 // TParticle *pDaughter1 = stack->Particle(id1);
2156 // lPdgCurrentDaughter0 = pDaughter0->GetPdgCode();
2157 // lPdgCurrentDaughter1 = pDaughter1->GetPdgCode();
2159 mcDecayPosX = pDaughter0->Vx();
2160 mcDecayPosY = pDaughter0->Vy();
2161 mcDecayPosR = TMath::Sqrt(mcDecayPosX*mcDecayPosX+mcDecayPosY*mcDecayPosY);
2164 //Printf("ERROR: particle with label %d and/or %d not found in stack (mc loop)", id0,id1);
2168 if (lPdgcodeCurrentPart==310) {
2169 fHistMCtracksProdRadiusK0s->Fill(mcPosX,mcPosY);
2170 fHistMCtracksDecayRadiusK0s->Fill(mcDecayPosR);
2172 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAllK0sRap3->Fill(lPtCurrentPart);
2174 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllK0s->Fill(lPtCurrentPart);
2176 else if (lPdgcodeCurrentPart==3122) {
2177 fHistMCtracksProdRadiusLambda->Fill(mcPosX,mcPosY);
2178 fHistMCtracksDecayRadiusLambda->Fill(mcDecayPosR);
2180 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAllLambdaRap3->Fill(lPtCurrentPart);
2182 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllLambda->Fill(lPtCurrentPart);
2184 else if (lPdgcodeCurrentPart==-3122) {
2185 fHistMCtracksProdRadiusAntiLambda->Fill(mcPosX,mcPosY);
2186 fHistMCtracksDecayRadiusAntiLambda->Fill(mcDecayPosR);
2188 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAllAntiLambdaRap3->Fill(lPtCurrentPart);
2190 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllAntiLambda->Fill(lPtCurrentPart);
2193 if ( ( ( TMath::Abs(lPdgCurrentMother) == 3212) ||
2194 ( TMath::Abs(lPdgCurrentMother) == 3224) ||
2195 ( TMath::Abs(lPdgCurrentMother) == 3214) ||
2196 ( TMath::Abs(lPdgCurrentMother) == 3114) )
2197 && ( iCurrentMother <= lNbMCPrimary )
2198 ) lComeFromSigma = 1;
2199 else lComeFromSigma = 0;
2201 //*********************************************
2202 // Now keep only primary particles
2203 // if ( ( iMc > lNbMCPrimary ) && (!lComeFromSigma) ) continue;
2205 //*************************************//
2206 // new definition of primary particles //
2207 //*************************************//
2212 Double_t ProdDistance = 0;
2215 dx = ( (mcPrimaryVtx.At(0)) - (p0->Vx()) );
2216 dy = ( (mcPrimaryVtx.At(1)) - (p0->Vy()) );
2217 dz = ( (mcPrimaryVtx.At(2)) - (p0->Vz()) );
2219 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2221 if (ProdDistance > 0.001) continue; // secondary V0
2223 lNtimesReconstructedK0s = 0; lNtimesReconstructedLambda = 0; lNtimesReconstructedAntiLambda = 0;
2227 if (lPdgcodeCurrentPart==310) {
2228 fHistMCRapK0s->Fill(lRapCurrentPart);
2229 if (lPtCurrentPart < 0.2 && lPtCurrentPart < 3.0)
2230 fHistMCRapInPtRangeK0s->Fill(lRapCurrentPart);
2233 if (lPdgcodeCurrentPart==3122) {
2234 fHistMCRapLambda->Fill(lRapCurrentPart);
2235 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5)
2236 fHistMCRapInPtRangeLambda->Fill(lRapCurrentPart);
2239 if (lPdgcodeCurrentPart==-3122) {
2240 fHistMCRapAntiLambda->Fill(lRapCurrentPart);
2241 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5)
2242 fHistMCRapInPtRangeAntiLambda->Fill(lRapCurrentPart);
2245 if (lPdgcodeCurrentPart==3312 || lPdgcodeCurrentPart==-3312) {
2246 fHistMCRapXi->Fill(lRapCurrentPart);
2247 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.0)
2248 fHistMCRapInPtRangeXi->Fill(lRapCurrentPart);
2251 if (lPdgcodeCurrentPart==333) {
2252 fHistMCRapPhi->Fill(lRapCurrentPart);
2253 if (lPtCurrentPart < 0.7 && lPtCurrentPart < 3.0)
2254 fHistMCRapInPtRangePhi->Fill(lRapCurrentPart);
2258 if (TMath::Abs(lRapCurrentPart) > lCutRap) continue;
2260 if (lPdgcodeCurrentPart==310) {
2261 fHistMCProdRadiusK0s->Fill(mcPosR);
2262 fHistMCPrimDecayRadiusK0s->Fill(mcDecayPosR);
2263 fHistMCPtK0s->Fill(lPtCurrentPart);
2265 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtK0sRap3->Fill(lPtCurrentPart);
2268 fHistNTimesRecK0s->Fill(lNtimesReconstructedK0s);
2269 fHistNTimesRecK0sVsPt->Fill(lPtCurrentPart,lNtimesReconstructedK0s);
2272 if (lPdgcodeCurrentPart==3122) {
2273 fHistMCProdRadiusLambda->Fill(mcPosR);
2274 fHistMCPrimDecayRadiusLambda->Fill(mcDecayPosR);
2275 fHistMCPtLambda->Fill(lPtCurrentPart);
2277 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtLambdaRap3->Fill(lPtCurrentPart);
2279 fHistNTimesRecLambda->Fill(lNtimesReconstructedLambda);
2280 fHistNTimesRecLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedLambda);
2281 if (lComeFromSigma) fHistMCPtLambdaFromSigma->Fill(lPtCurrentPart);
2283 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
2284 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
2288 if (lPdgcodeCurrentPart==-3122) {
2289 fHistMCProdRadiusAntiLambda->Fill(mcPosR);
2290 fHistMCPrimDecayRadiusAntiLambda->Fill(mcDecayPosR);
2292 fHistMCPtAntiLambda->Fill(lPtCurrentPart);
2294 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAntiLambdaRap3->Fill(lPtCurrentPart);
2297 fHistNTimesRecAntiLambda->Fill(lNtimesReconstructedAntiLambda);
2298 fHistNTimesRecAntiLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambda);
2299 if (lComeFromSigma) fHistMCPtAntiLambdaFromSigma->Fill(lPtCurrentPart);
2301 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
2302 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
2307 } // end loop ESD MC
2309 } // end ESD condition
2312 } // End Loop over MC condition
2318 //************************************
2320 //************************************
2322 // Double_t lLambdaMass = 1.115683; //PDG
2323 Double_t lPLambda = 0;
2324 // Double_t lPAntiLambda = 0;
2325 //Double_t lPK0s = 0;
2326 Double_t lMagneticField = 999;
2329 Int_t nv0sTot= 0, nv0s = 0;
2332 Double_t lV0Position[3];
2334 Double_t lDcaPosToPrimVertex = 0;
2335 Double_t lDcaNegToPrimVertex = 0;
2336 Double_t lDcaV0Daughters = 0;
2337 Double_t lV0cosPointAngle = 0;
2338 Double_t lChi2V0 = 0;
2339 Double_t lV0DecayLength = 0;
2340 Double_t lV0tDecayLength = 0; //transverse decay length in xy plain
2341 Double_t lV0Radius = 0;
2342 // Double_t lDcaV0ToPrimVertex = 0;
2343 Double_t lcTauLambda = 0;
2344 Double_t lcTauAntiLambda = 0;
2345 Double_t lcTauK0s = 0;
2346 Int_t lOnFlyStatus = 0;
2347 //Float_t tdcaPosToPrimVertexXYZ[2], tdcaNegToPrimVertexXYZ[2]; // ..[0] = Impact parameter in XY plane and ..[1] = Impact parameter in Z
2348 //Double_t tdcaDaughterToPrimVertex[2]; // ..[0] = Pos and ..[1] = Neg
2352 Double_t lInvMassK0s = 0, lInvMassLambda = 0, lInvMassAntiLambda = 0;
2353 Double_t lPtK0s = 0, lPtLambda = 0, lPtAntiLambda = 0;
2354 Double_t lRapK0s = 0, lRapLambda = 0, lRapAntiLambda = 0;
2355 // Double_t lEtaK0s = 0, lEtaLambda = 0, lEtaAntiLambda = 0;
2356 Double_t lAlphaV0 = 0, lPtArmV0 = 0;
2358 // Double_t lPzK0s = 0, lPzLambda = 0, lPzAntiLambda = 0;
2361 // Double_t lV0Eta = 999;
2363 // to study Associated V0s:
2364 Int_t lIndexTrackPos = 0, lIndexTrackNeg = 0;
2365 UInt_t lLabelTrackPos = 0, lLabelTrackNeg = 0;
2366 Int_t lCheckPIdK0Short = 0, lCheckMcK0Short = 0;
2367 Int_t lCheckPIdLambda = 0, lCheckMcLambda = 0;
2368 Int_t lCheckPIdAntiLambda = 0, lCheckMcAntiLambda = 0;
2369 Int_t lCheckSecondaryK0s = 0, lCheckSecondaryLambda = 0, lCheckSecondaryAntiLambda = 0;
2370 // Int_t lCheckGamma = 0;
2371 Double_t mcPosMotherX = 0, mcPosMotherY = 0, mcPosMotherZ = 0;
2372 Double_t mcPosMotherR = 0;
2373 // Double_t mcMotherPt = 0;
2375 Int_t lIndexPosMother = 0;
2376 Int_t lIndexNegMother = 0;
2377 Int_t lIndexMotherOfMother = 0;
2378 Int_t lPDGCodePosDaughter = 0;
2379 Int_t lPDGCodeNegDaughter = 0;
2380 Int_t lPdgcodeMother = 0;
2381 Int_t lPdgcodeMotherOfMother = 0;
2383 // Reconstructed position
2384 Double_t rcPosXK0s = 0, rcPosYK0s = 0, rcPosZK0s = 0;
2385 Double_t rcPosRK0s = 0;
2386 Double_t rcPosXLambda = 0, rcPosYLambda = 0, rcPosZLambda = 0;
2387 Double_t rcPosRLambda = 0;
2388 Double_t rcPosXAntiLambda = 0, rcPosYAntiLambda = 0, rcPosZAntiLambda = 0;
2389 Double_t rcPosRAntiLambda = 0;
2392 Double_t deltaPtK0s = 0, deltaPtLambda = 0, deltaPtAntiLambda = 0;
2395 AliESDtrack *myTrackPos = NULL;
2396 AliESDtrack *myTrackNeg = NULL;
2397 // AliVParticle *lVPartPos = NULL;
2398 // AliVParticle *lVPartNeg = NULL;
2401 //Double_t lPosMom = 0;
2402 //Double_t lNegMom = 0;
2403 // Double_t lPmom = 0;
2404 // Double_t lPLambda = 0;
2406 // Daughters' momentum:
2407 Double_t lMomPos[3] = {999,999,999};
2408 Double_t lMomNeg[3] = {999,999,999};
2409 // Double_t lPtPos = 999, lPtNeg = 999;
2410 // Double_t lPPos = 999, lPNeg = 999;
2412 // Inner Wall parameters:
2413 Double_t lMomInnerWallPos =999, lMomInnerWallNeg = 999;
2415 // AliKF Chi2 and Armenteros variables
2416 // Double_t lChi2KFK0s = 0, lChi2KFLambda = 0, lChi2KFAntiLambda = 0;
2417 // Double_t lAlphaV0K0s = 0, lAlphaV0Lambda = 0, lAlphaV0AntiLambda = 0;
2418 //Double_t lPtArmV0K0s = 0, lPtArmV0Lambda = 0, lPtArmV0AntiLambda = 0;
2419 // Double_t lQlPos = 0, lQlNeg = 0;
2423 Float_t nSigmaPosPion = 0;
2424 Float_t nSigmaNegPion = 0;
2426 Float_t nSigmaPosProton = 0;
2427 Float_t nSigmaNegProton = 0;
2430 // Int_t lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2431 Int_t lCheckPIDLambdaPosDaughter = 0;// lCheckPIDLambdaNegDaughter = 0;
2432 // Int_t lCheckPIDAntiLambdaPosDaughter = 0;
2433 Int_t lCheckPIDAntiLambdaNegDaughter = 0;
2437 //****************************************************
2438 // Primary Vertex cuts &
2439 // Magnetic field and Quality tracks cuts
2440 //****************************************************
2442 Double_t lPrimaryVtxPosition[3];
2443 Double_t lPrimaryVtxCov[6];
2444 Double_t lPrimaryVtxChi2 = 999;
2445 Double_t lResPrimaryVtxX = 999;
2446 Double_t lResPrimaryVtxY = 999;
2447 Double_t lResPrimaryVtxZ = 999;
2449 AliAODVertex *myPrimaryVertex = NULL;
2450 //const AliVVertex *mySPDPrimaryVertex = NULL;
2453 const AliMultiplicity *myMultiplicty = ((AliESDEvent*)fESD)->GetMultiplicity();
2455 if(fAnalysisType == "ESD") {
2456 ////////////////////////////////////////////////////////////////////////////////////
2457 ////// Best Primary Vertex:
2458 if(fCollidingSystems ==0 || fCollidingSystems == 1){ //pp, PbPb Analysis
2459 const AliESDVertex *myBestPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertex();
2460 myBestPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertex();
2461 if (!myBestPrimaryVertex) return;
2462 if (!myBestPrimaryVertex->GetStatus()) return;
2464 fHistNumberEvents->Fill(3.5);
2466 myBestPrimaryVertex->GetXYZ(lPrimaryVtxPosition);
2467 myBestPrimaryVertex->GetCovMatrix(lPrimaryVtxCov);
2468 if ( ( TMath::Abs(lPrimaryVtxPosition[2]) ) > cutPrimVertex) return ; //// cut on z of prim. vertex!!!!!
2469 fHistNumberEvents->Fill(4.5);
2470 lPrimaryVtxChi2 = myBestPrimaryVertex->GetChi2toNDF();
2471 lResPrimaryVtxX = myBestPrimaryVertex->GetXRes();
2472 lResPrimaryVtxY = myBestPrimaryVertex->GetYRes();
2473 lResPrimaryVtxZ = myBestPrimaryVertex->GetZRes();
2474 // remove TPC-only primary vertex : retain only events with tracking + SPD vertex
2475 const AliESDVertex *mySPDPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertexSPD();
2476 if (!mySPDPrimaryVertex) return;
2477 fHistSPDPrimaryVertexZ->Fill(mySPDPrimaryVertex->GetZ());
2478 const AliESDVertex *myPrimaryVertexTracking = ((AliESDEvent*)fESD)->GetPrimaryVertexTracks();
2479 if (!myPrimaryVertexTracking) return;
2480 if (!mySPDPrimaryVertex->GetStatus() && !myPrimaryVertexTracking->GetStatus() ) return;
2481 fHistNumberEvents->Fill(5.5);
2482 fHistTrackPerEvent->Fill(fESD->GetNumberOfTracks());
2483 myPrimaryVertex = new AliAODVertex(lPrimaryVtxPosition, lPrimaryVtxCov, lPrimaryVtxChi2, NULL, -1, AliAODVertex::kPrimary);
2484 if (!myPrimaryVertex) return;
2487 if(fCollidingSystems == 2){ //twiky https://twiki.cern.ch/twiki/bin/viewauth/ALICE/PAVertexSelectionStudies
2488 const AliESDVertex* trkVtx = ((AliESDEvent*)fESD)->GetPrimaryVertex();
2489 if (!trkVtx || trkVtx->GetNContributors()<=0) return;
2490 TString vtxTtl = trkVtx->GetTitle();
2491 if (!vtxTtl.Contains("VertexerTracks")) return;
2492 Float_t zvtx = trkVtx->GetZ();
2493 const AliESDVertex* spdVtx = ((AliESDEvent*)fESD)->GetPrimaryVertexSPD();
2494 if (spdVtx->GetNContributors()<=0) return;
2495 TString vtxTyp = spdVtx->GetTitle();
2496 Double_t cov[6]={0};
2497 spdVtx->GetCovarianceMatrix(cov);
2498 Double_t zRes = TMath::Sqrt(cov[5]);
2499 if (vtxTyp.Contains("vertexer:Z") && (zRes>0.25)) return;
2500 if (TMath::Abs(spdVtx->GetZ() - trkVtx->GetZ())>0.5) return;
2502 if (TMath::Abs(zvtx) > cutPrimVertex) return;
2507 // Number of Tracklets:
2509 fHistTrackletPerEvent->Fill(myMultiplicty->GetNumberOfTracklets());
2511 lMagneticField = ((AliESDEvent*)fESD)->GetMagneticField();
2513 fHistTPCTracks->Fill(AliESDtrackCuts::GetReferenceMultiplicity((AliESDEvent*)fESD, kTRUE));
2515 //////simple chack for multiplicity////////////////////////////////////////////////////////
2519 for (Int_t jTracks=0;jTracks<fESD->GetNumberOfTracks();jTracks++){
2521 AliESDtrack* tPCtrack=fESD->GetTrack(jTracks);
2524 tPCtrack->GetImpactParameters(xy,z);
2525 if ((fTracksCuts->IsSelected(tPCtrack))&&(xy<1.0)&&(z<1.0)) {i=i+1;}
2529 fHistTPCMult->Fill(i);
2531 /////////////////////////////////////////////////////////////////////////////////////////
2536 fHistPrimaryVertexX->Fill(lPrimaryVtxPosition[0]);
2537 fHistPrimaryVertexY->Fill(lPrimaryVtxPosition[1]);
2538 fHistPrimaryVertexZ->Fill(lPrimaryVtxPosition[2]);
2539 //Double_t lrcPrimVtxR = TMath::Sqrt(lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]+lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]);
2541 fHistPrimaryVertexResX->Fill(lResPrimaryVtxX);
2542 fHistPrimaryVertexResY->Fill(lResPrimaryVtxY);
2543 fHistPrimaryVertexResZ->Fill(lResPrimaryVtxZ);
2545 //***********************
2546 // AliKF Primary Vertex
2548 AliKFVertex primaryVtxKF( *myPrimaryVertex );
2549 AliKFParticle::SetField(lMagneticField);
2554 //***Rerun the V0 finder
2556 // fESD->ResetV0s();
2557 // AliV0vertexer v0Vertexer;
2558 // v0Vertexer.SetCuts(fCuts);
2559 // v0Vertexer.Tracks2V0vertices(fESD);
2561 ////*************************
2562 //// V0 loop ****************
2563 ////*************************
2565 nv0sTot = fESD->GetNumberOfV0s();
2566 if (!nv0sTot) fHistNumberEvents->Fill(6.5);
2568 for (Int_t iV0 = 0; iV0 < nv0sTot; iV0++) {
2570 lIndexPosMother = 0; lIndexNegMother = 0; lIndexMotherOfMother = 0;
2571 lCheckPIdK0Short = 0; lCheckMcK0Short = 0; lCheckSecondaryK0s = 0;
2572 lCheckPIdLambda = 0; lCheckMcLambda = 0; lCheckSecondaryLambda = 0;
2573 lCheckPIdAntiLambda = 0; lCheckMcAntiLambda = 0; lCheckSecondaryAntiLambda = 0;
2574 lComeFromSigma = 0; //lCheckGamma = 0;
2577 if(fAnalysisType == "ESD") {
2580 AliESDv0 *v0 = ((AliESDEvent*)fESD)->GetV0(iV0);
2583 // if ((v0->Pt())<0.6) continue;
2586 fHistPrimaryVertexPosXV0events->Fill(lPrimaryVtxPosition[0]);
2587 fHistPrimaryVertexPosYV0events->Fill(lPrimaryVtxPosition[1]);
2588 fHistPrimaryVertexPosZV0events->Fill(lPrimaryVtxPosition[2]);
2591 lIndexTrackPos = TMath::Abs(v0->GetPindex());
2592 lIndexTrackNeg = TMath::Abs(v0->GetNindex());
2593 AliESDtrack *myTrackPosTest = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2594 AliESDtrack *myTrackNegTest = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2595 if (!myTrackPosTest || !myTrackNegTest) {
2596 Printf("strange analysis::UserExec:: Error:Could not retreive one of the daughter track\n");
2600 if ((Int_t)myTrackPosTest->GetSign() == (Int_t)myTrackNegTest->GetSign()){
2604 // VO's main characteristics to check the reconstruction cuts
2605 lOnFlyStatus = v0->GetOnFlyStatus();
2606 lChi2V0 = v0->GetChi2V0();
2607 lDcaV0Daughters = v0->GetDcaV0Daughters();
2608 // lDcaV0ToPrimVertex = v0->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lPrimaryVtxPosition[2]);
2609 lV0cosPointAngle = v0->GetV0CosineOfPointingAngle(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1], lPrimaryVtxPosition[2]);
2611 v0->GetXYZ(lV0Position[0], lV0Position[1], lV0Position[2]);
2613 lV0Radius = TMath::Sqrt(lV0Position[0]*lV0Position[0]+lV0Position[1]*lV0Position[1]);
2614 lV0DecayLength = TMath::Sqrt(TMath::Power(lV0Position[0] - lPrimaryVtxPosition[0],2) +
2615 TMath::Power(lV0Position[1] - lPrimaryVtxPosition[1],2) +
2616 TMath::Power(lV0Position[2] - lPrimaryVtxPosition[2],2 ));
2617 lV0tDecayLength = TMath::Sqrt(TMath::Power(lV0Position[0] - lPrimaryVtxPosition[0],2) +
2618 TMath::Power(lV0Position[1] - lPrimaryVtxPosition[1],2));
2622 if( myTrackPosTest->GetSign() ==1){
2624 myTrackPos = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2625 myTrackNeg = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2627 // Daughters' momentum;
2628 v0->GetPPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
2629 v0->GetNPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
2632 if( myTrackPosTest->GetSign() ==-1){
2634 myTrackPos = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2635 myTrackNeg = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2638 // Daughters' momentum;
2639 v0->GetPPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
2640 v0->GetNPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
2643 lLabelTrackPos = (UInt_t)TMath::Abs(myTrackPos->GetLabel());
2644 lLabelTrackNeg = (UInt_t)TMath::Abs(myTrackNeg->GetLabel());
2646 // Daughters Pt and P:
2647 // lPtPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1]);
2648 // lPtNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1]);
2650 // lPPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1] + lMomPos[2]*lMomPos[2]);
2651 // lPNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1] + lMomNeg[2]*lMomNeg[2]);
2654 // lPosMom = myTrackPos->GetInnerParam()->GetP();
2656 // lNegMom = myTrackNeg->GetInnerParam()->GetP();
2658 // lPmom = TMath::Sqrt(lMomPos[0]*lMomPos[0]+lMomPos[1]*lMomPos[1]+lMomPos[2]+lMomPos[2]);
2662 // Inner Wall parameter:
2663 const AliExternalTrackParam *myInnerWallTrackPos = myTrackPos->GetInnerParam();
2665 if (myInnerWallTrackPos) {lMomInnerWallPos = myInnerWallTrackPos->GetP();}
2668 const AliExternalTrackParam *myInnerWallTrackNeg = myTrackNeg->GetInnerParam();
2670 if (myInnerWallTrackNeg) {lMomInnerWallNeg = myInnerWallTrackNeg->GetP();}
2674 // DCA between daughter and Primary Vertex:
2675 if (myTrackPos) lDcaPosToPrimVertex = TMath::Abs(myTrackPos->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) );
2677 if (myTrackNeg) lDcaNegToPrimVertex = TMath::Abs(myTrackNeg->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) );
2679 // Quality tracks cuts:
2680 if ( !(fTracksCuts->IsSelected(myTrackPos)) || !(fTracksCuts->IsSelected(myTrackNeg)) )
2683 if ( ( TMath::Abs(myTrackPos->Eta()) > lCutPseudorap ) || ( TMath::Abs(myTrackNeg->Eta()) > lCutPseudorap ) ) {continue;}
2685 // Armenteros variables:
2686 lAlphaV0 = v0->AlphaV0();
2687 lPtArmV0 = v0->PtArmV0();
2690 // lV0Eta = v0->Eta();
2691 //////////////////////////////////////////////////////////////////////////
2693 v0->ChangeMassHypothesis(310);
2694 lInvMassK0s = v0->GetEffMass();
2696 // lPzK0s = v0->Pz();
2698 v0->ChangeMassHypothesis(3122);
2699 lInvMassLambda = v0->GetEffMass();
2700 lPtLambda = v0->Pt();
2701 //lPzLambda = v0->Pz();
2704 v0->ChangeMassHypothesis(-3122);
2705 lInvMassAntiLambda = v0->GetEffMass();
2706 lPtAntiLambda = v0->Pt();
2707 //lPzAntiLambda = v0->Pz();
2711 lRapK0s = v0->Y(310);
2712 lRapLambda = v0->Y(3122);
2713 lRapAntiLambda = v0->Y(-3122);
2715 if (lPtK0s==0) {continue;}
2716 if (lPtLambda==0) {continue;}
2718 if (lPtAntiLambda==0) {continue;}
2720 ///////////////////////////////////////////////////////////////////////
2722 // PID new method July 2011
2723 if (fUsePID.Contains("withPID")) {
2724 // nSigmaPosPion = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackPos,AliPID::kPion));
2725 nSigmaPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kPion));
2726 // nSigmaNegPion = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackNeg,AliPID::kPion));
2727 nSigmaNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kPion));
2728 // nSigmaPosProton = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackPos,AliPID::kProton));
2729 nSigmaPosProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kProton));
2730 // nSigmaNegProton = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackNeg,AliPID::kProton));
2731 nSigmaNegProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kProton));
2735 nSigmaPosPion = 0; nSigmaNegPion =0; nSigmaPosProton = 0; nSigmaNegProton= 0;
2740 // Monte-Carlo particle associated to reconstructed particles:
2742 //if (lLabelTrackPos < 0 || lLabelTrackNeg < 0) continue;
2743 TParticle *lMCESDPartPos = stack->Particle(lLabelTrackPos);
2744 if(!lMCESDPartPos) {
2745 // Printf("no MC particle for positive and/or negative daughter\n");
2748 TParticle *lMCESDPartNeg = stack->Particle(lLabelTrackNeg);
2749 if (!lMCESDPartNeg) { continue;}
2750 lPDGCodePosDaughter = lMCESDPartPos->GetPdgCode();
2751 lPDGCodeNegDaughter = lMCESDPartNeg->GetPdgCode();
2752 lIndexPosMother = lMCESDPartPos->GetFirstMother();
2753 lIndexNegMother = lMCESDPartNeg->GetFirstMother();
2755 //////////////////////////////
2756 // if (lIndexPosMother == -1) {
2757 // if (negPiKF) delete negPiKF; negPiKF=NULL;
2758 // if (posPiKF) delete posPiKF; posPiKF=NULL;
2759 // if (posPKF) delete posPKF; posPKF=NULL;
2760 // if (negAPKF) delete negAPKF; negAPKF=NULL;
2764 if (lIndexPosMother == -1) {
2768 lIndexMotherOfMother = 0;
2784 TParticle *lMCESDMother = stack->Particle(lIndexPosMother);
2785 if (!lMCESDMother) { continue;}
2786 lPdgcodeMother = lMCESDMother->GetPdgCode();
2787 lIndexMotherOfMother = lMCESDMother->GetFirstMother();
2788 if (lIndexMotherOfMother ==-1) lPdgcodeMotherOfMother = 0;
2790 TParticle *lMCESDMotherOfMother = stack->Particle(lIndexMotherOfMother);
2791 if (!lMCESDMotherOfMother) { continue;}
2792 lPdgcodeMotherOfMother = lMCESDMotherOfMother->GetPdgCode();
2795 mcPosX = lMCESDPartPos->Vx();
2796 mcPosY = lMCESDPartPos->Vy();
2797 mcPosZ = lMCESDPartPos->Vz();
2798 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
2799 mcPosMotherX = lMCESDMother->Vx();
2800 mcPosMotherY = lMCESDMother->Vy();
2801 mcPosMotherZ = lMCESDMother->Vz();
2802 mcPosMotherR = TMath::Sqrt(mcPosMotherX*mcPosMotherX+mcPosMotherY*mcPosMotherY);
2804 // mcMotherPt = lMCESDMother->Pt();
2807 } // end ESD condition
2815 if(!lOnFlyStatus) nv0s++;
2816 // else if(lOnFlyStatus) nv0sMI++;
2818 // Daughter momentum cut: ! FIX it in case of AOD !
2819 //if ( (lPtPos < cutMinPtDaughter ) ||
2820 // (lPtNeg < cutMinPtDaughter )
2823 // Look for associated particles:
2825 if( (lIndexPosMother==-1) || (lIndexNegMother==-1) ) {
2826 fHistMCDaughterTrack->Fill(1);
2829 else if( ( (lPDGCodePosDaughter==+211) && (lPDGCodeNegDaughter==-211) ) )
2831 lCheckPIdK0Short = 1;
2832 fHistMCDaughterTrack->Fill(3);
2833 if ( (lIndexPosMother==lIndexNegMother) &&
2834 (lPdgcodeMother==310) ) {
2837 //if (lIndexPosMother <= lNbMCPrimary) lCheckMcK0Short = 1;
2838 //else lCheckSecondaryK0s = 1;
2843 Double_t ProdDistance = 0;
2845 dx = ( (mcPrimaryVtx.At(0)) - (mcPosMotherX) );
2846 dy = ( (mcPrimaryVtx.At(1)) - (mcPosMotherY) );
2847 dz = ( (mcPrimaryVtx.At(2)) - (mcPosMotherZ) );
2849 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2851 if (ProdDistance < 0.001) lCheckMcK0Short = 1;
2852 else lCheckSecondaryK0s = 1;
2856 else if( ( (lPDGCodePosDaughter==+2212) && (lPDGCodeNegDaughter==-211) ) )
2858 lCheckPIdLambda = 1;
2859 fHistMCDaughterTrack->Fill(5);
2860 if ( (lIndexPosMother==lIndexNegMother) &&
2861 (lPdgcodeMother==3122) ){
2862 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2863 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2864 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2865 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2866 ) lComeFromSigma = 1;
2867 else lComeFromSigma = 0;
2870 // if ( (lIndexPosMother <= lNbMCPrimary) ||
2871 // ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) )
2872 // ) lCheckMcLambda = 1;
2873 // else lCheckSecondaryLambda = 1;
2878 Double_t ProdDistance = 0;
2880 dx = ( (mcPrimaryVtx.At(0)) - (mcPosMotherX) );
2881 dy = ( (mcPrimaryVtx.At(1)) - (mcPosMotherY) );
2882 dz = ( (mcPrimaryVtx.At(2)) - (mcPosMotherZ) );
2884 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2886 if (ProdDistance < 0.001) lCheckMcLambda = 1;
2887 else lCheckSecondaryLambda = 1;
2892 else if( ( (lPDGCodePosDaughter==211) && (lPDGCodeNegDaughter==-2212) ) )
2894 lCheckPIdAntiLambda = 1;
2895 fHistMCDaughterTrack->Fill(7);
2896 if ( (lIndexPosMother==lIndexNegMother) &&
2897 (lPdgcodeMother==-3122) ) {
2898 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2899 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2900 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2901 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2902 ) lComeFromSigma = 1;
2903 else lComeFromSigma = 0;
2905 // if ( (lIndexPosMother <= lNbMCPrimary) ||
2906 // ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) )
2907 // ) lCheckMcAntiLambda = 1;
2908 // else lCheckSecondaryAntiLambda = 1;
2913 Double_t ProdDistance = 0;
2915 dx = ( (mcPrimaryVtx.At(0)) - (mcPosMotherX) );
2916 dy = ( (mcPrimaryVtx.At(1)) - (mcPosMotherY) );
2917 dz = ( (mcPrimaryVtx.At(2)) - (mcPosMotherZ) );
2919 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2921 if (ProdDistance < 0.001) lCheckMcAntiLambda = 1;
2922 else lCheckSecondaryAntiLambda = 1;
2928 // else if ( (lPDGCodePosDaughter==-11) &&
2929 // (lPDGCodeNegDaughter==11) &&
2930 // (lPdgcodeMother==22 ) )
2933 } // end "look for associated particles
2935 /////////////////////////////////////
2936 // PID condition for daughters tracks
2937 //////////////////////////////////////
2939 // lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2940 lCheckPIDLambdaPosDaughter = 0;//, lCheckPIDLambdaNegDaughter = 0;
2941 //lCheckPIDAntiLambdaPosDaughter = 0;,
2942 lCheckPIDAntiLambdaNegDaughter = 0;
2944 if (lMomInnerWallPos < lLimitPPID) {
2945 if (nSigmaPosPion < cutNSigmaLowP) {
2946 // lCheckPIDK0sPosDaughter = 1;
2947 //lCheckPIDAntiLambdaPosDaughter = 1;
2949 if (nSigmaPosProton < cutNSigmaLowP) lCheckPIDLambdaPosDaughter = 1;
2952 else if (lMomInnerWallPos > lLimitPPID) {
2953 if (nSigmaPosPion < cutNSigmaHighP) {
2954 // lCheckPIDK0sPosDaughter = 1;
2955 // lCheckPIDAntiLambdaPosDaughter = 1;
2957 if (nSigmaPosProton < cutNSigmaHighP) lCheckPIDLambdaPosDaughter = 1;
2960 if (lMomInnerWallNeg < lLimitPPID) {
2961 if (nSigmaNegPion < cutNSigmaLowP) {
2962 // lCheckPIDK0sNegDaughter = 1;
2963 // lCheckPIDLambdaNegDaughter = 1;
2965 if (nSigmaNegProton < cutNSigmaLowP) lCheckPIDAntiLambdaNegDaughter = 1;
2968 else if (lMomInnerWallNeg > lLimitPPID) {
2969 if (nSigmaNegPion < cutNSigmaHighP) {
2970 // lCheckPIDK0sNegDaughter = 1;
2971 // lCheckPIDLambdaNegDaughter = 1;
2973 if (nSigmaNegProton < cutNSigmaHighP) lCheckPIDAntiLambdaNegDaughter = 1;
2978 ///////////////values for cuts/////////////////////////////////////////////////////////////////////////////////////////
2979 if ((lDcaPosToPrimVertex < 0.1) || (lDcaNegToPrimVertex < 0.1) || (lDcaV0Daughters > 1.00) ||
2980 (lV0cosPointAngle < 0.998) || (lV0Radius < 0.9) || (lV0Radius > 100) )
2985 if (negPiKF) delete negPiKF; negPiKF=NULL;
2986 if (posPiKF) delete posPiKF; posPiKF=NULL;
2987 if (posPKF) delete posPKF; posPKF=NULL;
2988 if (negAPKF) delete negAPKF; negAPKF=NULL;
2991 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2995 /////////////////////////////////
2996 //PID for Lambda and AntiLambda
2997 /////////////////////////////////
2999 if(fUsePID.Contains("withPID") && (lCheckPIDAntiLambdaNegDaughter==0) && (lCheckPIDLambdaPosDaughter==1)) LambdaPID = 1;
3003 if(fUsePID.Contains("withPID") && (lCheckPIDLambdaPosDaughter==0) && (lCheckPIDAntiLambdaNegDaughter==1)) AntiLambdaPID = 1;
3005 else AntiLambdaPID =0;
3008 ///////////////////////////////////////////////////////////////////////////////////////////
3009 // if ((LambdaPID==1 && lPosMom <=1) || (lPosMom>1) || !(fUsePID.Contains("withPID"))){
3010 // if ((TMath::Abs(lRapLambda) < lCutRap) && lOnFlyStatus==0) {
3011 // fHistTPCsigPLambda->Fill(lPosMom,myTrackPos->GetTPCsignal());
3013 // TestTrackCuts->SetRequireITSRefit(kFALSE);
3014 // if(TestTrackCuts->IsSelected(myTrackPos)) fHistPtTracksP->Fill(V0mom[2]);
3015 // TestTrackCuts->SetRequireITSRefit(kTRUE);
3016 // if(TestTrackCuts->IsSelected(myTrackPos)) fHistPtTracksPITSRefit->Fill(V0mom[2]);
3021 // if ((AntiLambdaPID==1 && lNegMom <=1) || (lNegMom>1) || !(fUsePID.Contains("withPID"))){
3022 // if ((TMath::Abs(lRapAntiLambda) < lCutRap) && lOnFlyStatus==0) {
3023 // fHistTPCsigPAntiLambda->Fill(lNegMom,myTrackNeg->GetTPCsignal());
3027 ///////////////////////////////////////////////////////////////////////////////////////////////
3030 // lPLambda = TMath::Sqrt(lPzLambda*lPzLambda + lPtLambda*lPtLambda);
3031 // lPtLambda = TMath::Sqrt(lPzLambda*lPzLambda + lPtLambda*lPtLambda);
3033 // lPAntiLambda = TMath::Sqrt(lPzAntiLambda*lPzAntiLambda + lPtAntiLambda*lPtAntiLambda);
3034 // lPtAntiLambda = TMath::Sqrt(lPtAntiLambda*lPtAntiLambda);
3036 // lPK0s = TMath::Sqrt(lPzK0s*lPzK0s + lPtK0s*lPtK0s);
3037 // lPtK0s = TMath::Sqrt(lPtK0s*lPtK0s);
3039 // lcTau = (lV0DecayLength*lLambdaMass)/lPLambda;
3042 lcTauLambda = (lV0tDecayLength*lInvMassLambda)/lPtLambda;
3044 //ctau for antilambda
3045 lcTauAntiLambda = (lV0tDecayLength*lInvMassAntiLambda)/lPtAntiLambda;
3048 lcTauK0s = (lV0tDecayLength*lInvMassK0s)/lPtK0s;
3051 //*****************************
3052 // filling histograms
3053 //*****************************
3055 if (lPLambda <1 && lOnFlyStatus==0 ){
3056 fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
3067 if (TMath::Abs(lRapK0s) < lCutRap ) {
3068 if (lOnFlyStatus==0){
3069 fHistTranscTauVsMassK0s->Fill(lcTauK0s,lInvMassK0s);
3070 if (TMath::Abs(lRapK0s) < 0.3)
3071 fHistTranscTauVsMassK0sRap3->Fill(lcTauK0s,lInvMassK0s);
3072 if (lPtK0s >= 3 && lPtK0s <= 6 )
3074 fHistTranscTauVsMassK0sptLow->Fill(lcTauK0s,lInvMassK0s);
3075 if (TMath::Abs(lRapK0s) < 0.3)
3076 fHistTranscTauVsMassK0sptLowRap3->Fill(lcTauK0s,lInvMassK0s);
3080 if (lcTauK0s< cutcTauK0s) {
3082 //////2D histos: cut vs on fly status/////////////////////
3084 fHistDcaPosToPrimVertexK0->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
3085 fHistDcaNegToPrimVertexK0->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
3086 fHistRadiusV0K0->Fill(lV0Radius,lOnFlyStatus);
3087 fHistDecayLengthV0K0->Fill(lV0DecayLength,lOnFlyStatus);
3088 fHistDcaV0DaughtersK0->Fill(lDcaV0Daughters,lOnFlyStatus);
3089 fHistChi2K0->Fill(lChi2V0,lOnFlyStatus);
3090 fHistCosPointAngleK0->Fill(lV0cosPointAngle,lOnFlyStatus);
3092 //////2D histos: cut vs mass/////////////////////
3094 if (lOnFlyStatus==0){
3097 fHistMassK0->Fill(lInvMassK0s);
3098 fHistMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
3099 fHistPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
3102 if (TMath::Abs(lRapK0s) < 0.3 ) fHistPtVsMassK0Rap3->Fill(lInvMassK0s,lPtK0s);
3104 fHistDcaPosToPrimVertexK0vsMassK0->Fill(lDcaPosToPrimVertex,lInvMassK0s);
3105 fHistDcaNegToPrimVertexK0vsMassK0->Fill(lDcaNegToPrimVertex,lInvMassK0s);
3106 fHistRadiusV0K0vsMassK0->Fill(lV0Radius,lInvMassK0s);
3107 fHistDecayLengthV0K0vsMassK0->Fill(lV0DecayLength,lInvMassK0s);
3108 fHistDcaV0DaughtersK0vsMassK0->Fill(lDcaV0Daughters,lInvMassK0s);
3109 fHistCosPointAngleK0vsMassK0->Fill(lV0cosPointAngle,lInvMassK0s);
3111 if (lPtK0s>0 && lPtK0s <3){
3112 fHistDcaPosToPrimVertexK0vsMassK0pt1->Fill(lDcaPosToPrimVertex,lInvMassK0s);
3113 fHistDcaNegToPrimVertexK0vsMassK0pt1->Fill(lDcaNegToPrimVertex,lInvMassK0s);
3114 fHistRadiusV0K0vsMassK0pt1->Fill(lV0Radius,lInvMassK0s);
3115 fHistDecayLengthV0K0vsMassK0pt1->Fill(lV0DecayLength,lInvMassK0s);
3116 fHistDcaV0DaughtersK0vsMassK0pt1->Fill(lDcaV0Daughters,lInvMassK0s);
3117 fHistCosPointAngleK0vsMassK0pt1->Fill(lV0cosPointAngle,lInvMassK0s);
3119 if (lPtK0s > 3 && lPtK0s < 6){
3120 fHistDcaPosToPrimVertexK0vsMassK0pt2->Fill(lDcaPosToPrimVertex,lInvMassK0s);
3121 fHistDcaNegToPrimVertexK0vsMassK0pt2->Fill(lDcaNegToPrimVertex,lInvMassK0s);
3122 fHistRadiusV0K0vsMassK0pt2->Fill(lV0Radius,lInvMassK0s);
3123 fHistDecayLengthV0K0vsMassK0pt2->Fill(lV0DecayLength,lInvMassK0s);
3124 fHistDcaV0DaughtersK0vsMassK0pt2->Fill(lDcaV0Daughters,lInvMassK0s);
3125 fHistCosPointAngleK0vsMassK0pt2->Fill(lV0cosPointAngle,lInvMassK0s);
3127 if (lPtK0s > 6 && lPtK0s < 10){
3128 fHistDcaPosToPrimVertexK0vsMassK0pt3->Fill(lDcaPosToPrimVertex,lInvMassK0s);
3129 fHistDcaNegToPrimVertexK0vsMassK0pt3->Fill(lDcaNegToPrimVertex,lInvMassK0s);
3130 fHistRadiusV0K0vsMassK0pt3->Fill(lV0Radius,lInvMassK0s);
3131 fHistDecayLengthV0K0vsMassK0pt3->Fill(lV0DecayLength,lInvMassK0s);
3132 fHistDcaV0DaughtersK0vsMassK0pt3->Fill(lDcaV0Daughters,lInvMassK0s);
3133 fHistCosPointAngleK0vsMassK0pt3->Fill(lV0cosPointAngle,lInvMassK0s);
3137 } // if rap. condition
3148 if ((LambdaPID==1 && lMomInnerWallPos <=1 ) || (lMomInnerWallPos > 1) || !(fUsePID.Contains("withPID") )){
3150 if (TMath::Abs(lRapLambda) < lCutRap) {
3151 if (lOnFlyStatus==0) {
3152 fHistTranscTauVsMassL->Fill(lcTauLambda,lInvMassLambda);
3153 if (TMath::Abs(lRapLambda) < 0.3)
3154 fHistTranscTauVsMassLRap3->Fill(lcTauLambda,lInvMassLambda);
3155 if (lPtLambda >= 3 && lPtLambda <= 6 )
3157 fHistTranscTauVsMassLptLow->Fill(lcTauLambda,lInvMassLambda);
3158 if (TMath::Abs(lRapLambda) < 0.3)
3159 fHistTranscTauVsMassLptLowRap3->Fill(lcTauLambda,lInvMassLambda);
3163 if (lcTauLambda < cutcTauL){
3164 //////2D histos: cut vs on fly status/////////////////////
3166 fHistDcaPosToPrimVertexL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
3167 fHistDcaNegToPrimVertexL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
3168 fHistRadiusV0L->Fill(lV0Radius,lOnFlyStatus);
3169 fHistDecayLengthV0L->Fill(lV0DecayLength,lOnFlyStatus);
3170 fHistDcaV0DaughtersL->Fill(lDcaV0Daughters,lOnFlyStatus);
3171 fHistChi2L->Fill(lChi2V0,lOnFlyStatus);
3172 fHistCosPointAngleL->Fill(lV0cosPointAngle,lOnFlyStatus);
3174 //////2D histos: cut vs mass/////////////////////
3176 if (lOnFlyStatus==0){
3177 fHistMassLambda->Fill(lInvMassLambda);
3178 fHistMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
3179 fHistPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
3181 if (TMath::Abs(lRapLambda) < 0.3 ) fHistPtVsMassLambdaRap3->Fill(lInvMassLambda,lPtLambda);
3183 if(lPtLambda <=1) fHistNSigmaProton->Fill(nSigmaPosProton);
3185 fHistDcaPosToPrimVertexLvsMassL->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3186 fHistDcaNegToPrimVertexLvsMassL->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3187 fHistRadiusV0LvsMassL->Fill(lV0Radius,lInvMassLambda);
3188 fHistDecayLengthV0LvsMassL->Fill(lV0DecayLength,lInvMassLambda);
3189 fHistDcaV0DaughtersLvsMassL->Fill(lDcaV0Daughters,lInvMassLambda);
3190 fHistCosPointAngleLvsMassL->Fill(lV0cosPointAngle,lInvMassLambda);
3193 if (lPtLambda>0 && lPtLambda <3){
3194 fHistDcaPosToPrimVertexLambdaVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3195 fHistDcaNegToPrimVertexLambdaVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3196 fHistRadiusV0LambdaVsMasspt1->Fill(lV0Radius,lInvMassLambda);
3197 fHistDecayLengthV0LambdaVsMasspt1->Fill(lV0DecayLength,lInvMassLambda);
3198 fHistDcaV0DaughtersLambdaVsMasspt1->Fill(lDcaV0Daughters,lInvMassLambda);
3199 fHistCosPointAngleLambdaVsMasspt1->Fill(lV0cosPointAngle,lInvMassLambda);
3201 if (lPtLambda > 3 && lPtLambda < 6){
3202 fHistDcaPosToPrimVertexLambdaVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3203 fHistDcaNegToPrimVertexLambdaVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3204 fHistRadiusV0LambdaVsMasspt2->Fill(lV0Radius,lInvMassLambda);
3205 fHistDecayLengthV0LambdaVsMasspt2->Fill(lV0DecayLength,lInvMassLambda);
3206 fHistDcaV0DaughtersLambdaVsMasspt2->Fill(lDcaV0Daughters,lInvMassLambda);
3207 fHistCosPointAngleLambdaVsMasspt2->Fill(lV0cosPointAngle,lInvMassLambda);
3209 if (lPtLambda > 6 && lPtLambda < 10){
3210 fHistDcaPosToPrimVertexLambdaVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3211 fHistDcaNegToPrimVertexLambdaVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3212 fHistRadiusV0LambdaVsMasspt3->Fill(lV0Radius,lInvMassLambda);
3213 fHistDecayLengthV0LambdaVsMasspt3->Fill(lV0DecayLength,lInvMassLambda);
3214 fHistDcaV0DaughtersLambdaVsMasspt3->Fill(lDcaV0Daughters,lInvMassLambda);
3215 fHistCosPointAngleLambdaVsMasspt3->Fill(lV0cosPointAngle,lInvMassLambda);
3219 }// end ctau condition
3220 } //end of Rap condition
3221 }// end of PID condition
3224 //////////////////////////////
3225 // Anti Lambda ///////////////
3226 //////////////////////////////
3230 if ((AntiLambdaPID==1 && lMomInnerWallNeg <=1) || (lMomInnerWallNeg>1) || !(fUsePID.Contains("withPID"))){
3232 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
3233 if (lOnFlyStatus==0) {
3234 fHistTranscTauVsMassAntiL->Fill(lcTauAntiLambda,lInvMassAntiLambda);
3235 if (TMath::Abs(lRapAntiLambda) < 0.3)
3236 fHistTranscTauVsMassAntiLRap3->Fill(lcTauAntiLambda,lInvMassAntiLambda);
3237 if (lPtAntiLambda >= 3 && lPtAntiLambda <= 6 )
3239 fHistTranscTauVsMassAntiLptLow->Fill(lcTauAntiLambda,lInvMassAntiLambda);
3240 if (TMath::Abs(lRapAntiLambda) < 0.3)
3241 fHistTranscTauVsMassAntiLptLowRap3->Fill(lcTauAntiLambda,lInvMassAntiLambda);
3245 if (lcTauAntiLambda < cutcTauL){
3246 //////2D histos: cut vs on fly status/////////////////////
3248 fHistDcaPosToPrimVertexAntiL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
3249 fHistDcaNegToPrimVertexAntiL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
3250 fHistRadiusV0AntiL->Fill(lV0Radius,lOnFlyStatus);
3251 fHistDecayLengthV0AntiL->Fill(lV0DecayLength,lOnFlyStatus);
3252 fHistDcaV0DaughtersAntiL->Fill(lDcaV0Daughters,lOnFlyStatus);
3253 fHistChi2AntiL->Fill(lChi2V0,lOnFlyStatus);
3254 fHistCosPointAngleAntiL->Fill(lV0cosPointAngle,lOnFlyStatus);
3256 //////2D histos: cut vs mass/////////////////////
3258 if (lOnFlyStatus==0){
3260 fHistMassAntiLambda->Fill(lInvMassAntiLambda);
3261 fHistMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
3262 fHistPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
3264 if (TMath::Abs(lRapAntiLambda) < 0.3) fHistPtVsMassAntiLambdaRap3->Fill(lInvMassAntiLambda,lPtAntiLambda);
3267 fHistDcaPosToPrimVertexAntiLvsMass->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3268 fHistDcaNegToPrimVertexAntiLvsMass->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3269 fHistRadiusV0AntiLvsMass->Fill(lV0Radius,lInvMassAntiLambda);
3270 fHistDecayLengthV0AntiLvsMass->Fill(lV0DecayLength,lInvMassAntiLambda);
3271 fHistDcaV0DaughtersAntiLvsMass->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3272 fHistCosPointAngleAntiLvsMass->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3275 if (lPtAntiLambda>0 && lPtAntiLambda <3){
3276 fHistDcaPosToPrimVertexAntiLVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3277 fHistDcaNegToPrimVertexAntiLVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3278 fHistRadiusV0AntiLVsMasspt1->Fill(lV0Radius,lInvMassAntiLambda);
3279 fHistDecayLengthV0AntiLVsMasspt1->Fill(lV0DecayLength,lInvMassAntiLambda);
3280 fHistDcaV0DaughtersAntiLVsMasspt1->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3281 fHistCosPointAngleAntiLVsMasspt1->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3283 if (lPtAntiLambda > 3 && lPtAntiLambda < 6){
3284 fHistDcaPosToPrimVertexAntiLVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3285 fHistDcaNegToPrimVertexAntiLVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3286 fHistRadiusV0AntiLVsMasspt2->Fill(lV0Radius,lInvMassAntiLambda);
3287 fHistDecayLengthV0AntiLVsMasspt2->Fill(lV0DecayLength,lInvMassAntiLambda);
3288 fHistDcaV0DaughtersAntiLVsMasspt2->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3289 fHistCosPointAngleAntiLVsMasspt2->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3291 if (lPtAntiLambda > 6 && lPtAntiLambda < 10){
3292 fHistDcaPosToPrimVertexAntiLVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3293 fHistDcaNegToPrimVertexAntiLVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3294 fHistRadiusV0AntiLVsMasspt3->Fill(lV0Radius,lInvMassAntiLambda);
3295 fHistDecayLengthV0AntiLVsMasspt3->Fill(lV0DecayLength,lInvMassAntiLambda);
3296 fHistDcaV0DaughtersAntiLVsMasspt3->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3297 fHistCosPointAngleAntiLVsMasspt3->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3301 } //end of Rap condition
3302 } // end of PID condition
3308 // Histo versus Rap and armenteros plot
3310 if (lCheckMcK0Short) fHistAsMcRapK0->Fill(lRapK0s);
3311 if (lCheckMcLambda) fHistAsMcRapLambda->Fill(lRapLambda);
3312 if (lCheckMcAntiLambda) fHistAsMcRapLambda->Fill(lRapAntiLambda);
3313 // fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
3314 if ((TMath::Abs(lRapK0s) < lCutRap)&&(TMath::Abs(lRapLambda) < lCutRap)) fHistK0sMassVsLambdaMass->Fill(lInvMassK0s,lInvMassLambda);
3318 ///////////////////////////////////////////////////
3319 // K0s associated histograms in |rap| < lCutRap:
3320 ///////////////////////////////////////////////////
3325 if (TMath::Abs(lRapK0s) < lCutRap) {
3327 switch (lOnFlyStatus){
3329 if(lCheckMcK0Short) {
3330 fHistAsMcTranscTauK0s->Fill(lcTauK0s);
3331 if (TMath::Abs(lRapK0s) < 0.3)
3332 fHistAsMcTranscTauK0sRap3->Fill(lcTauK0s);
3333 if (lPtK0s >= 3 && lPtK0s <= 6 )
3335 fHistAsMcTranscTauK0sptLow->Fill(lcTauK0s);
3336 if (TMath::Abs(lRapK0s) < 0.3)
3337 fHistAsMcTranscTauK0sptLowRap3->Fill(lcTauK0s);
3340 if (lcTauK0s< cutcTauK0s) {
3341 fHistNsigmaPosPionK0->Fill(nSigmaPosPion);
3342 fHistNsigmaNegPionK0->Fill(nSigmaNegPion);
3345 // fHistMultVsPtVsMassK0->Fill(multiplicity ,lInvMassK0s,lPtK0s);
3346 if(lCheckPIdK0Short) fHistPidMcMassK0->Fill(lInvMassK0s);
3347 if(lCheckMcK0Short) {
3348 fHistAsMcMassK0->Fill(lInvMassK0s);
3349 fHistAsMcPtK0->Fill(lPtK0s);
3350 fHistAsMcPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
3353 if (TMath::Abs(lRapK0s) < 0.3){
3354 fHistAsMcMassK0Rap3->Fill(lInvMassK0s);
3355 fHistAsMcPtK0Rap3->Fill(lPtK0s);
3356 fHistAsMcPtVsMassK0Rap3->Fill(lInvMassK0s,lPtK0s);
3360 if (lPtK0s <= 1) fHistAsMcPtZoomK0->Fill(lPtK0s);
3361 fHistAsMcMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
3362 fHistAsMcResxK0->Fill(rcPosXK0s-mcPosX);
3363 fHistAsMcResyK0->Fill(rcPosYK0s-mcPosY);
3364 fHistAsMcReszK0->Fill(rcPosZK0s-mcPosZ);
3365 fHistAsMcResrVsRadiusK0->Fill(rcPosRK0s,rcPosRK0s-mcPosR);
3366 fHistAsMcReszVsRadiusK0->Fill(rcPosZK0s,rcPosZK0s-mcPosZ);
3367 fHistAsMcProdRadiusK0->Fill(mcPosMotherR);
3368 fHistAsMcProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
3369 fHistAsMcResPtK0->Fill(deltaPtK0s);
3370 fHistAsMcResPtVsRapK0->Fill(deltaPtK0s,lRapK0s);
3371 fHistAsMcResPtVsPtK0->Fill(deltaPtK0s,lPtK0s);
3373 else if (lCheckSecondaryK0s) {
3374 fHistAsMcSecondaryPtVsRapK0s->Fill(lPtK0s,lRapK0s);
3375 fHistAsMcSecondaryProdRadiusK0s->Fill(mcPosMotherR);
3376 fHistAsMcSecondaryProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
3377 switch (lPdgcodeMotherOfMother) {
3378 case 130 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(0.5);break; // K0L
3379 case 321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(1.5);break; // K+
3380 case -321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(2.5);break; // K-
3381 case -3122 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(3.5);break; //AntiLambda
3382 default : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(6.5);break;
3388 } // end rapidity condition
3391 ///////////////////////////////////////////////////
3392 // Associated Lambda histograms in |rap| < lCutRap
3393 ////////////////////////////////////////////////////
3397 if ((LambdaPID==1 && lMomInnerWallPos <=1) || (lMomInnerWallPos>1) || !(fUsePID.Contains("withPID"))){
3399 if (TMath::Abs(lRapLambda) < lCutRap) {
3400 switch (lOnFlyStatus){
3402 if(lCheckMcLambda) {
3403 fHistAsMcTranscTauL->Fill(lcTauLambda);
3404 if (TMath::Abs(lRapLambda) < 0.3)
3405 fHistAsMcTranscTauLRap3->Fill(lcTauLambda);
3406 if (lPtLambda >= 3 && lPtLambda <= 6 )
3408 fHistAsMcTranscTauLptLow->Fill(lcTauLambda);
3409 if (TMath::Abs(lRapLambda) < 0.3)
3410 fHistAsMcTranscTauLptLowRap3->Fill(lcTauLambda);
3414 if (lcTauLambda < cutcTauL){
3415 fHistNsigmaPosProtonLambda->Fill(nSigmaPosProton);
3416 fHistNsigmaNegPionLambda->Fill(nSigmaNegPion);
3418 // fHistMultVsPtVsMassLambda->Fill(multiplicity ,lInvMassLambda,lPtLambda);
3419 if(lCheckPIdLambda) fHistPidMcMassLambda->Fill(lInvMassLambda);
3421 if(lCheckMcLambda) {
3423 fHistAsMcMassLambda->Fill(lInvMassLambda);
3424 fHistAsMcPtLambda->Fill(lPtLambda);
3425 // fHistCosPointAngleLvsMassVsPtsigL->Fill(lPtLambda,lV0cosPointAngle,lInvMassLambda);
3426 fHistAsMcPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
3429 if (TMath::Abs(lRapLambda) < 0.3) {
3430 fHistAsMcMassLambdaRap3->Fill(lInvMassLambda);
3431 fHistAsMcPtLambdaRap3->Fill(lPtLambda);
3432 fHistAsMcPtVsMassLambdaRap3->Fill(lInvMassLambda,lPtLambda);
3436 if (lPtLambda <= 1) fHistAsMcPtZoomLambda->Fill(lPtLambda);
3437 fHistAsMcMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
3438 fHistAsMcResxLambda->Fill(rcPosXLambda-mcPosX);
3439 fHistAsMcResyLambda->Fill(rcPosYLambda-mcPosY);
3440 fHistAsMcReszLambda->Fill(rcPosZLambda-mcPosZ);
3441 fHistAsMcResrVsRadiusLambda->Fill(rcPosRLambda,rcPosRLambda-mcPosR);
3442 fHistAsMcReszVsRadiusLambda->Fill(rcPosZLambda,rcPosZLambda-mcPosZ);
3443 fHistAsMcProdRadiusLambda->Fill(mcPosMotherR);
3444 fHistAsMcProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
3445 fHistAsMcResPtLambda->Fill(deltaPtLambda);
3446 fHistAsMcResPtVsRapLambda->Fill(deltaPtLambda,lRapLambda);
3447 fHistAsMcResPtVsPtLambda->Fill(deltaPtLambda,lPtLambda);
3448 if (lComeFromSigma) fHistAsMcPtLambdaFromSigma->Fill(lPtLambda);
3449 switch (lPdgcodeMotherOfMother) {
3450 case 3222 : fHistAsMcMotherPdgCodeLambda->Fill(0.5); break; // Sigma +
3451 case 3212 : fHistAsMcMotherPdgCodeLambda->Fill(1.5); break; // Sigma 0
3452 case 3112 : fHistAsMcMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
3453 case 3224 : fHistAsMcMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
3454 case 3214 : fHistAsMcMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
3455 case 3114 : fHistAsMcMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
3456 case 3322 : fHistAsMcMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
3457 case 3312 : fHistAsMcMotherPdgCodeLambda->Fill(7.5); break; // Xi -
3458 case 3334 : fHistAsMcMotherPdgCodeLambda->Fill(8.5); break; // Omega
3459 case -1 : fHistAsMcMotherPdgCodeLambda->Fill(9.5); break;
3460 default : fHistAsMcMotherPdgCodeLambda->Fill(10.5);break;
3463 //printf("found Lambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtLambda,lInvMassLambda);
3464 //printf("found Lambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
3468 else if (lCheckSecondaryLambda) {
3469 fHistAsMcSecondaryPtVsRapLambda->Fill(lPtLambda,lRapLambda);
3470 fHistAsMcSecondaryProdRadiusLambda->Fill(mcPosMotherR);
3471 fHistAsMcSecondaryProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
3472 if (lComeFromSigma) fHistAsMcSecondaryPtLambdaFromSigma->Fill(lPtLambda);
3473 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
3474 switch (lPdgcodeMotherOfMother) {
3475 case 3222 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(0.5); break;// Sigma +
3476 case 3212 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(1.5); break;// Sigma 0
3477 case 3112 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
3478 case 3224 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
3479 case 3214 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
3480 case 3114 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
3481 case 3322 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
3482 case 3312 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(7.5); break; // Xi -
3483 case 3334 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(8.5); break; // Omega
3484 case -1 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(9.5); break;
3485 default : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(10.5);break;
3489 // if(!lCheckMcLambda)fHistCosPointAngleLvsMassVsPtbackL->Fill(lPtLambda,lV0cosPointAngle,lInvMassLambda);
3493 } // end rapidity condition
3494 }// end PID condition
3495 }// end ctau condition
3497 ////////////////////////////////////////////////////////
3498 // Associated AntiLambda histograms in |rap| < lCutRap
3499 ////////////////////////////////////////////////////////
3501 if ((AntiLambdaPID==1 && lMomInnerWallNeg <=1) || (lMomInnerWallNeg>1) || !(fUsePID.Contains("withPID"))){
3503 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
3504 switch (lOnFlyStatus){
3506 if(lCheckMcAntiLambda) {
3507 fHistAsMcTranscTauAntiL->Fill(lcTauAntiLambda);
3508 if (TMath::Abs(lRapAntiLambda) < 0.3)
3509 fHistAsMcTranscTauAntiLRap3->Fill(lcTauAntiLambda);
3510 if (lPtAntiLambda >= 3 && lPtAntiLambda <= 6 )
3512 fHistAsMcTranscTauAntiLptLow->Fill(lcTauAntiLambda);
3513 if (TMath::Abs(lRapAntiLambda) < 0.3)
3514 fHistAsMcTranscTauAntiLptLowRap3->Fill(lcTauAntiLambda);
3518 if (lcTauAntiLambda < cutcTauL){
3519 fHistNsigmaPosProtonAntiLambda->Fill(nSigmaPosProton);
3520 fHistNsigmaNegPionAntiLambda->Fill(nSigmaNegPion);
3522 // fHistMultVsPtVsMassAntiLambda->Fill(multiplicity ,lInvMassAntiLambda,lPtAntiLambda);
3523 if(lCheckPIdAntiLambda) fHistPidMcMassAntiLambda->Fill(lInvMassAntiLambda);
3525 if(lCheckMcAntiLambda) {
3527 fHistAsMcMassAntiLambda->Fill(lInvMassAntiLambda);
3528 fHistAsMcPtAntiLambda->Fill(lPtAntiLambda);
3529 fHistAsMcPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
3532 if (TMath::Abs(lRapAntiLambda) < 0.3) {
3533 fHistAsMcMassAntiLambdaRap3->Fill(lInvMassAntiLambda);
3534 fHistAsMcPtAntiLambdaRap3->Fill(lPtAntiLambda);
3535 fHistAsMcPtVsMassAntiLambdaRap3->Fill(lInvMassAntiLambda,lPtAntiLambda);
3539 if (lPtAntiLambda <= 1) fHistAsMcPtZoomAntiLambda->Fill(lPtAntiLambda);
3540 fHistAsMcMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
3541 fHistAsMcResxAntiLambda->Fill(rcPosXAntiLambda-mcPosX);
3542 fHistAsMcResyAntiLambda->Fill(rcPosYAntiLambda-mcPosY);
3543 fHistAsMcReszAntiLambda->Fill(rcPosZAntiLambda-mcPosZ);
3544 fHistAsMcResrVsRadiusAntiLambda->Fill(rcPosRAntiLambda,rcPosRAntiLambda-mcPosR);
3545 fHistAsMcReszVsRadiusAntiLambda->Fill(rcPosZAntiLambda,rcPosZAntiLambda-mcPosZ);
3546 fHistAsMcProdRadiusAntiLambda->Fill(mcPosMotherR);
3547 fHistAsMcProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
3548 fHistAsMcResPtAntiLambda->Fill(deltaPtAntiLambda);
3549 fHistAsMcResPtVsRapAntiLambda->Fill(deltaPtAntiLambda,lRapAntiLambda);
3550 fHistAsMcResPtVsPtAntiLambda->Fill(deltaPtAntiLambda,lPtAntiLambda);
3551 if (lComeFromSigma) fHistAsMcPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
3552 switch (lPdgcodeMotherOfMother) {
3553 case 3222 : fHistAsMcMotherPdgCodeAntiLambda->Fill(0.5); break; // Sigma +
3554 case 3212 : fHistAsMcMotherPdgCodeAntiLambda->Fill(1.5); break; // Sigma 0
3555 case 3112 : fHistAsMcMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
3556 case 3224 : fHistAsMcMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
3557 case 3214 : fHistAsMcMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
3558 case 3114 : fHistAsMcMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
3559 case 3322 : fHistAsMcMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
3560 case 3312 : fHistAsMcMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
3561 case 3334 : fHistAsMcMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
3563 case -1 : fHistAsMcMotherPdgCodeAntiLambda->Fill(9.5); break;
3564 default : fHistAsMcMotherPdgCodeAntiLambda->Fill(10.5);break;
3567 //printf("found AntiLambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtAntiLambda,lInvMassAntiLambda);
3568 //printf("found AntiLambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
3572 else if (lCheckSecondaryAntiLambda) {
3573 fHistAsMcSecondaryPtVsRapAntiLambda->Fill(lPtAntiLambda,lRapAntiLambda);
3574 fHistAsMcSecondaryProdRadiusAntiLambda->Fill(mcPosMotherR);
3575 fHistAsMcSecondaryProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
3576 if (lComeFromSigma) fHistAsMcSecondaryPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
3577 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
3578 switch (lPdgcodeMotherOfMother) {
3579 case 3222 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(0.5); break;// Sigma +
3580 case 3212 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(1.5); break;// Sigma 0
3581 case 3112 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
3582 case 3224 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
3583 case 3214 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
3584 case 3114 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
3585 case 3322 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
3586 case 3312 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
3587 case 3334 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
3588 case -1 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(9.5); break;
3589 default : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(10.5);break;
3595 } // end rapidity condition
3596 }// end PID condition
3601 // if (primaryVtxKF) delete primaryVtxKF;primaryVtxKF=NULL ;
3604 fHistV0Multiplicity->Fill(nv0s);
3605 // fHistV0MultiplicityMI->Fill(nv0sMI);
3607 if (fAnalysisType == "ESD") { if(myPrimaryVertex) delete myPrimaryVertex; }
3608 if (fAnalysisType == "ESD") { if(TestTrackCuts) delete TestTrackCuts; }
3614 //________________________________________________________________________
3615 void AliAnalysisTaskPerformanceStrange::Terminate(Option_t *)
3617 // Draw result to the screen
3618 // Called once at the end of the query
3620 TList *cRetrievedList = 0x0;
3621 cRetrievedList = (TList*)GetOutputData(1);
3623 if(!cRetrievedList){
3624 AliWarning("ERROR - AliAnalysisTaskPerformanceStrange: output data container list not available\n"); return;
3628 fHistV0Multiplicity = dynamic_cast<TH1F*> ( cRetrievedList->FindObject("fHistV0Multiplicity"));
3629 if (!fHistV0Multiplicity) {
3630 Printf("ERROR: fHistV0Multiplicity not available");
3634 fHistV0MultiplicityMI = dynamic_cast<TH1F*> ( cRetrievedList->FindObject("fHistV0MultiplicityMI"));
3635 if (!fHistV0MultiplicityMI) {
3636 Printf("ERROR: fHistV0MultiplicityMI not available");
3640 TCanvas *canPerformanceStrange = new TCanvas("AliAnalysisTaskCheckV0","Multiplicity",10,10,510,510);
3641 canPerformanceStrange->Divide(2,1);
3642 if (fHistV0Multiplicity->GetMaximum() > 0.) canPerformanceStrange->cd(1)->SetLogy();
3643 fHistV0Multiplicity->SetMarkerStyle(25);
3644 fHistV0Multiplicity->DrawCopy("E");
3645 if (fHistV0MultiplicityMI->GetMaximum() > 0.) canPerformanceStrange->cd(2)->SetLogy();
3646 fHistV0MultiplicityMI->SetMarkerStyle(24);
3647 fHistV0MultiplicityMI->DrawCopy("E");
3653 //----------------------------------------------------------------------------
3655 Double_t AliAnalysisTaskPerformanceStrange::MyRapidity(Double_t rE, Double_t rPz) const
3657 // Local calculation for rapidity
3658 return 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13));
3660 //----------------------------------------------------------------------------