]>
Commit | Line | Data |
---|---|---|
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 | ||
79 | ClassImp(AliAnalysisTaskLK0Spectra) | |
80 | ||
81 | ||
82 | //________________________________________________________________________ | |
83 | AliAnalysisTaskLK0Spectra::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 | |
86 | fHistMCPrimaryVertexX(0), | |
87 | fHistMCPrimaryVertexY(0), | |
88 | fHistMCPrimaryVertexZ(0),/* | |
89 | fHistPtTracksITSRefit(0), | |
90 | fHistPtTracks(0), | |
91 | fHistPtTracksPITSRefit(0), | |
92 | fHistPtTracksP(0),*/ | |
93 | fHistMCMultiplicityPrimary(0), | |
94 | fHistMCMultiplicityTracks(0),/* | |
95 | fHistTPCTracks(0), | |
96 | fHistMCtracksProdRadiusK0s(0), | |
97 | fHistMCtracksProdRadiusLambda(0), | |
98 | fHistMCtracksProdRadiusAntiLambda(0), | |
99 | fHistMCtracksDecayRadiusK0s(0), | |
100 | fHistMCtracksDecayRadiusLambda(0), | |
101 | fHistMCtracksDecayRadiusAntiLambda(0), | |
102 | */ | |
103 | fHistMCPtAllK0s(0), | |
104 | fHistMCPtAllLambda(0), | |
105 | fHistMCPtAllAntiLambda(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 | ||
128 | fHistMCPtK0s(0), | |
129 | fHistMCPtLambda(0), | |
130 | fHistMCPtAntiLambda(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),*/ | |
148 | fHistNumberEvents(0), | |
149 | fHistTrackPerEvent(0), | |
150 | fHistTPCMult(0),/* | |
151 | fHistTrackletPerEvent(0), | |
152 | fHistMCDaughterTrack(0), | |
153 | fHistSPDPrimaryVertexZ(0),*/ | |
154 | fHistPrimaryVertexX(0), | |
155 | fHistPrimaryVertexY(0), | |
156 | fHistPrimaryVertexZ(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 | ///////////////////////////////////////// | |
286 | fHistV0Multiplicity(0), | |
287 | fHistMassK0(0), | |
288 | fHistMassLambda(0), | |
289 | fHistMassAntiLambda(0), | |
290 | fHistMassVsRadiusK0(0), | |
291 | fHistMassVsRadiusLambda(0), | |
292 | fHistMassVsRadiusAntiLambda(0), | |
293 | ||
294 | /////////////////////////////////////// | |
295 | fHistPtVsMassK0(0), | |
296 | fHistPtVsMassLambda(0), | |
297 | fHistPtVsMassAntiLambda(0),/* | |
298 | ||
299 | /// Rap3 | |
300 | fHistPtVsMassK0Rap3(0), | |
301 | fHistPtVsMassLambdaRap3(0), | |
302 | fHistPtVsMassAntiLambdaRap3(0),*/ | |
303 | ||
304 | //////////////////////////////////////// | |
305 | ||
306 | fHistArmenterosPodolanski(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 | ||
352 | fHistAsMcMassK0(0), | |
353 | fHistAsMcMassLambda(0), | |
354 | fHistAsMcMassAntiLambda(0),/* | |
355 | ||
356 | /// Rap3 | |
357 | fHistAsMcMassK0Rap3(0), | |
358 | fHistAsMcMassLambdaRap3(0), | |
359 | fHistAsMcMassAntiLambdaRap3(0),*/ | |
360 | ||
361 | ||
362 | fHistAsMcPtVsMassK0(0), | |
363 | fHistAsMcPtVsMassLambda(0), | |
364 | fHistAsMcPtVsMassAntiLambda(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),*/ | |
405 | fHistAsMcSecondaryPtVsRapK0s(0), | |
406 | fHistAsMcSecondaryPtVsRapLambda(0), | |
407 | fHistAsMcSecondaryPtVsRapAntiLambda(0), | |
408 | fHistAsMcSecondaryPtVsMassK0s(0), | |
409 | fHistAsMcSecondaryPtVsMassLambda(0), | |
410 | fHistAsMcSecondaryPtVsMassAntiLambda(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 | //________________________________________________________________________ | |
432 | AliAnalysisTaskLK0Spectra::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 | |
435 | fHistMCPrimaryVertexX(0), | |
436 | fHistMCPrimaryVertexY(0), | |
437 | fHistMCPrimaryVertexZ(0),/* | |
438 | fHistPtTracksITSRefit(0), | |
439 | fHistPtTracks(0), | |
440 | fHistPtTracksPITSRefit(0), | |
441 | fHistPtTracksP(0),*/ | |
442 | fHistMCMultiplicityPrimary(0), | |
443 | fHistMCMultiplicityTracks(0),/* | |
444 | fHistTPCTracks(0), | |
445 | fHistMCtracksProdRadiusK0s(0), | |
446 | fHistMCtracksProdRadiusLambda(0), | |
447 | fHistMCtracksProdRadiusAntiLambda(0), | |
448 | fHistMCtracksDecayRadiusK0s(0), | |
449 | fHistMCtracksDecayRadiusLambda(0), | |
450 | fHistMCtracksDecayRadiusAntiLambda(0), | |
451 | */ | |
452 | fHistMCPtAllK0s(0), | |
453 | fHistMCPtAllLambda(0), | |
454 | fHistMCPtAllAntiLambda(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 | ||
477 | fHistMCPtK0s(0), | |
478 | fHistMCPtLambda(0), | |
479 | fHistMCPtAntiLambda(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),*/ | |
497 | fHistNumberEvents(0), | |
498 | fHistTrackPerEvent(0), | |
499 | fHistTPCMult(0),/* | |
500 | fHistTrackletPerEvent(0), | |
501 | fHistMCDaughterTrack(0), | |
502 | fHistSPDPrimaryVertexZ(0),*/ | |
503 | fHistPrimaryVertexX(0), | |
504 | fHistPrimaryVertexY(0), | |
505 | fHistPrimaryVertexZ(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 | ///////////////////////////////////////// | |
635 | fHistV0Multiplicity(0), | |
636 | fHistMassK0(0), | |
637 | fHistMassLambda(0), | |
638 | fHistMassAntiLambda(0), | |
639 | fHistMassVsRadiusK0(0), | |
640 | fHistMassVsRadiusLambda(0), | |
641 | fHistMassVsRadiusAntiLambda(0), | |
642 | ||
643 | /////////////////////////////////////// | |
644 | fHistPtVsMassK0(0), | |
645 | fHistPtVsMassLambda(0), | |
646 | fHistPtVsMassAntiLambda(0),/* | |
647 | ||
648 | /// Rap3 | |
649 | fHistPtVsMassK0Rap3(0), | |
650 | fHistPtVsMassLambdaRap3(0), | |
651 | fHistPtVsMassAntiLambdaRap3(0),*/ | |
652 | ||
653 | //////////////////////////////////////// | |
654 | ||
655 | fHistArmenterosPodolanski(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 | ||
701 | fHistAsMcMassK0(0), | |
702 | fHistAsMcMassLambda(0), | |
703 | fHistAsMcMassAntiLambda(0),/* | |
704 | ||
705 | /// Rap3 | |
706 | fHistAsMcMassK0Rap3(0), | |
707 | fHistAsMcMassLambdaRap3(0), | |
708 | fHistAsMcMassAntiLambdaRap3(0),*/ | |
709 | ||
710 | ||
711 | fHistAsMcPtVsMassK0(0), | |
712 | fHistAsMcPtVsMassLambda(0), | |
713 | fHistAsMcPtVsMassAntiLambda(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),*/ | |
754 | fHistAsMcSecondaryPtVsRapK0s(0), | |
755 | fHistAsMcSecondaryPtVsRapLambda(0), | |
756 | fHistAsMcSecondaryPtVsRapAntiLambda(0), | |
757 | fHistAsMcSecondaryPtVsMassK0s(0), | |
758 | fHistAsMcSecondaryPtVsMassLambda(0), | |
759 | fHistAsMcSecondaryPtVsMassAntiLambda(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 | } | |
781 | AliAnalysisTaskLK0Spectra::~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 | //________________________________________________________________________ | |
792 | void 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 | ||
941 | fHistMCPtAntiLambdaRap3 = 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 | //________________________________________________________________________ | |
1736 | void 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 | //________________________________________________________________________ | |
3392 | void 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 | ||
3432 | Double_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 |