2 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 //--------------------------------------------------------------------------
17 // AliAnalysisTaskPerformanceStrange class
18 // This task is for a performance study of V0 identification.
19 // It works with MC info and ESD tree.
20 // Author: Peter Kalinak pkalinak@cern.ch kalinak@saske.sk
21 //--------------------------------------------------------------------------
23 #include <Riostream.h>
37 #include "AliAnalysisManager.h"
39 #include "AliPhysicsSelection.h"
40 #include "AliBackgroundSelection.h"
42 #include "AliESDVertex.h"
43 #include "AliESDEvent.h"
44 #include "AliESDInputHandler.h"
45 #include "AliESDtrack.h"
47 #include "AliESDtrackCuts.h"
48 #include "AliESDpid.h"
49 #include "AliMultiplicity.h"
51 #include "AliAODEvent.h"
52 #include "AliAODVertex.h"
53 #include "AliAODTrack.h"
55 #include "AliAODMCHeader.h"
56 #include "AliAODInputHandler.h"
58 //#include "AliV0vertexer.h"
60 #include "AliAODMCParticle.h"
62 #include "AliMCEventHandler.h"
63 #include "AliMCEvent.h"
65 #include "AliGenEventHeader.h"
69 #include "AliKFVertex.h"
70 #include "AliVertexerTracks.h"
72 #include "AliAnalysisTaskPerformanceStrange.h"
73 #include "AliAnalysisCentralitySelector.h"
74 #include "AliPIDResponse.h"
75 #include "AliCentrality.h"
79 ClassImp(AliAnalysisTaskPerformanceStrange)
82 //________________________________________________________________________
83 AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange()
84 : AliAnalysisTaskSE(), fAnalysisMC(0), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infoCut"),fDown(0),fUp(0), fESD(0), fListHist(0),fCentrSelector(0),fTracksCuts(0),fPIDResponse(0),fQASelector(0),
86 fHistMCPrimaryVertexX(0),
87 fHistMCPrimaryVertexY(0),
88 fHistMCPrimaryVertexZ(0),
89 fHistPtTracksITSRefit(0),
91 fHistPtTracksPITSRefit(0),
93 fHistMCMultiplicityPrimary(0),
94 fHistMCMultiplicityTracks(0),
96 fHistMCtracksProdRadiusK0s(0),
97 fHistMCtracksProdRadiusLambda(0),
98 fHistMCtracksProdRadiusAntiLambda(0),
99 fHistMCtracksDecayRadiusK0s(0),
100 fHistMCtracksDecayRadiusLambda(0),
101 fHistMCtracksDecayRadiusAntiLambda(0),
104 fHistMCPtAllLambda(0),
105 fHistMCPtAllAntiLambda(0),
108 fHistMCPtAllK0sRap3(0),
109 fHistMCPtAllLambdaRap3(0),
110 fHistMCPtAllAntiLambdaRap3(0),
113 fHistMCProdRadiusK0s(0),
114 fHistMCProdRadiusLambda(0),
115 fHistMCProdRadiusAntiLambda(0),
117 //Decay radius of primary V0s
118 fHistMCPrimDecayRadiusK0s(0),
119 fHistMCPrimDecayRadiusLambda(0),
120 fHistMCPrimDecayRadiusAntiLambda(0),
123 fHistMCRapInPtRangeK0s(0),
125 fHistMCRapInPtRangeLambda(0),
126 fHistMCRapAntiLambda(0),
127 fHistMCRapInPtRangeAntiLambda(0),
129 fHistMCRapInPtRangeXi(0),
131 fHistMCRapInPtRangePhi(0),
132 ////////////////////////////////////////
136 fHistMCPtAntiLambda(0),
140 fHistMCPtLambdaRap3(0),
141 fHistMCPtAntiLambdaRap3(0),
144 ///////////////////////////////////////////
146 fHistMCPtLambdaFromSigma(0),
147 fHistMCPtAntiLambdaFromSigma(0),
148 fHistNTimesRecK0s(0),
149 fHistNTimesRecLambda(0),
150 fHistNTimesRecAntiLambda(0),
151 fHistNTimesRecK0sVsPt(0),
152 fHistNTimesRecLambdaVsPt(0),
153 fHistNTimesRecAntiLambdaVsPt(0),
154 fHistNumberEvents(0),
155 fHistTrackPerEvent(0),
157 fHistTrackletPerEvent(0),
158 fHistMCDaughterTrack(0),
159 fHistSPDPrimaryVertexZ(0),
160 fHistPrimaryVertexX(0),
161 fHistPrimaryVertexY(0),
162 fHistPrimaryVertexZ(0),
163 fHistPrimaryVertexResX(0),
164 fHistPrimaryVertexResY(0),
165 fHistPrimaryVertexResZ(0),
166 fHistPrimaryVertexPosXV0events(0),
167 fHistPrimaryVertexPosYV0events(0),
168 fHistPrimaryVertexPosZV0events(0),
170 ////////////////////////////////////////
172 fHistDcaPosToPrimVertexK0(0),
173 fHistDcaNegToPrimVertexK0(0),
175 fHistDecayLengthV0K0(0),
176 fHistDcaV0DaughtersK0(0),
178 fHistCosPointAngleK0(0),
179 fHistTranscTauVsMassK0s(0),
181 fHistDcaPosToPrimVertexK0vsMassK0(0),
182 fHistDcaNegToPrimVertexK0vsMassK0(0),
183 fHistRadiusV0K0vsMassK0(0),
184 fHistDecayLengthV0K0vsMassK0(0),
185 fHistDcaV0DaughtersK0vsMassK0(0),
186 fHistCosPointAngleK0vsMassK0(0),
188 fHistDcaPosToPrimVertexK0vsMassK0pt1(0),
189 fHistDcaNegToPrimVertexK0vsMassK0pt1(0),
190 fHistRadiusV0K0vsMassK0pt1(0),
191 fHistDecayLengthV0K0vsMassK0pt1(0),
192 fHistDcaV0DaughtersK0vsMassK0pt1(0),
193 fHistCosPointAngleK0vsMassK0pt1(0),
195 fHistDcaPosToPrimVertexK0vsMassK0pt2(0),
196 fHistDcaNegToPrimVertexK0vsMassK0pt2(0),
197 fHistRadiusV0K0vsMassK0pt2(0),
198 fHistDecayLengthV0K0vsMassK0pt2(0),
199 fHistDcaV0DaughtersK0vsMassK0pt2(0),
200 fHistCosPointAngleK0vsMassK0pt2(0),
202 fHistDcaPosToPrimVertexK0vsMassK0pt3(0),
203 fHistDcaNegToPrimVertexK0vsMassK0pt3(0),
204 fHistRadiusV0K0vsMassK0pt3(0),
205 fHistDecayLengthV0K0vsMassK0pt3(0),
206 fHistDcaV0DaughtersK0vsMassK0pt3(0),
207 fHistCosPointAngleK0vsMassK0pt3(0),
209 /////////// Lambda ///////////////////////////
211 fHistDcaPosToPrimVertexL(0),
212 fHistDcaNegToPrimVertexL(0),
214 fHistDecayLengthV0L(0),
215 fHistDcaV0DaughtersL(0),
217 fHistCosPointAngleL(0),
218 fHistTranscTauVsMassL(0),
220 fHistDcaPosToPrimVertexLvsMassL(0),
221 fHistDcaNegToPrimVertexLvsMassL(0),
222 fHistRadiusV0LvsMassL(0),
223 fHistDecayLengthV0LvsMassL(0),
224 fHistDcaV0DaughtersLvsMassL(0),
225 fHistCosPointAngleLvsMassL(0),
226 fHistCosPointAngleLvsMassVsPtsigL(0),
227 fHistCosPointAngleLvsMassVsPtbackL(0),
230 fHistDcaPosToPrimVertexLambdaVsMasspt1(0),
231 fHistDcaNegToPrimVertexLambdaVsMasspt1(0),
232 fHistRadiusV0LambdaVsMasspt1(0),
233 fHistDecayLengthV0LambdaVsMasspt1(0),
234 fHistDcaV0DaughtersLambdaVsMasspt1(0),
235 fHistCosPointAngleLambdaVsMasspt1(0),
237 fHistDcaPosToPrimVertexLambdaVsMasspt2(0),
238 fHistDcaNegToPrimVertexLambdaVsMasspt2(0),
239 fHistRadiusV0LambdaVsMasspt2(0),
240 fHistDecayLengthV0LambdaVsMasspt2(0),
241 fHistDcaV0DaughtersLambdaVsMasspt2(0),
242 fHistCosPointAngleLambdaVsMasspt2(0),
244 fHistDcaPosToPrimVertexLambdaVsMasspt3(0),
245 fHistDcaNegToPrimVertexLambdaVsMasspt3(0),
246 fHistRadiusV0LambdaVsMasspt3(0),
247 fHistDecayLengthV0LambdaVsMasspt3(0),
248 fHistDcaV0DaughtersLambdaVsMasspt3(0),
249 fHistCosPointAngleLambdaVsMasspt3(0),
253 /////////Antilambda ///////////////////
254 fHistDcaPosToPrimVertexAntiL(0),
255 fHistDcaNegToPrimVertexAntiL(0),
256 fHistRadiusV0AntiL(0),
257 fHistDecayLengthV0AntiL(0),
258 fHistDcaV0DaughtersAntiL(0),
260 fHistCosPointAngleAntiL(0),
261 fHistTranscTauVsMassAntiL(0),
263 fHistDcaPosToPrimVertexAntiLvsMass(0),
264 fHistDcaNegToPrimVertexAntiLvsMass(0),
265 fHistRadiusV0AntiLvsMass(0),
266 fHistDecayLengthV0AntiLvsMass(0),
267 fHistDcaV0DaughtersAntiLvsMass(0),
268 fHistCosPointAngleAntiLvsMass(0),
272 fHistDcaPosToPrimVertexAntiLVsMasspt1(0),
273 fHistDcaNegToPrimVertexAntiLVsMasspt1(0),
274 fHistRadiusV0AntiLVsMasspt1(0),
275 fHistDecayLengthV0AntiLVsMasspt1(0),
276 fHistDcaV0DaughtersAntiLVsMasspt1(0),
277 fHistCosPointAngleAntiLVsMasspt1(0),
279 fHistDcaPosToPrimVertexAntiLVsMasspt2(0),
280 fHistDcaNegToPrimVertexAntiLVsMasspt2(0),
281 fHistRadiusV0AntiLVsMasspt2(0),
282 fHistDecayLengthV0AntiLVsMasspt2(0),
283 fHistDcaV0DaughtersAntiLVsMasspt2(0),
284 fHistCosPointAngleAntiLVsMasspt2(0),
286 fHistDcaPosToPrimVertexAntiLVsMasspt3(0),
287 fHistDcaNegToPrimVertexAntiLVsMasspt3(0),
288 fHistRadiusV0AntiLVsMasspt3(0),
289 fHistDecayLengthV0AntiLVsMasspt3(0),
290 fHistDcaV0DaughtersAntiLVsMasspt3(0),
291 fHistCosPointAngleAntiLVsMasspt3(0),
293 /////////////////////////////////////////
294 fHistV0Multiplicity(0),
297 fHistMassAntiLambda(0),
298 fHistMassVsRadiusK0(0),
299 fHistMassVsRadiusLambda(0),
300 fHistMassVsRadiusAntiLambda(0),
302 ///////////////////////////////////////
304 fHistPtVsMassLambda(0),
305 fHistPtVsMassAntiLambda(0),
308 fHistPtVsMassK0Rap3(0),
309 fHistPtVsMassLambdaRap3(0),
310 fHistPtVsMassAntiLambdaRap3(0),
312 ////////////////////////////////////////
314 fHistArmenterosPodolanski(0),
315 fHistK0sMassVsLambdaMass(0),
316 fHistTPCsigPLambda(0),
317 fHistTPCsigPAntiLambda(0),
318 fHistNSigmaProton(0),
319 fHistNsigmaPosPionAntiLambda(0),
320 fHistNsigmaNegProtonAntiLambda(0),
321 fHistNsigmaPosProtonLambda(0),
322 fHistNsigmaNegPionLambda(0),
323 fHistNsigmaPosProtonAntiLambda(0),
324 fHistNsigmaNegPionAntiLambda(0),
325 fHistNsigmaPosPionK0(0),
326 fHistNsigmaNegPionK0(0),
328 fHistAsMcRapLambda(0),
329 fHistAsMcRapAntiLambda(0),
331 // pt distribution /////////////////////
333 fHistAsMcPtLambda(0),
334 fHistAsMcPtAntiLambda(0),
337 // Transverse cTau distribution
338 fHistAsMcTranscTauL(0),
339 fHistAsMcTranscTauAntiL(0),
340 fHistAsMcTranscTauK0s(0),
345 fHistAsMcPtK0Rap3(0),
346 fHistAsMcPtLambdaRap3(0),
347 fHistAsMcPtAntiLambdaRap3(0),
350 /////////////////////////////////////
352 fHistAsMcPtZoomK0(0),
353 fHistAsMcPtZoomLambda(0),
354 fHistAsMcPtZoomAntiLambda(0),
355 fHistAsMcProdRadiusK0(0),
356 fHistAsMcProdRadiusLambda(0),
357 fHistAsMcProdRadiusAntiLambda(0),
358 fHistAsMcProdRadiusXvsYK0s(0),
359 fHistAsMcProdRadiusXvsYLambda(0),
360 fHistAsMcProdRadiusXvsYAntiLambda(0),
362 fHistPidMcMassLambda(0),
363 fHistPidMcMassAntiLambda(0),
366 ///////////////////////////////
369 fHistAsMcMassLambda(0),
370 fHistAsMcMassAntiLambda(0),
373 fHistAsMcMassK0Rap3(0),
374 fHistAsMcMassLambdaRap3(0),
375 fHistAsMcMassAntiLambdaRap3(0),
378 fHistAsMcPtVsMassK0(0),
379 fHistAsMcPtVsMassLambda(0),
380 fHistAsMcPtVsMassAntiLambda(0),
383 fHistAsMcPtVsMassK0Rap3(0),
384 fHistAsMcPtVsMassLambdaRap3(0),
385 fHistAsMcPtVsMassAntiLambdaRap3(0),
387 ///////////////////////////////////////
389 fHistAsMcMassVsRadiusK0(0),
390 fHistAsMcMassVsRadiusLambda(0),
391 fHistAsMcMassVsRadiusAntiLambda(0),
395 fHistAsMcResrVsRadiusK0(0),
396 fHistAsMcReszVsRadiusK0(0),
397 fHistAsMcResxLambda(0),
398 fHistAsMcResyLambda(0),
399 fHistAsMcReszLambda(0),
400 fHistAsMcResrVsRadiusLambda(0),
401 fHistAsMcReszVsRadiusLambda(0),
402 fHistAsMcResxAntiLambda(0),
403 fHistAsMcResyAntiLambda(0),
404 fHistAsMcReszAntiLambda(0),
405 fHistAsMcResrVsRadiusAntiLambda(0),
406 fHistAsMcReszVsRadiusAntiLambda(0),
408 fHistAsMcResPtLambda(0),
409 fHistAsMcResPtAntiLambda(0),
410 fHistAsMcResPtVsRapK0(0),
411 fHistAsMcResPtVsRapLambda(0),
412 fHistAsMcResPtVsRapAntiLambda(0),
413 fHistAsMcResPtVsPtK0(0),
414 fHistAsMcResPtVsPtLambda(0),
415 fHistAsMcResPtVsPtAntiLambda(0),
416 fHistAsMcMotherPdgCodeK0s(0),
417 fHistAsMcMotherPdgCodeLambda(0),
418 fHistAsMcMotherPdgCodeAntiLambda(0),
419 fHistAsMcPtLambdaFromSigma(0),
420 fHistAsMcPtAntiLambdaFromSigma(0),
421 fHistAsMcSecondaryPtVsRapK0s(0),
422 fHistAsMcSecondaryPtVsRapLambda(0),
423 fHistAsMcSecondaryPtVsRapAntiLambda(0),
424 fHistAsMcSecondaryProdRadiusK0s(0),
425 fHistAsMcSecondaryProdRadiusLambda(0),
426 fHistAsMcSecondaryProdRadiusAntiLambda(0),
427 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
428 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
429 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
430 fHistAsMcSecondaryMotherPdgCodeK0s(0),
431 fHistAsMcSecondaryMotherPdgCodeLambda(0),
432 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
433 fHistAsMcSecondaryPtLambdaFromSigma(0),
434 fHistAsMcSecondaryPtAntiLambdaFromSigma(0)
444 //________________________________________________________________________
445 AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange(const char *name)
446 : 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),
448 fHistMCPrimaryVertexX(0),
449 fHistMCPrimaryVertexY(0),
450 fHistMCPrimaryVertexZ(0),
451 fHistPtTracksITSRefit(0),
453 fHistPtTracksPITSRefit(0),
455 fHistMCMultiplicityPrimary(0),
456 fHistMCMultiplicityTracks(0),
458 fHistMCtracksProdRadiusK0s(0),
459 fHistMCtracksProdRadiusLambda(0),
460 fHistMCtracksProdRadiusAntiLambda(0),
461 fHistMCtracksDecayRadiusK0s(0),
462 fHistMCtracksDecayRadiusLambda(0),
463 fHistMCtracksDecayRadiusAntiLambda(0),
466 fHistMCPtAllLambda(0),
467 fHistMCPtAllAntiLambda(0),
470 fHistMCPtAllK0sRap3(0),
471 fHistMCPtAllLambdaRap3(0),
472 fHistMCPtAllAntiLambdaRap3(0),
475 fHistMCProdRadiusK0s(0),
476 fHistMCProdRadiusLambda(0),
477 fHistMCProdRadiusAntiLambda(0),
479 // Decay radius of Primary V0s
480 fHistMCPrimDecayRadiusK0s(0),
481 fHistMCPrimDecayRadiusLambda(0),
482 fHistMCPrimDecayRadiusAntiLambda(0),
485 fHistMCRapInPtRangeK0s(0),
487 fHistMCRapInPtRangeLambda(0),
488 fHistMCRapAntiLambda(0),
489 fHistMCRapInPtRangeAntiLambda(0),
491 fHistMCRapInPtRangeXi(0),
493 fHistMCRapInPtRangePhi(0),
494 ////////////////////////////////////////
498 fHistMCPtAntiLambda(0),
502 fHistMCPtLambdaRap3(0),
503 fHistMCPtAntiLambdaRap3(0),
506 ///////////////////////////////////////////
508 fHistMCPtLambdaFromSigma(0),
509 fHistMCPtAntiLambdaFromSigma(0),
510 fHistNTimesRecK0s(0),
511 fHistNTimesRecLambda(0),
512 fHistNTimesRecAntiLambda(0),
513 fHistNTimesRecK0sVsPt(0),
514 fHistNTimesRecLambdaVsPt(0),
515 fHistNTimesRecAntiLambdaVsPt(0),
516 fHistNumberEvents(0),
517 fHistTrackPerEvent(0),
519 fHistTrackletPerEvent(0),
520 fHistMCDaughterTrack(0),
521 fHistSPDPrimaryVertexZ(0),
522 fHistPrimaryVertexX(0),
523 fHistPrimaryVertexY(0),
524 fHistPrimaryVertexZ(0),
525 fHistPrimaryVertexResX(0),
526 fHistPrimaryVertexResY(0),
527 fHistPrimaryVertexResZ(0),
528 fHistPrimaryVertexPosXV0events(0),
529 fHistPrimaryVertexPosYV0events(0),
530 fHistPrimaryVertexPosZV0events(0),
532 ////////////////////////////////////////
534 fHistDcaPosToPrimVertexK0(0),
535 fHistDcaNegToPrimVertexK0(0),
537 fHistDecayLengthV0K0(0),
538 fHistDcaV0DaughtersK0(0),
540 fHistCosPointAngleK0(0),
541 fHistTranscTauVsMassK0s(0),
543 fHistDcaPosToPrimVertexK0vsMassK0(0),
544 fHistDcaNegToPrimVertexK0vsMassK0(0),
545 fHistRadiusV0K0vsMassK0(0),
546 fHistDecayLengthV0K0vsMassK0(0),
547 fHistDcaV0DaughtersK0vsMassK0(0),
548 fHistCosPointAngleK0vsMassK0(0),
550 fHistDcaPosToPrimVertexK0vsMassK0pt1(0),
551 fHistDcaNegToPrimVertexK0vsMassK0pt1(0),
552 fHistRadiusV0K0vsMassK0pt1(0),
553 fHistDecayLengthV0K0vsMassK0pt1(0),
554 fHistDcaV0DaughtersK0vsMassK0pt1(0),
555 fHistCosPointAngleK0vsMassK0pt1(0),
557 fHistDcaPosToPrimVertexK0vsMassK0pt2(0),
558 fHistDcaNegToPrimVertexK0vsMassK0pt2(0),
559 fHistRadiusV0K0vsMassK0pt2(0),
560 fHistDecayLengthV0K0vsMassK0pt2(0),
561 fHistDcaV0DaughtersK0vsMassK0pt2(0),
562 fHistCosPointAngleK0vsMassK0pt2(0),
564 fHistDcaPosToPrimVertexK0vsMassK0pt3(0),
565 fHistDcaNegToPrimVertexK0vsMassK0pt3(0),
566 fHistRadiusV0K0vsMassK0pt3(0),
567 fHistDecayLengthV0K0vsMassK0pt3(0),
568 fHistDcaV0DaughtersK0vsMassK0pt3(0),
569 fHistCosPointAngleK0vsMassK0pt3(0),
571 /////////// Lambda ///////////////////////////
573 fHistDcaPosToPrimVertexL(0),
574 fHistDcaNegToPrimVertexL(0),
576 fHistDecayLengthV0L(0),
577 fHistDcaV0DaughtersL(0),
579 fHistCosPointAngleL(0),
580 fHistTranscTauVsMassL(0),
583 fHistDcaPosToPrimVertexLvsMassL(0),
584 fHistDcaNegToPrimVertexLvsMassL(0),
585 fHistRadiusV0LvsMassL(0),
586 fHistDecayLengthV0LvsMassL(0),
587 fHistDcaV0DaughtersLvsMassL(0),
588 fHistCosPointAngleLvsMassL(0),
589 fHistCosPointAngleLvsMassVsPtsigL(0),
590 fHistCosPointAngleLvsMassVsPtbackL(0),
593 fHistDcaPosToPrimVertexLambdaVsMasspt1(0),
594 fHistDcaNegToPrimVertexLambdaVsMasspt1(0),
595 fHistRadiusV0LambdaVsMasspt1(0),
596 fHistDecayLengthV0LambdaVsMasspt1(0),
597 fHistDcaV0DaughtersLambdaVsMasspt1(0),
598 fHistCosPointAngleLambdaVsMasspt1(0),
600 fHistDcaPosToPrimVertexLambdaVsMasspt2(0),
601 fHistDcaNegToPrimVertexLambdaVsMasspt2(0),
602 fHistRadiusV0LambdaVsMasspt2(0),
603 fHistDecayLengthV0LambdaVsMasspt2(0),
604 fHistDcaV0DaughtersLambdaVsMasspt2(0),
605 fHistCosPointAngleLambdaVsMasspt2(0),
607 fHistDcaPosToPrimVertexLambdaVsMasspt3(0),
608 fHistDcaNegToPrimVertexLambdaVsMasspt3(0),
609 fHistRadiusV0LambdaVsMasspt3(0),
610 fHistDecayLengthV0LambdaVsMasspt3(0),
611 fHistDcaV0DaughtersLambdaVsMasspt3(0),
612 fHistCosPointAngleLambdaVsMasspt3(0),
616 /////////Antilambda ///////////////////
617 fHistDcaPosToPrimVertexAntiL(0),
618 fHistDcaNegToPrimVertexAntiL(0),
619 fHistRadiusV0AntiL(0),
620 fHistDecayLengthV0AntiL(0),
621 fHistDcaV0DaughtersAntiL(0),
623 fHistCosPointAngleAntiL(0),
624 fHistTranscTauVsMassAntiL(0),
626 fHistDcaPosToPrimVertexAntiLvsMass(0),
627 fHistDcaNegToPrimVertexAntiLvsMass(0),
628 fHistRadiusV0AntiLvsMass(0),
629 fHistDecayLengthV0AntiLvsMass(0),
630 fHistDcaV0DaughtersAntiLvsMass(0),
631 fHistCosPointAngleAntiLvsMass(0),
635 fHistDcaPosToPrimVertexAntiLVsMasspt1(0),
636 fHistDcaNegToPrimVertexAntiLVsMasspt1(0),
637 fHistRadiusV0AntiLVsMasspt1(0),
638 fHistDecayLengthV0AntiLVsMasspt1(0),
639 fHistDcaV0DaughtersAntiLVsMasspt1(0),
640 fHistCosPointAngleAntiLVsMasspt1(0),
642 fHistDcaPosToPrimVertexAntiLVsMasspt2(0),
643 fHistDcaNegToPrimVertexAntiLVsMasspt2(0),
644 fHistRadiusV0AntiLVsMasspt2(0),
645 fHistDecayLengthV0AntiLVsMasspt2(0),
646 fHistDcaV0DaughtersAntiLVsMasspt2(0),
647 fHistCosPointAngleAntiLVsMasspt2(0),
649 fHistDcaPosToPrimVertexAntiLVsMasspt3(0),
650 fHistDcaNegToPrimVertexAntiLVsMasspt3(0),
651 fHistRadiusV0AntiLVsMasspt3(0),
652 fHistDecayLengthV0AntiLVsMasspt3(0),
653 fHistDcaV0DaughtersAntiLVsMasspt3(0),
654 fHistCosPointAngleAntiLVsMasspt3(0),
656 /////////////////////////////////////////
657 fHistV0Multiplicity(0),
660 fHistMassAntiLambda(0),
661 fHistMassVsRadiusK0(0),
662 fHistMassVsRadiusLambda(0),
663 fHistMassVsRadiusAntiLambda(0),
665 ///////////////////////////////////////
667 fHistPtVsMassLambda(0),
668 fHistPtVsMassAntiLambda(0),
671 fHistPtVsMassK0Rap3(0),
672 fHistPtVsMassLambdaRap3(0),
673 fHistPtVsMassAntiLambdaRap3(0),
675 ////////////////////////////////////////
677 fHistArmenterosPodolanski(0),
678 fHistK0sMassVsLambdaMass(0),
679 fHistTPCsigPLambda(0),
680 fHistTPCsigPAntiLambda(0),
681 fHistNSigmaProton(0),
682 fHistNsigmaPosPionAntiLambda(0),
683 fHistNsigmaNegProtonAntiLambda(0),
684 fHistNsigmaPosProtonLambda(0),
685 fHistNsigmaNegPionLambda(0),
686 fHistNsigmaPosProtonAntiLambda(0),
687 fHistNsigmaNegPionAntiLambda(0),
688 fHistNsigmaPosPionK0(0),
689 fHistNsigmaNegPionK0(0),
691 fHistAsMcRapLambda(0),
692 fHistAsMcRapAntiLambda(0),
694 /// Pt distribution /////////////////////
696 fHistAsMcPtLambda(0),
697 fHistAsMcPtAntiLambda(0),
700 fHistAsMcTranscTauL(0),
701 fHistAsMcTranscTauAntiL(0),
702 fHistAsMcTranscTauK0s(0),
705 fHistAsMcPtK0Rap3(0),
706 fHistAsMcPtLambdaRap3(0),
707 fHistAsMcPtAntiLambdaRap3(0),
710 /////////////////////////////////////
712 fHistAsMcPtZoomK0(0),
713 fHistAsMcPtZoomLambda(0),
714 fHistAsMcPtZoomAntiLambda(0),
715 fHistAsMcProdRadiusK0(0),
716 fHistAsMcProdRadiusLambda(0),
717 fHistAsMcProdRadiusAntiLambda(0),
718 fHistAsMcProdRadiusXvsYK0s(0),
719 fHistAsMcProdRadiusXvsYLambda(0),
720 fHistAsMcProdRadiusXvsYAntiLambda(0),
722 fHistPidMcMassLambda(0),
723 fHistPidMcMassAntiLambda(0),
726 ///////////////////////////////
729 fHistAsMcMassLambda(0),
730 fHistAsMcMassAntiLambda(0),
733 fHistAsMcMassK0Rap3(0),
734 fHistAsMcMassLambdaRap3(0),
735 fHistAsMcMassAntiLambdaRap3(0),
738 fHistAsMcPtVsMassK0(0),
739 fHistAsMcPtVsMassLambda(0),
740 fHistAsMcPtVsMassAntiLambda(0),
743 fHistAsMcPtVsMassK0Rap3(0),
744 fHistAsMcPtVsMassLambdaRap3(0),
745 fHistAsMcPtVsMassAntiLambdaRap3(0),
747 ///////////////////////////////////////
749 fHistAsMcMassVsRadiusK0(0),
750 fHistAsMcMassVsRadiusLambda(0),
751 fHistAsMcMassVsRadiusAntiLambda(0),
755 fHistAsMcResrVsRadiusK0(0),
756 fHistAsMcReszVsRadiusK0(0),
757 fHistAsMcResxLambda(0),
758 fHistAsMcResyLambda(0),
759 fHistAsMcReszLambda(0),
760 fHistAsMcResrVsRadiusLambda(0),
761 fHistAsMcReszVsRadiusLambda(0),
762 fHistAsMcResxAntiLambda(0),
763 fHistAsMcResyAntiLambda(0),
764 fHistAsMcReszAntiLambda(0),
765 fHistAsMcResrVsRadiusAntiLambda(0),
766 fHistAsMcReszVsRadiusAntiLambda(0),
768 fHistAsMcResPtLambda(0),
769 fHistAsMcResPtAntiLambda(0),
770 fHistAsMcResPtVsRapK0(0),
771 fHistAsMcResPtVsRapLambda(0),
772 fHistAsMcResPtVsRapAntiLambda(0),
773 fHistAsMcResPtVsPtK0(0),
774 fHistAsMcResPtVsPtLambda(0),
775 fHistAsMcResPtVsPtAntiLambda(0),
776 fHistAsMcMotherPdgCodeK0s(0),
777 fHistAsMcMotherPdgCodeLambda(0),
778 fHistAsMcMotherPdgCodeAntiLambda(0),
779 fHistAsMcPtLambdaFromSigma(0),
780 fHistAsMcPtAntiLambdaFromSigma(0),
781 fHistAsMcSecondaryPtVsRapK0s(0),
782 fHistAsMcSecondaryPtVsRapLambda(0),
783 fHistAsMcSecondaryPtVsRapAntiLambda(0),
784 fHistAsMcSecondaryProdRadiusK0s(0),
785 fHistAsMcSecondaryProdRadiusLambda(0),
786 fHistAsMcSecondaryProdRadiusAntiLambda(0),
787 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
788 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
789 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
790 fHistAsMcSecondaryMotherPdgCodeK0s(0),
791 fHistAsMcSecondaryMotherPdgCodeLambda(0),
792 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
793 fHistAsMcSecondaryPtLambdaFromSigma(0),
794 fHistAsMcSecondaryPtAntiLambdaFromSigma(0)
799 // Define output slots only here
800 // Output slot #1 writes into a TList container
801 DefineOutput(1, TList::Class());
802 DefineOutput(2, AliAnalysisCentralitySelector::Class());
803 DefineOutput(3, AliESDtrackCuts::Class());
805 AliAnalysisTaskPerformanceStrange::~AliAnalysisTaskPerformanceStrange() {
809 if (fListHist && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fListHist; fListHist = 0x0; }
810 if (fCentrSelector && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fCentrSelector; fCentrSelector = 0x0; }
811 if (fTracksCuts && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fTracksCuts; fTracksCuts = 0x0; }
815 //________________________________________________________________________
816 void AliAnalysisTaskPerformanceStrange::UserCreateOutputObjects()
821 //*******************
822 fListHist = new TList();
823 fListHist->SetOwner();
824 //fListHistCuts = new TList();
825 //fListHistCuts->SetOwner();
827 // Bo: tbd: condition before allocation (i.e. if (!fHistMCMultiplicityPrimary){...} for each histo...
834 fHistMCPrimaryVertexX = new TH1F("h1MCPrimaryVertexX", "MC Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
835 fListHist->Add(fHistMCPrimaryVertexX);
837 fHistMCPrimaryVertexY = new TH1F("h1MCPrimaryVertexY", "MC Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
838 fListHist->Add(fHistMCPrimaryVertexY);
840 fHistMCPrimaryVertexZ = new TH1F("h1MCPrimaryVertexZ", "MC Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
841 fListHist->Add(fHistMCPrimaryVertexZ);
843 // Pt track distribution
844 fHistPtTracksITSRefit = new TH1F("h1PtTracksITSRefit", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
845 fListHist->Add(fHistPtTracksITSRefit);
847 fHistPtTracks = new TH1F("h1PtTracks", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
848 fListHist->Add(fHistPtTracks);
850 // Pt track distribution
851 fHistPtTracksPITSRefit = new TH1F("h1PtTracksPITSRefit", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
852 fListHist->Add(fHistPtTracksPITSRefit);
854 fHistPtTracksP = new TH1F("h1PtTracksP", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
855 fListHist->Add(fHistPtTracksP);
858 fHistMCMultiplicityPrimary = new TH1F("h1MCMultiplicityPrimary", "MC Primary Particles;NPrimary;Count", 201, -0.5, 200.5);
859 fListHist->Add(fHistMCMultiplicityPrimary);
861 fHistMCMultiplicityTracks = new TH1F("h1MCMultiplicityTracks", "MC Tracks;Ntracks;Count", 201, -0.5, 200.5);
862 fListHist->Add(fHistMCMultiplicityTracks);
864 // Production Radius of non-primary particles:
865 fHistMCtracksProdRadiusK0s = new TH2F("h2MCtracksProdRadiusK0s","Non-primary MC K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
866 fListHist->Add(fHistMCtracksProdRadiusK0s);
868 fHistMCtracksProdRadiusLambda = new TH2F("h2MCtracksProdRadiusLambda","Non-primary MC #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
869 fListHist->Add(fHistMCtracksProdRadiusLambda);
871 fHistMCtracksProdRadiusAntiLambda = new TH2F("h2MCtracksProdRadiusAntiLambda","Non-primary MC #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
872 fListHist->Add(fHistMCtracksProdRadiusAntiLambda);
874 // Decay Radius of non-primary particles:
875 fHistMCtracksDecayRadiusK0s = new TH1F("h1MCtracksDecayRadiusK0s","Non-primary MC K^{0} Decay Radius;r (cm)",100,0,100);
876 fListHist->Add(fHistMCtracksDecayRadiusK0s);
878 fHistMCtracksDecayRadiusLambda = new TH1F("h1MCtracksDecayRadiusLambda","Non-primary MC #Lambda^{0} Decay Radius;r (cm)",100,0,100);
879 fListHist->Add(fHistMCtracksDecayRadiusLambda);
881 fHistMCtracksDecayRadiusAntiLambda = new TH1F("h1MCtracksDecayRadiusAntiLambda","Non-primary #bar{#Lambda}^{0} Decay Radius;r (cm)",100,0,100);
882 fListHist->Add(fHistMCtracksDecayRadiusAntiLambda);
884 // Pt Distribution of non-primary particles:
885 fHistMCPtAllK0s = new TH1F("h1MCPtAllK0s", "Non-primary MC K^{0};p_{t} (GeV/c);Counts",240,0,12);
886 fListHist->Add(fHistMCPtAllK0s);
888 fHistMCPtAllLambda = new TH1F("h1MCPtAllLambda", "Non-primary MC #Lambda^{0};p_{t} (GeV/c);Counts",240,0,12);
889 fListHist->Add(fHistMCPtAllLambda);
891 fHistMCPtAllAntiLambda = new TH1F("h1MCPtAllAntiLambda", "Non-primary MC #bar{#Lambda}^{0};p_{t} (GeV/c);Counts",240,0,12);
892 fListHist->Add(fHistMCPtAllAntiLambda);
895 // Pt Distribution of non-primary particles Rap3:
896 fHistMCPtAllK0sRap3 = new TH1F("h1MCPtAllK0sRap3", "Non-primary MC K^{0};p_{t} (GeV/c);Counts",240,0,12);
897 fListHist->Add(fHistMCPtAllK0sRap3);
899 fHistMCPtAllLambdaRap3 = new TH1F("h1MCPtAllLambdaRap3", "Non-primary MC #LambdaRap3^{0};p_{t} (GeV/c);Counts",240,0,12);
900 fListHist->Add(fHistMCPtAllLambdaRap3);
902 fHistMCPtAllAntiLambdaRap3 = new TH1F("h1MCPtAllAntiLambdaRap3", "Non-primary MC #bar{#LambdaRap3}^{0};p_{t} (GeV/c);Counts",240,0,12);
903 fListHist->Add(fHistMCPtAllAntiLambdaRap3);
907 fHistMCProdRadiusK0s = new TH1F("h1MCProdRadiusK0s", "MC K^{0} Production Radius;r (cm);Count", 400, -2, 2);
908 fListHist->Add(fHistMCProdRadiusK0s);
910 fHistMCProdRadiusLambda = new TH1F("h1MCProdRadiusLambda", "MC #Lambda^{0} Production Radius;r (cm);Count", 400, -2, 2);
911 fListHist->Add(fHistMCProdRadiusLambda);
913 fHistMCProdRadiusAntiLambda = new TH1F("h1MCProdRadiusAntiLambda", "MC #bar{#Lambda}^{0} Production Radius;r (cm);Count", 400, -2, 2);
914 fListHist->Add(fHistMCProdRadiusAntiLambda);
916 // Decay radius of primary V0s
917 fHistMCPrimDecayRadiusK0s = new TH1F("fHistMCPrimDecayRadiusK0s", "MC K^{0} Decay Radius;r (cm);Count", 100, 0, 100);
918 fListHist->Add(fHistMCPrimDecayRadiusK0s);
920 fHistMCPrimDecayRadiusLambda = new TH1F("fHistMCPrimDecayRadiusLambda", "MC #Lambda^{0} Decay Radius;r (cm);Count", 100, 0, 100);
921 fListHist->Add(fHistMCPrimDecayRadiusLambda);
923 fHistMCPrimDecayRadiusAntiLambda = new TH1F("fHistMCPrimDecayRadiusAntiLambda", "MC #bar{#Lambda}^{0} Decay Radius;r (cm);Count", 100, 0, 100);
924 fListHist->Add(fHistMCPrimDecayRadiusAntiLambda);
926 // Rapidity distribution:
927 fHistMCRapK0s = new TH1F("h1MCRapK0s", "K^{0};y",160,-4,4);
928 fListHist->Add(fHistMCRapK0s);
930 fHistMCRapInPtRangeK0s = new TH1F("h1MCRapInPtRangeK0s", "K^{0};y",160,-4,4);
931 fListHist->Add(fHistMCRapInPtRangeK0s);
933 fHistMCRapLambda = new TH1F("h1MCRapLambda", "#Lambda;y",160,-4,4);
934 fListHist->Add(fHistMCRapLambda);
936 fHistMCRapInPtRangeLambda = new TH1F("h1MCRapInPtRangeLambda", "#Lambda;y",160,-4,4);
937 fListHist->Add(fHistMCRapInPtRangeLambda);
939 fHistMCRapAntiLambda = new TH1F("h1MCRapAntiLambda", "#bar{#Lambda};y",160,-4,4);
940 fListHist->Add(fHistMCRapAntiLambda);
942 fHistMCRapInPtRangeAntiLambda = new TH1F("h1MCRapInPtRangeAntiLambda", "#bar{#Lambda};y",160,-4,4);
943 fListHist->Add(fHistMCRapInPtRangeAntiLambda);
945 fHistMCRapXi = new TH1F("h1MCRapXi", "Xi;y",160,-4,4);
946 fListHist->Add(fHistMCRapXi);
948 fHistMCRapInPtRangeXi = new TH1F("h1MCRapInPtRangeXi", "Xi;y",160,-4,4);
949 fListHist->Add(fHistMCRapInPtRangeXi);
951 fHistMCRapPhi = new TH1F("h1MCRapPhi", "Phi;y",160,-4,4);
952 fListHist->Add(fHistMCRapPhi);
954 fHistMCRapInPtRangePhi = new TH1F("h1MCRapInPtRangePhi", "Phi;y",160,-4,4);
955 fListHist->Add(fHistMCRapInPtRangePhi);
958 fHistMCPtK0s = new TH1F("h1MCPtK0s", "K^{0};p_{t} (GeV/c)",240,0,12);
959 fListHist->Add(fHistMCPtK0s);
961 fHistMCPtLambda = new TH1F("h1MCPtLambda", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
962 fListHist->Add(fHistMCPtLambda);
964 fHistMCPtAntiLambda = new TH1F("h1MCPtAntiLambda", "#AntiLambda^{0};p_{t} (GeV/c)",240,0,12);
965 fListHist->Add(fHistMCPtAntiLambda);
968 // Pt distribution Rap3:
969 fHistMCPtK0sRap3 = new TH1F("h1MCPtK0sRap3", "K^{0};p_{t} (GeV/c)",240,0,12);
970 fListHist->Add(fHistMCPtK0sRap3);
972 fHistMCPtLambdaRap3 = new TH1F("h1MCPtLambdaRap3", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
973 fListHist->Add(fHistMCPtLambdaRap3);
975 fHistMCPtAntiLambdaRap3 = new TH1F("h1MCPtAntiLambdaRap3", "#AntiLambda^{0};p_{t} (GeV/c)",240,0,12);
976 fListHist->Add(fHistMCPtAntiLambdaRap3);
979 // Pt distribution of Lambda coming from Sigma decay
980 fHistMCPtLambdaFromSigma = new TH1F("h1MCPtLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
981 fListHist->Add(fHistMCPtLambdaFromSigma);
983 fHistMCPtAntiLambdaFromSigma = new TH1F("h1MCPtAntiLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
984 fListHist->Add(fHistMCPtAntiLambdaFromSigma);
986 // Multiple reconstruction studies
987 fHistNTimesRecK0s = new TH1F("h1NTimesRecK0s","number of times a K0s is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
988 fListHist->Add(fHistNTimesRecK0s);
990 fHistNTimesRecLambda = new TH1F("h1NTimesRecLambda","number of times a Lambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
991 fListHist->Add(fHistNTimesRecLambda);
993 fHistNTimesRecAntiLambda = new TH1F("h1NTimesRecAntiLambda","number of times an AntiLambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
994 fListHist->Add(fHistNTimesRecAntiLambda);
996 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);
997 fListHist->Add(fHistNTimesRecK0sVsPt);
999 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);
1000 fListHist->Add(fHistNTimesRecLambdaVsPt);
1002 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);
1003 fListHist->Add(fHistNTimesRecAntiLambdaVsPt);
1005 //***********************************
1006 // Reconstructed particles histograms
1007 //***********************************
1009 // Number of events;
1010 fHistNumberEvents = new TH1F("h1NumberEvents", "Number of events; index;Number of Events",10,0,10);
1011 fListHist->Add(fHistNumberEvents);
1014 fHistTrackPerEvent = new TH1F("h1TrackPerEvent", "Tracks per event;Number of Tracks;Number of Events",10000,0,10000);
1015 fListHist->Add(fHistTrackPerEvent);
1017 fHistTPCMult = new TH1F("h1HistTPCMult", "TPC tracks per event;Number of Tracks;Number of Events",10000,0,10000);
1018 fListHist->Add(fHistTPCMult);
1021 fHistTrackletPerEvent = new TH1F("h1TrackletPerEvent", "Number of tracklets;Number of tracklets per events;Number of events",1000,0,1000);
1022 fListHist->Add(fHistTrackletPerEvent);
1024 fHistMCDaughterTrack = new TH1F("h1MCDaughterTrack","Distribution of mc id for daughters;id tags;Counts",15,0,15);
1025 fListHist->Add(fHistMCDaughterTrack);
1027 fHistTPCTracks = new TH1F("h1TPCTracks","Distribution of TPC tracks;Number of TPC tracks:Number of events",1000,0,10000);
1028 fListHist->Add(fHistTPCTracks);
1031 fHistSPDPrimaryVertexZ = new TH1F("h1SPDPrimaryVertexZ", "SPD Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
1032 fListHist->Add(fHistSPDPrimaryVertexZ);
1034 fHistPrimaryVertexX = new TH1F("h1PrimaryVertexX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
1035 fListHist->Add(fHistPrimaryVertexX);
1037 fHistPrimaryVertexY = new TH1F("h1PrimaryVertexY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
1038 fListHist->Add(fHistPrimaryVertexY);
1040 fHistPrimaryVertexZ = new TH1F("h1PrimaryVertexZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
1041 fListHist->Add(fHistPrimaryVertexZ);
1044 // Primary vertex resolution
1045 fHistPrimaryVertexResX = new TH1F("h1PrimaryVertexResX", "Primary Vertex Resolution X;Primary Vertex Resolution X (cm);Events",100,-0.25,0.25);
1046 fListHist->Add(fHistPrimaryVertexResX);
1048 fHistPrimaryVertexResY = new TH1F("h1PrimaryVertexResY", "Primary Vertex Resolution Y;Primary Vertex Resolution Y (cm);Events",100,-0.25,0.25);
1049 fListHist->Add(fHistPrimaryVertexResY);
1051 fHistPrimaryVertexResZ = new TH1F("h1PrimaryVertexResZ", "Primary Vertex Resolution Z;Primary Vertex Resolution Z (cm);Events",200,-0.25,0.25);
1052 fListHist->Add(fHistPrimaryVertexResZ);
1055 // Primary Vertex in events with V0 candidates:
1056 fHistPrimaryVertexPosXV0events = new TH1F("h1PrimaryVertexPosXV0events", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
1057 fListHist->Add(fHistPrimaryVertexPosXV0events);
1058 fHistPrimaryVertexPosYV0events = new TH1F("h1PrimaryVertexPosYV0events", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
1059 fListHist->Add(fHistPrimaryVertexPosYV0events);
1060 fHistPrimaryVertexPosZV0events = new TH1F("h1PrimaryVertexPosZV0events", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20.0,20.0);
1061 fListHist->Add(fHistPrimaryVertexPosZV0events);
1064 fHistDaughterPt = new TH2F("h2DaughterPt", "Daughter Pt;Positive Daughter Pt; Negative Daughter Pt",200,0,2,200,0,2);
1065 fListHist->Add(fHistDaughterPt);
1067 //////K0s///////////////// 2D histos: cut vs on fly status////
1069 fHistDcaPosToPrimVertexK0 = new TH2F("h2DcaPosToPrimVertexK0", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1070 fListHist->Add(fHistDcaPosToPrimVertexK0);
1072 fHistDcaNegToPrimVertexK0 = new TH2F("h2DcaNegToPrimVertexK0", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1073 fListHist->Add(fHistDcaNegToPrimVertexK0);
1076 fHistRadiusV0K0 = new TH2F("h2RadiusV0K0", "Radius;Radius(cm);Status",500,0,500,2,-0.5,1.5);
1077 fListHist->Add(fHistRadiusV0K0);
1079 fHistDecayLengthV0K0 = new TH2F("h2DecayLengthV0K0", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1080 fListHist->Add(fHistDecayLengthV0K0);
1082 fHistDcaV0DaughtersK0 = new TH2F("h2DcaV0DaughtersK0", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1083 fListHist->Add(fHistDcaV0DaughtersK0);
1085 fHistChi2K0 = new TH2F("h2Chi2K0", "V0s chi2;chi2;Status", 1000, 0, 0.1,2,-0.5,1.5);
1086 fListHist->Add(fHistChi2K0);
1088 fHistCosPointAngleK0 = new TH2F("h2CosPointAngleK0", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1089 fListHist->Add(fHistCosPointAngleK0);
1092 ////////////K0s///////////////// 2D histos: cut vs mass////
1095 fHistDcaPosToPrimVertexK0vsMassK0 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1096 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0);
1098 fHistDcaNegToPrimVertexK0vsMassK0 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1099 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0);
1102 fHistRadiusV0K0vsMassK0 = new TH2F("h2RadiusV0K0vsMassK0", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1103 fListHist->Add(fHistRadiusV0K0vsMassK0);
1105 fHistDecayLengthV0K0vsMassK0 = new TH2F("h2DecayLengthV0K0vsMassK0", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
1106 fListHist->Add(fHistDecayLengthV0K0vsMassK0);
1108 fHistDcaV0DaughtersK0vsMassK0 = new TH2F("h2DcaV0DaughtersK0vsMassK0", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1109 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0);
1112 fHistCosPointAngleK0vsMassK0 = new TH2F("h2CosPointAngleK0vsMassK0", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1113 fListHist->Add(fHistCosPointAngleK0vsMassK0);
1116 fHistDcaPosToPrimVertexK0vsMassK0pt1 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1117 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt1);
1119 fHistDcaNegToPrimVertexK0vsMassK0pt1 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1120 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt1);
1122 fHistRadiusV0K0vsMassK0pt1 = new TH2F("h2RadiusV0K0vsMassK0pt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1123 fListHist->Add(fHistRadiusV0K0vsMassK0pt1);
1125 fHistDecayLengthV0K0vsMassK0pt1 = new TH2F("h2DecayLengthV0K0vsMassK0pt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,200,0.4,0.6);
1126 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt1);
1128 fHistDcaV0DaughtersK0vsMassK0pt1 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1129 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt1);
1131 fHistCosPointAngleK0vsMassK0pt1 = new TH2F("h2CosPointAngleK0vsMassK0pt1", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1132 fListHist->Add(fHistCosPointAngleK0vsMassK0pt1);
1135 fHistDcaPosToPrimVertexK0vsMassK0pt2 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1136 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt2);
1138 fHistDcaNegToPrimVertexK0vsMassK0pt2 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1139 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt2);
1141 fHistRadiusV0K0vsMassK0pt2 = new TH2F("h2RadiusV0K0vsMassK0pt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1142 fListHist->Add(fHistRadiusV0K0vsMassK0pt2);
1144 fHistDecayLengthV0K0vsMassK0pt2 = new TH2F("h2DecayLengthV0K0vsMassK0pt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
1145 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt2);
1147 fHistDcaV0DaughtersK0vsMassK0pt2 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1148 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt2);
1150 fHistCosPointAngleK0vsMassK0pt2 = new TH2F("h2CosPointAngleK0vsMassK0pt2", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1151 fListHist->Add(fHistCosPointAngleK0vsMassK0pt2);
1154 fHistDcaPosToPrimVertexK0vsMassK0pt3 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1155 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt3);
1157 fHistDcaNegToPrimVertexK0vsMassK0pt3 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1158 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt3);
1160 fHistRadiusV0K0vsMassK0pt3 = new TH2F("h2RadiusV0K0vsMassK0pt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1161 fListHist->Add(fHistRadiusV0K0vsMassK0pt3);
1163 fHistDecayLengthV0K0vsMassK0pt3 = new TH2F("h2DecayLengthV0K0vsMassK0pt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
1164 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt3);
1166 fHistDcaV0DaughtersK0vsMassK0pt3 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1167 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt3);
1169 fHistCosPointAngleK0vsMassK0pt3 = new TH2F("h2CosPointAngleK0vsMassK0pt3", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1170 fListHist->Add(fHistCosPointAngleK0vsMassK0pt3);
1171 } //end QA condition
1172 //////////Lambda////////////// 2D histos: cut vs on fly status////
1174 fHistDcaPosToPrimVertexL = new TH2F("h2DcaPosToPrimVertexL", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1175 fListHist->Add(fHistDcaPosToPrimVertexL);
1177 fHistDcaNegToPrimVertexL = new TH2F("h2DcaNegToPrimVertexL", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1178 fListHist->Add(fHistDcaNegToPrimVertexL);
1180 fHistRadiusV0L = new TH2F("h2RadiusV0L", "Radius;Radius(cm);Status",100,0,110,2,-0.5,1.5);
1181 fListHist->Add(fHistRadiusV0L);
1183 fHistDecayLengthV0L = new TH2F("h2DecayLengthV0L", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1184 fListHist->Add(fHistDecayLengthV0L);
1186 fHistDcaV0DaughtersL = new TH2F("h2DcaV0DaughtersL", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1187 fListHist->Add(fHistDcaV0DaughtersL);
1189 fHistChi2L = new TH2F("h2Chi2L", "V0s chi2;chi2;Status", 100, 0, 0.10,2,-0.5,1.5);
1190 fListHist->Add(fHistChi2L);
1192 fHistCosPointAngleL = new TH2F("h2CosPointAngleL", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1193 fListHist->Add(fHistCosPointAngleL);
1195 //////////Lambda////////////// 2D histos: cut vs mass////
1196 fHistDcaPosToPrimVertexLvsMassL = new TH2F("h2DcaPosToPrimVertexLvsMassL", "Positive V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1197 fListHist->Add(fHistDcaPosToPrimVertexLvsMassL);
1199 fHistDcaNegToPrimVertexLvsMassL = new TH2F("h2DcaNegToPrimVertexLvsMassL", "Negative V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1200 fListHist->Add(fHistDcaNegToPrimVertexLvsMassL);
1203 fHistRadiusV0LvsMassL = new TH2F("h2RadiusV0LvsMassL", "Radius;Radius(cm);Status",110,0,110,140, 1.06, 1.2);
1204 fListHist->Add(fHistRadiusV0LvsMassL);
1206 fHistDecayLengthV0LvsMassL = new TH2F("h2DecayLengthV0LvsMassL", "V0s decay Length;decay length(cm);Status", 120, 0, 120,140, 1.06, 1.2);
1207 fListHist->Add(fHistDecayLengthV0LvsMassL);
1209 fHistDcaV0DaughtersLvsMassL = new TH2F("h2DcaV0DaughtersLvsMassL", "DCA between daughters;dca(cm);Status", 110, 0, 1.1,140, 1.06, 1.2);
1210 fListHist->Add(fHistDcaV0DaughtersLvsMassL);
1212 fHistCosPointAngleLvsMassL = new TH2F("h2CosPointAngleLvsMassL", "Cosine of V0's pointing angle", 200,0.997,1.007,140, 1.06, 1.2);
1213 fListHist->Add(fHistCosPointAngleLvsMassL);
1215 fHistCosPointAngleLvsMassVsPtsigL = new TH3F("h3McCosPointAngleLvsMassVsPtsigL", "Cosine of V0's pointing angle",3,0,12, 2,00.997,1.007,140, 1.06, 1.2);
1216 fListHist->Add(fHistCosPointAngleLvsMassVsPtsigL);
1217 fHistCosPointAngleLvsMassVsPtbackL = new TH3F("h3McCosPointAngleLvsMassVsPtbackL", "Cosine of V0's pointing angle",3,0,12, 20,0.997,1.007,140, 1.06, 1.2);
1218 fListHist->Add(fHistCosPointAngleLvsMassVsPtbackL);
1223 fHistDcaPosToPrimVertexLambdaVsMasspt1 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1224 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt1);
1226 fHistDcaNegToPrimVertexLambdaVsMasspt1 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1227 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt1);
1229 fHistRadiusV0LambdaVsMasspt1 = new TH2F("h2RadiusV0LambdaVsMasspt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1230 fListHist->Add(fHistRadiusV0LambdaVsMasspt1);
1232 fHistDecayLengthV0LambdaVsMasspt1 = new TH2F("h2DecayLengthV0LambdaVsMasspt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,140,1.06,1.2);
1233 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt1);
1235 fHistDcaV0DaughtersLambdaVsMasspt1 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1236 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt1);
1238 fHistCosPointAngleLambdaVsMasspt1 = new TH2F("h2CosPointAngleLambdaVsMasspt1", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1239 fListHist->Add(fHistCosPointAngleLambdaVsMasspt1);
1242 fHistDcaPosToPrimVertexLambdaVsMasspt2 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1243 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt2);
1245 fHistDcaNegToPrimVertexLambdaVsMasspt2 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1246 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt2);
1248 fHistRadiusV0LambdaVsMasspt2 = new TH2F("h2RadiusV0LambdaVsMasspt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1249 fListHist->Add(fHistRadiusV0LambdaVsMasspt2);
1251 fHistDecayLengthV0LambdaVsMasspt2 = new TH2F("h2DecayLengthV0LambdaVsMasspt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1252 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt2);
1254 fHistDcaV0DaughtersLambdaVsMasspt2 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1255 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt2);
1257 fHistCosPointAngleLambdaVsMasspt2 = new TH2F("h2CosPointAngleLambdaVsMasspt2", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1258 fListHist->Add(fHistCosPointAngleLambdaVsMasspt2);
1261 fHistDcaPosToPrimVertexLambdaVsMasspt3 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1262 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt3);
1264 fHistDcaNegToPrimVertexLambdaVsMasspt3 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1265 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt3);
1267 fHistRadiusV0LambdaVsMasspt3 = new TH2F("h2RadiusV0LambdaVsMasspt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1268 fListHist->Add(fHistRadiusV0LambdaVsMasspt3);
1270 fHistDecayLengthV0LambdaVsMasspt3 = new TH2F("h2DecayLengthV0LambdaVsMasspt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1271 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt3);
1273 fHistDcaV0DaughtersLambdaVsMasspt3 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1274 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt3);
1276 fHistCosPointAngleLambdaVsMasspt3 = new TH2F("h2CosPointAngleLambdaVsMasspt3", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1277 fListHist->Add(fHistCosPointAngleLambdaVsMasspt3);
1278 } // end QA condition
1279 //////////AntiLambda////////////// 2D histos: cut vs on fly status////
1281 fHistDcaPosToPrimVertexAntiL = new TH2F("h2DcaPosToPrimVertexAntiL", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1282 fListHist->Add(fHistDcaPosToPrimVertexAntiL);
1284 fHistDcaNegToPrimVertexAntiL = new TH2F("h2DcaNegToPrimVertexAntiL", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1285 fListHist->Add(fHistDcaNegToPrimVertexAntiL);
1288 fHistRadiusV0AntiL = new TH2F("h2RadiusV0AntiL", "Radius;Radius(cm);Status",100,0,110,2,-0.5,1.5);
1289 fListHist->Add(fHistRadiusV0AntiL);
1291 fHistDecayLengthV0AntiL = new TH2F("h2DecayLengthV0AntiL", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1292 fListHist->Add(fHistDecayLengthV0AntiL);
1294 fHistDcaV0DaughtersAntiL = new TH2F("h2DcaV0DaughtersAntiL", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1295 fListHist->Add(fHistDcaV0DaughtersAntiL);
1297 fHistChi2AntiL = new TH2F("h2Chi2AntiL", "V0s chi2;chi2;Status", 100, 0, 0.10,2,-0.5,1.5);
1298 fListHist->Add(fHistChi2AntiL);
1300 fHistCosPointAngleAntiL = new TH2F("h2CosPointAngleAntiL", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1301 fListHist->Add(fHistCosPointAngleAntiL);
1303 //////////AntiLambda////////////// 2D histos: cut vs mass////
1305 fHistDcaPosToPrimVertexAntiLvsMass = new TH2F("h2DcaPosToPrimVertexAntiLvsMass", "Positive V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1306 fListHist->Add(fHistDcaPosToPrimVertexAntiLvsMass);
1308 fHistDcaNegToPrimVertexAntiLvsMass = new TH2F("h2DcaNegToPrimVertexAntiLvsMass", "Negative V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1309 fListHist->Add(fHistDcaNegToPrimVertexAntiLvsMass);
1312 fHistRadiusV0AntiLvsMass = new TH2F("h2RadiusV0AntiLvsMass", "Radius;Radius(cm);Status",110,0,110,140, 1.06, 1.2);
1313 fListHist->Add(fHistRadiusV0AntiLvsMass);
1315 fHistDecayLengthV0AntiLvsMass = new TH2F("h2DecayLengthV0AntiLvsMass", "V0s decay Length;decay length(cm);Status", 120, 0, 120,140, 1.06, 1.2);
1316 fListHist->Add(fHistDecayLengthV0AntiLvsMass);
1318 fHistDcaV0DaughtersAntiLvsMass = new TH2F("h2DcaV0DaughtersAntiLvsMass", "DCA between daughters;dca(cm);Status", 110, 0, 1.1,140, 1.06, 1.2);
1319 fListHist->Add(fHistDcaV0DaughtersAntiLvsMass);
1321 fHistCosPointAngleAntiLvsMass = new TH2F("h2CosPointAngleAntiLvsMass", "Cosine of V0's pointing angle", 200,0.997,1.007,140, 1.06, 1.2);
1322 fListHist->Add(fHistCosPointAngleAntiLvsMass);
1325 fHistDcaPosToPrimVertexAntiLVsMasspt1 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1326 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt1);
1328 fHistDcaNegToPrimVertexAntiLVsMasspt1 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1329 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt1);
1331 fHistRadiusV0AntiLVsMasspt1 = new TH2F("h2RadiusV0AntiLVsMasspt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1332 fListHist->Add(fHistRadiusV0AntiLVsMasspt1);
1334 fHistDecayLengthV0AntiLVsMasspt1 = new TH2F("h2DecayLengthV0AntiLVsMasspt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,140,1.06,1.2);
1335 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt1);
1337 fHistDcaV0DaughtersAntiLVsMasspt1 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1338 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt1);
1340 fHistCosPointAngleAntiLVsMasspt1 = new TH2F("h2CosPointAngleAntiLVsMasspt1", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1341 fListHist->Add(fHistCosPointAngleAntiLVsMasspt1);
1344 fHistDcaPosToPrimVertexAntiLVsMasspt2 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1345 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt2);
1347 fHistDcaNegToPrimVertexAntiLVsMasspt2 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1348 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt2);
1350 fHistRadiusV0AntiLVsMasspt2 = new TH2F("h2RadiusV0AntiLVsMasspt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1351 fListHist->Add(fHistRadiusV0AntiLVsMasspt2);
1353 fHistDecayLengthV0AntiLVsMasspt2 = new TH2F("h2DecayLengthV0AntiLVsMasspt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1354 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt2);
1356 fHistDcaV0DaughtersAntiLVsMasspt2 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1357 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt2);
1359 fHistCosPointAngleAntiLVsMasspt2 = new TH2F("h2CosPointAngleAntiLVsMasspt2", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1360 fListHist->Add(fHistCosPointAngleAntiLVsMasspt2);
1363 fHistDcaPosToPrimVertexAntiLVsMasspt3 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1364 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt3);
1366 fHistDcaNegToPrimVertexAntiLVsMasspt3 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1367 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt3);
1369 fHistRadiusV0AntiLVsMasspt3 = new TH2F("h2RadiusV0AntiLVsMasspt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1370 fListHist->Add(fHistRadiusV0AntiLVsMasspt3);
1372 fHistDecayLengthV0AntiLVsMasspt3 = new TH2F("h2DecayLengthV0AntiLVsMasspt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1373 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt3);
1375 fHistDcaV0DaughtersAntiLVsMasspt3 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1376 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt3);
1378 fHistCosPointAngleAntiLVsMasspt3 = new TH2F("h2CosPointAngleAntiLVsMasspt3", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1379 fListHist->Add(fHistCosPointAngleAntiLVsMasspt3);
1380 } //end QA condition for AntiLambda
1383 if (!fHistV0Multiplicity) {
1384 if (fCollidingSystems)
1385 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 200, 0, 40000);
1387 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 10, 0, 10);
1388 fListHist->Add(fHistV0Multiplicity);
1393 fHistMassK0 = new TH1F("h1MassK0", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 200, 0.4, 0.6);
1394 fListHist->Add(fHistMassK0);
1396 fHistMassLambda = new TH1F("h1MassLambda", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 150, 1.05, 1.2);
1397 fListHist->Add(fHistMassLambda);
1399 fHistMassAntiLambda = new TH1F("h1MassAntiLambda", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 150, 1.05, 1.2);
1400 fListHist->Add(fHistMassAntiLambda);
1402 /* // invariant mass vs radius
1403 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};
1404 Int_t lNbinRadius = 9;
1405 Int_t lNbinInvMassLambda = 300;
1407 fHistMassVsRadiusK0 = new TH2F("h2MassVsRadiusK0", "K^{0} candidates;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",200,0,200, 200, 0.4, 0.6);
1408 fListHist->Add(fHistMassVsRadiusK0);
1410 //fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
1411 fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",200,0,200, 140, 1.06, 1.2);
1412 fListHist->Add(fHistMassVsRadiusLambda);
1415 //fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
1416 fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",200,0,200, 140, 1.06, 1.2);
1417 fListHist->Add(fHistMassVsRadiusAntiLambda);
1421 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);
1422 fListHist->Add(fHistPtVsMassK0);
1424 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);
1425 fListHist->Add(fHistPtVsMassLambda);
1427 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);
1428 fListHist->Add(fHistPtVsMassAntiLambda);
1431 ////////// Transverse CTau distributions Vs Mass ////////////////
1432 fHistTranscTauVsMassL = new TH2F("h2TranscTauVsMassL","cTauVsMass Lambdas",100,0,100,280, 1.06, 1.2);
1433 fListHist->Add(fHistTranscTauVsMassL);
1435 fHistTranscTauVsMassAntiL = new TH2F("h2TranscTauVsMassAntiL","cTauVsMass AntiLambdas",100,0,100,280, 1.06, 1.2);
1436 fListHist->Add(fHistTranscTauVsMassAntiL);
1438 fHistTranscTauVsMassK0s = new TH2F("h2TranscTauVsMassK0s","Transverse K0s cTau vs Mass ",100,0,100,400, 0.4, 0.6);
1439 fListHist->Add(fHistTranscTauVsMassK0s);
1444 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);
1445 fListHist->Add(fHistPtVsMassK0Rap3);
1447 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);
1448 fListHist->Add(fHistPtVsMassLambdaRap3);
1450 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);
1451 fListHist->Add(fHistPtVsMassAntiLambdaRap3);
1454 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1456 ///Armenteros Podolansky
1457 fHistArmenterosPodolanski = new TH2F("h2ArmenterosPodolanski","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5);
1458 fListHist->Add(fHistArmenterosPodolanski);
1460 ///Inv. Mass K0s vs Inv. Mass. Lambda
1461 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);
1462 fListHist->Add(fHistK0sMassVsLambdaMass);
1464 //dE/dx vs P daughters
1465 fHistTPCsigPLambda = new TH2F("h2TPCsignalVsPLambda","TPC signal Vs p_{t} daughters; p (GeV/c);TPC signal",1000,0,2,1000,0,1000);
1466 fListHist->Add(fHistTPCsigPLambda);
1469 fHistTPCsigPAntiLambda = new TH2F("h2TPCsignalVsPAntiLambda","TPC signal Vs p_{t} daughters; p (GeV/c);TPC signal",1000,0,2,1000,0,1000);
1470 fListHist->Add(fHistTPCsigPAntiLambda);
1473 fHistNSigmaProton =new TH1F("h1NSigmaProton","Number of sigmas for proton;;Count",600,0,6);
1474 fListHist->Add(fHistNSigmaProton);
1478 fHistNsigmaPosPionAntiLambda = new TH1F("h1NsigmaPosPionAntiLambda", "Positive daughter of Antilambda;NsigmaPion;Counts",25,0,5);
1479 fListHist->Add(fHistNsigmaPosPionAntiLambda);
1481 fHistNsigmaNegProtonAntiLambda = new TH1F("h1NsigmaNegProtonAntiLambda", "Negative daughter of Antilambda;NsigmaProton;Counts",25,0,5);
1482 fListHist->Add(fHistNsigmaNegProtonAntiLambda);
1484 fHistNsigmaPosProtonLambda = new TH1F("h1NsigmaPosProtonLambda", "Positive daughter of Lambda;NsigmaProton;Counts",25,0,5);
1485 fListHist->Add(fHistNsigmaPosProtonLambda);
1487 fHistNsigmaNegPionLambda = new TH1F("h1NsigmaNegPionLambda", "Negative daughter of Lambda;NsigmaPion;Counts",25,0,5);
1488 fListHist->Add(fHistNsigmaNegPionLambda);
1490 fHistNsigmaPosProtonAntiLambda = new TH1F("h1NsigmaPosProtonAntiLambda", "Positive daughter of AntiLambda;NsigmaProton;Counts",25,0,5);
1491 fListHist->Add(fHistNsigmaPosProtonAntiLambda);
1493 fHistNsigmaNegPionAntiLambda = new TH1F("h1NsigmaNegPionAntiLambda", "Negative daughter of AntiLambda;NsigmaPion;Counts",25,0,5);
1494 fListHist->Add(fHistNsigmaNegPionAntiLambda);
1496 fHistNsigmaPosPionK0 = new TH1F("h1NsigmaPosPionK0", "Positive daughter of K0s;NsigmaPion;Counts",25,0,5);
1497 fListHist->Add(fHistNsigmaPosPionK0);
1499 fHistNsigmaNegPionK0 = new TH1F("h1NsigmaNegPionK0", "Negative daughter of K0s;NsigmaPion;Counts",25,0,5);
1500 fListHist->Add(fHistNsigmaNegPionK0);
1503 //********************************
1504 // Associated particles histograms
1505 //********************************
1508 fHistAsMcRapK0 = new TH1F("h1AsMcRapK0", "K^{0} associated;eta;Counts", 60, -1.5, 1.5);
1509 fListHist->Add(fHistAsMcRapK0);
1511 fHistAsMcRapLambda = new TH1F("h1AsMcRapLambda", "#Lambda^{0} associated;eta;Counts", 60, -1.5, 1.5);
1512 fListHist->Add(fHistAsMcRapLambda);
1514 fHistAsMcRapAntiLambda = new TH1F("h1AsMcRapAntiLambda", "#bar{#Lambda}^{0} associated;eta;Counts", 60, -1.5, 1.5);
1515 fListHist->Add(fHistAsMcRapAntiLambda);
1518 fHistAsMcPtK0 = new TH1F("h1AsMcPtK0", "K^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1519 fListHist->Add(fHistAsMcPtK0);
1521 fHistAsMcPtLambda = new TH1F("h1AsMcPtLambda", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1522 fListHist->Add(fHistAsMcPtLambda);
1524 fHistAsMcPtAntiLambda = new TH1F("h1AsMcPtAntiLambda", "#AntiLambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1525 fListHist->Add(fHistAsMcPtAntiLambda);
1528 fHistAsMcPtZoomK0 = new TH1F("h1AsMcPtZoomK0", "K^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1529 fListHist->Add(fHistAsMcPtZoomK0);
1531 fHistAsMcPtZoomLambda = new TH1F("h1AsMcPtZoomLambda", "#Lambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1532 fListHist->Add(fHistAsMcPtZoomLambda);
1534 fHistAsMcPtZoomAntiLambda = new TH1F("h1AsMcPtZoomAntiLambda", "#AntiLambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1535 fListHist->Add(fHistAsMcPtZoomAntiLambda);
1537 //Pt distribution Rap3
1538 fHistAsMcPtK0Rap3 = new TH1F("h1AsMcPtK0Rap3", "K^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1539 fListHist->Add(fHistAsMcPtK0Rap3);
1541 fHistAsMcPtLambdaRap3 = new TH1F("h1AsMcPtLambdaRap3", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1542 fListHist->Add(fHistAsMcPtLambdaRap3);
1544 fHistAsMcPtAntiLambdaRap3 = new TH1F("h1AsMcPtAntiLambdaRap3", "#AntiLambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1545 fListHist->Add(fHistAsMcPtAntiLambdaRap3);
1548 fHistAsMcTranscTauL = new TH1F("h1AsMcTranscTauL","cTau of AntiLambdas",100,0,100);
1549 fListHist->Add(fHistAsMcTranscTauL);
1550 fHistAsMcTranscTauAntiL = new TH1F("h1AsMcTranscTauAntiL","cTau of AntiLambdas",100,0,100);
1551 fListHist->Add(fHistAsMcTranscTauAntiL);
1552 fHistAsMcTranscTauK0s = new TH1F("h1AsMcTranscTauK0s","cTau of K0s",100,0,100);
1553 fListHist->Add(fHistAsMcTranscTauK0s);
1557 // Radius distribution
1558 fHistAsMcProdRadiusK0 = new TH1F("h1AsMcProdRadiusK0", "K^{0} associated;r (cm);Counts", 500, 0, 100);
1559 fListHist->Add(fHistAsMcProdRadiusK0);
1561 fHistAsMcProdRadiusLambda = new TH1F("h1AsMcProdRadiusLambda", "#Lambda^{0} associated;r (cm);Counts", 500, 0, 100);
1562 fListHist->Add(fHistAsMcProdRadiusLambda);
1564 fHistAsMcProdRadiusAntiLambda = new TH1F("h1AsMcProdRadiusAntiLambda", "#bar{#Lambda}^{0} associated;r (cm);Counts", 500, 0, 100);
1565 fListHist->Add(fHistAsMcProdRadiusAntiLambda);
1567 fHistAsMcProdRadiusXvsYK0s = new TH2F("h2AsMcProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1568 fListHist->Add(fHistAsMcProdRadiusXvsYK0s);
1570 fHistAsMcProdRadiusXvsYLambda = new TH2F("h2AsMcProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1571 fListHist->Add(fHistAsMcProdRadiusXvsYLambda);
1573 fHistAsMcProdRadiusXvsYAntiLambda = new TH2F("h2AsMcProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1574 fListHist->Add(fHistAsMcProdRadiusXvsYAntiLambda);
1577 fHistPidMcMassK0 = new TH1F("h1PidMcMassK0", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1578 fListHist->Add(fHistPidMcMassK0);
1580 fHistPidMcMassLambda = new TH1F("h1PidMcMassLambda", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1581 fListHist->Add(fHistPidMcMassLambda);
1583 fHistPidMcMassAntiLambda = new TH1F("h1PidMcMassAntiLambda", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1584 fListHist->Add(fHistPidMcMassAntiLambda);
1586 fHistAsMcMassK0 = new TH1F("h1AsMcMassK0", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1587 fListHist->Add(fHistAsMcMassK0);
1589 fHistAsMcMassLambda = new TH1F("h1AsMcMassLambda", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1590 fListHist->Add(fHistAsMcMassLambda);
1592 fHistAsMcMassAntiLambda = new TH1F("h1AsMcMassAntiLambda", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1593 fListHist->Add(fHistAsMcMassAntiLambda);
1597 fHistAsMcMassK0Rap3 = new TH1F("h1AsMcMassK0Rap3", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1598 fListHist->Add(fHistAsMcMassK0Rap3);
1600 fHistAsMcMassLambdaRap3 = new TH1F("h1AsMcMassLambdaRap3", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1601 fListHist->Add(fHistAsMcMassLambdaRap3);
1603 fHistAsMcMassAntiLambdaRap3 = new TH1F("h1AsMcMassAntiLambdaRap3", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1604 fListHist->Add(fHistAsMcMassAntiLambdaRap3);
1609 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);
1610 fListHist->Add(fHistAsMcPtVsMassK0);
1612 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);
1613 fListHist->Add(fHistAsMcPtVsMassLambda);
1615 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);
1616 fListHist->Add(fHistAsMcPtVsMassAntiLambda);
1619 //Pt versus Mass Rap3
1620 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);
1621 fListHist->Add(fHistAsMcPtVsMassK0Rap3);
1623 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);
1624 fListHist->Add(fHistAsMcPtVsMassLambdaRap3);
1626 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);
1627 fListHist->Add(fHistAsMcPtVsMassAntiLambdaRap3);
1633 // invariant mass vs radius
1634 //fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 500, 0.47, 0.52);
1635 fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",200,0,200, 500, 0.47, 0.52);
1636 fListHist->Add(fHistAsMcMassVsRadiusK0);
1638 //fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, lNbinInvMassLambda, 1.10, 1.13);
1639 fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",200,0,200, 1.10, 1.13);
1640 fListHist->Add(fHistAsMcMassVsRadiusLambda);
1642 //fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius,lNbinInvMassLambda , 1.10, 1.13);
1643 fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",200,0,200 , 1.10, 1.13);
1644 fListHist->Add(fHistAsMcMassVsRadiusAntiLambda);
1646 // Position Resolution
1647 fHistAsMcResxK0 = new TH1F("h1AsMcResxK0", "K^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1648 fListHist->Add(fHistAsMcResxK0);
1649 fHistAsMcResyK0 = new TH1F("h1AsMcResyK0", "K^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1650 fListHist->Add(fHistAsMcResyK0);
1651 fHistAsMcReszK0 = new TH1F("h1AsMcReszK0", "K^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1652 fListHist->Add(fHistAsMcReszK0);
1653 fHistAsMcResrVsRadiusK0 = new TH2F("h2AsMcResrVsRadiusK0", "K^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50., 50, -0.25, 0.25);
1654 fListHist->Add(fHistAsMcResrVsRadiusK0);
1655 fHistAsMcReszVsRadiusK0 = new TH2F("h2AsMcReszVsRadiusK0", "K^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1656 fListHist->Add(fHistAsMcReszVsRadiusK0);
1658 fHistAsMcResxLambda = new TH1F("h1AsMcResxLambda", "#Lambda^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1659 fListHist->Add(fHistAsMcResxLambda);
1660 fHistAsMcResyLambda = new TH1F("h1AsMcResyLambda", "#Lambda^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1661 fListHist->Add(fHistAsMcResyLambda);
1662 fHistAsMcReszLambda = new TH1F("h1AsMcReszLambda", "#Lambda^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1663 fListHist->Add(fHistAsMcReszLambda);
1664 fHistAsMcResrVsRadiusLambda = new TH2F("h2AsMcResrVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1665 fListHist->Add(fHistAsMcResrVsRadiusLambda);
1666 fHistAsMcReszVsRadiusLambda = new TH2F("h2AsMcReszVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1667 fListHist->Add(fHistAsMcReszVsRadiusLambda);
1669 fHistAsMcResxAntiLambda = new TH1F("h1AsMcResxAntiLambda", "#bar{#Lambda}^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1670 fListHist->Add(fHistAsMcResxAntiLambda);
1671 fHistAsMcResyAntiLambda = new TH1F("h1AsMcResyAntiLambda", "#bar{#Lambda}^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1672 fListHist->Add(fHistAsMcResyAntiLambda);
1673 fHistAsMcReszAntiLambda = new TH1F("h1AsMcReszAntiLambda", "#bar{#Lambda}^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1674 fListHist->Add(fHistAsMcReszAntiLambda);
1675 fHistAsMcResrVsRadiusAntiLambda = new TH2F("h2AsMcResrVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1676 fListHist->Add(fHistAsMcResrVsRadiusAntiLambda);
1677 fHistAsMcReszVsRadiusAntiLambda = new TH2F("h2AsMcReszVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1678 fListHist->Add(fHistAsMcReszVsRadiusAntiLambda);
1681 fHistAsMcResPtK0 = new TH1F("h1AsMcResPtK0","Pt Resolution K^{0};#Delta Pt;Counts",200,-1,1);
1682 fListHist->Add(fHistAsMcResPtK0);
1684 fHistAsMcResPtLambda = new TH1F("h1AsMcResPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Counts",200,-1,1);
1685 fListHist->Add(fHistAsMcResPtLambda);
1687 fHistAsMcResPtAntiLambda = new TH1F("h1AsMcResPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Counts",200,-1,1);
1688 fListHist->Add(fHistAsMcResPtAntiLambda);
1691 fHistAsMcResPtVsRapK0 = new TH2F("h2AsMcResPtVsRapK0","Pt Resolution K^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1692 fListHist->Add(fHistAsMcResPtVsRapK0);
1694 fHistAsMcResPtVsRapLambda = new TH2F("h2AsMcResPtVsRapLambda","Pt Resolution #Lambda^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1695 fListHist->Add(fHistAsMcResPtVsRapLambda);
1697 fHistAsMcResPtVsRapAntiLambda = new TH2F("h2AsMcResPtVsRapAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1698 fListHist->Add(fHistAsMcResPtVsRapAntiLambda);
1700 fHistAsMcResPtVsPtK0 = new TH2F("h2AsMcResPtVsPtK0","Pt Resolution K^{0};#Delta Pt;Pt",600,-0.15,0.15,240,0,12);
1701 fListHist->Add(fHistAsMcResPtVsPtK0);
1703 fHistAsMcResPtVsPtLambda = new TH2F("h2AsMcResPtVsPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Pt",600,-0.15,0.15,240,0,12);
1704 fListHist->Add(fHistAsMcResPtVsPtLambda);
1706 fHistAsMcResPtVsPtAntiLambda = new TH2F("h2AsMcResPtVsPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Pt",300,-0.15,0.15,240,0,12);
1707 fListHist->Add(fHistAsMcResPtVsPtAntiLambda);
1709 // pdgcode of mother
1710 fHistAsMcMotherPdgCodeK0s = new TH1F("h1AsMcMotherPdgCodeK0s","Mother of Associated K^{0};mother;counts",11,0,11);
1711 fListHist->Add(fHistAsMcMotherPdgCodeK0s);
1713 fHistAsMcMotherPdgCodeLambda = new TH1F("h1AsMcMotherPdgCodeLambda","Mother of Associated #Lambda^{0};mother;counts",11,0,11);
1714 fListHist->Add(fHistAsMcMotherPdgCodeLambda);
1716 fHistAsMcMotherPdgCodeAntiLambda = new TH1F("h1AsMcMotherPdgCodeAntiLambda","Mother of Associated #bar{#Lambda}^{0};mother;counts",11,0,11);
1717 fListHist->Add(fHistAsMcMotherPdgCodeAntiLambda);
1719 // Pt distribution Lambda from Sigma
1720 fHistAsMcPtLambdaFromSigma = new TH1F("h1AsMcPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1721 fListHist->Add(fHistAsMcPtLambdaFromSigma);
1723 fHistAsMcPtAntiLambdaFromSigma = new TH1F("h1AsMcPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1724 fListHist->Add(fHistAsMcPtAntiLambdaFromSigma);
1726 // Associated secondary particles:
1727 // Pt and rapidity distribution
1728 fHistAsMcSecondaryPtVsRapK0s = new TH2F("h2AsMcSecondaryPtVsRapK0s", "K^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1729 fListHist->Add(fHistAsMcSecondaryPtVsRapK0s);
1731 fHistAsMcSecondaryPtVsRapLambda = new TH2F("h2AsMcSecondaryPtVsRapLambda", "#Lambda^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1732 fListHist->Add(fHistAsMcSecondaryPtVsRapLambda);
1734 fHistAsMcSecondaryPtVsRapAntiLambda = new TH2F("h2AsMcSecondaryPtVsRapAntiLambda", "#bar{#Lambda}^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1735 fListHist->Add(fHistAsMcSecondaryPtVsRapAntiLambda);
1737 // Production radius
1738 fHistAsMcSecondaryProdRadiusK0s = new TH1F("h1AsMcSecondaryProdRadiusK0s", "K^{0} Production Radius;r (cm);Count", 170, -2, 15);
1739 fListHist->Add(fHistAsMcSecondaryProdRadiusK0s);
1741 fHistAsMcSecondaryProdRadiusLambda = new TH1F("h1AsMcSecondaryProdRadiusLambda", "#Lambda^{0} Production Radius;r (cm);Count", 170, -2, 15);
1742 fListHist->Add(fHistAsMcSecondaryProdRadiusLambda);
1744 fHistAsMcSecondaryProdRadiusAntiLambda = new TH1F("h1AsMcSecondaryProdRadiusAntiLambda", "#bar{#Lambda}^{0} Production Radius;r (cm);Count", 170, -2, 15);
1745 fListHist->Add(fHistAsMcSecondaryProdRadiusAntiLambda);
1747 fHistAsMcSecondaryProdRadiusXvsYK0s = new TH2F("h2AsMcSecondaryProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1748 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYK0s);
1750 fHistAsMcSecondaryProdRadiusXvsYLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1751 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYLambda);
1753 fHistAsMcSecondaryProdRadiusXvsYAntiLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1754 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYAntiLambda);
1756 fHistAsMcSecondaryMotherPdgCodeK0s = new TH1F("h1AsMcSecondaryMotherPdgCodeK0s","Mother of Associated Secondary K^{0};mother;counts",11,0,11);
1757 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeK0s);
1759 fHistAsMcSecondaryMotherPdgCodeLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeLambda","Mother of Associated Secondary #Lambda^{0};mother;counts",11,0,11);
1760 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeLambda);
1762 fHistAsMcSecondaryMotherPdgCodeAntiLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeAntiLambda","Mother of Associated Secondary #bar{#Lambda}^{0};mother;counts",11,0,11);
1763 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeAntiLambda);
1765 // Pt distribution Lambda from Sigma
1766 fHistAsMcSecondaryPtLambdaFromSigma = new TH1F("h1AsMcSecondaryPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1767 fListHist->Add(fHistAsMcSecondaryPtLambdaFromSigma);
1769 fHistAsMcSecondaryPtAntiLambdaFromSigma = new TH1F("h1AsMcSecondaryPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1770 fListHist->Add(fHistAsMcSecondaryPtAntiLambdaFromSigma);
1771 PostData(1, fListHist);
1772 PostData(2, fCentrSelector);
1773 PostData(3, fTracksCuts);
1776 //________________________________________________________________________
1777 void AliAnalysisTaskPerformanceStrange::UserExec(Option_t *)
1780 // Called for each event
1782 AliStack* stack = NULL;
1783 // TClonesArray *mcArray = NULL;
1784 TArrayF mcPrimaryVtx;
1786 fESD=(AliESDEvent *)InputEvent();
1789 Printf("ERROR: fESD not available");
1793 AliVEvent* lEvent = InputEvent();
1796 Printf("ERROR: Event not available");
1804 if (fUsePID.Contains("withPID")) {
1805 AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
1806 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
1807 fPIDResponse = inputHandler->GetPIDResponse();
1810 fHistNumberEvents->Fill(0.5);
1812 //******************
1813 // Trigger Selection ! Warning Works only for ESD, add protection in case of AOD loop
1814 //******************
1816 Bool_t isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()& AliVEvent::kMB);
1817 if (!isSelected) return;
1819 fHistNumberEvents->Fill(1.5);
1822 // Centrality selection
1824 static AliESDtrackCuts * trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1);
1825 Bool_t isCentralitySelected = fCentrSelector->IsCentralityBinSelected(fESD,trackCuts);
1826 if(!isCentralitySelected) return;
1828 // Done by the AliPhysicsSelection Task ! Only the selected events are passed to this task
1830 AliESDtrackCuts *TestTrackCuts = new AliESDtrackCuts();
1831 TestTrackCuts->SetRequireTPCRefit(kTRUE);
1832 TestTrackCuts->SetRequireITSRefit(kFALSE);
1833 // mytracksCuts->SetMinNClustersTPC(nbMinTPCclusters);
1834 TestTrackCuts->SetMinNCrossedRowsTPC(70);
1835 TestTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
1837 AliESDtrack *track = 0x0;
1838 Double_t trackP[3] = {0,0,0};
1839 for (int i = 0; i<fESD->GetNumberOfTracks();i++){
1840 track = fESD->GetTrack(i);
1841 track->GetInnerPxPyPz(trackP);
1842 TestTrackCuts->SetRequireITSRefit(kFALSE);
1843 if(TestTrackCuts->IsSelected(track)) fHistPtTracks->Fill(trackP[2]);
1844 TestTrackCuts->SetRequireITSRefit(kTRUE);
1845 if(TestTrackCuts->IsSelected(track)) fHistPtTracksITSRefit->Fill(trackP[2]);
1849 // Remove Events with no tracks
1850 //if (!(fESD->GetNumberOfTracks())) return;
1852 fHistNumberEvents->Fill(2.5);
1853 // fHistTrackPerEvent->Fill(fESD->GetNumberOfTracks());
1855 //*************************************
1857 //*************************************
1860 Double_t lCutRap = 0.5;
1862 // cut Pseudorapidity:
1864 Double_t lCutPseudorap = 0.8;
1866 // Cut AliKF Chi2 for Reconstructed particles
1867 // Double_t cutChi2KF = 1E3;
1870 Double_t lLimitPPID = 0.7;
1871 Float_t cutNSigmaLowP = 1E3;
1872 Float_t cutNSigmaHighP = 1E3;
1873 if (fUsePID.Contains("withPID")) {
1874 cutNSigmaLowP = 3.0;
1875 cutNSigmaHighP = 3.0;
1879 // Cut Daughters pt (GeV/c):
1880 //Double_t cutMinPtDaughter = 0.160;
1882 // Cut primary vertex:
1883 Double_t cutPrimVertex = 10.0;
1886 Double_t cutcTauL = 3*7.89;
1887 Double_t cutcTauK0s = 3*2.68;
1889 // Min number of TPC clusters:
1890 // Int_t nbMinTPCclusters = 80;
1895 Int_t LambdaPID = 0;
1896 Int_t AntiLambdaPID = 0;
1899 //////******************************************
1900 ////// Access MC: ******************************
1901 //////******************************************
1904 if(fAnalysisType == "ESD") {
1905 AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
1906 if (!eventHandler) {
1907 Printf("ERROR: Could not retrieve MC event handler");
1910 AliMCEvent* mcEvent = eventHandler->MCEvent();
1912 Printf("ERROR: Could not retrieve MC event");
1915 stack = mcEvent->Stack();
1917 Printf("ERROR: Could not retrieve stack");
1921 AliGenEventHeader* mcHeader=mcEvent->GenEventHeader();
1922 if(!mcHeader) return;
1923 mcHeader->PrimaryVertex(mcPrimaryVtx);
1925 if (TMath::Abs(mcPrimaryVtx.At(2)) > cutPrimVertex) return; /// cut on z of prim. vertex !!!!!!
1929 // PID parameters for MC simulations:
1930 fAlephParameters[0] = 2.15898e+00/50.;
1931 fAlephParameters[1] = 1.75295e+01;
1932 fAlephParameters[2] = 3.40030e-09;
1933 fAlephParameters[3] = 1.96178e+00;
1934 fAlephParameters[4] = 3.91720e+00;
1939 //**********************************************
1941 //**********************************************
1943 // Double_t lmcPrimVtxR = 0;
1945 Int_t lNbMCPrimary = 0;
1946 Int_t lNbMCPart = 0;
1948 Int_t lPdgcodeCurrentPart = 0;
1949 Double_t lRapCurrentPart = 0;
1950 Double_t lPtCurrentPart = 0;
1952 Int_t lComeFromSigma = 0;
1955 // Production Radius
1956 Double_t mcPosX = 0.0, mcPosY = 0.0, mcPosZ = 0.0;
1957 Double_t mcPosR = 0.0;
1960 Double_t mcDecayPosX = 0, mcDecayPosY = 0, mcDecayPosR = 0;
1962 // current mc particle 's mother
1963 Int_t iCurrentMother = 0, lPdgCurrentMother = 0;
1964 // Bool_t lCurrentMotherIsPrimary;
1966 // current mc particles 's daughter:
1967 // Int_t lPdgCurrentDaughter0 = 0, lPdgCurrentDaughter1 = 0;
1969 // variables for multiple reconstruction studies:
1970 Int_t id0 = 0, id1 = 0;
1971 //Int_t lLabelTrackN = 0, lLabelTrackP = 0;
1972 //Int_t lPartNMother = 0, lPartPMother = 0;
1973 //Int_t lPartPMotherPDGcode = 0;
1974 Int_t lNtimesReconstructedK0s = 0, lNtimesReconstructedLambda = 0, lNtimesReconstructedAntiLambda = 0;
1975 // Int_t lNtimesReconstructedK0sMI = 0, lNtimesReconstructedLambdaMI = 0, lNtimesReconstructedAntiLambdaMI = 0;
1977 ////********************************
1978 ////Start loop over MC particles****
1979 ////********************************
1984 fHistMCPrimaryVertexX->Fill(mcPrimaryVtx.At(0));
1985 fHistMCPrimaryVertexY->Fill(mcPrimaryVtx.At(1));
1986 fHistMCPrimaryVertexZ->Fill(mcPrimaryVtx.At(2));
1988 // lmcPrimVtxR = TMath::Sqrt(mcPrimaryVtx.At(0)*mcPrimaryVtx.At(0)+mcPrimaryVtx.At(1)*mcPrimaryVtx.At(1));
1991 if(fAnalysisType == "ESD") {
1993 lNbMCPrimary = stack->GetNprimary();
1994 lNbMCPart = stack->GetNtrack();
1996 fHistMCMultiplicityPrimary->Fill(lNbMCPrimary);
1997 fHistMCMultiplicityTracks->Fill(lNbMCPart);
2000 for (Int_t iMc = 0; iMc < (stack->GetNtrack()); iMc++) {
2001 TParticle *p0 = stack->Particle(iMc);
2003 //Printf("ERROR: particle with label %d not found in stack (mc loop)", iMc);
2006 lPdgcodeCurrentPart = p0->GetPdgCode();
2008 // Keep only K0s, Lambda and AntiLambda, Xi and Phi:
2009 if ( (lPdgcodeCurrentPart != 310 ) && (lPdgcodeCurrentPart != 3122 ) && (lPdgcodeCurrentPart != -3122 ) && (lPdgcodeCurrentPart != 3312 ) && (lPdgcodeCurrentPart != -3312) && (lPdgcodeCurrentPart != -333) ) continue;
2011 lRapCurrentPart = MyRapidity(p0->Energy(),p0->Pz());
2012 //lEtaCurrentPart = p0->Eta();
2013 lPtCurrentPart = p0->Pt();
2014 iCurrentMother = p0->GetFirstMother();
2016 // lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();
2017 if (iCurrentMother == -1){lPdgCurrentMother=0; } else {lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();}
2022 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
2024 id0 = p0->GetDaughter(0);
2025 id1 = p0->GetDaughter(1);
2027 // Decay Radius and Production Radius
2028 if ( id0 <= lNbMCPart && id0 > 0 && id1 <= lNbMCPart && id1 > 0) {
2029 TParticle *pDaughter0 = stack->Particle(id0);
2030 // TParticle *pDaughter1 = stack->Particle(id1);
2031 // lPdgCurrentDaughter0 = pDaughter0->GetPdgCode();
2032 // lPdgCurrentDaughter1 = pDaughter1->GetPdgCode();
2034 mcDecayPosX = pDaughter0->Vx();
2035 mcDecayPosY = pDaughter0->Vy();
2036 mcDecayPosR = TMath::Sqrt(mcDecayPosX*mcDecayPosX+mcDecayPosY*mcDecayPosY);
2039 //Printf("ERROR: particle with label %d and/or %d not found in stack (mc loop)", id0,id1);
2043 if (lPdgcodeCurrentPart==310) {
2044 fHistMCtracksProdRadiusK0s->Fill(mcPosX,mcPosY);
2045 fHistMCtracksDecayRadiusK0s->Fill(mcDecayPosR);
2047 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAllK0sRap3->Fill(lPtCurrentPart);
2049 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllK0s->Fill(lPtCurrentPart);
2051 else if (lPdgcodeCurrentPart==3122) {
2052 fHistMCtracksProdRadiusLambda->Fill(mcPosX,mcPosY);
2053 fHistMCtracksDecayRadiusLambda->Fill(mcDecayPosR);
2055 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAllLambdaRap3->Fill(lPtCurrentPart);
2057 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllLambda->Fill(lPtCurrentPart);
2059 else if (lPdgcodeCurrentPart==-3122) {
2060 fHistMCtracksProdRadiusAntiLambda->Fill(mcPosX,mcPosY);
2061 fHistMCtracksDecayRadiusAntiLambda->Fill(mcDecayPosR);
2063 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAllAntiLambdaRap3->Fill(lPtCurrentPart);
2065 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllAntiLambda->Fill(lPtCurrentPart);
2068 if ( ( ( TMath::Abs(lPdgCurrentMother) == 3212) ||
2069 ( TMath::Abs(lPdgCurrentMother) == 3224) ||
2070 ( TMath::Abs(lPdgCurrentMother) == 3214) ||
2071 ( TMath::Abs(lPdgCurrentMother) == 3114) )
2072 && ( iCurrentMother <= lNbMCPrimary )
2073 ) lComeFromSigma = 1;
2074 else lComeFromSigma = 0;
2076 //*********************************************
2077 // Now keep only primary particles
2078 // if ( ( iMc > lNbMCPrimary ) && (!lComeFromSigma) ) continue;
2080 //*************************************//
2081 // new definition of primary particles //
2082 //*************************************//
2087 Double_t ProdDistance = 0;
2090 dx = ( (mcPrimaryVtx.At(0)) - (p0->Vx()) );
2091 dy = ( (mcPrimaryVtx.At(1)) - (p0->Vy()) );
2092 dz = ( (mcPrimaryVtx.At(2)) - (p0->Vz()) );
2094 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2096 if (ProdDistance > 0.001) continue; // secondary V0
2100 lNtimesReconstructedK0s = 0; lNtimesReconstructedLambda = 0; lNtimesReconstructedAntiLambda = 0;
2104 if (lPdgcodeCurrentPart==310) {
2105 fHistMCRapK0s->Fill(lRapCurrentPart);
2106 if (lPtCurrentPart < 0.2 && lPtCurrentPart < 3.0)
2107 fHistMCRapInPtRangeK0s->Fill(lRapCurrentPart);
2110 if (lPdgcodeCurrentPart==3122) {
2111 fHistMCRapLambda->Fill(lRapCurrentPart);
2112 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5)
2113 fHistMCRapInPtRangeLambda->Fill(lRapCurrentPart);
2116 if (lPdgcodeCurrentPart==-3122) {
2117 fHistMCRapAntiLambda->Fill(lRapCurrentPart);
2118 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5)
2119 fHistMCRapInPtRangeAntiLambda->Fill(lRapCurrentPart);
2122 if (lPdgcodeCurrentPart==3312 || lPdgcodeCurrentPart==-3312) {
2123 fHistMCRapXi->Fill(lRapCurrentPart);
2124 if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.0)
2125 fHistMCRapInPtRangeXi->Fill(lRapCurrentPart);
2128 if (lPdgcodeCurrentPart==333) {
2129 fHistMCRapPhi->Fill(lRapCurrentPart);
2130 if (lPtCurrentPart < 0.7 && lPtCurrentPart < 3.0)
2131 fHistMCRapInPtRangePhi->Fill(lRapCurrentPart);
2135 if (TMath::Abs(lRapCurrentPart) > lCutRap) continue;
2137 if (lPdgcodeCurrentPart==310) {
2138 fHistMCProdRadiusK0s->Fill(mcPosR);
2139 fHistMCPrimDecayRadiusK0s->Fill(mcDecayPosR);
2140 fHistMCPtK0s->Fill(lPtCurrentPart);
2142 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtK0sRap3->Fill(lPtCurrentPart);
2145 fHistNTimesRecK0s->Fill(lNtimesReconstructedK0s);
2146 fHistNTimesRecK0sVsPt->Fill(lPtCurrentPart,lNtimesReconstructedK0s);
2149 if (lPdgcodeCurrentPart==3122) {
2150 fHistMCProdRadiusLambda->Fill(mcPosR);
2151 fHistMCPrimDecayRadiusLambda->Fill(mcDecayPosR);
2152 fHistMCPtLambda->Fill(lPtCurrentPart);
2154 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtLambdaRap3->Fill(lPtCurrentPart);
2156 fHistNTimesRecLambda->Fill(lNtimesReconstructedLambda);
2157 fHistNTimesRecLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedLambda);
2158 if (lComeFromSigma) fHistMCPtLambdaFromSigma->Fill(lPtCurrentPart);
2160 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
2161 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
2165 if (lPdgcodeCurrentPart==-3122) {
2166 fHistMCProdRadiusAntiLambda->Fill(mcPosR);
2167 fHistMCPrimDecayRadiusAntiLambda->Fill(mcDecayPosR);
2169 fHistMCPtAntiLambda->Fill(lPtCurrentPart);
2171 if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAntiLambdaRap3->Fill(lPtCurrentPart);
2174 fHistNTimesRecAntiLambda->Fill(lNtimesReconstructedAntiLambda);
2175 fHistNTimesRecAntiLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambda);
2176 if (lComeFromSigma) fHistMCPtAntiLambdaFromSigma->Fill(lPtCurrentPart);
2178 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
2179 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
2184 } // end loop ESD MC
2186 } // end ESD condition
2189 } // End Loop over MC condition
2195 //************************************
2197 //************************************
2199 // Double_t lLambdaMass = 1.115683; //PDG
2200 Double_t lPLambda = 0;
2201 // Double_t lPAntiLambda = 0;
2202 //Double_t lPK0s = 0;
2203 Double_t lMagneticField = 999;
2206 Int_t nv0sTot= 0, nv0s = 0;
2209 Double_t lV0Position[3];
2211 Double_t lDcaPosToPrimVertex = 0;
2212 Double_t lDcaNegToPrimVertex = 0;
2213 Double_t lDcaV0Daughters = 0;
2214 Double_t lV0cosPointAngle = 0;
2215 Double_t lChi2V0 = 0;
2216 Double_t lV0DecayLength = 0;
2217 Double_t lV0tDecayLength = 0; //transverse decay length in xy plain
2218 Double_t lV0Radius = 0;
2219 // Double_t lDcaV0ToPrimVertex = 0;
2220 Double_t lcTauLambda = 0;
2221 Double_t lcTauAntiLambda = 0;
2222 Double_t lcTauK0s = 0;
2223 Int_t lOnFlyStatus = 0;
2224 //Float_t tdcaPosToPrimVertexXYZ[2], tdcaNegToPrimVertexXYZ[2]; // ..[0] = Impact parameter in XY plane and ..[1] = Impact parameter in Z
2225 //Double_t tdcaDaughterToPrimVertex[2]; // ..[0] = Pos and ..[1] = Neg
2229 Double_t lInvMassK0s = 0, lInvMassLambda = 0, lInvMassAntiLambda = 0;
2230 Double_t lPtK0s = 0, lPtLambda = 0, lPtAntiLambda = 0;
2231 Double_t lRapK0s = 0, lRapLambda = 0, lRapAntiLambda = 0;
2232 // Double_t lEtaK0s = 0, lEtaLambda = 0, lEtaAntiLambda = 0;
2233 Double_t lAlphaV0 = 0, lPtArmV0 = 0;
2235 // Double_t lPzK0s = 0, lPzLambda = 0, lPzAntiLambda = 0;
2238 // Double_t lV0Eta = 999;
2240 // to study Associated V0s:
2241 Int_t lIndexTrackPos = 0, lIndexTrackNeg = 0;
2242 UInt_t lLabelTrackPos = 0, lLabelTrackNeg = 0;
2243 Int_t lCheckPIdK0Short = 0, lCheckMcK0Short = 0;
2244 Int_t lCheckPIdLambda = 0, lCheckMcLambda = 0;
2245 Int_t lCheckPIdAntiLambda = 0, lCheckMcAntiLambda = 0;
2246 Int_t lCheckSecondaryK0s = 0, lCheckSecondaryLambda = 0, lCheckSecondaryAntiLambda = 0;
2247 // Int_t lCheckGamma = 0;
2248 Double_t mcPosMotherX = 0, mcPosMotherY = 0, mcPosMotherZ = 0;
2249 Double_t mcPosMotherR = 0;
2250 // Double_t mcMotherPt = 0;
2252 Int_t lIndexPosMother = 0;
2253 Int_t lIndexNegMother = 0;
2254 Int_t lIndexMotherOfMother = 0;
2255 Int_t lPDGCodePosDaughter = 0;
2256 Int_t lPDGCodeNegDaughter = 0;
2257 Int_t lPdgcodeMother = 0;
2258 Int_t lPdgcodeMotherOfMother = 0;
2260 // Reconstructed position
2261 Double_t rcPosXK0s = 0, rcPosYK0s = 0, rcPosZK0s = 0;
2262 Double_t rcPosRK0s = 0;
2263 Double_t rcPosXLambda = 0, rcPosYLambda = 0, rcPosZLambda = 0;
2264 Double_t rcPosRLambda = 0;
2265 Double_t rcPosXAntiLambda = 0, rcPosYAntiLambda = 0, rcPosZAntiLambda = 0;
2266 Double_t rcPosRAntiLambda = 0;
2269 Double_t deltaPtK0s = 0, deltaPtLambda = 0, deltaPtAntiLambda = 0;
2272 AliESDtrack *myTrackPos = NULL;
2273 AliESDtrack *myTrackNeg = NULL;
2274 // AliVParticle *lVPartPos = NULL;
2275 // AliVParticle *lVPartNeg = NULL;
2278 //Double_t lPosMom = 0;
2279 //Double_t lNegMom = 0;
2280 // Double_t lPmom = 0;
2281 // Double_t lPLambda = 0;
2283 // Daughters' momentum:
2284 Double_t lMomPos[3] = {999,999,999};
2285 Double_t lMomNeg[3] = {999,999,999};
2286 // Double_t lPtPos = 999, lPtNeg = 999;
2287 // Double_t lPPos = 999, lPNeg = 999;
2289 // Inner Wall parameters:
2290 Double_t lMomInnerWallPos =999, lMomInnerWallNeg = 999;
2292 // AliKF Chi2 and Armenteros variables
2293 // Double_t lChi2KFK0s = 0, lChi2KFLambda = 0, lChi2KFAntiLambda = 0;
2294 // Double_t lAlphaV0K0s = 0, lAlphaV0Lambda = 0, lAlphaV0AntiLambda = 0;
2295 //Double_t lPtArmV0K0s = 0, lPtArmV0Lambda = 0, lPtArmV0AntiLambda = 0;
2296 // Double_t lQlPos = 0, lQlNeg = 0;
2300 Float_t nSigmaPosPion = 0;
2301 Float_t nSigmaNegPion = 0;
2303 Float_t nSigmaPosProton = 0;
2304 Float_t nSigmaNegProton = 0;
2307 // Int_t lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2308 Int_t lCheckPIDLambdaPosDaughter = 0;// lCheckPIDLambdaNegDaughter = 0;
2309 // Int_t lCheckPIDAntiLambdaPosDaughter = 0;
2310 Int_t lCheckPIDAntiLambdaNegDaughter = 0;
2314 //****************************************************
2315 // Primary Vertex cuts &
2316 // Magnetic field and Quality tracks cuts
2317 //****************************************************
2319 Double_t lPrimaryVtxPosition[3];
2320 Double_t lPrimaryVtxCov[6];
2321 Double_t lPrimaryVtxChi2 = 999;
2322 Double_t lResPrimaryVtxX = 999;
2323 Double_t lResPrimaryVtxY = 999;
2324 Double_t lResPrimaryVtxZ = 999;
2326 AliAODVertex *myPrimaryVertex = NULL;
2327 //const AliVVertex *mySPDPrimaryVertex = NULL;
2330 const AliMultiplicity *myMultiplicty = ((AliESDEvent*)fESD)->GetMultiplicity();
2332 if(fAnalysisType == "ESD") {
2334 // Best Primary Vertex:
2336 const AliESDVertex *myBestPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertex();
2337 myBestPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertex();
2338 if (!myBestPrimaryVertex) return;
2339 if (!myBestPrimaryVertex->GetStatus()) return;
2341 fHistNumberEvents->Fill(3.5);
2343 myBestPrimaryVertex->GetXYZ(lPrimaryVtxPosition);
2344 myBestPrimaryVertex->GetCovMatrix(lPrimaryVtxCov);
2346 if ( ( TMath::Abs(lPrimaryVtxPosition[2]) ) > cutPrimVertex) return ; //// cut on z of prim. vertex!!!!!
2348 fHistNumberEvents->Fill(4.5);
2350 lPrimaryVtxChi2 = myBestPrimaryVertex->GetChi2toNDF();
2351 lResPrimaryVtxX = myBestPrimaryVertex->GetXRes();
2352 lResPrimaryVtxY = myBestPrimaryVertex->GetYRes();
2353 lResPrimaryVtxZ = myBestPrimaryVertex->GetZRes();
2355 // remove TPC-only primary vertex : retain only events with tracking + SPD vertex
2357 const AliESDVertex *mySPDPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertexSPD();
2358 if (!mySPDPrimaryVertex) return;
2360 fHistSPDPrimaryVertexZ->Fill(mySPDPrimaryVertex->GetZ());
2362 const AliESDVertex *myPrimaryVertexTracking = ((AliESDEvent*)fESD)->GetPrimaryVertexTracks();
2363 if (!myPrimaryVertexTracking) return;
2365 if (!mySPDPrimaryVertex->GetStatus() && !myPrimaryVertexTracking->GetStatus() ) return;
2367 fHistNumberEvents->Fill(5.5);
2368 fHistTrackPerEvent->Fill(fESD->GetNumberOfTracks());
2370 myPrimaryVertex = new AliAODVertex(lPrimaryVtxPosition, lPrimaryVtxCov, lPrimaryVtxChi2, NULL, -1, AliAODVertex::kPrimary);
2371 if (!myPrimaryVertex) return;
2374 // Number of Tracklets:
2376 fHistTrackletPerEvent->Fill(myMultiplicty->GetNumberOfTracklets());
2378 lMagneticField = ((AliESDEvent*)fESD)->GetMagneticField();
2380 fHistTPCTracks->Fill(AliESDtrackCuts::GetReferenceMultiplicity((AliESDEvent*)fESD, kTRUE));
2382 //////simple chack for multiplicity////////////////////////////////////////////////////////
2386 for (Int_t jTracks=0;jTracks<fESD->GetNumberOfTracks();jTracks++){
2388 AliESDtrack* tPCtrack=fESD->GetTrack(jTracks);
2391 tPCtrack->GetImpactParameters(xy,z);
2392 if ((fTracksCuts->IsSelected(tPCtrack))&&(xy<1.0)&&(z<1.0)) {i=i+1;}
2396 fHistTPCMult->Fill(i);
2398 /////////////////////////////////////////////////////////////////////////////////////////
2403 fHistPrimaryVertexX->Fill(lPrimaryVtxPosition[0]);
2404 fHistPrimaryVertexY->Fill(lPrimaryVtxPosition[1]);
2405 fHistPrimaryVertexZ->Fill(lPrimaryVtxPosition[2]);
2406 //Double_t lrcPrimVtxR = TMath::Sqrt(lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]+lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]);
2408 fHistPrimaryVertexResX->Fill(lResPrimaryVtxX);
2409 fHistPrimaryVertexResY->Fill(lResPrimaryVtxY);
2410 fHistPrimaryVertexResZ->Fill(lResPrimaryVtxZ);
2412 //***********************
2413 // AliKF Primary Vertex
2415 AliKFVertex primaryVtxKF( *myPrimaryVertex );
2416 AliKFParticle::SetField(lMagneticField);
2421 //***Rerun the V0 finder
2423 // fESD->ResetV0s();
2424 // AliV0vertexer v0Vertexer;
2425 // v0Vertexer.SetCuts(fCuts);
2426 // v0Vertexer.Tracks2V0vertices(fESD);
2428 ////*************************
2429 //// V0 loop ****************
2430 ////*************************
2432 nv0sTot = fESD->GetNumberOfV0s();
2433 if (!nv0sTot) fHistNumberEvents->Fill(6.5);
2435 for (Int_t iV0 = 0; iV0 < nv0sTot; iV0++) {
2437 lIndexPosMother = 0; lIndexNegMother = 0; lIndexMotherOfMother = 0;
2438 lCheckPIdK0Short = 0; lCheckMcK0Short = 0; lCheckSecondaryK0s = 0;
2439 lCheckPIdLambda = 0; lCheckMcLambda = 0; lCheckSecondaryLambda = 0;
2440 lCheckPIdAntiLambda = 0; lCheckMcAntiLambda = 0; lCheckSecondaryAntiLambda = 0;
2441 lComeFromSigma = 0; //lCheckGamma = 0;
2444 if(fAnalysisType == "ESD") {
2447 AliESDv0 *v0 = ((AliESDEvent*)fESD)->GetV0(iV0);
2450 // if ((v0->Pt())<0.6) continue;
2453 fHistPrimaryVertexPosXV0events->Fill(lPrimaryVtxPosition[0]);
2454 fHistPrimaryVertexPosYV0events->Fill(lPrimaryVtxPosition[1]);
2455 fHistPrimaryVertexPosZV0events->Fill(lPrimaryVtxPosition[2]);
2458 lIndexTrackPos = TMath::Abs(v0->GetPindex());
2459 lIndexTrackNeg = TMath::Abs(v0->GetNindex());
2460 AliESDtrack *myTrackPosTest = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2461 AliESDtrack *myTrackNegTest = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2462 if (!myTrackPosTest || !myTrackNegTest) {
2463 Printf("strange analysis::UserExec:: Error:Could not retreive one of the daughter track\n");
2467 if ((Int_t)myTrackPosTest->GetSign() == (Int_t)myTrackNegTest->GetSign()){
2471 // VO's main characteristics to check the reconstruction cuts
2472 lOnFlyStatus = v0->GetOnFlyStatus();
2473 lChi2V0 = v0->GetChi2V0();
2474 lDcaV0Daughters = v0->GetDcaV0Daughters();
2475 // lDcaV0ToPrimVertex = v0->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lPrimaryVtxPosition[2]);
2476 lV0cosPointAngle = v0->GetV0CosineOfPointingAngle(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1], lPrimaryVtxPosition[2]);
2478 v0->GetXYZ(lV0Position[0], lV0Position[1], lV0Position[2]);
2480 lV0Radius = TMath::Sqrt(lV0Position[0]*lV0Position[0]+lV0Position[1]*lV0Position[1]);
2481 lV0DecayLength = TMath::Sqrt(TMath::Power(lV0Position[0] - lPrimaryVtxPosition[0],2) +
2482 TMath::Power(lV0Position[1] - lPrimaryVtxPosition[1],2) +
2483 TMath::Power(lV0Position[2] - lPrimaryVtxPosition[2],2 ));
2484 lV0tDecayLength = TMath::Sqrt(TMath::Power(lV0Position[0] - lPrimaryVtxPosition[0],2) +
2485 TMath::Power(lV0Position[1] - lPrimaryVtxPosition[1],2));
2489 if( myTrackPosTest->GetSign() ==1){
2491 myTrackPos = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2492 myTrackNeg = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2494 // Daughters' momentum;
2495 v0->GetPPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
2496 v0->GetNPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
2499 if( myTrackPosTest->GetSign() ==-1){
2501 myTrackPos = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2502 myTrackNeg = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2505 // Daughters' momentum;
2506 v0->GetPPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
2507 v0->GetNPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
2510 lLabelTrackPos = (UInt_t)TMath::Abs(myTrackPos->GetLabel());
2511 lLabelTrackNeg = (UInt_t)TMath::Abs(myTrackNeg->GetLabel());
2513 // Daughters Pt and P:
2514 // lPtPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1]);
2515 // lPtNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1]);
2517 // lPPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1] + lMomPos[2]*lMomPos[2]);
2518 // lPNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1] + lMomNeg[2]*lMomNeg[2]);
2521 // lPosMom = myTrackPos->GetInnerParam()->GetP();
2523 // lNegMom = myTrackNeg->GetInnerParam()->GetP();
2525 // lPmom = TMath::Sqrt(lMomPos[0]*lMomPos[0]+lMomPos[1]*lMomPos[1]+lMomPos[2]+lMomPos[2]);
2529 // Inner Wall parameter:
2530 const AliExternalTrackParam *myInnerWallTrackPos = myTrackPos->GetInnerParam();
2532 if (myInnerWallTrackPos) {lMomInnerWallPos = myInnerWallTrackPos->GetP();}
2535 const AliExternalTrackParam *myInnerWallTrackNeg = myTrackNeg->GetInnerParam();
2537 if (myInnerWallTrackNeg) {lMomInnerWallNeg = myInnerWallTrackNeg->GetP();}
2541 // DCA between daughter and Primary Vertex:
2542 if (myTrackPos) lDcaPosToPrimVertex = TMath::Abs(myTrackPos->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) );
2544 if (myTrackNeg) lDcaNegToPrimVertex = TMath::Abs(myTrackNeg->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) );
2546 // Quality tracks cuts:
2547 if ( !(fTracksCuts->IsSelected(myTrackPos)) || !(fTracksCuts->IsSelected(myTrackNeg)) )
2550 if ( ( TMath::Abs(myTrackPos->Eta()) > lCutPseudorap ) || ( TMath::Abs(myTrackNeg->Eta()) > lCutPseudorap ) ) {continue;}
2552 // Armenteros variables:
2553 lAlphaV0 = v0->AlphaV0();
2554 lPtArmV0 = v0->PtArmV0();
2557 // lV0Eta = v0->Eta();
2558 //////////////////////////////////////////////////////////////////////////
2560 v0->ChangeMassHypothesis(310);
2561 lInvMassK0s = v0->GetEffMass();
2563 // lPzK0s = v0->Pz();
2565 v0->ChangeMassHypothesis(3122);
2566 lInvMassLambda = v0->GetEffMass();
2567 lPtLambda = v0->Pt();
2568 //lPzLambda = v0->Pz();
2571 v0->ChangeMassHypothesis(-3122);
2572 lInvMassAntiLambda = v0->GetEffMass();
2573 lPtAntiLambda = v0->Pt();
2574 //lPzAntiLambda = v0->Pz();
2578 lRapK0s = v0->Y(310);
2579 lRapLambda = v0->Y(3122);
2580 lRapAntiLambda = v0->Y(-3122);
2582 if (lPtK0s==0) {continue;}
2583 if (lPtLambda==0) {continue;}
2585 if (lPtAntiLambda==0) {continue;}
2587 ///////////////////////////////////////////////////////////////////////
2589 // PID new method July 2011
2590 if (fUsePID.Contains("withPID")) {
2591 // nSigmaPosPion = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackPos,AliPID::kPion));
2592 nSigmaPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kPion));
2593 // nSigmaNegPion = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackNeg,AliPID::kPion));
2594 nSigmaNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kPion));
2595 // nSigmaPosProton = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackPos,AliPID::kProton));
2596 nSigmaPosProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kProton));
2597 // nSigmaNegProton = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackNeg,AliPID::kProton));
2598 nSigmaNegProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kProton));
2602 nSigmaPosPion = 0; nSigmaNegPion =0; nSigmaPosProton = 0; nSigmaNegProton= 0;
2607 // Monte-Carlo particle associated to reconstructed particles:
2609 //if (lLabelTrackPos < 0 || lLabelTrackNeg < 0) continue;
2610 TParticle *lMCESDPartPos = stack->Particle(lLabelTrackPos);
2611 if(!lMCESDPartPos) {
2612 // Printf("no MC particle for positive and/or negative daughter\n");
2615 TParticle *lMCESDPartNeg = stack->Particle(lLabelTrackNeg);
2616 if (!lMCESDPartNeg) { continue;}
2617 lPDGCodePosDaughter = lMCESDPartPos->GetPdgCode();
2618 lPDGCodeNegDaughter = lMCESDPartNeg->GetPdgCode();
2619 lIndexPosMother = lMCESDPartPos->GetFirstMother();
2620 lIndexNegMother = lMCESDPartNeg->GetFirstMother();
2622 //////////////////////////////
2623 // if (lIndexPosMother == -1) {
2624 // if (negPiKF) delete negPiKF; negPiKF=NULL;
2625 // if (posPiKF) delete posPiKF; posPiKF=NULL;
2626 // if (posPKF) delete posPKF; posPKF=NULL;
2627 // if (negAPKF) delete negAPKF; negAPKF=NULL;
2631 if (lIndexPosMother == -1) {
2635 lIndexMotherOfMother = 0;
2651 TParticle *lMCESDMother = stack->Particle(lIndexPosMother);
2652 if (!lMCESDMother) { continue;}
2653 lPdgcodeMother = lMCESDMother->GetPdgCode();
2654 lIndexMotherOfMother = lMCESDMother->GetFirstMother();
2655 if (lIndexMotherOfMother ==-1) lPdgcodeMotherOfMother = 0;
2657 TParticle *lMCESDMotherOfMother = stack->Particle(lIndexMotherOfMother);
2658 if (!lMCESDMotherOfMother) { continue;}
2659 lPdgcodeMotherOfMother = lMCESDMotherOfMother->GetPdgCode();
2662 mcPosX = lMCESDPartPos->Vx();
2663 mcPosY = lMCESDPartPos->Vy();
2664 mcPosZ = lMCESDPartPos->Vz();
2665 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
2666 mcPosMotherX = lMCESDMother->Vx();
2667 mcPosMotherY = lMCESDMother->Vy();
2668 mcPosMotherZ = lMCESDMother->Vz();
2669 mcPosMotherR = TMath::Sqrt(mcPosMotherX*mcPosMotherX+mcPosMotherY*mcPosMotherY);
2671 // mcMotherPt = lMCESDMother->Pt();
2674 } // end ESD condition
2682 if(!lOnFlyStatus) nv0s++;
2683 // else if(lOnFlyStatus) nv0sMI++;
2685 // Daughter momentum cut: ! FIX it in case of AOD !
2686 //if ( (lPtPos < cutMinPtDaughter ) ||
2687 // (lPtNeg < cutMinPtDaughter )
2690 // Look for associated particles:
2692 if( (lIndexPosMother==-1) || (lIndexNegMother==-1) ) {
2693 fHistMCDaughterTrack->Fill(1);
2696 else if( ( (lPDGCodePosDaughter==+211) && (lPDGCodeNegDaughter==-211) ) )
2698 lCheckPIdK0Short = 1;
2699 fHistMCDaughterTrack->Fill(3);
2700 if ( (lIndexPosMother==lIndexNegMother) &&
2701 (lPdgcodeMother==310) ) {
2704 //if (lIndexPosMother <= lNbMCPrimary) lCheckMcK0Short = 1;
2705 //else lCheckSecondaryK0s = 1;
2710 Double_t ProdDistance = 0;
2712 dx = ( (mcPrimaryVtx.At(0)) - (mcPosMotherX) );
2713 dy = ( (mcPrimaryVtx.At(1)) - (mcPosMotherY) );
2714 dz = ( (mcPrimaryVtx.At(2)) - (mcPosMotherZ) );
2716 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2718 if (ProdDistance < 0.001) lCheckMcK0Short = 1;
2719 else lCheckSecondaryK0s = 1;
2723 else if( ( (lPDGCodePosDaughter==+2212) && (lPDGCodeNegDaughter==-211) ) )
2725 lCheckPIdLambda = 1;
2726 fHistMCDaughterTrack->Fill(5);
2727 if ( (lIndexPosMother==lIndexNegMother) &&
2728 (lPdgcodeMother==3122) ){
2729 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2730 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2731 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2732 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2733 ) lComeFromSigma = 1;
2734 else lComeFromSigma = 0;
2737 // if ( (lIndexPosMother <= lNbMCPrimary) ||
2738 // ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) )
2739 // ) lCheckMcLambda = 1;
2740 // else lCheckSecondaryLambda = 1;
2745 Double_t ProdDistance = 0;
2747 dx = ( (mcPrimaryVtx.At(0)) - (mcPosMotherX) );
2748 dy = ( (mcPrimaryVtx.At(1)) - (mcPosMotherY) );
2749 dz = ( (mcPrimaryVtx.At(2)) - (mcPosMotherZ) );
2751 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2753 if (ProdDistance < 0.001) lCheckMcLambda = 1;
2754 else lCheckSecondaryLambda = 1;
2759 else if( ( (lPDGCodePosDaughter==211) && (lPDGCodeNegDaughter==-2212) ) )
2761 lCheckPIdAntiLambda = 1;
2762 fHistMCDaughterTrack->Fill(7);
2763 if ( (lIndexPosMother==lIndexNegMother) &&
2764 (lPdgcodeMother==-3122) ) {
2765 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2766 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2767 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2768 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2769 ) lComeFromSigma = 1;
2770 else lComeFromSigma = 0;
2772 // if ( (lIndexPosMother <= lNbMCPrimary) ||
2773 // ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) )
2774 // ) lCheckMcAntiLambda = 1;
2775 // else lCheckSecondaryAntiLambda = 1;
2780 Double_t ProdDistance = 0;
2782 dx = ( (mcPrimaryVtx.At(0)) - (mcPosMotherX) );
2783 dy = ( (mcPrimaryVtx.At(1)) - (mcPosMotherY) );
2784 dz = ( (mcPrimaryVtx.At(2)) - (mcPosMotherZ) );
2786 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2788 if (ProdDistance < 0.001) lCheckMcAntiLambda = 1;
2789 else lCheckSecondaryAntiLambda = 1;
2795 // else if ( (lPDGCodePosDaughter==-11) &&
2796 // (lPDGCodeNegDaughter==11) &&
2797 // (lPdgcodeMother==22 ) )
2800 } // end "look for associated particles
2802 /////////////////////////////////////
2803 // PID condition for daughters tracks
2804 //////////////////////////////////////
2806 // lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2807 lCheckPIDLambdaPosDaughter = 0;//, lCheckPIDLambdaNegDaughter = 0;
2808 //lCheckPIDAntiLambdaPosDaughter = 0;,
2809 lCheckPIDAntiLambdaNegDaughter = 0;
2811 if (lMomInnerWallPos < lLimitPPID) {
2812 if (nSigmaPosPion < cutNSigmaLowP) {
2813 // lCheckPIDK0sPosDaughter = 1;
2814 //lCheckPIDAntiLambdaPosDaughter = 1;
2816 if (nSigmaPosProton < cutNSigmaLowP) lCheckPIDLambdaPosDaughter = 1;
2819 else if (lMomInnerWallPos > lLimitPPID) {
2820 if (nSigmaPosPion < cutNSigmaHighP) {
2821 // lCheckPIDK0sPosDaughter = 1;
2822 // lCheckPIDAntiLambdaPosDaughter = 1;
2824 if (nSigmaPosProton < cutNSigmaHighP) lCheckPIDLambdaPosDaughter = 1;
2827 if (lMomInnerWallNeg < lLimitPPID) {
2828 if (nSigmaNegPion < cutNSigmaLowP) {
2829 // lCheckPIDK0sNegDaughter = 1;
2830 // lCheckPIDLambdaNegDaughter = 1;
2832 if (nSigmaNegProton < cutNSigmaLowP) lCheckPIDAntiLambdaNegDaughter = 1;
2835 else if (lMomInnerWallNeg > lLimitPPID) {
2836 if (nSigmaNegPion < cutNSigmaHighP) {
2837 // lCheckPIDK0sNegDaughter = 1;
2838 // lCheckPIDLambdaNegDaughter = 1;
2840 if (nSigmaNegProton < cutNSigmaHighP) lCheckPIDAntiLambdaNegDaughter = 1;
2845 ///////////////values for cuts/////////////////////////////////////////////////////////////////////////////////////////
2846 if ((lDcaPosToPrimVertex < 0.1) || (lDcaNegToPrimVertex < 0.1) || (lDcaV0Daughters > 1.00) ||
2847 (lV0cosPointAngle < 0.998) || (lV0Radius < 0.9) || (lV0Radius > 100) )
2852 if (negPiKF) delete negPiKF; negPiKF=NULL;
2853 if (posPiKF) delete posPiKF; posPiKF=NULL;
2854 if (posPKF) delete posPKF; posPKF=NULL;
2855 if (negAPKF) delete negAPKF; negAPKF=NULL;
2858 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2862 /////////////////////////////////
2863 //PID for Lambda and AntiLambda
2864 /////////////////////////////////
2866 if(fUsePID.Contains("withPID") && (lCheckPIDAntiLambdaNegDaughter==0) && (lCheckPIDLambdaPosDaughter==1)) LambdaPID = 1;
2870 if(fUsePID.Contains("withPID") && (lCheckPIDLambdaPosDaughter==0) && (lCheckPIDAntiLambdaNegDaughter==1)) AntiLambdaPID = 1;
2872 else AntiLambdaPID =0;
2875 ///////////////////////////////////////////////////////////////////////////////////////////
2876 // if ((LambdaPID==1 && lPosMom <=1) || (lPosMom>1) || !(fUsePID.Contains("withPID"))){
2877 // if ((TMath::Abs(lRapLambda) < lCutRap) && lOnFlyStatus==0) {
2878 // fHistTPCsigPLambda->Fill(lPosMom,myTrackPos->GetTPCsignal());
2880 // TestTrackCuts->SetRequireITSRefit(kFALSE);
2881 // if(TestTrackCuts->IsSelected(myTrackPos)) fHistPtTracksP->Fill(V0mom[2]);
2882 // TestTrackCuts->SetRequireITSRefit(kTRUE);
2883 // if(TestTrackCuts->IsSelected(myTrackPos)) fHistPtTracksPITSRefit->Fill(V0mom[2]);
2888 // if ((AntiLambdaPID==1 && lNegMom <=1) || (lNegMom>1) || !(fUsePID.Contains("withPID"))){
2889 // if ((TMath::Abs(lRapAntiLambda) < lCutRap) && lOnFlyStatus==0) {
2890 // fHistTPCsigPAntiLambda->Fill(lNegMom,myTrackNeg->GetTPCsignal());
2894 ///////////////////////////////////////////////////////////////////////////////////////////////
2897 // lPLambda = TMath::Sqrt(lPzLambda*lPzLambda + lPtLambda*lPtLambda);
2898 // lPtLambda = TMath::Sqrt(lPzLambda*lPzLambda + lPtLambda*lPtLambda);
2900 // lPAntiLambda = TMath::Sqrt(lPzAntiLambda*lPzAntiLambda + lPtAntiLambda*lPtAntiLambda);
2901 // lPtAntiLambda = TMath::Sqrt(lPtAntiLambda*lPtAntiLambda);
2903 // lPK0s = TMath::Sqrt(lPzK0s*lPzK0s + lPtK0s*lPtK0s);
2904 // lPtK0s = TMath::Sqrt(lPtK0s*lPtK0s);
2906 // lcTau = (lV0DecayLength*lLambdaMass)/lPLambda;
2909 lcTauLambda = (lV0tDecayLength*lInvMassLambda)/lPtLambda;
2911 //ctau for antilambda
2912 lcTauAntiLambda = (lV0tDecayLength*lInvMassAntiLambda)/lPtAntiLambda;
2915 lcTauK0s = (lV0tDecayLength*lInvMassK0s)/lPtK0s;
2918 //*****************************
2919 // filling histograms
2920 //*****************************
2922 if (lPLambda <1 && lOnFlyStatus==0 ){
2923 fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
2934 if (TMath::Abs(lRapK0s) < lCutRap ) {
2935 if (lOnFlyStatus==0) fHistTranscTauVsMassK0s->Fill(lcTauK0s,lInvMassK0s);
2936 if (lcTauK0s< cutcTauK0s) {
2938 //////2D histos: cut vs on fly status/////////////////////
2940 fHistDcaPosToPrimVertexK0->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2941 fHistDcaNegToPrimVertexK0->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2942 fHistRadiusV0K0->Fill(lV0Radius,lOnFlyStatus);
2943 fHistDecayLengthV0K0->Fill(lV0DecayLength,lOnFlyStatus);
2944 fHistDcaV0DaughtersK0->Fill(lDcaV0Daughters,lOnFlyStatus);
2945 fHistChi2K0->Fill(lChi2V0,lOnFlyStatus);
2946 fHistCosPointAngleK0->Fill(lV0cosPointAngle,lOnFlyStatus);
2948 //////2D histos: cut vs mass/////////////////////
2950 if (lOnFlyStatus==0){
2953 fHistMassK0->Fill(lInvMassK0s);
2954 fHistMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
2955 fHistPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
2958 if (TMath::Abs(lRapK0s) < 0.3 ) fHistPtVsMassK0Rap3->Fill(lInvMassK0s,lPtK0s);
2960 fHistDcaPosToPrimVertexK0vsMassK0->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2961 fHistDcaNegToPrimVertexK0vsMassK0->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2962 fHistRadiusV0K0vsMassK0->Fill(lV0Radius,lInvMassK0s);
2963 fHistDecayLengthV0K0vsMassK0->Fill(lV0DecayLength,lInvMassK0s);
2964 fHistDcaV0DaughtersK0vsMassK0->Fill(lDcaV0Daughters,lInvMassK0s);
2965 fHistCosPointAngleK0vsMassK0->Fill(lV0cosPointAngle,lInvMassK0s);
2967 if (lPtK0s>0 && lPtK0s <3){
2968 fHistDcaPosToPrimVertexK0vsMassK0pt1->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2969 fHistDcaNegToPrimVertexK0vsMassK0pt1->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2970 fHistRadiusV0K0vsMassK0pt1->Fill(lV0Radius,lInvMassK0s);
2971 fHistDecayLengthV0K0vsMassK0pt1->Fill(lV0DecayLength,lInvMassK0s);
2972 fHistDcaV0DaughtersK0vsMassK0pt1->Fill(lDcaV0Daughters,lInvMassK0s);
2973 fHistCosPointAngleK0vsMassK0pt1->Fill(lV0cosPointAngle,lInvMassK0s);
2975 if (lPtK0s > 3 && lPtK0s < 6){
2976 fHistDcaPosToPrimVertexK0vsMassK0pt2->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2977 fHistDcaNegToPrimVertexK0vsMassK0pt2->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2978 fHistRadiusV0K0vsMassK0pt2->Fill(lV0Radius,lInvMassK0s);
2979 fHistDecayLengthV0K0vsMassK0pt2->Fill(lV0DecayLength,lInvMassK0s);
2980 fHistDcaV0DaughtersK0vsMassK0pt2->Fill(lDcaV0Daughters,lInvMassK0s);
2981 fHistCosPointAngleK0vsMassK0pt2->Fill(lV0cosPointAngle,lInvMassK0s);
2983 if (lPtK0s > 6 && lPtK0s < 10){
2984 fHistDcaPosToPrimVertexK0vsMassK0pt3->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2985 fHistDcaNegToPrimVertexK0vsMassK0pt3->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2986 fHistRadiusV0K0vsMassK0pt3->Fill(lV0Radius,lInvMassK0s);
2987 fHistDecayLengthV0K0vsMassK0pt3->Fill(lV0DecayLength,lInvMassK0s);
2988 fHistDcaV0DaughtersK0vsMassK0pt3->Fill(lDcaV0Daughters,lInvMassK0s);
2989 fHistCosPointAngleK0vsMassK0pt3->Fill(lV0cosPointAngle,lInvMassK0s);
2993 } // if rap. condition
3004 if ((LambdaPID==1 && lMomInnerWallPos <=1 ) || (lMomInnerWallPos > 1) || !(fUsePID.Contains("withPID") )){
3006 if (TMath::Abs(lRapLambda) < lCutRap) {
3007 if (lOnFlyStatus==0) fHistTranscTauVsMassL->Fill(lcTauLambda,lInvMassLambda);
3008 if (lcTauLambda < cutcTauL){
3009 //////2D histos: cut vs on fly status/////////////////////
3011 fHistDcaPosToPrimVertexL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
3012 fHistDcaNegToPrimVertexL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
3013 fHistRadiusV0L->Fill(lV0Radius,lOnFlyStatus);
3014 fHistDecayLengthV0L->Fill(lV0DecayLength,lOnFlyStatus);
3015 fHistDcaV0DaughtersL->Fill(lDcaV0Daughters,lOnFlyStatus);
3016 fHistChi2L->Fill(lChi2V0,lOnFlyStatus);
3017 fHistCosPointAngleL->Fill(lV0cosPointAngle,lOnFlyStatus);
3019 //////2D histos: cut vs mass/////////////////////
3021 if (lOnFlyStatus==0){
3022 fHistMassLambda->Fill(lInvMassLambda);
3023 fHistMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
3024 fHistPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
3026 if (TMath::Abs(lRapLambda) < 0.3 ) fHistPtVsMassLambdaRap3->Fill(lInvMassLambda,lPtLambda);
3028 if(lPtLambda <=1) fHistNSigmaProton->Fill(nSigmaPosProton);
3030 fHistDcaPosToPrimVertexLvsMassL->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3031 fHistDcaNegToPrimVertexLvsMassL->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3032 fHistRadiusV0LvsMassL->Fill(lV0Radius,lInvMassLambda);
3033 fHistDecayLengthV0LvsMassL->Fill(lV0DecayLength,lInvMassLambda);
3034 fHistDcaV0DaughtersLvsMassL->Fill(lDcaV0Daughters,lInvMassLambda);
3035 fHistCosPointAngleLvsMassL->Fill(lV0cosPointAngle,lInvMassLambda);
3038 if (lPtLambda>0 && lPtLambda <3){
3039 fHistDcaPosToPrimVertexLambdaVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3040 fHistDcaNegToPrimVertexLambdaVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3041 fHistRadiusV0LambdaVsMasspt1->Fill(lV0Radius,lInvMassLambda);
3042 fHistDecayLengthV0LambdaVsMasspt1->Fill(lV0DecayLength,lInvMassLambda);
3043 fHistDcaV0DaughtersLambdaVsMasspt1->Fill(lDcaV0Daughters,lInvMassLambda);
3044 fHistCosPointAngleLambdaVsMasspt1->Fill(lV0cosPointAngle,lInvMassLambda);
3046 if (lPtLambda > 3 && lPtLambda < 6){
3047 fHistDcaPosToPrimVertexLambdaVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3048 fHistDcaNegToPrimVertexLambdaVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3049 fHistRadiusV0LambdaVsMasspt2->Fill(lV0Radius,lInvMassLambda);
3050 fHistDecayLengthV0LambdaVsMasspt2->Fill(lV0DecayLength,lInvMassLambda);
3051 fHistDcaV0DaughtersLambdaVsMasspt2->Fill(lDcaV0Daughters,lInvMassLambda);
3052 fHistCosPointAngleLambdaVsMasspt2->Fill(lV0cosPointAngle,lInvMassLambda);
3054 if (lPtLambda > 6 && lPtLambda < 10){
3055 fHistDcaPosToPrimVertexLambdaVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3056 fHistDcaNegToPrimVertexLambdaVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3057 fHistRadiusV0LambdaVsMasspt3->Fill(lV0Radius,lInvMassLambda);
3058 fHistDecayLengthV0LambdaVsMasspt3->Fill(lV0DecayLength,lInvMassLambda);
3059 fHistDcaV0DaughtersLambdaVsMasspt3->Fill(lDcaV0Daughters,lInvMassLambda);
3060 fHistCosPointAngleLambdaVsMasspt3->Fill(lV0cosPointAngle,lInvMassLambda);
3064 } //end of Rap condition
3065 } // end of PID condition
3066 } // end ctau condition
3069 //////////////////////////////
3070 // Anti Lambda ///////////////
3071 //////////////////////////////
3075 if ((AntiLambdaPID==1 && lMomInnerWallNeg <=1) || (lMomInnerWallNeg>1) || !(fUsePID.Contains("withPID"))){
3077 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
3078 if (lOnFlyStatus==0) fHistTranscTauVsMassAntiL->Fill(lcTauAntiLambda,lInvMassAntiLambda);
3079 if (lcTauAntiLambda < cutcTauL){
3080 //////2D histos: cut vs on fly status/////////////////////
3082 fHistDcaPosToPrimVertexAntiL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
3083 fHistDcaNegToPrimVertexAntiL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
3084 fHistRadiusV0AntiL->Fill(lV0Radius,lOnFlyStatus);
3085 fHistDecayLengthV0AntiL->Fill(lV0DecayLength,lOnFlyStatus);
3086 fHistDcaV0DaughtersAntiL->Fill(lDcaV0Daughters,lOnFlyStatus);
3087 fHistChi2AntiL->Fill(lChi2V0,lOnFlyStatus);
3088 fHistCosPointAngleAntiL->Fill(lV0cosPointAngle,lOnFlyStatus);
3090 //////2D histos: cut vs mass/////////////////////
3092 if (lOnFlyStatus==0){
3094 fHistMassAntiLambda->Fill(lInvMassAntiLambda);
3095 fHistMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
3096 fHistPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
3098 if (TMath::Abs(lRapAntiLambda) < 0.3) fHistPtVsMassAntiLambdaRap3->Fill(lInvMassAntiLambda,lPtAntiLambda);
3101 fHistDcaPosToPrimVertexAntiLvsMass->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3102 fHistDcaNegToPrimVertexAntiLvsMass->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3103 fHistRadiusV0AntiLvsMass->Fill(lV0Radius,lInvMassAntiLambda);
3104 fHistDecayLengthV0AntiLvsMass->Fill(lV0DecayLength,lInvMassAntiLambda);
3105 fHistDcaV0DaughtersAntiLvsMass->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3106 fHistCosPointAngleAntiLvsMass->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3109 if (lPtAntiLambda>0 && lPtAntiLambda <3){
3110 fHistDcaPosToPrimVertexAntiLVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3111 fHistDcaNegToPrimVertexAntiLVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3112 fHistRadiusV0AntiLVsMasspt1->Fill(lV0Radius,lInvMassAntiLambda);
3113 fHistDecayLengthV0AntiLVsMasspt1->Fill(lV0DecayLength,lInvMassAntiLambda);
3114 fHistDcaV0DaughtersAntiLVsMasspt1->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3115 fHistCosPointAngleAntiLVsMasspt1->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3117 if (lPtAntiLambda > 3 && lPtAntiLambda < 6){
3118 fHistDcaPosToPrimVertexAntiLVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3119 fHistDcaNegToPrimVertexAntiLVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3120 fHistRadiusV0AntiLVsMasspt2->Fill(lV0Radius,lInvMassAntiLambda);
3121 fHistDecayLengthV0AntiLVsMasspt2->Fill(lV0DecayLength,lInvMassAntiLambda);
3122 fHistDcaV0DaughtersAntiLVsMasspt2->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3123 fHistCosPointAngleAntiLVsMasspt2->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3125 if (lPtAntiLambda > 6 && lPtAntiLambda < 10){
3126 fHistDcaPosToPrimVertexAntiLVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3127 fHistDcaNegToPrimVertexAntiLVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3128 fHistRadiusV0AntiLVsMasspt3->Fill(lV0Radius,lInvMassAntiLambda);
3129 fHistDecayLengthV0AntiLVsMasspt3->Fill(lV0DecayLength,lInvMassAntiLambda);
3130 fHistDcaV0DaughtersAntiLVsMasspt3->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3131 fHistCosPointAngleAntiLVsMasspt3->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3135 } //end of Rap condition
3136 } // end of PID condition
3142 // Histo versus Rap and armenteros plot
3144 if (lCheckMcK0Short) fHistAsMcRapK0->Fill(lRapK0s);
3145 if (lCheckMcLambda) fHistAsMcRapLambda->Fill(lRapLambda);
3146 if (lCheckMcAntiLambda) fHistAsMcRapLambda->Fill(lRapAntiLambda);
3147 // fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
3148 if ((TMath::Abs(lRapK0s) < lCutRap)&&(TMath::Abs(lRapLambda) < lCutRap)) fHistK0sMassVsLambdaMass->Fill(lInvMassK0s,lInvMassLambda);
3152 ///////////////////////////////////////////////////
3153 // K0s associated histograms in |rap| < lCutRap:
3154 ///////////////////////////////////////////////////
3159 if (TMath::Abs(lRapK0s) < lCutRap) {
3161 switch (lOnFlyStatus){
3163 if(lCheckMcK0Short) fHistAsMcTranscTauK0s->Fill(lcTauK0s);
3164 if (lcTauK0s< cutcTauK0s) {
3165 fHistNsigmaPosPionK0->Fill(nSigmaPosPion);
3166 fHistNsigmaNegPionK0->Fill(nSigmaNegPion);
3169 // fHistMultVsPtVsMassK0->Fill(multiplicity ,lInvMassK0s,lPtK0s);
3170 if(lCheckPIdK0Short) fHistPidMcMassK0->Fill(lInvMassK0s);
3171 if(lCheckMcK0Short) {
3172 fHistAsMcMassK0->Fill(lInvMassK0s);
3173 fHistAsMcPtK0->Fill(lPtK0s);
3174 fHistAsMcPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
3177 if (TMath::Abs(lRapK0s) < 0.3){
3178 fHistAsMcMassK0Rap3->Fill(lInvMassK0s);
3179 fHistAsMcPtK0Rap3->Fill(lPtK0s);
3180 fHistAsMcPtVsMassK0Rap3->Fill(lInvMassK0s,lPtK0s);
3184 if (lPtK0s <= 1) fHistAsMcPtZoomK0->Fill(lPtK0s);
3185 fHistAsMcMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
3186 fHistAsMcResxK0->Fill(rcPosXK0s-mcPosX);
3187 fHistAsMcResyK0->Fill(rcPosYK0s-mcPosY);
3188 fHistAsMcReszK0->Fill(rcPosZK0s-mcPosZ);
3189 fHistAsMcResrVsRadiusK0->Fill(rcPosRK0s,rcPosRK0s-mcPosR);
3190 fHistAsMcReszVsRadiusK0->Fill(rcPosZK0s,rcPosZK0s-mcPosZ);
3191 fHistAsMcProdRadiusK0->Fill(mcPosMotherR);
3192 fHistAsMcProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
3193 fHistAsMcResPtK0->Fill(deltaPtK0s);
3194 fHistAsMcResPtVsRapK0->Fill(deltaPtK0s,lRapK0s);
3195 fHistAsMcResPtVsPtK0->Fill(deltaPtK0s,lPtK0s);
3197 else if (lCheckSecondaryK0s) {
3198 fHistAsMcSecondaryPtVsRapK0s->Fill(lPtK0s,lRapK0s);
3199 fHistAsMcSecondaryProdRadiusK0s->Fill(mcPosMotherR);
3200 fHistAsMcSecondaryProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
3201 switch (lPdgcodeMotherOfMother) {
3202 case 130 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(0.5);break; // K0L
3203 case 321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(1.5);break; // K+
3204 case -321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(2.5);break; // K-
3205 case -3122 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(3.5);break; //AntiLambda
3206 default : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(6.5);break;
3212 } // end rapidity condition
3215 ///////////////////////////////////////////////////
3216 // Associated Lambda histograms in |rap| < lCutRap
3217 ////////////////////////////////////////////////////
3221 // if ((LambdaPID==1 && lMomInnerWallPos <=1) || (lMomInnerWallPos>1) || !(fUsePID.Contains("withPID"))){
3223 if (TMath::Abs(lRapLambda) < lCutRap) {
3224 switch (lOnFlyStatus){
3226 if(lCheckMcLambda) fHistAsMcTranscTauL->Fill(lcTauLambda);
3227 if (lcTauLambda < cutcTauL){
3228 fHistNsigmaPosProtonLambda->Fill(nSigmaPosProton);
3229 fHistNsigmaNegPionLambda->Fill(nSigmaNegPion);
3231 // fHistMultVsPtVsMassLambda->Fill(multiplicity ,lInvMassLambda,lPtLambda);
3232 if(lCheckPIdLambda) fHistPidMcMassLambda->Fill(lInvMassLambda);
3234 if(lCheckMcLambda) {
3236 fHistAsMcMassLambda->Fill(lInvMassLambda);
3237 fHistAsMcPtLambda->Fill(lPtLambda);
3238 // fHistCosPointAngleLvsMassVsPtsigL->Fill(lPtLambda,lV0cosPointAngle,lInvMassLambda);
3239 fHistAsMcPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
3242 if (TMath::Abs(lRapLambda) < 0.3) {
3243 fHistAsMcMassLambdaRap3->Fill(lInvMassLambda);
3244 fHistAsMcPtLambdaRap3->Fill(lPtLambda);
3245 fHistAsMcPtVsMassLambdaRap3->Fill(lInvMassLambda,lPtLambda);
3249 if (lPtLambda <= 1) fHistAsMcPtZoomLambda->Fill(lPtLambda);
3250 fHistAsMcMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
3251 fHistAsMcResxLambda->Fill(rcPosXLambda-mcPosX);
3252 fHistAsMcResyLambda->Fill(rcPosYLambda-mcPosY);
3253 fHistAsMcReszLambda->Fill(rcPosZLambda-mcPosZ);
3254 fHistAsMcResrVsRadiusLambda->Fill(rcPosRLambda,rcPosRLambda-mcPosR);
3255 fHistAsMcReszVsRadiusLambda->Fill(rcPosZLambda,rcPosZLambda-mcPosZ);
3256 fHistAsMcProdRadiusLambda->Fill(mcPosMotherR);
3257 fHistAsMcProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
3258 fHistAsMcResPtLambda->Fill(deltaPtLambda);
3259 fHistAsMcResPtVsRapLambda->Fill(deltaPtLambda,lRapLambda);
3260 fHistAsMcResPtVsPtLambda->Fill(deltaPtLambda,lPtLambda);
3261 if (lComeFromSigma) fHistAsMcPtLambdaFromSigma->Fill(lPtLambda);
3262 switch (lPdgcodeMotherOfMother) {
3263 case 3222 : fHistAsMcMotherPdgCodeLambda->Fill(0.5); break; // Sigma +
3264 case 3212 : fHistAsMcMotherPdgCodeLambda->Fill(1.5); break; // Sigma 0
3265 case 3112 : fHistAsMcMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
3266 case 3224 : fHistAsMcMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
3267 case 3214 : fHistAsMcMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
3268 case 3114 : fHistAsMcMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
3269 case 3322 : fHistAsMcMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
3270 case 3312 : fHistAsMcMotherPdgCodeLambda->Fill(7.5); break; // Xi -
3271 case 3334 : fHistAsMcMotherPdgCodeLambda->Fill(8.5); break; // Omega
3272 case -1 : fHistAsMcMotherPdgCodeLambda->Fill(9.5); break;
3273 default : fHistAsMcMotherPdgCodeLambda->Fill(10.5);break;
3276 //printf("found Lambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtLambda,lInvMassLambda);
3277 //printf("found Lambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
3281 else if (lCheckSecondaryLambda) {
3282 fHistAsMcSecondaryPtVsRapLambda->Fill(lPtLambda,lRapLambda);
3283 fHistAsMcSecondaryProdRadiusLambda->Fill(mcPosMotherR);
3284 fHistAsMcSecondaryProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
3285 if (lComeFromSigma) fHistAsMcSecondaryPtLambdaFromSigma->Fill(lPtLambda);
3286 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
3287 switch (lPdgcodeMotherOfMother) {
3288 case 3222 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(0.5); break;// Sigma +
3289 case 3212 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(1.5); break;// Sigma 0
3290 case 3112 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
3291 case 3224 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
3292 case 3214 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
3293 case 3114 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
3294 case 3322 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
3295 case 3312 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(7.5); break; // Xi -
3296 case 3334 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(8.5); break; // Omega
3297 case -1 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(9.5); break;
3298 default : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(10.5);break;
3302 // if(!lCheckMcLambda)fHistCosPointAngleLvsMassVsPtbackL->Fill(lPtLambda,lV0cosPointAngle,lInvMassLambda);
3306 } // end rapidity condition
3307 // }// end PID condition
3308 }// end ctau condition
3310 ////////////////////////////////////////////////////////
3311 // Associated AntiLambda histograms in |rap| < lCutRap
3312 ////////////////////////////////////////////////////////
3314 // if ((AntiLambdaPID==1 && lMomInnerWallNeg <=1) || (lMomInnerWallNeg>1) || !(fUsePID.Contains("withPID"))){
3316 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
3317 switch (lOnFlyStatus){
3319 if(lCheckMcAntiLambda) fHistAsMcTranscTauAntiL->Fill(lcTauAntiLambda);
3320 if (lcTauAntiLambda < cutcTauL){
3321 fHistNsigmaPosProtonAntiLambda->Fill(nSigmaPosProton);
3322 fHistNsigmaNegPionAntiLambda->Fill(nSigmaNegPion);
3324 // fHistMultVsPtVsMassAntiLambda->Fill(multiplicity ,lInvMassAntiLambda,lPtAntiLambda);
3325 if(lCheckPIdAntiLambda) fHistPidMcMassAntiLambda->Fill(lInvMassAntiLambda);
3327 if(lCheckMcAntiLambda) {
3329 fHistAsMcMassAntiLambda->Fill(lInvMassAntiLambda);
3330 fHistAsMcPtAntiLambda->Fill(lPtAntiLambda);
3331 fHistAsMcPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
3334 if (TMath::Abs(lRapAntiLambda) < 0.3) {
3335 fHistAsMcMassAntiLambdaRap3->Fill(lInvMassAntiLambda);
3336 fHistAsMcPtAntiLambdaRap3->Fill(lPtAntiLambda);
3337 fHistAsMcPtVsMassAntiLambdaRap3->Fill(lInvMassAntiLambda,lPtAntiLambda);
3341 if (lPtAntiLambda <= 1) fHistAsMcPtZoomAntiLambda->Fill(lPtAntiLambda);
3342 fHistAsMcMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
3343 fHistAsMcResxAntiLambda->Fill(rcPosXAntiLambda-mcPosX);
3344 fHistAsMcResyAntiLambda->Fill(rcPosYAntiLambda-mcPosY);
3345 fHistAsMcReszAntiLambda->Fill(rcPosZAntiLambda-mcPosZ);
3346 fHistAsMcResrVsRadiusAntiLambda->Fill(rcPosRAntiLambda,rcPosRAntiLambda-mcPosR);
3347 fHistAsMcReszVsRadiusAntiLambda->Fill(rcPosZAntiLambda,rcPosZAntiLambda-mcPosZ);
3348 fHistAsMcProdRadiusAntiLambda->Fill(mcPosMotherR);
3349 fHistAsMcProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
3350 fHistAsMcResPtAntiLambda->Fill(deltaPtAntiLambda);
3351 fHistAsMcResPtVsRapAntiLambda->Fill(deltaPtAntiLambda,lRapAntiLambda);
3352 fHistAsMcResPtVsPtAntiLambda->Fill(deltaPtAntiLambda,lPtAntiLambda);
3353 if (lComeFromSigma) fHistAsMcPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
3354 switch (lPdgcodeMotherOfMother) {
3355 case 3222 : fHistAsMcMotherPdgCodeAntiLambda->Fill(0.5); break; // Sigma +
3356 case 3212 : fHistAsMcMotherPdgCodeAntiLambda->Fill(1.5); break; // Sigma 0
3357 case 3112 : fHistAsMcMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
3358 case 3224 : fHistAsMcMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
3359 case 3214 : fHistAsMcMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
3360 case 3114 : fHistAsMcMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
3361 case 3322 : fHistAsMcMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
3362 case 3312 : fHistAsMcMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
3363 case 3334 : fHistAsMcMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
3365 case -1 : fHistAsMcMotherPdgCodeAntiLambda->Fill(9.5); break;
3366 default : fHistAsMcMotherPdgCodeAntiLambda->Fill(10.5);break;
3369 //printf("found AntiLambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtAntiLambda,lInvMassAntiLambda);
3370 //printf("found AntiLambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
3374 else if (lCheckSecondaryAntiLambda) {
3375 fHistAsMcSecondaryPtVsRapAntiLambda->Fill(lPtAntiLambda,lRapAntiLambda);
3376 fHistAsMcSecondaryProdRadiusAntiLambda->Fill(mcPosMotherR);
3377 fHistAsMcSecondaryProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
3378 if (lComeFromSigma) fHistAsMcSecondaryPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
3379 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
3380 switch (lPdgcodeMotherOfMother) {
3381 case 3222 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(0.5); break;// Sigma +
3382 case 3212 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(1.5); break;// Sigma 0
3383 case 3112 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
3384 case 3224 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
3385 case 3214 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
3386 case 3114 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
3387 case 3322 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
3388 case 3312 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
3389 case 3334 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
3390 case -1 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(9.5); break;
3391 default : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(10.5);break;
3397 } // end rapidity condition
3398 // }// end PID condition
3403 // if (primaryVtxKF) delete primaryVtxKF;primaryVtxKF=NULL ;
3406 fHistV0Multiplicity->Fill(nv0s);
3407 // fHistV0MultiplicityMI->Fill(nv0sMI);
3409 if (fAnalysisType == "ESD") { if(myPrimaryVertex) delete myPrimaryVertex; }
3410 if (fAnalysisType == "ESD") { if(TestTrackCuts) delete TestTrackCuts; }
3416 //________________________________________________________________________
3417 void AliAnalysisTaskPerformanceStrange::Terminate(Option_t *)
3419 // Draw result to the screen
3420 // Called once at the end of the query
3422 TList *cRetrievedList = 0x0;
3423 cRetrievedList = (TList*)GetOutputData(1);
3425 if(!cRetrievedList){
3426 AliWarning("ERROR - AliAnalysisTaskPerformanceStrange: output data container list not available\n"); return;
3430 fHistV0Multiplicity = dynamic_cast<TH1F*> ( cRetrievedList->FindObject("fHistV0Multiplicity"));
3431 if (!fHistV0Multiplicity) {
3432 Printf("ERROR: fHistV0Multiplicity not available");
3436 fHistV0MultiplicityMI = dynamic_cast<TH1F*> ( cRetrievedList->FindObject("fHistV0MultiplicityMI"));
3437 if (!fHistV0MultiplicityMI) {
3438 Printf("ERROR: fHistV0MultiplicityMI not available");
3442 TCanvas *canPerformanceStrange = new TCanvas("AliAnalysisTaskCheckV0","Multiplicity",10,10,510,510);
3443 canPerformanceStrange->Divide(2,1);
3444 if (fHistV0Multiplicity->GetMaximum() > 0.) canPerformanceStrange->cd(1)->SetLogy();
3445 fHistV0Multiplicity->SetMarkerStyle(25);
3446 fHistV0Multiplicity->DrawCopy("E");
3447 if (fHistV0MultiplicityMI->GetMaximum() > 0.) canPerformanceStrange->cd(2)->SetLogy();
3448 fHistV0MultiplicityMI->SetMarkerStyle(24);
3449 fHistV0MultiplicityMI->DrawCopy("E");
3455 //----------------------------------------------------------------------------
3457 Double_t AliAnalysisTaskPerformanceStrange::MyRapidity(Double_t rE, Double_t rPz) const
3459 // Local calculation for rapidity
3460 return 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13));
3462 //----------------------------------------------------------------------------