]>
Commit | Line | Data |
---|---|---|
9c7b62a0 | 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 | // AliAnalysisTaskPerformanceSrange 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 "TF1.h" | |
32 | #include "TList.h" | |
33 | #include "TMath.h" | |
34 | #include "TCanvas.h" | |
35 | ||
36 | #include "AliAnalysisManager.h" | |
37 | ||
2093003d | 38 | #include "AliPhysicsSelection.h" |
39 | ||
9c7b62a0 | 40 | #include "AliESDVertex.h" |
41 | #include "AliESDEvent.h" | |
42 | #include "AliESDInputHandler.h" | |
43 | #include "AliESDtrack.h" | |
44 | #include "AliESDv0.h" | |
2093003d | 45 | #include "AliESDtrackCuts.h" |
9c7b62a0 | 46 | |
47 | #include "AliAODEvent.h" | |
48 | #include "AliAODVertex.h" | |
49 | #include "AliAODTrack.h" | |
50 | #include "AliAODv0.h" | |
51 | #include "AliAODMCHeader.h" | |
52 | #include "AliAODInputHandler.h" | |
53 | //#include "AliV0vertexer.h" | |
54 | ||
55 | #include "AliAODMCParticle.h" | |
56 | ||
57 | #include "AliMCEventHandler.h" | |
58 | #include "AliMCEvent.h" | |
59 | #include "AliStack.h" | |
2093003d | 60 | #include "AliGenEventHeader.h" |
9c7b62a0 | 61 | |
62 | #include "AliLog.h" | |
63 | ||
2093003d | 64 | #include "AliKFVertex.h" |
65 | #include "AliVertexerTracks.h" | |
66 | ||
9c7b62a0 | 67 | #include "AliAnalysisTaskPerformanceStrange.h" |
68 | ||
69 | ||
70 | ClassImp(AliAnalysisTaskPerformanceStrange) | |
71 | ||
72 | ||
73 | //________________________________________________________________________ | |
74 | AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange() | |
eb4c2d5b | 75 | : AliAnalysisTaskSE(), fAnalysisMC(999), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infoCut"), fPhysTrigSel(0), fListHist(0), |
2093003d | 76 | fHistMCPrimaryVertexX(0), |
77 | fHistMCPrimaryVertexY(0), | |
78 | fHistMCPrimaryVertexZ(0), | |
9c7b62a0 | 79 | fHistMCMultiplicityPrimary(0), |
80 | fHistMCMultiplicityTracks(0), | |
81 | fHistMCtracksProdRadiusK0s(0), | |
82 | fHistMCtracksProdRadiusLambda(0), | |
83 | fHistMCtracksProdRadiusAntiLambda(0), | |
84 | fHistMCtracksDecayRadiusK0s(0), | |
85 | fHistMCtracksDecayRadiusLambda(0), | |
86 | fHistMCtracksDecayRadiusAntiLambda(0), | |
87 | fHistMCPtAllK0s(0), | |
88 | fHistMCPtAllLambda(0), | |
89 | fHistMCPtAllAntiLambda(0), | |
90 | fHistMCProdRadiusK0s(0), | |
91 | fHistMCProdRadiusLambda(0), | |
92 | fHistMCProdRadiusAntiLambda(0), | |
f81f8d5e | 93 | fHistMCPtK0s(0), |
94 | fHistMCPtLambda(0), | |
95 | fHistMCPtAntiLambda(0), | |
9c7b62a0 | 96 | fHistMCPtLambdaFromSigma(0), |
97 | fHistMCPtAntiLambdaFromSigma(0), | |
98 | fHistNTimesRecK0s(0), | |
99 | fHistNTimesRecK0sMI(0), | |
100 | fHistNTimesRecLambda(0), | |
101 | fHistNTimesRecLambdaMI(0), | |
102 | fHistNTimesRecAntiLambda(0), | |
103 | fHistNTimesRecAntiLambdaMI(0), | |
104 | fHistNTimesRecK0sVsPt(0), | |
105 | fHistNTimesRecK0sVsPtMI(0), | |
106 | fHistNTimesRecLambdaVsPt(0), | |
107 | fHistNTimesRecLambdaVsPtMI(0), | |
108 | fHistNTimesRecAntiLambdaVsPt(0), | |
109 | fHistNTimesRecAntiLambdaVsPtMI(0), | |
110 | fHistTrackPerEvent(0), | |
111 | fHistMCDaughterTrack(0), | |
112 | fHistPrimaryVertexX(0), | |
113 | fHistPrimaryVertexY(0), | |
114 | fHistPrimaryVertexZ(0), | |
2093003d | 115 | fHistPrimaryVertexPosXV0events(0), |
116 | fHistPrimaryVertexPosYV0events(0), | |
117 | fHistPrimaryVertexPosZV0events(0), | |
9c7b62a0 | 118 | fHistDcaPosToPrimVertex(0), |
119 | fHistDcaNegToPrimVertex(0), | |
120 | fHistDcaPosToPrimVertexZoom(0), | |
121 | fHistDcaNegToPrimVertexZoom(0), | |
122 | fHistRadiusV0(0), | |
123 | fHistDecayLengthV0(0), | |
124 | fHistDcaV0Daughters(0), | |
125 | fHistChi2(0), | |
126 | fHistCosPointAngle(0), | |
127 | fHistCosPointAngleZoom(0), | |
128 | fHistProdRadius(0), | |
129 | fHistProdRadiusMI(0), | |
e2e56010 | 130 | fHistV0Multiplicity(0), |
131 | fHistV0MultiplicityMI(0), | |
2093003d | 132 | fHistChi2KFBeforeCutK0s(0), |
133 | fHistChi2KFBeforeCutLambda(0), | |
134 | fHistChi2KFBeforeCutAntiLambda(0), | |
135 | fHistChi2KFAfterCutK0s(0), | |
136 | fHistChi2KFAfterCutLambda(0), | |
137 | fHistChi2KFAfterCutAntiLambda(0), | |
9c7b62a0 | 138 | fHistMassK0(0), |
139 | fHistMassK0MI(0), | |
140 | fHistMassLambda(0), | |
141 | fHistMassLambdaMI(0), | |
142 | fHistMassAntiLambda(0), | |
143 | fHistMassAntiLambdaMI(0), | |
144 | fHistMassVsRadiusK0(0), | |
145 | fHistMassVsRadiusK0MI(0), | |
146 | fHistMassVsRadiusLambda(0), | |
147 | fHistMassVsRadiusLambdaMI(0), | |
148 | fHistMassVsRadiusAntiLambda(0), | |
149 | fHistMassVsRadiusAntiLambdaMI(0), | |
150 | fHistPtVsMassK0(0), | |
151 | fHistPtVsMassK0MI(0), | |
152 | fHistPtVsMassLambda(0), | |
153 | fHistPtVsMassLambdaMI(0), | |
154 | fHistPtVsMassAntiLambda(0), | |
155 | fHistPtVsMassAntiLambdaMI(0), | |
156 | fHistArmenterosPodolanski(0), | |
157 | fHistArmenterosPodolanskiMI(0), | |
158 | fHistNsigmaPosPionAntiLambda(0), | |
159 | fHistNsigmaNegProtonAntiLambda(0), | |
160 | fHistNsigmaPosProtonLambda(0), | |
161 | fHistNsigmaNegPionLambda(0), | |
162 | fHistNsigmaPosPionK0(0), | |
163 | fHistNsigmaNegPionK0(0), | |
f81f8d5e | 164 | fHistAsMcRapK0(0), |
165 | fHistAsMcRapK0MI(0), | |
166 | fHistAsMcRapLambda(0), | |
167 | fHistAsMcRapLambdaMI(0), | |
168 | fHistAsMcRapAntiLambda(0), | |
169 | fHistAsMcRapAntiLambdaMI(0), | |
9c7b62a0 | 170 | fHistAsMcPtK0(0), |
171 | fHistAsMcPtK0MI(0), | |
172 | fHistAsMcPtLambda(0), | |
173 | fHistAsMcPtLambdaMI(0), | |
174 | fHistAsMcPtAntiLambda(0), | |
175 | fHistAsMcPtAntiLambdaMI(0), | |
176 | fHistAsMcPtZoomK0(0), | |
177 | fHistAsMcPtZoomK0MI(0), | |
178 | fHistAsMcPtZoomLambda(0), | |
179 | fHistAsMcPtZoomLambdaMI(0), | |
180 | fHistAsMcProdRadiusK0(0), | |
181 | fHistAsMcProdRadiusK0MI(0), | |
182 | fHistAsMcProdRadiusLambda(0), | |
183 | fHistAsMcProdRadiusLambdaMI(0), | |
184 | fHistAsMcProdRadiusAntiLambda(0), | |
185 | fHistAsMcProdRadiusAntiLambdaMI(0), | |
186 | fHistAsMcProdRadiusXvsYK0s(0), | |
187 | fHistAsMcProdRadiusXvsYK0sMI(0), | |
188 | fHistAsMcProdRadiusXvsYLambda(0), | |
189 | fHistAsMcProdRadiusXvsYLambdaMI(0), | |
190 | fHistAsMcProdRadiusXvsYAntiLambda(0), | |
191 | fHistAsMcProdRadiusXvsYAntiLambdaMI(0), | |
192 | fHistPidMcMassK0(0), | |
193 | fHistPidMcMassK0MI(0), | |
194 | fHistPidMcMassLambda(0), | |
195 | fHistPidMcMassLambdaMI(0), | |
196 | fHistPidMcMassAntiLambda(0), | |
197 | fHistPidMcMassAntiLambdaMI(0), | |
198 | fHistAsMcMassK0(0), | |
199 | fHistAsMcMassK0MI(0), | |
200 | fHistAsMcMassLambda(0), | |
201 | fHistAsMcMassLambdaMI(0), | |
202 | fHistAsMcMassAntiLambda(0), | |
203 | fHistAsMcMassAntiLambdaMI(0), | |
204 | fHistAsMcPtVsMassK0(0), | |
205 | fHistAsMcPtVsMassK0MI(0), | |
206 | fHistAsMcPtVsMassLambda(0), | |
207 | fHistAsMcPtVsMassLambdaMI(0), | |
208 | fHistAsMcPtVsMassAntiLambda(0), | |
209 | fHistAsMcPtVsMassAntiLambdaMI(0), | |
210 | fHistAsMcMassVsRadiusK0(0), | |
211 | fHistAsMcMassVsRadiusK0MI(0), | |
212 | fHistAsMcMassVsRadiusLambda(0), | |
213 | fHistAsMcMassVsRadiusLambdaMI(0), | |
214 | fHistAsMcMassVsRadiusAntiLambda(0), | |
215 | fHistAsMcMassVsRadiusAntiLambdaMI(0), | |
216 | fHistAsMcResxK0(0), | |
217 | fHistAsMcResyK0(0), | |
218 | fHistAsMcReszK0(0), | |
219 | fHistAsMcResrVsRadiusK0(0), | |
220 | fHistAsMcReszVsRadiusK0(0), | |
221 | fHistAsMcResxK0MI(0), | |
222 | fHistAsMcResyK0MI(0), | |
223 | fHistAsMcReszK0MI(0), | |
224 | fHistAsMcResrVsRadiusK0MI(0), | |
225 | fHistAsMcReszVsRadiusK0MI(0), | |
226 | fHistAsMcResxLambda(0), | |
227 | fHistAsMcResyLambda(0), | |
228 | fHistAsMcReszLambda(0), | |
229 | fHistAsMcResrVsRadiusLambda(0), | |
230 | fHistAsMcReszVsRadiusLambda(0), | |
231 | fHistAsMcResxLambdaMI(0), | |
232 | fHistAsMcResyLambdaMI(0), | |
233 | fHistAsMcReszLambdaMI(0), | |
234 | fHistAsMcResrVsRadiusLambdaMI(0), | |
235 | fHistAsMcReszVsRadiusLambdaMI(0), | |
236 | fHistAsMcResxAntiLambda(0), | |
237 | fHistAsMcResyAntiLambda(0), | |
238 | fHistAsMcReszAntiLambda(0), | |
239 | fHistAsMcResrVsRadiusAntiLambda(0), | |
240 | fHistAsMcReszVsRadiusAntiLambda(0), | |
241 | fHistAsMcResxAntiLambdaMI(0), | |
242 | fHistAsMcResyAntiLambdaMI(0), | |
243 | fHistAsMcReszAntiLambdaMI(0), | |
244 | fHistAsMcResrVsRadiusAntiLambdaMI(0), | |
245 | fHistAsMcReszVsRadiusAntiLambdaMI(0), | |
246 | fHistAsMcResPtK0(0), | |
247 | fHistAsMcResPtK0MI(0), | |
248 | fHistAsMcResPtLambda(0), | |
249 | fHistAsMcResPtLambdaMI(0), | |
250 | fHistAsMcResPtAntiLambda(0), | |
251 | fHistAsMcResPtAntiLambdaMI(0), | |
f81f8d5e | 252 | fHistAsMcResPtVsRapK0(0), |
253 | fHistAsMcResPtVsRapK0MI(0), | |
254 | fHistAsMcResPtVsRapLambda(0), | |
255 | fHistAsMcResPtVsRapLambdaMI(0), | |
256 | fHistAsMcResPtVsRapAntiLambda(0), | |
257 | fHistAsMcResPtVsRapAntiLambdaMI(0), | |
9c7b62a0 | 258 | fHistAsMcResPtVsPtK0(0), |
259 | fHistAsMcResPtVsPtK0MI(0), | |
260 | fHistAsMcResPtVsPtLambda(0), | |
261 | fHistAsMcResPtVsPtLambdaMI(0), | |
262 | fHistAsMcResPtVsPtAntiLambda(0), | |
263 | fHistAsMcResPtVsPtAntiLambdaMI(0), | |
264 | fHistAsMcMotherPdgCodeK0s(0), | |
265 | fHistAsMcMotherPdgCodeK0sMI(0), | |
266 | fHistAsMcMotherPdgCodeLambda(0), | |
267 | fHistAsMcMotherPdgCodeLambdaMI(0), | |
268 | fHistAsMcMotherPdgCodeAntiLambda(0), | |
269 | fHistAsMcMotherPdgCodeAntiLambdaMI(0), | |
270 | fHistAsMcPtLambdaFromSigma(0), | |
271 | fHistAsMcPtLambdaFromSigmaMI(0), | |
272 | fHistAsMcPtAntiLambdaFromSigma(0), | |
273 | fHistAsMcPtAntiLambdaFromSigmaMI(0), | |
f81f8d5e | 274 | fHistAsMcSecondaryPtVsRapK0s(0), |
275 | fHistAsMcSecondaryPtVsRapK0sMI(0), | |
276 | fHistAsMcSecondaryPtVsRapLambda(0), | |
277 | fHistAsMcSecondaryPtVsRapLambdaMI(0), | |
278 | fHistAsMcSecondaryPtVsRapAntiLambda(0), | |
279 | fHistAsMcSecondaryPtVsRapAntiLambdaMI(0), | |
9c7b62a0 | 280 | fHistAsMcSecondaryProdRadiusK0s(0), |
281 | fHistAsMcSecondaryProdRadiusK0sMI(0), | |
282 | fHistAsMcSecondaryProdRadiusLambda(0), | |
283 | fHistAsMcSecondaryProdRadiusLambdaMI(0), | |
284 | fHistAsMcSecondaryProdRadiusAntiLambda(0), | |
285 | fHistAsMcSecondaryProdRadiusAntiLambdaMI(0), | |
286 | fHistAsMcSecondaryProdRadiusXvsYK0s(0), | |
287 | fHistAsMcSecondaryProdRadiusXvsYK0sMI(0), | |
288 | fHistAsMcSecondaryProdRadiusXvsYLambda(0), | |
289 | fHistAsMcSecondaryProdRadiusXvsYLambdaMI(0), | |
290 | fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0), | |
291 | fHistAsMcSecondaryProdRadiusXvsYAntiLambdaMI(0), | |
292 | fHistAsMcSecondaryMotherPdgCodeK0s(0), | |
293 | fHistAsMcSecondaryMotherPdgCodeK0sMI(0), | |
294 | fHistAsMcSecondaryMotherPdgCodeLambda(0), | |
295 | fHistAsMcSecondaryMotherPdgCodeLambdaMI(0), | |
296 | fHistAsMcSecondaryMotherPdgCodeAntiLambda(0), | |
297 | fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI(0), | |
298 | fHistAsMcSecondaryPtLambdaFromSigma(0), | |
299 | fHistAsMcSecondaryPtLambdaFromSigmaMI(0), | |
300 | fHistAsMcSecondaryPtAntiLambdaFromSigma(0), | |
301 | fHistAsMcSecondaryPtAntiLambdaFromSigmaMI(0) | |
302 | ||
303 | { | |
304 | // dummy Constructor | |
305 | } | |
306 | ||
307 | ||
308 | ||
309 | ||
310 | ||
311 | //________________________________________________________________________ | |
312 | AliAnalysisTaskPerformanceStrange::AliAnalysisTaskPerformanceStrange(const char *name) | |
eb4c2d5b | 313 | : AliAnalysisTaskSE(name), fAnalysisMC(999), fAnalysisType("infoType"), fCollidingSystems(0), fUsePID("infoPID"), fUseCut("infocut"), fPhysTrigSel(0), fListHist(0), |
2093003d | 314 | fHistMCPrimaryVertexX(0), |
315 | fHistMCPrimaryVertexY(0), | |
316 | fHistMCPrimaryVertexZ(0), | |
9c7b62a0 | 317 | fHistMCMultiplicityPrimary(0), |
318 | fHistMCMultiplicityTracks(0), | |
319 | fHistMCtracksProdRadiusK0s(0), | |
320 | fHistMCtracksProdRadiusLambda(0), | |
321 | fHistMCtracksProdRadiusAntiLambda(0), | |
322 | fHistMCtracksDecayRadiusK0s(0), | |
323 | fHistMCtracksDecayRadiusLambda(0), | |
324 | fHistMCtracksDecayRadiusAntiLambda(0), | |
325 | fHistMCPtAllK0s(0), | |
326 | fHistMCPtAllLambda(0), | |
327 | fHistMCPtAllAntiLambda(0), | |
328 | fHistMCProdRadiusK0s(0), | |
329 | fHistMCProdRadiusLambda(0), | |
330 | fHistMCProdRadiusAntiLambda(0), | |
f81f8d5e | 331 | fHistMCPtK0s(0), |
332 | fHistMCPtLambda(0), | |
333 | fHistMCPtAntiLambda(0), | |
9c7b62a0 | 334 | fHistMCPtLambdaFromSigma(0), |
335 | fHistMCPtAntiLambdaFromSigma(0), | |
336 | fHistNTimesRecK0s(0), | |
337 | fHistNTimesRecK0sMI(0), | |
338 | fHistNTimesRecLambda(0), | |
339 | fHistNTimesRecLambdaMI(0), | |
340 | fHistNTimesRecAntiLambda(0), | |
341 | fHistNTimesRecAntiLambdaMI(0), | |
342 | fHistNTimesRecK0sVsPt(0), | |
343 | fHistNTimesRecK0sVsPtMI(0), | |
344 | fHistNTimesRecLambdaVsPt(0), | |
345 | fHistNTimesRecLambdaVsPtMI(0), | |
346 | fHistNTimesRecAntiLambdaVsPt(0), | |
347 | fHistNTimesRecAntiLambdaVsPtMI(0), | |
348 | fHistTrackPerEvent(0), | |
349 | fHistMCDaughterTrack(0), | |
350 | fHistPrimaryVertexX(0), | |
351 | fHistPrimaryVertexY(0), | |
352 | fHistPrimaryVertexZ(0), | |
2093003d | 353 | fHistPrimaryVertexPosXV0events(0), |
354 | fHistPrimaryVertexPosYV0events(0), | |
355 | fHistPrimaryVertexPosZV0events(0), | |
9c7b62a0 | 356 | fHistDcaPosToPrimVertex(0), |
357 | fHistDcaNegToPrimVertex(0), | |
358 | fHistDcaPosToPrimVertexZoom(0), | |
359 | fHistDcaNegToPrimVertexZoom(0), | |
360 | fHistRadiusV0(0), | |
361 | fHistDecayLengthV0(0), | |
362 | fHistDcaV0Daughters(0), | |
363 | fHistChi2(0), | |
364 | fHistCosPointAngle(0), | |
365 | fHistCosPointAngleZoom(0), | |
366 | fHistProdRadius(0), | |
367 | fHistProdRadiusMI(0), | |
e2e56010 | 368 | fHistV0Multiplicity(0), |
369 | fHistV0MultiplicityMI(0), | |
2093003d | 370 | fHistChi2KFBeforeCutK0s(0), |
371 | fHistChi2KFBeforeCutLambda(0), | |
372 | fHistChi2KFBeforeCutAntiLambda(0), | |
373 | fHistChi2KFAfterCutK0s(0), | |
374 | fHistChi2KFAfterCutLambda(0), | |
375 | fHistChi2KFAfterCutAntiLambda(0), | |
9c7b62a0 | 376 | fHistMassK0(0), |
377 | fHistMassK0MI(0), | |
378 | fHistMassLambda(0), | |
379 | fHistMassLambdaMI(0), | |
380 | fHistMassAntiLambda(0), | |
381 | fHistMassAntiLambdaMI(0), | |
382 | fHistMassVsRadiusK0(0), | |
383 | fHistMassVsRadiusK0MI(0), | |
384 | fHistMassVsRadiusLambda(0), | |
385 | fHistMassVsRadiusLambdaMI(0), | |
386 | fHistMassVsRadiusAntiLambda(0), | |
387 | fHistMassVsRadiusAntiLambdaMI(0), | |
388 | fHistPtVsMassK0(0), | |
389 | fHistPtVsMassK0MI(0), | |
390 | fHistPtVsMassLambda(0), | |
391 | fHistPtVsMassLambdaMI(0), | |
392 | fHistPtVsMassAntiLambda(0), | |
393 | fHistPtVsMassAntiLambdaMI(0), | |
394 | fHistArmenterosPodolanski(0), | |
395 | fHistArmenterosPodolanskiMI(0), | |
396 | fHistNsigmaPosPionAntiLambda(0), | |
397 | fHistNsigmaNegProtonAntiLambda(0), | |
398 | fHistNsigmaPosProtonLambda(0), | |
399 | fHistNsigmaNegPionLambda(0), | |
400 | fHistNsigmaPosPionK0(0), | |
401 | fHistNsigmaNegPionK0(0), | |
f81f8d5e | 402 | fHistAsMcRapK0(0), |
403 | fHistAsMcRapK0MI(0), | |
404 | fHistAsMcRapLambda(0), | |
405 | fHistAsMcRapLambdaMI(0), | |
406 | fHistAsMcRapAntiLambda(0), | |
407 | fHistAsMcRapAntiLambdaMI(0), | |
9c7b62a0 | 408 | fHistAsMcPtK0(0), |
409 | fHistAsMcPtK0MI(0), | |
410 | fHistAsMcPtLambda(0), | |
411 | fHistAsMcPtLambdaMI(0), | |
412 | fHistAsMcPtAntiLambda(0), | |
413 | fHistAsMcPtAntiLambdaMI(0), | |
414 | fHistAsMcPtZoomK0(0), | |
415 | fHistAsMcPtZoomK0MI(0), | |
416 | fHistAsMcPtZoomLambda(0), | |
417 | fHistAsMcPtZoomLambdaMI(0), | |
418 | fHistAsMcProdRadiusK0(0), | |
419 | fHistAsMcProdRadiusK0MI(0), | |
420 | fHistAsMcProdRadiusLambda(0), | |
421 | fHistAsMcProdRadiusLambdaMI(0), | |
422 | fHistAsMcProdRadiusAntiLambda(0), | |
423 | fHistAsMcProdRadiusAntiLambdaMI(0), | |
424 | fHistAsMcProdRadiusXvsYK0s(0), | |
425 | fHistAsMcProdRadiusXvsYK0sMI(0), | |
426 | fHistAsMcProdRadiusXvsYLambda(0), | |
427 | fHistAsMcProdRadiusXvsYLambdaMI(0), | |
428 | fHistAsMcProdRadiusXvsYAntiLambda(0), | |
429 | fHistAsMcProdRadiusXvsYAntiLambdaMI(0), | |
430 | fHistPidMcMassK0(0), | |
431 | fHistPidMcMassK0MI(0), | |
432 | fHistPidMcMassLambda(0), | |
433 | fHistPidMcMassLambdaMI(0), | |
434 | fHistPidMcMassAntiLambda(0), | |
435 | fHistPidMcMassAntiLambdaMI(0), | |
436 | fHistAsMcMassK0(0), | |
437 | fHistAsMcMassK0MI(0), | |
438 | fHistAsMcMassLambda(0), | |
439 | fHistAsMcMassLambdaMI(0), | |
440 | fHistAsMcMassAntiLambda(0), | |
441 | fHistAsMcMassAntiLambdaMI(0), | |
442 | fHistAsMcPtVsMassK0(0), | |
443 | fHistAsMcPtVsMassK0MI(0), | |
444 | fHistAsMcPtVsMassLambda(0), | |
445 | fHistAsMcPtVsMassLambdaMI(0), | |
446 | fHistAsMcPtVsMassAntiLambda(0), | |
447 | fHistAsMcPtVsMassAntiLambdaMI(0), | |
448 | fHistAsMcMassVsRadiusK0(0), | |
449 | fHistAsMcMassVsRadiusK0MI(0), | |
450 | fHistAsMcMassVsRadiusLambda(0), | |
451 | fHistAsMcMassVsRadiusLambdaMI(0), | |
452 | fHistAsMcMassVsRadiusAntiLambda(0), | |
453 | fHistAsMcMassVsRadiusAntiLambdaMI(0), | |
454 | fHistAsMcResxK0(0), | |
455 | fHistAsMcResyK0(0), | |
456 | fHistAsMcReszK0(0), | |
457 | fHistAsMcResrVsRadiusK0(0), | |
458 | fHistAsMcReszVsRadiusK0(0), | |
459 | fHistAsMcResxK0MI(0), | |
460 | fHistAsMcResyK0MI(0), | |
461 | fHistAsMcReszK0MI(0), | |
462 | fHistAsMcResrVsRadiusK0MI(0), | |
463 | fHistAsMcReszVsRadiusK0MI(0), | |
464 | fHistAsMcResxLambda(0), | |
465 | fHistAsMcResyLambda(0), | |
466 | fHistAsMcReszLambda(0), | |
467 | fHistAsMcResrVsRadiusLambda(0), | |
468 | fHistAsMcReszVsRadiusLambda(0), | |
469 | fHistAsMcResxLambdaMI(0), | |
470 | fHistAsMcResyLambdaMI(0), | |
471 | fHistAsMcReszLambdaMI(0), | |
472 | fHistAsMcResrVsRadiusLambdaMI(0), | |
473 | fHistAsMcReszVsRadiusLambdaMI(0), | |
474 | fHistAsMcResxAntiLambda(0), | |
475 | fHistAsMcResyAntiLambda(0), | |
476 | fHistAsMcReszAntiLambda(0), | |
477 | fHistAsMcResrVsRadiusAntiLambda(0), | |
478 | fHistAsMcReszVsRadiusAntiLambda(0), | |
479 | fHistAsMcResxAntiLambdaMI(0), | |
480 | fHistAsMcResyAntiLambdaMI(0), | |
481 | fHistAsMcReszAntiLambdaMI(0), | |
482 | fHistAsMcResrVsRadiusAntiLambdaMI(0), | |
483 | fHistAsMcReszVsRadiusAntiLambdaMI(0), | |
484 | fHistAsMcResPtK0(0), | |
485 | fHistAsMcResPtK0MI(0), | |
486 | fHistAsMcResPtLambda(0), | |
487 | fHistAsMcResPtLambdaMI(0), | |
488 | fHistAsMcResPtAntiLambda(0), | |
489 | fHistAsMcResPtAntiLambdaMI(0), | |
f81f8d5e | 490 | fHistAsMcResPtVsRapK0(0), |
491 | fHistAsMcResPtVsRapK0MI(0), | |
492 | fHistAsMcResPtVsRapLambda(0), | |
493 | fHistAsMcResPtVsRapLambdaMI(0), | |
494 | fHistAsMcResPtVsRapAntiLambda(0), | |
495 | fHistAsMcResPtVsRapAntiLambdaMI(0), | |
9c7b62a0 | 496 | fHistAsMcResPtVsPtK0(0), |
497 | fHistAsMcResPtVsPtK0MI(0), | |
498 | fHistAsMcResPtVsPtLambda(0), | |
499 | fHistAsMcResPtVsPtLambdaMI(0), | |
500 | fHistAsMcResPtVsPtAntiLambda(0), | |
501 | fHistAsMcResPtVsPtAntiLambdaMI(0), | |
502 | fHistAsMcMotherPdgCodeK0s(0), | |
503 | fHistAsMcMotherPdgCodeK0sMI(0), | |
504 | fHistAsMcMotherPdgCodeLambda(0), | |
505 | fHistAsMcMotherPdgCodeLambdaMI(0), | |
506 | fHistAsMcMotherPdgCodeAntiLambda(0), | |
507 | fHistAsMcMotherPdgCodeAntiLambdaMI(0), | |
508 | fHistAsMcPtLambdaFromSigma(0), | |
509 | fHistAsMcPtLambdaFromSigmaMI(0), | |
510 | fHistAsMcPtAntiLambdaFromSigma(0), | |
511 | fHistAsMcPtAntiLambdaFromSigmaMI(0), | |
f81f8d5e | 512 | fHistAsMcSecondaryPtVsRapK0s(0), |
513 | fHistAsMcSecondaryPtVsRapK0sMI(0), | |
514 | fHistAsMcSecondaryPtVsRapLambda(0), | |
515 | fHistAsMcSecondaryPtVsRapLambdaMI(0), | |
516 | fHistAsMcSecondaryPtVsRapAntiLambda(0), | |
517 | fHistAsMcSecondaryPtVsRapAntiLambdaMI(0), | |
9c7b62a0 | 518 | fHistAsMcSecondaryProdRadiusK0s(0), |
519 | fHistAsMcSecondaryProdRadiusK0sMI(0), | |
520 | fHistAsMcSecondaryProdRadiusLambda(0), | |
521 | fHistAsMcSecondaryProdRadiusLambdaMI(0), | |
522 | fHistAsMcSecondaryProdRadiusAntiLambda(0), | |
523 | fHistAsMcSecondaryProdRadiusAntiLambdaMI(0), | |
524 | fHistAsMcSecondaryProdRadiusXvsYK0s(0), | |
525 | fHistAsMcSecondaryProdRadiusXvsYK0sMI(0), | |
526 | fHistAsMcSecondaryProdRadiusXvsYLambda(0), | |
527 | fHistAsMcSecondaryProdRadiusXvsYLambdaMI(0), | |
528 | fHistAsMcSecondaryProdRadiusXvsYAntiLambda(0), | |
529 | fHistAsMcSecondaryProdRadiusXvsYAntiLambdaMI(0), | |
530 | fHistAsMcSecondaryMotherPdgCodeK0s(0), | |
531 | fHistAsMcSecondaryMotherPdgCodeK0sMI(0), | |
532 | fHistAsMcSecondaryMotherPdgCodeLambda(0), | |
533 | fHistAsMcSecondaryMotherPdgCodeLambdaMI(0), | |
534 | fHistAsMcSecondaryMotherPdgCodeAntiLambda(0), | |
535 | fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI(0), | |
536 | fHistAsMcSecondaryPtLambdaFromSigma(0), | |
537 | fHistAsMcSecondaryPtLambdaFromSigmaMI(0), | |
538 | fHistAsMcSecondaryPtAntiLambdaFromSigma(0), | |
539 | fHistAsMcSecondaryPtAntiLambdaFromSigmaMI(0) | |
540 | ||
541 | { | |
542 | // Constructor | |
543 | // Define output slots only here | |
544 | // Output slot #1 writes into a TList container | |
545 | DefineOutput(1, TList::Class()); | |
546 | } | |
547 | ||
548 | //________________________________________________________________________ | |
549 | void AliAnalysisTaskPerformanceStrange::UserCreateOutputObjects() | |
550 | { | |
2093003d | 551 | // Events selection and trigger |
552 | fPhysTrigSel = new AliPhysicsSelection(); | |
9c7b62a0 | 553 | |
2093003d | 554 | // Create histograms |
9c7b62a0 | 555 | fListHist = new TList(); |
556 | //AliLog::SetGlobalLogLevel(AliLog::kError); | |
557 | ||
558 | // Bo: tbd: condition before allocation (i.e. if (!fHistMCMultiplicityPrimary){...} for each histo... | |
559 | ||
2093003d | 560 | |
561 | ||
9c7b62a0 | 562 | //*************** |
563 | // MC histograms | |
564 | //*************** | |
2093003d | 565 | |
566 | // Primary Vertex: | |
567 | fHistMCPrimaryVertexX = new TH1F("h1MCPrimaryVertexX", "MC Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5); | |
568 | fListHist->Add(fHistMCPrimaryVertexX); | |
569 | ||
570 | fHistMCPrimaryVertexY = new TH1F("h1MCPrimaryVertexY", "MC Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5); | |
571 | fListHist->Add(fHistMCPrimaryVertexY); | |
572 | ||
573 | fHistMCPrimaryVertexZ = new TH1F("h1MCPrimaryVertexZ", "MC Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20); | |
574 | fListHist->Add(fHistMCPrimaryVertexZ); | |
9c7b62a0 | 575 | |
576 | // Multiplicity | |
577 | fHistMCMultiplicityPrimary = new TH1F("h1MCMultiplicityPrimary", "MC Primary Particles;NPrimary;Count", 201, -0.5, 200.5); | |
578 | fListHist->Add(fHistMCMultiplicityPrimary); | |
579 | ||
580 | fHistMCMultiplicityTracks = new TH1F("h1MCMultiplicityTracks", "MC Tracks;Ntracks;Count", 201, -0.5, 200.5); | |
581 | fListHist->Add(fHistMCMultiplicityTracks); | |
582 | ||
583 | // Production Radius of non-primary particles: | |
584 | fHistMCtracksProdRadiusK0s = new TH2F("h2MCtracksProdRadiusK0s","Non-primary MC K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50); | |
585 | fListHist->Add(fHistMCtracksProdRadiusK0s); | |
586 | ||
587 | fHistMCtracksProdRadiusLambda = new TH2F("h2MCtracksProdRadiusLambda","Non-primary MC #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50); | |
588 | fListHist->Add(fHistMCtracksProdRadiusLambda); | |
589 | ||
590 | fHistMCtracksProdRadiusAntiLambda = new TH2F("h2MCtracksProdRadiusAntiLambda","Non-primary MC #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50); | |
591 | fListHist->Add(fHistMCtracksProdRadiusAntiLambda); | |
592 | ||
593 | // Decay Radius of non-primary particles: | |
594 | fHistMCtracksDecayRadiusK0s = new TH1F("h1MCtracksDecayRadiusK0s","Non-primary MC K^{0} Decay Radius;r (cm)",101,-1,100); | |
595 | fListHist->Add(fHistMCtracksDecayRadiusK0s); | |
596 | ||
597 | fHistMCtracksDecayRadiusLambda = new TH1F("h1MCtracksDecayRadiusLambda","Non-primary MC #Lambda^{0} Decay Radius;r (cm)",101,-1,100); | |
598 | fListHist->Add(fHistMCtracksDecayRadiusLambda); | |
599 | ||
600 | fHistMCtracksDecayRadiusAntiLambda = new TH1F("h1MCtracksDecayRadiusAntiLambda","Non-primary #bar{#Lambda}^{0} Decay Radius;r (cm)",100,1,101); | |
601 | fListHist->Add(fHistMCtracksDecayRadiusAntiLambda); | |
602 | ||
603 | // Pt Distribution of non-primary particles: | |
2093003d | 604 | fHistMCPtAllK0s = new TH1F("h1MCPtAllK0s", "Non-primary MC K^{0};p_{t} (GeV/c);Counts",200,0,10); |
9c7b62a0 | 605 | fListHist->Add(fHistMCPtAllK0s); |
606 | ||
2093003d | 607 | fHistMCPtAllLambda = new TH1F("h1MCPtAllLambda", "Non-primary MC #Lambda^{0};p_{t} (GeV/c);Counts",200,0,10); |
9c7b62a0 | 608 | fListHist->Add(fHistMCPtAllLambda); |
609 | ||
2093003d | 610 | fHistMCPtAllAntiLambda = new TH1F("h1MCPtAllAntiLambda", "Non-primary MC #bar{#Lambda}^{0};p_{t} (GeV/c);Counts",200,0,10); |
9c7b62a0 | 611 | fListHist->Add(fHistMCPtAllAntiLambda); |
612 | ||
613 | // Production Radius | |
614 | fHistMCProdRadiusK0s = new TH1F("h1MCProdRadiusK0s", "MC K^{0} Production Radius;r (cm);Count", 400, -2, 2); | |
615 | fListHist->Add(fHistMCProdRadiusK0s); | |
616 | ||
617 | fHistMCProdRadiusLambda = new TH1F("h1MCProdRadiusLambda", "MC #Lambda^{0} Production Radius;r (cm);Count", 400, -2, 2); | |
618 | fListHist->Add(fHistMCProdRadiusLambda); | |
619 | ||
620 | fHistMCProdRadiusAntiLambda = new TH1F("h1MCProdRadiusAntiLambda", "MC #bar{#Lambda}^{0} Production Radius;r (cm);Count", 400, -2, 2); | |
621 | fListHist->Add(fHistMCProdRadiusAntiLambda); | |
622 | ||
623 | ||
624 | // Pt and rapidity distribution: | |
f81f8d5e | 625 | fHistMCPtK0s = new TH1F("h1MCPtK0s", "K^{0};p_{t} (GeV/c)",200,0,10); |
626 | fListHist->Add(fHistMCPtK0s); | |
9c7b62a0 | 627 | |
f81f8d5e | 628 | fHistMCPtLambda = new TH1F("h1MCPtLambda", "#Lambda^{0};p_{t} (GeV/c)",200,0,10); |
629 | fListHist->Add(fHistMCPtLambda); | |
9c7b62a0 | 630 | |
f81f8d5e | 631 | fHistMCPtAntiLambda = new TH1F("h1MCPtAntiLambda", "#bar{#Lambda}^{0};p_{t} (GeV/c)",200,0,10); |
632 | fListHist->Add(fHistMCPtAntiLambda); | |
9c7b62a0 | 633 | |
634 | // Pt distribution of Lambda coming from Sigma decay | |
2093003d | 635 | fHistMCPtLambdaFromSigma = new TH1F("h1MCPtLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",200,0,10); |
9c7b62a0 | 636 | fListHist->Add(fHistMCPtLambdaFromSigma); |
637 | ||
2093003d | 638 | fHistMCPtAntiLambdaFromSigma = new TH1F("h1MCPtAntiLambdaFromSigma", "#Lambda^{0};p_{t} (GeV/c)",200,0,10); |
9c7b62a0 | 639 | fListHist->Add(fHistMCPtAntiLambdaFromSigma); |
640 | ||
641 | // Multiple reconstruction studies | |
642 | fHistNTimesRecK0s = new TH1F("h1NTimesRecK0s","number of times a K0s is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5); | |
643 | fListHist->Add(fHistNTimesRecK0s); | |
644 | fHistNTimesRecK0sMI = new TH1F("h1NTimesRecK0sMI","number of times a K0s MI is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5); | |
645 | fListHist->Add(fHistNTimesRecK0sMI); | |
646 | ||
647 | fHistNTimesRecLambda = new TH1F("h1NTimesRecLambda","number of times a Lambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5); | |
648 | fListHist->Add(fHistNTimesRecLambda); | |
649 | fHistNTimesRecLambdaMI = new TH1F("h1NTimesRecLambdaMI","number of times a Lambda MI is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5); | |
650 | fListHist->Add(fHistNTimesRecLambdaMI); | |
651 | ||
652 | fHistNTimesRecAntiLambda = new TH1F("h1NTimesRecAntiLambda","number of times an AntiLambda is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5); | |
653 | fListHist->Add(fHistNTimesRecAntiLambda); | |
654 | fHistNTimesRecAntiLambdaMI = new TH1F("h1NTimesRecAntiLambdaMI","number of times an AntiLambda MI is reconstructed in -1<y<1;number of times;counts",500,-0.5,4.5); | |
655 | fListHist->Add(fHistNTimesRecAntiLambdaMI); | |
656 | ||
657 | 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); | |
658 | fListHist->Add(fHistNTimesRecK0sVsPt); | |
659 | fHistNTimesRecK0sVsPtMI = new TH2F("h2NTimesRecK0sVsPtMI","NTimes versus Pt, K^{0}, on-the-fly finder, in -1<y<1;p_{t} (GeV/c);number of times",75,0,15,5,-0.5,4.5); | |
660 | fListHist->Add(fHistNTimesRecK0sVsPtMI); | |
661 | ||
662 | 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); | |
663 | fListHist->Add(fHistNTimesRecLambdaVsPt); | |
664 | fHistNTimesRecLambdaVsPtMI = new TH2F("h2NTimesRecLambdaVsPtMI","NTimes versus Pt, #Lambda^{0} on-the-fly finder in -1<y<1;p_{t} (GeV/c);number of times",75,0,15,5,-0.5,4.5); | |
665 | fListHist->Add(fHistNTimesRecLambdaVsPtMI); | |
666 | ||
667 | 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); | |
668 | fListHist->Add(fHistNTimesRecAntiLambdaVsPt); | |
669 | fHistNTimesRecAntiLambdaVsPtMI= new TH2F("h2NTimesRecAntiLambdaVsPtMI","NTimes versus Pt, #bar{#Lambda}^{0}, on-the-fly finder in -1<y<1;p_{t} (GeV/c);number of times",75,0,15,5,-0.5,4.5); | |
670 | fListHist->Add(fHistNTimesRecAntiLambdaVsPtMI); | |
671 | ||
672 | ||
673 | ||
674 | //*********************************** | |
675 | // Reconstructed particles histograms | |
676 | //*********************************** | |
677 | ||
678 | // multiplicity | |
679 | fHistTrackPerEvent = new TH1F("h1TrackPerEvent", "Tracks per event;Number of Tracks;Number of Events",50,0,50); | |
680 | fListHist->Add(fHistTrackPerEvent); | |
681 | ||
682 | fHistMCDaughterTrack = new TH1F("h1MCDaughterTrack","Distribution of mc id for daughters;id tags;Counts",15,0,15); | |
683 | fListHist->Add(fHistMCDaughterTrack); | |
684 | ||
685 | // Primary Vertex: | |
686 | fHistPrimaryVertexX = new TH1F("h1PrimaryVertexX", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5); | |
687 | fListHist->Add(fHistPrimaryVertexX); | |
688 | ||
689 | fHistPrimaryVertexY = new TH1F("h1PrimaryVertexY", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5); | |
690 | fListHist->Add(fHistPrimaryVertexY); | |
691 | ||
2093003d | 692 | fHistPrimaryVertexZ = new TH1F("h1PrimaryVertexZ", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20,20); |
9c7b62a0 | 693 | fListHist->Add(fHistPrimaryVertexZ); |
694 | ||
2093003d | 695 | // Primary Vertex in events with V0 candidates: |
696 | fHistPrimaryVertexPosXV0events = new TH1F("h1PrimaryVertexPosXV0events", "Primary Vertex Position X;Primary Vertex Position X (cm);Events",100,-0.5,0.5); | |
697 | fListHist->Add(fHistPrimaryVertexPosXV0events); | |
698 | fHistPrimaryVertexPosYV0events = new TH1F("h1PrimaryVertexPosYV0events", "Primary Vertex Position Y;Primary Vertex Position Y (cm);Events",100,-0.5,0.5); | |
699 | fListHist->Add(fHistPrimaryVertexPosYV0events); | |
700 | fHistPrimaryVertexPosZV0events = new TH1F("h1PrimaryVertexPosZV0events", "Primary Vertex Position Z;Primary Vertex Position Z (cm);Events",200,-20.0,20.0); | |
701 | fListHist->Add(fHistPrimaryVertexPosZV0events); | |
702 | ||
9c7b62a0 | 703 | // Cut checks: |
704 | fHistDcaPosToPrimVertex = new TH2F("h2DcaPosToPrimVertex", "Positive V0 daughter;dca(cm);Status",500,0,5,2,-0.5,1.5); | |
705 | fListHist->Add(fHistDcaPosToPrimVertex); | |
706 | ||
707 | fHistDcaNegToPrimVertex = new TH2F("h2DcaNegToPrimVertex", "Negative V0 daughter;dca(cm);Status",500,0,5,2,-0.5,1.5); | |
708 | fListHist->Add(fHistDcaNegToPrimVertex); | |
709 | ||
710 | fHistDcaPosToPrimVertexZoom = new TH2F("h2DcaPosToPrimVertexZoom", "Positive V0 daughter;dca(cm);Status",100,0,0.1,2,-0.5,1.5); | |
711 | fListHist->Add(fHistDcaPosToPrimVertexZoom); | |
712 | ||
713 | fHistDcaNegToPrimVertexZoom = new TH2F("h2DcaNegToPrimVertexZoom", "Negative V0 daughter;dca(cm);Status",100,0,0.1,2,-0.5,1.5); | |
714 | fListHist->Add(fHistDcaNegToPrimVertexZoom); | |
715 | ||
716 | fHistRadiusV0 = new TH2F("h2RadiusV0", "Radius;Radius(cm);Status",1200,0,120,2,-0.5,1.5); | |
717 | fListHist->Add(fHistRadiusV0); | |
718 | ||
719 | fHistDecayLengthV0 = new TH2F("h2DecayLengthV0", "V0s decay Length;decay length(cm);Status", 240, 0, 120,2,-0.5,1.5); | |
720 | fListHist->Add(fHistDecayLengthV0); | |
721 | ||
722 | fHistDcaV0Daughters = new TH2F("h2DcaV0Daughters", "DCA between daughters;dca(cm);Status", 160, 0, 4,2,-0.5,1.5); | |
723 | fListHist->Add(fHistDcaV0Daughters); | |
724 | ||
725 | fHistChi2 = new TH2F("h2Chi2", "V0s chi2;chi2;Status", 33, 0, 33,2,-0.5,1.5); | |
726 | fListHist->Add(fHistChi2); | |
727 | ||
728 | fHistCosPointAngle = new TH2F("h2CosPointAngle", "Cosine of V0's pointing angle", 100,0,1,2,-0.5,1.5); | |
729 | fListHist->Add(fHistCosPointAngle); | |
730 | ||
731 | fHistCosPointAngleZoom = new TH2F("h2CosPointAngleZoom", "Cosine of V0's pointing angle", 100,0.9,1,2,-0.5,1.5); | |
732 | fListHist->Add(fHistCosPointAngleZoom); | |
733 | ||
734 | fHistProdRadius = new TH2F("h2ProdRadius", "Production position;x (cm);y (cm)", 100,-50,50,100,-50,50); | |
735 | fListHist->Add(fHistProdRadius); | |
736 | ||
737 | fHistProdRadiusMI = new TH2F("h2ProdRadiusMI", "Production position, V0s MI;x (cm);y (cm)", 100,-50,50,100,-50,50); | |
738 | fListHist->Add(fHistProdRadiusMI); | |
739 | ||
e2e56010 | 740 | // V0 Multiplicity |
741 | if (!fHistV0Multiplicity) { | |
742 | if (fCollidingSystems) | |
743 | fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 200, 0, 40000); | |
744 | else | |
745 | fHistV0Multiplicity = new TH1F("fHistV0Multiplicity", "Multiplicity distribution;Number of Offline V0s;Events", 10, 0, 10); | |
746 | fListHist->Add(fHistV0Multiplicity); | |
747 | } | |
748 | ||
749 | if (!fHistV0MultiplicityMI) { | |
750 | if (fCollidingSystems) | |
751 | fHistV0MultiplicityMI = new TH1F("fHistV0MultiplicityMI", "Multiplicity distribution;Number of On-the-fly V0s;Events", 200, 0, 40000); | |
752 | else | |
753 | fHistV0MultiplicityMI = new TH1F("fHistV0MultiplicityMI", "Multiplicity distribution;Number of On-the-fly V0s;Events", 10, 0, 10); | |
754 | fListHist->Add(fHistV0MultiplicityMI); | |
755 | } | |
756 | ||
2093003d | 757 | // AliKF Chi2 |
758 | fHistChi2KFBeforeCutK0s = new TH2F("h1Chi2KFBeforeCutK0s", "K^{0} candidates;#Chi^{2});Counts", 250, 0, 50, 2,-0.5,1.5); | |
759 | fListHist->Add(fHistChi2KFBeforeCutK0s); | |
760 | fHistChi2KFBeforeCutLambda = new TH2F("h1Chi2KFBeforeCutLambda", "#Lambda^{0} candidates;#Chi^{2};Counts", 250, 0, 50, 2,-0.5,1.5); | |
761 | fListHist->Add(fHistChi2KFBeforeCutLambda); | |
762 | fHistChi2KFBeforeCutAntiLambda = new TH2F("h1Chi2KFBeforeCutAntiLambda", "#bar{#Lambda}^{0} candidates;#Chi^{2};Counts", 250, 0, 50, 2,-0.5,1.5); | |
763 | fListHist->Add(fHistChi2KFBeforeCutAntiLambda); | |
764 | ||
765 | fHistChi2KFAfterCutK0s = new TH2F("h1Chi2KFAfterCutK0s", "K^{0} candidates;#Chi^{2});Counts", 250, 0, 50, 2,-0.5,1.5); | |
766 | fListHist->Add(fHistChi2KFAfterCutK0s); | |
767 | fHistChi2KFAfterCutLambda = new TH2F("h1Chi2KFAfterCutLambda", "#Lambda^{0} candidates;#Chi^{2};Counts", 250, 0, 50, 2,-0.5,1.5); | |
768 | fListHist->Add(fHistChi2KFAfterCutLambda); | |
769 | fHistChi2KFAfterCutAntiLambda = new TH2F("h1Chi2KFAfterCutAntiLambda", "#bar{#Lambda}^{0} candidates;#Chi^{2};Counts", 250, 0, 50, 2,-0.5,1.5); | |
770 | fListHist->Add(fHistChi2KFAfterCutAntiLambda); | |
9c7b62a0 | 771 | |
772 | // Mass: | |
773 | fHistMassK0 = new TH1F("h1MassK0", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); | |
774 | fListHist->Add(fHistMassK0); | |
775 | fHistMassK0MI = new TH1F("h1MassK0MI", "K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); | |
776 | fListHist->Add(fHistMassK0MI); | |
777 | ||
778 | fHistMassLambda = new TH1F("h1MassLambda", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
779 | fListHist->Add(fHistMassLambda); | |
780 | fHistMassLambdaMI = new TH1F("h1MassLambdaMI", "#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
781 | fListHist->Add(fHistMassLambdaMI); | |
782 | ||
783 | fHistMassAntiLambda = new TH1F("h1MassAntiLambda", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
784 | fListHist->Add(fHistMassAntiLambda); | |
785 | fHistMassAntiLambdaMI = new TH1F("h1MassAntiLambdaMI", "#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
786 | fListHist->Add(fHistMassAntiLambdaMI); | |
787 | ||
788 | // invariant mass vs radius | |
789 | 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}; | |
790 | Int_t lNbinRadius = 9; | |
791 | Int_t lNbinInvMassLambda = 300; | |
792 | ||
793 | fHistMassVsRadiusK0 = new TH2F("h2MassVsRadiusK0", "K^{0} candidates;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 200, 0.4, 0.6); | |
794 | fListHist->Add(fHistMassVsRadiusK0); | |
795 | ||
796 | fHistMassVsRadiusK0MI = new TH2F("h2MassVsRadiusK0MI", "K^{0} MI candidates;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 200, 0.4, 0.6); | |
797 | fListHist->Add(fHistMassVsRadiusK0MI); | |
798 | ||
799 | fHistMassVsRadiusLambda = new TH2F("h2MassVsRadiusLambda", "#Lambda candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2); | |
800 | fListHist->Add(fHistMassVsRadiusLambda); | |
801 | ||
802 | fHistMassVsRadiusLambdaMI = new TH2F("h2MassVsRadiusLambdaMI", "#Lambda MI candidates;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2); | |
803 | fListHist->Add(fHistMassVsRadiusLambdaMI); | |
804 | ||
805 | fHistMassVsRadiusAntiLambda = new TH2F("h2MassVsRadiusAntiLambda", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2); | |
806 | fListHist->Add(fHistMassVsRadiusAntiLambda); | |
807 | ||
808 | fHistMassVsRadiusAntiLambdaMI = new TH2F("h2MassVsRadiusAntiLambdaMI", "#bar{#Lambda} candidates;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius, 140, 1.06, 1.2); | |
809 | fListHist->Add(fHistMassVsRadiusAntiLambdaMI); | |
810 | ||
811 | // Pt Vs Mass | |
2093003d | 812 | fHistPtVsMassK0 = new TH2F("h2PtVsMassK0","K^{0} candidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",200, 0.4, 0.6,200,0,10); |
9c7b62a0 | 813 | fListHist->Add(fHistPtVsMassK0); |
2093003d | 814 | fHistPtVsMassK0MI = new TH2F("h2PtVsMassK0MI","K^{0} MIcandidates;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",200, 0.4, 0.6,200,0,10); |
9c7b62a0 | 815 | fListHist->Add(fHistPtVsMassK0MI); |
816 | ||
2093003d | 817 | fHistPtVsMassLambda = new TH2F("h2PtVsMassLambda","#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,200,0,10); |
9c7b62a0 | 818 | fListHist->Add(fHistPtVsMassLambda); |
2093003d | 819 | fHistPtVsMassLambdaMI = new TH2F("h2PtVsMassLambdaMI","#Lambda^{0} candidates;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,200,0,10); |
9c7b62a0 | 820 | fListHist->Add(fHistPtVsMassLambdaMI); |
821 | ||
2093003d | 822 | fHistPtVsMassAntiLambda = new TH2F("h2PtVsMassAntiLambda","#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,200,0,10); |
9c7b62a0 | 823 | fListHist->Add(fHistPtVsMassAntiLambda); |
2093003d | 824 | fHistPtVsMassAntiLambdaMI = new TH2F("h2PtVsMassAntiLambdaMI","#bar{#Lambda}^{0} candidates;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,200,0,10); |
9c7b62a0 | 825 | fListHist->Add(fHistPtVsMassAntiLambdaMI); |
826 | ||
827 | ||
828 | fHistArmenterosPodolanski = new TH2F("h2ArmenterosPodolanski","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5); | |
829 | fHistArmenterosPodolanskiMI = new TH2F("h2ArmenterosPodolanskiMI","Armenteros-Podolanski phase space;#alpha;p_{t} arm",100,-1.0,1.0,50,0,0.5); | |
830 | ||
831 | ||
832 | //PID | |
833 | fHistNsigmaPosPionAntiLambda = new TH1F("h1NsigmaPosPionAntiLambda", "Positive daughter of Antilambda;NsigmaPion;Counts",25,0,5); | |
834 | fListHist->Add(fHistNsigmaPosPionAntiLambda); | |
835 | ||
836 | fHistNsigmaNegProtonAntiLambda = new TH1F("h1NsigmaNegProtonAntiLambda", "Negative daughter of Antilambda;NsigmaProton;Counts",25,0,5); | |
837 | fListHist->Add(fHistNsigmaNegProtonAntiLambda); | |
838 | ||
839 | fHistNsigmaPosProtonLambda = new TH1F("h1NsigmaPosProtonLambda", "Positive daughter of Lambda;NsigmaProton;Counts",25,0,5); | |
840 | fListHist->Add(fHistNsigmaPosProtonLambda); | |
841 | ||
842 | fHistNsigmaNegPionLambda = new TH1F("h1NsigmaNegPionLambda", "Negative daughter of Lambda;NsigmaPion;Counts",25,0,5); | |
843 | fListHist->Add(fHistNsigmaNegPionLambda); | |
844 | ||
845 | fHistNsigmaPosPionK0 = new TH1F("h1NsigmaPosPionK0", "Positive daughter of K0s;NsigmaPion;Counts",25,0,5); | |
846 | fListHist->Add(fHistNsigmaPosPionK0); | |
847 | ||
848 | fHistNsigmaNegPionK0 = new TH1F("h1NsigmaNegPionK0", "Negative daughter of K0s;NsigmaPion;Counts",25,0,5); | |
849 | fListHist->Add(fHistNsigmaNegPionK0); | |
850 | ||
851 | ||
852 | //******************************** | |
853 | // Associated particles histograms | |
854 | //******************************** | |
855 | ||
f81f8d5e | 856 | // Rap distribution |
857 | fHistAsMcRapK0 = new TH1F("h1AsMcRapK0", "K^{0} associated;eta;Counts", 60, -1.5, 1.5); | |
858 | fListHist->Add(fHistAsMcRapK0); | |
859 | fHistAsMcRapK0MI = new TH1F("h1AsMcRapK0MI", "K^{0} associated;eta;Counts", 60, -1.5, 1.5); | |
860 | fListHist->Add(fHistAsMcRapK0MI); | |
2093003d | 861 | |
f81f8d5e | 862 | fHistAsMcRapLambda = new TH1F("h1AsMcRapLambda", "#Lambda^{0} associated;eta;Counts", 60, -1.5, 1.5); |
863 | fListHist->Add(fHistAsMcRapLambda); | |
864 | fHistAsMcRapLambdaMI = new TH1F("h1AsMcRapLambdaMI", "#Lambda^{0} associated;eta;Counts", 60, -1.5, 1.5); | |
865 | fListHist->Add(fHistAsMcRapLambdaMI); | |
2093003d | 866 | |
f81f8d5e | 867 | fHistAsMcRapAntiLambda = new TH1F("h1AsMcRapAntiLambda", "#bar{#Lambda}^{0} associated;eta;Counts", 60, -1.5, 1.5); |
868 | fListHist->Add(fHistAsMcRapAntiLambda); | |
869 | fHistAsMcRapAntiLambdaMI = new TH1F("h1AsMcRapAntiLambdaMI", "#bar{#Lambda}^{0} associated;eta;Counts", 60, -1.5, 1.5); | |
870 | fListHist->Add(fHistAsMcRapAntiLambdaMI); | |
2093003d | 871 | |
872 | ||
9c7b62a0 | 873 | //Pt distribution |
2093003d | 874 | fHistAsMcPtK0 = new TH1F("h1AsMcPtK0", "K^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10); |
9c7b62a0 | 875 | fListHist->Add(fHistAsMcPtK0); |
2093003d | 876 | fHistAsMcPtK0MI = new TH1F("h1AsMcPtK0MI", "K^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10); |
9c7b62a0 | 877 | fListHist->Add(fHistAsMcPtK0MI); |
878 | ||
2093003d | 879 | fHistAsMcPtLambda = new TH1F("h1AsMcPtLambda", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10); |
9c7b62a0 | 880 | fListHist->Add(fHistAsMcPtLambda); |
2093003d | 881 | fHistAsMcPtLambdaMI = new TH1F("h1AsMcPtLambdaMI", "#Lambda^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10); |
9c7b62a0 | 882 | fListHist->Add(fHistAsMcPtLambdaMI); |
883 | ||
2093003d | 884 | fHistAsMcPtAntiLambda = new TH1F("h1AsMcPtAntiLambda", "#bar{#Lambda}^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10); |
9c7b62a0 | 885 | fListHist->Add(fHistAsMcPtAntiLambda); |
2093003d | 886 | fHistAsMcPtAntiLambdaMI = new TH1F("h1AsMcPtAntiLambdaMI", "#bar{#Lambda}^{0} associated;p_{t} (GeV/c);Counts", 200, 0, 10); |
9c7b62a0 | 887 | fListHist->Add(fHistAsMcPtAntiLambdaMI); |
888 | ||
889 | fHistAsMcPtZoomK0 = new TH1F("h1AsMcPtZoomK0", "K^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1); | |
890 | fListHist->Add(fHistAsMcPtZoomK0); | |
891 | fHistAsMcPtZoomK0MI = new TH1F("h1AsMcPtZoomK0MI", "K^{0} MI candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1); | |
892 | fListHist->Add(fHistAsMcPtZoomK0MI); | |
893 | ||
894 | fHistAsMcPtZoomLambda = new TH1F("h1AsMcPtZoomLambda", "#Lambda^{0} candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1); | |
895 | fListHist->Add(fHistAsMcPtZoomLambda); | |
896 | fHistAsMcPtZoomLambdaMI = new TH1F("h1AsMcPtZoomLambdaMI", "#Lambda^{0} MI candidates in -1 <y<1;p_{t} (GeV/c);Counts",20,0,1); | |
897 | fListHist->Add(fHistAsMcPtZoomLambdaMI); | |
898 | ||
899 | ||
900 | // Radius distribution | |
901 | fHistAsMcProdRadiusK0 = new TH1F("h1AsMcProdRadiusK0", "K^{0} associated;r (cm);Counts", 500, 0, 100); | |
902 | fListHist->Add(fHistAsMcProdRadiusK0); | |
903 | fHistAsMcProdRadiusK0MI = new TH1F("h1AsMcProdRadiusK0MI", "K^{0} associated;r (cm);Counts", 500, 0, 100); | |
904 | fListHist->Add(fHistAsMcProdRadiusK0MI); | |
905 | ||
906 | fHistAsMcProdRadiusLambda = new TH1F("h1AsMcProdRadiusLambda", "#Lambda^{0} associated;r (cm);Counts", 500, 0, 100); | |
907 | fListHist->Add(fHistAsMcProdRadiusLambda); | |
908 | fHistAsMcProdRadiusLambdaMI = new TH1F("h1AsMcProdRadiusLambdaMI", "#Lambda^{0} associated;r (cm);Counts", 500, 0, 100); | |
909 | fListHist->Add(fHistAsMcProdRadiusLambdaMI); | |
910 | ||
911 | fHistAsMcProdRadiusAntiLambda = new TH1F("h1AsMcProdRadiusAntiLambda", "#bar{#Lambda}^{0} associated;r (cm);Counts", 500, 0, 100); | |
912 | fListHist->Add(fHistAsMcProdRadiusAntiLambda); | |
913 | fHistAsMcProdRadiusAntiLambdaMI = new TH1F("h1AsMcProdRadiusAntiLambdaMI", "#bar{#Lambda}^{0} associated;r (cm);Counts", 500, 0, 100); | |
914 | fListHist->Add(fHistAsMcProdRadiusAntiLambdaMI); | |
915 | ||
916 | fHistAsMcProdRadiusXvsYK0s = new TH2F("h2AsMcProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50); | |
917 | fListHist->Add(fHistAsMcProdRadiusXvsYK0s); | |
918 | fHistAsMcProdRadiusXvsYK0sMI = new TH2F("h2AsMcProdRadiusXvsYK0sMI","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50); | |
919 | fListHist->Add(fHistAsMcProdRadiusXvsYK0sMI); | |
920 | ||
921 | fHistAsMcProdRadiusXvsYLambda = new TH2F("h2AsMcProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50); | |
922 | fListHist->Add(fHistAsMcProdRadiusXvsYLambda); | |
923 | fHistAsMcProdRadiusXvsYLambdaMI = new TH2F("h2AsMcProdRadiusXvsYLambdaMI","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50); | |
924 | fListHist->Add(fHistAsMcProdRadiusXvsYLambdaMI); | |
925 | ||
926 | fHistAsMcProdRadiusXvsYAntiLambda = new TH2F("h2AsMcProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50); | |
927 | fListHist->Add(fHistAsMcProdRadiusXvsYAntiLambda); | |
928 | fHistAsMcProdRadiusXvsYAntiLambdaMI = new TH2F("h2AsMcProdRadiusXvsYAntiLambdaMI","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-50,50,200,-50,50); | |
929 | fListHist->Add(fHistAsMcProdRadiusXvsYAntiLambdaMI); | |
930 | ||
931 | ||
932 | ||
933 | // Mass | |
934 | fHistPidMcMassK0 = new TH1F("h1PidMcMassK0", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); | |
935 | fListHist->Add(fHistPidMcMassK0); | |
936 | fHistPidMcMassK0MI = new TH1F("h1PidMcMassK0MI", "K^{0} MC PId checked;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); | |
937 | fListHist->Add(fHistPidMcMassK0MI); | |
938 | ||
939 | fHistPidMcMassLambda = new TH1F("h1PidMcMassLambda", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
940 | fListHist->Add(fHistPidMcMassLambda); | |
941 | fHistPidMcMassLambdaMI = new TH1F("h1PidMcMassLambdaMI", "#Lambda^{0} MC PId checked;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
942 | fListHist->Add(fHistPidMcMassLambdaMI); | |
943 | ||
944 | fHistPidMcMassAntiLambda = new TH1F("h1PidMcMassAntiLambda", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
945 | fListHist->Add(fHistPidMcMassAntiLambda); | |
946 | fHistPidMcMassAntiLambdaMI = new TH1F("h1PidMcMassAntiLambdaMI", "#bar{#Lambda}^{0} MC PId checked;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
947 | fListHist->Add(fHistPidMcMassAntiLambdaMI); | |
948 | ||
949 | fHistAsMcMassK0 = new TH1F("h1AsMcMassK0", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); | |
950 | fListHist->Add(fHistAsMcMassK0); | |
951 | fHistAsMcMassK0MI = new TH1F("h1AsMcMassK0MI", "K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});Counts", 100, 0.4, 0.6); | |
952 | fListHist->Add(fHistAsMcMassK0MI); | |
953 | ||
954 | fHistAsMcMassLambda = new TH1F("h1AsMcMassLambda", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
955 | fListHist->Add(fHistAsMcMassLambda); | |
956 | fHistAsMcMassLambdaMI = new TH1F("h1AsMcMassLambdaMI", "#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
957 | fListHist->Add(fHistAsMcMassLambdaMI); | |
958 | ||
959 | fHistAsMcMassAntiLambda = new TH1F("h1AsMcMassAntiLambda", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
960 | fListHist->Add(fHistAsMcMassAntiLambda); | |
961 | fHistAsMcMassAntiLambdaMI = new TH1F("h1AsMcMassAntiLambdaMI", "#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});Counts", 75, 1.05, 1.2); | |
962 | fListHist->Add(fHistAsMcMassAntiLambdaMI); | |
963 | ||
964 | //Pt versus Mass | |
965 | fHistAsMcPtVsMassK0 = new TH2F("h2AsMcPtVsMassK0","K^{0} associated;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",200, 0.4, 0.6,100,0,10); | |
966 | fListHist->Add(fHistAsMcPtVsMassK0); | |
967 | fHistAsMcPtVsMassK0MI = new TH2F("h2AsMcPtVsMassK0MI","K^{0} MIassociated;M(#pi^{+}#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",200, 0.4, 0.6,100,0,10); | |
968 | fListHist->Add(fHistAsMcPtVsMassK0MI); | |
969 | ||
970 | fHistAsMcPtVsMassLambda = new TH2F("h2AsMcPtVsMassLambda","#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,100,0,10); | |
971 | fListHist->Add(fHistAsMcPtVsMassLambda); | |
972 | fHistAsMcPtVsMassLambdaMI = new TH2F("h2AsMcPtVsMassLambdaMI","#Lambda^{0} associated;M(p#pi^{-}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,100,0,10); | |
973 | fListHist->Add(fHistAsMcPtVsMassLambdaMI); | |
974 | ||
975 | fHistAsMcPtVsMassAntiLambda = new TH2F("h2AsMcPtVsMassAntiLambda","#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,100,0,10); | |
976 | fListHist->Add(fHistAsMcPtVsMassAntiLambda); | |
977 | fHistAsMcPtVsMassAntiLambdaMI = new TH2F("h2AsMcPtVsMassAntiLambdaMI","#bar{#Lambda}^{0} associated;M(#bar{p}#pi^{+}) (GeV/c^{2});p_{t} (GeV/c)",140, 1.06, 1.2,100,0,10); | |
978 | fListHist->Add(fHistAsMcPtVsMassAntiLambdaMI); | |
979 | ||
980 | ||
981 | // invariant mass vs radius | |
982 | fHistAsMcMassVsRadiusK0 = new TH2F("h2AsMcMassVsRadiusK0", "K^{0} associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 500, 0.47, 0.52); | |
983 | fListHist->Add(fHistAsMcMassVsRadiusK0); | |
984 | ||
985 | fHistAsMcMassVsRadiusK0MI = new TH2F("h2AsMcMassVsRadiusK0MI", "K^{0} MI associated;radius (cm);M(#pi^{+}#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, 500, 0.47, 0.52); | |
986 | fListHist->Add(fHistAsMcMassVsRadiusK0MI); | |
987 | ||
988 | fHistAsMcMassVsRadiusLambda = new TH2F("h2AsMcMassVsRadiusLambda", "#Lambda associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, lNbinInvMassLambda, 1.10, 1.13); | |
989 | fListHist->Add(fHistAsMcMassVsRadiusLambda); | |
990 | ||
991 | fHistAsMcMassVsRadiusLambdaMI = new TH2F("h2AsMcMassVsRadiusLambdaMI", "#Lambda MI associated;radius (cm);M(p#pi^{-}) (GeV/c^{2})",lNbinRadius,radius, lNbinInvMassLambda, 1.10, 1.13); | |
992 | fListHist->Add(fHistAsMcMassVsRadiusLambdaMI); | |
993 | ||
994 | fHistAsMcMassVsRadiusAntiLambda = new TH2F("h2AsMcMassVsRadiusAntiLambda", "#bar{#Lambda} associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius,lNbinInvMassLambda , 1.10, 1.13); | |
995 | fListHist->Add(fHistAsMcMassVsRadiusAntiLambda); | |
996 | ||
997 | fHistAsMcMassVsRadiusAntiLambdaMI = new TH2F("h2AsMcMassVsRadiusAntiLambdaMI", "#bar{#Lambda} MI associated;radius (cm);M(#bar{p}#pi^{+}) (GeV/c^{2})",lNbinRadius,radius,lNbinInvMassLambda , 1.10, 1.13); | |
998 | fListHist->Add(fHistAsMcMassVsRadiusAntiLambdaMI); | |
999 | ||
1000 | ||
1001 | // Position Resolution | |
1002 | fHistAsMcResxK0 = new TH1F("h1AsMcResxK0", "K^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25); | |
1003 | fListHist->Add(fHistAsMcResxK0); | |
1004 | fHistAsMcResyK0 = new TH1F("h1AsMcResyK0", "K^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25); | |
1005 | fListHist->Add(fHistAsMcResyK0); | |
1006 | fHistAsMcReszK0 = new TH1F("h1AsMcReszK0", "K^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25); | |
1007 | fListHist->Add(fHistAsMcReszK0); | |
1008 | fHistAsMcResrVsRadiusK0 = new TH2F("h2AsMcResrVsRadiusK0", "K^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50., 50, -0.25, 0.25); | |
1009 | fListHist->Add(fHistAsMcResrVsRadiusK0); | |
1010 | fHistAsMcReszVsRadiusK0 = new TH2F("h2AsMcReszVsRadiusK0", "K^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25); | |
1011 | fListHist->Add(fHistAsMcReszVsRadiusK0); | |
1012 | ||
1013 | fHistAsMcResxK0MI = new TH1F("h1AsMcResxK0MI", "K^{0} MI associated;#Delta x (cm);Counts", 50, -0.25, 0.25); | |
1014 | fListHist->Add(fHistAsMcResxK0MI); | |
1015 | fHistAsMcResyK0MI = new TH1F("h1AsMcResyK0MI", "K^{0} MI associated;#Delta y (cm);Counts", 50, -0.25, 0.25); | |
1016 | fListHist->Add(fHistAsMcResyK0MI); | |
1017 | fHistAsMcReszK0MI = new TH1F("h1AsMcReszK0MI", "K^{0} MI associated;#Delta z (cm);Counts", 50, -0.25, 0.25); | |
1018 | fListHist->Add(fHistAsMcReszK0MI); | |
1019 | fHistAsMcResrVsRadiusK0MI = new TH2F("h2AsMcResrVsRadiusK0MI", "K^{0} MI associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25); | |
1020 | fListHist->Add(fHistAsMcResrVsRadiusK0MI); | |
1021 | fHistAsMcReszVsRadiusK0MI = new TH2F("h2AsMcReszVsRadiusK0MI", "K^{0} MI associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25); | |
1022 | fListHist->Add(fHistAsMcReszVsRadiusK0MI); | |
1023 | ||
1024 | fHistAsMcResxLambda = new TH1F("h1AsMcResxLambda", "#Lambda^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25); | |
1025 | fListHist->Add(fHistAsMcResxLambda); | |
1026 | fHistAsMcResyLambda = new TH1F("h1AsMcResyLambda", "#Lambda^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25); | |
1027 | fListHist->Add(fHistAsMcResyLambda); | |
1028 | fHistAsMcReszLambda = new TH1F("h1AsMcReszLambda", "#Lambda^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25); | |
1029 | fListHist->Add(fHistAsMcReszLambda); | |
1030 | fHistAsMcResrVsRadiusLambda = new TH2F("h2AsMcResrVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25); | |
1031 | fListHist->Add(fHistAsMcResrVsRadiusLambda); | |
1032 | fHistAsMcReszVsRadiusLambda = new TH2F("h2AsMcReszVsRadiusLambda", "#Lambda^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25); | |
1033 | fListHist->Add(fHistAsMcReszVsRadiusLambda); | |
1034 | ||
1035 | fHistAsMcResxLambdaMI = new TH1F("h1AsMcResxLambdaMI", "#Lambda^{0} MI associated;#Delta x (cm);Counts", 50, -0.25, 0.25); | |
1036 | fListHist->Add(fHistAsMcResxLambdaMI); | |
1037 | fHistAsMcResyLambdaMI = new TH1F("h1AsMcResyLambdaMI", "#Lambda^{0} MI associated;#Delta y (cm);Counts", 50, -0.25, 0.25); | |
1038 | fListHist->Add(fHistAsMcResyLambdaMI); | |
1039 | fHistAsMcReszLambdaMI = new TH1F("h1AsMcReszLambdaMI", "#Lambda^{0} MI associated;#Delta z (cm);Counts", 50, -0.25, 0.25); | |
1040 | fListHist->Add(fHistAsMcReszLambdaMI); | |
1041 | fHistAsMcResrVsRadiusLambdaMI = new TH2F("h2AsMcResrVsRadiusLambdaMI", "#Lambda^{0} MI associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25); | |
1042 | fListHist->Add(fHistAsMcResrVsRadiusLambdaMI); | |
1043 | fHistAsMcReszVsRadiusLambdaMI = new TH2F("h2AsMcReszVsRadiusLambdaMI", "#Lambda^{0} MI associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25); | |
1044 | fListHist->Add(fHistAsMcReszVsRadiusLambdaMI); | |
1045 | ||
1046 | fHistAsMcResxAntiLambda = new TH1F("h1AsMcResxAntiLambda", "#bar{#Lambda}^{0} associated;#Delta x (cm);Counts", 50, -0.25, 0.25); | |
1047 | fListHist->Add(fHistAsMcResxAntiLambda); | |
1048 | fHistAsMcResyAntiLambda = new TH1F("h1AsMcResyAntiLambda", "#bar{#Lambda}^{0} associated;#Delta y (cm);Counts", 50, -0.25, 0.25); | |
1049 | fListHist->Add(fHistAsMcResyAntiLambda); | |
1050 | fHistAsMcReszAntiLambda = new TH1F("h1AsMcReszAntiLambda", "#bar{#Lambda}^{0} associated;#Delta z (cm);Counts", 50, -0.25, 0.25); | |
1051 | fListHist->Add(fHistAsMcReszAntiLambda); | |
1052 | fHistAsMcResrVsRadiusAntiLambda = new TH2F("h2AsMcResrVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta r (cm)",200,0.0,50.0, 50, -0.25, 0.25); | |
1053 | fListHist->Add(fHistAsMcResrVsRadiusAntiLambda); | |
1054 | fHistAsMcReszVsRadiusAntiLambda = new TH2F("h2AsMcReszVsRadiusAntiLambda", "#bar{#Lambda}^{0} associated;Radius (cm);#Delta z (cm)",200,0.0,50.0, 50, -0.25, 0.25); | |
1055 | fListHist->Add(fHistAsMcReszVsRadiusAntiLambda); | |
1056 | ||
1057 | fHistAsMcResxAntiLambdaMI = new TH1F("h1AsMcResxAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;#Delta x (cm);Counts", 50, -0.25, 0.25); | |
1058 | fListHist->Add(fHistAsMcResxAntiLambdaMI); | |
1059 | fHistAsMcResyAntiLambdaMI = new TH1F("h1AsMcResyAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;#Delta y (cm);Counts", 50, -0.25, 0.25); | |
1060 | fListHist->Add(fHistAsMcResyAntiLambdaMI); | |
1061 | fHistAsMcReszAntiLambdaMI = new TH1F("h1AsMcReszAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;#Delta z (cm);Counts", 50, -0.25, 0.25); | |
1062 | fListHist->Add(fHistAsMcReszAntiLambdaMI); | |
1063 | fHistAsMcResrVsRadiusAntiLambdaMI = new TH2F("h2AsMcResrVsRadiusAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;Radius (cm);#Delta r (cm)",8,radius, 50, -0.25, 0.25); | |
1064 | fListHist->Add(fHistAsMcResrVsRadiusAntiLambdaMI); | |
1065 | fHistAsMcReszVsRadiusAntiLambdaMI = new TH2F("h2AsMcReszVsRadiusAntiLambdaMI", "#bar{#Lambda}^{0} MI associated;Radius (cm);#Delta z (cm)",8,radius, 50, -0.25, 0.25); | |
1066 | fListHist->Add(fHistAsMcReszVsRadiusAntiLambdaMI); | |
1067 | ||
1068 | // Pt Resolution | |
1069 | fHistAsMcResPtK0 = new TH1F("h1AsMcResPtK0","Pt Resolution K^{0};#Delta Pt;Counts",200,-1,1); | |
1070 | fListHist->Add(fHistAsMcResPtK0); | |
1071 | fHistAsMcResPtK0MI = new TH1F("h1AsMcResPtK0MI","Pt Resolution K^{0} MI;#Delta Pt;Counts",200,-1,1); | |
1072 | fListHist->Add(fHistAsMcResPtK0MI); | |
1073 | ||
1074 | fHistAsMcResPtLambda = new TH1F("h1AsMcResPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Counts",200,-1,1); | |
1075 | fListHist->Add(fHistAsMcResPtLambda); | |
1076 | fHistAsMcResPtLambdaMI = new TH1F("h1AsMcResPtLambdaMI","Pt Resolution #Lambda^{0} MI;#Delta Pt;Counts",200,-1,1); | |
1077 | fListHist->Add(fHistAsMcResPtLambdaMI); | |
1078 | ||
1079 | fHistAsMcResPtAntiLambda = new TH1F("h1AsMcResPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Counts",200,-1,1); | |
1080 | fListHist->Add(fHistAsMcResPtAntiLambda); | |
1081 | fHistAsMcResPtAntiLambdaMI = new TH1F("h1AsMcResPtAntiLambdaMI","Pt Resolution #bar{#Lambda}^{0} MI;#Delta Pt;Counts",200,-1,1); | |
1082 | fListHist->Add(fHistAsMcResPtAntiLambdaMI); | |
1083 | ||
1084 | ||
f81f8d5e | 1085 | fHistAsMcResPtVsRapK0 = new TH2F("h2AsMcResPtVsRapK0","Pt Resolution K^{0};#Delta Pt;Rap",200,-1,1,20,-1,1); |
1086 | fListHist->Add(fHistAsMcResPtVsRapK0); | |
1087 | fHistAsMcResPtVsRapK0MI = new TH2F("h2AsMcResPtVsRapK0MI","Pt Resolution K^{0} MI;#Delta Pt;Rap",200,-1,1,20,-1,1); | |
1088 | fListHist->Add(fHistAsMcResPtVsRapK0MI); | |
9c7b62a0 | 1089 | |
f81f8d5e | 1090 | fHistAsMcResPtVsRapLambda = new TH2F("h2AsMcResPtVsRapLambda","Pt Resolution #Lambda^{0};#Delta Pt;Rap",200,-1,1,20,-1,1); |
1091 | fListHist->Add(fHistAsMcResPtVsRapLambda); | |
1092 | fHistAsMcResPtVsRapLambdaMI = new TH2F("h2AsMcResPtVsRapLambdaMI","Pt Resolution #Lambda^{0} MI;#Delta Pt;Rap",200,-1,1,20,-1,1); | |
1093 | fListHist->Add(fHistAsMcResPtVsRapLambdaMI); | |
9c7b62a0 | 1094 | |
f81f8d5e | 1095 | fHistAsMcResPtVsRapAntiLambda = new TH2F("h2AsMcResPtVsRapAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Rap",200,-1,1,20,-1,1); |
1096 | fListHist->Add(fHistAsMcResPtVsRapAntiLambda); | |
1097 | fHistAsMcResPtVsRapAntiLambdaMI = new TH2F("h2AsMcResPtVsRapAntiLambdaMI","Pt Resolution #bar{#Lambda}^{0} MI;#Delta Pt;Rap",200,-1,1,20,-1,1); | |
1098 | fListHist->Add(fHistAsMcResPtVsRapAntiLambdaMI); | |
9c7b62a0 | 1099 | |
1100 | ||
1101 | fHistAsMcResPtVsPtK0 = new TH2F("h2AsMcResPtVsPtK0","Pt Resolution K^{0};#Delta Pt;Pt",600,-0.15,0.15,200,0,10); | |
1102 | fListHist->Add(fHistAsMcResPtVsPtK0); | |
1103 | fHistAsMcResPtVsPtK0MI = new TH2F("h2AsMcResPtVsPtK0MI","Pt Resolution K^{0} MI;#Delta Pt;Pt",600,-0.15,0.15,200,0,10); | |
1104 | fListHist->Add(fHistAsMcResPtVsPtK0MI); | |
1105 | ||
1106 | fHistAsMcResPtVsPtLambda = new TH2F("h2AsMcResPtVsPtLambda","Pt Resolution #Lambda^{0};#Delta Pt;Pt",600,-0.15,0.15,200,0,10); | |
1107 | fListHist->Add(fHistAsMcResPtVsPtLambda); | |
1108 | fHistAsMcResPtVsPtLambdaMI = new TH2F("h2AsMcResPtVsPtLambdaMI","Pt Resolution #Lambda^{0} MI;#Delta Pt;Pt",600,-0.15,0.15,200,0,10); | |
1109 | fListHist->Add(fHistAsMcResPtVsPtLambdaMI); | |
1110 | ||
1111 | fHistAsMcResPtVsPtAntiLambda = new TH2F("h2AsMcResPtVsPtAntiLambda","Pt Resolution #bar{#Lambda}^{0};#Delta Pt;Pt",300,-0.15,0.15,200,0,10); | |
1112 | fListHist->Add(fHistAsMcResPtVsPtAntiLambda); | |
1113 | fHistAsMcResPtVsPtAntiLambdaMI = new TH2F("h2AsMcResPtVsPtAntiLambdaMI","Pt Resolution #bar{#Lambda}^{0} MI;#Delta Pt;Pt",300,-0.15,0.15,200,0,10); | |
1114 | fListHist->Add(fHistAsMcResPtVsPtAntiLambdaMI); | |
1115 | ||
1116 | ||
1117 | // pdgcode of mother | |
1118 | fHistAsMcMotherPdgCodeK0s = new TH1F("h1AsMcMotherPdgCodeK0s","Mother of Associated K^{0};mother;counts",11,0,11); | |
1119 | fListHist->Add(fHistAsMcMotherPdgCodeK0s); | |
1120 | fHistAsMcMotherPdgCodeK0sMI = new TH1F("h1AsMcMotherPdgCodeK0sMI","Mother of Associated K^{0} MI;mother;counts",11,0,11); | |
1121 | fListHist->Add(fHistAsMcMotherPdgCodeK0sMI); | |
1122 | ||
1123 | fHistAsMcMotherPdgCodeLambda = new TH1F("h1AsMcMotherPdgCodeLambda","Mother of Associated #Lambda^{0};mother;counts",11,0,11); | |
1124 | fListHist->Add(fHistAsMcMotherPdgCodeLambda); | |
1125 | fHistAsMcMotherPdgCodeLambdaMI = new TH1F("h1AsMcMotherPdgCodeLambdaMI","Mother of Associated #Lambda^{0} MI;mother;counts",11,0,11); | |
1126 | fListHist->Add(fHistAsMcMotherPdgCodeLambdaMI); | |
1127 | ||
1128 | fHistAsMcMotherPdgCodeAntiLambda = new TH1F("h1AsMcMotherPdgCodeAntiLambda","Mother of Associated #bar{#Lambda}^{0};mother;counts",11,0,11); | |
1129 | fListHist->Add(fHistAsMcMotherPdgCodeAntiLambda); | |
1130 | fHistAsMcMotherPdgCodeAntiLambdaMI = new TH1F("h1AsMcMotherPdgCodeAntiLambdaMI","Mother of Associated #bar{Lambda}^{0} MI;mother;counts",11,0,11); | |
1131 | fListHist->Add(fHistAsMcMotherPdgCodeAntiLambdaMI); | |
1132 | ||
1133 | ||
1134 | // Pt distribution Lambda from Sigma | |
2093003d | 1135 | fHistAsMcPtLambdaFromSigma = new TH1F("h1AsMcPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",200,0,10); |
9c7b62a0 | 1136 | fListHist->Add(fHistAsMcPtLambdaFromSigma); |
2093003d | 1137 | fHistAsMcPtLambdaFromSigmaMI = new TH1F("h1AsMcPtLambdaFromSigmaMI","#Lambda^{0} MI associated from Sigma;p_{t} (GeV/c);Count",200,0,10); |
9c7b62a0 | 1138 | fListHist->Add(fHistAsMcPtLambdaFromSigmaMI); |
1139 | ||
2093003d | 1140 | fHistAsMcPtAntiLambdaFromSigma = new TH1F("h1AsMcPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",200,0,10); |
9c7b62a0 | 1141 | fListHist->Add(fHistAsMcPtAntiLambdaFromSigma); |
2093003d | 1142 | fHistAsMcPtAntiLambdaFromSigmaMI = new TH1F("h1AsMcPtAntiLambdaFromSigmaMI","#bar{#Lambda}^{0} MI associated from Sigma;p_{t} (GeV/c);Count",200,0,10); |
9c7b62a0 | 1143 | fListHist->Add(fHistAsMcPtAntiLambdaFromSigmaMI); |
1144 | ||
1145 | ||
1146 | // Associated secondary particles: | |
1147 | // Pt and rapidity distribution | |
f81f8d5e | 1148 | fHistAsMcSecondaryPtVsRapK0s = new TH2F("h2AsMcSecondaryPtVsRapK0s", "K^{0} associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5); |
1149 | fListHist->Add(fHistAsMcSecondaryPtVsRapK0s); | |
1150 | fHistAsMcSecondaryPtVsRapK0sMI = new TH2F("h2AsMcSecondaryPtVsRapK0sMI", "K^{0} MI associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5); | |
1151 | fListHist->Add(fHistAsMcSecondaryPtVsRapK0sMI); | |
9c7b62a0 | 1152 | |
f81f8d5e | 1153 | fHistAsMcSecondaryPtVsRapLambda = new TH2F("h2AsMcSecondaryPtVsRapLambda", "#Lambda^{0} associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5); |
1154 | fListHist->Add(fHistAsMcSecondaryPtVsRapLambda); | |
1155 | fHistAsMcSecondaryPtVsRapLambdaMI = new TH2F("h2AsMcSecondaryPtVsRapLambdaMI", "#Lambda^{0} MI associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5); | |
1156 | fListHist->Add(fHistAsMcSecondaryPtVsRapLambdaMI); | |
9c7b62a0 | 1157 | |
f81f8d5e | 1158 | fHistAsMcSecondaryPtVsRapAntiLambda = new TH2F("h2AsMcSecondaryPtVsRapAntiLambda", "#bar{#Lambda}^{0} associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5); |
1159 | fListHist->Add(fHistAsMcSecondaryPtVsRapAntiLambda); | |
1160 | fHistAsMcSecondaryPtVsRapAntiLambdaMI = new TH2F("h2AsMcSecondaryPtVsRapAntiLambdaMI", "#bar{#Lambda}^{0} MI associated secondary;p_{t} (GeV/c);rapidity",200,0,10,30,-1.5,1.5); | |
1161 | fListHist->Add(fHistAsMcSecondaryPtVsRapAntiLambdaMI); | |
9c7b62a0 | 1162 | |
1163 | // Production radius | |
1164 | fHistAsMcSecondaryProdRadiusK0s = new TH1F("h1AsMcSecondaryProdRadiusK0s", "K^{0} Production Radius;r (cm);Count", 170, -2, 15); | |
1165 | fListHist->Add(fHistAsMcSecondaryProdRadiusK0s); | |
1166 | fHistAsMcSecondaryProdRadiusK0sMI = new TH1F("h1AsMcSecondaryProdRadiusK0sMI", "K^{0} MI Production Radius;r (cm);Count", 170, -2, 15); | |
1167 | fListHist->Add(fHistAsMcSecondaryProdRadiusK0sMI); | |
1168 | ||
1169 | fHistAsMcSecondaryProdRadiusLambda = new TH1F("h1AsMcSecondaryProdRadiusLambda", "#Lambda^{0} Production Radius;r (cm);Count", 170, -2, 15); | |
1170 | fListHist->Add(fHistAsMcSecondaryProdRadiusLambda); | |
1171 | fHistAsMcSecondaryProdRadiusLambdaMI = new TH1F("h1AsMcSecondaryProdRadiusLambdaMI", "#Lambda^{0} MI Production Radius;r (cm);Count", 170, -2, 15); | |
1172 | fListHist->Add(fHistAsMcSecondaryProdRadiusLambdaMI); | |
1173 | ||
1174 | fHistAsMcSecondaryProdRadiusAntiLambda = new TH1F("h1AsMcSecondaryProdRadiusAntiLambda", "#bar{#Lambda}^{0} Production Radius;r (cm);Count", 170, -2, 15); | |
1175 | fListHist->Add(fHistAsMcSecondaryProdRadiusAntiLambda); | |
1176 | fHistAsMcSecondaryProdRadiusAntiLambdaMI = new TH1F("h1AsMcSecondaryProdRadiusAntiLambdaMI", "#bar{#Lambda}^{0} MI Production Radius;r (cm);Count", 170, -2, 15); | |
1177 | fListHist->Add(fHistAsMcSecondaryProdRadiusAntiLambdaMI); | |
1178 | ||
1179 | fHistAsMcSecondaryProdRadiusXvsYK0s = new TH2F("h2AsMcSecondaryProdRadiusXvsYK0s","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20); | |
1180 | fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYK0s); | |
1181 | fHistAsMcSecondaryProdRadiusXvsYK0sMI = new TH2F("h2AsMcSecondaryProdRadiusXvsYK0sMI","Associated Secondary K^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20); | |
1182 | fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYK0sMI); | |
1183 | ||
1184 | fHistAsMcSecondaryProdRadiusXvsYLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYLambda","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20); | |
1185 | fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYLambda); | |
1186 | fHistAsMcSecondaryProdRadiusXvsYLambdaMI = new TH2F("h2AsMcSecondaryProdRadiusXvsYLambdaMI","Associated Secondary #Lambda^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20); | |
1187 | fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYLambdaMI); | |
1188 | ||
1189 | fHistAsMcSecondaryProdRadiusXvsYAntiLambda = new TH2F("h2AsMcSecondaryProdRadiusXvsYAntiLambda","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20); | |
1190 | fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYAntiLambda); | |
1191 | fHistAsMcSecondaryProdRadiusXvsYAntiLambdaMI = new TH2F("h2AsMcSecondaryProdRadiusXvsYAntiLambdaMI","Associated Secondary #bar{#Lambda}^{0} Production Radius;x (cm); y (cm)",200,-20,20,200,-20,20); | |
1192 | fListHist->Add(fHistAsMcSecondaryProdRadiusXvsYAntiLambdaMI); | |
1193 | ||
1194 | fHistAsMcSecondaryMotherPdgCodeK0s = new TH1F("h1AsMcSecondaryMotherPdgCodeK0s","Mother of Associated Secondary K^{0};mother;counts",11,0,11); | |
1195 | fListHist->Add(fHistAsMcSecondaryMotherPdgCodeK0s); | |
1196 | fHistAsMcSecondaryMotherPdgCodeK0sMI = new TH1F("h1AsMcSecondaryMotherPdgCodeK0sMI","Mother of Associated Secondary K^{0} MI;mother;counts",11,0,11); | |
1197 | fListHist->Add(fHistAsMcSecondaryMotherPdgCodeK0sMI); | |
1198 | ||
1199 | fHistAsMcSecondaryMotherPdgCodeLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeLambda","Mother of Associated Secondary #Lambda^{0};mother;counts",11,0,11); | |
1200 | fListHist->Add(fHistAsMcSecondaryMotherPdgCodeLambda); | |
1201 | fHistAsMcSecondaryMotherPdgCodeLambdaMI = new TH1F("h1AsMcSecondaryMotherPdgCodeLambdaMI","Mother of Associated Secondary #Lambda^{0} MI;mother;counts",11,0,11); | |
1202 | fListHist->Add(fHistAsMcSecondaryMotherPdgCodeLambdaMI); | |
1203 | ||
1204 | fHistAsMcSecondaryMotherPdgCodeAntiLambda = new TH1F("h1AsMcSecondaryMotherPdgCodeAntiLambda","Mother of Associated Secondary #bar{#Lambda}^{0};mother;counts",11,0,11); | |
1205 | fListHist->Add(fHistAsMcSecondaryMotherPdgCodeAntiLambda); | |
1206 | fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI = new TH1F("h1AsMcSecondaryMotherPdgCodeAntiLambdaMI","Mother of Associated Secondary #bar{Lambda}^{0} MI;mother;counts",11,0,11); | |
1207 | fListHist->Add(fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI); | |
1208 | ||
1209 | // Pt distribution Lambda from Sigma | |
2093003d | 1210 | fHistAsMcSecondaryPtLambdaFromSigma = new TH1F("h1AsMcSecondaryPtLambdaFromSigma","#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",200,0,10); |
9c7b62a0 | 1211 | fListHist->Add(fHistAsMcSecondaryPtLambdaFromSigma); |
2093003d | 1212 | fHistAsMcSecondaryPtLambdaFromSigmaMI = new TH1F("h1AsMcSecondaryPtLambdaFromSigmaMI","#Lambda^{0} MI associated from Sigma;p_{t} (GeV/c);Count",200,0,10); |
9c7b62a0 | 1213 | fListHist->Add(fHistAsMcSecondaryPtLambdaFromSigmaMI); |
1214 | ||
2093003d | 1215 | fHistAsMcSecondaryPtAntiLambdaFromSigma = new TH1F("h1AsMcSecondaryPtAntiLambdaFromSigma","#bar{#Lambda}^{0} associated from Sigma;p_{t} (GeV/c);Count",200,0,10); |
9c7b62a0 | 1216 | fListHist->Add(fHistAsMcSecondaryPtAntiLambdaFromSigma); |
2093003d | 1217 | fHistAsMcSecondaryPtAntiLambdaFromSigmaMI = new TH1F("h1AsMcSecondaryPtAntiLambdaFromSigmaMI","#bar{#Lambda}^{0} MI associated from Sigma;p_{t} (GeV/c);Count",200,0,10); |
9c7b62a0 | 1218 | fListHist->Add(fHistAsMcSecondaryPtAntiLambdaFromSigmaMI); |
1219 | ||
1220 | } | |
1221 | ||
1222 | //________________________________________________________________________ | |
1223 | void AliAnalysisTaskPerformanceStrange::UserExec(Option_t *) | |
1224 | { | |
1225 | // Main loop | |
1226 | // Called for each event | |
1227 | ||
2093003d | 1228 | AliStack* stack = NULL; |
1229 | TClonesArray *mcArray = NULL; | |
1230 | TArrayF mcPrimaryVtx; | |
9c7b62a0 | 1231 | |
1232 | AliVEvent* lEvent = InputEvent(); | |
2093003d | 1233 | |
9c7b62a0 | 1234 | if (!lEvent) { |
1235 | Printf("ERROR: Event not available"); | |
1236 | return; | |
1237 | } | |
2093003d | 1238 | |
1239 | //****************** | |
1240 | // Trigger Selection ! Warning Works only for ESD, add protection in case of AOD loop | |
1241 | //****************** | |
1242 | Bool_t isEventTriggered = kFALSE; | |
1243 | if ( !fAnalysisMC) { | |
1244 | //if (!( ((AliESDEvent*)lEvent)->IsTriggerClassFired("CINT1B-ABCE-NOPF-ALL"))) return; | |
1245 | isEventTriggered = fPhysTrigSel->IsCollisionCandidate((AliESDEvent*)lEvent); | |
1246 | } | |
1247 | else { | |
f00218b3 | 1248 | fPhysTrigSel->SetAnalyzeMC(); // Bo: maybe this is not needed (should be done in AliPhysicsSelectionTask) |
2093003d | 1249 | isEventTriggered = fPhysTrigSel->IsCollisionCandidate((AliESDEvent*)lEvent); |
9c7b62a0 | 1250 | } |
2093003d | 1251 | |
1252 | if (!isEventTriggered) return; | |
9c7b62a0 | 1253 | |
2093003d | 1254 | //******************** |
1255 | // Track Multiplicty | |
1256 | //******************** | |
9c7b62a0 | 1257 | fHistTrackPerEvent->Fill(lEvent->GetNumberOfTracks()); |
1258 | ||
2093003d | 1259 | // Remove Events with no tracks |
1260 | if (!(lEvent->GetNumberOfTracks())) return; | |
9c7b62a0 | 1261 | |
9c7b62a0 | 1262 | |
2093003d | 1263 | //************************************* |
1264 | // Cut used: | |
1265 | //************************************* | |
1266 | ||
f81f8d5e | 1267 | // Cut Rapidity: |
1268 | Double_t lCutRap = 0.75; | |
2093003d | 1269 | |
1270 | // Cut AliKF Chi2 for Reconstructed particles | |
1271 | Double_t cutChi2KF = 1E3; | |
1272 | ||
1273 | // Cut to distinguish between primary and secondary associated particles | |
f81f8d5e | 1274 | // Double_t lMaxMcProdRadiusPrimaries = 0.2; |
2093003d | 1275 | |
1276 | ||
1277 | ||
1278 | //******************* | |
1279 | // Access MC: | |
1280 | //******************* | |
1281 | if (fAnalysisMC) { | |
1282 | if(fAnalysisType == "ESD") { | |
1283 | AliMCEventHandler* eventHandler = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()); | |
1284 | if (!eventHandler) { | |
1285 | //Printf("ERROR: Could not retrieve MC event handler"); | |
1286 | return; | |
1287 | } | |
1288 | AliMCEvent* mcEvent = eventHandler->MCEvent(); | |
1289 | if (!mcEvent) { | |
1290 | //Printf("ERROR: Could not retrieve MC event"); | |
1291 | return; | |
1292 | } | |
1293 | stack = mcEvent->Stack(); | |
1294 | if (!stack) { | |
1295 | //Printf("ERROR: Could not retrieve stack"); | |
1296 | return; | |
1297 | } | |
1298 | ||
1299 | AliGenEventHeader* mcHeader=mcEvent->GenEventHeader(); | |
1300 | if(!mcHeader) return; | |
1301 | mcHeader->PrimaryVertex(mcPrimaryVtx); | |
1302 | ||
9c7b62a0 | 1303 | } |
1304 | ||
2093003d | 1305 | else if(fAnalysisType == "AOD") { |
1306 | ||
1307 | // load MC particles | |
1308 | mcArray = (TClonesArray*)lEvent->GetList()->FindObject(AliAODMCParticle::StdBranchName()); | |
1309 | if(!mcArray) { | |
1310 | Printf("strange analysis::UserExec: MC particles branch not found!\n"); | |
1311 | return; | |
1312 | } | |
1313 | ||
1314 | // load MC header | |
1315 | AliAODMCHeader *mcHeader = | |
1316 | (AliAODMCHeader*)lEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName()); | |
1317 | if(!mcHeader) { | |
1318 | Printf("strange analysis::UserExec: MC header branch not found!\n"); | |
1319 | return; | |
1320 | } | |
9c7b62a0 | 1321 | } |
1322 | } | |
1323 | ||
2093003d | 1324 | |
9c7b62a0 | 1325 | //********************************************** |
1326 | // MC loop | |
1327 | //********************************************** | |
1328 | ||
2093003d | 1329 | Double_t lmcPrimVtxR = 0; |
1330 | ||
9c7b62a0 | 1331 | Int_t lNbMCPrimary = 0; |
1332 | Int_t lNbMCPart = 0; | |
1333 | ||
1334 | Int_t lPdgcodeCurrentPart = 0; | |
f81f8d5e | 1335 | Double_t lRapCurrentPart = 0; |
9c7b62a0 | 1336 | Double_t lPtCurrentPart = 0; |
1337 | ||
1338 | Int_t lComeFromSigma = 0; | |
1339 | ||
9c7b62a0 | 1340 | |
1341 | // Production Radius | |
1342 | Double_t mcPosX = 0.0, mcPosY = 0.0, mcPosZ = 0.0; | |
1343 | Double_t mcPosR = 0.0; | |
1344 | ||
1345 | // Decay Radius | |
1346 | Double_t mcDecayPosX = 0, mcDecayPosY = 0, mcDecayPosR = 0; | |
1347 | ||
1348 | // current mc particle 's mother | |
1349 | Int_t iCurrentMother = 0, lPdgCurrentMother = 0; | |
1350 | Bool_t lCurrentMotherIsPrimary; | |
1351 | ||
1352 | // variables for multiple reconstruction studies: | |
1353 | Int_t id0 = 0, id1 = 0; | |
f81f8d5e | 1354 | //Int_t lLabelTrackN = 0, lLabelTrackP = 0; |
1355 | //Int_t lPartNMother = 0, lPartPMother = 0; | |
1356 | //Int_t lPartPMotherPDGcode = 0; | |
9c7b62a0 | 1357 | Int_t lNtimesReconstructedK0s = 0, lNtimesReconstructedLambda = 0, lNtimesReconstructedAntiLambda = 0; |
1358 | Int_t lNtimesReconstructedK0sMI = 0, lNtimesReconstructedLambdaMI = 0, lNtimesReconstructedAntiLambdaMI = 0; | |
1359 | ||
2093003d | 1360 | //**************************** |
1361 | // Start loop over MC particles | |
1362 | if (fAnalysisMC) { | |
9c7b62a0 | 1363 | |
2093003d | 1364 | // Primary vertex |
1365 | fHistMCPrimaryVertexX->Fill(mcPrimaryVtx.At(0)); | |
1366 | fHistMCPrimaryVertexY->Fill(mcPrimaryVtx.At(1)); | |
1367 | fHistMCPrimaryVertexZ->Fill(mcPrimaryVtx.At(2)); | |
1368 | ||
1369 | lmcPrimVtxR = TMath::Sqrt(mcPrimaryVtx.At(0)*mcPrimaryVtx.At(0)+mcPrimaryVtx.At(1)*mcPrimaryVtx.At(1)); | |
1370 | ||
9c7b62a0 | 1371 | |
2093003d | 1372 | if(fAnalysisType == "ESD") { |
1373 | ||
1374 | lNbMCPrimary = stack->GetNprimary(); | |
1375 | lNbMCPart = stack->GetNtrack(); | |
1376 | ||
1377 | fHistMCMultiplicityPrimary->Fill(lNbMCPrimary); | |
1378 | fHistMCMultiplicityTracks->Fill(lNbMCPart); | |
1379 | ||
1380 | ||
1381 | for (Int_t iMc = 0; iMc < (stack->GetNtrack()); iMc++) { | |
1382 | TParticle *p0 = stack->Particle(iMc); | |
1383 | if (!p0) { | |
1384 | //Printf("ERROR: particle with label %d not found in stack (mc loop)", iMc); | |
1385 | continue; | |
1386 | } | |
1387 | lPdgcodeCurrentPart = p0->GetPdgCode(); | |
1388 | ||
1389 | // Keep only K0s, Lambda and AntiLambda: | |
1390 | if ( (lPdgcodeCurrentPart != 310 ) && (lPdgcodeCurrentPart != 3122 ) && (lPdgcodeCurrentPart != -3122 ) ) continue; | |
1391 | ||
f81f8d5e | 1392 | lRapCurrentPart = MyRapidity(p0->Energy(),p0->Pz()); |
1393 | //lEtaCurrentPart = p0->Eta(); | |
2093003d | 1394 | lPtCurrentPart = p0->Pt(); |
1395 | iCurrentMother = p0->GetFirstMother(); | |
1396 | lPdgCurrentMother = stack->Particle(iCurrentMother)->GetPdgCode(); | |
1397 | ||
1398 | mcPosX = p0->Vx(); | |
1399 | mcPosY = p0->Vy(); | |
1400 | mcPosZ = p0->Vz(); | |
1401 | mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY); | |
1402 | ||
1403 | id0 = p0->GetDaughter(0); | |
1404 | id1 = p0->GetDaughter(1); | |
1405 | ||
1406 | // Decay Radius and Production Radius | |
1407 | if ( id0 <= lNbMCPart && id0 > 0 && id1 <= lNbMCPart && id1 > 0) { | |
1408 | TParticle *pDaughter0 = stack->Particle(id0); | |
1409 | mcDecayPosX = pDaughter0->Vx(); | |
1410 | mcDecayPosY = pDaughter0->Vy(); | |
1411 | mcDecayPosR = TMath::Sqrt(mcDecayPosX*mcDecayPosX+mcDecayPosY*mcDecayPosY); | |
1412 | } | |
1413 | else { | |
1414 | //Printf("ERROR: particle with label %d and/or %d not found in stack (mc loop)", id0,id1); | |
1415 | mcDecayPosR = -1.0; | |
1416 | } | |
1417 | ||
1418 | if (lPdgcodeCurrentPart==310) { | |
1419 | fHistMCtracksProdRadiusK0s->Fill(mcPosX,mcPosY); | |
1420 | fHistMCtracksDecayRadiusK0s->Fill(mcDecayPosR); | |
f81f8d5e | 1421 | if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllK0s->Fill(lPtCurrentPart); |
2093003d | 1422 | } |
1423 | else if (lPdgcodeCurrentPart==3122) { | |
1424 | fHistMCtracksProdRadiusLambda->Fill(mcPosX,mcPosY); | |
1425 | fHistMCtracksDecayRadiusLambda->Fill(mcDecayPosR); | |
f81f8d5e | 1426 | if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllLambda->Fill(lPtCurrentPart); |
2093003d | 1427 | } |
1428 | else if (lPdgcodeCurrentPart==-3122) { | |
1429 | fHistMCtracksProdRadiusAntiLambda->Fill(mcPosX,mcPosY); | |
1430 | fHistMCtracksDecayRadiusAntiLambda->Fill(mcDecayPosR); | |
f81f8d5e | 1431 | if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllAntiLambda->Fill(lPtCurrentPart); |
2093003d | 1432 | } |
1433 | ||
1434 | if ( ( ( TMath::Abs(lPdgCurrentMother) == 3212) || | |
1435 | ( TMath::Abs(lPdgCurrentMother) == 3224) || | |
1436 | ( TMath::Abs(lPdgCurrentMother) == 3214) || | |
1437 | ( TMath::Abs(lPdgCurrentMother) == 3114) ) | |
1438 | && ( iCurrentMother <= lNbMCPrimary ) | |
1439 | ) lComeFromSigma = 1; | |
1440 | else lComeFromSigma = 0; | |
1441 | ||
1442 | //********************************************* | |
1443 | // Now keep only primary particles | |
1444 | if ( ( iMc > lNbMCPrimary ) && (!lComeFromSigma) ) continue; | |
9c7b62a0 | 1445 | |
2093003d | 1446 | //******************************************** |
1447 | //check if V0 is reconstructed several times | |
9c7b62a0 | 1448 | |
2093003d | 1449 | lNtimesReconstructedK0s = 0; lNtimesReconstructedLambda = 0; lNtimesReconstructedAntiLambda = 0; |
1450 | lNtimesReconstructedK0sMI = 0; lNtimesReconstructedLambdaMI = 0; lNtimesReconstructedAntiLambdaMI = 0; | |
9c7b62a0 | 1451 | |
2093003d | 1452 | //for (Int_t jV0 = 0; jV0 < lEvent->GetNumberOfV0s(); jV0++) { |
9c7b62a0 | 1453 | |
2093003d | 1454 | //lLabelTrackN = 0; lLabelTrackP = 0; |
1455 | //lPartNMother = 0; lPartPMother = 0; | |
9c7b62a0 | 1456 | |
2093003d | 1457 | //AliESDv0 *vertexESD = ((AliESDEvent*)lEvent)->GetV0(jV0); |
1458 | //if (!vertexESD) continue; | |
9c7b62a0 | 1459 | |
2093003d | 1460 | //AliESDtrack *trackNESD = ((AliESDEvent*)lEvent)->GetTrack(TMath::Abs(vertexESD->GetNindex())); |
1461 | //lLabelTrackN = (UInt_t)TMath::Abs(trackNESD->GetLabel()); | |
1462 | //if (lLabelTrackN!=id0 && lLabelTrackN!=id1) continue; | |
9c7b62a0 | 1463 | |
2093003d | 1464 | //AliESDtrack *trackPESD = ((AliESDEvent*)lEvent)->GetTrack(TMath::Abs(vertexESD->GetPindex())); |
1465 | //lLabelTrackP = (UInt_t)TMath::Abs(trackPESD->GetLabel()); | |
1466 | //if (lLabelTrackP!=id0 && lLabelTrackP!=id1) continue; | |
9c7b62a0 | 1467 | |
2093003d | 1468 | //TParticle *lPartNESD = stack->Particle(lLabelTrackN); |
1469 | //TParticle *lPartPESD = stack->Particle(lLabelTrackP); | |
1470 | //lPartNMother = lPartNESD->GetFirstMother(); | |
1471 | //lPartPMother = lPartPESD->GetFirstMother(); | |
1472 | ||
1473 | //lPartPMotherPDGcode = stack->Particle(lPartPMother)->GetPdgCode(); | |
1474 | ||
1475 | //switch (vertexESD->GetOnFlyStatus()){ | |
1476 | ||
1477 | //case 0 : | |
1478 | //if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==310) ) lNtimesReconstructedK0s++; | |
1479 | //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==3122) ) lNtimesReconstructedLambda++; | |
1480 | //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==-3122) ) lNtimesReconstructedAntiLambda++; | |
1481 | //break; | |
1482 | ||
1483 | //case 1 : | |
1484 | //if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==310) ) lNtimesReconstructedK0sMI++; | |
1485 | //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==3122) ) lNtimesReconstructedLambdaMI++; | |
1486 | //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==-3122) ) lNtimesReconstructedAntiLambdaMI++; | |
1487 | //break; | |
1488 | ||
1489 | //} | |
1490 | //} // end loop over reconstructed V0s inside MC loop | |
f81f8d5e | 1491 | |
1492 | if (TMath::Abs(lRapCurrentPart) > lCutRap) continue; | |
1493 | ||
2093003d | 1494 | if (lPdgcodeCurrentPart==310) { |
1495 | fHistMCProdRadiusK0s->Fill(mcPosR); | |
f81f8d5e | 1496 | fHistMCPtK0s->Fill(lPtCurrentPart); |
2093003d | 1497 | fHistNTimesRecK0s->Fill(lNtimesReconstructedK0s); |
1498 | fHistNTimesRecK0sMI->Fill(lNtimesReconstructedK0s); | |
1499 | fHistNTimesRecK0sVsPt->Fill(lPtCurrentPart,lNtimesReconstructedK0s); | |
1500 | fHistNTimesRecK0sVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedK0sMI); | |
1501 | } | |
1502 | else if (lPdgcodeCurrentPart==3122) { | |
1503 | fHistMCProdRadiusLambda->Fill(mcPosR); | |
f81f8d5e | 1504 | fHistMCPtLambda->Fill(lPtCurrentPart); |
2093003d | 1505 | fHistNTimesRecLambda->Fill(lNtimesReconstructedLambda); |
1506 | fHistNTimesRecLambdaMI->Fill(lNtimesReconstructedLambdaMI); | |
1507 | fHistNTimesRecLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedLambda); | |
1508 | fHistNTimesRecLambdaVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedLambdaMI); | |
1509 | if (lComeFromSigma) fHistMCPtLambdaFromSigma->Fill(lPtCurrentPart); | |
1510 | } | |
1511 | else if (lPdgcodeCurrentPart==-3122) { | |
1512 | fHistMCProdRadiusAntiLambda->Fill(mcPosR); | |
f81f8d5e | 1513 | fHistMCPtAntiLambda->Fill(lPtCurrentPart); |
2093003d | 1514 | fHistNTimesRecAntiLambda->Fill(lNtimesReconstructedAntiLambda); |
1515 | fHistNTimesRecAntiLambdaMI->Fill(lNtimesReconstructedAntiLambdaMI); | |
1516 | fHistNTimesRecAntiLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambda); | |
1517 | fHistNTimesRecAntiLambdaVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambdaMI); | |
1518 | if (lComeFromSigma) fHistMCPtAntiLambdaFromSigma->Fill(lPtCurrentPart); | |
1519 | } | |
1520 | ||
1521 | } // end loop ESD MC | |
9c7b62a0 | 1522 | |
2093003d | 1523 | } // end ESD condition |
9c7b62a0 | 1524 | |
2093003d | 1525 | else if(fAnalysisType == "AOD") { |
1526 | lNbMCPart = mcArray->GetEntriesFast(); | |
1527 | lNbMCPrimary = 0; | |
1528 | ||
1529 | fHistMCMultiplicityTracks->Fill(lNbMCPart); | |
1530 | ||
1531 | for (Int_t iMc = 0; iMc < lNbMCPart; iMc++) { | |
1532 | ||
1533 | // Primary vertex TO DO !! | |
1534 | // | |
1535 | ||
1536 | AliAODMCParticle *mcAODPart = (AliAODMCParticle*)mcArray->At(iMc); | |
9c7b62a0 | 1537 | if (!mcAODPart) { |
2093003d | 1538 | //Printf("Strange analysis task (mc loop): particle with label %d not found", iMc); |
9c7b62a0 | 1539 | continue; |
1540 | } | |
2093003d | 1541 | lPdgcodeCurrentPart = mcAODPart->GetPdgCode(); |
1542 | if (mcAODPart->IsPhysicalPrimary()) {lNbMCPrimary = lNbMCPrimary +1;} | |
1543 | ||
1544 | // Keep only K0s, Lambda and AntiLambda: | |
1545 | if ( (lPdgcodeCurrentPart != 310 ) && (lPdgcodeCurrentPart != 3122 ) && (lPdgcodeCurrentPart != -3122 ) ) continue; | |
1546 | ||
f81f8d5e | 1547 | //lEtaCurrentPart = mcAODPart->Eta(); |
1548 | lRapCurrentPart = mcAODPart->Y(); | |
2093003d | 1549 | lPtCurrentPart = mcAODPart->Pt(); |
1550 | iCurrentMother = mcAODPart->GetMother(); | |
1551 | lPdgCurrentMother = ((AliAODMCParticle*)mcArray->At(iCurrentMother))->GetPdgCode(); | |
1552 | lCurrentMotherIsPrimary = ((AliAODMCParticle*)mcArray->At(iCurrentMother))->IsPhysicalPrimary(); | |
1553 | ||
1554 | mcPosX = mcAODPart->Xv(); | |
1555 | mcPosY = mcAODPart->Yv(); | |
1556 | mcPosZ = mcAODPart->Zv(); | |
1557 | mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY); | |
1558 | ||
1559 | id0 = mcAODPart->GetDaughter(0); | |
1560 | id1 = mcAODPart->GetDaughter(1); | |
1561 | ||
1562 | // Decay Radius and Production Radius | |
1563 | if ( id0 <= lNbMCPart && id0 > 0 && id1 <= lNbMCPart && id1 > 0) { | |
1564 | AliAODMCParticle *mcAODDaughter1 = (AliAODMCParticle*)mcArray->At(id1); | |
1565 | if (!mcAODPart) { | |
1566 | //Printf("Strange analysis task (mc loop): daughter not found"); | |
1567 | continue; | |
1568 | } | |
1569 | mcDecayPosX = mcAODDaughter1->Xv(); | |
1570 | mcDecayPosY = mcAODDaughter1->Yv(); | |
1571 | mcDecayPosR = TMath::Sqrt(mcDecayPosX*mcDecayPosX+mcDecayPosY*mcDecayPosY); | |
1572 | } | |
1573 | else { | |
1574 | //Printf("ERROR: particle with label %d and/or %d not found in stack (mc loop)", id0,id1); | |
1575 | mcDecayPosR = -1.0; | |
1576 | } | |
1577 | ||
1578 | if (lPdgcodeCurrentPart==310) { | |
1579 | fHistMCtracksProdRadiusK0s->Fill(mcPosX,mcPosY); | |
1580 | fHistMCtracksDecayRadiusK0s->Fill(mcDecayPosR); | |
f81f8d5e | 1581 | if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllK0s->Fill(lPtCurrentPart); |
2093003d | 1582 | } |
1583 | else if (lPdgcodeCurrentPart==3122) { | |
1584 | fHistMCtracksProdRadiusLambda->Fill(mcPosX,mcPosY); | |
1585 | fHistMCtracksDecayRadiusLambda->Fill(mcDecayPosR); | |
f81f8d5e | 1586 | if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllLambda->Fill(lPtCurrentPart); |
2093003d | 1587 | } |
1588 | else if (lPdgcodeCurrentPart==-3122) { | |
1589 | fHistMCtracksProdRadiusAntiLambda->Fill(mcPosX,mcPosY); | |
1590 | fHistMCtracksDecayRadiusAntiLambda->Fill(mcDecayPosR); | |
f81f8d5e | 1591 | if (TMath::Abs(lRapCurrentPart) < lCutRap) fHistMCPtAllAntiLambda->Fill(lPtCurrentPart); |
2093003d | 1592 | } |
1593 | ||
1594 | if ( ( ( TMath::Abs(lPdgCurrentMother) == 3212) || | |
1595 | ( TMath::Abs(lPdgCurrentMother) == 3224) || | |
1596 | ( TMath::Abs(lPdgCurrentMother) == 3214) || | |
1597 | ( TMath::Abs(lPdgCurrentMother) == 3114) ) | |
1598 | && (lCurrentMotherIsPrimary) | |
1599 | ) lComeFromSigma = 1; | |
1600 | else lComeFromSigma = 0; | |
9c7b62a0 | 1601 | |
2093003d | 1602 | //********************************************* |
1603 | // Now keep only primary particles | |
1604 | ||
1605 | // FIX IT !!!! iMC is not defined !!!! FIX IT also in ESD/AOD loop !! | |
1606 | if ( ( iMc > lNbMCPrimary ) && (!lComeFromSigma) ) continue; | |
1607 | ||
1608 | //******************************************** | |
1609 | // check if V0 is reconstructed several times | |
1610 | ||
1611 | //lNtimesReconstructedK0s = 0; lNtimesReconstructedLambda = 0; lNtimesReconstructedAntiLambda = 0; | |
1612 | //lNtimesReconstructedK0sMI = 0; lNtimesReconstructedLambdaMI = 0; lNtimesReconstructedAntiLambdaMI = 0; | |
1613 | ||
1614 | //for (Int_t jV0 = 0; jV0 < lEvent->GetNumberOfV0s(); jV0++) { | |
9c7b62a0 | 1615 | |
2093003d | 1616 | //lLabelTrackN = 0; lLabelTrackP = 0; |
1617 | //lPartNMother = 0; lPartPMother = 0; | |
1618 | ||
1619 | //AliAODv0 *vertexAOD= ((AliAODEvent*)lEvent)->GetV0(jV0); | |
1620 | //if (!vertexAOD) continue; | |
1621 | //printf("enter!!"); | |
1622 | //AliVParticle *trackP = ((AliVEvent*)lEvent)->GetTrack(vertexAOD->GetPosID()); | |
1623 | //if (!trackP) continue; | |
1624 | //lLabelTrackP = TMath::Abs(trackP->GetLabel()); | |
1625 | //if (lLabelTrackP!=id0 && lLabelTrackP!=id1) continue; | |
9c7b62a0 | 1626 | |
2093003d | 1627 | //AliVParticle *trackN = ((AliVEvent*)lEvent)->GetTrack(vertexAOD->GetNegID()); |
1628 | //if (!trackN) continue; | |
1629 | //lLabelTrackN = TMath::Abs(trackN->GetLabel()); | |
1630 | //if (lLabelTrackN!=id0 && lLabelTrackN!=id1) continue; | |
9c7b62a0 | 1631 | |
2093003d | 1632 | //AliAODMCParticle *lPartNAOD = (AliAODMCParticle*)mcArray->At(lLabelTrackN); |
1633 | //if (!lPartNAOD) continue; | |
1634 | //AliAODMCParticle *lPartPAOD = (AliAODMCParticle*)mcArray->At(lLabelTrackP); | |
1635 | //if (!lPartPAOD) continue; | |
9c7b62a0 | 1636 | |
2093003d | 1637 | //lPartNMother = lPartNAOD->GetMother(); |
1638 | //lPartPMother = lPartPAOD->GetMother(); | |
9c7b62a0 | 1639 | |
2093003d | 1640 | //lPartPMotherPDGcode = ((AliAODMCParticle*)mcArray->At(lPartPMother))->GetPdgCode(); |
9c7b62a0 | 1641 | |
2093003d | 1642 | //switch (vertexAOD->GetOnFlyStatus()){ |
9c7b62a0 | 1643 | |
2093003d | 1644 | //case 0 : |
1645 | //if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==310) ) lNtimesReconstructedK0s++; | |
1646 | //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==3122) ) lNtimesReconstructedLambda++; | |
1647 | //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==-3122) ) lNtimesReconstructedAntiLambda++; | |
1648 | //break; | |
9c7b62a0 | 1649 | |
2093003d | 1650 | //case 1 : |
1651 | //if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==310) ) lNtimesReconstructedK0sMI++; | |
1652 | //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==3122) ) lNtimesReconstructedLambdaMI++; | |
1653 | //else if ( (lPartPMother==lPartNMother) && (lPartPMotherPDGcode==-3122) ) lNtimesReconstructedAntiLambdaMI++; | |
1654 | //break; | |
9c7b62a0 | 1655 | |
2093003d | 1656 | ///} |
1657 | //} // end loop over reconstructed V0s inside MC loop | |
f81f8d5e | 1658 | |
1659 | if (TMath::Abs(lRapCurrentPart) > lCutRap) continue; | |
1660 | ||
2093003d | 1661 | if (lPdgcodeCurrentPart==310) { |
1662 | fHistMCProdRadiusK0s->Fill(mcPosR); | |
f81f8d5e | 1663 | fHistMCPtK0s->Fill(lPtCurrentPart); |
2093003d | 1664 | fHistNTimesRecK0s->Fill(lNtimesReconstructedK0s); |
1665 | fHistNTimesRecK0sMI->Fill(lNtimesReconstructedK0s); | |
1666 | fHistNTimesRecK0sVsPt->Fill(lPtCurrentPart,lNtimesReconstructedK0s); | |
1667 | fHistNTimesRecK0sVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedK0sMI); | |
1668 | } | |
1669 | else if (lPdgcodeCurrentPart==3122) { | |
1670 | fHistMCProdRadiusLambda->Fill(mcPosR); | |
f81f8d5e | 1671 | fHistMCPtLambda->Fill(lPtCurrentPart); |
2093003d | 1672 | fHistNTimesRecLambda->Fill(lNtimesReconstructedLambda); |
1673 | fHistNTimesRecLambdaMI->Fill(lNtimesReconstructedLambdaMI); | |
1674 | fHistNTimesRecLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedLambda); | |
1675 | fHistNTimesRecLambdaVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedLambdaMI); | |
1676 | if (lComeFromSigma) fHistMCPtLambdaFromSigma->Fill(lPtCurrentPart); | |
1677 | } | |
1678 | else if (lPdgcodeCurrentPart==-3122) { | |
1679 | fHistMCProdRadiusAntiLambda->Fill(mcPosR); | |
f81f8d5e | 1680 | fHistMCPtAntiLambda->Fill(lPtCurrentPart); |
2093003d | 1681 | fHistNTimesRecAntiLambda->Fill(lNtimesReconstructedAntiLambda); |
1682 | fHistNTimesRecAntiLambdaMI->Fill(lNtimesReconstructedAntiLambdaMI); | |
1683 | fHistNTimesRecAntiLambdaVsPt->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambda); | |
1684 | fHistNTimesRecAntiLambdaVsPtMI->Fill(lPtCurrentPart,lNtimesReconstructedAntiLambdaMI); | |
1685 | if (lComeFromSigma) fHistMCPtAntiLambdaFromSigma->Fill(lPtCurrentPart); | |
1686 | } | |
9c7b62a0 | 1687 | |
2093003d | 1688 | } // end loop over AODMC particles |
1689 | fHistMCMultiplicityPrimary->Fill(lNbMCPrimary); | |
1690 | ||
1691 | } // end AOD condition | |
9c7b62a0 | 1692 | |
2093003d | 1693 | } // End Loop over MC condition |
9c7b62a0 | 1694 | |
1695 | ||
1696 | ||
1697 | ||
2093003d | 1698 | |
9c7b62a0 | 1699 | //************************************ |
1700 | // ESD or AOD loop | |
1701 | //************************************ | |
1702 | ||
2093003d | 1703 | Double_t lPrimaryVtxPosition[3]; |
1704 | Double_t lPrimaryVtxCov[6]; | |
1705 | Double_t lPrimaryVtxChi2 = 999; | |
1706 | ||
9c7b62a0 | 1707 | Double_t lMagneticField = 999; |
e2e56010 | 1708 | |
1709 | //Multiplcity: | |
1710 | Int_t nv0sTot= 0, nv0s = 0, nv0sMI = 0; | |
9c7b62a0 | 1711 | |
1712 | // Variables: | |
9c7b62a0 | 1713 | Double_t lV0Position[3]; |
1714 | ||
1715 | Double_t lDcaPosToPrimVertex = 0; | |
1716 | Double_t lDcaNegToPrimVertex = 0; | |
1717 | Double_t lDcaV0Daughters = 0; | |
1718 | Double_t lV0cosPointAngle = 0; | |
1719 | Double_t lChi2V0 = 0; | |
1720 | Double_t lV0DecayLength = 0; | |
1721 | Double_t lV0Radius = 0; | |
1722 | Double_t lDcaV0ToPrimVertex = 0; | |
1723 | ||
1724 | Int_t lOnFlyStatus = 0; | |
1725 | //Float_t tdcaPosToPrimVertexXYZ[2], tdcaNegToPrimVertexXYZ[2]; // ..[0] = Impact parameter in XY plane and ..[1] = Impact parameter in Z | |
1726 | //Double_t tdcaDaughterToPrimVertex[2]; // ..[0] = Pos and ..[1] = Neg | |
1727 | ||
1728 | ||
1729 | ||
2093003d | 1730 | Double_t lInvMassK0s = 0, lInvMassLambda = 0, lInvMassAntiLambda = 0; |
1731 | Double_t lPtK0s = 0, lPtLambda = 0, lPtAntiLambda = 0; | |
1732 | Double_t lRapK0s = 0, lRapLambda = 0, lRapAntiLambda = 0; | |
1733 | Double_t lEtaK0s = 0, lEtaLambda = 0, lEtaAntiLambda = 0; | |
9c7b62a0 | 1734 | Double_t lAlphaV0 = 0, lPtArmV0 = 0; |
1735 | ||
2093003d | 1736 | Double_t lV0Eta = 999; |
9c7b62a0 | 1737 | |
1738 | Float_t lTPCsignalPos = 0; | |
1739 | Float_t lTPCsignalNeg = 0; | |
1740 | ||
1741 | Double_t lMomentumTrackInPos =0; | |
1742 | Double_t lMomentumTrackInNeg =0; | |
1743 | ||
1744 | // to study Associated V0s: | |
1745 | Int_t lIndexTrackPos = 0, lIndexTrackNeg = 0; | |
1746 | UInt_t lLabelTrackPos = 0, lLabelTrackNeg = 0; | |
1747 | Int_t lCheckPIdK0Short = 0, lCheckMcK0Short = 0; | |
1748 | Int_t lCheckPIdLambda = 0, lCheckMcLambda = 0; | |
1749 | Int_t lCheckPIdAntiLambda = 0, lCheckMcAntiLambda = 0; | |
1750 | Int_t lCheckSecondaryK0s = 0, lCheckSecondaryLambda = 0, lCheckSecondaryAntiLambda = 0; | |
1751 | Int_t lCheckGamma = 0; | |
1752 | Double_t mcPosMotherX = 0, mcPosMotherY = 0, mcPosMotherZ = 0; | |
1753 | Double_t mcPosMotherR = 0; | |
1754 | Double_t mcMotherPt = 0; | |
1755 | ||
1756 | Int_t lIndexPosMother = 0; | |
1757 | Int_t lIndexNegMother = 0; | |
1758 | Int_t lIndexMotherOfMother = 0; | |
1759 | Int_t lPDGCodePosDaughter = 0; | |
1760 | Int_t lPDGCodeNegDaughter = 0; | |
1761 | Int_t lPdgcodeMother = 0; | |
1762 | Int_t lPdgcodeMotherOfMother = 0; | |
1763 | ||
2093003d | 1764 | // Reconstructed position |
1765 | Double_t rcPosXK0s = 0, rcPosYK0s = 0, rcPosZK0s = 0; | |
1766 | Double_t rcPosRK0s = 0; | |
1767 | Double_t rcPosXLambda = 0, rcPosYLambda = 0, rcPosZLambda = 0; | |
1768 | Double_t rcPosRLambda = 0; | |
1769 | Double_t rcPosXAntiLambda = 0, rcPosYAntiLambda = 0, rcPosZAntiLambda = 0; | |
1770 | Double_t rcPosRAntiLambda = 0; | |
9c7b62a0 | 1771 | |
2093003d | 1772 | // Pt resolution |
1773 | Double_t deltaPtK0s = 0, deltaPtLambda = 0, deltaPtAntiLambda = 0; | |
9c7b62a0 | 1774 | |
2093003d | 1775 | // Daughters |
1776 | AliESDtrack *myTrackPos = NULL; | |
1777 | AliESDtrack *myTrackNeg = NULL; | |
1778 | AliVParticle *lVPartPos = NULL; | |
1779 | AliVParticle *lVPartNeg = NULL; | |
1780 | ||
1781 | // Daughters' momentum: | |
12fa3949 | 1782 | Double_t lMomPos[3] = {999,999,999}; |
1783 | Double_t lMomNeg[3] = {999,999,999}; | |
2093003d | 1784 | |
1785 | // AliKF Chi2 and Armenteros variables | |
1786 | Double_t lChi2KFK0s = 0, lChi2KFLambda = 0, lChi2KFAntiLambda = 0; | |
1787 | Double_t lAlphaV0K0s = 0, lAlphaV0Lambda = 0, lAlphaV0AntiLambda = 0; | |
1788 | Double_t lPtArmV0K0s = 0, lPtArmV0Lambda = 0, lPtArmV0AntiLambda = 0; | |
1789 | Double_t lQlPos = 0, lQlNeg = 0; | |
9c7b62a0 | 1790 | |
1791 | ||
9c7b62a0 | 1792 | |
1793 | // Bo: please use external methods for these TF1 (no TFormula like this)... | |
1794 | ||
1795 | // PID - Check Parameters depending on the AliRoot version ! Method to be improved ! | |
1796 | TF1 foPion("foPion", "[0]*([1]*TMath::Power(TMath::Sqrt(1 + (x/0.13957)*(x/0.13957))/(x/0.13957) , [3]) - 1 - TMath::Power(TMath::Sqrt(1 + (x/0.13957)*(x/0.13957))/(x/0.13957) , [3])*TMath::Log([2] + 1/TMath::Power((x/0.13957), [4])))",0.05,20); | |
1797 | ||
1798 | // paramters extracted from calibration.... | |
1799 | foPion.SetParameters(4.23232575531564326e+00,8.68482806165147636e+00,1.34000000000000005e-05,2.30445734159456084e+00,2.25624744086878559e+00); | |
1800 | ||
1801 | TF1 foProton("foProton", "[0]*([1]*TMath::Power(TMath::Sqrt(1 + (x/0.93827)*(x/0.93827))/(x/0.93827) , [3]) - 1 - TMath::Power(TMath::Sqrt(1 + (x/0.93827)*(x/0.93827))/(x/0.93827) , [3])*TMath::Log([2] + 1/TMath::Power((x/0.93827), [4])))",0.05,20); | |
1802 | ||
1803 | // paramters extracted from calibration.... | |
1804 | foProton.SetParameters(4.23232575531564326e+00,8.68482806165147636e+00,1.34000000000000005e-05,2.30445734159456084e+00,2.25624744086878559e+00); | |
1805 | ||
1806 | ||
9c7b62a0 | 1807 | Float_t nSigmaPosPion = 0; |
1808 | Float_t nSigmaNegPion = 0; | |
1809 | ||
1810 | Float_t nSigmaPosProton = 0; | |
1811 | Float_t nSigmaNegProton = 0; | |
1812 | ||
1813 | Float_t cutNSigma = 4.0; | |
1814 | ||
2093003d | 1815 | //******************************************************* |
1816 | // Primary Vertex, magnetic field and Quality tracks cuts | |
9c7b62a0 | 1817 | |
2093003d | 1818 | AliAODVertex *myPrimaryVertex = NULL; |
1819 | AliESDtrackCuts *myTracksCuts = NULL; | |
9c7b62a0 | 1820 | |
1821 | if(fAnalysisType == "ESD") { | |
1822 | ||
2093003d | 1823 | // Best Primary Vertex: |
9c7b62a0 | 1824 | const AliESDVertex *myBestPrimaryVertex = ((AliESDEvent*)lEvent)->GetPrimaryVertex(); |
1825 | if (!myBestPrimaryVertex) return; | |
2093003d | 1826 | if (!(myBestPrimaryVertex->GetStatus())) return; |
1827 | //if ( primaryVtx->GetNContributors() <3 ) return; | |
9c7b62a0 | 1828 | myBestPrimaryVertex->GetXYZ(lPrimaryVtxPosition); |
9c7b62a0 | 1829 | myBestPrimaryVertex->GetCovMatrix(lPrimaryVtxCov); |
1830 | lPrimaryVtxChi2 = myBestPrimaryVertex->GetChi2toNDF(); | |
1831 | ||
1832 | myPrimaryVertex = new AliAODVertex(lPrimaryVtxPosition, lPrimaryVtxCov, lPrimaryVtxChi2, NULL, -1, AliAODVertex::kPrimary); | |
1833 | if (!myPrimaryVertex) return; | |
2093003d | 1834 | |
1835 | // TPC Primary Vertex: | |
1836 | //const AliESDVertex *myTPCPrimaryVertex = ((AliESDEvent*)lEvent)->GetPrimaryVertexTPC(); | |
1837 | //if (!myTPCPrimaryVertex) return; | |
1838 | ||
1839 | //const AliESDVertex *mySPDPrimaryVertex = ((AliESDEvent*)lEvent)->GetPrimaryVertexSPD(); | |
1840 | //if (!mySPDPrimaryVertex) return; | |
1841 | ||
1842 | lMagneticField = ((AliESDEvent*)lEvent)->GetMagneticField(); | |
1843 | ||
1844 | myTracksCuts = new AliESDtrackCuts(); | |
1845 | // max value of diagonal covariance | |
1846 | //myTracksCuts->SetMaxCovDiagonalElements(2.0, 2.0, 0.5, 0.5, 2.0); | |
1847 | // require TPC refit | |
1848 | myTracksCuts->SetRequireTPCRefit(kTRUE); | |
1849 | // reject kink daughters | |
1850 | //myTracksCuts->SetAcceptKinkDaughters(kFALSE); | |
1851 | // minimum number of clusters in TPC | |
1852 | myTracksCuts->SetMinNClustersTPC(80); | |
1853 | // maximum normalized chi2 | |
1854 | //myTracksCuts->SetMaxChi2PerClusterTPC(3.5); | |
9c7b62a0 | 1855 | } |
1856 | ||
1857 | else if(fAnalysisType == "AOD") { | |
f81f8d5e | 1858 | printf("enter AOD!!"); |
9c7b62a0 | 1859 | myPrimaryVertex = ((AliAODEvent*)lEvent)->GetPrimaryVertex(); |
1860 | if (!myPrimaryVertex) return; | |
1861 | lPrimaryVtxPosition[0] = myPrimaryVertex->GetX(); | |
1862 | lPrimaryVtxPosition[1] = myPrimaryVertex->GetY(); | |
1863 | lPrimaryVtxPosition[2] = myPrimaryVertex->GetZ(); | |
2093003d | 1864 | |
1865 | // Tracks cuts FIX IT ! | |
1866 | ||
1867 | // FIX it !!! | |
1868 | lMagneticField = 999; | |
9c7b62a0 | 1869 | } |
2093003d | 1870 | |
9c7b62a0 | 1871 | fHistPrimaryVertexX->Fill(lPrimaryVtxPosition[0]); |
1872 | fHistPrimaryVertexY->Fill(lPrimaryVtxPosition[1]); | |
1873 | fHistPrimaryVertexZ->Fill(lPrimaryVtxPosition[2]); | |
f00218b3 | 1874 | Double_t lrcPrimVtxR = 0; |
1875 | lrcPrimVtxR = TMath::Sqrt(lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]+lPrimaryVtxPosition[0]*lPrimaryVtxPosition[0]); // Bo: this is done with respect to x,y=0,0... to sure it is used anymore; | |
2093003d | 1876 | |
1877 | AliKFVertex primaryVtxKF( *myPrimaryVertex ); | |
1878 | AliKFParticle::SetField(lMagneticField); | |
9c7b62a0 | 1879 | |
1880 | ||
1881 | //************************* | |
1882 | // V0 loop | |
e2e56010 | 1883 | |
1884 | nv0sTot = lEvent->GetNumberOfV0s(); | |
9c7b62a0 | 1885 | |
e2e56010 | 1886 | for (Int_t iV0 = 0; iV0 < nv0sTot; iV0++) { |
2093003d | 1887 | |
1888 | // ALiKF | |
1889 | AliKFParticle* negPiKF = NULL; | |
1890 | AliKFParticle* posPiKF = NULL; | |
1891 | AliKFParticle* posPKF = NULL; | |
1892 | AliKFParticle* negAPKF = NULL; | |
9c7b62a0 | 1893 | |
1894 | lIndexPosMother = 0; lIndexNegMother = 0; lIndexMotherOfMother = 0; | |
1895 | lCheckPIdK0Short = 0; lCheckMcK0Short = 0; lCheckSecondaryK0s = 0; | |
1896 | lCheckPIdLambda = 0; lCheckMcLambda = 0; lCheckSecondaryLambda = 0; | |
1897 | lCheckPIdAntiLambda = 0; lCheckMcAntiLambda = 0; lCheckSecondaryAntiLambda = 0; | |
1898 | lComeFromSigma = -1; | |
1899 | ||
1900 | ||
1901 | if(fAnalysisType == "ESD") { | |
2093003d | 1902 | |
9c7b62a0 | 1903 | |
1904 | AliESDv0 *v0 = ((AliESDEvent*)lEvent)->GetV0(iV0); | |
2093003d | 1905 | if (!v0) continue; |
1906 | ||
1907 | // Primary vertex: | |
1908 | fHistPrimaryVertexPosXV0events->Fill(lPrimaryVtxPosition[0]); | |
1909 | fHistPrimaryVertexPosYV0events->Fill(lPrimaryVtxPosition[1]); | |
1910 | fHistPrimaryVertexPosZV0events->Fill(lPrimaryVtxPosition[2]); | |
9c7b62a0 | 1911 | |
1912 | // V0's Daughters | |
1913 | lIndexTrackPos = TMath::Abs(v0->GetPindex()); | |
1914 | lIndexTrackNeg = TMath::Abs(v0->GetNindex()); | |
2093003d | 1915 | AliESDtrack *myTrackPosTest = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackPos); |
1916 | AliESDtrack *myTrackNegTest = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackNeg); | |
1917 | if (!myTrackPosTest || !myTrackNegTest) { | |
9c7b62a0 | 1918 | Printf("strange analysis::UserExec:: Error:Could not retreive one of the daughter track\n"); |
1919 | continue; | |
1920 | } | |
1921 | // Remove like-sign | |
2093003d | 1922 | if ( myTrackPosTest->GetSign() == myTrackNegTest->GetSign()){ |
9c7b62a0 | 1923 | continue; |
1924 | } | |
1925 | ||
2093003d | 1926 | //Multiplicity: |
1927 | if(!lOnFlyStatus) nv0s++; | |
1928 | else if(lOnFlyStatus) nv0sMI++; | |
1929 | ||
1930 | // VO's main characteristics to check the reconstruction cuts | |
9c7b62a0 | 1931 | lOnFlyStatus = v0->GetOnFlyStatus(); |
1932 | lChi2V0 = v0->GetChi2V0(); | |
1933 | lDcaV0Daughters = v0->GetDcaV0Daughters(); | |
1934 | lDcaV0ToPrimVertex = v0->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lPrimaryVtxPosition[2]); | |
1935 | lV0cosPointAngle = v0->GetV0CosineOfPointingAngle(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1], lPrimaryVtxPosition[2]); | |
1936 | ||
1937 | v0->GetXYZ(lV0Position[0], lV0Position[1], lV0Position[2]); | |
1938 | ||
1939 | lV0Radius = TMath::Sqrt(lV0Position[0]*lV0Position[0]+lV0Position[1]*lV0Position[1]); | |
1940 | lV0DecayLength = TMath::Sqrt(TMath::Power(lV0Position[0] - lPrimaryVtxPosition[0],2) + | |
1941 | TMath::Power(lV0Position[1] - lPrimaryVtxPosition[1],2) + | |
1942 | TMath::Power(lV0Position[2] - lPrimaryVtxPosition[2],2 )); | |
1943 | ||
9c7b62a0 | 1944 | |
2093003d | 1945 | if( myTrackPosTest->GetSign() ==1){ |
1946 | ||
1947 | myTrackPos = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackPos); | |
1948 | myTrackNeg = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackNeg); | |
e2e56010 | 1949 | |
2093003d | 1950 | // Daughters' momentum; |
1951 | v0->GetPPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]); | |
1952 | v0->GetNPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]); | |
1953 | ||
1954 | if (negPiKF) delete negPiKF; negPiKF=NULL; | |
1955 | if (posPiKF) delete posPiKF; posPiKF=NULL; | |
1956 | if (posPKF) delete posPKF; posPKF=NULL; | |
1957 | if (negAPKF) delete negAPKF; negAPKF=NULL; | |
1958 | ||
1959 | negPiKF = new AliKFParticle( *(v0->GetParamN()) ,-211); | |
1960 | posPiKF = new AliKFParticle( *(v0->GetParamP()) ,211); | |
1961 | posPKF = new AliKFParticle( *(v0->GetParamP()) ,2212); | |
1962 | negAPKF = new AliKFParticle( *(v0->GetParamN()) ,-2212); | |
1963 | ||
1964 | } | |
1965 | ||
1966 | if( myTrackPosTest->GetSign() ==-1){ | |
1967 | ||
1968 | myTrackPos = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackNeg); | |
1969 | myTrackNeg = ((AliESDEvent*)lEvent)->GetTrack(lIndexTrackPos); | |
1970 | ||
1971 | // Daughters' momentum; | |
1972 | v0->GetPPxPyPz(lMomNeg[0],lMomNeg[1],lMomNeg[2]); | |
1973 | v0->GetNPxPyPz(lMomPos[0],lMomPos[1],lMomPos[2]); | |
9c7b62a0 | 1974 | |
2093003d | 1975 | if (negPiKF) delete negPiKF; negPiKF=NULL; |
1976 | if (posPiKF) delete posPiKF; posPiKF=NULL; | |
1977 | if (posPKF) delete posPKF; posPKF=NULL; | |
1978 | if (negAPKF) delete negAPKF; negAPKF=NULL; | |
1979 | ||
1980 | negPiKF = new AliKFParticle( *(v0->GetParamP()) ,-211); | |
1981 | posPiKF = new AliKFParticle( *(v0->GetParamN()) ,211); | |
1982 | posPKF = new AliKFParticle( *(v0->GetParamN()) ,2212); | |
1983 | negAPKF = new AliKFParticle( *(v0->GetParamP()) ,-2212); | |
1984 | ||
1985 | } | |
9c7b62a0 | 1986 | |
2093003d | 1987 | lLabelTrackPos = (UInt_t)TMath::Abs(myTrackPos->GetLabel()); |
1988 | lLabelTrackNeg = (UInt_t)TMath::Abs(myTrackNeg->GetLabel()); | |
9c7b62a0 | 1989 | |
2093003d | 1990 | |
1991 | // DCA between daughter and Primary Vertex: | |
1992 | if (myTrackPos) lDcaPosToPrimVertex = TMath::Abs(myTrackPos->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) ); | |
1993 | ||
1994 | if (myTrackNeg) lDcaNegToPrimVertex = TMath::Abs(myTrackNeg->GetD(lPrimaryVtxPosition[0],lPrimaryVtxPosition[1],lMagneticField) ); | |
1995 | ||
1996 | // Quality tracks cuts: | |
1997 | if ( !(myTracksCuts->IsSelected(myTrackPos)) || !(myTracksCuts->IsSelected(myTrackNeg)) ) continue; | |
9c7b62a0 | 1998 | |
1999 | // Armenteros variables: | |
2093003d | 2000 | lAlphaV0 = v0->AlphaV0(); |
2001 | lPtArmV0 = v0->PtArmV0(); | |
2002 | ||
2003 | // Pseudorapidity: | |
2004 | lV0Eta = v0->Eta(); | |
9c7b62a0 | 2005 | |
2006 | // PID | |
2007 | lTPCsignalPos = myTrackPos->GetTPCsignal(); | |
2008 | lTPCsignalNeg = myTrackNeg->GetTPCsignal(); | |
2009 | ||
2010 | const AliExternalTrackParam *posInnerParam = myTrackPos->GetInnerParam(); | |
2011 | if (!posInnerParam) continue; | |
2012 | ||
2013 | const AliExternalTrackParam *negInnerParam = myTrackNeg->GetInnerParam(); | |
2014 | if (!negInnerParam) continue; | |
2015 | ||
2016 | AliExternalTrackParam trackInPos(*posInnerParam); | |
2017 | AliExternalTrackParam trackInNeg(*negInnerParam); | |
2018 | ||
9c7b62a0 | 2019 | lMomentumTrackInPos = trackInPos.GetP(); // momentum for dEdx determination |
2020 | lMomentumTrackInNeg = trackInNeg.GetP(); | |
2021 | ||
2022 | if (fUsePID.Contains("withPID")) { | |
2023 | nSigmaPosPion = TMath::Abs((lTPCsignalPos - foPion.Eval(lMomentumTrackInPos))/foPion.Eval(lMomentumTrackInPos))/0.06; | |
2024 | ||
2025 | nSigmaNegPion = TMath::Abs((lTPCsignalNeg - foPion.Eval(lMomentumTrackInNeg))/foPion.Eval(lMomentumTrackInNeg))/0.06; // 0.06 comes from momentum resolution ! | |
2026 | ||
2027 | nSigmaPosProton = TMath::Abs((lTPCsignalPos - foProton.Eval(lMomentumTrackInPos))/foProton.Eval(lMomentumTrackInPos))/0.06; | |
2028 | ||
2029 | nSigmaNegProton = TMath::Abs((lTPCsignalNeg - foProton.Eval(lMomentumTrackInNeg))/foProton.Eval(lMomentumTrackInNeg))/0.06; // 0.06 comes from momentum resolution ! | |
2030 | } | |
2031 | else { | |
2032 | nSigmaPosPion = 0; nSigmaNegPion =0; nSigmaPosProton = 0; nSigmaNegProton= 0;} | |
2033 | ||
2034 | ||
2035 | ||
2093003d | 2036 | // Monte-Carlo particle associated to reconstructed particles: |
2037 | if (fAnalysisMC) { | |
2038 | //if (lLabelTrackPos < 0 || lLabelTrackNeg < 0) continue; | |
2039 | TParticle *lMCESDPartPos = stack->Particle(lLabelTrackPos); | |
2040 | if(!lMCESDPartPos) { | |
2041 | Printf("no MC particle for positive and/or negative daughter\n"); | |
2042 | continue; | |
2043 | } | |
2044 | TParticle *lMCESDPartNeg = stack->Particle(lLabelTrackNeg); | |
2045 | if (!lMCESDPartNeg) continue; | |
2046 | lPDGCodePosDaughter = lMCESDPartPos->GetPdgCode(); | |
2047 | lPDGCodeNegDaughter = lMCESDPartNeg->GetPdgCode(); | |
2048 | lIndexPosMother = lMCESDPartPos->GetFirstMother(); | |
2049 | lIndexNegMother = lMCESDPartNeg->GetFirstMother(); | |
2050 | TParticle *lMCESDMother = stack->Particle(lIndexPosMother); | |
2051 | if (!lMCESDMother) continue; | |
2052 | lPdgcodeMother = lMCESDMother->GetPdgCode(); | |
2053 | lIndexMotherOfMother = lMCESDMother->GetFirstMother(); | |
2054 | if (lIndexMotherOfMother ==-1) lPdgcodeMotherOfMother = 0; | |
2055 | else { | |
2056 | TParticle *lMCESDMotherOfMother = stack->Particle(lIndexMotherOfMother); | |
2057 | if (!lMCESDMotherOfMother) continue; | |
2058 | lPdgcodeMotherOfMother = lMCESDMotherOfMother->GetPdgCode(); | |
2059 | } | |
2060 | ||
2061 | mcPosX = lMCESDPartPos->Vx(); | |
2062 | mcPosY = lMCESDPartPos->Vy(); | |
2063 | mcPosZ = lMCESDPartPos->Vz(); | |
2064 | mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY); | |
2065 | mcPosMotherX = lMCESDMother->Vx(); | |
2066 | mcPosMotherY = lMCESDMother->Vy(); | |
2067 | mcPosMotherZ = lMCESDMother->Vz(); | |
2068 | mcPosMotherR = TMath::Sqrt(mcPosMotherX*mcPosMotherX+mcPosMotherY*mcPosMotherY); | |
2069 | ||
2070 | mcMotherPt = lMCESDMother->Pt(); | |
9c7b62a0 | 2071 | } |
9c7b62a0 | 2072 | |
2073 | } // end ESD condition | |
2074 | ||
2075 | ||
2076 | ||
2077 | else if(fAnalysisType == "AOD") { | |
2078 | ||
2093003d | 2079 | AliAODv0 *myAODv0 = ((AliAODEvent*)lEvent)->GetV0(iV0); |
2080 | if (!myAODv0) continue; | |
9c7b62a0 | 2081 | |
2093003d | 2082 | // Primary vertex: |
2083 | fHistPrimaryVertexPosXV0events->Fill(lPrimaryVtxPosition[0]); | |
2084 | fHistPrimaryVertexPosYV0events->Fill(lPrimaryVtxPosition[1]); | |
2085 | fHistPrimaryVertexPosZV0events->Fill(lPrimaryVtxPosition[2]); | |
2086 | ||
9c7b62a0 | 2087 | |
e2e56010 | 2088 | //Multiplicity: |
2089 | if(!lOnFlyStatus) nv0s++; | |
2090 | else if(lOnFlyStatus) nv0sMI++; | |
2091 | ||
9c7b62a0 | 2092 | // V0's Daughters |
2093 | lIndexTrackPos = TMath::Abs(myAODv0->GetPosID()); | |
2094 | lIndexTrackNeg = TMath::Abs(myAODv0->GetNegID()); | |
2095 | ||
2093003d | 2096 | AliVParticle *lVPartPosTest = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackPos); |
2097 | AliVParticle *lVPartNegTest = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackNeg); | |
9c7b62a0 | 2098 | //AliAODTrack *lVPartPos = ((AliAODEvent*)lEvent)->GetTrack(lIndexTrackPos); |
2099 | //AliAODTrack *lVPartNeg = ((AliAODEvent*)lEvent)->GetTrack(lIndexTrackNeg); | |
2100 | ||
2093003d | 2101 | if (!lVPartPosTest ||(!lVPartNegTest )) { |
9c7b62a0 | 2102 | Printf("strange analysis::UserExec:: Could not retreive one of the daughter track\n"); |
2103 | continue; | |
2104 | } | |
2105 | ||
2106 | // Quality cuts: | |
2107 | // TO DO !!!!!!! | |
2108 | ||
2109 | // TPC refit condition (done during reconstruction for Offline but not for On-the-fly) | |
2093003d | 2110 | //if( !(lVPartPosTest->GetStatus() & AliAODTrack::kTPCrefit)) continue; |
2111 | //if( !(lVPartNegTest->GetStatus() & AliAODTrack::kTPCrefit)) continue; | |
9c7b62a0 | 2112 | |
2093003d | 2113 | |
2114 | lDcaPosToPrimVertex = myAODv0->DcaPosToPrimVertex(); | |
2115 | lDcaNegToPrimVertex = myAODv0->DcaNegToPrimVertex(); | |
2116 | lOnFlyStatus = myAODv0->GetOnFlyStatus(); | |
2117 | lChi2V0 = myAODv0->Chi2V0(); | |
2118 | lDcaV0Daughters = myAODv0->DcaV0Daughters(); | |
2119 | lDcaV0ToPrimVertex = myAODv0->DcaV0ToPrimVertex(); | |
2120 | lV0DecayLength = myAODv0->DecayLengthV0(lPrimaryVtxPosition); | |
2121 | lV0cosPointAngle = myAODv0->CosPointingAngle(lPrimaryVtxPosition); | |
2122 | lV0Radius = myAODv0->RadiusV0(); | |
2123 | ||
2124 | if( lVPartPosTest->Charge() ==1){ | |
2125 | ||
2126 | lVPartPos = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackPos); | |
2127 | lVPartNeg = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackNeg); | |
2128 | ||
2129 | ||
2130 | if (negPiKF) delete negPiKF; negPiKF=NULL; | |
2131 | if (posPiKF) delete posPiKF; posPiKF=NULL; | |
2132 | if (posPKF) delete posPKF; posPKF=NULL; | |
2133 | if (negAPKF) delete negAPKF; negAPKF=NULL; | |
2134 | ||
2135 | //negPiKF = new AliKFParticle( *(myAODv0->GetParamN()) ,-211); | |
2136 | //posPiKF = new AliKFParticle( *(myAODv0->GetParamP()) ,211); | |
2137 | //posPKF = new AliKFParticle( *(myAODv0->GetParamP()) ,2212); | |
2138 | //negAPKF = new AliKFParticle( *(myAODv0->GetParamN()) ,-2212); | |
2139 | // TO DO !!!!!! | |
2140 | negPiKF = NULL; | |
2141 | posPiKF = NULL; | |
2142 | posPKF = NULL; | |
2143 | negAPKF = NULL; | |
2144 | ||
2145 | } | |
2146 | ||
2147 | if( lVPartPosTest->Charge() ==-1){ | |
2148 | ||
2149 | lVPartPos = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackNeg); | |
2150 | lVPartNeg = ((AliVEvent*)lEvent)->GetTrack(lIndexTrackPos); | |
2151 | ||
2152 | if (negPiKF) delete negPiKF; negPiKF=NULL; | |
2153 | if (posPiKF) delete posPiKF; posPiKF=NULL; | |
2154 | if (posPKF) delete posPKF; posPKF=NULL; | |
2155 | if (negAPKF) delete negAPKF; negAPKF=NULL; | |
2156 | ||
2157 | //negPiKF = new AliKFParticle( *(myAODv0->GetParamP()) ,-211); | |
2158 | //posPiKF = new AliKFParticle( *(myAODv0->GetParamN()) ,211); | |
2159 | //posPKF = new AliKFParticle( *(myAODv0->GetParamN()) ,2212); | |
2160 | //negAPKF = new AliKFParticle( *(myAODv0->GetParamP()) ,-2212); | |
2161 | negPiKF = NULL; | |
2162 | posPiKF = NULL; | |
2163 | posPKF = NULL; | |
2164 | negAPKF = NULL; | |
2165 | } | |
2166 | ||
9c7b62a0 | 2167 | lLabelTrackPos = TMath::Abs(lVPartPos->GetLabel()); |
2168 | lLabelTrackNeg = TMath::Abs(lVPartNeg->GetLabel()); | |
2093003d | 2169 | |
9c7b62a0 | 2170 | // Armenteros variables: |
2171 | lAlphaV0 = myAODv0->AlphaV0(); | |
2172 | lPtArmV0 = myAODv0->PtArmV0(); | |
2093003d | 2173 | |
2174 | // Pseudorapidity: | |
2175 | lV0Eta = myAODv0->PseudoRapV0(); | |
9c7b62a0 | 2176 | |
2177 | // PID not accessible with AOD ! | |
2178 | nSigmaPosPion = 0; nSigmaNegPion =0; nSigmaPosProton = 0; nSigmaNegProton= 0; | |
2179 | ||
2180 | ||
2093003d | 2181 | // Monte-Carlo particle associated to reconstructed particles: |
2182 | if (fAnalysisMC) { | |
2183 | AliAODMCParticle *lMCAODPartPos = (AliAODMCParticle*)mcArray->At(lLabelTrackPos); | |
2184 | if (!lMCAODPartPos) continue; | |
2185 | AliAODMCParticle *lMCAODPartNeg = (AliAODMCParticle*)mcArray->At(lLabelTrackNeg); | |
2186 | if(!lMCAODPartNeg) { | |
2187 | Printf("strange analysis::UserExec:no MC particle for negative daughter\n"); | |
2188 | continue; | |
2189 | } | |
2190 | lPDGCodePosDaughter = lMCAODPartPos->GetPdgCode(); | |
2191 | lPDGCodeNegDaughter = lMCAODPartNeg->GetPdgCode(); | |
2192 | lIndexPosMother = lMCAODPartPos->GetMother(); | |
2193 | lIndexNegMother = lMCAODPartNeg->GetMother(); | |
2194 | ||
2195 | AliAODMCParticle *lMCAODMother = (AliAODMCParticle*)mcArray->At(lIndexPosMother); | |
2196 | lPdgcodeMother = lMCAODMother->GetPdgCode(); | |
2197 | lIndexMotherOfMother = lMCAODMother->GetMother(); | |
2198 | if (lIndexMotherOfMother ==-1) lPdgcodeMotherOfMother = 0; | |
2199 | else { | |
2200 | lPdgcodeMotherOfMother = ((AliAODMCParticle*)mcArray->At(lIndexMotherOfMother))->GetPdgCode(); | |
2201 | } | |
2202 | ||
2203 | mcPosX = lMCAODPartPos->Xv(); | |
2204 | mcPosY = lMCAODPartPos->Yv(); | |
2205 | mcPosZ = lMCAODPartPos->Zv(); | |
2206 | mcPosR = TMath::Sqrt(mcPosX*mcPosX+mcPosY*mcPosY); | |
2207 | mcPosMotherX = lMCAODMother->Xv(); | |
2208 | mcPosMotherY = lMCAODMother->Yv(); | |
2209 | mcPosMotherZ = lMCAODMother->Zv(); | |
2210 | mcPosMotherR = TMath::Sqrt(mcPosMotherX*mcPosMotherX+mcPosMotherY*mcPosMotherY); | |
2211 | mcMotherPt = lMCAODMother->Pt(); | |
9c7b62a0 | 2212 | } |
9c7b62a0 | 2213 | |
2214 | } // end AOD condition | |
2215 | ||
2216 | ||
2093003d | 2217 | AliKFParticle v0K0sKF; |
2218 | v0K0sKF+=(*negPiKF); | |
2219 | v0K0sKF+=(*posPiKF); | |
2220 | v0K0sKF.SetProductionVertex(primaryVtxKF); | |
9c7b62a0 | 2221 | |
2093003d | 2222 | AliKFParticle v0LambdaKF; |
2223 | v0LambdaKF+=(*negPiKF); | |
2224 | v0LambdaKF+=(*posPKF); | |
2225 | v0LambdaKF.SetProductionVertex(primaryVtxKF); | |
9c7b62a0 | 2226 | |
2093003d | 2227 | AliKFParticle v0AntiLambdaKF; |
2228 | v0AntiLambdaKF+=(*posPiKF); | |
2229 | v0AntiLambdaKF+=(*negAPKF); | |
2230 | v0AntiLambdaKF.SetProductionVertex(primaryVtxKF); | |
9c7b62a0 | 2231 | |
2093003d | 2232 | // Invariant mass |
2233 | lInvMassK0s = v0K0sKF.GetMass(); | |
2234 | lInvMassLambda = v0LambdaKF.GetMass(); | |
2235 | lInvMassAntiLambda = v0AntiLambdaKF.GetMass(); | |
2236 | ||
2237 | // Rapidity: | |
2238 | lRapK0s = 0.5*TMath::Log((v0K0sKF.GetE()+v0K0sKF.GetPz())/(v0K0sKF.GetE()-v0K0sKF.GetPz()+1.e-13)); | |
2239 | lRapLambda = 0.5*TMath::Log((v0LambdaKF.GetE()+v0LambdaKF.GetPz())/(v0LambdaKF.GetE()-v0LambdaKF.GetPz()+1.e-13)); | |
2240 | lRapAntiLambda = 0.5*TMath::Log((v0AntiLambdaKF.GetE()+v0AntiLambdaKF.GetPz())/(v0AntiLambdaKF.GetE()-v0AntiLambdaKF.GetPz()+1.e-13)); | |
2241 | ||
2242 | // Pseudo-rapidity | |
2243 | lEtaK0s = v0K0sKF.GetEta(); | |
2244 | lEtaLambda = v0LambdaKF.GetEta(); | |
2245 | lEtaAntiLambda = v0AntiLambdaKF.GetEta(); | |
9c7b62a0 | 2246 | |
2093003d | 2247 | // Pt: |
2248 | lPtK0s = v0K0sKF.GetPt(); | |
2249 | lPtLambda = v0LambdaKF.GetPt(); | |
2250 | lPtAntiLambda = v0AntiLambdaKF.GetPt(); | |
2251 | ||
2252 | // Pt Resolution | |
2253 | deltaPtK0s = lPtK0s - mcMotherPt; | |
2254 | deltaPtLambda = lPtLambda - mcMotherPt; | |
2255 | deltaPtAntiLambda = lPtAntiLambda - mcMotherPt; | |
2256 | ||
2257 | // KF Chi2 | |
2258 | lChi2KFK0s = v0K0sKF.GetChi2(); | |
2259 | lChi2KFLambda = v0LambdaKF.GetChi2(); | |
2260 | lChi2KFAntiLambda = v0AntiLambdaKF.GetChi2(); | |
2261 | ||
2262 | // Reconstructed Position | |
2263 | rcPosXK0s = v0K0sKF.GetX(); | |
2264 | rcPosYK0s = v0K0sKF.GetY(); | |
2265 | rcPosZK0s = v0K0sKF.GetZ(); | |
2266 | rcPosRK0s = TMath::Sqrt(rcPosXK0s*rcPosXK0s+rcPosYK0s*rcPosYK0s); | |
2267 | ||
2268 | rcPosXLambda = v0LambdaKF.GetX(); | |
2269 | rcPosYLambda = v0LambdaKF.GetY(); | |
2270 | rcPosZLambda = v0LambdaKF.GetZ(); | |
2271 | rcPosRLambda = TMath::Sqrt(rcPosXLambda*rcPosXLambda+rcPosYLambda*rcPosYLambda); | |
2272 | ||
2273 | rcPosXAntiLambda = v0AntiLambdaKF.GetX(); | |
2274 | rcPosYAntiLambda = v0AntiLambdaKF.GetY(); | |
2275 | rcPosZAntiLambda = v0AntiLambdaKF.GetZ(); | |
2276 | rcPosRAntiLambda = TMath::Sqrt(rcPosXAntiLambda*rcPosXAntiLambda+rcPosYAntiLambda*rcPosYAntiLambda); | |
2277 | ||
2278 | TVector3 momPos(lMomPos[0],lMomPos[1],lMomPos[2]); | |
2279 | TVector3 momNeg(lMomNeg[0],lMomNeg[1],lMomNeg[2]); | |
2280 | TVector3 momTotK0s(v0K0sKF.GetPx(),v0K0sKF.GetPy(),v0K0sKF.GetPz()); | |
2281 | TVector3 momTotLambda(v0LambdaKF.GetPx(),v0LambdaKF.GetPy(),v0LambdaKF.GetPz()); | |
2282 | TVector3 momTotAntiLambda(v0AntiLambdaKF.GetPx(),v0AntiLambdaKF.GetPy(),v0AntiLambdaKF.GetPz()); | |
2283 | ||
2284 | lQlPos = momPos.Dot(momTotK0s)/momTotK0s.Mag(); | |
2285 | lQlNeg = momNeg.Dot(momTotK0s)/momTotK0s.Mag(); | |
2286 | lAlphaV0K0s = 1.-2./(1.+lQlPos/lQlNeg); | |
2287 | lQlPos = momPos.Dot(momTotLambda)/momTotLambda.Mag(); | |
2288 | lQlNeg = momNeg.Dot(momTotLambda)/momTotLambda.Mag(); | |
2289 | lAlphaV0Lambda = 1.-2./(1.+lQlPos/lQlNeg); | |
2290 | lQlPos = momPos.Dot(momTotAntiLambda)/momTotAntiLambda.Mag(); | |
2291 | lQlNeg = momNeg.Dot(momTotAntiLambda)/momTotAntiLambda.Mag(); | |
2292 | lAlphaV0AntiLambda = 1.-2./(1.+lQlPos/lQlNeg); | |
2293 | ||
2294 | lPtArmV0K0s = momPos.Perp(momTotK0s); | |
2295 | lPtArmV0Lambda = momPos.Perp(momTotLambda); | |
2296 | lPtArmV0AntiLambda = momPos.Perp(momTotAntiLambda); | |
2297 | ||
2298 | // Look for associated particles: | |
2299 | if (fAnalysisMC) { | |
2300 | if( (lIndexPosMother==-1) || (lIndexNegMother==-1) ) { | |
2301 | fHistMCDaughterTrack->Fill(1); | |
2302 | } | |
2303 | ||
2304 | else if( ( (lPDGCodePosDaughter==+211) && (lPDGCodeNegDaughter==-211) ) | |
2305 | ) { | |
2306 | lCheckPIdK0Short = 1; | |
2307 | fHistMCDaughterTrack->Fill(3); | |
2308 | if ( (lIndexPosMother==lIndexNegMother) && | |
2309 | (lPdgcodeMother==310) ) { | |
2310 | if (lIndexPosMother <= lNbMCPrimary) lCheckMcK0Short = 1; | |
2311 | else lCheckSecondaryK0s = 1; | |
2312 | } | |
2313 | } | |
2314 | else if( ( (lPDGCodePosDaughter==+2212) && (lPDGCodeNegDaughter==-211) ) | |
2315 | ) { | |
2316 | lCheckPIdLambda = 1; | |
2317 | fHistMCDaughterTrack->Fill(5); | |
2318 | if ( (lIndexPosMother==lIndexNegMother) && | |
2319 | (lPdgcodeMother==3122) ){ | |
2320 | if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) || | |
2321 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) || | |
2322 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) || | |
2323 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3114) | |
2324 | ) lComeFromSigma = 1; | |
2325 | else lComeFromSigma = 0; | |
2326 | if ( (lIndexPosMother <= lNbMCPrimary) || | |
2327 | ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) ) | |
2328 | ) lCheckMcLambda = 1; | |
2329 | else lCheckSecondaryLambda = 1; | |
2330 | } | |
2331 | } | |
2332 | else if( ( (lPDGCodePosDaughter==211) && (lPDGCodeNegDaughter==-2212) ) | |
2333 | ) { | |
2334 | lCheckPIdAntiLambda = 1; | |
2335 | fHistMCDaughterTrack->Fill(7); | |
2336 | if ( (lIndexPosMother==lIndexNegMother) && | |
2337 | (lPdgcodeMother==-3122) ) { | |
2338 | if ( ( TMath::Abs(lPdgcodeMotherOfMother) == 3212) || | |
2339 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3224) || | |
2340 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3214) || | |
2341 | ( TMath::Abs(lPdgcodeMotherOfMother) == 3114) | |
2342 | ) lComeFromSigma = 1; | |
2343 | else lComeFromSigma = 0; | |
2344 | if ( (lIndexPosMother <= lNbMCPrimary) || | |
2345 | ( ( lIndexPosMother > lNbMCPrimary) && (lComeFromSigma) ) | |
2346 | ) lCheckMcAntiLambda = 1; | |
2347 | else lCheckSecondaryAntiLambda = 1; | |
2348 | } | |
2349 | } | |
2350 | ||
2351 | // Gamma conversion | |
2352 | else if ( (lPDGCodePosDaughter==11) && | |
2353 | (lPDGCodeNegDaughter==-11) && | |
2354 | (lPdgcodeMother==22 ) ) | |
2355 | lCheckGamma = 1; | |
2356 | } // end "look for associated particles | |
2357 | ||
9c7b62a0 | 2358 | |
2359 | // Cuts: | |
2360 | if (fUseCut.Contains("yes")) { | |
2361 | if ( (lDcaPosToPrimVertex < 0.036 ) || | |
2362 | (lDcaNegToPrimVertex < 0.036 ) || | |
2363 | (lDcaV0Daughters > 0.5 ) || | |
2364 | (lV0cosPointAngle < 0.99 ) | |
2365 | ) | |
2366 | continue; | |
2367 | } | |
2368 | ||
2093003d | 2369 | |
2370 | //***************************** | |
9c7b62a0 | 2371 | // filling histograms |
2093003d | 2372 | |
9c7b62a0 | 2373 | fHistDcaPosToPrimVertex->Fill(lDcaPosToPrimVertex,lOnFlyStatus); |
2374 | fHistDcaNegToPrimVertex->Fill(lDcaNegToPrimVertex,lOnFlyStatus); | |
2375 | fHistDcaPosToPrimVertexZoom->Fill(lDcaPosToPrimVertex,lOnFlyStatus); | |
2376 | fHistDcaNegToPrimVertexZoom->Fill(lDcaNegToPrimVertex,lOnFlyStatus); | |
2377 | fHistRadiusV0->Fill(lV0Radius,lOnFlyStatus); | |
2378 | fHistDecayLengthV0->Fill(lV0DecayLength,lOnFlyStatus); | |
2379 | fHistDcaV0Daughters->Fill(lDcaV0Daughters,lOnFlyStatus); | |
2380 | fHistChi2->Fill(lChi2V0,lOnFlyStatus); | |
2381 | fHistCosPointAngle->Fill(lV0cosPointAngle,lOnFlyStatus); | |
2382 | if (lV0cosPointAngle >= 0.9) fHistCosPointAngleZoom->Fill(lV0cosPointAngle,lOnFlyStatus); | |
2093003d | 2383 | fHistChi2KFBeforeCutK0s->Fill(lChi2KFK0s,lOnFlyStatus); |
2384 | fHistChi2KFBeforeCutLambda->Fill(lChi2KFLambda,lOnFlyStatus); | |
2385 | fHistChi2KFBeforeCutAntiLambda->Fill(lChi2KFAntiLambda,lOnFlyStatus); | |
2386 | ||
f81f8d5e | 2387 | // Histo versus Rap and armenteros plot |
2093003d | 2388 | if (!lOnFlyStatus){ |
f81f8d5e | 2389 | if (lCheckMcK0Short) fHistAsMcRapK0->Fill(lRapK0s); |
2390 | if (lCheckMcLambda) fHistAsMcRapLambda->Fill(lRapLambda); | |
2391 | if (lCheckMcAntiLambda) fHistAsMcRapLambda->Fill(lRapAntiLambda); | |
2392 | fHistArmenterosPodolanski->Fill(lAlphaV0,lPtArmV0); | |
9c7b62a0 | 2393 | } |
2394 | else { | |
f81f8d5e | 2395 | if (lCheckMcK0Short) fHistAsMcRapK0MI->Fill(lRapK0s); |
2396 | if (lCheckMcLambda) fHistAsMcRapLambdaMI->Fill(lRapLambda); | |
2397 | if (lCheckMcAntiLambda) fHistAsMcRapLambdaMI->Fill(lRapAntiLambda); | |
2398 | fHistArmenterosPodolanskiMI->Fill(lAlphaV0,lPtArmV0); | |
9c7b62a0 | 2399 | } |
2400 | ||
f81f8d5e | 2401 | // K0s associated histograms in |eta| < lCutRap: |
2093003d | 2402 | if ( (nSigmaPosPion < cutNSigma) && (nSigmaNegPion < cutNSigma) |
2403 | && (lChi2KFK0s < cutChi2KF) ) { | |
9c7b62a0 | 2404 | |
2093003d | 2405 | fHistChi2KFAfterCutK0s->Fill(lChi2KFK0s,lOnFlyStatus); |
2406 | ||
f81f8d5e | 2407 | if (TMath::Abs(lRapK0s) < lCutRap) { |
9c7b62a0 | 2408 | |
2409 | fHistNsigmaPosPionK0->Fill(nSigmaPosPion); | |
2410 | fHistNsigmaNegPionK0->Fill(nSigmaNegPion); | |
2411 | ||
2412 | switch (lOnFlyStatus){ | |
2413 | case 0 : | |
2414 | fHistMassK0->Fill(lInvMassK0s); | |
2093003d | 2415 | fHistMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s); |
2416 | fHistPtVsMassK0->Fill(lInvMassK0s,lPtK0s); | |
9c7b62a0 | 2417 | if(lCheckPIdK0Short) fHistPidMcMassK0->Fill(lInvMassK0s); |
2418 | if(lCheckMcK0Short) { | |
2419 | fHistAsMcMassK0->Fill(lInvMassK0s); | |
2093003d | 2420 | fHistAsMcPtK0->Fill(lPtK0s); |
2421 | fHistAsMcPtVsMassK0->Fill(lInvMassK0s,lPtK0s); | |
2422 | if (lPtK0s <= 1) fHistAsMcPtZoomK0->Fill(lPtK0s); | |
2423 | fHistAsMcMassVsRadiusK0->Fill(rcPosRK0s,lInvMassK0s); | |
2424 | fHistAsMcResxK0->Fill(rcPosXK0s-mcPosX); | |
2425 | fHistAsMcResyK0->Fill(rcPosYK0s-mcPosY); | |
2426 | fHistAsMcReszK0->Fill(rcPosZK0s-mcPosZ); | |
2427 | fHistAsMcResrVsRadiusK0->Fill(rcPosRK0s,rcPosRK0s-mcPosR); | |
2428 | fHistAsMcReszVsRadiusK0->Fill(rcPosZK0s,rcPosZK0s-mcPosZ); | |
9c7b62a0 | 2429 | fHistAsMcProdRadiusK0->Fill(mcPosMotherR); |
2430 | fHistAsMcProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY); | |
2093003d | 2431 | fHistAsMcResPtK0->Fill(deltaPtK0s); |
f81f8d5e | 2432 | fHistAsMcResPtVsRapK0->Fill(deltaPtK0s,lRapK0s); |
2093003d | 2433 | fHistAsMcResPtVsPtK0->Fill(deltaPtK0s,lPtK0s); |
9c7b62a0 | 2434 | } |
2435 | if (lCheckSecondaryK0s) { | |
f81f8d5e | 2436 | fHistAsMcSecondaryPtVsRapK0s->Fill(lPtK0s,lRapK0s); |
9c7b62a0 | 2437 | fHistAsMcSecondaryProdRadiusK0s->Fill(mcPosMotherR); |
2438 | fHistAsMcSecondaryProdRadiusXvsYK0s->Fill(mcPosMotherX,mcPosMotherY); | |
2439 | switch (lPdgcodeMotherOfMother) { | |
2440 | case 130 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(0.5);break; // K0L | |
2441 | case 321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(1.5);break; // K+ | |
2442 | case -321 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(2.5);break; // K- | |
2443 | case -3122 : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(3.5);break; //AntiLambda | |
2444 | default : fHistAsMcSecondaryMotherPdgCodeK0s->Fill(6.5);break; | |
2445 | } | |
2446 | } | |
2447 | break; | |
2448 | ||
2449 | case 1 : | |
2450 | fHistMassK0MI->Fill(lInvMassK0s); | |
2093003d | 2451 | fHistMassVsRadiusK0MI->Fill(rcPosRK0s,lInvMassK0s); |
2452 | fHistPtVsMassK0MI->Fill(lInvMassK0s,lPtK0s); | |
9c7b62a0 | 2453 | if(lCheckPIdK0Short) fHistPidMcMassK0MI->Fill(lInvMassK0s); |
2454 | if(lCheckMcK0Short) { | |
2455 | fHistAsMcMassK0MI->Fill(lInvMassK0s); | |
2093003d | 2456 | fHistAsMcPtK0MI->Fill(lPtK0s); |
2457 | fHistAsMcPtVsMassK0MI->Fill(lInvMassK0s,lPtK0s); | |
2458 | if (lPtK0s <= 1) fHistAsMcPtZoomK0MI->Fill(lPtK0s); | |
2459 | fHistAsMcMassVsRadiusK0MI->Fill(rcPosRK0s,lInvMassK0s); | |
2460 | fHistAsMcResxK0MI->Fill(rcPosXK0s-mcPosX); | |
2461 | fHistAsMcResyK0MI->Fill(rcPosYK0s-mcPosY); | |
2462 | fHistAsMcReszK0MI->Fill(rcPosZK0s-mcPosZ); | |
2463 | fHistAsMcResrVsRadiusK0MI->Fill(rcPosRK0s,rcPosRK0s-mcPosR); | |
2464 | fHistAsMcReszVsRadiusK0MI->Fill(rcPosZK0s,rcPosZK0s-mcPosZ); | |
9c7b62a0 | 2465 | fHistAsMcProdRadiusK0MI->Fill(mcPosMotherR); |
2466 | fHistAsMcProdRadiusXvsYK0sMI->Fill(mcPosMotherX,mcPosMotherY); | |
2093003d | 2467 | fHistAsMcResPtK0MI->Fill(deltaPtK0s); |
f81f8d5e | 2468 | fHistAsMcResPtVsRapK0MI->Fill(deltaPtK0s,lRapK0s); |
2093003d | 2469 | fHistAsMcResPtVsPtK0MI->Fill(deltaPtK0s,lPtK0s); |
9c7b62a0 | 2470 | } |
2471 | else if (lCheckSecondaryK0s) { | |
f81f8d5e | 2472 | fHistAsMcSecondaryPtVsRapK0sMI->Fill(lPtK0s,lRapK0s); |
9c7b62a0 | 2473 | fHistAsMcSecondaryProdRadiusK0sMI->Fill(mcPosMotherR); |
2474 | fHistAsMcSecondaryProdRadiusXvsYK0sMI->Fill(mcPosMotherX,mcPosMotherY); | |
2475 | switch (lPdgcodeMotherOfMother) { | |
2476 | case 130 : fHistAsMcSecondaryMotherPdgCodeK0sMI->Fill(0.5);break; // K0L | |
2477 | case 321 : fHistAsMcSecondaryMotherPdgCodeK0sMI->Fill(1.5);break; // K+ | |
2478 | case -321 : fHistAsMcSecondaryMotherPdgCodeK0sMI->Fill(2.5);break; // K- | |
2479 | case -3122 : fHistAsMcSecondaryMotherPdgCodeK0sMI->Fill(3.5);break; //AntiLambda | |
2480 | default : fHistAsMcSecondaryMotherPdgCodeK0sMI->Fill(6.5);break; | |
2481 | } | |
2482 | } | |
2483 | break; | |
2484 | } | |
2485 | } // end rapidity condition | |
2486 | } // end nsigma condition | |
2487 | ||
2488 | ||
f81f8d5e | 2489 | // Associated Lambda histograms in |eta| < lCutRap |
2093003d | 2490 | if ( (nSigmaPosProton < cutNSigma) && (nSigmaNegPion < cutNSigma) |
2491 | && (lChi2KFLambda < cutChi2KF) ) { | |
2492 | ||
2493 | fHistChi2KFAfterCutLambda->Fill(lChi2KFLambda,lOnFlyStatus); | |
9c7b62a0 | 2494 | |
f81f8d5e | 2495 | if (TMath::Abs(lRapLambda) < lCutRap) { |
9c7b62a0 | 2496 | |
2497 | fHistNsigmaPosProtonLambda->Fill(nSigmaPosProton); | |
2498 | fHistNsigmaNegPionLambda->Fill(nSigmaNegPion); | |
2499 | switch (lOnFlyStatus){ | |
2500 | case 0 : | |
2501 | fHistMassLambda->Fill(lInvMassLambda); | |
2093003d | 2502 | fHistMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda); |
2503 | fHistPtVsMassLambda->Fill(lInvMassLambda,lPtLambda); | |
9c7b62a0 | 2504 | if(lCheckPIdLambda) fHistPidMcMassLambda->Fill(lInvMassLambda); |
2505 | ||
2506 | if(lCheckMcLambda) { | |
2507 | fHistAsMcMassLambda->Fill(lInvMassLambda); | |
2093003d | 2508 | fHistAsMcPtLambda->Fill(lPtLambda); |
2509 | fHistAsMcPtVsMassLambda->Fill(lInvMassLambda,lPtLambda); | |
2510 | if (lPtLambda <= 1) fHistAsMcPtZoomLambda->Fill(lPtLambda); | |
2511 | fHistAsMcMassVsRadiusLambda->Fill(rcPosRLambda,lInvMassLambda); | |
2512 | fHistAsMcResxLambda->Fill(rcPosXLambda-mcPosX); | |
2513 | fHistAsMcResyLambda->Fill(rcPosYLambda-mcPosY); | |
2514 | fHistAsMcReszLambda->Fill(rcPosZLambda-mcPosZ); | |
2515 | fHistAsMcResrVsRadiusLambda->Fill(rcPosRLambda,rcPosRLambda-mcPosR); | |
2516 | fHistAsMcReszVsRadiusLambda->Fill(rcPosZLambda,rcPosZLambda-mcPosZ); | |
9c7b62a0 | 2517 | fHistAsMcProdRadiusLambda->Fill(mcPosMotherR); |
2518 | fHistAsMcProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY); | |
2093003d | 2519 | fHistAsMcResPtLambda->Fill(deltaPtLambda); |
f81f8d5e | 2520 | fHistAsMcResPtVsRapLambda->Fill(deltaPtLambda,lRapLambda); |
2093003d | 2521 | fHistAsMcResPtVsPtLambda->Fill(deltaPtLambda,lPtLambda); |
2522 | if (lComeFromSigma) fHistAsMcPtLambdaFromSigma->Fill(lPtLambda); | |
9c7b62a0 | 2523 | switch (lPdgcodeMotherOfMother) { |
2524 | case 3222 : fHistAsMcMotherPdgCodeLambda->Fill(0.5); break; // Sigma + | |
2525 | case 3212 : fHistAsMcMotherPdgCodeLambda->Fill(1.5); break; // Sigma 0 | |
2526 | case 3112 : fHistAsMcMotherPdgCodeLambda->Fill(2.5); break;// Sigma - | |
2527 | case 3224 : fHistAsMcMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) + | |
2528 | case 3214 : fHistAsMcMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0 | |
2529 | case 3114 : fHistAsMcMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) - | |
2093003d | 2530 | case 3322 : fHistAsMcMotherPdgCodeLambda->Fill(6.5); break; // Xi 0 |
2531 | case 3312 : fHistAsMcMotherPdgCodeLambda->Fill(7.5); break; // Xi - | |
2532 | case 3334 : fHistAsMcMotherPdgCodeLambda->Fill(8.5); break; // Omega | |
2533 | case -1 : fHistAsMcMotherPdgCodeLambda->Fill(9.5); break; | |
9c7b62a0 | 2534 | default : fHistAsMcMotherPdgCodeLambda->Fill(10.5);break; |
2535 | } | |
2536 | } | |
2537 | ||
2538 | else if (lCheckSecondaryLambda) { | |
f81f8d5e | 2539 | fHistAsMcSecondaryPtVsRapLambda->Fill(lPtLambda,lRapLambda); |
9c7b62a0 | 2540 | fHistAsMcSecondaryProdRadiusLambda->Fill(mcPosMotherR); |
2541 | fHistAsMcSecondaryProdRadiusXvsYLambda->Fill(mcPosMotherX,mcPosMotherY); | |
2093003d | 2542 | if (lComeFromSigma) fHistAsMcSecondaryPtLambdaFromSigma->Fill(lPtLambda); |
2543 | printf(" lPdgcodeMotherOfMother= %d",lPdgcodeMotherOfMother); | |
9c7b62a0 | 2544 | switch (lPdgcodeMotherOfMother) { |
2545 | case 3222 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(0.5); break;// Sigma + | |
2546 | case 3212 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(1.5); break;// Sigma 0 | |
2547 | case 3112 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(2.5); break;// Sigma - | |
2548 | case 3224 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(3.5); break;// Sigma(1385) + | |
2549 | case 3214 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(4.5); break;// Sigma(1385) 0 | |
2550 | case 3114 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(5.5); break;// Sigma(1385) - | |
2551 | case 3322 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(6.5); break; // Xi 0 | |
2552 | case 3312 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(7.5); break; // Xi - | |
2553 | case 3334 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(8.5); break; // Omega | |
2554 | case -1 : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(9.5); break; | |
2555 | default : fHistAsMcSecondaryMotherPdgCodeLambda->Fill(10.5);break; | |
2556 | } | |
2557 | } | |
2558 | break; | |
2559 | ||
2560 | case 1 : | |
2561 | fHistMassLambdaMI->Fill(lInvMassLambda); | |
2093003d | 2562 | fHistMassVsRadiusLambdaMI->Fill(rcPosRLambda,lInvMassLambda); |
2563 | fHistPtVsMassLambdaMI->Fill(lInvMassLambda,lPtLambda); | |
9c7b62a0 | 2564 | if(lCheckPIdLambda) fHistPidMcMassLambdaMI->Fill(lInvMassLambda); |
2565 | ||
2566 | if(lCheckMcLambda) { | |
2567 | fHistAsMcMassLambdaMI->Fill(lInvMassLambda); | |
2093003d | 2568 | fHistAsMcPtLambdaMI->Fill(lPtLambda); |
2569 | fHistAsMcPtVsMassLambdaMI->Fill(lInvMassLambda,lPtLambda); | |
2570 | fHistAsMcMassVsRadiusLambdaMI->Fill(rcPosRLambda,lInvMassLambda); | |
2571 | fHistAsMcResxLambdaMI->Fill(rcPosXLambda-mcPosX); | |
2572 | fHistAsMcResyLambdaMI->Fill(rcPosYLambda-mcPosY); | |
2573 | fHistAsMcReszLambdaMI->Fill(rcPosZLambda-mcPosZ); | |
2574 | fHistAsMcResrVsRadiusLambdaMI->Fill(rcPosRLambda,rcPosRLambda-mcPosR); | |
2575 | fHistAsMcReszVsRadiusLambdaMI->Fill(rcPosZLambda,rcPosZLambda-mcPosZ); | |
9c7b62a0 | 2576 | fHistAsMcProdRadiusLambdaMI->Fill(mcPosMotherR); |
2577 | fHistAsMcProdRadiusXvsYLambdaMI->Fill(mcPosMotherX,mcPosMotherY); | |
2093003d | 2578 | fHistAsMcResPtLambdaMI->Fill(deltaPtLambda); |
f81f8d5e | 2579 | fHistAsMcResPtVsRapLambdaMI->Fill(deltaPtLambda,lRapLambda); |
2093003d | 2580 | fHistAsMcResPtVsPtLambdaMI->Fill(deltaPtLambda,lPtLambda); |
2581 | if (lComeFromSigma) fHistAsMcPtLambdaFromSigmaMI->Fill(lPtLambda); | |
9c7b62a0 | 2582 | switch (lPdgcodeMotherOfMother) { |
2583 | case 3222 : fHistAsMcMotherPdgCodeLambdaMI->Fill(0.5); break; // Sigma + | |
2584 | case 3212 : fHistAsMcMotherPdgCodeLambdaMI->Fill(1.5); break; // Sigma 0 | |
2585 | case 3112 : fHistAsMcMotherPdgCodeLambdaMI->Fill(2.5); break;// Sigma - | |
2586 | case 3224 : fHistAsMcMotherPdgCodeLambdaMI->Fill(3.5); break;// Sigma(1385) + | |
2587 | case 3214 : fHistAsMcMotherPdgCodeLambdaMI->Fill(4.5); break;// Sigma(1385) 0 | |
2588 | case 3114 : fHistAsMcMotherPdgCodeLambdaMI->Fill(5.5); break;// Sigma(1385) - | |
2589 | case 3322 : fHistAsMcMotherPdgCodeLambdaMI->Fill(6.5);break; // Xi 0 | |
2590 | case 3312 : fHistAsMcMotherPdgCodeLambdaMI->Fill(7.5);break; // Xi - | |
2591 | case 3334 : fHistAsMcMotherPdgCodeLambdaMI->Fill(8.5);break; // Omega | |
2592 | case -1 : fHistAsMcMotherPdgCodeLambdaMI->Fill(9.5);break; | |
2593 | default : fHistAsMcMotherPdgCodeLambdaMI->Fill(10.5);break; | |
2594 | } | |
2595 | } | |
2596 | else if (lCheckSecondaryLambda) { | |
f81f8d5e | 2597 | fHistAsMcSecondaryPtVsRapLambdaMI->Fill(lPtLambda,lRapLambda); |
9c7b62a0 | 2598 | fHistAsMcSecondaryProdRadiusLambdaMI->Fill(mcPosMotherR); |
2599 | fHistAsMcSecondaryProdRadiusXvsYLambdaMI->Fill(mcPosMotherX,mcPosMotherY); | |
2093003d | 2600 | if (lComeFromSigma) fHistAsMcSecondaryPtLambdaFromSigmaMI->Fill(lPtLambda); |
9c7b62a0 | 2601 | switch (lPdgcodeMotherOfMother) { |
2602 | case 3222 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(0.5); break;// Sigma + | |
2603 | case 3212 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(1.5); break;// Sigma 0 | |
2604 | case 3112 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(2.5); break;// Sigma - | |
2605 | case 3224 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(3.5); break;// Sigma(1385) + | |
2606 | case 3214 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(4.5); break;// Sigma(1385) 0 | |
2607 | case 3114 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(5.5); break;// Sigma(1385) - | |
2608 | case 3322 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(6.5); break; // Xi 0 | |
2609 | case 3312 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(7.5); break; // Xi - | |
2610 | case 3334 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(8.5); break; // Omega | |
2611 | case -1 : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(9.5); break; | |
2612 | default : fHistAsMcSecondaryMotherPdgCodeLambdaMI->Fill(10.5);break; | |
2613 | } | |
2614 | } | |
2615 | break; | |
2616 | } | |
2617 | } // end rapidity condition | |
2618 | } //end nsigma condition - lambda | |
2619 | ||
2620 | ||
2621 | ||
f81f8d5e | 2622 | // AntiLambda associated histograms in |eta| < lCutRap |
2093003d | 2623 | if ( (nSigmaPosPion < cutNSigma) && (nSigmaNegProton < cutNSigma) |
2624 | && (lChi2KFAntiLambda < cutChi2KF) ) { | |
2625 | ||
2626 | fHistChi2KFAfterCutLambda->Fill(lChi2KFLambda,lOnFlyStatus); | |
2627 | ||
f81f8d5e | 2628 | if (TMath::Abs(lRapAntiLambda) < lCutRap) { |
9c7b62a0 | 2629 | |
9c7b62a0 | 2630 | |
2631 | fHistNsigmaPosPionAntiLambda->Fill(nSigmaPosPion); | |
2632 | fHistNsigmaNegProtonAntiLambda->Fill(nSigmaNegProton); | |
2633 | ||
2634 | switch (lOnFlyStatus){ | |
2635 | case 0 : | |
2636 | fHistMassAntiLambda->Fill(lInvMassAntiLambda); | |
2093003d | 2637 | fHistMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda); |
2638 | fHistPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda); | |
9c7b62a0 | 2639 | if (lCheckPIdAntiLambda) fHistPidMcMassAntiLambda->Fill(lInvMassAntiLambda); |
2640 | ||
2641 | if(lCheckMcAntiLambda) { | |
2642 | fHistAsMcMassAntiLambda->Fill(lInvMassAntiLambda); | |
2093003d | 2643 | fHistAsMcPtAntiLambda->Fill(lPtAntiLambda); |
2644 | fHistAsMcPtVsMassAntiLambda->Fill(lInvMassAntiLambda,lPtAntiLambda); | |
2645 | fHistAsMcMassVsRadiusAntiLambda->Fill(rcPosRAntiLambda,lInvMassAntiLambda); | |
2646 | fHistAsMcResxAntiLambda->Fill(rcPosXAntiLambda-mcPosX); | |
2647 | fHistAsMcResyAntiLambda->Fill(rcPosYAntiLambda-mcPosY); | |
2648 | fHistAsMcReszAntiLambda->Fill(rcPosZAntiLambda-mcPosZ); | |
2649 | fHistAsMcResrVsRadiusAntiLambda->Fill(rcPosRAntiLambda,rcPosRAntiLambda-mcPosR); | |
2650 | fHistAsMcReszVsRadiusAntiLambda->Fill(rcPosZAntiLambda,rcPosZAntiLambda-mcPosZ); | |
9c7b62a0 | 2651 | fHistAsMcProdRadiusAntiLambda->Fill(mcPosMotherR); |
2652 | fHistAsMcProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY); | |
2093003d | 2653 | fHistAsMcResPtAntiLambda->Fill(deltaPtAntiLambda); |
f81f8d5e | 2654 | fHistAsMcResPtVsRapAntiLambda->Fill(deltaPtAntiLambda,lRapLambda); |
2093003d | 2655 | fHistAsMcResPtVsPtAntiLambda->Fill(deltaPtAntiLambda,lPtAntiLambda); |
2656 | if (lComeFromSigma) fHistAsMcPtAntiLambdaFromSigma->Fill(lPtAntiLambda); | |
9c7b62a0 | 2657 | switch (lPdgcodeMotherOfMother) { |
2658 | case -3222 : fHistAsMcMotherPdgCodeAntiLambda->Fill(0.5); break;// Sigma + | |
2659 | case -3212 : fHistAsMcMotherPdgCodeAntiLambda->Fill(1.5); break;// Sigma 0 | |
2660 | case -3112 : fHistAsMcMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma - | |
2661 | case -3224 : fHistAsMcMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) + | |
2662 | case -3214 : fHistAsMcMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0 | |
2663 | case -3114 : fHistAsMcMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) - | |
2664 | case -3322 : fHistAsMcMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0 | |
2665 | case -3312 : fHistAsMcMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi - | |
2666 | case -3334 : fHistAsMcMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega | |
2667 | case -1 : fHistAsMcMotherPdgCodeAntiLambda->Fill(9.5); break; | |
2668 | default : fHistAsMcMotherPdgCodeAntiLambda->Fill(10.5);break; | |
2669 | } | |
2670 | } | |
2671 | else if (lCheckSecondaryAntiLambda) { | |
f81f8d5e | 2672 | fHistAsMcSecondaryPtVsRapAntiLambda->Fill(lPtAntiLambda,lRapLambda); |
9c7b62a0 | 2673 | fHistAsMcSecondaryProdRadiusAntiLambda->Fill(mcPosMotherR); |
2674 | fHistAsMcSecondaryProdRadiusXvsYAntiLambda->Fill(mcPosMotherX,mcPosMotherY); | |
2093003d | 2675 | if (lComeFromSigma) fHistAsMcSecondaryPtAntiLambdaFromSigma->Fill(lPtAntiLambda); |
9c7b62a0 | 2676 | switch (lPdgcodeMotherOfMother) { |
2677 | case -3222 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(0.5); break;// Sigma + | |
2678 | case -3212 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(1.5); break;// Sigma 0 | |
2679 | case -3112 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(2.5); break;// Sigma - | |
2680 | case -3224 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(3.5); break;// Sigma(1385) + | |
2681 | case -3214 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(4.5); break;// Sigma(1385) 0 | |
2682 | case -3114 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(5.5); break;// Sigma(1385) - | |
2683 | case -3322 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(6.5); break; // Xi 0 | |
2684 | case -3312 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(7.5); break; // Xi - | |
2685 | case -3334 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(8.5); break; // Omega | |
2686 | case -1 : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(9.5); break; | |
2687 | default : fHistAsMcSecondaryMotherPdgCodeAntiLambda->Fill(10.5);break; | |
2688 | } | |
2689 | } | |
2690 | break; | |
2691 | ||
2692 | ||
2693 | case 1 : | |
2694 | fHistMassAntiLambdaMI->Fill(lInvMassAntiLambda); | |
2093003d | 2695 | fHistMassVsRadiusAntiLambdaMI->Fill(rcPosRAntiLambda,lInvMassAntiLambda); |
2696 | fHistPtVsMassAntiLambdaMI->Fill(lInvMassAntiLambda,lPtAntiLambda); | |
9c7b62a0 | 2697 | if (lCheckPIdAntiLambda) fHistPidMcMassAntiLambdaMI->Fill(lInvMassAntiLambda); |
2698 | ||
2699 | if(lCheckMcAntiLambda) { | |
2700 | fHistAsMcMassAntiLambdaMI->Fill(lInvMassAntiLambda); | |
2093003d | 2701 | fHistAsMcPtAntiLambdaMI->Fill(lPtAntiLambda); |
2702 | fHistAsMcPtVsMassAntiLambdaMI->Fill(lInvMassAntiLambda,lPtAntiLambda); | |
2703 | fHistAsMcMassVsRadiusAntiLambdaMI->Fill(rcPosRAntiLambda,lInvMassAntiLambda); | |
2704 | fHistAsMcResxAntiLambdaMI->Fill(rcPosXAntiLambda-mcPosX); | |
2705 | fHistAsMcResyAntiLambdaMI->Fill(rcPosYAntiLambda-mcPosY); | |
2706 | fHistAsMcReszAntiLambdaMI->Fill(rcPosZAntiLambda-mcPosZ); | |
2707 | fHistAsMcResrVsRadiusAntiLambdaMI->Fill(rcPosRAntiLambda,rcPosRAntiLambda-mcPosR); | |
2708 | fHistAsMcReszVsRadiusAntiLambdaMI->Fill(rcPosZAntiLambda,rcPosZAntiLambda-mcPosZ); | |
9c7b62a0 | 2709 | fHistAsMcProdRadiusAntiLambdaMI->Fill(mcPosMotherR); |
2710 | fHistAsMcProdRadiusXvsYAntiLambdaMI->Fill(mcPosMotherX,mcPosMotherY); | |
2093003d | 2711 | fHistAsMcResPtAntiLambdaMI->Fill(deltaPtAntiLambda); |
f81f8d5e | 2712 | fHistAsMcResPtVsRapAntiLambdaMI->Fill(deltaPtAntiLambda,lRapLambda); |
2093003d | 2713 | fHistAsMcResPtVsPtAntiLambdaMI->Fill(deltaPtAntiLambda,lPtAntiLambda); |
2714 | if (lComeFromSigma) fHistAsMcPtAntiLambdaFromSigmaMI->Fill(lPtAntiLambda); | |
9c7b62a0 | 2715 | switch (lPdgcodeMotherOfMother) { |
2716 | case -3222 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(0.5); break;// Sigma + | |
2717 | case -3212 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(1.5); break;// Sigma 0 | |
2718 | case -3112 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(2.5); break;// Sigma - | |
2719 | case -3224 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(3.5); break;// Sigma(1385) + | |
2720 | case -3214 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(4.5); break;// Sigma(1385) 0 | |
2721 | case -3114 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(5.5); break;// Sigma(1385) - | |
2722 | case -3322 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(6.5); break; // Xi 0 | |
2723 | case -3312 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(7.5); break; // Xi - | |
2724 | case -3334 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(8.5); break; // Omega | |
2725 | case -1 : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(9.5); break; | |
2726 | default : fHistAsMcMotherPdgCodeAntiLambdaMI->Fill(10.5);break; | |
2727 | } | |
2728 | } | |
2729 | else if (lCheckSecondaryAntiLambda) { | |
f81f8d5e | 2730 | fHistAsMcSecondaryPtVsRapAntiLambdaMI->Fill(lPtAntiLambda,lRapLambda); |
9c7b62a0 | 2731 | fHistAsMcSecondaryProdRadiusAntiLambdaMI->Fill(mcPosMotherR); |
2732 | fHistAsMcSecondaryProdRadiusXvsYAntiLambdaMI->Fill(mcPosMotherX,mcPosMotherY); | |
2093003d | 2733 | if (lComeFromSigma) fHistAsMcSecondaryPtAntiLambdaFromSigmaMI->Fill(lPtAntiLambda); |
9c7b62a0 | 2734 | switch (lPdgcodeMotherOfMother) { |
2735 | case -3222 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(0.5); break;// Sigma + | |
2736 | case -3212 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(1.5); break;// Sigma 0 | |
2737 | case -3112 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(2.5); break;// Sigma - | |
2738 | case -3224 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(3.5); break;// Sigma(1385) + | |
2739 | case -3214 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(4.5); break;// Sigma(1385) 0 | |
2740 | case -3114 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(5.5); break;// Sigma(1385) - | |
2741 | case -3322 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(6.5); break; // Xi 0 | |
2742 | case -3312 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(7.5); break; // Xi - | |
2743 | case -3334 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(8.5); break; // Omega | |
2744 | case -1 : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(9.5); break; | |
2745 | default : fHistAsMcSecondaryMotherPdgCodeAntiLambdaMI->Fill(10.5);break; | |
2746 | } | |
2747 | } | |
2748 | break; | |
2749 | } | |
2750 | } // end rapidity condition | |
2751 | } // end nsigma condition - antilambda | |
2752 | ||
2093003d | 2753 | if (negPiKF) delete negPiKF; negPiKF= NULL; |
2754 | if (posPiKF) delete posPiKF; posPiKF= NULL; | |
2755 | if (posPKF) delete posPKF; posPKF = NULL; | |
2756 | if (negAPKF) delete negAPKF; negAPKF= NULL; | |
2757 | ||
9c7b62a0 | 2758 | } // end V0 loop |
2759 | ||
e2e56010 | 2760 | fHistV0Multiplicity->Fill(nv0s); |
2761 | fHistV0MultiplicityMI->Fill(nv0sMI); | |
2762 | ||
2093003d | 2763 | if (fAnalysisType == "ESD") { if(myPrimaryVertex) delete myPrimaryVertex; } |
9c7b62a0 | 2764 | |
2093003d | 2765 | if(myTracksCuts) delete myTracksCuts; |
9c7b62a0 | 2766 | |
2767 | // Post output data | |
2768 | PostData(1, fListHist); | |
2769 | } | |
2770 | ||
2771 | //________________________________________________________________________ | |
2772 | void AliAnalysisTaskPerformanceStrange::Terminate(Option_t *) | |
2773 | { | |
2774 | // Draw result to the screen | |
2775 | // Called once at the end of the query | |
e2e56010 | 2776 | |
f00218b3 | 2777 | TList *cRetrievedList = 0x0; |
2778 | cRetrievedList = (TList*)GetOutputData(1); | |
2779 | ||
2780 | if(!cRetrievedList){ | |
2781 | AliWarning("ERROR - AliAnalysisTaskPerformanceStrange: output data container list not available\n"); return; | |
2782 | } | |
2093003d | 2783 | |
f00218b3 | 2784 | fHistV0Multiplicity = dynamic_cast<TH1F*> (cRetrievedList->FindObject("fHistV0Multiplicity")); |
e2e56010 | 2785 | if (!fHistV0Multiplicity) { |
2786 | Printf("ERROR: fHistV0Multiplicity not available"); | |
2787 | return; | |
2788 | } | |
2789 | ||
f00218b3 | 2790 | fHistV0MultiplicityMI = dynamic_cast<TH1F*> (cRetrievedList->FindObject("fHistV0MultiplicityMI")); |
e2e56010 | 2791 | if (!fHistV0MultiplicityMI) { |
2792 | Printf("ERROR: fHistV0MultiplicityMI not available"); | |
2793 | return; | |
2794 | } | |
2795 | ||
2093003d | 2796 | TCanvas *canPerformanceStrange = new TCanvas("AliAnalysisTaskCheckV0","Multiplicity",10,10,510,510); |
e2e56010 | 2797 | canPerformanceStrange->Divide(2,1); |
2798 | if (fHistV0Multiplicity->GetMaximum() > 0.) canPerformanceStrange->cd(1)->SetLogy(); | |
2799 | fHistV0Multiplicity->SetMarkerStyle(25); | |
2800 | fHistV0Multiplicity->DrawCopy("E"); | |
2801 | if (fHistV0MultiplicityMI->GetMaximum() > 0.) canPerformanceStrange->cd(2)->SetLogy(); | |
2802 | fHistV0MultiplicityMI->SetMarkerStyle(24); | |
2803 | fHistV0MultiplicityMI->DrawCopy("E"); | |
2804 | ||
2805 | ||
9c7b62a0 | 2806 | |
2807 | } | |
2808 | ||
2809 | //---------------------------------------------------------------------------- | |
2810 | ||
2811 | Double_t AliAnalysisTaskPerformanceStrange::MyRapidity(Double_t rE, Double_t rPz) const | |
2812 | { | |
2813 | // Local calculation for rapidity | |
2814 | return 0.5*TMath::Log((rE+rPz)/(rE-rPz+1.e-13)); | |
2815 | } | |
2816 | //---------------------------------------------------------------------------- | |
2817 |