]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/LambdaK0PbPb/AliAnalysisTaskLK0Spectra.cxx
Coverity Fixes
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / AliAnalysisTaskLK0Spectra.cxx
CommitLineData
c36344c8 1
2/* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
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 **************************************************************************/
15
16//-----------------------------------------------------------------
17// AliAnalysisTaskLK0Spectra class
18// This task is for a performance study of V0 identification.
19// It works with MC info and ESD tree.
20// Author: H.Ricaud, H.Ricaud@gsi.de
21//-----------------------------------------------------------------
22
23#include <Riostream.h>
24
25#include <stdio.h>
26#include <iostream>
27#include "TChain.h"
28#include "TTree.h"
29#include "TH1F.h"
30#include "TH2F.h"
31#include "TH3F.h"
32#include "TF1.h"
33#include "TList.h"
34#include "TMath.h"
35#include "TCanvas.h"
36
37#include "AliAnalysisManager.h"
38
39#include "AliPhysicsSelection.h"
40#include "AliBackgroundSelection.h"
41
42#include "AliESDVertex.h"
43#include "AliESDEvent.h"
44#include "AliESDInputHandler.h"
45#include "AliESDtrack.h"
46#include "AliESDv0.h"
47#include "AliESDtrackCuts.h"
48#include "AliESDpid.h"
49#include "AliMultiplicity.h"
50
51#include "AliAODEvent.h"
52#include "AliAODVertex.h"
53#include "AliAODTrack.h"
54#include "AliAODv0.h"
55#include "AliAODMCHeader.h"
56#include "AliAODInputHandler.h"
57
58//#include "AliV0vertexer.h"
59
60#include "AliAODMCParticle.h"
61
62#include "AliMCEventHandler.h"
63#include "AliMCEvent.h"
64#include "AliStack.h"
65#include "AliGenEventHeader.h"
66
67#include "AliLog.h"
68
69#include "AliKFVertex.h"
70#include "AliVertexerTracks.h"
71
72#include "AliAnalysisTaskLK0Spectra.h"
73#include "AliAnalysisCentralitySelector.h"
74#include "AliPIDResponse.h"
75#include "AliCentrality.h"
76
77
78
79ClassImp(AliAnalysisTaskLK0Spectra)
80
81
82//________________________________________________________________________
83AliAnalysisTaskLK0Spectra::AliAnalysisTaskLK0Spectra()
2bfd3f82 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),fArmenterosCut(0.2),fRemoveInjected(kFALSE),
c36344c8 85
86fHistMCPrimaryVertexX(0),
87fHistMCPrimaryVertexY(0),
88fHistMCPrimaryVertexZ(0),/*
89 fHistPtTracksITSRefit(0),
90 fHistPtTracks(0),
91 fHistPtTracksPITSRefit(0),
92 fHistPtTracksP(0),*/
93fHistMCMultiplicityPrimary(0),
94fHistMCMultiplicityTracks(0),/*
95 fHistTPCTracks(0),
96 fHistMCtracksProdRadiusK0s(0),
97 fHistMCtracksProdRadiusLambda(0),
98 fHistMCtracksProdRadiusAntiLambda(0),
99 fHistMCtracksDecayRadiusK0s(0),
100 fHistMCtracksDecayRadiusLambda(0),
101 fHistMCtracksDecayRadiusAntiLambda(0),
102 */
103fHistMCPtAllK0s(0),
104fHistMCPtAllLambda(0),
105fHistMCPtAllAntiLambda(0),/*
106
107 //Rap3
108 fHistMCPtAllK0sRap3(0),
109 fHistMCPtAllLambdaRap3(0),
110 fHistMCPtAllAntiLambdaRap3(0),
111
112
113 fHistMCProdRadiusK0s(0),
114 fHistMCProdRadiusLambda(0),
115 fHistMCProdRadiusAntiLambda(0),
116 fHistMCRapK0s(0),
117 fHistMCRapInPtRangeK0s(0),
118 fHistMCRapLambda(0),
119 fHistMCRapInPtRangeLambda(0),
120 fHistMCRapAntiLambda(0),
121 fHistMCRapInPtRangeAntiLambda(0),
122 fHistMCRapXi(0),
123 fHistMCRapInPtRangeXi(0),
124 fHistMCRapPhi(0),
125 fHistMCRapInPtRangePhi(0),*/
126////////////////////////////////////////
127
128fHistMCPtK0s(0),
129fHistMCPtLambda(0),
130fHistMCPtAntiLambda(0),/*
131
132 //Rap3
133 fHistMCPtK0sRap3(0),
134 fHistMCPtLambdaRap3(0),
135 fHistMCPtAntiLambdaRap3(0),
136
137
138 ///////////////////////////////////////////
139
140 fHistMCPtLambdaFromSigma(0),
141 fHistMCPtAntiLambdaFromSigma(0),
142 fHistNTimesRecK0s(0),
143 fHistNTimesRecLambda(0),
144 fHistNTimesRecAntiLambda(0),
145 fHistNTimesRecK0sVsPt(0),
146 fHistNTimesRecLambdaVsPt(0),
147 fHistNTimesRecAntiLambdaVsPt(0),*/
148fHistNumberEvents(0),
149fHistTrackPerEvent(0),
150fHistTPCMult(0),/*
151 fHistTrackletPerEvent(0),
152 fHistMCDaughterTrack(0),
153 fHistSPDPrimaryVertexZ(0),*/
154fHistPrimaryVertexX(0),
155fHistPrimaryVertexY(0),
156fHistPrimaryVertexZ(0),/*
157 fHistPrimaryVertexResX(0),
158 fHistPrimaryVertexResY(0),
159 fHistPrimaryVertexResZ(0),
160 fHistPrimaryVertexPosXV0events(0),
161 fHistPrimaryVertexPosYV0events(0),
162 fHistPrimaryVertexPosZV0events(0),
163 fHistDaughterPt(0),
164 ////////////////////////////////////////
165
166 fHistDcaPosToPrimVertexK0(0),
167 fHistDcaNegToPrimVertexK0(0),
168 fHistRadiusV0K0(0),
169 fHistDecayLengthV0K0(0),
170 fHistDcaV0DaughtersK0(0),
171 fHistChi2K0(0),
172 fHistCosPointAngleK0(0),
173
174 fHistDcaPosToPrimVertexK0vsMassK0(0),
175 fHistDcaNegToPrimVertexK0vsMassK0(0),
176 fHistRadiusV0K0vsMassK0(0),
177 fHistDecayLengthV0K0vsMassK0(0),
178 fHistDcaV0DaughtersK0vsMassK0(0),
179 fHistCosPointAngleK0vsMassK0(0),
180
181 fHistDcaPosToPrimVertexK0vsMassK0pt1(0),
182 fHistDcaNegToPrimVertexK0vsMassK0pt1(0),
183 fHistRadiusV0K0vsMassK0pt1(0),
184 fHistDecayLengthV0K0vsMassK0pt1(0),
185 fHistDcaV0DaughtersK0vsMassK0pt1(0),
186 fHistCosPointAngleK0vsMassK0pt1(0),
187
188 fHistDcaPosToPrimVertexK0vsMassK0pt2(0),
189 fHistDcaNegToPrimVertexK0vsMassK0pt2(0),
190 fHistRadiusV0K0vsMassK0pt2(0),
191 fHistDecayLengthV0K0vsMassK0pt2(0),
192 fHistDcaV0DaughtersK0vsMassK0pt2(0),
193 fHistCosPointAngleK0vsMassK0pt2(0),
194
195 fHistDcaPosToPrimVertexK0vsMassK0pt3(0),
196 fHistDcaNegToPrimVertexK0vsMassK0pt3(0),
197 fHistRadiusV0K0vsMassK0pt3(0),
198 fHistDecayLengthV0K0vsMassK0pt3(0),
199 fHistDcaV0DaughtersK0vsMassK0pt3(0),
200 fHistCosPointAngleK0vsMassK0pt3(0),
201
202 /////////// Lambda ///////////////////////////
203
204 fHistDcaPosToPrimVertexL(0),
205 fHistDcaNegToPrimVertexL(0),
206 fHistRadiusV0L(0),
207 fHistDecayLengthV0L(0),
208 fHistDcaV0DaughtersL(0),
209 fHistChi2L(0),
210 fHistCosPointAngleL(0),
211 fHistcTauL(0),
212
213 fHistDcaPosToPrimVertexLvsMassL(0),
214 fHistDcaNegToPrimVertexLvsMassL(0),
215 fHistRadiusV0LvsMassL(0),
216 fHistDecayLengthV0LvsMassL(0),
217 fHistDcaV0DaughtersLvsMassL(0),
218 fHistCosPointAngleLvsMassL(0),
219 fHistCosPointAngleLvsMassVsPtsigL(0),
220 fHistCosPointAngleLvsMassVsPtbackL(0),
221
222
223 fHistDcaPosToPrimVertexLambdaVsMasspt1(0),
224 fHistDcaNegToPrimVertexLambdaVsMasspt1(0),
225 fHistRadiusV0LambdaVsMasspt1(0),
226 fHistDecayLengthV0LambdaVsMasspt1(0),
227 fHistDcaV0DaughtersLambdaVsMasspt1(0),
228 fHistCosPointAngleLambdaVsMasspt1(0),
229
230 fHistDcaPosToPrimVertexLambdaVsMasspt2(0),
231 fHistDcaNegToPrimVertexLambdaVsMasspt2(0),
232 fHistRadiusV0LambdaVsMasspt2(0),
233 fHistDecayLengthV0LambdaVsMasspt2(0),
234 fHistDcaV0DaughtersLambdaVsMasspt2(0),
235 fHistCosPointAngleLambdaVsMasspt2(0),
236
237 fHistDcaPosToPrimVertexLambdaVsMasspt3(0),
238 fHistDcaNegToPrimVertexLambdaVsMasspt3(0),
239 fHistRadiusV0LambdaVsMasspt3(0),
240 fHistDecayLengthV0LambdaVsMasspt3(0),
241 fHistDcaV0DaughtersLambdaVsMasspt3(0),
242 fHistCosPointAngleLambdaVsMasspt3(0),
243
244
245
246 /////////Antilambda ///////////////////
247 fHistDcaPosToPrimVertexAntiL(0),
248 fHistDcaNegToPrimVertexAntiL(0),
249 fHistRadiusV0AntiL(0),
250 fHistDecayLengthV0AntiL(0),
251 fHistDcaV0DaughtersAntiL(0),
252 fHistChi2AntiL(0),
253 fHistCosPointAngleAntiL(0),
254
255 fHistDcaPosToPrimVertexAntiLvsMass(0),
256 fHistDcaNegToPrimVertexAntiLvsMass(0),
257 fHistRadiusV0AntiLvsMass(0),
258 fHistDecayLengthV0AntiLvsMass(0),
259 fHistDcaV0DaughtersAntiLvsMass(0),
260 fHistCosPointAngleAntiLvsMass(0),
261
262
263
264 fHistDcaPosToPrimVertexAntiLVsMasspt1(0),
265 fHistDcaNegToPrimVertexAntiLVsMasspt1(0),
266 fHistRadiusV0AntiLVsMasspt1(0),
267 fHistDecayLengthV0AntiLVsMasspt1(0),
268 fHistDcaV0DaughtersAntiLVsMasspt1(0),
269 fHistCosPointAngleAntiLVsMasspt1(0),
270
271 fHistDcaPosToPrimVertexAntiLVsMasspt2(0),
272 fHistDcaNegToPrimVertexAntiLVsMasspt2(0),
273 fHistRadiusV0AntiLVsMasspt2(0),
274 fHistDecayLengthV0AntiLVsMasspt2(0),
275 fHistDcaV0DaughtersAntiLVsMasspt2(0),
276 fHistCosPointAngleAntiLVsMasspt2(0),
277
278 fHistDcaPosToPrimVertexAntiLVsMasspt3(0),
279 fHistDcaNegToPrimVertexAntiLVsMasspt3(0),
280 fHistRadiusV0AntiLVsMasspt3(0),
281 fHistDecayLengthV0AntiLVsMasspt3(0),
282 fHistDcaV0DaughtersAntiLVsMasspt3(0),
283 fHistCosPointAngleAntiLVsMasspt3(0),
284 */
285/////////////////////////////////////////
286fHistV0Multiplicity(0),
287fHistMassK0(0),
288fHistMassLambda(0),
289fHistMassAntiLambda(0),
290fHistMassVsRadiusK0(0),
291fHistMassVsRadiusLambda(0),
292fHistMassVsRadiusAntiLambda(0),
293
294///////////////////////////////////////
295fHistPtVsMassK0(0),
296fHistPtVsMassLambda(0),
297fHistPtVsMassAntiLambda(0),/*
298
299 /// Rap3
300 fHistPtVsMassK0Rap3(0),
301 fHistPtVsMassLambdaRap3(0),
302 fHistPtVsMassAntiLambdaRap3(0),*/
303
304 ////////////////////////////////////////
305
306fHistArmenterosPodolanski(0),/*
307 fHistK0sMassVsLambdaMass(0),
308 fHistTPCsigPLambda(0),
309 fHistTPCsigPAntiLambda(0),
310 fHistNSigmaProton(0),
311 fHistNsigmaPosPionAntiLambda(0),
312 fHistNsigmaNegProtonAntiLambda(0),
313 fHistNsigmaPosProtonLambda(0),
314 fHistNsigmaNegPionLambda(0),
315 fHistNsigmaPosProtonAntiLambda(0),
316 fHistNsigmaNegPionAntiLambda(0),
317 fHistNsigmaPosPionK0(0),
318 fHistNsigmaNegPionK0(0),
319 fHistAsMcRapK0(0),
320 fHistAsMcRapLambda(0),
321 fHistAsMcRapAntiLambda(0),
322 /////////////////////
323
324 fHistAsMcPtK0(0),
325 fHistAsMcPtLambda(0),
326 fHistAsMcPtAntiLambda(0),
327
328 ///Rap3
329 fHistAsMcPtK0Rap3(0),
330 fHistAsMcPtLambdaRap3(0),
331 fHistAsMcPtAntiLambdaRap3(0),
332
333
334 /////////////////////////////////////
335
336 fHistAsMcPtZoomK0(0),
337 fHistAsMcPtZoomLambda(0),
338 fHistAsMcPtZoomAntiLambda(0),
339 fHistAsMcProdRadiusK0(0),
340 fHistAsMcProdRadiusLambda(0),
341 fHistAsMcProdRadiusAntiLambda(0),
342 fHistAsMcProdRadiusXvsYK0s(0),
343 fHistAsMcProdRadiusXvsYLambda(0),
344 fHistAsMcProdRadiusXvsYAntiLambda(0),
345 fHistPidMcMassK0(0),
346 fHistPidMcMassLambda(0),
347 fHistPidMcMassAntiLambda(0),*/
348
349
350///////////////////////////////
351
352fHistAsMcMassK0(0),
353fHistAsMcMassLambda(0),
354fHistAsMcMassAntiLambda(0),/*
355
356 /// Rap3
357 fHistAsMcMassK0Rap3(0),
358 fHistAsMcMassLambdaRap3(0),
359 fHistAsMcMassAntiLambdaRap3(0),*/
360
361
362fHistAsMcPtVsMassK0(0),
363fHistAsMcPtVsMassLambda(0),
364fHistAsMcPtVsMassAntiLambda(0),/*
365
366 /// Rap3
367 fHistAsMcPtVsMassK0Rap3(0),
368 fHistAsMcPtVsMassLambdaRap3(0),
369 fHistAsMcPtVsMassAntiLambdaRap3(0),
370
371 ///////////////////////////////////////
372
373 fHistAsMcMassVsRadiusK0(0),
374 fHistAsMcMassVsRadiusLambda(0),
375 fHistAsMcMassVsRadiusAntiLambda(0),
376 fHistAsMcResxK0(0),
377 fHistAsMcResyK0(0),
378 fHistAsMcReszK0(0),
379 fHistAsMcResrVsRadiusK0(0),
380 fHistAsMcReszVsRadiusK0(0),
381 fHistAsMcResxLambda(0),
382 fHistAsMcResyLambda(0),
383 fHistAsMcReszLambda(0),
384 fHistAsMcResrVsRadiusLambda(0),
385 fHistAsMcReszVsRadiusLambda(0),
386 fHistAsMcResxAntiLambda(0),
387 fHistAsMcResyAntiLambda(0),
388 fHistAsMcReszAntiLambda(0),
389 fHistAsMcResrVsRadiusAntiLambda(0),
390 fHistAsMcReszVsRadiusAntiLambda(0),
391 fHistAsMcResPtK0(0),
392 fHistAsMcResPtLambda(0),
393 fHistAsMcResPtAntiLambda(0),
394 fHistAsMcResPtVsRapK0(0),
395 fHistAsMcResPtVsRapLambda(0),
396 fHistAsMcResPtVsRapAntiLambda(0),
397 fHistAsMcResPtVsPtK0(0),
398 fHistAsMcResPtVsPtLambda(0),
399 fHistAsMcResPtVsPtAntiLambda(0),
400 fHistAsMcMotherPdgCodeK0s(0),
401 fHistAsMcMotherPdgCodeLambda(0),
402 fHistAsMcMotherPdgCodeAntiLambda(0),
403 fHistAsMcPtLambdaFromSigma(0),
404 fHistAsMcPtAntiLambdaFromSigma(0),*/
405fHistAsMcSecondaryPtVsRapK0s(0),
406fHistAsMcSecondaryPtVsRapLambda(0),
407fHistAsMcSecondaryPtVsRapAntiLambda(0),
408fHistAsMcSecondaryPtVsMassK0s(0),
409fHistAsMcSecondaryPtVsMassLambda(0),
410fHistAsMcSecondaryPtVsMassAntiLambda(0)/*,
411 fHistAsMcSecondaryProdRadiusK0s(0),
412 fHistAsMcSecondaryProdRadiusLambda(0),
413 fHistAsMcSecondaryProdRadiusAntiLambda(0),
414 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
415 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
416 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
417 fHistAsMcSecondaryMotherPdgCodeK0s(0),
418 fHistAsMcSecondaryMotherPdgCodeLambda(0),
419 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
420 fHistAsMcSecondaryPtLambdaFromSigma(0),
421 fHistAsMcSecondaryPtAntiLambdaFromSigma(0)*/
422
423{
424 // Constructor
425}
426
427
428
429
430
431//________________________________________________________________________
432AliAnalysisTaskLK0Spectra::AliAnalysisTaskLK0Spectra(const char *name)
2bfd3f82 433 : 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),fArmenterosCut(0.2),fRemoveInjected(kFALSE),
c36344c8 434
435fHistMCPrimaryVertexX(0),
436fHistMCPrimaryVertexY(0),
437fHistMCPrimaryVertexZ(0),/*
438 fHistPtTracksITSRefit(0),
439 fHistPtTracks(0),
440 fHistPtTracksPITSRefit(0),
441 fHistPtTracksP(0),*/
442fHistMCMultiplicityPrimary(0),
443fHistMCMultiplicityTracks(0),/*
444 fHistTPCTracks(0),
445 fHistMCtracksProdRadiusK0s(0),
446 fHistMCtracksProdRadiusLambda(0),
447 fHistMCtracksProdRadiusAntiLambda(0),
448 fHistMCtracksDecayRadiusK0s(0),
449 fHistMCtracksDecayRadiusLambda(0),
450 fHistMCtracksDecayRadiusAntiLambda(0),
451 */
452fHistMCPtAllK0s(0),
453fHistMCPtAllLambda(0),
454fHistMCPtAllAntiLambda(0),/*
455
456 //Rap3
457 fHistMCPtAllK0sRap3(0),
458 fHistMCPtAllLambdaRap3(0),
459 fHistMCPtAllAntiLambdaRap3(0),
460
461
462 fHistMCProdRadiusK0s(0),
463 fHistMCProdRadiusLambda(0),
464 fHistMCProdRadiusAntiLambda(0),
465 fHistMCRapK0s(0),
466 fHistMCRapInPtRangeK0s(0),
467 fHistMCRapLambda(0),
468 fHistMCRapInPtRangeLambda(0),
469 fHistMCRapAntiLambda(0),
470 fHistMCRapInPtRangeAntiLambda(0),
471 fHistMCRapXi(0),
472 fHistMCRapInPtRangeXi(0),
473 fHistMCRapPhi(0),
474 fHistMCRapInPtRangePhi(0),*/
475////////////////////////////////////////
476
477fHistMCPtK0s(0),
478fHistMCPtLambda(0),
479fHistMCPtAntiLambda(0),/*
480
481 //Rap3
482 fHistMCPtK0sRap3(0),
483 fHistMCPtLambdaRap3(0),
484 fHistMCPtAntiLambdaRap3(0),
485
486
487 ///////////////////////////////////////////
488
489 fHistMCPtLambdaFromSigma(0),
490 fHistMCPtAntiLambdaFromSigma(0),
491 fHistNTimesRecK0s(0),
492 fHistNTimesRecLambda(0),
493 fHistNTimesRecAntiLambda(0),
494 fHistNTimesRecK0sVsPt(0),
495 fHistNTimesRecLambdaVsPt(0),
496 fHistNTimesRecAntiLambdaVsPt(0),*/
497fHistNumberEvents(0),
498fHistTrackPerEvent(0),
499fHistTPCMult(0),/*
500 fHistTrackletPerEvent(0),
501 fHistMCDaughterTrack(0),
502 fHistSPDPrimaryVertexZ(0),*/
503fHistPrimaryVertexX(0),
504fHistPrimaryVertexY(0),
505fHistPrimaryVertexZ(0),/*
506 fHistPrimaryVertexResX(0),
507 fHistPrimaryVertexResY(0),
508 fHistPrimaryVertexResZ(0),
509 fHistPrimaryVertexPosXV0events(0),
510 fHistPrimaryVertexPosYV0events(0),
511 fHistPrimaryVertexPosZV0events(0),
512 fHistDaughterPt(0),
513 ////////////////////////////////////////
514
515 fHistDcaPosToPrimVertexK0(0),
516 fHistDcaNegToPrimVertexK0(0),
517 fHistRadiusV0K0(0),
518 fHistDecayLengthV0K0(0),
519 fHistDcaV0DaughtersK0(0),
520 fHistChi2K0(0),
521 fHistCosPointAngleK0(0),
522
523 fHistDcaPosToPrimVertexK0vsMassK0(0),
524 fHistDcaNegToPrimVertexK0vsMassK0(0),
525 fHistRadiusV0K0vsMassK0(0),
526 fHistDecayLengthV0K0vsMassK0(0),
527 fHistDcaV0DaughtersK0vsMassK0(0),
528 fHistCosPointAngleK0vsMassK0(0),
529
530 fHistDcaPosToPrimVertexK0vsMassK0pt1(0),
531 fHistDcaNegToPrimVertexK0vsMassK0pt1(0),
532 fHistRadiusV0K0vsMassK0pt1(0),
533 fHistDecayLengthV0K0vsMassK0pt1(0),
534 fHistDcaV0DaughtersK0vsMassK0pt1(0),
535 fHistCosPointAngleK0vsMassK0pt1(0),
536
537 fHistDcaPosToPrimVertexK0vsMassK0pt2(0),
538 fHistDcaNegToPrimVertexK0vsMassK0pt2(0),
539 fHistRadiusV0K0vsMassK0pt2(0),
540 fHistDecayLengthV0K0vsMassK0pt2(0),
541 fHistDcaV0DaughtersK0vsMassK0pt2(0),
542 fHistCosPointAngleK0vsMassK0pt2(0),
543
544 fHistDcaPosToPrimVertexK0vsMassK0pt3(0),
545 fHistDcaNegToPrimVertexK0vsMassK0pt3(0),
546 fHistRadiusV0K0vsMassK0pt3(0),
547 fHistDecayLengthV0K0vsMassK0pt3(0),
548 fHistDcaV0DaughtersK0vsMassK0pt3(0),
549 fHistCosPointAngleK0vsMassK0pt3(0),
550
551 /////////// Lambda ///////////////////////////
552
553 fHistDcaPosToPrimVertexL(0),
554 fHistDcaNegToPrimVertexL(0),
555 fHistRadiusV0L(0),
556 fHistDecayLengthV0L(0),
557 fHistDcaV0DaughtersL(0),
558 fHistChi2L(0),
559 fHistCosPointAngleL(0),
560 fHistcTauL(0),
561
562 fHistDcaPosToPrimVertexLvsMassL(0),
563 fHistDcaNegToPrimVertexLvsMassL(0),
564 fHistRadiusV0LvsMassL(0),
565 fHistDecayLengthV0LvsMassL(0),
566 fHistDcaV0DaughtersLvsMassL(0),
567 fHistCosPointAngleLvsMassL(0),
568 fHistCosPointAngleLvsMassVsPtsigL(0),
569 fHistCosPointAngleLvsMassVsPtbackL(0),
570
571
572 fHistDcaPosToPrimVertexLambdaVsMasspt1(0),
573 fHistDcaNegToPrimVertexLambdaVsMasspt1(0),
574 fHistRadiusV0LambdaVsMasspt1(0),
575 fHistDecayLengthV0LambdaVsMasspt1(0),
576 fHistDcaV0DaughtersLambdaVsMasspt1(0),
577 fHistCosPointAngleLambdaVsMasspt1(0),
578
579 fHistDcaPosToPrimVertexLambdaVsMasspt2(0),
580 fHistDcaNegToPrimVertexLambdaVsMasspt2(0),
581 fHistRadiusV0LambdaVsMasspt2(0),
582 fHistDecayLengthV0LambdaVsMasspt2(0),
583 fHistDcaV0DaughtersLambdaVsMasspt2(0),
584 fHistCosPointAngleLambdaVsMasspt2(0),
585
586 fHistDcaPosToPrimVertexLambdaVsMasspt3(0),
587 fHistDcaNegToPrimVertexLambdaVsMasspt3(0),
588 fHistRadiusV0LambdaVsMasspt3(0),
589 fHistDecayLengthV0LambdaVsMasspt3(0),
590 fHistDcaV0DaughtersLambdaVsMasspt3(0),
591 fHistCosPointAngleLambdaVsMasspt3(0),
592
593
594
595 /////////Antilambda ///////////////////
596 fHistDcaPosToPrimVertexAntiL(0),
597 fHistDcaNegToPrimVertexAntiL(0),
598 fHistRadiusV0AntiL(0),
599 fHistDecayLengthV0AntiL(0),
600 fHistDcaV0DaughtersAntiL(0),
601 fHistChi2AntiL(0),
602 fHistCosPointAngleAntiL(0),
603
604 fHistDcaPosToPrimVertexAntiLvsMass(0),
605 fHistDcaNegToPrimVertexAntiLvsMass(0),
606 fHistRadiusV0AntiLvsMass(0),
607 fHistDecayLengthV0AntiLvsMass(0),
608 fHistDcaV0DaughtersAntiLvsMass(0),
609 fHistCosPointAngleAntiLvsMass(0),
610
611
612
613 fHistDcaPosToPrimVertexAntiLVsMasspt1(0),
614 fHistDcaNegToPrimVertexAntiLVsMasspt1(0),
615 fHistRadiusV0AntiLVsMasspt1(0),
616 fHistDecayLengthV0AntiLVsMasspt1(0),
617 fHistDcaV0DaughtersAntiLVsMasspt1(0),
618 fHistCosPointAngleAntiLVsMasspt1(0),
619
620 fHistDcaPosToPrimVertexAntiLVsMasspt2(0),
621 fHistDcaNegToPrimVertexAntiLVsMasspt2(0),
622 fHistRadiusV0AntiLVsMasspt2(0),
623 fHistDecayLengthV0AntiLVsMasspt2(0),
624 fHistDcaV0DaughtersAntiLVsMasspt2(0),
625 fHistCosPointAngleAntiLVsMasspt2(0),
626
627 fHistDcaPosToPrimVertexAntiLVsMasspt3(0),
628 fHistDcaNegToPrimVertexAntiLVsMasspt3(0),
629 fHistRadiusV0AntiLVsMasspt3(0),
630 fHistDecayLengthV0AntiLVsMasspt3(0),
631 fHistDcaV0DaughtersAntiLVsMasspt3(0),
632 fHistCosPointAngleAntiLVsMasspt3(0),
633 */
634/////////////////////////////////////////
635fHistV0Multiplicity(0),
636fHistMassK0(0),
637fHistMassLambda(0),
638fHistMassAntiLambda(0),
639fHistMassVsRadiusK0(0),
640fHistMassVsRadiusLambda(0),
641fHistMassVsRadiusAntiLambda(0),
642
643///////////////////////////////////////
644fHistPtVsMassK0(0),
645fHistPtVsMassLambda(0),
646fHistPtVsMassAntiLambda(0),/*
647
648 /// Rap3
649 fHistPtVsMassK0Rap3(0),
650 fHistPtVsMassLambdaRap3(0),
651 fHistPtVsMassAntiLambdaRap3(0),*/
652
653 ////////////////////////////////////////
654
655fHistArmenterosPodolanski(0),/*
656 fHistK0sMassVsLambdaMass(0),
657 fHistTPCsigPLambda(0),
658 fHistTPCsigPAntiLambda(0),
659 fHistNSigmaProton(0),
660 fHistNsigmaPosPionAntiLambda(0),
661 fHistNsigmaNegProtonAntiLambda(0),
662 fHistNsigmaPosProtonLambda(0),
663 fHistNsigmaNegPionLambda(0),
664 fHistNsigmaPosProtonAntiLambda(0),
665 fHistNsigmaNegPionAntiLambda(0),
666 fHistNsigmaPosPionK0(0),
667 fHistNsigmaNegPionK0(0),
668 fHistAsMcRapK0(0),
669 fHistAsMcRapLambda(0),
670 fHistAsMcRapAntiLambda(0),
671 /////////////////////
672
673 fHistAsMcPtK0(0),
674 fHistAsMcPtLambda(0),
675 fHistAsMcPtAntiLambda(0),
676
677 ///Rap3
678 fHistAsMcPtK0Rap3(0),
679 fHistAsMcPtLambdaRap3(0),
680 fHistAsMcPtAntiLambdaRap3(0),
681
682
683 /////////////////////////////////////
684
685 fHistAsMcPtZoomK0(0),
686 fHistAsMcPtZoomLambda(0),
687 fHistAsMcPtZoomAntiLambda(0),
688 fHistAsMcProdRadiusK0(0),
689 fHistAsMcProdRadiusLambda(0),
690 fHistAsMcProdRadiusAntiLambda(0),
691 fHistAsMcProdRadiusXvsYK0s(0),
692 fHistAsMcProdRadiusXvsYLambda(0),
693 fHistAsMcProdRadiusXvsYAntiLambda(0),
694 fHistPidMcMassK0(0),
695 fHistPidMcMassLambda(0),
696 fHistPidMcMassAntiLambda(0),*/
697
698
699///////////////////////////////
700
701fHistAsMcMassK0(0),
702fHistAsMcMassLambda(0),
703fHistAsMcMassAntiLambda(0),/*
704
705 /// Rap3
706 fHistAsMcMassK0Rap3(0),
707 fHistAsMcMassLambdaRap3(0),
708 fHistAsMcMassAntiLambdaRap3(0),*/
709
710
711fHistAsMcPtVsMassK0(0),
712fHistAsMcPtVsMassLambda(0),
713fHistAsMcPtVsMassAntiLambda(0),/*
714
715 /// Rap3
716 fHistAsMcPtVsMassK0Rap3(0),
717 fHistAsMcPtVsMassLambdaRap3(0),
718 fHistAsMcPtVsMassAntiLambdaRap3(0),
719
720 ///////////////////////////////////////
721
722 fHistAsMcMassVsRadiusK0(0),
723 fHistAsMcMassVsRadiusLambda(0),
724 fHistAsMcMassVsRadiusAntiLambda(0),
725 fHistAsMcResxK0(0),
726 fHistAsMcResyK0(0),
727 fHistAsMcReszK0(0),
728 fHistAsMcResrVsRadiusK0(0),
729 fHistAsMcReszVsRadiusK0(0),
730 fHistAsMcResxLambda(0),
731 fHistAsMcResyLambda(0),
732 fHistAsMcReszLambda(0),
733 fHistAsMcResrVsRadiusLambda(0),
734 fHistAsMcReszVsRadiusLambda(0),
735 fHistAsMcResxAntiLambda(0),
736 fHistAsMcResyAntiLambda(0),
737 fHistAsMcReszAntiLambda(0),
738 fHistAsMcResrVsRadiusAntiLambda(0),
739 fHistAsMcReszVsRadiusAntiLambda(0),
740 fHistAsMcResPtK0(0),
741 fHistAsMcResPtLambda(0),
742 fHistAsMcResPtAntiLambda(0),
743 fHistAsMcResPtVsRapK0(0),
744 fHistAsMcResPtVsRapLambda(0),
745 fHistAsMcResPtVsRapAntiLambda(0),
746 fHistAsMcResPtVsPtK0(0),
747 fHistAsMcResPtVsPtLambda(0),
748 fHistAsMcResPtVsPtAntiLambda(0),
749 fHistAsMcMotherPdgCodeK0s(0),
750 fHistAsMcMotherPdgCodeLambda(0),
751 fHistAsMcMotherPdgCodeAntiLambda(0),
752 fHistAsMcPtLambdaFromSigma(0),
753 fHistAsMcPtAntiLambdaFromSigma(0),*/
754fHistAsMcSecondaryPtVsRapK0s(0),
755fHistAsMcSecondaryPtVsRapLambda(0),
756fHistAsMcSecondaryPtVsRapAntiLambda(0),
757fHistAsMcSecondaryPtVsMassK0s(0),
758fHistAsMcSecondaryPtVsMassLambda(0),
759fHistAsMcSecondaryPtVsMassAntiLambda(0)/*,
760 fHistAsMcSecondaryProdRadiusK0s(0),
761 fHistAsMcSecondaryProdRadiusLambda(0),
762 fHistAsMcSecondaryProdRadiusAntiLambda(0),
763 fHistAsMcSecondaryProdRadiusXvsYK0s(0),
764 fHistAsMcSecondaryProdRadiusXvsYLambda(0),
765 fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0),
766 fHistAsMcSecondaryMotherPdgCodeK0s(0),
767 fHistAsMcSecondaryMotherPdgCodeLambda(0),
768 fHistAsMcSecondaryMotherPdgCodeAntiLambda(0),
769 fHistAsMcSecondaryPtLambdaFromSigma(0),
770 fHistAsMcSecondaryPtAntiLambdaFromSigma(0)*/
771
772{
773 // Constructor
774
775 // Define output slots only here
776 // Output slot #1 writes into a TList container
777 DefineOutput(1, TList::Class());
778 DefineOutput(2, AliAnalysisCentralitySelector::Class());
779 DefineOutput(3, AliESDtrackCuts::Class());
780}
781AliAnalysisTaskLK0Spectra::~AliAnalysisTaskLK0Spectra() {
782 //
783 // Destructor
784 //
785 if (fListHist && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fListHist; fListHist = 0x0; }
786 if (fCentrSelector && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fCentrSelector; fCentrSelector = 0x0; }
787 if (fTracksCuts && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { delete fTracksCuts; fTracksCuts = 0x0; }
788
789
790}
791//________________________________________________________________________
792void AliAnalysisTaskLK0Spectra::UserCreateOutputObjects()
793{
794
795 //******************
796 // Create histograms
797 //*******************
798 fListHist = new TList();
799 fListHist->SetOwner();
800 //fListHistCuts = new TList();
801 //fListHistCuts->SetOwner();
802
803 // Bo: tbd: condition before allocation (i.e. if (!fHistMCMultiplicityPrimary){...} for each histo...
804
805 //***************
806 // MC histograms
807 //***************
808
809 // Primary Vertex:
810 fHistMCPrimaryVertexX = new TH1F("h1MCPrimaryVertexX", "MC Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
811 fListHist->Add(fHistMCPrimaryVertexX);
812
813 fHistMCPrimaryVertexY = new TH1F("h1MCPrimaryVertexY", "MC Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
814 fListHist->Add(fHistMCPrimaryVertexY);
815
816 fHistMCPrimaryVertexZ = new TH1F("h1MCPrimaryVertexZ", "MC Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
817 fListHist->Add(fHistMCPrimaryVertexZ);
818/*
819 // Pt track distribution
820 fHistPtTracksITSRefit = new TH1F("h1PtTracksITSRefit", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
821 fListHist->Add(fHistPtTracksITSRefit);
822
823 fHistPtTracks = new TH1F("h1PtTracks", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
824 fListHist->Add(fHistPtTracks);
825
826 // Pt track distribution
827 fHistPtTracksPITSRefit = new TH1F("h1PtTracksPITSRefit", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
828 fListHist->Add(fHistPtTracksPITSRefit);
829
830 fHistPtTracksP = new TH1F("h1PtTracksP", "Pt tracks;p_{t} (GeV/c);Counts", 240,0,12);
831 fListHist->Add(fHistPtTracksP);
832 */
833 // Multiplicity
834 fHistMCMultiplicityPrimary = new TH1F("h1MCMultiplicityPrimary", "MC Primary Particles;NPrimary;Count", 201, -0.5, 200.5);
835 fListHist->Add(fHistMCMultiplicityPrimary);
836
837 fHistMCMultiplicityTracks = new TH1F("h1MCMultiplicityTracks", "MC Tracks;Ntracks;Count", 201, -0.5, 200.5);
838 fListHist->Add(fHistMCMultiplicityTracks);
839/*
840 // Production Radius of non-primary particles:
841 fHistMCtracksProdRadiusK0s = new TH2F("h2MCtracksProdRadiusK0s","Non-primary MC K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
842 fListHist->Add(fHistMCtracksProdRadiusK0s);
843
844 fHistMCtracksProdRadiusLambda = new TH2F("h2MCtracksProdRadiusLambda","Non-primary MC #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
845 fListHist->Add(fHistMCtracksProdRadiusLambda);
846
847 fHistMCtracksProdRadiusAntiLambda = new TH2F("h2MCtracksProdRadiusAntiLambda","Non-primary MC #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
848 fListHist->Add(fHistMCtracksProdRadiusAntiLambda);
849
850 // Decay Radius of non-primary particles:
851 fHistMCtracksDecayRadiusK0s = new TH1F("h1MCtracksDecayRadiusK0s","Non-primary MC K^{0} Decay Radius;r (cm)",101,-1,100);
852 fListHist->Add(fHistMCtracksDecayRadiusK0s);
853
854 fHistMCtracksDecayRadiusLambda = new TH1F("h1MCtracksDecayRadiusLambda","Non-primary MC #Lambda^{0} Decay Radius;r (cm)",101,-1,100);
855 fListHist->Add(fHistMCtracksDecayRadiusLambda);
856
857 fHistMCtracksDecayRadiusAntiLambda = new TH1F("h1MCtracksDecayRadiusAntiLambda","Non-primary #bar{#Lambda}^{0} Decay Radius;r (cm)",100,1,101);
858 fListHist->Add(fHistMCtracksDecayRadiusAntiLambda);
859*/
860 // Pt Distribution of non-primary particles:
861 fHistMCPtAllK0s = new TH1F("h1MCPtAllK0s", "Non-primary MC K^{0};p_{t} (GeV/c);Counts",240,0,12);
862 fListHist->Add(fHistMCPtAllK0s);
863
864 fHistMCPtAllLambda = new TH1F("h1MCPtAllLambda", "Non-primary MC #Lambda^{0};p_{t} (GeV/c);Counts",240,0,12);
865 fListHist->Add(fHistMCPtAllLambda);
866
867 fHistMCPtAllAntiLambda = new TH1F("h1MCPtAllAntiLambda", "Non-primary MC #bar{#Lambda}^{0};p_{t} (GeV/c);Counts",240,0,12);
868 fListHist->Add(fHistMCPtAllAntiLambda);
869/*
870
871 // Pt Distribution of non-primary particles Rap3:
872 fHistMCPtAllK0sRap3 = new TH1F("h1MCPtAllK0sRap3", "Non-primary MC K^{0};p_{t} (GeV/c);Counts",240,0,12);
873 fListHist->Add(fHistMCPtAllK0sRap3);
874
875 fHistMCPtAllLambdaRap3 = new TH1F("h1MCPtAllLambdaRap3", "Non-primary MC #LambdaRap3^{0};p_{t} (GeV/c);Counts",240,0,12);
876 fListHist->Add(fHistMCPtAllLambdaRap3);
877
878 fHistMCPtAllAntiLambdaRap3 = new TH1F("h1MCPtAllAntiLambdaRap3", "Non-primary MC #bar{#LambdaRap3}^{0};p_{t} (GeV/c);Counts",240,0,12);
879 fListHist->Add(fHistMCPtAllAntiLambdaRap3);
880
881
882 // Production Radius
883 fHistMCProdRadiusK0s = new TH1F("h1MCProdRadiusK0s", "MC K^{0} Production Radius;r (cm);Count", 400, -2, 2);
884 fListHist->Add(fHistMCProdRadiusK0s);
885
886 fHistMCProdRadiusLambda = new TH1F("h1MCProdRadiusLambda", "MC #Lambda^{0} Production Radius;r (cm);Count", 400, -2, 2);
887 fListHist->Add(fHistMCProdRadiusLambda);
888
889 fHistMCProdRadiusAntiLambda = new TH1F("h1MCProdRadiusAntiLambda", "MC #bar{#Lambda}^{0} Production Radius;r (cm);Count", 400, -2, 2);
890 fListHist->Add(fHistMCProdRadiusAntiLambda);
891
892 // Rapidity distribution:
893 fHistMCRapK0s = new TH1F("h1MCRapK0s", "K^{0};y",160,-4,4);
894 fListHist->Add(fHistMCRapK0s);
895
896 fHistMCRapInPtRangeK0s = new TH1F("h1MCRapInPtRangeK0s", "K^{0};y",160,-4,4);
897 fListHist->Add(fHistMCRapInPtRangeK0s);
898
899 fHistMCRapLambda = new TH1F("h1MCRapLambda", "#Lambda;y",160,-4,4);
900 fListHist->Add(fHistMCRapLambda);
901
902 fHistMCRapInPtRangeLambda = new TH1F("h1MCRapInPtRangeLambda", "#Lambda;y",160,-4,4);
903 fListHist->Add(fHistMCRapInPtRangeLambda);
904
905 fHistMCRapAntiLambda = new TH1F("h1MCRapAntiLambda", "#bar{#Lambda};y",160,-4,4);
906 fListHist->Add(fHistMCRapAntiLambda);
907
908 fHistMCRapInPtRangeAntiLambda = new TH1F("h1MCRapInPtRangeAntiLambda", "#bar{#Lambda};y",160,-4,4);
909 fListHist->Add(fHistMCRapInPtRangeAntiLambda);
910
911 fHistMCRapXi = new TH1F("h1MCRapXi", "Xi;y",160,-4,4);
912 fListHist->Add(fHistMCRapXi);
913
914 fHistMCRapInPtRangeXi = new TH1F("h1MCRapInPtRangeXi", "Xi;y",160,-4,4);
915 fListHist->Add(fHistMCRapInPtRangeXi);
916
917 fHistMCRapPhi = new TH1F("h1MCRapPhi", "Phi;y",160,-4,4);
918 fListHist->Add(fHistMCRapPhi);
919
920 fHistMCRapInPtRangePhi = new TH1F("h1MCRapInPtRangePhi", "Phi;y",160,-4,4);
921 fListHist->Add(fHistMCRapInPtRangePhi);
922*/
923 // Pt distribution:
924 fHistMCPtK0s = new TH1F("h1MCPtK0s", "K^{0};p_{t} (GeV/c)",240,0,12);
925 fListHist->Add(fHistMCPtK0s);
926
927 fHistMCPtLambda = new TH1F("h1MCPtLambda", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
928 fListHist->Add(fHistMCPtLambda);
929
08258f9c 930 fHistMCPtAntiLambda = new TH1F("h1MCPtAntiLambda", "#AntiLambda^{0};p_{t} (GeV/c)",240,0,12);
c36344c8 931 fListHist->Add(fHistMCPtAntiLambda);
932/*
933
934 // Pt distribution Rap3:
935 fHistMCPtK0sRap3 = new TH1F("h1MCPtK0sRap3", "K^{0};p_{t} (GeV/c)",240,0,12);
936 fListHist->Add(fHistMCPtK0sRap3);
937
938 fHistMCPtLambdaRap3 = new TH1F("h1MCPtLambdaRap3", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
939 fListHist->Add(fHistMCPtLambdaRap3);
940
941fHistMCPtAntiLambdaRap3 = new TH1F("h1MCPtAntiLambdaRap3", "#AntiLambda^{0};p_{t} (GeV/c)",240,0,12);
942 fListHist->Add(fHistMCPtAntiLambdaRap3);
943
944
945 // Pt distribution of Lambda coming from Sigma decay
946 fHistMCPtLambdaFromSigma = new TH1F("h1MCPtLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
947 fListHist->Add(fHistMCPtLambdaFromSigma);
948
949 fHistMCPtAntiLambdaFromSigma = new TH1F("h1MCPtAntiLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",240,0,12);
950 fListHist->Add(fHistMCPtAntiLambdaFromSigma);
951
952 // Multiple reconstruction studies
953 fHistNTimesRecK0s = new TH1F("h1NTimesRecK0s","number of times a K0s is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
954 fListHist->Add(fHistNTimesRecK0s);
955
956 fHistNTimesRecLambda = new TH1F("h1NTimesRecLambda","number of times a Lambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
957 fListHist->Add(fHistNTimesRecLambda);
958
959 fHistNTimesRecAntiLambda = new TH1F("h1NTimesRecAntiLambda","number of times an AntiLambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5);
960 fListHist->Add(fHistNTimesRecAntiLambda);
961
962 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);
963 fListHist->Add(fHistNTimesRecK0sVsPt);
964
965 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);
966 fListHist->Add(fHistNTimesRecLambdaVsPt);
967
968 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);
969 fListHist->Add(fHistNTimesRecAntiLambdaVsPt);
970*/
971 //***********************************
972 // Reconstructed particles histograms
973 //***********************************
974
975 // Number of events;
976 fHistNumberEvents = new TH1F("h1NumberEvents", "Number of events; index;Number of Events",10,0,10);
977 fListHist->Add(fHistNumberEvents);
978
979 // multiplicity
980 fHistTrackPerEvent = new TH1F("h1TrackPerEvent", "Tracks per event;Number of Tracks;Number of Events",10000,0,10000);
981 fListHist->Add(fHistTrackPerEvent);
982
983 fHistTPCMult = new TH1F("h1HistTPCMult", "TPC tracks per event;Number of Tracks;Number of Events",10000,0,10000);
984 fListHist->Add(fHistTPCMult);
985/*
986
987 fHistTrackletPerEvent = new TH1F("h1TrackletPerEvent", "Number of tracklets;Number of tracklets per events;Number of events",1000,0,1000);
988 fListHist->Add(fHistTrackletPerEvent);
989
990 fHistMCDaughterTrack = new TH1F("h1MCDaughterTrack","Distribution of mc id for daughters;id tags;Counts",15,0,15);
991 fListHist->Add(fHistMCDaughterTrack);
992
993 fHistTPCTracks = new TH1F("h1TPCTracks","Distribution of TPC tracks;Number of TPC tracks:Number of events",1000,0,10000);
994 fListHist->Add(fHistTPCTracks);
995
996 // Primary Vertex:
997 fHistSPDPrimaryVertexZ = new TH1F("h1SPDPrimaryVertexZ", "SPD Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
998 fListHist->Add(fHistSPDPrimaryVertexZ);
999*/
1000 fHistPrimaryVertexX = new TH1F("h1PrimaryVertexX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
1001 fListHist->Add(fHistPrimaryVertexX);
1002
1003 fHistPrimaryVertexY = new TH1F("h1PrimaryVertexY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
1004 fListHist->Add(fHistPrimaryVertexY);
1005
1006 fHistPrimaryVertexZ = new TH1F("h1PrimaryVertexZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20);
1007 fListHist->Add(fHistPrimaryVertexZ);
1008/*
1009
1010 // Primary vertex resolution
1011 fHistPrimaryVertexResX = new TH1F("h1PrimaryVertexResX", "Primary Vertex Resolution X;Primary Vertex Resolution X (cm);Events",100,-0.25,0.25);
1012 fListHist->Add(fHistPrimaryVertexResX);
1013
1014 fHistPrimaryVertexResY = new TH1F("h1PrimaryVertexResY", "Primary Vertex Resolution Y;Primary Vertex Resolution Y (cm);Events",100,-0.25,0.25);
1015 fListHist->Add(fHistPrimaryVertexResY);
1016
1017 fHistPrimaryVertexResZ = new TH1F("h1PrimaryVertexResZ", "Primary Vertex Resolution Z;Primary Vertex Resolution Z (cm);Events",200,-0.25,0.25);
1018 fListHist->Add(fHistPrimaryVertexResZ);
1019
1020
1021 // Primary Vertex in events with V0 candidates:
1022 fHistPrimaryVertexPosXV0events = new TH1F("h1PrimaryVertexPosXV0events", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5);
1023 fListHist->Add(fHistPrimaryVertexPosXV0events);
1024 fHistPrimaryVertexPosYV0events = new TH1F("h1PrimaryVertexPosYV0events", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5);
1025 fListHist->Add(fHistPrimaryVertexPosYV0events);
1026 fHistPrimaryVertexPosZV0events = new TH1F("h1PrimaryVertexPosZV0events", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20.0,20.0);
1027 fListHist->Add(fHistPrimaryVertexPosZV0events);
1028
1029 // Daughters Pt:
1030 fHistDaughterPt = new TH2F("h2DaughterPt", "Daughter Pt;Positive Daughter Pt; Negative Daughter Pt",200,0,2,200,0,2);
1031 fListHist->Add(fHistDaughterPt);
1032
1033 //////K0s///////////////// 2D histos: cut vs on fly status////
1034
1035 fHistDcaPosToPrimVertexK0 = new TH2F("h2DcaPosToPrimVertexK0", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1036 fListHist->Add(fHistDcaPosToPrimVertexK0);
1037
1038 fHistDcaNegToPrimVertexK0 = new TH2F("h2DcaNegToPrimVertexK0", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1039 fListHist->Add(fHistDcaNegToPrimVertexK0);
1040
1041
1042 fHistRadiusV0K0 = new TH2F("h2RadiusV0K0", "Radius;Radius(cm);Status",500,0,500,2,-0.5,1.5);
1043 fListHist->Add(fHistRadiusV0K0);
1044
1045 fHistDecayLengthV0K0 = new TH2F("h2DecayLengthV0K0", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1046 fListHist->Add(fHistDecayLengthV0K0);
1047
1048 fHistDcaV0DaughtersK0 = new TH2F("h2DcaV0DaughtersK0", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1049 fListHist->Add(fHistDcaV0DaughtersK0);
1050
1051 fHistChi2K0 = new TH2F("h2Chi2K0", "V0s chi2;chi2;Status", 1000, 0, 0.1,2,-0.5,1.5);
1052 fListHist->Add(fHistChi2K0);
1053
1054 fHistCosPointAngleK0 = new TH2F("h2CosPointAngleK0", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1055 fListHist->Add(fHistCosPointAngleK0);
1056
1057
1058 ////////////K0s///////////////// 2D histos: cut vs mass////
1059
1060
1061 fHistDcaPosToPrimVertexK0vsMassK0 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1062 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0);
1063
1064 fHistDcaNegToPrimVertexK0vsMassK0 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1065 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0);
1066
1067
1068 fHistRadiusV0K0vsMassK0 = new TH2F("h2RadiusV0K0vsMassK0", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1069 fListHist->Add(fHistRadiusV0K0vsMassK0);
1070
1071 fHistDecayLengthV0K0vsMassK0 = new TH2F("h2DecayLengthV0K0vsMassK0", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
1072 fListHist->Add(fHistDecayLengthV0K0vsMassK0);
1073
1074 fHistDcaV0DaughtersK0vsMassK0 = new TH2F("h2DcaV0DaughtersK0vsMassK0", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1075 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0);
1076
1077
1078 fHistCosPointAngleK0vsMassK0 = new TH2F("h2CosPointAngleK0vsMassK0", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1079 fListHist->Add(fHistCosPointAngleK0vsMassK0);
1080 if(fQASelector) {
1081 //// pt1
1082 fHistDcaPosToPrimVertexK0vsMassK0pt1 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1083 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt1);
1084
1085 fHistDcaNegToPrimVertexK0vsMassK0pt1 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1086 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt1);
1087
1088 fHistRadiusV0K0vsMassK0pt1 = new TH2F("h2RadiusV0K0vsMassK0pt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1089 fListHist->Add(fHistRadiusV0K0vsMassK0pt1);
1090
1091 fHistDecayLengthV0K0vsMassK0pt1 = new TH2F("h2DecayLengthV0K0vsMassK0pt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,200,0.4,0.6);
1092 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt1);
1093
1094 fHistDcaV0DaughtersK0vsMassK0pt1 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1095 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt1);
1096
1097 fHistCosPointAngleK0vsMassK0pt1 = new TH2F("h2CosPointAngleK0vsMassK0pt1", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1098 fListHist->Add(fHistCosPointAngleK0vsMassK0pt1);
1099
1100 /// pt2
1101 fHistDcaPosToPrimVertexK0vsMassK0pt2 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1102 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt2);
1103
1104 fHistDcaNegToPrimVertexK0vsMassK0pt2 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1105 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt2);
1106
1107 fHistRadiusV0K0vsMassK0pt2 = new TH2F("h2RadiusV0K0vsMassK0pt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1108 fListHist->Add(fHistRadiusV0K0vsMassK0pt2);
1109
1110 fHistDecayLengthV0K0vsMassK0pt2 = new TH2F("h2DecayLengthV0K0vsMassK0pt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
1111 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt2);
1112
1113 fHistDcaV0DaughtersK0vsMassK0pt2 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1114 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt2);
1115
1116 fHistCosPointAngleK0vsMassK0pt2 = new TH2F("h2CosPointAngleK0vsMassK0pt2", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1117 fListHist->Add(fHistCosPointAngleK0vsMassK0pt2);
1118
1119 /// pt3
1120 fHistDcaPosToPrimVertexK0vsMassK0pt3 = new TH2F("h2DcaPosToPrimVertexK0vsMassK0pt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1121 fListHist->Add(fHistDcaPosToPrimVertexK0vsMassK0pt3);
1122
1123 fHistDcaNegToPrimVertexK0vsMassK0pt3 = new TH2F("h2DcaNegToPrimVertexK0vsMassK0pt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,200,0.4,0.6);
1124 fListHist->Add(fHistDcaNegToPrimVertexK0vsMassK0pt3);
1125
1126 fHistRadiusV0K0vsMassK0pt3 = new TH2F("h2RadiusV0K0vsMassK0pt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,200,0.4,0.6);
1127 fListHist->Add(fHistRadiusV0K0vsMassK0pt3);
1128
1129 fHistDecayLengthV0K0vsMassK0pt3 = new TH2F("h2DecayLengthV0K0vsMassK0pt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,200,0.4,0.6);
1130 fListHist->Add(fHistDecayLengthV0K0vsMassK0pt3);
1131
1132 fHistDcaV0DaughtersK0vsMassK0pt3 = new TH2F("h2DcaV0DaughtersK0vsMassK0pt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,200,0.4,0.6);
1133 fListHist->Add(fHistDcaV0DaughtersK0vsMassK0pt3);
1134
1135 fHistCosPointAngleK0vsMassK0pt3 = new TH2F("h2CosPointAngleK0vsMassK0pt3", "Cosine of V0's pointing angle", 200,0.997,1.007,200,0.4,0.6);
1136 fListHist->Add(fHistCosPointAngleK0vsMassK0pt3);
1137 } //end QA condition
1138 //////////Lambda////////////// 2D histos: cut vs on fly status////
1139
1140 fHistDcaPosToPrimVertexL = new TH2F("h2DcaPosToPrimVertexL", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1141 fListHist->Add(fHistDcaPosToPrimVertexL);
1142
1143 fHistDcaNegToPrimVertexL = new TH2F("h2DcaNegToPrimVertexL", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1144 fListHist->Add(fHistDcaNegToPrimVertexL);
1145
1146 fHistRadiusV0L = new TH2F("h2RadiusV0L", "Radius;Radius(cm);Status",100,0,110,2,-0.5,1.5);
1147 fListHist->Add(fHistRadiusV0L);
1148
1149 fHistDecayLengthV0L = new TH2F("h2DecayLengthV0L", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1150 fListHist->Add(fHistDecayLengthV0L);
1151
1152 fHistDcaV0DaughtersL = new TH2F("h2DcaV0DaughtersL", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1153 fListHist->Add(fHistDcaV0DaughtersL);
1154
1155 fHistChi2L = new TH2F("h2Chi2L", "V0s chi2;chi2;Status", 100, 0, 0.10,2,-0.5,1.5);
1156 fListHist->Add(fHistChi2L);
1157
1158 fHistCosPointAngleL = new TH2F("h2CosPointAngleL", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1159 fListHist->Add(fHistCosPointAngleL);
1160
1161 fHistcTauL = new TH1F("h1cTauL","cTaou of Lambdas",100,0,100);
1162 fListHist->Add(fHistcTauL);
1163 //////////Lambda////////////// 2D histos: cut vs mass////
1164 fHistDcaPosToPrimVertexLvsMassL = new TH2F("h2DcaPosToPrimVertexLvsMassL", "Positive V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1165 fListHist->Add(fHistDcaPosToPrimVertexLvsMassL);
1166
1167 fHistDcaNegToPrimVertexLvsMassL = new TH2F("h2DcaNegToPrimVertexLvsMassL", "Negative V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1168 fListHist->Add(fHistDcaNegToPrimVertexLvsMassL);
1169
1170
1171 fHistRadiusV0LvsMassL = new TH2F("h2RadiusV0LvsMassL", "Radius;Radius(cm);Status",110,0,110,140, 1.06, 1.2);
1172 fListHist->Add(fHistRadiusV0LvsMassL);
1173
1174 fHistDecayLengthV0LvsMassL = new TH2F("h2DecayLengthV0LvsMassL", "V0s decay Length;decay length(cm);Status", 120, 0, 120,140, 1.06, 1.2);
1175 fListHist->Add(fHistDecayLengthV0LvsMassL);
1176
1177 fHistDcaV0DaughtersLvsMassL = new TH2F("h2DcaV0DaughtersLvsMassL", "DCA between daughters;dca(cm);Status", 110, 0, 1.1,140, 1.06, 1.2);
1178 fListHist->Add(fHistDcaV0DaughtersLvsMassL);
1179
1180 fHistCosPointAngleLvsMassL = new TH2F("h2CosPointAngleLvsMassL", "Cosine of V0's pointing angle", 200,0.997,1.007,140, 1.06, 1.2);
1181 fListHist->Add(fHistCosPointAngleLvsMassL);
1182
1183 fHistCosPointAngleLvsMassVsPtsigL = new TH3F("h3McCosPointAngleLvsMassVsPtsigL", "Cosine of V0's pointing angle",3,0,12, 2,00.997,1.007,140, 1.06, 1.2);
1184 fListHist->Add(fHistCosPointAngleLvsMassVsPtsigL);
1185 fHistCosPointAngleLvsMassVsPtbackL = new TH3F("h3McCosPointAngleLvsMassVsPtbackL", "Cosine of V0's pointing angle",3,0,12, 20,0.997,1.007,140, 1.06, 1.2);
1186 fListHist->Add(fHistCosPointAngleLvsMassVsPtbackL);
1187
1188
1189 if(fQASelector){
1190 //// pt1
1191 fHistDcaPosToPrimVertexLambdaVsMasspt1 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1192 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt1);
1193
1194 fHistDcaNegToPrimVertexLambdaVsMasspt1 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1195 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt1);
1196
1197 fHistRadiusV0LambdaVsMasspt1 = new TH2F("h2RadiusV0LambdaVsMasspt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1198 fListHist->Add(fHistRadiusV0LambdaVsMasspt1);
1199
1200 fHistDecayLengthV0LambdaVsMasspt1 = new TH2F("h2DecayLengthV0LambdaVsMasspt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,140,1.06,1.2);
1201 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt1);
1202
1203 fHistDcaV0DaughtersLambdaVsMasspt1 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1204 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt1);
1205
1206 fHistCosPointAngleLambdaVsMasspt1 = new TH2F("h2CosPointAngleLambdaVsMasspt1", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1207 fListHist->Add(fHistCosPointAngleLambdaVsMasspt1);
1208
1209 /// pt2
1210 fHistDcaPosToPrimVertexLambdaVsMasspt2 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1211 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt2);
1212
1213 fHistDcaNegToPrimVertexLambdaVsMasspt2 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1214 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt2);
1215
1216 fHistRadiusV0LambdaVsMasspt2 = new TH2F("h2RadiusV0LambdaVsMasspt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1217 fListHist->Add(fHistRadiusV0LambdaVsMasspt2);
1218
1219 fHistDecayLengthV0LambdaVsMasspt2 = new TH2F("h2DecayLengthV0LambdaVsMasspt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1220 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt2);
1221
1222 fHistDcaV0DaughtersLambdaVsMasspt2 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1223 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt2);
1224
1225 fHistCosPointAngleLambdaVsMasspt2 = new TH2F("h2CosPointAngleLambdaVsMasspt2", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1226 fListHist->Add(fHistCosPointAngleLambdaVsMasspt2);
1227
1228 /// pt3
1229 fHistDcaPosToPrimVertexLambdaVsMasspt3 = new TH2F("h2DcaPosToPrimVertexLambdaVsMasspt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1230 fListHist->Add(fHistDcaPosToPrimVertexLambdaVsMasspt3);
1231
1232 fHistDcaNegToPrimVertexLambdaVsMasspt3 = new TH2F("h2DcaNegToPrimVertexLambdaVsMasspt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1233 fListHist->Add(fHistDcaNegToPrimVertexLambdaVsMasspt3);
1234
1235 fHistRadiusV0LambdaVsMasspt3 = new TH2F("h2RadiusV0LambdaVsMasspt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1236 fListHist->Add(fHistRadiusV0LambdaVsMasspt3);
1237
1238 fHistDecayLengthV0LambdaVsMasspt3 = new TH2F("h2DecayLengthV0LambdaVsMasspt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1239 fListHist->Add(fHistDecayLengthV0LambdaVsMasspt3);
1240
1241 fHistDcaV0DaughtersLambdaVsMasspt3 = new TH2F("h2DcaV0DaughtersLambdaVsMasspt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1242 fListHist->Add(fHistDcaV0DaughtersLambdaVsMasspt3);
1243
1244 fHistCosPointAngleLambdaVsMasspt3 = new TH2F("h2CosPointAngleLambdaVsMasspt3", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1245 fListHist->Add(fHistCosPointAngleLambdaVsMasspt3);
1246 } // end QA condition
1247 //////////AntiLambda////////////// 2D histos: cut vs on fly status////
1248
1249 fHistDcaPosToPrimVertexAntiL = new TH2F("h2DcaPosToPrimVertexAntiL", "Positive V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1250 fListHist->Add(fHistDcaPosToPrimVertexAntiL);
1251
1252 fHistDcaNegToPrimVertexAntiL = new TH2F("h2DcaNegToPrimVertexAntiL", "Negative V0 daughter;dca(cm);Status",100,0,10,2,-0.5,1.5);
1253 fListHist->Add(fHistDcaNegToPrimVertexAntiL);
1254
1255
1256 fHistRadiusV0AntiL = new TH2F("h2RadiusV0AntiL", "Radius;Radius(cm);Status",100,0,110,2,-0.5,1.5);
1257 fListHist->Add(fHistRadiusV0AntiL);
1258
1259 fHistDecayLengthV0AntiL = new TH2F("h2DecayLengthV0AntiL", "V0s decay Length;decay length(cm);Status", 500, 0, 500,2,-0.5,1.5);
1260 fListHist->Add(fHistDecayLengthV0AntiL);
1261
1262 fHistDcaV0DaughtersAntiL = new TH2F("h2DcaV0DaughtersAntiL", "DCA between daughters;dca(cm);Status", 300, 0, 3.0,2,-0.5,1.5);
1263 fListHist->Add(fHistDcaV0DaughtersAntiL);
1264
1265 fHistChi2AntiL = new TH2F("h2Chi2AntiL", "V0s chi2;chi2;Status", 100, 0, 0.10,2,-0.5,1.5);
1266 fListHist->Add(fHistChi2AntiL);
1267
1268 fHistCosPointAngleAntiL = new TH2F("h2CosPointAngleAntiL", "Cosine of V0's pointing angle", 200,0.99,1.01,2,-0.5,1.5);
1269 fListHist->Add(fHistCosPointAngleAntiL);
1270
1271 //////////AntiLambda////////////// 2D histos: cut vs mass////
1272
1273 fHistDcaPosToPrimVertexAntiLvsMass = new TH2F("h2DcaPosToPrimVertexAntiLvsMass", "Positive V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1274 fListHist->Add(fHistDcaPosToPrimVertexAntiLvsMass);
1275
1276 fHistDcaNegToPrimVertexAntiLvsMass = new TH2F("h2DcaNegToPrimVertexAntiLvsMass", "Negative V0 daughter;dca(cm);Status",100,0,10,140, 1.06, 1.2);
1277 fListHist->Add(fHistDcaNegToPrimVertexAntiLvsMass);
1278
1279
1280 fHistRadiusV0AntiLvsMass = new TH2F("h2RadiusV0AntiLvsMass", "Radius;Radius(cm);Status",110,0,110,140, 1.06, 1.2);
1281 fListHist->Add(fHistRadiusV0AntiLvsMass);
1282
1283 fHistDecayLengthV0AntiLvsMass = new TH2F("h2DecayLengthV0AntiLvsMass", "V0s decay Length;decay length(cm);Status", 120, 0, 120,140, 1.06, 1.2);
1284 fListHist->Add(fHistDecayLengthV0AntiLvsMass);
1285
1286 fHistDcaV0DaughtersAntiLvsMass = new TH2F("h2DcaV0DaughtersAntiLvsMass", "DCA between daughters;dca(cm);Status", 110, 0, 1.1,140, 1.06, 1.2);
1287 fListHist->Add(fHistDcaV0DaughtersAntiLvsMass);
1288
1289 fHistCosPointAngleAntiLvsMass = new TH2F("h2CosPointAngleAntiLvsMass", "Cosine of V0's pointing angle", 200,0.997,1.007,140, 1.06, 1.2);
1290 fListHist->Add(fHistCosPointAngleAntiLvsMass);
1291 if(fQASelector){
1292 //// pt1
1293 fHistDcaPosToPrimVertexAntiLVsMasspt1 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt1", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1294 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt1);
1295
1296 fHistDcaNegToPrimVertexAntiLVsMasspt1 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt1", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1297 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt1);
1298
1299 fHistRadiusV0AntiLVsMasspt1 = new TH2F("h2RadiusV0AntiLVsMasspt1", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1300 fListHist->Add(fHistRadiusV0AntiLVsMasspt1);
1301
1302 fHistDecayLengthV0AntiLVsMasspt1 = new TH2F("h2DecayLengthV0AntiLVsMasspt1", "V0s decay Length;decay length(cm);K0s inv. mass",100,0,100,140,1.06,1.2);
1303 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt1);
1304
1305 fHistDcaV0DaughtersAntiLVsMasspt1 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt1", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1306 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt1);
1307
1308 fHistCosPointAngleAntiLVsMasspt1 = new TH2F("h2CosPointAngleAntiLVsMasspt1", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1309 fListHist->Add(fHistCosPointAngleAntiLVsMasspt1);
1310
1311 /// pt2
1312 fHistDcaPosToPrimVertexAntiLVsMasspt2 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt2", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1313 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt2);
1314
1315 fHistDcaNegToPrimVertexAntiLVsMasspt2 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt2", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1316 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt2);
1317
1318 fHistRadiusV0AntiLVsMasspt2 = new TH2F("h2RadiusV0AntiLVsMasspt2", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1319 fListHist->Add(fHistRadiusV0AntiLVsMasspt2);
1320
1321 fHistDecayLengthV0AntiLVsMasspt2 = new TH2F("h2DecayLengthV0AntiLVsMasspt2", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1322 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt2);
1323
1324 fHistDcaV0DaughtersAntiLVsMasspt2 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt2", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1325 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt2);
1326
1327 fHistCosPointAngleAntiLVsMasspt2 = new TH2F("h2CosPointAngleAntiLVsMasspt2", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1328 fListHist->Add(fHistCosPointAngleAntiLVsMasspt2);
1329
1330 /// pt3
1331 fHistDcaPosToPrimVertexAntiLVsMasspt3 = new TH2F("h2DcaPosToPrimVertexAntiLVsMasspt3", "Positive V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1332 fListHist->Add(fHistDcaPosToPrimVertexAntiLVsMasspt3);
1333
1334 fHistDcaNegToPrimVertexAntiLVsMasspt3 = new TH2F("h2DcaNegToPrimVertexAntiLVsMasspt3", "Negative V0 daughter;dca(cm);K0s inv. mass",500,0,10,140,1.06,1.2);
1335 fListHist->Add(fHistDcaNegToPrimVertexAntiLVsMasspt3);
1336
1337 fHistRadiusV0AntiLVsMasspt3 = new TH2F("h2RadiusV0AntiLVsMasspt3", "Radius;Radius(cm);K0s inv. mass",110,0,110,140,1.06,1.2);
1338 fListHist->Add(fHistRadiusV0AntiLVsMasspt3);
1339
1340 fHistDecayLengthV0AntiLVsMasspt3 = new TH2F("h2DecayLengthV0AntiLVsMasspt3", "V0s decay Length;decay length(cm);K0s inv. mass", 100, 0, 100,140,1.06,1.2);
1341 fListHist->Add(fHistDecayLengthV0AntiLVsMasspt3);
1342
1343 fHistDcaV0DaughtersAntiLVsMasspt3 = new TH2F("h2DcaV0DaughtersAntiLVsMasspt3", "DCA between daughters;dca(cm);K0s inv. mass", 110, 0, 1.1,140,1.06,1.2);
1344 fListHist->Add(fHistDcaV0DaughtersAntiLVsMasspt3);
1345
1346 fHistCosPointAngleAntiLVsMasspt3 = new TH2F("h2CosPointAngleAntiLVsMasspt3", "Cosine of V0's pointing angle", 200,0.997,1.007,140,1.06,1.2);
1347 fListHist->Add(fHistCosPointAngleAntiLVsMasspt3);
1348 } //end QA condition for AntiLambda
1349*/
1350 // V0 Multiplicity
1351 if (!fHistV0Multiplicity) {
1352 if (fCollidingSystems)
1353 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 200, 0, 40000);
1354 else
1355 fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 10, 0, 10);
1356 fListHist->Add(fHistV0Multiplicity);
1357 }
1358
1359
1360 // Mass:
1361 fHistMassK0 = new TH1F("h1MassK0", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 200, 0.4, 0.6);
1362 fListHist->Add(fHistMassK0);
1363
1364 fHistMassLambda = new TH1F("h1MassLambda", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 150, 1.05, 1.2);
1365 fListHist->Add(fHistMassLambda);
1366
1367 fHistMassAntiLambda = new TH1F("h1MassAntiLambda", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 150, 1.05, 1.2);
1368 fListHist->Add(fHistMassAntiLambda);
1369
1370 /* // invariant mass vs radius
1371 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};
1372 Int_t lNbinRadius = 9;
1373 Int_t lNbinInvMassLambda = 300;
1374 */
1375 fHistMassVsRadiusK0 = new TH2F("h2MassVsRadiusK0", "K^{0} candidates;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",200,0,200, 200, 0.4, 0.6);
1376 fListHist->Add(fHistMassVsRadiusK0);
1377
1378 //fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
1379 fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",200,0,200, 140, 1.06, 1.2);
1380 fListHist->Add(fHistMassVsRadiusLambda);
1381
1382
1383 //fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2);
1384 fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",200,0,200, 140, 1.06, 1.2);
1385 fListHist->Add(fHistMassVsRadiusAntiLambda);
1386
1387
1388 // Pt Vs Mass
08258f9c 1389 fHistPtVsMassK0 = new TH2F("h2PtVsMassK0","K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",1200, 0.2, 0.8,240,0,12);
c36344c8 1390 fListHist->Add(fHistPtVsMassK0);
1391
08258f9c 1392 fHistPtVsMassLambda = new TH2F("h2PtVsMassLambda","#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",840, 0.92, 1.34,240,0,12);
c36344c8 1393 fListHist->Add(fHistPtVsMassLambda);
1394
08258f9c 1395 fHistPtVsMassAntiLambda = new TH2F("h2PtVsMassAntiLambda","#AntiLambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",840, 0.92, 1.34,240,0,12);
c36344c8 1396 fListHist->Add(fHistPtVsMassAntiLambda);
1397 /*
1398
1399 // Pt Vs Mass Rap3
1400 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);
1401 fListHist->Add(fHistPtVsMassK0Rap3);
1402
1403 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);
1404 fListHist->Add(fHistPtVsMassLambdaRap3);
1405
1406 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);
1407 fListHist->Add(fHistPtVsMassAntiLambdaRap3);
1408
1409
1410 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1411*/
1412 ///Armenteros Podolansky
1413 fHistArmenterosPodolanski = new TH2F("h2ArmenterosPodolanski","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5);
1414 fListHist->Add(fHistArmenterosPodolanski);
1415/*
1416 ///Inv. Mass K0s vs Inv. Mass. Lambda
1417 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);
1418 fListHist->Add(fHistK0sMassVsLambdaMass);
1419
1420 //dE/dx vs P daughters
1421 fHistTPCsigPLambda = new TH2F("h2TPCsignalVsPLambda","TPC signal Vs p_{t} daughters; p (GeV/c);TPC signal",1000,0,2,1000,0,1000);
1422 fListHist->Add(fHistTPCsigPLambda);
1423
1424
1425 fHistTPCsigPAntiLambda = new TH2F("h2TPCsignalVsPAntiLambda","TPC signal Vs p_{t} daughters; p (GeV/c);TPC signal",1000,0,2,1000,0,1000);
1426 fListHist->Add(fHistTPCsigPAntiLambda);
1427
1428
1429 fHistNSigmaProton =new TH1F("h1NSigmaProton","Number of sigmas for proton;;Count",600,0,6);
1430 fListHist->Add(fHistNSigmaProton);
1431
1432
1433 //PID
1434 fHistNsigmaPosPionAntiLambda = new TH1F("h1NsigmaPosPionAntiLambda", "Positive daughter of Antilambda;NsigmaPion;Counts",25,0,5);
1435 fListHist->Add(fHistNsigmaPosPionAntiLambda);
1436
1437 fHistNsigmaNegProtonAntiLambda = new TH1F("h1NsigmaNegProtonAntiLambda", "Negative daughter of Antilambda;NsigmaProton;Counts",25,0,5);
1438 fListHist->Add(fHistNsigmaNegProtonAntiLambda);
1439
1440 fHistNsigmaPosProtonLambda = new TH1F("h1NsigmaPosProtonLambda", "Positive daughter of Lambda;NsigmaProton;Counts",25,0,5);
1441 fListHist->Add(fHistNsigmaPosProtonLambda);
1442
1443 fHistNsigmaNegPionLambda = new TH1F("h1NsigmaNegPionLambda", "Negative daughter of Lambda;NsigmaPion;Counts",25,0,5);
1444 fListHist->Add(fHistNsigmaNegPionLambda);
1445
1446 fHistNsigmaPosProtonAntiLambda = new TH1F("h1NsigmaPosProtonAntiLambda", "Positive daughter of AntiLambda;NsigmaProton;Counts",25,0,5);
1447 fListHist->Add(fHistNsigmaPosProtonAntiLambda);
1448
1449 fHistNsigmaNegPionAntiLambda = new TH1F("h1NsigmaNegPionAntiLambda", "Negative daughter of AntiLambda;NsigmaPion;Counts",25,0,5);
1450 fListHist->Add(fHistNsigmaNegPionAntiLambda);
1451
1452 fHistNsigmaPosPionK0 = new TH1F("h1NsigmaPosPionK0", "Positive daughter of K0s;NsigmaPion;Counts",25,0,5);
1453 fListHist->Add(fHistNsigmaPosPionK0);
1454
1455 fHistNsigmaNegPionK0 = new TH1F("h1NsigmaNegPionK0", "Negative daughter of K0s;NsigmaPion;Counts",25,0,5);
1456 fListHist->Add(fHistNsigmaNegPionK0);
1457
1458*/
1459 //********************************
1460 // Associated particles histograms
1461 //********************************
1462/*
1463 // Rap distribution
1464 fHistAsMcRapK0 = new TH1F("h1AsMcRapK0", "K^{0} associated;eta;Counts", 60, -1.5, 1.5);
1465 fListHist->Add(fHistAsMcRapK0);
1466
1467 fHistAsMcRapLambda = new TH1F("h1AsMcRapLambda", "#Lambda^{0} associated;eta;Counts", 60, -1.5, 1.5);
1468 fListHist->Add(fHistAsMcRapLambda);
1469
1470 fHistAsMcRapAntiLambda = new TH1F("h1AsMcRapAntiLambda", "#bar{#Lambda}^{0} associated;eta;Counts", 60, -1.5, 1.5);
1471 fListHist->Add(fHistAsMcRapAntiLambda);
1472
1473 //Pt distribution
1474 fHistAsMcPtK0 = new TH1F("h1AsMcPtK0", "K^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1475 fListHist->Add(fHistAsMcPtK0);
1476
1477 fHistAsMcPtLambda = new TH1F("h1AsMcPtLambda", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1478 fListHist->Add(fHistAsMcPtLambda);
1479
1480 fHistAsMcPtAntiLambda = new TH1F("h1AsMcPtAntiLambda", "#AntiLambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1481 fListHist->Add(fHistAsMcPtAntiLambda);
1482
1483
1484 fHistAsMcPtZoomK0 = new TH1F("h1AsMcPtZoomK0", "K^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1485 fListHist->Add(fHistAsMcPtZoomK0);
1486
1487 fHistAsMcPtZoomLambda = new TH1F("h1AsMcPtZoomLambda", "#Lambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1488 fListHist->Add(fHistAsMcPtZoomLambda);
1489
1490 fHistAsMcPtZoomAntiLambda = new TH1F("h1AsMcPtZoomAntiLambda", "#AntiLambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1);
1491 fListHist->Add(fHistAsMcPtZoomAntiLambda);
1492
1493 //Pt distribution Rap3
1494 fHistAsMcPtK0Rap3 = new TH1F("h1AsMcPtK0Rap3", "K^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1495 fListHist->Add(fHistAsMcPtK0Rap3);
1496
1497 fHistAsMcPtLambdaRap3 = new TH1F("h1AsMcPtLambdaRap3", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1498 fListHist->Add(fHistAsMcPtLambdaRap3);
1499
1500 fHistAsMcPtAntiLambdaRap3 = new TH1F("h1AsMcPtAntiLambdaRap3", "#AntiLambda^{0} associated;p_{t} (GeV/c);Counts", 240,0,12);
1501 fListHist->Add(fHistAsMcPtAntiLambdaRap3);
1502
1503
1504 // Radius distribution
1505 fHistAsMcProdRadiusK0 = new TH1F("h1AsMcProdRadiusK0", "K^{0} associated;r (cm);Counts", 500, 0, 100);
1506 fListHist->Add(fHistAsMcProdRadiusK0);
1507
1508 fHistAsMcProdRadiusLambda = new TH1F("h1AsMcProdRadiusLambda", "#Lambda^{0} associated;r (cm);Counts", 500, 0, 100);
1509 fListHist->Add(fHistAsMcProdRadiusLambda);
1510
1511 fHistAsMcProdRadiusAntiLambda = new TH1F("h1AsMcProdRadiusAntiLambda", "#bar{#Lambda}^{0} associated;r (cm);Counts", 500, 0, 100);
1512 fListHist->Add(fHistAsMcProdRadiusAntiLambda);
1513
1514 fHistAsMcProdRadiusXvsYK0s = new TH2F("h2AsMcProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1515 fListHist->Add(fHistAsMcProdRadiusXvsYK0s);
1516
1517 fHistAsMcProdRadiusXvsYLambda = new TH2F("h2AsMcProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1518 fListHist->Add(fHistAsMcProdRadiusXvsYLambda);
1519
1520 fHistAsMcProdRadiusXvsYAntiLambda = new TH2F("h2AsMcProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50);
1521 fListHist->Add(fHistAsMcProdRadiusXvsYAntiLambda);
1522
1523 // Mass
1524 fHistPidMcMassK0 = new TH1F("h1PidMcMassK0", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1525 fListHist->Add(fHistPidMcMassK0);
1526
1527 fHistPidMcMassLambda = new TH1F("h1PidMcMassLambda", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1528 fListHist->Add(fHistPidMcMassLambda);
1529
1530 fHistPidMcMassAntiLambda = new TH1F("h1PidMcMassAntiLambda", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1531 fListHist->Add(fHistPidMcMassAntiLambda);
1532 */
1533 fHistAsMcMassK0 = new TH1F("h1AsMcMassK0", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1534 fListHist->Add(fHistAsMcMassK0);
1535
1536 fHistAsMcMassLambda = new TH1F("h1AsMcMassLambda", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1537 fListHist->Add(fHistAsMcMassLambda);
1538
1539 fHistAsMcMassAntiLambda = new TH1F("h1AsMcMassAntiLambda", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1540 fListHist->Add(fHistAsMcMassAntiLambda);
1541
1542/*
1543 //Mass Rap3
1544 fHistAsMcMassK0Rap3 = new TH1F("h1AsMcMassK0Rap3", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6);
1545 fListHist->Add(fHistAsMcMassK0Rap3);
1546
1547 fHistAsMcMassLambdaRap3 = new TH1F("h1AsMcMassLambdaRap3", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1548 fListHist->Add(fHistAsMcMassLambdaRap3);
1549
1550 fHistAsMcMassAntiLambdaRap3 = new TH1F("h1AsMcMassAntiLambdaRap3", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2);
1551 fListHist->Add(fHistAsMcMassAntiLambdaRap3);
1552
1553*/
1554
1555 //Pt versus Mass
08258f9c 1556 fHistAsMcPtVsMassK0 = new TH2F("h2AsMcPtVsMassK0","K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",600, 0.2, 0.8,240,0,12);
c36344c8 1557 fListHist->Add(fHistAsMcPtVsMassK0);
1558
08258f9c 1559 fHistAsMcPtVsMassLambda = new TH2F("h2AsMcPtVsMassLambda","#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",420, 0.92, 1.34,240,0,12);
c36344c8 1560 fListHist->Add(fHistAsMcPtVsMassLambda);
1561
08258f9c 1562 fHistAsMcPtVsMassAntiLambda = new TH2F("h2AsMcPtVsMassAntiLambda","#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",420, 0.92, 1.34,240,0,12);
c36344c8 1563 fListHist->Add(fHistAsMcPtVsMassAntiLambda);
1564/*
1565
1566 //Pt versus Mass Rap3
1567 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);
1568 fListHist->Add(fHistAsMcPtVsMassK0Rap3);
1569
1570 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);
1571 fListHist->Add(fHistAsMcPtVsMassLambdaRap3);
1572
1573 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);
1574 fListHist->Add(fHistAsMcPtVsMassAntiLambdaRap3);
1575
1576
1577
1578
1579
1580 // invariant mass vs radius
1581 //fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 500, 0.47, 0.52);
1582 fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",200,0,200, 500, 0.47, 0.52);
1583 fListHist->Add(fHistAsMcMassVsRadiusK0);
1584
1585 //fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, lNbinInvMassLambda, 1.10, 1.13);
1586 fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",200,0,200, 1.10, 1.13);
1587 fListHist->Add(fHistAsMcMassVsRadiusLambda);
1588
1589 //fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius,lNbinInvMassLambda , 1.10, 1.13);
1590 fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",200,0,200 , 1.10, 1.13);
1591 fListHist->Add(fHistAsMcMassVsRadiusAntiLambda);
1592
1593 // Position Resolution
1594 fHistAsMcResxK0 = new TH1F("h1AsMcResxK0", "K^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1595 fListHist->Add(fHistAsMcResxK0);
1596 fHistAsMcResyK0 = new TH1F("h1AsMcResyK0", "K^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1597 fListHist->Add(fHistAsMcResyK0);
1598 fHistAsMcReszK0 = new TH1F("h1AsMcReszK0", "K^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1599 fListHist->Add(fHistAsMcReszK0);
1600 fHistAsMcResrVsRadiusK0 = new TH2F("h2AsMcResrVsRadiusK0", "K^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50., 50, -0.25, 0.25);
1601 fListHist->Add(fHistAsMcResrVsRadiusK0);
1602 fHistAsMcReszVsRadiusK0 = new TH2F("h2AsMcReszVsRadiusK0", "K^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1603 fListHist->Add(fHistAsMcReszVsRadiusK0);
1604
1605 fHistAsMcResxLambda = new TH1F("h1AsMcResxLambda", "#Lambda^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1606 fListHist->Add(fHistAsMcResxLambda);
1607 fHistAsMcResyLambda = new TH1F("h1AsMcResyLambda", "#Lambda^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1608 fListHist->Add(fHistAsMcResyLambda);
1609 fHistAsMcReszLambda = new TH1F("h1AsMcReszLambda", "#Lambda^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1610 fListHist->Add(fHistAsMcReszLambda);
1611 fHistAsMcResrVsRadiusLambda = new TH2F("h2AsMcResrVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1612 fListHist->Add(fHistAsMcResrVsRadiusLambda);
1613 fHistAsMcReszVsRadiusLambda = new TH2F("h2AsMcReszVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1614 fListHist->Add(fHistAsMcReszVsRadiusLambda);
1615
1616 fHistAsMcResxAntiLambda = new TH1F("h1AsMcResxAntiLambda", "#bar{#Lambda}^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25);
1617 fListHist->Add(fHistAsMcResxAntiLambda);
1618 fHistAsMcResyAntiLambda = new TH1F("h1AsMcResyAntiLambda", "#bar{#Lambda}^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25);
1619 fListHist->Add(fHistAsMcResyAntiLambda);
1620 fHistAsMcReszAntiLambda = new TH1F("h1AsMcReszAntiLambda", "#bar{#Lambda}^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25);
1621 fListHist->Add(fHistAsMcReszAntiLambda);
1622 fHistAsMcResrVsRadiusAntiLambda = new TH2F("h2AsMcResrVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1623 fListHist->Add(fHistAsMcResrVsRadiusAntiLambda);
1624 fHistAsMcReszVsRadiusAntiLambda = new TH2F("h2AsMcReszVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25);
1625 fListHist->Add(fHistAsMcReszVsRadiusAntiLambda);
1626
1627 // Pt Resolution
1628 fHistAsMcResPtK0 = new TH1F("h1AsMcResPtK0","Pt Resolution K^{0};#Delta Pt;Counts",200,-1,1);
1629 fListHist->Add(fHistAsMcResPtK0);
1630
1631 fHistAsMcResPtLambda = new TH1F("h1AsMcResPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Counts",200,-1,1);
1632 fListHist->Add(fHistAsMcResPtLambda);
1633
1634 fHistAsMcResPtAntiLambda = new TH1F("h1AsMcResPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Counts",200,-1,1);
1635 fListHist->Add(fHistAsMcResPtAntiLambda);
1636
1637
1638 fHistAsMcResPtVsRapK0 = new TH2F("h2AsMcResPtVsRapK0","Pt Resolution K^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1639 fListHist->Add(fHistAsMcResPtVsRapK0);
1640
1641 fHistAsMcResPtVsRapLambda = new TH2F("h2AsMcResPtVsRapLambda","Pt Resolution #Lambda^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1642 fListHist->Add(fHistAsMcResPtVsRapLambda);
1643
1644 fHistAsMcResPtVsRapAntiLambda = new TH2F("h2AsMcResPtVsRapAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Rap",200,-1,1,20,-1,1);
1645 fListHist->Add(fHistAsMcResPtVsRapAntiLambda);
1646
1647 fHistAsMcResPtVsPtK0 = new TH2F("h2AsMcResPtVsPtK0","Pt Resolution K^{0};#Delta Pt;Pt",600,-0.15,0.15,240,0,12);
1648 fListHist->Add(fHistAsMcResPtVsPtK0);
1649
1650 fHistAsMcResPtVsPtLambda = new TH2F("h2AsMcResPtVsPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Pt",600,-0.15,0.15,240,0,12);
1651 fListHist->Add(fHistAsMcResPtVsPtLambda);
1652
1653 fHistAsMcResPtVsPtAntiLambda = new TH2F("h2AsMcResPtVsPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Pt",300,-0.15,0.15,240,0,12);
1654 fListHist->Add(fHistAsMcResPtVsPtAntiLambda);
1655
1656 // pdgcode of mother
1657 fHistAsMcMotherPdgCodeK0s = new TH1F("h1AsMcMotherPdgCodeK0s","Mother of Associated K^{0};mother;counts",11,0,11);
1658 fListHist->Add(fHistAsMcMotherPdgCodeK0s);
1659
1660 fHistAsMcMotherPdgCodeLambda = new TH1F("h1AsMcMotherPdgCodeLambda","Mother of Associated #Lambda^{0};mother;counts",11,0,11);
1661 fListHist->Add(fHistAsMcMotherPdgCodeLambda);
1662
1663 fHistAsMcMotherPdgCodeAntiLambda = new TH1F("h1AsMcMotherPdgCodeAntiLambda","Mother of Associated #bar{#Lambda}^{0};mother;counts",11,0,11);
1664 fListHist->Add(fHistAsMcMotherPdgCodeAntiLambda);
1665
1666 // Pt distribution Lambda from Sigma
1667 fHistAsMcPtLambdaFromSigma = new TH1F("h1AsMcPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1668 fListHist->Add(fHistAsMcPtLambdaFromSigma);
1669
1670 fHistAsMcPtAntiLambdaFromSigma = new TH1F("h1AsMcPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1671 fListHist->Add(fHistAsMcPtAntiLambdaFromSigma);
1672*/
1673 // Associated secondary particles:
1674 // Pt and rapidity distribution
1675 fHistAsMcSecondaryPtVsRapK0s = new TH2F("h2AsMcSecondaryPtVsRapK0s", "K^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1676 fListHist->Add(fHistAsMcSecondaryPtVsRapK0s);
1677
1678 fHistAsMcSecondaryPtVsRapLambda = new TH2F("h2AsMcSecondaryPtVsRapLambda", "#Lambda^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1679 fListHist->Add(fHistAsMcSecondaryPtVsRapLambda);
1680
1681 fHistAsMcSecondaryPtVsRapAntiLambda = new TH2F("h2AsMcSecondaryPtVsRapAntiLambda", "#bar{#Lambda}^{0} associated secondary;p_{t} (GeV/c);rapidity",240,0,12,30,-1.5,1.5);
1682 fListHist->Add(fHistAsMcSecondaryPtVsRapAntiLambda);
1683
1684 // Pt and mass distribution
08258f9c 1685 fHistAsMcSecondaryPtVsMassK0s = new TH2F("h2AsMcSecondaryPtVsMassK0s", "K^{0} associated secondary;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",600, 0.2, 0.8,240,0,12);
c36344c8 1686 fListHist->Add(fHistAsMcSecondaryPtVsMassK0s);
1687
08258f9c 1688 fHistAsMcSecondaryPtVsMassLambda = new TH2F("h2AsMcSecondaryPtVsMassLambda", "#Lambda^{0} associated secondary;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",420, 0.92, 1.34,240,0,12);
c36344c8 1689 fListHist->Add(fHistAsMcSecondaryPtVsMassLambda);
1690
08258f9c 1691 fHistAsMcSecondaryPtVsMassAntiLambda = new TH2F("h2AsMcSecondaryPtVsMassAntiLambda", "#bar{#Lambda}^{0} associated secondary;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",420, 0.92, 1.34,240,0,12);
c36344c8 1692 fListHist->Add(fHistAsMcSecondaryPtVsMassAntiLambda);
1693 /*
1694
1695 // Production radius
1696 fHistAsMcSecondaryProdRadiusK0s = new TH1F("h1AsMcSecondaryProdRadiusK0s", "K^{0} Production Radius;r (cm);Count", 170, -2, 15);
1697 fListHist->Add(fHistAsMcSecondaryProdRadiusK0s);
1698
1699 fHistAsMcSecondaryProdRadiusLambda = new TH1F("h1AsMcSecondaryProdRadiusLambda", "#Lambda^{0} Production Radius;r (cm);Count", 170, -2, 15);
1700 fListHist->Add(fHistAsMcSecondaryProdRadiusLambda);
1701
1702 fHistAsMcSecondaryProdRadiusAntiLambda = new TH1F("h1AsMcSecondaryProdRadiusAntiLambda", "#bar{#Lambda}^{0} Production Radius;r (cm);Count", 170, -2, 15);
1703 fListHist->Add(fHistAsMcSecondaryProdRadiusAntiLambda);
1704
1705 fHistAsMcSecondaryProdRadiusXvsYK0s = new TH2F("h2AsMcSecondaryProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1706 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYK0s);
1707
1708 fHistAsMcSecondaryProdRadiusXvsYLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1709 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYLambda);
1710
1711 fHistAsMcSecondaryProdRadiusXvsYAntiLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20);
1712 fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYAntiLambda);
1713
1714 fHistAsMcSecondaryMotherPdgCodeK0s = new TH1F("h1AsMcSecondaryMotherPdgCodeK0s","Mother of Associated Secondary K^{0};mother;counts",11,0,11);
1715 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeK0s);
1716
1717 fHistAsMcSecondaryMotherPdgCodeLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeLambda","Mother of Associated Secondary #Lambda^{0};mother;counts",11,0,11);
1718 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeLambda);
1719
1720 fHistAsMcSecondaryMotherPdgCodeAntiLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeAntiLambda","Mother of Associated Secondary #bar{#Lambda}^{0};mother;counts",11,0,11);
1721 fListHist->Add(fHistAsMcSecondaryMotherPdgCodeAntiLambda);
1722
1723 // Pt distribution Lambda from Sigma
1724 fHistAsMcSecondaryPtLambdaFromSigma = new TH1F("h1AsMcSecondaryPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1725 fListHist->Add(fHistAsMcSecondaryPtLambdaFromSigma);
1726
1727 fHistAsMcSecondaryPtAntiLambdaFromSigma = new TH1F("h1AsMcSecondaryPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",240,0,12);
1728 fListHist->Add(fHistAsMcSecondaryPtAntiLambdaFromSigma);
1729 */
1730 PostData(1, fListHist);
1731 //PostData(2, fCentrSelector);
1732 //PostData(3, fTracksCuts);
1733}
1734
1735//________________________________________________________________________
1736void AliAnalysisTaskLK0Spectra::UserExec(Option_t *)
1737{
1738 // Main loop
1739 // Called for each event
1740
1741 AliStack* stack = NULL;
fc8819df 1742 AliMCEvent* mcEvent = NULL;
c36344c8 1743 // TClonesArray *mcArray = NULL;
1744 TArrayF mcPrimaryVtx;
1745
1746 fESD=(AliESDEvent *)InputEvent();
1747
1748 if (!fESD) {
1749 Printf("ERROR: fESD not available");
1750 return;
1751 }
1752
1753 AliVEvent* lEvent = InputEvent();
1754
1755 if (!lEvent) {
1756 Printf("ERROR: Event not available");
1757 return;
1758 }
1759
1760 ///////
1761 // PID
1762 ///////
1763
1764 if (fUsePID.Contains("withPID")) {
1765 AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
1766 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
1767 fPIDResponse = inputHandler->GetPIDResponse();
1768 }
1769
1770 fHistNumberEvents->Fill(0.5);
1771
1772 //******************
1773 // Trigger Selection ! Warning Works only for ESD, add protection in case of AOD loop
1774 //******************
1775
1776 Bool_t isSelected = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()& AliVEvent::kMB);
1777 if (!isSelected) return;
1778
1779 fHistNumberEvents->Fill(1.5);
1780
1781
1782 // Centrality selection
1783
1784 static AliESDtrackCuts * trackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE,1);
1785 Bool_t isCentralitySelected = fCentrSelector->IsCentralityBinSelected(fESD,trackCuts);
1786 if(!isCentralitySelected) return;
1787
1788 // Done by the AliPhysicsSelection Task ! Only the selected events are passed to this task
1789
1790 AliESDtrackCuts *TestTrackCuts = new AliESDtrackCuts();
1791 TestTrackCuts->SetRequireTPCRefit(kTRUE);
1792 TestTrackCuts->SetRequireITSRefit(kFALSE);
1793 // mytracksCuts->SetMinNClustersTPC(nbMinTPCclusters);
1794 TestTrackCuts->SetMinNCrossedRowsTPC(70);
1795 TestTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
1796
1797 AliESDtrack *track = 0x0;
1798 Double_t trackP[3] = {0,0,0};
1799 for (int i = 0; i<fESD->GetNumberOfTracks();i++){
1800 track = fESD->GetTrack(i);
1801 track->GetInnerPxPyPz(trackP);
1802 TestTrackCuts->SetRequireITSRefit(kFALSE);
1803 //if(TestTrackCuts->IsSelected(track)) fHistPtTracks->Fill(trackP[2]);
1804 TestTrackCuts->SetRequireITSRefit(kTRUE);
1805 //if(TestTrackCuts->IsSelected(track)) fHistPtTracksITSRefit->Fill(trackP[2]);
1806 }
1807
1808
1809 // Remove Events with no tracks
1810 //if (!(fESD->GetNumberOfTracks())) return;
1811
1812 fHistNumberEvents->Fill(2.5);
1813 // fHistTrackPerEvent->Fill(fESD->GetNumberOfTracks());
1814
1815 //*************************************
1816 // Cut used:
1817 //*************************************
1818
1819 // Cut Rapidity:
1820 Double_t lCutRap = 0.5;
1821
2bfd3f82 1822 Int_t selectInjected = 0; //1 for just injected, -1 for just pure; 0 for both.
1823 if(fRemoveInjected == kTRUE)
1824 {selectInjected = -1;}
fc8819df 1825
c36344c8 1826 // cut Pseudorapidity:
1827
1828 Double_t lCutPseudorap = 0.8;
1829
1830 // Cut AliKF Chi2 for Reconstructed particles
1831 // Double_t cutChi2KF = 1E3;
1832
1833 // If PID is used:
1834 Double_t lLimitPPID = 1.0;
1835 Float_t cutNSigmaLowP = 1E3;
1836 Float_t cutNSigmaHighP = 1E3;
1837 if (fUsePID.Contains("withPID")) {
1838 cutNSigmaLowP = 3.0;
1839 cutNSigmaHighP = 3.0;
1840 }
1841
1842
1843 // Cut Daughters pt (GeV/c):
1844 //Double_t cutMinPtDaughter = 0.160;
1845
1846 // Cut primary vertex:
1847 Double_t cutPrimVertex = 10.0;
1848
1849 // cut ctau
1850 Double_t cutcTauL = 3*7.89;
1851 Double_t cutcTauK0s = 3*2.68;
1852 Double_t cutArmenteros = fArmenterosCut;
1853
1854 // Min number of TPC clusters:
1855 // Int_t nbMinTPCclusters = 80;
1856
1857
1858 //
1859 // PID flags:
1860 Int_t LambdaPID = 0;
1861 Int_t AntiLambdaPID = 0;
1862
1863
1864 //////******************************************
1865 ////// Access MC: ******************************
1866 //////******************************************
1867
1868 if (fAnalysisMC) {
1869 if(fAnalysisType == "ESD") {
1870 AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
1871 if (!eventHandler) {
1872 Printf("ERROR: Could not retrieve MC event handler");
1873 return;
1874 }
fc8819df 1875 mcEvent = eventHandler->MCEvent();
c36344c8 1876 if (!mcEvent) {
1877 Printf("ERROR: Could not retrieve MC event");
1878 return;
1879 }
1880 stack = mcEvent->Stack();
1881 if (!stack) {
1882 Printf("ERROR: Could not retrieve stack");
1883 return;
1884 }
1885
1886 AliGenEventHeader* mcHeader=mcEvent->GenEventHeader();
1887 if(!mcHeader) return;
1888 mcHeader->PrimaryVertex(mcPrimaryVtx);
1889
1890 if (TMath::Abs(mcPrimaryVtx.At(2)) > cutPrimVertex) return; /// cut on z of prim. vertex !!!!!!
1891 }
1892
1893 /*
1894 // PID parameters for MC simulations:
1895 fAlephParameters[0] = 2.15898e+00/50.;
1896 fAlephParameters[1] = 1.75295e+01;
1897 fAlephParameters[2] = 3.40030e-09;
1898 fAlephParameters[3] = 1.96178e+00;
1899 fAlephParameters[4] = 3.91720e+00;
1900 */
1901 }
1902
1903
1904 //**********************************************
1905 // MC loop
1906 //**********************************************
1907
1908 Double_t lmcPrimVtxR = 0;
1909
1910 Int_t lNbMCPrimary = 0;
1911 Int_t lNbMCPart = 0;
1912
1913 Int_t lPdgcodeCurrentPart = 0;
1914 Double_t lRapCurrentPart = 0;
1915 Double_t lPtCurrentPart = 0;
1916
1917 Int_t lComeFromSigma = 0;
1918
1919
1920 // Production Radius
1921 Double_t mcPosX = 0.0, mcPosY = 0.0, mcPosZ = 0.0;
1922 Double_t mcPosR = 0.0;
1923
1924 // Decay Radius
1925 Double_t mcDecayPosX = 0, mcDecayPosY = 0, mcDecayPosR = 0;
1926
1927 // current mc particle 's mother
1928 Int_t iCurrentMother = 0, lPdgCurrentMother = 0;
1929 // Bool_t lCurrentMotherIsPrimary;
1930
1931 // current mc particles 's daughter:
1932 Int_t lPdgCurrentDaughter0 = 0, lPdgCurrentDaughter1 = 0;
1933
1934 // variables for multiple reconstruction studies:
1935 Int_t id0 = 0, id1 = 0;
1936 //Int_t lLabelTrackN = 0, lLabelTrackP = 0;
1937 //Int_t lPartNMother = 0, lPartPMother = 0;
1938 //Int_t lPartPMotherPDGcode = 0;
1939 Int_t lNtimesReconstructedK0s = 0, lNtimesReconstructedLambda = 0, lNtimesReconstructedAntiLambda = 0;
1940 // Int_t lNtimesReconstructedK0sMI = 0, lNtimesReconstructedLambdaMI = 0, lNtimesReconstructedAntiLambdaMI = 0;
1941
1942 ////********************************
1943 ////Start loop over MC particles****
1944 ////********************************
1945
1946 if (fAnalysisMC) {
1947
1948 // Primary vertex
1949 fHistMCPrimaryVertexX->Fill(mcPrimaryVtx.At(0));
1950 fHistMCPrimaryVertexY->Fill(mcPrimaryVtx.At(1));
1951 fHistMCPrimaryVertexZ->Fill(mcPrimaryVtx.At(2));
1952
1953 lmcPrimVtxR = TMath::Sqrt(mcPrimaryVtx.At(0)*mcPrimaryVtx.At(0)+mcPrimaryVtx.At(1)*mcPrimaryVtx.At(1));
1954
1955
1956 if(fAnalysisType == "ESD") {
1957
1958 lNbMCPrimary = stack->GetNprimary();
1959 lNbMCPart = stack->GetNtrack();
1960
1961 fHistMCMultiplicityPrimary->Fill(lNbMCPrimary);
1962 fHistMCMultiplicityTracks->Fill(lNbMCPart);
1963
1964
1965 for (Int_t iMc = 0; iMc < (stack->GetNtrack()); iMc++) {
1966 TParticle *p0 = stack->Particle(iMc);
1967 if (!p0) {
1968 //Printf("ERROR: particle with label %d not found in stack (mc loop)", iMc);
1969 continue;
1970 }
1971 lPdgcodeCurrentPart = p0->GetPdgCode();
1972
1973 // Keep only K0s, Lambda and AntiLambda, Xi and Phi:
1974 if ( (lPdgcodeCurrentPart != 310 ) && (lPdgcodeCurrentPart != 3122 ) && (lPdgcodeCurrentPart != -3122 ) && (lPdgcodeCurrentPart != 3312 ) && (lPdgcodeCurrentPart != -3312) && (lPdgcodeCurrentPart != -333) ) continue;
1975
1976 lRapCurrentPart = MyRapidity(p0->Energy(),p0->Pz());
1977 //lEtaCurrentPart = p0->Eta();
1978 lPtCurrentPart = p0->Pt();
1979 iCurrentMother = p0->GetFirstMother();
1980
1981 // lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();
1982 if (iCurrentMother == -1){lPdgCurrentMother=0; } else {lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode();}
1983
1984 mcPosX = p0->Vx();
1985 mcPosY = p0->Vy();
1986 mcPosZ = p0->Vz();
1987 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
1988
1989 id0 = p0->GetDaughter(0);
1990 id1 = p0->GetDaughter(1);
1991
1992 // Decay Radius and Production Radius
1993 if ( id0 <= lNbMCPart && id0 > 0 && id1 <= lNbMCPart && id1 > 0) {
1994 TParticle *pDaughter0 = stack->Particle(id0);
1995 TParticle *pDaughter1 = stack->Particle(id1);
1996 lPdgCurrentDaughter0 = pDaughter0->GetPdgCode();
1997 lPdgCurrentDaughter1 = pDaughter1->GetPdgCode();
1998
1999 mcDecayPosX = pDaughter0->Vx();
2000 mcDecayPosY = pDaughter0->Vy();
2001 mcDecayPosR = TMath::Sqrt(mcDecayPosX*mcDecayPosX+mcDecayPosY*mcDecayPosY);
2002 }
2003 else {
2004 //Printf("ERROR: particle with label %d and/or %d not found in stack (mc loop)", id0,id1);
2005 mcDecayPosR = -1.0;
2006 }
2007
2008 if (lPdgcodeCurrentPart==310) {
2009 //fHistMCtracksProdRadiusK0s->Fill(mcPosX,mcPosY);
2010 //fHistMCtracksDecayRadiusK0s->Fill(mcDecayPosR);
2011
2012 //if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAllK0sRap3->Fill(lPtCurrentPart);
2013
2014 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllK0s->Fill(lPtCurrentPart);
2015 }
2016 else if (lPdgcodeCurrentPart==3122) {
2017 //fHistMCtracksProdRadiusLambda->Fill(mcPosX,mcPosY);
2018 //fHistMCtracksDecayRadiusLambda->Fill(mcDecayPosR);
2019
2020 // if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAllLambdaRap3->Fill(lPtCurrentPart);
2021
2022 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllLambda->Fill(lPtCurrentPart);
2023 }
2024 else if (lPdgcodeCurrentPart==-3122) {
2025 //fHistMCtracksProdRadiusAntiLambda->Fill(mcPosX,mcPosY);
2026 //fHistMCtracksDecayRadiusAntiLambda->Fill(mcDecayPosR);
2027
2028 //if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAllAntiLambdaRap3->Fill(lPtCurrentPart);
2029
2030 if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllAntiLambda->Fill(lPtCurrentPart);
2031 }
2032
2033 if ( ( ( TMath::Abs(lPdgCurrentMother) == 3212) ||
2034 ( TMath::Abs(lPdgCurrentMother) == 3224) ||
2035 ( TMath::Abs(lPdgCurrentMother) == 3214) ||
2036 ( TMath::Abs(lPdgCurrentMother) == 3114) )
2037 && ( iCurrentMother <= lNbMCPrimary )
2038 ) lComeFromSigma = 1;
2039 else lComeFromSigma = 0;
2040
2041 //*********************************************
2042 // Now keep only primary particles
2043 // if ( ( iMc > lNbMCPrimary ) && (!lComeFromSigma) ) continue;
2044
2045 //*************************************//
2046 // new definition of primary particles //
2047 //*************************************//
2048
2049 Double_t dx = 0;
2050 Double_t dy = 0;
2051 Double_t dz = 0;
2052 Double_t ProdDistance = 0;
2053
2054
2055 dx = ( (mcPrimaryVtx.At(0)) - (p0->Vx()) );
2056 dy = ( (mcPrimaryVtx.At(1)) - (p0->Vy()) );
2057 dz = ( (mcPrimaryVtx.At(2)) - (p0->Vz()) );
2058
2059 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2060
2061 if (ProdDistance > 0.001) continue; // secondary V0
2062
2063
2064
2065 lNtimesReconstructedK0s = 0; lNtimesReconstructedLambda = 0; lNtimesReconstructedAntiLambda = 0;
2066
2067
2068 // Rap distribution
2069 if (lPdgcodeCurrentPart==310) {
2070 //fHistMCRapK0s->Fill(lRapCurrentPart);
2071 //if (lPtCurrentPart < 0.2 && lPtCurrentPart < 3.0) fHistMCRapInPtRangeK0s->Fill(lRapCurrentPart);
2072 }
2073
2074 if (lPdgcodeCurrentPart==3122) {
2075 //fHistMCRapLambda->Fill(lRapCurrentPart);
2076 // if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5) fHistMCRapInPtRangeLambda->Fill(lRapCurrentPart);
2077 }
2078
2079 if (lPdgcodeCurrentPart==-3122) {
2080 //fHistMCRapAntiLambda->Fill(lRapCurrentPart);
2081 // if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.5) fHistMCRapInPtRangeAntiLambda->Fill(lRapCurrentPart);
2082 }
2083
2084 if (lPdgcodeCurrentPart==3312 || lPdgcodeCurrentPart==-3312) {
2085 //fHistMCRapXi->Fill(lRapCurrentPart);
2086 //if (lPtCurrentPart < 0.6 && lPtCurrentPart < 3.0) fHistMCRapInPtRangeXi->Fill(lRapCurrentPart);
2087 }
2088
2089 if (lPdgcodeCurrentPart==333) {
2090 //fHistMCRapPhi->Fill(lRapCurrentPart);
2091 //if (lPtCurrentPart < 0.7 && lPtCurrentPart < 3.0) fHistMCRapInPtRangePhi->Fill(lRapCurrentPart);
2092 }
2093
fc8819df 2094 // Rapidity Cut & Injected Selection
2095
2096 Bool_t kIsNaturalPart = mcEvent->IsFromBGEvent(iMc); // this technique from Maria Nicassio
2097 if (!kIsNaturalPart)
2098 {
2099 if (!(p0->GetFirstMother()<0))
2100 {kIsNaturalPart = kTRUE;} // because there are primaries (ALICE definition) not produced in the collision
2101 }
2102
2103 if (TMath::Abs(lRapCurrentPart) > lCutRap || (!kIsNaturalPart && selectInjected == -1) || (kIsNaturalPart && selectInjected == 1) ) continue;
c36344c8 2104
2105 if (lPdgcodeCurrentPart==310) {
2106 //fHistMCProdRadiusK0s->Fill(mcPosR);
2107
2108 fHistMCPtK0s->Fill(lPtCurrentPart);
2109
2110 //if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtK0sRap3->Fill(lPtCurrentPart);
2111
2112
2113 //fHistNTimesRecK0s->Fill(lNtimesReconstructedK0s);
2114 //fHistNTimesRecK0sVsPt->Fill(lPtCurrentPart,lNtimesReconstructedK0s);
2115 }
2116 else
2117 if (lPdgcodeCurrentPart==3122) {
2118 //fHistMCProdRadiusLambda->Fill(mcPosR);
2119
2120 fHistMCPtLambda->Fill(lPtCurrentPart);
2121
2122 //if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtLambdaRap3->Fill(lPtCurrentPart);
2123
2124 // fHistNTimesRecLambda->Fill(lNtimesReconstructedLambda);
2125 // fHistNTimesRecLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedLambda);
2126 //if (lComeFromSigma) fHistMCPtLambdaFromSigma->Fill(lPtCurrentPart);
2127
2128 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
2129 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
2130
2131 }
2132 else
2133 if (lPdgcodeCurrentPart==-3122) {
2134 // fHistMCProdRadiusAntiLambda->Fill(mcPosR);
2135
626d92ac 2136 fHistMCPtAntiLambda->Fill(lPtCurrentPart);
c36344c8 2137
2138 //if (TMath::Abs(lRapCurrentPart) < 0.3) fHistMCPtAntiLambdaRap3->Fill(lPtCurrentPart);
2139
2140
2141 // fHistNTimesRecAntiLambda->Fill(lNtimesReconstructedAntiLambda);
2142 // fHistNTimesRecAntiLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambda);
2143 // if (lComeFromSigma) fHistMCPtAntiLambdaFromSigma->Fill(lPtCurrentPart);
2144
2145 //printf("found Lambda MC pT=%e\n",lPtCurrentPart);
2146 //printf("found Lambda MC Plabel=%d PPDGcode=%d Nlabel=%d NPDGcode=%d\n\n",id0,lPdgCurrentDaughter0,id1,lPdgCurrentDaughter1);
2147
2148 }
2149
2150
2151 } // end loop ESD MC
2152
2153 } // end ESD condition
2154
2155
2156 } // End Loop over MC condition
2157
2158
2159
2160
2161
2162 //************************************
2163 // ESD loop
2164 //************************************
2165
376a27f9 2166 // Double_t lLambdaMass = 1.115683; //PDG
c36344c8 2167 Double_t lPLambda = 0;
2168 Double_t lPAntiLambda = 0;
2169 Double_t lPK0s = 0;
2170 Double_t lMagneticField = 999;
2171
2172 //Multiplcity:
2173 Int_t nv0sTot= 0, nv0s = 0;
2174 // Int_t nv0sMI =0;
2175 // Variables:
2176 Double_t lV0Position[3];
2177
2178 Double_t lDcaPosToPrimVertex = 0;
2179 Double_t lDcaNegToPrimVertex = 0;
2180 Double_t lDcaV0Daughters = 0;
2181 Double_t lV0cosPointAngle = 0;
2182 Double_t lChi2V0 = 0;
2183 Double_t lV0DecayLength = 0;
2184 Double_t lV0Radius = 0;
2185 Double_t lDcaV0ToPrimVertex = 0;
2186 Double_t lcTauLambda = 0;
2187 Double_t lcTauAntiLambda = 0;
2188 Double_t lcTauK0s = 0;
2189 Int_t lOnFlyStatus = 0;
2190 //Float_t tdcaPosToPrimVertexXYZ[2], tdcaNegToPrimVertexXYZ[2]; // ..[0] = Impact parameter in XY plane and ..[1] = Impact parameter in Z
2191 //Double_t tdcaDaughterToPrimVertex[2]; // ..[0] = Pos and ..[1] = Neg
2192
2193
2194
2195 Double_t lInvMassK0s = 0, lInvMassLambda = 0, lInvMassAntiLambda = 0;
2196 Double_t lPtK0s = 0, lPtLambda = 0, lPtAntiLambda = 0;
2197 Double_t lRapK0s = 0, lRapLambda = 0, lRapAntiLambda = 0;
2198 // Double_t lEtaK0s = 0, lEtaLambda = 0, lEtaAntiLambda = 0;
2199 Double_t lAlphaV0 = 0, lPtArmV0 = 0;
2200
2201 Double_t lPzK0s = 0, lPzLambda = 0, lPzAntiLambda = 0;
2202
2203
2204 Double_t lV0Eta = 999;
2205
2206 // to study Associated V0s:
2207 Int_t lIndexTrackPos = 0, lIndexTrackNeg = 0;
2208 UInt_t lLabelTrackPos = 0, lLabelTrackNeg = 0;
2209 Int_t lCheckPIdK0Short = 0, lCheckMcK0Short = 0;
2210 Int_t lCheckPIdLambda = 0, lCheckMcLambda = 0;
2211 Int_t lCheckPIdAntiLambda = 0, lCheckMcAntiLambda = 0;
2212 Int_t lCheckSecondaryK0s = 0, lCheckSecondaryLambda = 0, lCheckSecondaryAntiLambda = 0;
2213 Int_t lCheckGamma = 0;
2214 Double_t mcPosMotherX = 0, mcPosMotherY = 0, mcPosMotherZ = 0;
2215 Double_t mcPosMotherR = 0;
08258f9c 2216 Double_t mcMotherPt = 0, mcMotherRap = 0;
c36344c8 2217
2218 Int_t lIndexPosMother = 0;
2219 Int_t lIndexNegMother = 0;
2220 Int_t lIndexMotherOfMother = 0;
2221 Int_t lPDGCodePosDaughter = 0;
2222 Int_t lPDGCodeNegDaughter = 0;
2223 Int_t lPdgcodeMother = 0;
2224 Int_t lPdgcodeMotherOfMother = 0;
2225
2226 // Reconstructed position
376a27f9 2227 //Double_t rcPosXK0s = 0, rcPosYK0s = 0, rcPosZK0s = 0;
c36344c8 2228 Double_t rcPosRK0s = 0;
376a27f9 2229 //Double_t rcPosXLambda = 0, rcPosYLambda = 0, rcPosZLambda = 0;
c36344c8 2230 Double_t rcPosRLambda = 0;
376a27f9 2231 // Double_t rcPosXAntiLambda = 0, rcPosYAntiLambda = 0, rcPosZAntiLambda = 0;
c36344c8 2232 Double_t rcPosRAntiLambda = 0;
2233
2234 // Pt resolution
376a27f9 2235 // Double_t deltaPtK0s = 0, deltaPtLambda = 0, deltaPtAntiLambda = 0;
c36344c8 2236
2237 // Daughters
2238 AliESDtrack *myTrackPos = NULL;
2239 AliESDtrack *myTrackNeg = NULL;
2240 // AliVParticle *lVPartPos = NULL;
2241 // AliVParticle *lVPartNeg = NULL;
2242
2243 // V0 momentum
2244 //Double_t lPosMom = 0;
2245 //Double_t lNegMom = 0;
2246 // Double_t lPmom = 0;
2247 // Double_t lPLambda = 0;
2248
2249 // Daughters' momentum:
2250 Double_t lMomPos[3] = {999,999,999};
2251 Double_t lMomNeg[3] = {999,999,999};
2252 Double_t lPtPos = 999, lPtNeg = 999;
2253 Double_t lPPos = 999, lPNeg = 999;
2254
2255 // Inner Wall parameters:
2256 Double_t lMomInnerWallPos =999, lMomInnerWallNeg = 999;
2257
2258 // AliKF Chi2 and Armenteros variables
2259 // Double_t lChi2KFK0s = 0, lChi2KFLambda = 0, lChi2KFAntiLambda = 0;
2260 // Double_t lAlphaV0K0s = 0, lAlphaV0Lambda = 0, lAlphaV0AntiLambda = 0;
2261 //Double_t lPtArmV0K0s = 0, lPtArmV0Lambda = 0, lPtArmV0AntiLambda = 0;
2262 // Double_t lQlPos = 0, lQlNeg = 0;
2263
2264
2265 // PID
2266 Float_t nSigmaPosPion = 0;
2267 Float_t nSigmaNegPion = 0;
2268
2269 Float_t nSigmaPosProton = 0;
2270 Float_t nSigmaNegProton = 0;
2271
2272
2273 Int_t lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2274 Int_t lCheckPIDLambdaPosDaughter = 0, lCheckPIDLambdaNegDaughter = 0;
2275 Int_t lCheckPIDAntiLambdaPosDaughter = 0, lCheckPIDAntiLambdaNegDaughter = 0;
2276
2277
2278
2279 //****************************************************
2280 // Primary Vertex cuts &
2281 // Magnetic field and Quality tracks cuts
2282 //****************************************************
2283
2284 Double_t lPrimaryVtxPosition[3];
2285 Double_t lPrimaryVtxCov[6];
2286 Double_t lPrimaryVtxChi2 = 999;
2287 Double_t lResPrimaryVtxX = 999;
2288 Double_t lResPrimaryVtxY = 999;
2289 Double_t lResPrimaryVtxZ = 999;
2290
2291 AliAODVertex *myPrimaryVertex = NULL;
2292 //const AliVVertex *mySPDPrimaryVertex = NULL;
2293
2294
376a27f9 2295 //const AliMultiplicity *myMultiplicty = ((AliESDEvent*)fESD)->GetMultiplicity();
c36344c8 2296
2297 if(fAnalysisType == "ESD") {
2298
2299 // Best Primary Vertex:
2300
2301 const AliESDVertex *myBestPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertex();
2302 myBestPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertex();
2303 if (!myBestPrimaryVertex) return;
2304 if (!myBestPrimaryVertex->GetStatus()) return;
2305
2306 fHistNumberEvents->Fill(3.5);
2307
2308 myBestPrimaryVertex->GetXYZ(lPrimaryVtxPosition);
2309 myBestPrimaryVertex->GetCovMatrix(lPrimaryVtxCov);
2310
2311 if ( ( TMath::Abs(lPrimaryVtxPosition[2]) ) > cutPrimVertex) return ; //// cut on z of prim. vertex!!!!!
2312
2313 fHistNumberEvents->Fill(4.5);
2314
2315 lPrimaryVtxChi2 = myBestPrimaryVertex->GetChi2toNDF();
2316 lResPrimaryVtxX = myBestPrimaryVertex->GetXRes();
2317 lResPrimaryVtxY = myBestPrimaryVertex->GetYRes();
2318 lResPrimaryVtxZ = myBestPrimaryVertex->GetZRes();
2319
2320 // remove TPC-only primary vertex : retain only events with tracking + SPD vertex
2321
2322 const AliESDVertex *mySPDPrimaryVertex = ((AliESDEvent*)fESD)->GetPrimaryVertexSPD();
2323 if (!mySPDPrimaryVertex) return;
2324
2325 // fHistSPDPrimaryVertexZ->Fill(mySPDPrimaryVertex->GetZ());
2326
2327 const AliESDVertex *myPrimaryVertexTracking = ((AliESDEvent*)fESD)->GetPrimaryVertexTracks();
2328 if (!myPrimaryVertexTracking) return;
2329
2330 if (!mySPDPrimaryVertex->GetStatus() && !myPrimaryVertexTracking->GetStatus() ) return;
2331
2332 fHistNumberEvents->Fill(5.5);
2333 fHistTrackPerEvent->Fill(fESD->GetNumberOfTracks());
2334
2335 myPrimaryVertex = new AliAODVertex(lPrimaryVtxPosition, lPrimaryVtxCov, lPrimaryVtxChi2, NULL, -1, AliAODVertex::kPrimary);
2336 if (!myPrimaryVertex) return;
2337
2338
2339 // Number of Tracklets:
2340
2341 //fHistTrackletPerEvent->Fill(myMultiplicty->GetNumberOfTracklets());
2342
2343 lMagneticField = ((AliESDEvent*)fESD)->GetMagneticField();
2344
2345 //fHistTPCTracks->Fill(AliESDtrackCuts::GetReferenceMultiplicity((AliESDEvent*)fESD, kTRUE));
2346
2347 //////simple chack for multiplicity////////////////////////////////////////////////////////
2348
2349 Int_t i =0;
2350
2351 for (Int_t jTracks=0;jTracks<fESD->GetNumberOfTracks();jTracks++){
2352
2353 AliESDtrack* tPCtrack=fESD->GetTrack(jTracks);
2354 Float_t xy=0;
2355 Float_t z=0;
2356 tPCtrack->GetImpactParameters(xy,z);
2357 if ((fTracksCuts->IsSelected(tPCtrack))&&(xy<1.0)&&(z<1.0)) {i=i+1;}
2358
2359 }
2360
2361 fHistTPCMult->Fill(i);
2362
2363 /////////////////////////////////////////////////////////////////////////////////////////
2364
2365
2366 }
2367
2368 fHistPrimaryVertexX->Fill(lPrimaryVtxPosition[0]);
2369 fHistPrimaryVertexY->Fill(lPrimaryVtxPosition[1]);
2370 fHistPrimaryVertexZ->Fill(lPrimaryVtxPosition[2]);
2371 //Double_t lrcPrimVtxR = TMath::Sqrt(lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]+lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]);
2372
2373 // fHistPrimaryVertexResX->Fill(lResPrimaryVtxX);
2374 // fHistPrimaryVertexResY->Fill(lResPrimaryVtxY);
2375 // fHistPrimaryVertexResZ->Fill(lResPrimaryVtxZ);
2376
2377 //***********************
2378 // AliKF Primary Vertex
2379
2380 AliKFVertex primaryVtxKF( *myPrimaryVertex );
2381 AliKFParticle::SetField(lMagneticField);
2382
2383
2384
2385
2386 //***Rerun the V0 finder
2387
2388 // fESD->ResetV0s();
2389 // AliV0vertexer v0Vertexer;
2390 // v0Vertexer.SetCuts(fCuts);
2391 // v0Vertexer.Tracks2V0vertices(fESD);
2392
2393 ////*************************
2394 //// V0 loop ****************
2395 ////*************************
2396
2397 nv0sTot = fESD->GetNumberOfV0s();
2398 if (!nv0sTot) fHistNumberEvents->Fill(6.5);
2399
2400 for (Int_t iV0 = 0; iV0 < nv0sTot; iV0++) {
2401
2402 lIndexPosMother = 0; lIndexNegMother = 0; lIndexMotherOfMother = 0;
2403 lCheckPIdK0Short = 0; lCheckMcK0Short = 0; lCheckSecondaryK0s = 0;
2404 lCheckPIdLambda = 0; lCheckMcLambda = 0; lCheckSecondaryLambda = 0;
2405 lCheckPIdAntiLambda = 0; lCheckMcAntiLambda = 0; lCheckSecondaryAntiLambda = 0;
2406 lComeFromSigma = 0;lCheckGamma = 0;
2407
2408
2409 if(fAnalysisType == "ESD") {
2410
2411
2412 AliESDv0 *v0 = ((AliESDEvent*)fESD)->GetV0(iV0);
2413 if (!v0) continue;
2414
2415 // if ((v0->Pt())<0.6) continue;
2416
2417 // Primary vertex:
2418 // fHistPrimaryVertexPosXV0events->Fill(lPrimaryVtxPosition[0]);
2419 // fHistPrimaryVertexPosYV0events->Fill(lPrimaryVtxPosition[1]);
2420 // fHistPrimaryVertexPosZV0events->Fill(lPrimaryVtxPosition[2]);
2421
2422 // V0's Daughters
2423 lIndexTrackPos = TMath::Abs(v0->GetPindex());
2424 lIndexTrackNeg = TMath::Abs(v0->GetNindex());
2425 AliESDtrack *myTrackPosTest = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2426 AliESDtrack *myTrackNegTest = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2427 if (!myTrackPosTest || !myTrackNegTest) {
2428 Printf("strange analysis::UserExec:: Error:Could not retreive one of the daughter track\n");
2429 continue;
2430 }
2431 // Remove like-sign
2432 if ((Int_t)myTrackPosTest->GetSign() == (Int_t)myTrackNegTest->GetSign()){
2433 continue;
2434 }
2435
2436 // VO's main characteristics to check the reconstruction cuts
2437 lOnFlyStatus = v0->GetOnFlyStatus();
2438 lChi2V0 = v0->GetChi2V0();
2439 lDcaV0Daughters = v0->GetDcaV0Daughters();
2440 lDcaV0ToPrimVertex = v0->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lPrimaryVtxPosition[2]);
2441 lV0cosPointAngle = v0->GetV0CosineOfPointingAngle(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1], lPrimaryVtxPosition[2]);
2442
2443 v0->GetXYZ(lV0Position[0], lV0Position[1], lV0Position[2]);
2444
2445 lV0Radius = TMath::Sqrt(lV0Position[0]*lV0Position[0]+lV0Position[1]*lV0Position[1]);
2446 lV0DecayLength = TMath::Sqrt(TMath::Power(lV0Position[0] - lPrimaryVtxPosition[0],2) +
2447 TMath::Power(lV0Position[1] - lPrimaryVtxPosition[1],2) +
2448 TMath::Power(lV0Position[2] - lPrimaryVtxPosition[2],2 ));
2449
2450
2451 if( myTrackPosTest->GetSign() ==1){
2452
2453 myTrackPos = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2454 myTrackNeg = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2455
2456 // Daughters' momentum;
2457 v0->GetPPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
2458 v0->GetNPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
2459 }
2460
2461 if( myTrackPosTest->GetSign() ==-1){
2462
2463 myTrackPos = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackNeg);
2464 myTrackNeg = ((AliESDEvent*)fESD)->GetTrack(lIndexTrackPos);
2465
2466
2467 // Daughters' momentum;
2468 v0->GetPPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]);
2469 v0->GetNPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]);
2470 }
2471
2472 lLabelTrackPos = (UInt_t)TMath::Abs(myTrackPos->GetLabel());
2473 lLabelTrackNeg = (UInt_t)TMath::Abs(myTrackNeg->GetLabel());
2474
2475 // Daughters Pt and P:
2476 lPtPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1]);
2477 lPtNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1]);
2478
2479 lPPos = TMath::Sqrt(lMomPos[0]*lMomPos[0] + lMomPos[1]*lMomPos[1] + lMomPos[2]*lMomPos[2]);
2480 lPNeg = TMath::Sqrt(lMomNeg[0]*lMomNeg[0] + lMomNeg[1]*lMomNeg[1] + lMomNeg[2]*lMomNeg[2]);
2481
2482
2483 // lPosMom = myTrackPos->GetInnerParam()->GetP();
2484
2485 // lNegMom = myTrackNeg->GetInnerParam()->GetP();
2486
2487 // lPmom = TMath::Sqrt(lMomPos[0]*lMomPos[0]+lMomPos[1]*lMomPos[1]+lMomPos[2]+lMomPos[2]);
2488
2489
2490
2491 // Inner Wall parameter:
2492 const AliExternalTrackParam *myInnerWallTrackPos = myTrackPos->GetInnerParam();
2493
2494 if (myInnerWallTrackPos) {lMomInnerWallPos = myInnerWallTrackPos->GetP();}
2495 else {continue;}
2496
2497 const AliExternalTrackParam *myInnerWallTrackNeg = myTrackNeg->GetInnerParam();
2498
2499 if (myInnerWallTrackNeg) {lMomInnerWallNeg = myInnerWallTrackNeg->GetP();}
2500 else {continue;}
2501
2502
2503 // DCA between daughter and Primary Vertex:
2504 if (myTrackPos) lDcaPosToPrimVertex = TMath::Abs(myTrackPos->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) );
2505
2506 if (myTrackNeg) lDcaNegToPrimVertex = TMath::Abs(myTrackNeg->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) );
2507
2508 // Quality tracks cuts:
2509 if ( !(fTracksCuts->IsSelected(myTrackPos)) || !(fTracksCuts->IsSelected(myTrackNeg)) )
2510 { continue;}
2511
2512 if ( ( TMath::Abs(myTrackPos->Eta()) > lCutPseudorap ) || ( TMath::Abs(myTrackNeg->Eta()) > lCutPseudorap ) ) {continue;}
2513
2514 // Armenteros variables:
2515 lAlphaV0 = v0->AlphaV0();
2516 lPtArmV0 = v0->PtArmV0();
2517
2518 // Pseudorapidity:
2519 lV0Eta = v0->Eta();
2520 //////////////////////////////////////////////////////////////////////////
2521 // Invariant mass
2522 v0->ChangeMassHypothesis(310);
2523 lInvMassK0s = v0->GetEffMass();
2524 lPtK0s = v0->Pt();
2525 lPzK0s = v0->Pz();
2526
2527 v0->ChangeMassHypothesis(3122);
2528 lInvMassLambda = v0->GetEffMass();
2529 lPtLambda = v0->Pt();
2530 lPzLambda = v0->Pz();
2531
2532
2533 v0->ChangeMassHypothesis(-3122);
2534 lInvMassAntiLambda = v0->GetEffMass();
2535 lPtAntiLambda = v0->Pt();
2536 lPzAntiLambda = v0->Pz();
2537
2538
2539 // Rapidity:
2540 lRapK0s = v0->Y(310);
2541 lRapLambda = v0->Y(3122);
2542 lRapAntiLambda = v0->Y(-3122);
2543
2544 if (lPtK0s==0) {continue;}
2545 if (lPtLambda==0) {continue;}
2546
2547 if (lPtAntiLambda==0) {continue;}
2548
2549 ///////////////////////////////////////////////////////////////////////
2550
2551 // PID new method July 2011
2552 if (fUsePID.Contains("withPID")) {
2553 // nSigmaPosPion = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackPos,AliPID::kPion));
2554 nSigmaPosPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kPion));
2555 // nSigmaNegPion = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackNeg,AliPID::kPion));
2556 nSigmaNegPion = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kPion));
2557 // nSigmaPosProton = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackPos,AliPID::kProton));
2558 nSigmaPosProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackPos, AliPID::kProton));
2559 // nSigmaNegProton = TMath::Abs(fESDpid->NumberOfSigmasTPC(myTrackNeg,AliPID::kProton));
2560 nSigmaNegProton = TMath::Abs(fPIDResponse->NumberOfSigmasTPC(myTrackNeg, AliPID::kProton));
2561
2562 }
2563 else {
2564 nSigmaPosPion = 0; nSigmaNegPion =0; nSigmaPosProton = 0; nSigmaNegProton= 0;
2565 }
2566
2567
2568
2569 // Monte-Carlo particle associated to reconstructed particles:
2570 if (fAnalysisMC) {
2571 //if (lLabelTrackPos < 0 || lLabelTrackNeg < 0) continue;
2572 TParticle *lMCESDPartPos = stack->Particle(lLabelTrackPos);
2573 if(!lMCESDPartPos) {
2574 // Printf("no MC particle for positive and/or negative daughter\n");
2575 continue;
2576 }
2577 TParticle *lMCESDPartNeg = stack->Particle(lLabelTrackNeg);
2578 if (!lMCESDPartNeg) { continue;}
2579 lPDGCodePosDaughter = lMCESDPartPos->GetPdgCode();
2580 lPDGCodeNegDaughter = lMCESDPartNeg->GetPdgCode();
2581 lIndexPosMother = lMCESDPartPos->GetFirstMother();
2582 lIndexNegMother = lMCESDPartNeg->GetFirstMother();
2583
2584 //////////////////////////////
2585 // if (lIndexPosMother == -1) {
2586 // if (negPiKF) delete negPiKF; negPiKF=NULL;
2587 // if (posPiKF) delete posPiKF; posPiKF=NULL;
2588 // if (posPKF) delete posPKF; posPKF=NULL;
2589 // if (negAPKF) delete negAPKF; negAPKF=NULL;
2590
2591 // continue;}
2592
2593 if (lIndexPosMother == -1) {
2594
2595
2596 lPdgcodeMother = 0;
2597 lIndexMotherOfMother = 0;
2598 mcPosX = 0;
2599 mcPosY = 0;
2600 mcPosZ = 0;
2601 mcPosR = 0;
2602 mcPosMotherX = 0;
2603 mcPosMotherY = 0;
2604 mcPosMotherZ = 0;
2605 mcPosMotherR = 0;
2606 mcMotherPt = 1;
2607 }
2608
2609 else {
2610
2611
2612
2613 TParticle *lMCESDMother = stack->Particle(lIndexPosMother);
2614 if (!lMCESDMother) { continue;}
2615 lPdgcodeMother = lMCESDMother->GetPdgCode();
2616 lIndexMotherOfMother = lMCESDMother->GetFirstMother();
2617 if (lIndexMotherOfMother ==-1) lPdgcodeMotherOfMother = 0;
2618 else {
2619 TParticle *lMCESDMotherOfMother = stack->Particle(lIndexMotherOfMother);
2620 if (!lMCESDMotherOfMother) { continue;}
2621 lPdgcodeMotherOfMother = lMCESDMotherOfMother->GetPdgCode();
2622 }
2623
2624 mcPosX = lMCESDPartPos->Vx();
2625 mcPosY = lMCESDPartPos->Vy();
2626 mcPosZ = lMCESDPartPos->Vz();
2627 mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY);
2628 mcPosMotherX = lMCESDMother->Vx();
2629 mcPosMotherY = lMCESDMother->Vy();
2630 mcPosMotherZ = lMCESDMother->Vz();
2631 mcPosMotherR = TMath::Sqrt(mcPosMotherX*mcPosMotherX+mcPosMotherY*mcPosMotherY);
2632
fc8819df 2633 Bool_t kIsNaturalPart_McAs = mcEvent->IsFromBGEvent(lIndexPosMother); // this technique from Maria Nicassio
2634 if (!kIsNaturalPart_McAs)
2635 {
2636 if (!(lMCESDMother->GetFirstMother()<0))
2637 {kIsNaturalPart_McAs = kTRUE;} // because there are primaries (ALICE definition) not produced in the collision
2638 }
2639
2640 if ((!kIsNaturalPart_McAs && selectInjected == -1) || (kIsNaturalPart_McAs && selectInjected == 1) )
2641 { continue;}
2642
c36344c8 2643 mcMotherPt = lMCESDMother->Pt();
08258f9c 2644 mcMotherRap = lMCESDMother->Y();
c36344c8 2645 }
2646 }
2647 } // end ESD condition
2648
2649
2650
2651
2652
2653
2654 // Multiplicity:
2655 if(!lOnFlyStatus) nv0s++;
2656 // else if(lOnFlyStatus) nv0sMI++;
2657
2658 // Daughter momentum cut: ! FIX it in case of AOD !
2659 //if ( (lPtPos < cutMinPtDaughter ) ||
2660 // (lPtNeg < cutMinPtDaughter )
2661 // ) { continue;}
2662
2663 // Look for associated particles:
2664 if (fAnalysisMC) {
2665 if( (lIndexPosMother==-1) || (lIndexNegMother==-1) ) {
2666 //fHistMCDaughterTrack->Fill(1);
2667 }
2668
2669 else if( ( (lPDGCodePosDaughter==+211) && (lPDGCodeNegDaughter==-211) ) )
2670 {
2671 lCheckPIdK0Short = 1;
2672 //fHistMCDaughterTrack->Fill(3);
2673 if ( (lIndexPosMother==lIndexNegMother) &&
2674 (lPdgcodeMother==310) ) {
2675
2676
2677 //if (lIndexPosMother <= lNbMCPrimary) lCheckMcK0Short = 1;
2678 //else lCheckSecondaryK0s = 1;
2679
2680 Double_t dx = 0;
2681 Double_t dy = 0;
2682 Double_t dz = 0;
2683 Double_t ProdDistance = 0;
2684
2685 dx = ( (mcPrimaryVtx.At(0)) - (mcPosMotherX) );
2686 dy = ( (mcPrimaryVtx.At(1)) - (mcPosMotherY) );
2687 dz = ( (mcPrimaryVtx.At(2)) - (mcPosMotherZ) );
2688
2689 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
c36344c8 2690 if (ProdDistance < 0.001) lCheckMcK0Short = 1;
2691 else lCheckSecondaryK0s = 1;
2692
2693 }
2694 }
2695 else if( ( (lPDGCodePosDaughter==+2212) && (lPDGCodeNegDaughter==-211) ) )
2696 {
2697 lCheckPIdLambda = 1;
2698 //fHistMCDaughterTrack->Fill(5);
2699 if ( (lIndexPosMother==lIndexNegMother) &&
2700 (lPdgcodeMother==3122) ){
2701 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2702 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2703 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2704 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2705 ) lComeFromSigma = 1;
2706 else lComeFromSigma = 0;
2707
2708
2709 // if ( (lIndexPosMother <= lNbMCPrimary) ||
2710 // ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) )
2711 // ) lCheckMcLambda = 1;
2712 // else lCheckSecondaryLambda = 1;
2713
2714 Double_t dx = 0;
2715 Double_t dy = 0;
2716 Double_t dz = 0;
2717 Double_t ProdDistance = 0;
2718
2719 dx = ( (mcPrimaryVtx.At(0)) - (mcPosMotherX) );
2720 dy = ( (mcPrimaryVtx.At(1)) - (mcPosMotherY) );
2721 dz = ( (mcPrimaryVtx.At(2)) - (mcPosMotherZ) );
2722
fc8819df 2723 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2724
c36344c8 2725
2726 if (ProdDistance < 0.001) lCheckMcLambda = 1;
2727 else lCheckSecondaryLambda = 1;
2728
2729
2730 }
2731 }
2732 else if( ( (lPDGCodePosDaughter==211) && (lPDGCodeNegDaughter==-2212) ) )
2733 {
2734 lCheckPIdAntiLambda = 1;
2735 //fHistMCDaughterTrack->Fill(7);
2736 if ( (lIndexPosMother==lIndexNegMother) &&
2737 (lPdgcodeMother==-3122) ) {
2738 if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) ||
2739 ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) ||
2740 ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) ||
2741 ( TMath::Abs(lPdgcodeMotherOfMother) == 3114)
2742 ) lComeFromSigma = 1;
2743 else lComeFromSigma = 0;
2744
2745 // if ( (lIndexPosMother <= lNbMCPrimary) ||
2746 // ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) )
2747 // ) lCheckMcAntiLambda = 1;
2748 // else lCheckSecondaryAntiLambda = 1;
2749
2750 Double_t dx = 0;
2751 Double_t dy = 0;
2752 Double_t dz = 0;
2753 Double_t ProdDistance = 0;
2754
2755 dx = ( (mcPrimaryVtx.At(0)) - (mcPosMotherX) );
2756 dy = ( (mcPrimaryVtx.At(1)) - (mcPosMotherY) );
2757 dz = ( (mcPrimaryVtx.At(2)) - (mcPosMotherZ) );
2758
fc8819df 2759 ProdDistance = TMath::Sqrt(dx*dx + dy*dy + dz*dz);
2760
c36344c8 2761
2762 if (ProdDistance < 0.001) lCheckMcAntiLambda = 1;
2763 else lCheckSecondaryAntiLambda = 1;
2764
2765 }
2766 }
2767
2768 // Gamma conversion
2769 else if ( (lPDGCodePosDaughter==-11) &&
2770 (lPDGCodeNegDaughter==11) &&
2771 (lPdgcodeMother==22 ) )
2772 lCheckGamma = 1;
2773
2774 } // end "look for associated particles
2775
2776 /////////////////////////////////////
2777 // PID condition for daughters tracks
2778 //////////////////////////////////////
2779
2780 lCheckPIDK0sPosDaughter = 0, lCheckPIDK0sNegDaughter = 0;
2781 lCheckPIDLambdaPosDaughter = 0, lCheckPIDLambdaNegDaughter = 0;
2782 lCheckPIDAntiLambdaPosDaughter = 0, lCheckPIDAntiLambdaNegDaughter = 0;
2783
2784 if (lMomInnerWallPos < lLimitPPID) {
2785 if (nSigmaPosPion < cutNSigmaLowP) {
2786 lCheckPIDK0sPosDaughter = 1;
2787 lCheckPIDAntiLambdaPosDaughter = 1;
2788 }
2789 if (nSigmaPosProton < cutNSigmaLowP) lCheckPIDLambdaPosDaughter = 1;
2790 }
2791
2792 else if (lMomInnerWallPos > lLimitPPID) {
2793 if (nSigmaPosPion < cutNSigmaHighP) {
2794 lCheckPIDK0sPosDaughter = 1;
2795 lCheckPIDAntiLambdaPosDaughter = 1;
2796 }
2797 if (nSigmaPosProton < cutNSigmaHighP) lCheckPIDLambdaPosDaughter = 1;
2798 }
2799
2800 if (lMomInnerWallNeg < lLimitPPID) {
2801 if (nSigmaNegPion < cutNSigmaLowP) {
2802 lCheckPIDK0sNegDaughter = 1;
2803 lCheckPIDLambdaNegDaughter = 1;
2804 }
2805 if (nSigmaNegProton < cutNSigmaLowP) lCheckPIDAntiLambdaNegDaughter = 1;
2806
2807 }
2808 else if (lMomInnerWallNeg > lLimitPPID) {
2809 if (nSigmaNegPion < cutNSigmaHighP) {
2810 lCheckPIDK0sNegDaughter = 1;
2811 lCheckPIDLambdaNegDaughter = 1;
2812 }
2813 if (nSigmaNegProton < cutNSigmaHighP) lCheckPIDAntiLambdaNegDaughter = 1;
2814 }
2815
2816
2817
2818 ///////////////values for cuts/////////////////////////////////////////////////////////////////////////////////////////
2819 if ((lDcaPosToPrimVertex < 0.1) || (lDcaNegToPrimVertex < 0.1) || (lDcaV0Daughters > 1.00) ||
2820 (lV0cosPointAngle < 0.998) || (lV0Radius < 0.9) || (lV0Radius > 100) )
2821
2822 {continue;}
2823
2824 /* {
2825 if (negPiKF) delete negPiKF; negPiKF=NULL;
2826 if (posPiKF) delete posPiKF; posPiKF=NULL;
2827 if (posPKF) delete posPKF; posPKF=NULL;
2828 if (negAPKF) delete negAPKF; negAPKF=NULL;
2829
2830 continue;}
2831 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2832 */
2833
2834
2835/////////////////////////////////
2836//PID for Lambda and AntiLambda
2837/////////////////////////////////
2838
2839 if(fUsePID.Contains("withPID") && (lCheckPIDAntiLambdaNegDaughter==0) && (lCheckPIDLambdaPosDaughter==1)) LambdaPID = 1;
2840
2841 else LambdaPID =0;
2842
2843 if(fUsePID.Contains("withPID") && (lCheckPIDLambdaPosDaughter==0) && (lCheckPIDAntiLambdaNegDaughter==1)) AntiLambdaPID = 1;
2844
2845 else AntiLambdaPID =0;
2846
2847
2848///////////////////////////////////////////////////////////////////////////////////////////
2849// if ((LambdaPID==1 && lPosMom <=1) || (lPosMom>1) || !(fUsePID.Contains("withPID"))){
2850// if ((TMath::Abs(lRapLambda) < lCutRap) && lOnFlyStatus==0) {
2851// fHistTPCsigPLambda->Fill(lPosMom,myTrackPos->GetTPCsignal());
2852//
2853// TestTrackCuts->SetRequireITSRefit(kFALSE);
2854// if(TestTrackCuts->IsSelected(myTrackPos)) fHistPtTracksP->Fill(V0mom[2]);
2855// TestTrackCuts->SetRequireITSRefit(kTRUE);
2856// if(TestTrackCuts->IsSelected(myTrackPos)) fHistPtTracksPITSRefit->Fill(V0mom[2]);
2857// }
2858//
2859// }
2860//
2861// if ((AntiLambdaPID==1 && lNegMom <=1) || (lNegMom>1) || !(fUsePID.Contains("withPID"))){
2862// if ((TMath::Abs(lRapAntiLambda) < lCutRap) && lOnFlyStatus==0) {
2863// fHistTPCsigPAntiLambda->Fill(lNegMom,myTrackNeg->GetTPCsignal());
2864//
2865// }
2866// }
2867///////////////////////////////////////////////////////////////////////////////////////////////
2868
2869
2870 lPLambda = TMath::Sqrt(lPzLambda*lPzLambda + lPtLambda*lPtLambda);
2871
2872 lPAntiLambda = TMath::Sqrt(lPzAntiLambda*lPzAntiLambda + lPtAntiLambda*lPtAntiLambda);
2873
2874 lPK0s = TMath::Sqrt(lPzK0s*lPzK0s + lPtK0s*lPtK0s);
2875
2876 // lcTau = (lV0DecayLength*lLambdaMass)/lPLambda;
2877
2878 //ctau for lambda
2879 lcTauLambda = (lV0DecayLength*lInvMassLambda)/lPLambda;
2880
2881 //ctau for antilambda
2882 lcTauAntiLambda = (lV0DecayLength*lInvMassAntiLambda)/lPAntiLambda;
2883
2884 //ctau for K0s
2885 lcTauK0s = (lV0DecayLength*lInvMassK0s)/lPK0s;
2886
2887
2888//*****************************
2889// filling histograms
2890//*****************************
2891
2892 if (lPLambda <1 && lOnFlyStatus==0 ){
2893 // fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
2894 // fHistcTauL->Fill(lcTauLambda);
2895 }
2896
2897
2898
2899////////////////
2900//K0s particle
2901////////////////
2902
2903 if (lcTauK0s< cutcTauK0s)
2904 {
2905 if(lPtArmV0 >= TMath::Abs(cutArmenteros*lAlphaV0))
2906 {
2907
2908 if (TMath::Abs(lRapK0s) < lCutRap ) {
2909
2910 //////2D histos: cut vs on fly status/////////////////////
2911/*
2912 fHistDcaPosToPrimVertexK0->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2913 fHistDcaNegToPrimVertexK0->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2914 fHistRadiusV0K0->Fill(lV0Radius,lOnFlyStatus);
2915 fHistDecayLengthV0K0->Fill(lV0DecayLength,lOnFlyStatus);
2916 fHistDcaV0DaughtersK0->Fill(lDcaV0Daughters,lOnFlyStatus);
2917 fHistChi2K0->Fill(lChi2V0,lOnFlyStatus);
2918 fHistCosPointAngleK0->Fill(lV0cosPointAngle,lOnFlyStatus);
2919*/
2920 //////2D histos: cut vs mass/////////////////////
2921
2922 if (lOnFlyStatus==0){
2923
2924
2925 fHistMassK0->Fill(lInvMassK0s);
2926 fHistMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
2927 fHistPtVsMassK0->Fill(lInvMassK0s,lPtK0s);
2928 fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
2929
2930 //if (TMath::Abs(lRapK0s) < 0.3 ) fHistPtVsMassK0Rap3->Fill(lInvMassK0s,lPtK0s);
2931/*
2932 fHistDcaPosToPrimVertexK0vsMassK0->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2933 fHistDcaNegToPrimVertexK0vsMassK0->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2934 fHistRadiusV0K0vsMassK0->Fill(lV0Radius,lInvMassK0s);
2935 fHistDecayLengthV0K0vsMassK0->Fill(lV0DecayLength,lInvMassK0s);
2936 fHistDcaV0DaughtersK0vsMassK0->Fill(lDcaV0Daughters,lInvMassK0s);
2937 fHistCosPointAngleK0vsMassK0->Fill(lV0cosPointAngle,lInvMassK0s);
2938 if(fQASelector){
2939 if (lPtK0s>0 && lPtK0s <3){
2940 fHistDcaPosToPrimVertexK0vsMassK0pt1->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2941 fHistDcaNegToPrimVertexK0vsMassK0pt1->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2942 fHistRadiusV0K0vsMassK0pt1->Fill(lV0Radius,lInvMassK0s);
2943 fHistDecayLengthV0K0vsMassK0pt1->Fill(lV0DecayLength,lInvMassK0s);
2944 fHistDcaV0DaughtersK0vsMassK0pt1->Fill(lDcaV0Daughters,lInvMassK0s);
2945 fHistCosPointAngleK0vsMassK0pt1->Fill(lV0cosPointAngle,lInvMassK0s);
2946 }
2947 if (lPtK0s > 3 && lPtK0s < 6){
2948 fHistDcaPosToPrimVertexK0vsMassK0pt2->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2949 fHistDcaNegToPrimVertexK0vsMassK0pt2->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2950 fHistRadiusV0K0vsMassK0pt2->Fill(lV0Radius,lInvMassK0s);
2951 fHistDecayLengthV0K0vsMassK0pt2->Fill(lV0DecayLength,lInvMassK0s);
2952 fHistDcaV0DaughtersK0vsMassK0pt2->Fill(lDcaV0Daughters,lInvMassK0s);
2953 fHistCosPointAngleK0vsMassK0pt2->Fill(lV0cosPointAngle,lInvMassK0s);
2954 }
2955 if (lPtK0s > 6 && lPtK0s < 10){
2956 fHistDcaPosToPrimVertexK0vsMassK0pt3->Fill(lDcaPosToPrimVertex,lInvMassK0s);
2957 fHistDcaNegToPrimVertexK0vsMassK0pt3->Fill(lDcaNegToPrimVertex,lInvMassK0s);
2958 fHistRadiusV0K0vsMassK0pt3->Fill(lV0Radius,lInvMassK0s);
2959 fHistDecayLengthV0K0vsMassK0pt3->Fill(lV0DecayLength,lInvMassK0s);
2960 fHistDcaV0DaughtersK0vsMassK0pt3->Fill(lDcaV0Daughters,lInvMassK0s);
2961 fHistCosPointAngleK0vsMassK0pt3->Fill(lV0cosPointAngle,lInvMassK0s);
2962 }
2963 } //fQASelector*/
2964 }
2965 } // if rap. condition
2966 } //end Armenteros cut condition
2967 }//end ctau cut
2968
2969
2970///////////////////
2971//Lambda particle
2972///////////////////
2973
2974
2975 if (lcTauLambda < cutcTauL){
2976
2977 if ((LambdaPID==1 && lMomInnerWallPos <=1 ) || (lMomInnerWallPos > 1) || !(fUsePID.Contains("withPID") )){
2978
2979 if (TMath::Abs(lRapLambda) < lCutRap) {
2980
2981 //////2D histos: cut vs on fly status/////////////////////
2982/*
2983 fHistDcaPosToPrimVertexL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
2984 fHistDcaNegToPrimVertexL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
2985 fHistRadiusV0L->Fill(lV0Radius,lOnFlyStatus);
2986 fHistDecayLengthV0L->Fill(lV0DecayLength,lOnFlyStatus);
2987 fHistDcaV0DaughtersL->Fill(lDcaV0Daughters,lOnFlyStatus);
2988 fHistChi2L->Fill(lChi2V0,lOnFlyStatus);
2989 fHistCosPointAngleL->Fill(lV0cosPointAngle,lOnFlyStatus);
2990*/
2991 //////2D histos: cut vs mass/////////////////////
2992
2993 if (lOnFlyStatus==0){
2994 fHistMassLambda->Fill(lInvMassLambda);
2995 fHistMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
2996 fHistPtVsMassLambda->Fill(lInvMassLambda,lPtLambda);
2997
2998 //if (TMath::Abs(lRapLambda) < 0.3 ) fHistPtVsMassLambdaRap3->Fill(lInvMassLambda,lPtLambda);
2999
3000 // if(lPtLambda <=1) fHistNSigmaProton->Fill(nSigmaPosProton);
3001/*
3002 fHistDcaPosToPrimVertexLvsMassL->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3003 fHistDcaNegToPrimVertexLvsMassL->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3004 fHistRadiusV0LvsMassL->Fill(lV0Radius,lInvMassLambda);
3005 fHistDecayLengthV0LvsMassL->Fill(lV0DecayLength,lInvMassLambda);
3006 fHistDcaV0DaughtersLvsMassL->Fill(lDcaV0Daughters,lInvMassLambda);
3007 fHistCosPointAngleLvsMassL->Fill(lV0cosPointAngle,lInvMassLambda);
3008
3009 if(fQASelector){
3010 if (lPtLambda>0 && lPtLambda <3){
3011 fHistDcaPosToPrimVertexLambdaVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3012 fHistDcaNegToPrimVertexLambdaVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3013 fHistRadiusV0LambdaVsMasspt1->Fill(lV0Radius,lInvMassLambda);
3014 fHistDecayLengthV0LambdaVsMasspt1->Fill(lV0DecayLength,lInvMassLambda);
3015 fHistDcaV0DaughtersLambdaVsMasspt1->Fill(lDcaV0Daughters,lInvMassLambda);
3016 fHistCosPointAngleLambdaVsMasspt1->Fill(lV0cosPointAngle,lInvMassLambda);
3017 }
3018 if (lPtLambda > 3 && lPtLambda < 6){
3019 fHistDcaPosToPrimVertexLambdaVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3020 fHistDcaNegToPrimVertexLambdaVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3021 fHistRadiusV0LambdaVsMasspt2->Fill(lV0Radius,lInvMassLambda);
3022 fHistDecayLengthV0LambdaVsMasspt2->Fill(lV0DecayLength,lInvMassLambda);
3023 fHistDcaV0DaughtersLambdaVsMasspt2->Fill(lDcaV0Daughters,lInvMassLambda);
3024 fHistCosPointAngleLambdaVsMasspt2->Fill(lV0cosPointAngle,lInvMassLambda);
3025 }
3026 if (lPtLambda > 6 && lPtLambda < 10){
3027 fHistDcaPosToPrimVertexLambdaVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassLambda);
3028 fHistDcaNegToPrimVertexLambdaVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassLambda);
3029 fHistRadiusV0LambdaVsMasspt3->Fill(lV0Radius,lInvMassLambda);
3030 fHistDecayLengthV0LambdaVsMasspt3->Fill(lV0DecayLength,lInvMassLambda);
3031 fHistDcaV0DaughtersLambdaVsMasspt3->Fill(lDcaV0Daughters,lInvMassLambda);
3032 fHistCosPointAngleLambdaVsMasspt3->Fill(lV0cosPointAngle,lInvMassLambda);
3033 }
3034 }//QA Selector*/
3035 }
3036 } //end of Rap condition
3037 } // end of PID condition
3038 } // end ctau condition
3039
3040
3041//////////////////////////////
3042// Anti Lambda ///////////////
3043//////////////////////////////
3044
3045 if (lcTauAntiLambda < cutcTauL){
3046
3047 if ((AntiLambdaPID==1 && lMomInnerWallNeg <=1) || (lMomInnerWallNeg>1) || !(fUsePID.Contains("withPID"))){
3048
3049 if (TMath::Abs(lRapAntiLambda) < lCutRap) {
3050
3051 //////2D histos: cut vs on fly status/////////////////////
3052/*
3053 fHistDcaPosToPrimVertexAntiL->Fill(lDcaPosToPrimVertex,lOnFlyStatus);
3054 fHistDcaNegToPrimVertexAntiL->Fill(lDcaNegToPrimVertex,lOnFlyStatus);
3055 fHistRadiusV0AntiL->Fill(lV0Radius,lOnFlyStatus);
3056 fHistDecayLengthV0AntiL->Fill(lV0DecayLength,lOnFlyStatus);
3057 fHistDcaV0DaughtersAntiL->Fill(lDcaV0Daughters,lOnFlyStatus);
3058 fHistChi2AntiL->Fill(lChi2V0,lOnFlyStatus);
3059 fHistCosPointAngleAntiL->Fill(lV0cosPointAngle,lOnFlyStatus);
3060*/
3061 //////2D histos: cut vs mass/////////////////////
3062
3063 if (lOnFlyStatus==0){
3064
3065 fHistMassAntiLambda->Fill(lInvMassAntiLambda);
3066 fHistMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
3067 fHistPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda);
3068
3069 //if (TMath::Abs(lRapAntiLambda) < 0.3) fHistPtVsMassAntiLambdaRap3->Fill(lInvMassAntiLambda,lPtAntiLambda);
3070
3071/*
3072 fHistDcaPosToPrimVertexAntiLvsMass->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3073 fHistDcaNegToPrimVertexAntiLvsMass->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3074 fHistRadiusV0AntiLvsMass->Fill(lV0Radius,lInvMassAntiLambda);
3075 fHistDecayLengthV0AntiLvsMass->Fill(lV0DecayLength,lInvMassAntiLambda);
3076 fHistDcaV0DaughtersAntiLvsMass->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3077 fHistCosPointAngleAntiLvsMass->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3078
3079 if(fQASelector){
3080 if (lPtAntiLambda>0 && lPtAntiLambda <3){
3081 fHistDcaPosToPrimVertexAntiLVsMasspt1->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3082 fHistDcaNegToPrimVertexAntiLVsMasspt1->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3083 fHistRadiusV0AntiLVsMasspt1->Fill(lV0Radius,lInvMassAntiLambda);
3084 fHistDecayLengthV0AntiLVsMasspt1->Fill(lV0DecayLength,lInvMassAntiLambda);
3085 fHistDcaV0DaughtersAntiLVsMasspt1->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3086 fHistCosPointAngleAntiLVsMasspt1->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3087 }
3088 if (lPtAntiLambda > 3 && lPtAntiLambda < 6){
3089 fHistDcaPosToPrimVertexAntiLVsMasspt2->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3090 fHistDcaNegToPrimVertexAntiLVsMasspt2->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3091 fHistRadiusV0AntiLVsMasspt2->Fill(lV0Radius,lInvMassAntiLambda);
3092 fHistDecayLengthV0AntiLVsMasspt2->Fill(lV0DecayLength,lInvMassAntiLambda);
3093 fHistDcaV0DaughtersAntiLVsMasspt2->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3094 fHistCosPointAngleAntiLVsMasspt2->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3095 }
3096 if (lPtAntiLambda > 6 && lPtAntiLambda < 10){
3097 fHistDcaPosToPrimVertexAntiLVsMasspt3->Fill(lDcaPosToPrimVertex,lInvMassAntiLambda);
3098 fHistDcaNegToPrimVertexAntiLVsMasspt3->Fill(lDcaNegToPrimVertex,lInvMassAntiLambda);
3099 fHistRadiusV0AntiLVsMasspt3->Fill(lV0Radius,lInvMassAntiLambda);
3100 fHistDecayLengthV0AntiLVsMasspt3->Fill(lV0DecayLength,lInvMassAntiLambda);
3101 fHistDcaV0DaughtersAntiLVsMasspt3->Fill(lDcaV0Daughters,lInvMassAntiLambda);
3102 fHistCosPointAngleAntiLVsMasspt3->Fill(lV0cosPointAngle,lInvMassAntiLambda);
3103 }
3104 } //QA Selector*/
3105 }
3106 } //end of Rap condition
3107 } // end of PID condition
3108 } //end ctau cut
3109
3110
3111
3112
3113 // Histo versus Rap and armenteros plot
3114 if (!lOnFlyStatus){
3115 //if (lCheckMcK0Short) fHistAsMcRapK0->Fill(lRapK0s);
3116 //if (lCheckMcLambda) fHistAsMcRapLambda->Fill(lRapLambda);
3117 //if (lCheckMcAntiLambda) fHistAsMcRapLambda->Fill(lRapAntiLambda);
3118 // fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0);
3119 //if ((TMath::Abs(lRapK0s) < lCutRap)&&(TMath::Abs(lRapLambda) < lCutRap)) fHistK0sMassVsLambdaMass->Fill(lInvMassK0s,lInvMassLambda);
3120 }
3121
3122
3123///////////////////////////////////////////////////
3124// K0s associated histograms in |rap| < lCutRap:
3125///////////////////////////////////////////////////
3126
3127
3128 if (lcTauK0s< cutcTauK0s )
3129 {
3130 if(lPtArmV0 >= TMath::Abs(cutArmenteros*lAlphaV0))
3131 {
3132
08258f9c 3133 if ((lCheckMcK0Short || lCheckSecondaryK0s) && TMath::Abs(mcMotherRap) < lCutRap) {
c36344c8 3134
3135 // fHistNsigmaPosPionK0->Fill(nSigmaPosPion);
3136 // fHistNsigmaNegPionK0->Fill(nSigmaNegPion);
3137
3138 switch (lOnFlyStatus){
3139 case 0 :
3140
3141
3142 // fHistMultVsPtVsMassK0->Fill(multiplicity ,lInvMassK0s,lPtK0s);
3143 //if(lCheckPIdK0Short) fHistPidMcMassK0->Fill(lInvMassK0s);
3144 if(lCheckMcK0Short) {
3145 fHistAsMcMassK0->Fill(lInvMassK0s);
3146 //fHistAsMcPtK0->Fill(lPtK0s);
08258f9c 3147 fHistAsMcPtVsMassK0->Fill(lInvMassK0s,mcMotherPt);
c36344c8 3148/*
3149 if (TMath::Abs(lRapK0s) < 0.3){
3150 fHistAsMcMassK0Rap3->Fill(lInvMassK0s);
3151 fHistAsMcPtK0Rap3->Fill(lPtK0s);
3152 fHistAsMcPtVsMassK0Rap3->Fill(lInvMassK0s,lPtK0s);
3153 }
3154
3155
3156 if (lPtK0s <= 1) fHistAsMcPtZoomK0->Fill(lPtK0s);
3157 fHistAsMcMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s);
3158 fHistAsMcResxK0->Fill(rcPosXK0s-mcPosX);
3159 fHistAsMcResyK0->Fill(rcPosYK0s-mcPosY);
3160 fHistAsMcReszK0->Fill(rcPosZK0s-mcPosZ);
3161 fHistAsMcResrVsRadiusK0->Fill(rcPosRK0s,rcPosRK0s-mcPosR);
3162 fHistAsMcReszVsRadiusK0->Fill(rcPosZK0s,rcPosZK0s-mcPosZ);
3163 fHistAsMcProdRadiusK0->Fill(mcPosMotherR);
3164 fHistAsMcProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
3165 fHistAsMcResPtK0->Fill(deltaPtK0s);
3166 fHistAsMcResPtVsRapK0->Fill(deltaPtK0s,lRapK0s);
3167 fHistAsMcResPtVsPtK0->Fill(deltaPtK0s,lPtK0s);*/
3168 }
3169 else if (lCheckSecondaryK0s) {
08258f9c 3170 fHistAsMcSecondaryPtVsRapK0s->Fill(mcMotherPt,lRapK0s);
3171 fHistAsMcSecondaryPtVsMassK0s->Fill(lInvMassK0s,mcMotherPt);
c36344c8 3172 // fHistAsMcSecondaryProdRadiusK0s->Fill(mcPosMotherR);
3173 // fHistAsMcSecondaryProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY);
3174 /* switch (lPdgcodeMotherOfMother) {
3175 case 130 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(0.5);break; // K0L
3176 case 321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(1.5);break; // K+
3177 case -321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(2.5);break; // K-
3178 case -3122 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(3.5);break; //AntiLambda
3179 default : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(6.5);break;
3180 }*/
3181 }
3182 break;
3183
3184 }
3185 } // end rapidity condition
3186 } // end Armenteros condition
3187 }// end ctau cut
3188
3189///////////////////////////////////////////////////
3190// Associated Lambda histograms in |rap| < lCutRap
3191////////////////////////////////////////////////////
3192
3193 if (lcTauLambda < cutcTauL){
3194
3195 // if ((LambdaPID==1 && lMomInnerWallPos <=1) || (lMomInnerWallPos>1) || !(fUsePID.Contains("withPID"))){
3196
08258f9c 3197 if ((lCheckMcLambda || lCheckSecondaryLambda) && TMath::Abs(mcMotherRap) < lCutRap) {
c36344c8 3198
3199 // fHistNsigmaPosProtonLambda->Fill(nSigmaPosProton);
3200 // fHistNsigmaNegPionLambda->Fill(nSigmaNegPion);
3201 switch (lOnFlyStatus){
3202 case 0 :
3203
3204 // fHistMultVsPtVsMassLambda->Fill(multiplicity ,lInvMassLambda,lPtLambda);
3205 //if(lCheckPIdLambda) fHistPidMcMassLambda->Fill(lInvMassLambda);
3206
3207 if(lCheckMcLambda) {
3208
3209 fHistAsMcMassLambda->Fill(lInvMassLambda);
3210 // fHistAsMcPtLambda->Fill(lPtLambda);
3211 // fHistCosPointAngleLvsMassVsPtsigL->Fill(lPtLambda,lV0cosPointAngle,lInvMassLambda);
08258f9c 3212 fHistAsMcPtVsMassLambda->Fill(lInvMassLambda,mcMotherPt);
c36344c8 3213
3214 /* if (TMath::Abs(lRapLambda) < 0.3) {
3215 fHistAsMcMassLambdaRap3->Fill(lInvMassLambda);
3216 fHistAsMcPtLambdaRap3->Fill(lPtLambda);
3217 fHistAsMcPtVsMassLambdaRap3->Fill(lInvMassLambda,lPtLambda);
3218 }*/
3219
3220/*
3221 if (lPtLambda <= 1) fHistAsMcPtZoomLambda->Fill(lPtLambda);
3222 fHistAsMcMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda);
3223 fHistAsMcResxLambda->Fill(rcPosXLambda-mcPosX);
3224 fHistAsMcResyLambda->Fill(rcPosYLambda-mcPosY);
3225 fHistAsMcReszLambda->Fill(rcPosZLambda-mcPosZ);
3226 fHistAsMcResrVsRadiusLambda->Fill(rcPosRLambda,rcPosRLambda-mcPosR);
3227 fHistAsMcReszVsRadiusLambda->Fill(rcPosZLambda,rcPosZLambda-mcPosZ);
3228 fHistAsMcProdRadiusLambda->Fill(mcPosMotherR);
3229 fHistAsMcProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
3230 fHistAsMcResPtLambda->Fill(deltaPtLambda);
3231 fHistAsMcResPtVsRapLambda->Fill(deltaPtLambda,lRapLambda);
3232 fHistAsMcResPtVsPtLambda->Fill(deltaPtLambda,lPtLambda);
3233 if (lComeFromSigma) fHistAsMcPtLambdaFromSigma->Fill(lPtLambda);
3234 switch (lPdgcodeMotherOfMother) {
3235 case 3222 : fHistAsMcMotherPdgCodeLambda->Fill(0.5); break; // Sigma +
3236 case 3212 : fHistAsMcMotherPdgCodeLambda->Fill(1.5); break; // Sigma 0
3237 case 3112 : fHistAsMcMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
3238 case 3224 : fHistAsMcMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
3239 case 3214 : fHistAsMcMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
3240 case 3114 : fHistAsMcMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
3241 case 3322 : fHistAsMcMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
3242 case 3312 : fHistAsMcMotherPdgCodeLambda->Fill(7.5); break; // Xi -
3243 case 3334 : fHistAsMcMotherPdgCodeLambda->Fill(8.5); break; // Omega
3244 case -1 : fHistAsMcMotherPdgCodeLambda->Fill(9.5); break;
3245 default : fHistAsMcMotherPdgCodeLambda->Fill(10.5);break;
3246 }*/
3247
3248 //printf("found Lambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtLambda,lInvMassLambda);
3249 //printf("found Lambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
3250
3251 }
3252
3253 else if (lCheckSecondaryLambda) {
08258f9c 3254 fHistAsMcSecondaryPtVsRapLambda->Fill(mcMotherPt,lRapLambda);
3255 fHistAsMcSecondaryPtVsMassLambda->Fill(lInvMassLambda,mcMotherPt);
c36344c8 3256 //fHistAsMcSecondaryProdRadiusLambda->Fill(mcPosMotherR);
3257 /* fHistAsMcSecondaryProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY);
3258 if (lComeFromSigma) fHistAsMcSecondaryPtLambdaFromSigma->Fill(lPtLambda);
3259 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
3260 switch (lPdgcodeMotherOfMother) {
3261 case 3222 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(0.5); break;// Sigma +
3262 case 3212 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(1.5); break;// Sigma 0
3263 case 3112 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(2.5); break;// Sigma -
3264 case 3224 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) +
3265 case 3214 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0
3266 case 3114 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) -
3267 case 3322 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(6.5); break; // Xi 0
3268 case 3312 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(7.5); break; // Xi -
3269 case 3334 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(8.5); break; // Omega
3270 case -1 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(9.5); break;
3271 default : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(10.5);break;
3272 }*/
3273 }
3274
3275 // if(!lCheckMcLambda)fHistCosPointAngleLvsMassVsPtbackL->Fill(lPtLambda,lV0cosPointAngle,lInvMassLambda);
3276 break;
3277
3278 }
3279 } // end rapidity condition
3280 // }// end PID condition
3281 }// end ctau condition
3282
3283////////////////////////////////////////////////////////
3284// Associated AntiLambda histograms in |rap| < lCutRap
3285////////////////////////////////////////////////////////
3286
3287 if (lcTauAntiLambda < cutcTauL){
3288
3289 // if ((AntiLambdaPID==1 && lMomInnerWallNeg <=1) || (lMomInnerWallNeg>1) || !(fUsePID.Contains("withPID"))){
3290
08258f9c 3291 if ((lCheckMcAntiLambda || lCheckSecondaryAntiLambda) && TMath::Abs(mcMotherRap) < lCutRap) {
c36344c8 3292
3293 // fHistNsigmaPosProtonAntiLambda->Fill(nSigmaPosProton);
3294 // fHistNsigmaNegPionAntiLambda->Fill(nSigmaNegPion);
3295 switch (lOnFlyStatus){
3296 case 0 :
3297
3298 // fHistMultVsPtVsMassAntiLambda->Fill(multiplicity ,lInvMassAntiLambda,lPtAntiLambda);
3299 //if(lCheckPIdAntiLambda) fHistPidMcMassAntiLambda->Fill(lInvMassAntiLambda);
3300
3301 if(lCheckMcAntiLambda) {
3302
3303 fHistAsMcMassAntiLambda->Fill(lInvMassAntiLambda);
3304 // fHistAsMcPtAntiLambda->Fill(lPtAntiLambda);
08258f9c 3305 fHistAsMcPtVsMassAntiLambda->Fill(lInvMassAntiLambda,mcMotherPt);
c36344c8 3306/*
3307 if (TMath::Abs(lRapAntiLambda) < 0.3) {
3308 fHistAsMcMassAntiLambdaRap3->Fill(lInvMassAntiLambda);
3309 fHistAsMcPtAntiLambdaRap3->Fill(lPtAntiLambda);
3310 fHistAsMcPtVsMassAntiLambdaRap3->Fill(lInvMassAntiLambda,lPtAntiLambda);
3311 }*/
3312
3313/*
3314 if (lPtAntiLambda <= 1) fHistAsMcPtZoomAntiLambda->Fill(lPtAntiLambda);
3315 fHistAsMcMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda);
3316 fHistAsMcResxAntiLambda->Fill(rcPosXAntiLambda-mcPosX);
3317 fHistAsMcResyAntiLambda->Fill(rcPosYAntiLambda-mcPosY);
3318 fHistAsMcReszAntiLambda->Fill(rcPosZAntiLambda-mcPosZ);
3319 fHistAsMcResrVsRadiusAntiLambda->Fill(rcPosRAntiLambda,rcPosRAntiLambda-mcPosR);
3320 fHistAsMcReszVsRadiusAntiLambda->Fill(rcPosZAntiLambda,rcPosZAntiLambda-mcPosZ);
3321 fHistAsMcProdRadiusAntiLambda->Fill(mcPosMotherR);
3322 fHistAsMcProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
3323 fHistAsMcResPtAntiLambda->Fill(deltaPtAntiLambda);
3324 fHistAsMcResPtVsRapAntiLambda->Fill(deltaPtAntiLambda,lRapAntiLambda);
3325 fHistAsMcResPtVsPtAntiLambda->Fill(deltaPtAntiLambda,lPtAntiLambda);
3326 if (lComeFromSigma) fHistAsMcPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
3327 switch (lPdgcodeMotherOfMother) {
3328 case 3222 : fHistAsMcMotherPdgCodeAntiLambda->Fill(0.5); break; // Sigma +
3329 case 3212 : fHistAsMcMotherPdgCodeAntiLambda->Fill(1.5); break; // Sigma 0
3330 case 3112 : fHistAsMcMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
3331 case 3224 : fHistAsMcMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
3332 case 3214 : fHistAsMcMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
3333 case 3114 : fHistAsMcMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
3334 case 3322 : fHistAsMcMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
3335 case 3312 : fHistAsMcMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
3336 case 3334 : fHistAsMcMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
3337
3338 case -1 : fHistAsMcMotherPdgCodeAntiLambda->Fill(9.5); break;
3339 default : fHistAsMcMotherPdgCodeAntiLambda->Fill(10.5);break;
3340 }*/
3341
3342 //printf("found AntiLambda RC dcaPos=%e dcaNeg=%e dcaDau=%e cosP=%e pT=%e mass=%e\n",lDcaPosToPrimVertex ,lDcaNegToPrimVertex ,lDcaV0Daughters,lV0cosPointAngle,lPtAntiLambda,lInvMassAntiLambda);
3343 //printf("found AntiLambda RC Pindex=%d Nindex=%d Plabel=%d Nlabel=%d\n\n",lIndexTrackPos,lIndexTrackNeg,lLabelTrackPos,lLabelTrackNeg);
3344
3345 }
3346
3347 else if (lCheckSecondaryAntiLambda) {
08258f9c 3348 fHistAsMcSecondaryPtVsRapAntiLambda->Fill(mcMotherPt,lRapAntiLambda);
3349 fHistAsMcSecondaryPtVsMassAntiLambda->Fill(lInvMassAntiLambda,mcMotherPt);
c36344c8 3350 // fHistAsMcSecondaryProdRadiusAntiLambda->Fill(mcPosMotherR);
3351 // fHistAsMcSecondaryProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY);
3352 /* if (lComeFromSigma) fHistAsMcSecondaryPtAntiLambdaFromSigma->Fill(lPtAntiLambda);
3353 printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother);
3354 switch (lPdgcodeMotherOfMother) {
3355 case 3222 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(0.5); break;// Sigma +
3356 case 3212 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(1.5); break;// Sigma 0
3357 case 3112 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma -
3358 case 3224 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) +
3359 case 3214 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0
3360 case 3114 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) -
3361 case 3322 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0
3362 case 3312 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi -
3363 case 3334 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega
3364 case -1 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(9.5); break;
3365 default : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(10.5);break;
3366 }*/
3367 }
3368 break;
3369
3370 }
3371 } // end rapidity condition
3372 // }// end PID condition
3373 }// end ctau cut
3374
3375 } // end V0 loop
3376
3377 // if (primaryVtxKF) delete primaryVtxKF;primaryVtxKF=NULL ;
3378
3379
3380 fHistV0Multiplicity->Fill(nv0s);
3381 // fHistV0MultiplicityMI->Fill(nv0sMI);
3382
3383 if (fAnalysisType == "ESD") { if(myPrimaryVertex) delete myPrimaryVertex; }
3384 if (fAnalysisType == "ESD") { if(TestTrackCuts) delete TestTrackCuts; }
3385
3386
3387 // Post output data
3388 PostData(1, fListHist);
3389}
3390
3391//________________________________________________________________________
3392void AliAnalysisTaskLK0Spectra::Terminate(Option_t *)
3393{/*
3394 // Draw result to the screen
3395 // Called once at the end of the query
3396
3397 TList *cRetrievedList = 0x0;
3398 cRetrievedList = (TList*)GetOutputData(1);
3399
3400 if(!cRetrievedList){
3401 AliWarning("ERROR - AliAnalysisTaskLK0Spectra: output data container list not available\n"); return;
3402 }
3403
3404
3405 fHistV0Multiplicity = dynamic_cast<TH1F*> ( cRetrievedList->FindObject("fHistV0Multiplicity"));
3406 if (!fHistV0Multiplicity) {
3407 Printf("ERROR: fHistV0Multiplicity not available");
3408 return;
3409 }
3410
3411 fHistV0MultiplicityMI = dynamic_cast<TH1F*> ( cRetrievedList->FindObject("fHistV0MultiplicityMI"));
3412 if (!fHistV0MultiplicityMI) {
3413 Printf("ERROR: fHistV0MultiplicityMI not available");
3414 return;
3415 }
3416
3417 TCanvas *canLK0Spectra = new TCanvas("AliAnalysisTaskCheckV0","Multiplicity",10,10,510,510);
3418 canLK0Spectra->Divide(2,1);
3419 if (fHistV0Multiplicity->GetMaximum() > 0.) canLK0Spectra->cd(1)->SetLogy();
3420 fHistV0Multiplicity->SetMarkerStyle(25);
3421 fHistV0Multiplicity->DrawCopy("E");
3422 if (fHistV0MultiplicityMI->GetMaximum() > 0.) canLK0Spectra->cd(2)->SetLogy();
3423 fHistV0MultiplicityMI->SetMarkerStyle(24);
3424 fHistV0MultiplicityMI->DrawCopy("E");
3425
3426
3427 */
3428}
3429
3430//----------------------------------------------------------------------------
3431
3432Double_t AliAnalysisTaskLK0Spectra::MyRapidity(Double_t rE, Double_t rPz) const
3433{
3434 // Local calculation for rapidity
3435 return 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13));
3436}
3437//----------------------------------------------------------------------------
3438