]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/totEt/AliAnalysisEmEtMonteCarlo.cxx
adding AliHLTGlobalPreprocessor to build
[u/mrichter/AliRoot.git] / PWG4 / totEt / AliAnalysisEmEtMonteCarlo.cxx
1 //_________________________________________________________________________
2 //  Utility Class for transverse energy studies
3 //  Base class for MC analysis
4 //  - MC output
5 //  implementation file
6 //
7 //*-- Author: Marcelo G. Munhoz (USP)
8 //_________________________________________________________________________
9
10 #include "AliAnalysisEmEtMonteCarlo.h"
11 #include "AliAnalysisEtCuts.h"
12 #include "AliESDtrack.h"
13 #include "AliStack.h"
14 #include "AliVEvent.h"
15 #include "AliMCEvent.h"
16 #include "AliMCParticle.h"
17 #include "AliTrackReference.h"
18 #include "AliESDEvent.h"
19 #include "TH2F.h"
20 #include "TParticle.h"
21 #include "AliGenHijingEventHeader.h"
22 #include "AliGenPythiaEventHeader.h"
23 #include "TList.h"
24 #include "AliESDCaloCluster.h"
25 #include "TGeoGlobalMagField.h"
26 #include "AliMagF.h"
27 #include "AliEMCALTrack.h"
28 #include "AliESDtrackCuts.h"
29 #include "AliEMCALGeometry.h"
30 #include "AliExternalTrackParam.h"
31 #include "AliTrackerBase.h"
32 #include "TGeoManager.h"
33
34 using namespace std;
35
36 ClassImp(AliAnalysisEmEtMonteCarlo);
37
38
39 // ctor
40 AliAnalysisEmEtMonteCarlo::AliAnalysisEmEtMonteCarlo():AliAnalysisEtMonteCarlo()
41 ,fPrimtotET(0), fPrimAcctotET(0), fPrimRectotET(0), fPrimRectotETDep(0)
42 ,fElectrontotET(0), fElectronAcctotET(0), fElectronRectotET(0)
43 ,fConvElectrontotET(0), fConvElectronAcctotET(0), fConvElectronRectotET(0), fScatElectrontotET(0), fScatElectronAcctotET(0), fScatElectronRectotET(0)
44 ,fTotElectrontotET(0), fTotElectronAcctotET(0), fTotElectronRectotET(0)
45
46 ,fGammatotET(0), fGammaAcctotET(0), fGammaRectotET(0)
47 ,fAnnihGammatotET(0), fAnnihGammaAcctotET(0), fAnnihGammaRectotET(0), fScatGammatotET(0), fScatGammaAcctotET(0), fScatGammaRectotET(0)
48 ,fTotGammatotET(0), fTotGammaAcctotET(0), fTotGammaRectotET(0)
49 ,fConvGammatotET(0),fNonConvGammatotET(0),fConvGammaAcctotET(0),fNonConvGammaAcctotET(0), fNPPPi0GammatotET(0), fNPPPi0GammaRectotET(0)
50
51 ,fTotEMtotET(0), fTotEMAcctotET(0), fTotEMRectotET(0)
52
53 ,fNPPElectrontotET(0), fNPPElectronRectotET(0), fNPPGammatotET(0), fNPPGammaRectotET(0)
54 ,fTotNPPEMtotET(0), fTotNPPEMRectotET(0)
55
56 ,fMuontotET(0), fPiontotET(0), fKaontotET(0), fProtontotET(0)
57 ,fMuonAcctotET(0), fPionAcctotET(0), fKaonAcctotET(0), fProtonAcctotET(0)
58 ,fMuonRectotET(0), fMuonRectotETDep(0), fPionRectotET(0), fPionRectotETDep(0), fKaonRectotET(0), fKaonRectotETDep(0), fProtonRectotET(0), fProtonRectotETDep(0)
59 ,fMuonMatchtotET(0), fMuonMatchtotETDep(0), fPionMatchtotET(0), fPionMatchtotETDep(0), fKaonMatchtotET(0), fKaonMatchtotETDep(0), fProtonMatchtotET(0), fProtonMatchtotETDep(0)
60 ,fTotChargedtotET(0), fTotChargedAcctotET(0), fTotChargedRectotET(0), fTotChargedRectotETDep(0), fTotChargedMatchtotET(0), fTotChargedMatchtotETDep(0)
61
62 ,fNeutrontotET(0), fNeutronAcctotET(0), fNeutronRectotET(0), fNeutronRectotETDep(0)
63 ,fK0totET(0), fK0RectotET(0), fK0RectotETDep(0), fLambdatotET(0), fLambdaRectotET(0), fLambdaRectotETDep(0)
64 ,fTotNeutraltotET(0), fTotNeutralRectotET(0), fTotNeutralRectotETDep(0)
65
66 ,fTotaltotET(0), fTotalAcctotET(0), fTotalRectotET(0), fTotalRectotETDep(0)
67
68 ,fGeoUt(0)
69
70 ,fHistPrimEtaEET(0) 
71 ,fHistPrimEtaPtET(0) 
72 ,fHistPrimEtaET(0) 
73 ,fHistPrimtotET(0) 
74
75 ,fHistPrimAccEtaEET(0) 
76 ,fHistPrimAccEtaPtET(0) 
77 ,fHistPrimAccEtaET(0) 
78 ,fHistPrimAcctotET(0) 
79
80 ,fHistPrimRecEtaEET(0) 
81 ,fHistPrimRecEtaPtET(0) 
82 ,fHistPrimRecEtaET(0) 
83 ,fHistPrimRectotET(0) 
84
85 ,fHistPrimRecEtaEDepETDep(0) 
86 ,fHistPrimRecEtaPtETDep(0) 
87 ,fHistPrimRecEtaETDep(0) 
88 ,fHistPrimRectotETDep(0) 
89
90 ,fHistElectronEtaEET(0) 
91 ,fHistElectronEtaPtET(0) 
92 ,fHistElectronEtaET(0) 
93 ,fHistElectronEtaE(0) 
94 ,fHistElectronEtaPt(0) 
95 ,fHistElectrontotET(0) 
96
97 ,fHistConvElectronEtaEET(0)  
98 ,fHistConvElectronEtaPtET(0)  
99 ,fHistConvElectronEtaET(0)  
100 ,fHistConvElectronEtaE(0)  
101 ,fHistConvElectronEtaPt(0)  
102 ,fHistConvElectrontotET(0)  
103
104 ,fHistScatElectronEtaEET(0)  
105 ,fHistScatElectronEtaPtET(0)  
106 ,fHistScatElectronEtaET(0)  
107 ,fHistScatElectronEtaE(0)  
108 ,fHistScatElectronEtaPt(0)  
109 ,fHistScatElectrontotET(0)  
110
111 ,fHistTotElectrontotET(0)
112
113 ,fHistGammaEtaEET(0)  
114 ,fHistGammaEtaPtET(0)  
115 ,fHistGammaEtaET(0)  
116 ,fHistGammaEtaE(0)  
117 ,fHistGammaEtaPt(0)  
118 ,fHistGammatotET(0)  
119
120 ,fHistAnnihGammaEtaEET(0)  
121 ,fHistAnnihGammaEtaPtET(0)  
122 ,fHistAnnihGammaEtaET(0)  
123 ,fHistAnnihGammaEtaE(0)  
124 ,fHistAnnihGammaEtaPt(0)  
125 ,fHistAnnihGammatotET(0)  
126
127 ,fHistScatGammaEtaEET(0)  
128 ,fHistScatGammaEtaPtET(0)  
129 ,fHistScatGammaEtaET(0)  
130 ,fHistScatGammaEtaE(0)  
131 ,fHistScatGammaEtaPt(0)  
132 ,fHistScatGammatotET(0)  
133
134 ,fHistConvGammaEtaEET(0)  
135 ,fHistConvGammaEtaPtET(0)  
136 ,fHistConvGammaEtaET(0)  
137 ,fHistConvGammaEtaE(0)  
138 ,fHistConvGammaEtaPt(0)  
139 ,fHistConvGammatotET(0)  
140
141 ,fHistNonConvGammaEtaEET(0)  
142 ,fHistNonConvGammaEtaPtET(0)  
143 ,fHistNonConvGammaEtaET(0)  
144 ,fHistNonConvGammaEtaE(0)  
145 ,fHistNonConvGammaEtaPt(0)  
146 ,fHistNonConvGammatotET(0)  
147
148 ,fHistTotGammatotET(0)
149
150 ,fHistTotEMtotET(0)
151
152 ,fHistNPPElectronEtaEET(0) 
153 ,fHistNPPElectronEtaPtET(0) 
154 ,fHistNPPElectronEtaET(0) 
155 ,fHistNPPElectronEtaE(0) 
156 ,fHistNPPElectronEtaPt(0) 
157 ,fHistNPPElectrontotET(0) 
158
159 ,fHistNPPGammaEtaEET(0) 
160 ,fHistNPPGammaEtaPtET(0) 
161 ,fHistNPPGammaEtaET(0) 
162 ,fHistNPPGammaEtaE(0) 
163 ,fHistNPPGammaEtaPt(0) 
164 ,fHistNPPGammatotET(0) 
165
166 ,fHistTotNPPEMtotET(0)
167
168 ,fHistNPPPi0GammaEtaEET(0) 
169 ,fHistNPPPi0GammaEtaPtET(0) 
170 ,fHistNPPPi0GammaEtaET(0) 
171 ,fHistNPPPi0GammaEtaE(0) 
172 ,fHistNPPPi0GammaEtaPt(0) 
173 ,fHistNPPPi0GammatotET(0) 
174
175 ,fHistElectronAccEtaEET(0) 
176 ,fHistElectronAccEtaPtET(0) 
177 ,fHistElectronAccEtaET(0) 
178 ,fHistElectronAccEtaE(0) 
179 ,fHistElectronAccEtaPt(0) 
180 ,fHistElectronAcctotET(0) 
181
182 ,fHistConvElectronAccEtaEET(0)  
183 ,fHistConvElectronAccEtaPtET(0)  
184 ,fHistConvElectronAccEtaET(0)  
185 ,fHistConvElectronAccEtaE(0)  
186 ,fHistConvElectronAccEtaPt(0)  
187 ,fHistConvElectronAcctotET(0)  
188
189 ,fHistScatElectronAccEtaEET(0)  
190 ,fHistScatElectronAccEtaPtET(0)  
191 ,fHistScatElectronAccEtaET(0)  
192 ,fHistScatElectronAccEtaE(0)  
193 ,fHistScatElectronAccEtaPt(0)  
194 ,fHistScatElectronAcctotET(0)  
195
196 ,fHistTotElectronAcctotET(0)
197
198 ,fHistGammaAccEtaEET(0)  
199 ,fHistGammaAccEtaPtET(0)  
200 ,fHistGammaAccEtaET(0)  
201 ,fHistGammaAccEtaE(0)  
202 ,fHistGammaAccEtaPt(0)  
203 ,fHistGammaAcctotET(0)  
204
205 ,fHistAnnihGammaAccEtaEET(0)  
206 ,fHistAnnihGammaAccEtaPtET(0)  
207 ,fHistAnnihGammaAccEtaET(0)  
208 ,fHistAnnihGammaAccEtaE(0)  
209 ,fHistAnnihGammaAccEtaPt(0)  
210 ,fHistAnnihGammaAcctotET(0)  
211
212 ,fHistScatGammaAccEtaEET(0)  
213 ,fHistScatGammaAccEtaPtET(0)  
214 ,fHistScatGammaAccEtaET(0)  
215 ,fHistScatGammaAccEtaE(0)  
216 ,fHistScatGammaAccEtaPt(0)  
217 ,fHistScatGammaAcctotET(0)  
218
219 ,fHistConvGammaAccEtaEET(0)  
220 ,fHistConvGammaAccEtaPtET(0)  
221 ,fHistConvGammaAccEtaET(0)  
222 ,fHistConvGammaAccEtaE(0)  
223 ,fHistConvGammaAccEtaPt(0)  
224 ,fHistConvGammaAcctotET(0)  
225
226 ,fHistNonConvGammaAccEtaEET(0)  
227 ,fHistNonConvGammaAccEtaPtET(0)  
228 ,fHistNonConvGammaAccEtaET(0)  
229 ,fHistNonConvGammaAccEtaE(0)  
230 ,fHistNonConvGammaAccEtaPt(0)  
231 ,fHistNonConvGammaAcctotET(0)  
232
233 ,fHistTotGammaAcctotET(0)
234
235 ,fHistTotEMAcctotET(0)
236
237 ,fHistNPPElectronAccEtaEET(0) 
238 ,fHistNPPElectronAccEtaPtET(0) 
239 ,fHistNPPElectronAccEtaE(0) 
240 ,fHistNPPElectronAccEtaPt(0) 
241
242 ,fHistNPPGammaAccEtaEET(0) 
243 ,fHistNPPGammaAccEtaPtET(0) 
244 ,fHistNPPGammaAccEtaE(0) 
245 ,fHistNPPGammaAccEtaPt(0) 
246
247 ,fHistElectronRecEtaEET(0) 
248 ,fHistElectronRecEtaPtET(0) 
249 ,fHistElectronRecEtaET(0) 
250 ,fHistElectronRecEtaE(0) 
251 ,fHistElectronRecEtaPt(0) 
252 ,fHistElectronRectotET(0) 
253
254 ,fHistConvElectronRecEtaEET(0)  
255 ,fHistConvElectronRecEtaPtET(0)  
256 ,fHistConvElectronRecEtaET(0)  
257 ,fHistConvElectronRecEtaE(0)  
258 ,fHistConvElectronRecEtaPt(0)  
259 ,fHistConvElectronRectotET(0)  
260
261 ,fHistScatElectronRecEtaEET(0)  
262 ,fHistScatElectronRecEtaPtET(0)  
263 ,fHistScatElectronRecEtaET(0)  
264 ,fHistScatElectronRecEtaE(0)  
265 ,fHistScatElectronRecEtaPt(0)  
266 ,fHistScatElectronRectotET(0)  
267
268 ,fHistTotElectronRectotET(0)
269
270 ,fHistGammaRecEtaEET(0)  
271 ,fHistGammaRecEtaPtET(0)  
272 ,fHistGammaRecEtaET(0)  
273 ,fHistGammaRecEtaE(0)  
274 ,fHistGammaRecEtaPt(0)  
275 ,fHistGammaRectotET(0)  
276
277 ,fHistAnnihGammaRecEtaEET(0)  
278 ,fHistAnnihGammaRecEtaPtET(0)  
279 ,fHistAnnihGammaRecEtaET(0)  
280 ,fHistAnnihGammaRecEtaE(0)  
281 ,fHistAnnihGammaRecEtaPt(0)  
282 ,fHistAnnihGammaRectotET(0)  
283
284 ,fHistScatGammaRecEtaEET(0)  
285 ,fHistScatGammaRecEtaPtET(0)  
286 ,fHistScatGammaRecEtaET(0)  
287 ,fHistScatGammaRecEtaE(0)  
288 ,fHistScatGammaRecEtaPt(0)  
289 ,fHistScatGammaRectotET(0)  
290
291 ,fHistTotGammaRectotET(0)
292
293 ,fHistTotEMRectotET(0)
294
295 ,fHistNPPElectronRecEtaEET(0) 
296 ,fHistNPPElectronRecEtaPtET(0) 
297 ,fHistNPPElectronRecEtaET(0) 
298 ,fHistNPPElectronRecEtaE(0) 
299 ,fHistNPPElectronRecEtaPt(0) 
300 ,fHistNPPElectronRectotET(0) 
301
302 ,fHistNPPGammaRecEtaEET(0) 
303 ,fHistNPPGammaRecEtaPtET(0) 
304 ,fHistNPPGammaRecEtaET(0) 
305 ,fHistNPPGammaRecEtaE(0) 
306 ,fHistNPPGammaRecEtaPt(0) 
307 ,fHistNPPGammaRectotET(0) 
308
309 ,fHistTotNPPEMRectotET(0)
310
311 ,fHistNPPPi0GammaRecEtaEET(0) 
312 ,fHistNPPPi0GammaRecEtaPtET(0) 
313 ,fHistNPPPi0GammaRecEtaET(0) 
314 ,fHistNPPPi0GammaRecEtaE(0) 
315 ,fHistNPPPi0GammaRecEtaPt(0) 
316 ,fHistNPPPi0GammaRectotET(0) 
317
318 ,fHistMuonEtaEET(0) 
319 ,fHistMuonAccEtaEET(0) 
320 ,fHistMuonRecEtaEET(0) 
321 ,fHistMuonMatchEtaEET(0) 
322
323 ,fHistMuonEtaPtET(0) 
324 ,fHistMuonAccEtaPtET(0) 
325 ,fHistMuonRecEtaPtET(0) 
326 ,fHistMuonMatchEtaPtET(0) 
327
328 ,fHistMuonEtaET(0) 
329 ,fHistMuonAccEtaET(0) 
330 ,fHistMuonRecEtaET(0) 
331 ,fHistMuonMatchEtaET(0) 
332
333 ,fHistMuonEtaE(0) 
334 ,fHistMuonAccEtaE(0) 
335 ,fHistMuonRecEtaE(0) 
336 ,fHistMuonMatchEtaE(0) 
337
338 ,fHistMuonEtaPt(0) 
339 ,fHistMuonAccEtaPt(0) 
340 ,fHistMuonRecEtaPt(0) 
341 ,fHistMuonMatchEtaPt(0) 
342
343 ,fHistMuontotET(0) 
344 ,fHistMuonAcctotET(0) 
345 ,fHistMuonRectotET(0) 
346 ,fHistMuonMatchtotET(0) 
347
348 ,fHistMuonRectotETDep(0) 
349 ,fHistMuonMatchtotETDep(0) 
350
351 ,fHistMuonRecEtaEDepETDep(0) 
352 ,fHistMuonMatchEtaEDepETDep(0) 
353
354 ,fHistMuonRecEtaPtETDep(0) 
355 ,fHistMuonMatchEtaPtETDep(0) 
356
357 ,fHistMuonRecEtaETDep(0) 
358 ,fHistMuonMatchEtaETDep(0) 
359
360 ,fHistMuonRecResEET(0) 
361 ,fHistMuonRecResPtET(0) 
362 ,fHistMuonRecResE(0) 
363 ,fHistMuonRecResPt(0) 
364
365 ,fHistMuonRecResEDepETDep(0) 
366 ,fHistMuonRecResPtETDep(0) 
367
368 ,fHistPionEtaEET(0) 
369 ,fHistPionAccEtaEET(0) 
370 ,fHistPionRecEtaEET(0) 
371 ,fHistPionMatchEtaEET(0) 
372
373 ,fHistPionEtaPtET(0) 
374 ,fHistPionAccEtaPtET(0) 
375 ,fHistPionRecEtaPtET(0) 
376 ,fHistPionMatchEtaPtET(0) 
377
378 ,fHistPionEtaET(0) 
379 ,fHistPionAccEtaET(0) 
380 ,fHistPionRecEtaET(0) 
381 ,fHistPionMatchEtaET(0) 
382
383 ,fHistPionEtaE(0) 
384 ,fHistPionAccEtaE(0) 
385 ,fHistPionRecEtaE(0) 
386 ,fHistPionMatchEtaE(0) 
387
388 ,fHistPionEtaPt(0) 
389 ,fHistPionAccEtaPt(0) 
390 ,fHistPionRecEtaPt(0) 
391 ,fHistPionMatchEtaPt(0) 
392
393 ,fHistPiontotET(0) 
394 ,fHistPionAcctotET(0) 
395 ,fHistPionRectotET(0) 
396 ,fHistPionMatchtotET(0) 
397
398 ,fHistPionRectotETDep(0) 
399 ,fHistPionMatchtotETDep(0) 
400
401 ,fHistPionRecEtaEDepETDep(0) 
402 ,fHistPionMatchEtaEDepETDep(0) 
403
404 ,fHistPionRecEtaPtETDep(0) 
405 ,fHistPionMatchEtaPtETDep(0) 
406
407 ,fHistPionRecEtaETDep(0) 
408 ,fHistPionMatchEtaETDep(0) 
409
410 ,fHistPionRecResEET(0) 
411 ,fHistPionRecResPtET(0) 
412 ,fHistPionRecResE(0) 
413 ,fHistPionRecResPt(0) 
414 ,fHistPionRecResEDepETDep(0) 
415 ,fHistPionRecResPtETDep(0) 
416
417 ,fHistKaonEtaEET(0) 
418 ,fHistKaonAccEtaEET(0) 
419 ,fHistKaonRecEtaEET(0) 
420 ,fHistKaonMatchEtaEET(0) 
421
422 ,fHistKaonEtaPtET(0) 
423 ,fHistKaonAccEtaPtET(0) 
424 ,fHistKaonRecEtaPtET(0) 
425 ,fHistKaonMatchEtaPtET(0) 
426
427 ,fHistKaonEtaET(0) 
428 ,fHistKaonAccEtaET(0) 
429 ,fHistKaonRecEtaET(0) 
430 ,fHistKaonMatchEtaET(0) 
431
432 ,fHistKaonEtaE(0) 
433 ,fHistKaonAccEtaE(0) 
434 ,fHistKaonRecEtaE(0) 
435 ,fHistKaonMatchEtaE(0) 
436
437 ,fHistKaonEtaPt(0) 
438 ,fHistKaonAccEtaPt(0) 
439 ,fHistKaonRecEtaPt(0) 
440 ,fHistKaonMatchEtaPt(0) 
441
442 ,fHistKaontotET(0) 
443 ,fHistKaonAcctotET(0) 
444 ,fHistKaonRectotET(0) 
445 ,fHistKaonMatchtotET(0) 
446
447 ,fHistKaonRectotETDep(0) 
448 ,fHistKaonMatchtotETDep(0) 
449
450 ,fHistKaonRecEtaEDepETDep(0) 
451 ,fHistKaonMatchEtaEDepETDep(0) 
452
453 ,fHistKaonRecEtaPtETDep(0) 
454 ,fHistKaonMatchEtaPtETDep(0) 
455
456 ,fHistKaonRecEtaETDep(0) 
457 ,fHistKaonMatchEtaETDep(0) 
458
459 ,fHistKaonRecResEET(0) 
460 ,fHistKaonRecResPtET(0) 
461 ,fHistKaonRecResE(0) 
462 ,fHistKaonRecResPt(0) 
463
464 ,fHistKaonRecResEDepETDep(0) 
465 ,fHistKaonRecResPtETDep(0) 
466
467 ,fHistProtonEtaEET(0) 
468 ,fHistProtonAccEtaEET(0) 
469 ,fHistProtonRecEtaEET(0) 
470 ,fHistProtonMatchEtaEET(0) 
471
472 ,fHistProtonEtaPtET(0) 
473 ,fHistProtonAccEtaPtET(0) 
474 ,fHistProtonRecEtaPtET(0) 
475 ,fHistProtonMatchEtaPtET(0) 
476
477 ,fHistProtonEtaET(0) 
478 ,fHistProtonAccEtaET(0) 
479 ,fHistProtonRecEtaET(0) 
480 ,fHistProtonMatchEtaET(0) 
481
482 ,fHistProtonEtaE(0) 
483 ,fHistProtonAccEtaE(0) 
484 ,fHistProtonRecEtaE(0) 
485 ,fHistProtonMatchEtaE(0) 
486
487 ,fHistProtonEtaPt(0) 
488 ,fHistProtonAccEtaPt(0) 
489 ,fHistProtonRecEtaPt(0) 
490 ,fHistProtonMatchEtaPt(0) 
491
492 ,fHistProtontotET(0) 
493 ,fHistProtonAcctotET(0) 
494 ,fHistProtonRectotET(0) 
495 ,fHistProtonMatchtotET(0) 
496
497 ,fHistProtonRectotETDep(0) 
498 ,fHistProtonMatchtotETDep(0) 
499
500 ,fHistProtonRecEtaEDepETDep(0) 
501 ,fHistProtonMatchEtaEDepETDep(0) 
502
503 ,fHistProtonRecEtaPtETDep(0) 
504 ,fHistProtonMatchEtaPtETDep(0) 
505
506 ,fHistProtonRecEtaETDep(0) 
507 ,fHistProtonMatchEtaETDep(0) 
508
509 ,fHistProtonRecResEET(0) 
510 ,fHistProtonRecResPtET(0) 
511 ,fHistProtonRecResE(0) 
512 ,fHistProtonRecResPt(0) 
513
514 ,fHistProtonRecResEDepETDep(0) 
515 ,fHistProtonRecResPtETDep(0) 
516
517 ,fHistTotChargedtotET(0)
518 ,fHistTotChargedAcctotET(0)
519 ,fHistTotChargedRectotET(0)
520 ,fHistTotChargedRectotETDep(0)
521 ,fHistTotChargedMatchtotET(0)
522 ,fHistTotChargedMatchtotETDep(0)
523
524 ,fHistNeutronEtaEET(0) 
525 ,fHistNeutronAccEtaEET(0) 
526 ,fHistNeutronRecEtaEET(0) 
527
528 ,fHistNeutronEtaPtET(0) 
529 ,fHistNeutronAccEtaPtET(0) 
530 ,fHistNeutronRecEtaPtET(0) 
531
532 ,fHistNeutronEtaET(0) 
533 ,fHistNeutronAccEtaET(0) 
534 ,fHistNeutronRecEtaET(0) 
535
536 ,fHistNeutronEtaE(0) 
537 ,fHistNeutronAccEtaE(0) 
538 ,fHistNeutronRecEtaE(0) 
539
540 ,fHistNeutronEtaPt(0) 
541 ,fHistNeutronAccEtaPt(0) 
542 ,fHistNeutronRecEtaPt(0) 
543
544 ,fHistNeutrontotET(0) 
545 ,fHistNeutronAcctotET(0) 
546 ,fHistNeutronRectotET(0) 
547
548 ,fHistNeutronRectotETDep(0)
549
550 ,fHistNeutronRecEtaEDepETDep(0) 
551 ,fHistNeutronRecEtaETDep(0) 
552 ,fHistNeutronRecEtaPtETDep(0) 
553
554 ,fHistK0EtaEET(0) 
555 ,fHistK0RecEtaEET(0) 
556
557 ,fHistK0EtaPtET(0) 
558 ,fHistK0RecEtaPtET(0) 
559
560 ,fHistK0EtaET(0) 
561 ,fHistK0RecEtaET(0) 
562
563 ,fHistK0EtaE(0) 
564 ,fHistK0RecEtaE(0) 
565
566 ,fHistK0EtaPt(0) 
567 ,fHistK0RecEtaPt(0) 
568
569 ,fHistK0totET(0) 
570 ,fHistK0RectotET(0) 
571 ,fHistK0RectotETDep(0) 
572
573 ,fHistK0RecEtaEDepETDep(0) 
574 ,fHistK0RecEtaETDep(0) 
575
576 ,fHistK0RecEtaPtETDep(0) 
577
578 ,fHistLambdaEtaEET(0) 
579 ,fHistLambdaRecEtaEET(0) 
580
581 ,fHistLambdaEtaPtET(0) 
582 ,fHistLambdaRecEtaPtET(0) 
583
584 ,fHistLambdaEtaET(0) 
585 ,fHistLambdaRecEtaET(0) 
586
587 ,fHistLambdaEtaE(0) 
588 ,fHistLambdaRecEtaE(0) 
589
590 ,fHistLambdaEtaPt(0) 
591 ,fHistLambdaRecEtaPt(0) 
592
593 ,fHistLambdatotET(0) 
594 ,fHistLambdaRectotET(0) 
595 ,fHistLambdaRectotETDep(0) 
596
597 ,fHistLambdaRecEtaEDepETDep(0) 
598 ,fHistLambdaRecEtaETDep(0) 
599
600 ,fHistLambdaRecEtaPtETDep(0) 
601
602 ,fHistTotNeutraltotET(0)
603 ,fHistTotNeutralRectotET(0)
604 ,fHistTotNeutralRectotETDep(0)
605
606 ,fHistTotaltotET(0)
607 //,fHistTotalAcctotET(0)
608 ,fHistTotalRectotET(0)
609 ,fHistTotalRectotETDep(0)
610
611 ,fHistElectronFirstMother(0) 
612 ,fHistElectronFirstMotherXY(0) 
613 ,fHistElectronNDaughters(0) 
614 ,fHistElectronDaughters(0) 
615 ,fHistElectronDaughtersXY(0) 
616
617 ,fHistElectronFirstMotherAcc(0)  
618 ,fHistElectronFirstMotherXYAcc(0)  
619 ,fHistElectronNDaughtersAcc(0) 
620 ,fHistElectronDaughtersAcc(0) 
621 ,fHistElectronDaughtersXYAcc(0) 
622
623 ,fHistElectronFirstMotherRec(0)  
624 ,fHistElectronFirstMotherXYRec(0)  
625 ,fHistElectronNDaughtersRec(0) 
626 ,fHistElectronDaughtersRec(0) 
627 ,fHistElectronDaughtersXYRec(0) 
628
629 ,fHistNPPElectronFirstMother(0) 
630 ,fHistNPPElectronFirstMotherXY(0) 
631 ,fHistNPPElectronNDaughters(0) 
632 ,fHistNPPElectronDaughters(0) 
633 ,fHistNPPElectronDaughtersXY(0) 
634
635 ,fHistNPPElectronFirstMotherAcc(0)  
636 ,fHistNPPElectronFirstMotherXYAcc(0)  
637 ,fHistNPPElectronNDaughtersAcc(0) 
638 ,fHistNPPElectronDaughtersAcc(0) 
639 ,fHistNPPElectronDaughtersXYAcc(0) 
640
641 ,fHistNPPElectronFirstMotherRec(0)  
642 ,fHistNPPElectronFirstMotherXYRec(0)  
643 ,fHistNPPElectronNDaughtersRec(0) 
644 ,fHistNPPElectronDaughtersRec(0) 
645 ,fHistNPPElectronDaughtersXYRec(0) 
646
647 ,fHistGammaFirstMother(0) 
648 ,fHistGammaFirstMotherXY(0) 
649 ,fHistGammaNDaughters(0) 
650 ,fHistGammaDaughters(0) 
651 ,fHistGammaDaughtersXY(0) 
652 ,fHistConvGammaDaughtersXY(0) 
653 ,fHistNonConvGammaDaughtersXY(0) 
654
655 ,fHistGammaFirstMotherAcc(0)  
656 ,fHistGammaFirstMotherXYAcc(0)  
657 ,fHistGammaNDaughtersAcc(0) 
658 ,fHistGammaDaughtersAcc(0) 
659 ,fHistGammaDaughtersXYAcc(0) 
660 ,fHistConvGammaDaughtersXYAcc(0) 
661 ,fHistNonConvGammaDaughtersXYAcc(0) 
662
663 ,fHistGammaFirstMotherRec(0)  
664 ,fHistGammaFirstMotherXYRec(0)  
665 ,fHistGammaNDaughtersRec(0) 
666 ,fHistGammaDaughtersRec(0) 
667 ,fHistGammaDaughtersXYRec(0) 
668 ,fHistConvGammaDaughtersXYRec(0) 
669 ,fHistNonConvGammaDaughtersXYRec(0) 
670
671 ,fHistNPPGammaFirstMother(0) 
672 ,fHistNPPGammaFirstMotherXY(0) 
673 ,fHistNPPGammaNDaughters(0) 
674 ,fHistNPPGammaDaughters(0) 
675 ,fHistNPPGammaDaughtersXY(0) 
676
677 ,fHistNPPGammaFirstMotherAcc(0)  
678 ,fHistNPPGammaFirstMotherXYAcc(0)  
679 ,fHistNPPGammaNDaughtersAcc(0) 
680 ,fHistNPPGammaDaughtersAcc(0) 
681 ,fHistNPPGammaDaughtersXYAcc(0) 
682
683 ,fHistNPPGammaFirstMotherRec(0)  
684 ,fHistNPPGammaFirstMotherXYRec(0)  
685 ,fHistNPPGammaNDaughtersRec(0) 
686 ,fHistNPPGammaDaughtersRec(0) 
687 ,fHistNPPGammaDaughtersXYRec(0) 
688
689 ,fHistAllERecEMC(0)     
690 ,fHistAllPtRecPtMC(0)
691 ,fHistElectronERecEMC(0)        
692 ,fHistGammaERecEMC(0)
693
694 ,fHistChargedRes(0)
695 ,fHistChargedRes2(0)
696 ,fHistChargedRes3(0)
697 ,fHistNeutralRes(0)
698 ,fHistElectronRes(0)
699 ,fHistGammaRes(0)
700
701 ,fHistIsInAcc(0)
702 {//constructor
703         fHistogramNameSuffix = TString("EmcalMC");
704         
705         fResCut = 0.02;
706         //fResCut = fEmcalTrackDistanceCut;
707         
708         TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", -1., -1., AliMagF::k5kG));
709         //TGeoGlobalMagField::Instance()->SetField(new AliMagF("Maps","Maps", 1., 1., AliMagF::k5kG));
710         TGeoManager::Import("geometry.root");
711         //fGeoUt = new AliEMCALGeometry("EMCAL_FIRSTYEAR","EMCAL");
712 }
713
714 // dtor
715 AliAnalysisEmEtMonteCarlo::~AliAnalysisEmEtMonteCarlo() 
716 {//destructor
717   //Marcelo, have you really cleaned up all memory here?  What about the histos?
718   delete fGeoUt;
719         delete fHistPrimEtaEET;
720         delete fHistPrimEtaPtET; 
721         delete fHistPrimEtaET;
722         delete fHistPrimtotET;
723         
724         delete fHistPrimAccEtaEET; 
725         delete fHistPrimAccEtaPtET; 
726         delete fHistPrimAccEtaET; 
727         delete fHistPrimAcctotET;
728         
729         delete fHistPrimRecEtaEET; 
730         delete fHistPrimRecEtaPtET; 
731         delete fHistPrimRecEtaET; 
732         delete fHistPrimRectotET;
733
734         delete fHistPrimRecEtaEDepETDep; 
735         delete fHistPrimRecEtaPtETDep; 
736         delete fHistPrimRecEtaETDep; 
737         delete fHistPrimRectotETDep;
738         
739         // *******************
740         // electron ET
741         // *******************
742         delete fHistElectronEtaEET; 
743         delete fHistElectronEtaPtET; 
744         delete fHistElectronEtaET; 
745         delete fHistElectronEtaE; 
746         delete fHistElectronEtaPt; 
747         delete fHistElectrontotET; 
748
749         delete fHistConvElectronEtaEET;  
750         delete fHistConvElectronEtaPtET;  
751         delete fHistConvElectronEtaET;  
752         delete fHistConvElectronEtaE;  
753         delete fHistConvElectronEtaPt;  
754         delete fHistConvElectrontotET;  
755
756         delete fHistScatElectronEtaEET;  
757         delete fHistScatElectronEtaPtET;  
758         delete fHistScatElectronEtaET;  
759         delete fHistScatElectronEtaE;  
760         delete fHistScatElectronEtaPt;  
761         delete fHistScatElectrontotET;  
762         
763         // *******************
764         // total electron ET
765         // *******************
766         delete fHistTotElectrontotET;
767         
768         // *******************
769         // gamma ET
770         // *******************
771         delete fHistGammaEtaEET;  
772         delete fHistGammaEtaPtET;  
773         delete fHistGammaEtaET;  
774         delete fHistGammaEtaE;  
775         delete fHistGammaEtaPt;  
776         delete fHistGammatotET;  
777         
778         delete fHistAnnihGammaEtaEET;  
779         delete fHistAnnihGammaEtaPtET;  
780         delete fHistAnnihGammaEtaET;  
781         delete fHistAnnihGammaEtaE;  
782         delete fHistAnnihGammaEtaPt;  
783         delete fHistAnnihGammatotET;  
784
785         delete fHistScatGammaEtaEET;  
786         delete fHistScatGammaEtaPtET;  
787         delete fHistScatGammaEtaET;  
788         delete fHistScatGammaEtaE;  
789         delete fHistScatGammaEtaPt;  
790         delete fHistScatGammatotET;  
791
792         delete fHistConvGammaEtaEET;  
793         delete fHistConvGammaEtaPtET;  
794         delete fHistConvGammaEtaET;  
795         delete fHistConvGammaEtaE;  
796         delete fHistConvGammaEtaPt;  
797         delete fHistConvGammatotET;  
798         
799         delete fHistNonConvGammaEtaEET;  
800         delete fHistNonConvGammaEtaPtET;  
801         delete fHistNonConvGammaEtaET;  
802         delete fHistNonConvGammaEtaE;  
803         delete fHistNonConvGammaEtaPt;  
804         delete fHistNonConvGammatotET;  
805         
806         // *******************
807         // total gamma ET
808         // *******************
809         delete fHistTotGammatotET;
810
811         // *******************
812         // total electromagnetic ET
813         // *******************
814         delete fHistTotEMtotET;
815
816         // non-primary electromagnetic ET
817         delete fHistNPPElectronEtaEET; 
818         delete fHistNPPElectronEtaPtET; 
819         delete fHistNPPElectronEtaET; 
820         delete fHistNPPElectronEtaE; 
821         delete fHistNPPElectronEtaPt; 
822         delete fHistNPPElectrontotET; 
823
824         delete fHistNPPGammaEtaEET; 
825         delete fHistNPPGammaEtaPtET; 
826         delete fHistNPPGammaEtaET; 
827         delete fHistNPPGammaEtaE; 
828         delete fHistNPPGammaEtaPt; 
829         delete fHistNPPGammatotET; 
830
831         delete fHistTotNPPEMtotET;
832
833         delete fHistNPPPi0GammaEtaEET; 
834         delete fHistNPPPi0GammaEtaPtET; 
835         delete fHistNPPPi0GammaEtaET; 
836         delete fHistNPPPi0GammaEtaE; 
837         delete fHistNPPPi0GammaEtaPt; 
838         delete fHistNPPPi0GammatotET; 
839                 
840         // *******************
841         // electron ET inside EMCal acceptance
842         // *******************
843         delete fHistElectronAccEtaEET; 
844         delete fHistElectronAccEtaPtET; 
845         delete fHistElectronAccEtaET; 
846         delete fHistElectronAccEtaE; 
847         delete fHistElectronAccEtaPt; 
848         delete fHistElectronAcctotET; 
849         
850         delete fHistConvElectronAccEtaEET;  
851         delete fHistConvElectronAccEtaPtET;  
852         delete fHistConvElectronAccEtaET;  
853         delete fHistConvElectronAccEtaE;  
854         delete fHistConvElectronAccEtaPt;  
855         delete fHistConvElectronAcctotET;  
856         
857         delete fHistScatElectronAccEtaEET;  
858         delete fHistScatElectronAccEtaPtET;  
859         delete fHistScatElectronAccEtaET;  
860         delete fHistScatElectronAccEtaE;  
861         delete fHistScatElectronAccEtaPt;  
862         delete fHistScatElectronAcctotET;  
863         
864         // *******************
865         // total electron ET inside EMCal acceptance
866         // *******************
867         delete fHistTotElectronAcctotET;
868
869         // *******************
870         // gamma ET inside EMCal acceptance
871         // *******************
872         delete fHistGammaAccEtaEET;  
873         delete fHistGammaAccEtaPtET;  
874         delete fHistGammaAccEtaET;  
875         delete fHistGammaAccEtaE;  
876         delete fHistGammaAccEtaPt;  
877         delete fHistGammaAcctotET;  
878         
879         delete fHistAnnihGammaAccEtaEET;  
880         delete fHistAnnihGammaAccEtaPtET;  
881         delete fHistAnnihGammaAccEtaET;  
882         delete fHistAnnihGammaAccEtaE;  
883         delete fHistAnnihGammaAccEtaPt;  
884         delete fHistAnnihGammaAcctotET;  
885         
886         delete fHistScatGammaAccEtaEET;  
887         delete fHistScatGammaAccEtaPtET;  
888         delete fHistScatGammaAccEtaET;  
889         delete fHistScatGammaAccEtaE;  
890         delete fHistScatGammaAccEtaPt;  
891         delete fHistScatGammaAcctotET;  
892         
893         delete fHistConvGammaAccEtaEET;  
894         delete fHistConvGammaAccEtaPtET;  
895         delete fHistConvGammaAccEtaET;  
896         delete fHistConvGammaAccEtaE;  
897         delete fHistConvGammaAccEtaPt;  
898         delete fHistConvGammaAcctotET;  
899         
900         delete fHistNonConvGammaAccEtaEET;  
901         delete fHistNonConvGammaAccEtaPtET;  
902         delete fHistNonConvGammaAccEtaET;  
903         delete fHistNonConvGammaAccEtaE;  
904         delete fHistNonConvGammaAccEtaPt;  
905         delete fHistNonConvGammaAcctotET;  
906         
907         // *******************
908         // total gamma ET inside EMCal acceptance
909         // *******************
910         delete fHistTotGammaAcctotET;
911
912         // *******************
913         // total electromagnetic ET inside EMCal acceptance
914         // *******************
915         delete fHistTotEMAcctotET;
916
917         // non-primary electromagnetic ET
918         delete fHistNPPElectronAccEtaEET; 
919         delete fHistNPPElectronAccEtaPtET; 
920         delete fHistNPPElectronAccEtaE; 
921         delete fHistNPPElectronAccEtaPt; 
922         
923         delete fHistNPPGammaAccEtaEET; 
924         delete fHistNPPGammaAccEtaPtET; 
925         delete fHistNPPGammaAccEtaE; 
926         delete fHistNPPGammaAccEtaPt;   
927         
928         // *******************
929         // electron ET reconstructed in EMCal
930         // *******************
931         delete fHistElectronRecEtaEET; 
932         delete fHistElectronRecEtaPtET; 
933         delete fHistElectronRecEtaET; 
934         delete fHistElectronRecEtaE; 
935         delete fHistElectronRecEtaPt; 
936         delete fHistElectronRectotET; 
937         
938         delete fHistConvElectronRecEtaEET;  
939         delete fHistConvElectronRecEtaPtET;  
940         delete fHistConvElectronRecEtaET;  
941         delete fHistConvElectronRecEtaE;  
942         delete fHistConvElectronRecEtaPt;  
943         delete fHistConvElectronRectotET;  
944         
945         delete fHistScatElectronRecEtaEET;  
946         delete fHistScatElectronRecEtaPtET;  
947         delete fHistScatElectronRecEtaET;  
948         delete fHistScatElectronRecEtaE;  
949         delete fHistScatElectronRecEtaPt;  
950         delete fHistScatElectronRectotET;  
951         
952         // *******************
953         // total Electron ET reconstructed in EMCal
954         // *******************
955         delete fHistTotElectronRectotET;
956
957         // *******************
958         // gamma ET reconstructed in EMCal
959         // *******************
960         delete fHistGammaRecEtaEET;  
961         delete fHistGammaRecEtaPtET;  
962         delete fHistGammaRecEtaET;  
963         delete fHistGammaRecEtaE;  
964         delete fHistGammaRecEtaPt;  
965         delete fHistGammaRectotET;  
966         
967         delete fHistAnnihGammaRecEtaEET;  
968         delete fHistAnnihGammaRecEtaPtET;  
969         delete fHistAnnihGammaRecEtaET;  
970         delete fHistAnnihGammaRecEtaE;  
971         delete fHistAnnihGammaRecEtaPt;  
972         delete fHistAnnihGammaRectotET;  
973         
974         delete fHistScatGammaRecEtaEET;  
975         delete fHistScatGammaRecEtaPtET;  
976         delete fHistScatGammaRecEtaET;  
977         delete fHistScatGammaRecEtaE;  
978         delete fHistScatGammaRecEtaPt;  
979         delete fHistScatGammaRectotET;  
980
981         // *******************
982         // total gamma ET reconstructed in EMCal
983         // *******************
984         delete fHistTotGammaRectotET;
985
986         // *******************
987         // total EM ET reconstructed in EMCal
988         // *******************
989         delete fHistTotEMRectotET;
990
991         // non-primary electromagnetic ET
992         delete fHistNPPElectronRecEtaEET; 
993         delete fHistNPPElectronRecEtaPtET; 
994         delete fHistNPPElectronRecEtaET; 
995         delete fHistNPPElectronRecEtaE; 
996         delete fHistNPPElectronRecEtaPt; 
997         delete fHistNPPElectronRectotET; 
998         
999         delete fHistNPPGammaRecEtaEET; 
1000         delete fHistNPPGammaRecEtaPtET; 
1001         delete fHistNPPGammaRecEtaET; 
1002         delete fHistNPPGammaRecEtaE; 
1003         delete fHistNPPGammaRecEtaPt; 
1004         delete fHistNPPGammaRectotET; 
1005         
1006         delete fHistTotNPPEMRectotET;
1007
1008         delete fHistNPPPi0GammaRecEtaEET; 
1009         delete fHistNPPPi0GammaRecEtaPtET; 
1010         delete fHistNPPPi0GammaRecEtaET; 
1011         delete fHistNPPPi0GammaRecEtaE; 
1012         delete fHistNPPPi0GammaRecEtaPt; 
1013         delete fHistNPPPi0GammaRectotET; 
1014         
1015         // *******************
1016         // muon ET (+ and -)
1017         // *******************
1018         delete fHistMuonEtaEET; 
1019         delete fHistMuonAccEtaEET; 
1020         delete fHistMuonRecEtaEET; 
1021         delete fHistMuonMatchEtaEET; 
1022
1023         delete fHistMuonEtaPtET; 
1024         delete fHistMuonAccEtaPtET; 
1025         delete fHistMuonRecEtaPtET; 
1026         delete fHistMuonMatchEtaPtET; 
1027
1028         delete fHistMuonEtaET; 
1029         delete fHistMuonAccEtaET; 
1030         delete fHistMuonRecEtaET; 
1031         delete fHistMuonMatchEtaET; 
1032         
1033         delete fHistMuonEtaE; 
1034         delete fHistMuonAccEtaE; 
1035         delete fHistMuonRecEtaE; 
1036         delete fHistMuonMatchEtaE; 
1037         
1038         delete fHistMuonEtaPt; 
1039         delete fHistMuonAccEtaPt; 
1040         delete fHistMuonRecEtaPt; 
1041         delete fHistMuonMatchEtaPt; 
1042         
1043         delete fHistMuontotET; 
1044         delete fHistMuonAcctotET; 
1045         delete fHistMuonRectotET; 
1046         delete fHistMuonMatchtotET; 
1047         
1048         delete fHistMuonRectotETDep; 
1049         delete fHistMuonMatchtotETDep; 
1050         
1051         delete fHistMuonRecEtaEDepETDep; 
1052         delete fHistMuonMatchEtaEDepETDep; 
1053
1054         delete fHistMuonRecEtaPtETDep; 
1055         delete fHistMuonMatchEtaPtETDep; 
1056         
1057         delete fHistMuonRecEtaETDep; 
1058         delete fHistMuonMatchEtaETDep; 
1059
1060         delete fHistMuonRecResEET; 
1061         delete fHistMuonRecResPtET; 
1062         delete fHistMuonRecResE; 
1063         delete fHistMuonRecResPt; 
1064         delete fHistMuonRecResEDepETDep; 
1065         delete fHistMuonRecResPtETDep; 
1066         
1067         // *******************
1068         // pion ET (+ and -)
1069         // *******************
1070         delete fHistPionEtaEET; 
1071         delete fHistPionAccEtaEET; 
1072         delete fHistPionRecEtaEET; 
1073         delete fHistPionMatchEtaEET; 
1074         
1075         delete fHistPionEtaPtET; 
1076         delete fHistPionAccEtaPtET; 
1077         delete fHistPionRecEtaPtET; 
1078         delete fHistPionMatchEtaPtET; 
1079         
1080         delete fHistPionEtaET; 
1081         delete fHistPionAccEtaET; 
1082         delete fHistPionRecEtaET; 
1083         delete fHistPionMatchEtaET; 
1084         
1085         delete fHistPionEtaE; 
1086         delete fHistPionAccEtaE; 
1087         delete fHistPionRecEtaE; 
1088         delete fHistPionMatchEtaE; 
1089         
1090         delete fHistPionEtaPt; 
1091         delete fHistPionAccEtaPt; 
1092         delete fHistPionRecEtaPt; 
1093         delete fHistPionMatchEtaPt; 
1094         
1095         delete fHistPiontotET; 
1096         delete fHistPionAcctotET; 
1097         delete fHistPionRectotET; 
1098         delete fHistPionMatchtotET; 
1099         
1100         delete fHistPionRectotETDep; 
1101         delete fHistPionMatchtotETDep; 
1102         
1103         delete fHistPionRecEtaEDepETDep; 
1104         delete fHistPionMatchEtaEDepETDep; 
1105
1106         delete fHistPionRecEtaPtETDep; 
1107         delete fHistPionMatchEtaPtETDep; 
1108         
1109         delete fHistPionRecEtaETDep; 
1110         delete fHistPionMatchEtaETDep; 
1111         
1112         delete fHistPionRecResEET; 
1113         delete fHistPionRecResPtET; 
1114         delete fHistPionRecResE; 
1115         delete fHistPionRecResPt; 
1116         delete fHistPionRecResEDepETDep; 
1117         delete fHistPionRecResPtETDep; 
1118         
1119         // *******************
1120         // charged kaon (+ and -) ET
1121         // *******************
1122         delete fHistKaonEtaEET; 
1123         delete fHistKaonAccEtaEET; 
1124         delete fHistKaonRecEtaEET; 
1125         delete fHistKaonMatchEtaEET; 
1126         
1127         delete fHistKaonEtaPtET; 
1128         delete fHistKaonAccEtaPtET; 
1129         delete fHistKaonRecEtaPtET; 
1130         delete fHistKaonMatchEtaPtET; 
1131         
1132         delete fHistKaonEtaET; 
1133         delete fHistKaonAccEtaET; 
1134         delete fHistKaonRecEtaET; 
1135         delete fHistKaonMatchEtaET; 
1136         
1137         delete fHistKaonEtaE; 
1138         delete fHistKaonAccEtaE; 
1139         delete fHistKaonRecEtaE; 
1140         delete fHistKaonMatchEtaE; 
1141         
1142         delete fHistKaonEtaPt; 
1143         delete fHistKaonAccEtaPt; 
1144         delete fHistKaonRecEtaPt; 
1145         delete fHistKaonMatchEtaPt; 
1146
1147         delete fHistKaontotET; 
1148         delete fHistKaonAcctotET; 
1149         delete fHistKaonRectotET; 
1150         delete fHistKaonMatchtotET; 
1151         
1152         delete fHistKaonRectotETDep; 
1153         delete fHistKaonMatchtotETDep; 
1154         
1155         delete fHistKaonRecEtaEDepETDep; 
1156         delete fHistKaonMatchEtaEDepETDep; 
1157
1158         delete fHistKaonRecEtaPtETDep; 
1159         delete fHistKaonMatchEtaPtETDep; 
1160         
1161         delete fHistKaonRecEtaETDep; 
1162         delete fHistKaonMatchEtaETDep; 
1163         
1164         delete fHistKaonRecResEET; 
1165         delete fHistKaonRecResPtET; 
1166         delete fHistKaonRecResE; 
1167         delete fHistKaonRecResPt; 
1168         delete fHistKaonRecResEDepETDep; 
1169         delete fHistKaonRecResPtETDep;  
1170         
1171         // *******************
1172         // proton (anti) ET
1173         // *******************
1174         delete fHistProtonEtaEET; 
1175         delete fHistProtonAccEtaEET; 
1176         delete fHistProtonRecEtaEET; 
1177         delete fHistProtonMatchEtaEET; 
1178         
1179         delete fHistProtonEtaPtET; 
1180         delete fHistProtonAccEtaPtET; 
1181         delete fHistProtonRecEtaPtET; 
1182         delete fHistProtonMatchEtaPtET; 
1183         
1184         delete fHistProtonEtaET; 
1185         delete fHistProtonAccEtaET; 
1186         delete fHistProtonRecEtaET; 
1187         delete fHistProtonMatchEtaET; 
1188         
1189         delete fHistProtonEtaE; 
1190         delete fHistProtonAccEtaE; 
1191         delete fHistProtonRecEtaE; 
1192         delete fHistProtonMatchEtaE; 
1193         
1194         delete fHistProtonEtaPt; 
1195         delete fHistProtonAccEtaPt; 
1196         delete fHistProtonRecEtaPt; 
1197         delete fHistProtonMatchEtaPt; 
1198
1199         delete fHistProtontotET; 
1200         delete fHistProtonAcctotET; 
1201         delete fHistProtonRectotET; 
1202         delete fHistProtonMatchtotET; 
1203         
1204         delete fHistProtonRectotETDep; 
1205         delete fHistProtonMatchtotETDep; 
1206         
1207         delete fHistProtonRecEtaEDepETDep; 
1208         delete fHistProtonMatchEtaEDepETDep; 
1209         
1210         delete fHistProtonRecEtaPtETDep; 
1211         delete fHistProtonMatchEtaPtETDep; 
1212         
1213         delete fHistProtonRecEtaETDep; 
1214         delete fHistProtonMatchEtaETDep; 
1215
1216         delete fHistProtonRecResEET; 
1217         delete fHistProtonRecResPtET; 
1218         delete fHistProtonRecResE; 
1219         delete fHistProtonRecResPt; 
1220         delete fHistProtonRecResEDepETDep; 
1221         delete fHistProtonRecResPtETDep; 
1222         
1223         // *******************
1224         // total charged ET
1225         // *******************
1226         delete fHistTotChargedtotET;
1227         delete fHistTotChargedAcctotET;
1228         delete fHistTotChargedRectotET;
1229         delete fHistTotChargedRectotETDep;
1230         delete fHistTotChargedMatchtotET;
1231         delete fHistTotChargedMatchtotETDep;
1232         
1233         // *******************
1234         // neutron (anti) ET
1235         // *******************
1236         delete fHistNeutronEtaEET; 
1237         delete fHistNeutronAccEtaEET; 
1238         delete fHistNeutronRecEtaEET; 
1239         
1240         delete fHistNeutronEtaPtET; 
1241         delete fHistNeutronAccEtaPtET; 
1242         delete fHistNeutronRecEtaPtET; 
1243         
1244         delete fHistNeutronEtaET; 
1245         delete fHistNeutronAccEtaET; 
1246         delete fHistNeutronRecEtaET; 
1247         
1248         delete fHistNeutronEtaE; 
1249         delete fHistNeutronAccEtaE; 
1250         delete fHistNeutronRecEtaE; 
1251         
1252         delete fHistNeutronEtaPt; 
1253         delete fHistNeutronAccEtaPt; 
1254         delete fHistNeutronRecEtaPt; 
1255         
1256         delete fHistNeutrontotET; 
1257         delete fHistNeutronAcctotET; 
1258         delete fHistNeutronRectotET; 
1259         delete fHistNeutronRectotETDep; 
1260         
1261         delete fHistNeutronRecEtaEDepETDep; 
1262         delete fHistNeutronRecEtaETDep; 
1263         
1264         delete fHistNeutronRecEtaPtETDep; 
1265                 
1266         // *******************
1267         // neutral kaon ET
1268         // *******************
1269         delete fHistK0EtaEET; 
1270         delete fHistK0RecEtaEET; 
1271         
1272         delete fHistK0EtaPtET; 
1273         delete fHistK0RecEtaPtET; 
1274         
1275         delete fHistK0EtaET; 
1276         delete fHistK0RecEtaET; 
1277         
1278         delete fHistK0EtaE; 
1279         delete fHistK0RecEtaE; 
1280         
1281         delete fHistK0EtaPt; 
1282         delete fHistK0RecEtaPt; 
1283
1284         delete fHistK0totET; 
1285         delete fHistK0RectotET; 
1286         
1287         delete fHistK0RectotETDep; 
1288         
1289         delete fHistK0RecEtaEDepETDep; 
1290         delete fHistK0RecEtaETDep; 
1291         
1292         delete fHistK0RecEtaPtETDep; 
1293                 
1294         // *******************
1295         // Lambda(anti) ET
1296         // *******************
1297         delete fHistLambdaEtaEET; 
1298         delete fHistLambdaRecEtaEET; 
1299         
1300         delete fHistLambdaEtaPtET; 
1301         delete fHistLambdaRecEtaPtET; 
1302         
1303         delete fHistLambdaEtaET; 
1304         delete fHistLambdaRecEtaET; 
1305         
1306         delete fHistLambdaEtaE; 
1307         delete fHistLambdaRecEtaE; 
1308         
1309         delete fHistLambdaEtaPt; 
1310         delete fHistLambdaRecEtaPt; 
1311         
1312         delete fHistLambdatotET; 
1313         delete fHistLambdaRectotET; 
1314         
1315         delete fHistLambdaRectotETDep; 
1316         
1317         delete fHistLambdaRecEtaEDepETDep; 
1318         delete fHistLambdaRecEtaETDep; 
1319         
1320         delete fHistLambdaRecEtaPtETDep; 
1321
1322         // *******************
1323         // total neutral ET
1324         // *******************
1325         delete fHistTotNeutraltotET;
1326         delete fHistTotNeutralRectotET;
1327         delete fHistTotNeutralRectotETDep;
1328         
1329         // *******************
1330         // total ET
1331         // *******************
1332         delete fHistTotaltotET;
1333         delete fHistTotalAcctotET;
1334         delete fHistTotalRectotET;
1335         delete fHistTotalRectotETDep;
1336         
1337         // *******************
1338         // some checks
1339         // *******************
1340
1341         // check produced electrons
1342         delete fHistElectronFirstMother; 
1343         delete fHistElectronFirstMotherXY; 
1344         delete fHistElectronNDaughters; 
1345         delete fHistElectronDaughters; 
1346         delete fHistElectronDaughtersXY; 
1347
1348         delete fHistElectronFirstMotherAcc;  
1349         delete fHistElectronFirstMotherXYAcc;  
1350         delete fHistElectronNDaughtersAcc; 
1351         delete fHistElectronDaughtersAcc; 
1352         delete fHistElectronDaughtersXYAcc; 
1353
1354         delete fHistElectronFirstMotherRec;  
1355         delete fHistElectronFirstMotherXYRec;  
1356         delete fHistElectronNDaughtersRec; 
1357         delete fHistElectronDaughtersRec; 
1358         delete fHistElectronDaughtersXYRec; 
1359
1360         delete fHistNPPElectronFirstMother; 
1361         delete fHistNPPElectronFirstMotherXY; 
1362         delete fHistNPPElectronNDaughters; 
1363         delete fHistNPPElectronDaughters; 
1364         delete fHistNPPElectronDaughtersXY; 
1365         
1366         delete fHistNPPElectronFirstMotherAcc;  
1367         delete fHistNPPElectronFirstMotherXYAcc;  
1368         delete fHistNPPElectronNDaughtersAcc; 
1369         delete fHistNPPElectronDaughtersAcc; 
1370         delete fHistNPPElectronDaughtersXYAcc; 
1371         
1372         delete fHistNPPElectronFirstMotherRec;  
1373         delete fHistNPPElectronFirstMotherXYRec;  
1374         delete fHistNPPElectronNDaughtersRec; 
1375         delete fHistNPPElectronDaughtersRec; 
1376         delete fHistNPPElectronDaughtersXYRec; 
1377         
1378         // check produced gammas
1379         delete fHistGammaFirstMother; 
1380         delete fHistGammaFirstMotherXY; 
1381         delete fHistGammaNDaughters; 
1382         delete fHistGammaDaughters; 
1383         delete fHistGammaDaughtersXY; 
1384         delete fHistConvGammaDaughtersXY; 
1385         delete fHistNonConvGammaDaughtersXY; 
1386         
1387         delete fHistGammaFirstMotherAcc;  
1388         delete fHistGammaFirstMotherXYAcc;  
1389         delete fHistGammaNDaughtersAcc; 
1390         delete fHistGammaDaughtersAcc; 
1391         delete fHistGammaDaughtersXYAcc; 
1392         delete fHistConvGammaDaughtersXYAcc; 
1393         delete fHistNonConvGammaDaughtersXYAcc; 
1394         
1395         delete fHistGammaFirstMotherRec;  
1396         delete fHistGammaFirstMotherXYRec;  
1397         delete fHistGammaNDaughtersRec; 
1398         delete fHistGammaDaughtersRec; 
1399         delete fHistGammaDaughtersXYRec; 
1400         delete fHistConvGammaDaughtersXYRec; 
1401         delete fHistNonConvGammaDaughtersXYRec; 
1402         
1403         delete fHistNPPGammaFirstMother; 
1404         delete fHistNPPGammaFirstMotherXY; 
1405         delete fHistNPPGammaNDaughters; 
1406         delete fHistNPPGammaDaughters; 
1407         delete fHistNPPGammaDaughtersXY; 
1408         
1409         delete fHistNPPGammaFirstMotherAcc;  
1410         delete fHistNPPGammaFirstMotherXYAcc;  
1411         delete fHistNPPGammaNDaughtersAcc; 
1412         delete fHistNPPGammaDaughtersAcc; 
1413         delete fHistNPPGammaDaughtersXYAcc; 
1414         
1415         delete fHistNPPGammaFirstMotherRec;  
1416         delete fHistNPPGammaFirstMotherXYRec;  
1417         delete fHistNPPGammaNDaughtersRec; 
1418         delete fHistNPPGammaDaughtersRec; 
1419         delete fHistNPPGammaDaughtersXYRec; 
1420
1421         //check projections
1422         delete fHistAllERecEMC; 
1423         delete fHistAllPtRecPtMC;
1424         delete fHistElectronERecEMC;    
1425         delete fHistGammaERecEMC;
1426         
1427         delete fHistChargedRes;
1428         delete fHistChargedRes2;
1429         delete fHistChargedRes3;
1430         delete fHistNeutralRes;
1431         delete fHistElectronRes;
1432         delete fHistGammaRes;
1433         
1434         delete fHistIsInAcc;
1435         //delete   TH2F * yyyyyy
1436 }
1437
1438 Int_t AliAnalysisEmEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
1439 { // analyse MC event
1440         //ResetEventValues();
1441         
1442     // Get us an mc event
1443         if(!ev)
1444         {
1445                 Printf("ERROR: Event does not exist");   
1446             return 0;
1447         }
1448         AliMCEvent *event = dynamic_cast<AliMCEvent*>(ev);
1449                 
1450     // Hijing header
1451     AliGenEventHeader* genHeader = event->GenEventHeader();
1452     if(!genHeader){
1453                 Printf("ERROR: Event generation header does not exist");   
1454             return 0;
1455     }
1456         
1457     // Let's play with the stack!
1458     AliStack *stack = event->Stack();
1459
1460         if (!stack)
1461         {
1462                 Printf("ERROR: Could not get stack");
1463                 return 0;
1464         }       
1465         
1466     //Int_t nStackTracks = stack->GetNtrack();
1467     Int_t nStackTracks = event->GetNumberOfTracks();
1468         
1469     for (Int_t iPart = 0; iPart < nStackTracks; iPart++)
1470     {
1471                 AliMCParticle* aliPart = (AliMCParticle*)event->GetTrack(iPart);
1472
1473         //TParticle *part = stack->Particle(iPart);
1474         TParticle *part = aliPart->Particle();
1475                 TParticle *partMom = 0;
1476                 TParticle *partDaughter = 0;
1477                 
1478         if (!part)
1479         {
1480             Printf("ERROR: Could not get particle %d", iPart);
1481             continue;
1482         }
1483
1484                 Int_t iPartMom = part->GetMother(0);
1485                 Int_t iPartDaughter = 0;
1486                 Int_t nPartDaughters = part->GetNDaughters();
1487                 
1488         TParticlePDG *pdg = part->GetPDG(0);
1489                 TParticlePDG *pdgMom = 0;
1490                 TParticlePDG *pdgDaugther = 0;
1491                 
1492                 if (!pdg)
1493         {
1494             Printf("ERROR-1: Could not get particle PDG %d", iPart);
1495             continue;
1496         }               
1497                 
1498                 //create an external track param for projection
1499                 AliExternalTrackParam* extParam = CreateExternalTrackParam(part);
1500                 
1501                 if ((iPartMom>=0) && (iPartMom < nStackTracks))
1502                 {
1503                         partMom = stack->Particle(iPartMom);
1504                         pdgMom = partMom->GetPDG(0);
1505                 }
1506                 
1507                 // Check if it is a primary particle
1508                 
1509         // Check for reasonable (for now neutral and singly charged) charge on the particle
1510         //TODO:Maybe not only singly charged?
1511         if (TMath::Abs(TMath::Abs(pdg->Charge()) - fCuts->GetMonteCarloSingleChargedParticle())<1e-3 && TMath::Abs(TMath::Abs(pdg->Charge()) - fCuts->GetMonteCarloNeutralParticle())<1e-3) continue;
1512                 
1513         fMultiplicity++;
1514                 
1515                 // Inside ALICE central barrel acceptance
1516                 
1517         if (TMath::Abs(part->Eta()) < fCuts->GetCommonEtaCut())
1518         {
1519                         Double_t et = CalcET(part,pdg);
1520                         
1521                         if (et < 0) continue;
1522
1523                         if (IsPrimary(stack,iPart,pdg,iPartMom,pdgMom))
1524                         {               
1525                                 if (stack->IsPhysicalPrimary(iPart))
1526                                 {
1527                                         fHistPrimEtaEET->Fill(part->Energy(),part->Eta(),et);
1528                                         fHistPrimEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1529                                         fHistPrimEtaET->Fill(et,part->Eta());                                                                                   
1530                                         fPrimtotET += et;
1531                                         
1532                                         //if (IsInAcceptance(part,pdg,extParam)) 
1533                                         if (IsInAcceptance(aliPart)) 
1534                                         {
1535                                                 fHistPrimAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1536                                                 fHistPrimAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
1537                                                 fHistPrimAccEtaET->Fill(et,part->Eta());                                                                                                                                
1538                                                 fPrimAcctotET += et;
1539                                         }                               
1540                                 }
1541
1542                                 // Fill up total E_T counters for each particle species
1543                                 if (pdg->PdgCode() == fgProtonCode || pdg->PdgCode() == fgAntiProtonCode)
1544                                 {
1545                                         fProtontotET += et;
1546                                         fHistProtonEtaEET->Fill(part->Energy(),part->Eta(),et);
1547                                         fHistProtonEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                    
1548                                         fHistProtonEtaET->Fill(et,part->Eta());                                                 
1549                                         fHistProtonEtaE->Fill(part->Energy(),part->Eta());
1550                                         fHistProtonEtaPt->Fill(part->Pt(),part->Eta());
1551                                         
1552                                         // inside EMCal acceptance
1553                                         //if (IsInAcceptance(part,pdg,extParam)) 
1554                                         if (IsInAcceptance(aliPart)) 
1555                                         {
1556                                                 fProtonAcctotET += et;
1557                                                 fHistProtonAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1558                                                 fHistProtonAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
1559                                                 fHistProtonAccEtaET->Fill(et,part->Eta());
1560                                                 fHistProtonAccEtaE->Fill(part->Energy(),part->Eta());
1561                                                 fHistProtonAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                                      
1562                                         }                                               
1563                                 }
1564                                 if (pdg->PdgCode() == fgPiPlusCode || pdg->PdgCode() == fgPiMinusCode)
1565                                 {
1566                                         fPiontotET += et;
1567                                         fHistPionEtaEET->Fill(part->Energy(),part->Eta(),et);
1568                                         fHistPionEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1569                                         fHistPionEtaET->Fill(et,part->Eta());
1570                                         fHistPionEtaE->Fill(part->Energy(),part->Eta());
1571                                         fHistPionEtaPt->Fill(part->Pt(),part->Eta());                                                   
1572                                         // inside EMCal acceptance
1573                                         //if (IsInAcceptance(part,pdg,extParam)) 
1574                                         if (IsInAcceptance(aliPart)) 
1575                                         {
1576                                                 fPionAcctotET += et;
1577                                                 fHistPionAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1578                                                 fHistPionAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
1579                                                 fHistPionAccEtaET->Fill(et,part->Eta());
1580                                                 fHistPionAccEtaE->Fill(part->Energy(),part->Eta());
1581                                                 fHistPionAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                                        
1582                                         }                                               
1583                                 }
1584                                 if (pdg->PdgCode() == fgKPlusCode || pdg->PdgCode() == fgKMinusCode)
1585                                 {
1586                                         fKaontotET += et;
1587                                         fHistKaonEtaEET->Fill(part->Energy(),part->Eta(),et);
1588                                         fHistKaonEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1589                                         fHistKaonEtaE->Fill(part->Energy(),part->Eta());
1590                                         fHistKaonEtaET->Fill(et,part->Eta());
1591                                         fHistKaonEtaPt->Fill(part->Pt(),part->Eta());                                                   
1592                                         // inside EMCal acceptance
1593                                         //if (IsInAcceptance(part,pdg,extParam)) 
1594                                         if (IsInAcceptance(aliPart)) 
1595                                         {
1596                                                 fKaonAcctotET += et;
1597                                                 fHistKaonAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1598                                                 fHistKaonAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
1599                                                 fHistKaonAccEtaET->Fill(et,part->Eta());
1600                                                 fHistKaonAccEtaE->Fill(part->Energy(),part->Eta());
1601                                                 fHistKaonAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                                        
1602                                         }                                               
1603                                 }
1604                                 if (pdg->PdgCode() == fgMuPlusCode || pdg->PdgCode() == fgMuMinusCode)
1605                                 {
1606                                         fMuontotET += et;
1607                                         fHistMuonEtaEET->Fill(part->Energy(),part->Eta(),et);
1608                                         fHistMuonEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1609                                         fHistMuonEtaET->Fill(et,part->Eta());
1610                                         fHistMuonEtaE->Fill(part->Energy(),part->Eta());
1611                                         fHistMuonEtaPt->Fill(part->Pt(),part->Eta());                                                                           
1612                                         // inside EMCal acceptance
1613                                         //if (IsInAcceptance(part,pdg,extParam)) 
1614                                         if (IsInAcceptance(aliPart)) 
1615                                         {
1616                                                 fMuonAcctotET += et;
1617                                                 fHistMuonAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1618                                                 fHistMuonAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
1619                                                 fHistMuonAccEtaET->Fill(et,part->Eta());
1620                                                 fHistMuonAccEtaE->Fill(part->Energy(),part->Eta());
1621                                                 fHistMuonAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                                                                
1622                                         }                                               
1623                                 }
1624                                 if (pdg->PdgCode() == fgEPlusCode || pdg->PdgCode() == fgEMinusCode)
1625                                 {                               
1626                                         if (stack->IsPhysicalPrimary(iPart))
1627                                         {
1628                                                 fElectrontotET += et;                                           
1629                                                 fHistElectronEtaEET->Fill(part->Energy(),part->Eta(),et);
1630                                                 fHistElectronEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                  
1631                                                 fHistElectronEtaET->Fill(et,part->Eta());
1632                                                 fHistElectronEtaE->Fill(part->Energy(),part->Eta());
1633                                                 fHistElectronEtaPt->Fill(part->Pt(),part->Eta());       
1634                                                 
1635                                                 // inside EMCal acceptance
1636                                                 //if (IsInAcceptance(part,pdg,extParam)) 
1637                                                 if (IsInAcceptance(aliPart)) 
1638                                                 {
1639                                                         fElectronAcctotET += et;
1640                                                         fHistElectronAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1641                                                         fHistElectronAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
1642                                                         fHistElectronAccEtaET->Fill(et,part->Eta());
1643                                                         fHistElectronAccEtaE->Fill(part->Energy(),part->Eta());
1644                                                         fHistElectronAccEtaPt->Fill(part->Pt(),part->Eta());                                                    
1645                                                 }                                                       
1646                                         }
1647                                         else if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) 
1648                                         {
1649                                                 if (IsMotherPrimaryGamma(stack,iPartMom,pdgMom))
1650                                                 {
1651                                                         fHistConvElectronEtaEET->Fill(part->Energy(),part->Eta(),et);
1652                                                         fHistConvElectronEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1653                                                         fHistConvElectronEtaET->Fill(et,part->Eta());
1654                                                         fHistConvElectronEtaE->Fill(part->Energy(),part->Eta());
1655                                                         fHistConvElectronEtaPt->Fill(part->Pt(),part->Eta());                                                   
1656                                                         fConvElectrontotET += et;
1657                                                         
1658                                                         // gamma mother is inside EMCal acceptance
1659                                                         //if (IsInAcceptance(partMom,pdgMom)) 
1660                                                         if (IsInAcceptance(aliPart)) 
1661                                                         {
1662                                                                 fHistConvElectronAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1663                                                                 fHistConvElectronAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
1664                                                                 fHistConvElectronAccEtaET->Fill(et,part->Eta());
1665                                                                 fHistConvElectronAccEtaE->Fill(part->Energy(),part->Eta());
1666                                                                 fHistConvElectronAccEtaPt->Fill(part->Pt(),part->Eta());                                                        
1667                                                                 fConvElectronAcctotET += et;
1668                                                         }                                                       
1669                                                 }               
1670                                                 else if (IsMotherPrimaryElectron(stack,iPartMom,pdgMom))
1671                                                 {
1672                                                         fHistScatElectronEtaEET->Fill(part->Energy(),part->Eta(),et);
1673                                                         fHistScatElectronEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1674                                                         fHistScatElectronEtaET->Fill(et,part->Eta());
1675                                                         fHistScatElectronEtaE->Fill(part->Energy(),part->Eta());
1676                                                         fHistScatElectronEtaPt->Fill(part->Pt(),part->Eta());                                                   
1677                                                         fScatElectrontotET += et;
1678
1679                                                         // inside EMCal acceptance - does it work?
1680                                                         //if (IsInAcceptance(part,pdg,extParam)) 
1681                                                         if (IsInAcceptance(aliPart)) 
1682                                                         {
1683                                                                 fHistScatElectronAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1684                                                                 fHistScatElectronAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
1685                                                                 fHistScatElectronAccEtaET->Fill(et,part->Eta());
1686                                                                 fHistScatElectronAccEtaE->Fill(part->Energy(),part->Eta());
1687                                                                 fHistScatElectronAccEtaPt->Fill(part->Pt(),part->Eta());                                                        
1688                                                                 fScatElectronAcctotET += et;
1689                                                         }                                                       
1690                                                 }               
1691                                         }
1692
1693                                         // few checks
1694                                         if ((stack->IsPhysicalPrimary(iPart)) || (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())))
1695                                         {
1696                                                 if (pdgMom)
1697                                                         fHistElectronFirstMother->Fill(pdgMom->PdgCode());
1698                                                 fHistElectronFirstMotherXY->Fill(part->Vx(),part->Vy());                                        
1699                                                 fHistElectronNDaughters->Fill(nPartDaughters);
1700                                                 
1701                                                 iPartDaughter = part->GetLastDaughter();
1702                                                 if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
1703                                                 {
1704                                                         partDaughter = stack->Particle(iPartDaughter);
1705                                                         if (partDaughter)
1706                                                         {
1707                                                                 pdgDaugther = partDaughter->GetPDG(0);
1708                                                                 if (pdgDaugther) {
1709                                                                         fHistElectronDaughters->Fill(pdgDaugther->PdgCode());   
1710                                                                         fHistElectronDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
1711                                                                 }
1712                                                         }
1713                                                 }
1714                                                 
1715                                                 // inside EMCal acceptance
1716                                                 //if (IsInAcceptance(part,pdg,extParam)) 
1717                                                 if (IsInAcceptance(aliPart)) 
1718                                                 {
1719                                                         if (pdgMom)
1720                                                                 fHistElectronFirstMotherAcc->Fill(pdgMom->PdgCode());
1721                                                         fHistElectronFirstMotherXYAcc->Fill(part->Vx(),part->Vy());                                     
1722                                                         fHistElectronNDaughtersAcc->Fill(nPartDaughters);
1723                                                         
1724                                                         iPartDaughter = part->GetLastDaughter();
1725                                                         if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
1726                                                         {
1727                                                                 partDaughter = stack->Particle(iPartDaughter);
1728                                                                 if (partDaughter)
1729                                                                 {
1730                                                                         pdgDaugther = partDaughter->GetPDG(0);
1731                                                                         if (pdgDaugther) {
1732                                                                                 fHistElectronDaughtersAcc->Fill(pdgDaugther->PdgCode());        
1733                                                                                 fHistElectronDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
1734                                                                         }
1735                                                                 }
1736                                                         }
1737                                                 }
1738                                         }
1739                                 } // end of if electron
1740
1741                                 // some neutrals also
1742                                 if (pdg->PdgCode() == fgNeutronCode || pdg->PdgCode() == fgAntiNeutronCode)
1743                                 {
1744                                         fHistNeutronEtaEET->Fill(part->Energy(),part->Eta(),et);
1745                                         fHistNeutronEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
1746                                         fHistNeutronEtaET->Fill(et,part->Eta());                                                        
1747                                         fHistNeutronEtaE->Fill(part->Energy(),part->Eta());
1748                                         fHistNeutronEtaPt->Fill(part->Pt(),part->Eta());                
1749                                         fNeutrontotET += et;
1750                                         
1751                                         // inside EMCal acceptance
1752                                         //if (IsInAcceptance(part,pdg)) 
1753                                         if (IsInAcceptance(aliPart)) 
1754                                         {
1755                                                 fHistNeutronAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1756                                                 fHistNeutronAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                        
1757                                                 fHistNeutronAccEtaET->Fill(et,part->Eta());
1758                                                 fHistNeutronAccEtaE->Fill(part->Energy(),part->Eta());
1759                                                 fHistNeutronAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                                     
1760                                                 fNeutronAcctotET += et;
1761                                         }                                               
1762                                         if(pdg->PdgCode() == fgNeutronCode)
1763                                         {
1764                                                 fNeutronEt += et;
1765                                         }
1766                                         if(pdg->PdgCode() == fgAntiNeutronCode)
1767                                         {
1768                                                 fAntiNeutronEt += et;
1769                                         }
1770                                 }
1771                                 
1772                                 if(pdg->PdgCode() == fgGammaCode)
1773                                 {
1774                                         if (stack->IsPhysicalPrimary(iPart))
1775                                         {
1776                                                 fHistGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
1777                                                 fHistGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                     
1778                                                 fHistGammaEtaET->Fill(et,part->Eta());
1779                                                 fHistGammaEtaE->Fill(part->Energy(),part->Eta());
1780                                                 fHistGammaEtaPt->Fill(part->Pt(),part->Eta());  
1781                                                 fGammatotET += et;
1782                                                 
1783                                                 if (IsGammaConversion(stack, part, pdg))
1784                                                 {                                                                               
1785                                                         fHistConvGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
1786                                                         fHistConvGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
1787                                                         fHistConvGammaEtaET->Fill(et,part->Eta());
1788                                                         fHistConvGammaEtaE->Fill(part->Energy(),part->Eta());
1789                                                         fHistConvGammaEtaPt->Fill(part->Pt(),part->Eta());                                                                      
1790                                                         fConvGammatotET += et;
1791                                                 }
1792                                                 else
1793                                                 {                                                                               
1794                                                         fHistNonConvGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
1795                                                         fHistNonConvGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1796                                                         fHistNonConvGammaEtaET->Fill(et,part->Eta());
1797                                                         fHistNonConvGammaEtaE->Fill(part->Energy(),part->Eta());
1798                                                         fHistNonConvGammaEtaPt->Fill(part->Pt(),part->Eta());                                                                   
1799                                                         fNonConvGammatotET += et;
1800                                                 }
1801                                                 
1802                                                 Bool_t inAcc=kFALSE;
1803                                                 // inside EMCal acceptance
1804                                                 //if (IsInAcceptance(part,pdg)) 
1805                                                 if (IsInAcceptance(aliPart)) 
1806                                                 {
1807                                                         //Printf("phi(1) = %f, eta(1) = %f",part->Phi(),part->Eta());
1808                                                         inAcc = kTRUE;
1809                                                         
1810                                                         fHistGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1811                                                         fHistGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                  
1812                                                         fHistGammaAccEtaET->Fill(et,part->Eta());
1813                                                         fHistGammaAccEtaE->Fill(part->Energy(),part->Eta());
1814                                                         fHistGammaAccEtaPt->Fill(part->Pt(),part->Eta());               
1815                                                         fGammaAcctotET += et;
1816                                                 }
1817                                                 
1818                                                 if (IsInAcceptance(part,pdg)) 
1819                                                 {
1820                                                         if (IsGammaConversion(stack, part, pdg))
1821                                                         {       
1822                                                                 if (inAcc)
1823                                                                         Printf("phi(1) = %f, eta(1) = %f",part->Phi(),part->Eta());
1824
1825                                                                 fHistConvGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1826                                                                 fHistConvGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1827                                                                 fHistConvGammaAccEtaET->Fill(et,part->Eta());
1828                                                                 fHistConvGammaAccEtaE->Fill(part->Energy(),part->Eta());
1829                                                                 fHistConvGammaAccEtaPt->Fill(part->Pt(),part->Eta());                                                                   
1830                                                                 fConvGammaAcctotET += et;
1831                                                         }
1832                                                         else
1833                                                         {                       
1834                                                                 /*
1835                                                                 if (!inAcc)
1836                                                                 {
1837                                                                         Printf("phi(2) = %f, eta(2) = %f, pt = %f",TMath::RadToDeg()*part->Phi(),part->Eta(),part->Pt());
1838                                                                 
1839                                                                         Int_t iPartDaughter = part->GetLastDaughter();
1840                                                                         
1841                                                                         if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
1842                                                                         {
1843                                                                                 TParticle *partDaughter = stack->Particle(iPartDaughter);
1844                                                                                 if (partDaughter)
1845                                                                                 {
1846                                                                                         TParticlePDG *pdgDaugther = partDaughter->GetPDG(0);
1847                                                                                         if (pdgDaugther) 
1848                                                                                         {
1849                                                                                                 Double_t decayR = sqrt(pow(partDaughter->Vx(),2)+pow(partDaughter->Vy(),2));
1850                                                                                                 Printf("radius = %f, daughter pid = %d",decayR,pdgDaugther->PdgCode());
1851                                                                                         }
1852                                                                                 }
1853                                                                         }
1854                                                                         
1855                                                                         for (int i=0;i<aliPart->GetNumberOfTrackReferences();i++)
1856                                                                         {
1857                                                                                 AliTrackReference* aliTrkRef = aliPart->GetTrackReference(i);
1858                                                                                 
1859                                                                                 if (aliTrkRef)
1860                                                                                 {
1861                                                                                         Printf("det id = %d, x=%f, y=%f, z=%f", aliTrkRef->DetectorId(),aliTrkRef->X(),aliTrkRef->Y(),aliTrkRef->Z());
1862                                                                                 }
1863                                                                         }
1864                                                                         
1865                                                                 }
1866                                                                 */
1867                                                                 
1868                                                                 fHistNonConvGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1869                                                                 fHistNonConvGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
1870                                                                 fHistNonConvGammaAccEtaET->Fill(et,part->Eta());
1871                                                                 fHistNonConvGammaAccEtaE->Fill(part->Energy(),part->Eta());
1872                                                                 fHistNonConvGammaAccEtaPt->Fill(part->Pt(),part->Eta());                                                                        
1873                                                                 fNonConvGammaAcctotET += et;
1874                                                         }
1875                                                 }                                                                                       
1876                                         }
1877                                         else if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) 
1878                                         {
1879                                                 if (IsMotherPrimaryElectron(stack,iPartMom,pdgMom))
1880                                                 {
1881                                                         fHistAnnihGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
1882                                                         fHistAnnihGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                        
1883                                                         fHistAnnihGammaEtaET->Fill(et,part->Eta());
1884                                                         fHistAnnihGammaEtaE->Fill(part->Energy(),part->Eta());
1885                                                         fHistAnnihGammaEtaPt->Fill(part->Pt(),part->Eta());             
1886                                                         fAnnihGammatotET += et;
1887                                                         
1888                                                         // inside EMCal acceptance
1889                                                         //if (IsInAcceptance(part,pdg)) 
1890                                                         if (IsInAcceptance(aliPart)) 
1891                                                         {
1892                                                                 fHistAnnihGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1893                                                                 fHistAnnihGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                     
1894                                                                 fHistAnnihGammaAccEtaET->Fill(et,part->Eta());
1895                                                                 fHistAnnihGammaAccEtaE->Fill(part->Energy(),part->Eta());
1896                                                                 fHistAnnihGammaAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                          
1897                                                                 fAnnihGammaAcctotET += et;
1898                                                         }
1899                                                 }
1900                                                 else if (IsMotherPrimaryGamma(stack,iPartMom,pdgMom))
1901                                                 {
1902                                                         fHistScatGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
1903                                                         fHistScatGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
1904                                                         fHistScatGammaEtaET->Fill(et,part->Eta());
1905                                                         fHistScatGammaEtaE->Fill(part->Energy(),part->Eta());
1906                                                         fHistScatGammaEtaPt->Fill(part->Pt(),part->Eta());              
1907                                                         fScatGammatotET += et;
1908                                                         
1909                                                         // inside EMCal acceptance
1910                                                         //if (IsInAcceptance(part,pdg)) 
1911                                                         if (IsInAcceptance(aliPart)) 
1912                                                         {
1913                                                                 fHistScatGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1914                                                                 fHistScatGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1915                                                                 fHistScatGammaAccEtaET->Fill(et,part->Eta());
1916                                                                 fHistScatGammaAccEtaE->Fill(part->Energy(),part->Eta());
1917                                                                 fHistScatGammaAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                           
1918                                                                 fScatGammaAcctotET += et;
1919                                                         }
1920                                                 }
1921                                         }
1922
1923                                         // few checks
1924                                         if ((stack->IsPhysicalPrimary(iPart)) || (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())))
1925                                         {
1926                                                 if (pdgMom)
1927                                                         fHistGammaFirstMother->Fill(pdgMom->PdgCode());
1928                                                 fHistGammaFirstMotherXY->Fill(part->Vx(),part->Vy());                                   
1929                                                 fHistGammaNDaughters->Fill(nPartDaughters);
1930                                                 
1931                                                 iPartDaughter = part->GetLastDaughter();
1932                                                 if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
1933                                                 {
1934                                                         partDaughter = stack->Particle(iPartDaughter);
1935                                                         if (partDaughter)
1936                                                         {
1937                                                                 pdgDaugther = partDaughter->GetPDG(0);
1938                                                                 if (pdgDaugther) {
1939                                                                         fHistGammaDaughters->Fill(pdgDaugther->PdgCode());      
1940                                                                         fHistGammaDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
1941                                                                         
1942                                                                         if (stack->IsPhysicalPrimary(iPart))
1943                                                                         {
1944                                                                                 if (IsGammaConversion(stack, part, pdg))
1945                                                                                 {                                                                               
1946                                                                                         fHistConvGammaDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
1947                                                                                 }
1948                                                                                 else
1949                                                                                 {
1950                                                                                         fHistNonConvGammaDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
1951                                                                                 }
1952                                                                         }
1953                                                                 }
1954                                                         }
1955                                                 }
1956                                                 
1957                                                 // inside EMCal acceptance
1958                                                 //if (IsInAcceptance(part,pdg)) 
1959                                                 if (IsInAcceptance(aliPart)) 
1960                                                 {
1961                                                         if (pdgMom)
1962                                                                 fHistGammaFirstMotherAcc->Fill(pdgMom->PdgCode());
1963                                                         fHistGammaFirstMotherXYAcc->Fill(part->Vx(),part->Vy());                                        
1964                                                         fHistGammaNDaughtersAcc->Fill(nPartDaughters);
1965                                                         
1966                                                         iPartDaughter = part->GetLastDaughter();
1967                                                         if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
1968                                                         {
1969                                                                 partDaughter = stack->Particle(iPartDaughter);
1970                                                                 if (partDaughter)
1971                                                                 {
1972                                                                         pdgDaugther = partDaughter->GetPDG(0);
1973                                                                         if (pdgDaugther) {
1974                                                                                 fHistGammaDaughtersAcc->Fill(pdgDaugther->PdgCode());   
1975                                                                                 fHistGammaDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
1976                                                                                 
1977                                                                                 if (stack->IsPhysicalPrimary(iPart))
1978                                                                                 {
1979                                                                                         if (IsGammaConversion(stack, part, pdg))
1980                                                                                         {                                                                               
1981                                                                                                 fHistConvGammaDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
1982                                                                                         }
1983                                                                                         else
1984                                                                                         {
1985                                                                                                 fHistNonConvGammaDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
1986                                                                                         }
1987                                                                                 }
1988                                                                                 
1989                                                                         }
1990                                                                 }
1991                                                         }                                               
1992                                                 }
1993                                         }
1994                                 } // end of if gamma
1995                                         
1996                                 // Neutral particles
1997                                 if (TMath::Abs(pdg->Charge() - fCuts->GetMonteCarloNeutralParticle()) <1e-3 )
1998                                 {
1999                                         //fNeutralMultiplicity++;
2000                                         fTotNeutralEt += et;
2001                                         
2002                                         // inside EMCal acceptance
2003                                         //if (IsInAcceptance(part,pdg)) 
2004                                         if (IsInAcceptance(aliPart)) 
2005                                         {
2006                                                 fTotNeutralEtAcc += et;
2007                                                 //fTotEtAcc += et;                                                                              
2008                                         }
2009                                 } // end of neutral particles block
2010                                 //Charged particles
2011                                 else if (TMath::Abs( pdg->Charge() - fCuts->GetMonteCarloNeutralParticle())>1e-3 )
2012                                 {
2013                                         //fChargedMultiplicity++;
2014                                         fTotChargedEt += et;
2015                                         
2016                                         // inside EMCal acceptance
2017                                         //if (IsInAcceptance(part,pdg,extParam)) 
2018                                         if (IsInAcceptance(aliPart)) 
2019                                         {
2020                                                 fTotChargedEtAcc += et;
2021                                                 //fTotEtAcc += et;
2022                                         } // inside EMCal acceptance
2023                                         
2024                                         //if (TrackHitsCalo(extParam)) // magnetic field info not filled?
2025                                         //{
2026                                         //      if (pdg->Charge() > 0) fHistPhivsPtPos->Fill(part->Phi(),part->Pt());
2027                                         //      else if (pdg->Charge() < 0) fHistPhivsPtNeg->Fill(part->Phi(), part->Pt());
2028                                         //}
2029                                 } // end of charged particles block
2030                         } // end of is primary
2031                         else // not a primary
2032                         {
2033                                 if (pdgMom)
2034                                 {
2035                                         if (pdgMom->PdgCode() == fgK0SCode)
2036                                         {
2037                                                 fHistK0EtaEET->Fill(part->Energy(),part->Eta(),et);
2038                                                 fHistK0EtaPtET->Fill(part->Pt(),part->Eta(),et);                                                        
2039                                                 fHistK0EtaET->Fill(et,part->Eta());                                                     
2040                                                 fHistK0EtaE->Fill(part->Energy(),part->Eta());
2041                                                 fHistK0EtaPt->Fill(part->Pt(),part->Eta());             
2042                                                 fK0totET += et;
2043                                         }
2044                                         
2045                                         if (pdgMom->PdgCode() == fgLambdaCode || pdgMom->PdgCode() == fgAntiLambdaCode)
2046                                         {
2047                                                 fHistLambdaEtaEET->Fill(part->Energy(),part->Eta(),et);
2048                                                 fHistLambdaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                    
2049                                                 fHistLambdaEtaET->Fill(et,part->Eta());                                                 
2050                                                 fHistLambdaEtaE->Fill(part->Energy(),part->Eta());
2051                                                 fHistLambdaEtaPt->Fill(part->Pt(),part->Eta());         
2052                                                 fLambdatotET += et;
2053                                         }
2054                                 }
2055                                                                 
2056                                 if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) // exclude secondaries from interactions inside the EMCal
2057                                 {
2058                                         if (pdg->PdgCode() == fgEPlusCode || pdg->PdgCode() == fgEMinusCode)
2059                                         {
2060                                                 fHistNPPElectronEtaEET->Fill(part->Energy(),part->Eta(),et);
2061                                                 fHistNPPElectronEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
2062                                                 fHistNPPElectronEtaET->Fill(et,part->Eta());
2063                                                 fHistNPPElectronEtaE->Fill(part->Energy(),part->Eta());
2064                                                 fHistNPPElectronEtaPt->Fill(part->Pt(),part->Eta());    
2065                                                 fNPPElectrontotET += et;
2066                                                 
2067                                                 // inside EMCal acceptance
2068                                                 //if (IsInAcceptance(part,pdg,extParam)) 
2069                                                 if (IsInAcceptance(aliPart)) 
2070                                                 {
2071                                                         fHistNPPElectronAccEtaEET->Fill(part->Energy(),part->Eta(),et);
2072                                                         fHistNPPElectronAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                    
2073                                                         fHistNPPElectronAccEtaE->Fill(part->Energy(),part->Eta());
2074                                                         fHistNPPElectronAccEtaPt->Fill(part->Pt(),part->Eta());                                                 
2075                                                 }                                                       
2076                                                 
2077                                                 // few checks
2078                                                 fHistNPPElectronFirstMother->Fill(pdgMom->PdgCode());
2079                                                 fHistNPPElectronFirstMotherXY->Fill(part->Vx(),part->Vy());                                     
2080                                                 fHistNPPElectronNDaughters->Fill(nPartDaughters);
2081                                                 
2082                                                 iPartDaughter = part->GetLastDaughter();
2083                                                 if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
2084                                                 {
2085                                                         partDaughter = stack->Particle(iPartDaughter);
2086                                                         if (partDaughter)
2087                                                         {
2088                                                                 pdgDaugther = partDaughter->GetPDG(0);
2089                                                                 if (pdgDaugther) {
2090                                                                         fHistNPPElectronDaughters->Fill(pdgDaugther->PdgCode());        
2091                                                                         fHistNPPElectronDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
2092                                                                 }
2093                                                         }
2094                                                 }
2095                                                 
2096                                                 // inside EMCal acceptance
2097                                                 //if (IsInAcceptance(part,pdg,extParam)) 
2098                                                 if (IsInAcceptance(aliPart)) 
2099                                                 {
2100                                                         fHistNPPElectronFirstMotherAcc->Fill(pdgMom->PdgCode());
2101                                                         fHistNPPElectronFirstMotherXYAcc->Fill(part->Vx(),part->Vy());                                  
2102                                                         fHistNPPElectronNDaughtersAcc->Fill(nPartDaughters);
2103                                                 
2104                                                                 iPartDaughter = part->GetLastDaughter();
2105                                                                 if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
2106                                                                 {
2107                                                                         partDaughter = stack->Particle(iPartDaughter);
2108                                                                         if (partDaughter)
2109                                                                         {
2110                                                                                 pdgDaugther = partDaughter->GetPDG(0);
2111                                                                                 if (pdgDaugther) {
2112                                                                                         fHistNPPElectronDaughtersAcc->Fill(pdgDaugther->PdgCode());     
2113                                                                                         fHistNPPElectronDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
2114                                                                                 }
2115                                                                         }
2116                                                                 }
2117                                                 }                                               
2118                                                 
2119                                         } // end of if electron
2120                                         
2121                                         if(pdg->PdgCode() == fgGammaCode)
2122                                         {
2123                                                 fHistNPPGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
2124                                                 fHistNPPGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                  
2125                                                 fHistNPPGammaEtaET->Fill(et,part->Eta());
2126                                                 fHistNPPGammaEtaE->Fill(part->Energy(),part->Eta());
2127                                                 fHistNPPGammaEtaPt->Fill(part->Pt(),part->Eta());                       
2128                                                 fNPPGammatotET += et;
2129                                                 
2130                                                 if (pdgMom)
2131                                                 {       
2132                                                         if (pdgMom->PdgCode() == fgPi0Code)
2133                                                         {
2134                                                                 fHistNPPPi0GammaEtaEET->Fill(part->Energy(),part->Eta(),et);
2135                                                                 fHistNPPPi0GammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
2136                                                                 fHistNPPPi0GammaEtaET->Fill(et,part->Eta());
2137                                                                 fHistNPPPi0GammaEtaE->Fill(part->Energy(),part->Eta());
2138                                                                 fHistNPPPi0GammaEtaPt->Fill(part->Pt(),part->Eta());                                                                    
2139                                                                 fNPPPi0GammatotET += et;
2140                                                         }
2141                                                 }
2142                                                 
2143                                                 // inside EMCal acceptance
2144                                                 //if (IsInAcceptance(part,pdg)) 
2145                                                 if (IsInAcceptance(aliPart)) 
2146                                                 {
2147                                                         fHistNPPGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
2148                                                         fHistNPPGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
2149                                                         fHistNPPGammaAccEtaE->Fill(part->Energy(),part->Eta());
2150                                                         fHistNPPGammaAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                                                                            
2151                                                 }                                                                                       
2152                                                 
2153                                                 // few checks
2154                                                 if (pdgMom)
2155                                                         fHistNPPGammaFirstMother->Fill(pdgMom->PdgCode());
2156                                                 fHistNPPGammaFirstMotherXY->Fill(part->Vx(),part->Vy());                                        
2157                                                 fHistNPPGammaNDaughters->Fill(nPartDaughters);
2158                                                 
2159                                                 iPartDaughter = part->GetLastDaughter();
2160                                                 if ((iPartDaughter>=0)  && (iPartDaughter < nStackTracks))
2161                                                 {
2162                                                         partDaughter = stack->Particle(iPartDaughter);
2163                                                         if (partDaughter)
2164                                                         {
2165                                                                 pdgDaugther = partDaughter->GetPDG(0);
2166                                                                 if (pdgDaugther) {
2167                                                                         fHistNPPGammaDaughters->Fill(pdgDaugther->PdgCode());   
2168                                                                         fHistNPPGammaDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
2169                                                                 }
2170                                                         }
2171                                                 }       
2172                                                 
2173                                                 // inside EMCal acceptance
2174                                                 //if (IsInAcceptance(part,pdg)) 
2175                                                 if (IsInAcceptance(aliPart)) 
2176                                                 {
2177                                                         fHistNPPGammaFirstMotherAcc->Fill(pdgMom->PdgCode());
2178                                                         fHistNPPGammaFirstMotherXYAcc->Fill(part->Vx(),part->Vy());                                     
2179                                                         fHistNPPGammaNDaughtersAcc->Fill(nPartDaughters);
2180                                                 
2181                                                                 iPartDaughter = part->GetLastDaughter();
2182                                                                 if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
2183                                                                 {
2184                                                                         partDaughter = stack->Particle(iPartDaughter);
2185                                                                         if (partDaughter)
2186                                                                         {
2187                                                                                 pdgDaugther = partDaughter->GetPDG(0);
2188                                                                                 if (pdgDaugther) {
2189                                                                                         fHistNPPGammaDaughtersAcc->Fill(pdgDaugther->PdgCode());        
2190                                                                                         fHistNPPGammaDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
2191                                                                                 }
2192                                                                         }
2193                                                                 }
2194                                                 }
2195                                                 
2196                                         } // end of gamma
2197                                 }
2198                         } // end of NOT a primary
2199                 } // end of eta cut (Inside ALICE central barrel acceptance)
2200                 
2201                 if (extParam)
2202                         delete extParam;
2203                 
2204         }// end of loop over TParticles
2205     fTotEt = fTotChargedEt + fTotNeutralEt;
2206     fTotEtAcc = fTotChargedEtAcc + fTotNeutralEtAcc;   
2207         
2208         fTotElectrontotET = fElectrontotET + fConvElectrontotET + fScatElectrontotET;
2209         fTotElectronAcctotET = fElectronAcctotET + fConvElectronAcctotET + fScatElectronAcctotET;
2210         fTotGammatotET = fGammatotET + fAnnihGammatotET + fScatGammatotET;
2211         fTotGammaAcctotET = fGammaAcctotET + fAnnihGammaAcctotET + fScatGammaAcctotET;
2212         fTotEMtotET = fTotElectrontotET + fTotGammatotET;
2213         fTotEMAcctotET = fTotElectronAcctotET + fTotGammaAcctotET;
2214         fTotNPPEMtotET = fNPPElectrontotET + fNPPGammatotET;
2215         fTotChargedtotET = fMuontotET + fPiontotET + fKaontotET + fProtontotET;
2216         fTotChargedAcctotET = fMuonAcctotET + fPionAcctotET + fKaonAcctotET + fProtonAcctotET;
2217         fTotNeutraltotET = fNeutrontotET + fK0totET + fLambdatotET;
2218         fTotaltotET = fTotEMtotET + fTotNPPEMtotET + fTotChargedtotET + fTotNeutraltotET;
2219         fTotalAcctotET = fTotEMAcctotET + fTotChargedAcctotET;
2220         
2221     //FillHistograms();
2222         
2223         fHistPrimtotET->Fill(fPrimtotET);
2224         fHistPrimAcctotET->Fill(fPrimAcctotET);
2225         
2226         fHistElectrontotET->Fill(fElectrontotET);
2227         fHistElectronAcctotET->Fill(fElectronAcctotET);
2228         fHistConvElectrontotET->Fill(fConvElectrontotET);
2229         fHistConvElectronAcctotET->Fill(fConvElectronAcctotET);
2230         fHistScatElectrontotET->Fill(fScatElectrontotET);
2231         fHistScatElectronAcctotET->Fill(fScatElectronAcctotET);
2232         
2233         fHistTotElectrontotET->Fill(fTotElectrontotET);
2234         fHistTotElectronAcctotET->Fill(fTotElectronAcctotET);
2235         
2236         fHistGammatotET->Fill(fGammatotET);
2237         fHistGammaAcctotET->Fill(fGammaAcctotET);
2238         fHistAnnihGammatotET->Fill(fAnnihGammatotET);
2239         fHistAnnihGammaAcctotET->Fill(fAnnihGammaAcctotET);
2240         fHistScatGammatotET->Fill(fScatGammatotET);
2241         fHistScatGammaAcctotET->Fill(fScatGammaAcctotET);
2242         
2243         fHistTotGammatotET->Fill(fTotGammatotET);
2244         fHistTotGammaAcctotET->Fill(fTotGammaAcctotET);
2245         
2246         fHistTotEMtotET->Fill(fTotEMtotET);
2247         fHistTotEMAcctotET->Fill(fTotEMAcctotET);
2248         
2249         fHistConvGammatotET->Fill(fConvGammatotET);
2250         fHistNonConvGammatotET->Fill(fNonConvGammatotET);
2251         fHistConvGammaAcctotET->Fill(fConvGammaAcctotET);
2252         fHistNonConvGammaAcctotET->Fill(fNonConvGammaAcctotET);
2253
2254         fHistNPPElectrontotET->Fill(fNPPElectrontotET);
2255         fHistNPPGammatotET->Fill(fNPPGammatotET);
2256         
2257         fHistTotNPPEMtotET->Fill(fTotNPPEMtotET);
2258
2259         fHistNPPPi0GammatotET->Fill(fNPPPi0GammatotET);
2260
2261         fHistMuontotET->Fill(fMuontotET); 
2262         fHistMuonAcctotET->Fill(fMuonAcctotET); 
2263         fHistPiontotET->Fill(fPiontotET); 
2264         fHistPionAcctotET->Fill(fPionAcctotET); 
2265         fHistKaontotET->Fill(fKaontotET); 
2266         fHistKaonAcctotET->Fill(fKaonAcctotET); 
2267         fHistProtontotET->Fill(fProtontotET); 
2268         fHistProtonAcctotET->Fill(fProtonAcctotET); 
2269
2270         fHistTotChargedtotET->Fill(fTotChargedtotET);
2271         fHistTotChargedAcctotET->Fill(fTotChargedAcctotET);
2272         
2273         fHistNeutrontotET->Fill(fNeutrontotET); 
2274         fHistNeutronAcctotET->Fill(fNeutronAcctotET); 
2275         fHistK0totET->Fill(fK0totET); 
2276         fHistLambdatotET->Fill(fNeutrontotET); 
2277
2278         fHistTotNeutraltotET->Fill(fTotNeutraltotET);
2279         
2280         fHistTotaltotET->Fill(fTotaltotET);
2281         fHistTotalAcctotET->Fill(fTotalAcctotET);
2282          
2283         return 0;    
2284 }
2285
2286 Int_t AliAnalysisEmEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
2287 { // analyse MC and real event info
2288         if(!ev || !ev2){
2289                 Printf("ERROR: Event does not exist");   
2290                 return 0;
2291         }
2292         
2293         AliMCEvent *mcEvent = dynamic_cast<AliMCEvent*>(ev);
2294         AliESDEvent *realEvent = dynamic_cast<AliESDEvent*>(ev2);
2295         
2296         fGeoUt = new AliEMCALGeometry("EMCAL_FIRSTYEAR","EMCAL");
2297         fGeoUt->SetMisalMatrix(realEvent->GetEMCALMatrix(0),0);
2298
2299         ResetEventValues();
2300         AnalyseEvent(ev);
2301         
2302         AliStack *stack = mcEvent->Stack();
2303         if (!stack)
2304         {
2305                 Printf("ERROR: Could not get stack");
2306                 return 0;
2307         }       
2308         
2309     Int_t nStackTracks = stack->GetNtrack();
2310         
2311         // get all emcal clusters
2312         TRefArray* caloClusters = new TRefArray();
2313         realEvent->GetEMCALClusters( caloClusters );
2314         
2315         Int_t nCluster = caloClusters->GetEntries();
2316         
2317         Float_t pos[3] = {0};
2318         TVector3 caloPos(0,0,0);
2319         TVector3 trackPos(0,0,0);
2320         
2321         // loop the clusters
2322         for (int iCluster = 0; iCluster < nCluster; iCluster++ ) 
2323         {
2324                 AliESDCaloCluster* caloCluster = ( AliESDCaloCluster* )caloClusters->At( iCluster );
2325                 Float_t caloE = caloCluster->E();
2326                 caloCluster->GetPosition(pos);          
2327                 caloPos.SetXYZ(pos[0],pos[1],pos[2]);
2328                 
2329                 UInt_t iPart = (UInt_t)TMath::Abs(caloCluster->GetLabel());
2330                 TParticle *part  = stack->Particle(iPart);
2331                 
2332         if (!part)
2333         {
2334             Printf("No MC particle %d", iCluster);
2335             continue;
2336         }
2337                 
2338                 TParticlePDG *pdg = part->GetPDG(0);
2339                 
2340                 TParticle *partMom = 0;
2341                 TParticlePDG *pdgMom = 0;
2342                 
2343                 Int_t nPartDaughters = part->GetNDaughters();
2344                 TParticle *partDaughter = 0;
2345                 TParticlePDG *pdgDaugther = 0;          
2346                 
2347                 if (!pdg)
2348         {
2349             Printf("ERROR-2: Could not get particle PDG %d", iPart);
2350             continue;
2351         }               
2352                 
2353                 Int_t iPartMom = part->GetMother(0);
2354                 Int_t iPartDaughter = 0;
2355                 
2356                 if ((iPartMom>=0) && (iPartMom < nStackTracks))
2357                 {
2358                         partMom = stack->Particle(iPartMom);
2359                         pdgMom = partMom->GetPDG(0);
2360                 }                       
2361                 
2362                 // find the track associated to this MC particle
2363                 TObjArray* list = fEsdtrackCutsITSTPC->GetAcceptedTracks(realEvent);
2364                 Int_t nGoodTracks = list->GetEntries();
2365                 Bool_t trackFound = kFALSE;
2366                 Bool_t trackProjected = kFALSE;
2367                 Float_t res = 0;
2368                 AliESDtrack *track = 0;
2369                 AliEMCALTrack *emcTrack = 0;
2370                 AliExternalTrackParam* extParamTPart = 0;
2371                 AliESDtrack *esdTPart = 0;
2372                 AliEMCALTrack *emcTPart = 0;
2373                         
2374                 // find corresponding track
2375                 for (Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++)
2376                 {
2377                         track = dynamic_cast<AliESDtrack*> (list->At(iTrack));
2378                         if (!track)
2379                         {
2380                                 Printf("ERROR: Could not get track %d", iTrack);
2381                                 continue;
2382                         }
2383                         else
2384                         {
2385                                 UInt_t label = (UInt_t)TMath::Abs(track->GetLabel());
2386                                 if (label == iPart)
2387                                 {
2388                                         trackFound = kTRUE;
2389                                         emcTrack = new AliEMCALTrack(*track);
2390                                         fHistAllPtRecPtMC->Fill(part->Pt(),track->Pt());
2391                                         
2392                                         if (GetTrackProjection(emcTrack,trackPos,caloPos)) 
2393                                         {
2394                                                 trackProjected = kTRUE;
2395                                                 res = sqrt(pow(trackPos.Phi()-caloPos.Phi(),2)+pow(trackPos.Eta()-caloPos.Eta(),2));
2396                                         }
2397                                         else
2398                                                 res = -1.;
2399                                         
2400                                         break;                                  
2401                                 }
2402                         }
2403                 }                       
2404
2405                 if (!trackFound)
2406                 {
2407                         track = 0;
2408                         emcTrack = 0;
2409                         res = -2.;
2410                 }
2411                         
2412                 //create an external track param for projection
2413                 extParamTPart = CreateExternalTrackParam(part);
2414                 
2415                 // create esd and emcal tracks out of TParticle (used for projection)
2416                 esdTPart = new AliESDtrack(part);
2417                 
2418                 if (esdTPart && extParamTPart) 
2419                 {
2420                         esdTPart->SetOuterParam(extParamTPart,0);
2421                         emcTPart = new AliEMCALTrack(*esdTPart);
2422                 }
2423                 
2424                 // few checks
2425                 // compare MC and Rec energies for all particles
2426                 fHistAllERecEMC->Fill(part->Energy(),caloE);
2427                 
2428                 if (TMath::Abs( pdg->Charge() - fCuts->GetMonteCarloNeutralParticle()) > 1e-3)
2429                 {
2430                         //Printf("calo.Phi = %f, calo.Eta = %f \n", caloPos.Phi(), caloPos.Eta());
2431                         
2432                         if (trackProjected)
2433                         {
2434                                 //Printf("good track.Phi = %f, track.Eta = %f  \n", trackPos.Phi(), trackPos.Eta());
2435                                 fHistChargedRes->Fill(trackPos.Phi()-caloPos.Phi(),trackPos.Eta()-caloPos.Eta());
2436                         }
2437                         
2438                         if (GetTrackProjection(emcTPart,trackPos,caloPos)) 
2439                         {
2440                                 fHistChargedRes2->Fill(trackPos.Phi()-caloPos.Phi(),trackPos.Eta()-caloPos.Eta());
2441                                 //Printf("track.Phi = %f, track.Eta = %f  \n", trackPos.Phi(), trackPos.Eta());
2442                         }
2443                         
2444                         if (GetTrackProjection(extParamTPart,trackPos)) 
2445                         {
2446                                 fHistChargedRes3->Fill(trackPos.Phi()-caloPos.Phi(),trackPos.Eta()-caloPos.Eta());
2447                                 //Printf("track.Phi = %f, track.Eta = %f  \n", trackPos.Phi(), trackPos.Eta());
2448                         }
2449                         
2450                 } 
2451                 else if (TMath::Abs(pdg->Charge() - fCuts->GetMonteCarloNeutralParticle()) < 1e-3 )
2452                 {
2453                         fHistNeutralRes->Fill(part->Phi()-caloPos.Phi(),part->Eta()-caloPos.Eta());                     
2454                 }
2455                 
2456                 if(pdg->PdgCode() == fgGammaCode)
2457                 {
2458                         // compare MC and Rec energies for gammas
2459                         fHistGammaERecEMC->Fill(part->Energy(),caloE);          
2460                         fHistGammaRes->Fill(part->Phi()-caloPos.Phi(),part->Eta()-caloPos.Eta());
2461                 }                       
2462                 
2463                 if (pdg->PdgCode() == fgEPlusCode || pdg->PdgCode() == fgEMinusCode)
2464                 {
2465                         // compare MC and Rec energies for electrons
2466                         fHistElectronERecEMC->Fill(part->Energy(),caloE);
2467                         if (GetTrackProjection(extParamTPart,trackPos))
2468                         { 
2469                                 fHistElectronRes->Fill(trackPos.Phi()-caloPos.Phi(),trackPos.Eta()-caloPos.Eta());
2470                         }                       
2471                 }
2472                 
2473                 // calculate ET
2474                 Double_t et = CalcET(part,pdg);
2475                 Double_t etDep = CalcETDep(caloE,part,pdg);
2476                 
2477         // Check if it is a primary particle
2478                 if (IsPrimary(stack,iPart,pdg,iPartMom,pdgMom))
2479                 {                               
2480                         if (TMath::Abs(TMath::Abs(pdg->Charge()) - fCuts->GetMonteCarloSingleChargedParticle())<1e-3 && TMath::Abs(TMath::Abs(pdg->Charge()) - fCuts->GetMonteCarloNeutralParticle())<1e-3) continue;
2481                                 
2482                         if (stack->IsPhysicalPrimary(iPart))
2483                         {
2484                                 fHistPrimRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2485                                 fHistPrimRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2486                                 fHistPrimRecEtaET->Fill(et,part->Eta());
2487                                 fPrimRectotET += et;
2488
2489                                 fHistPrimRecEtaEDepETDep->Fill(part->Energy(),part->Eta(),etDep);
2490                                 fHistPrimRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                     
2491                                 fHistPrimRecEtaETDep->Fill(etDep,part->Eta());
2492                                 fPrimRectotETDep += etDep;
2493                         }
2494                                                 
2495                         if(pdg->PdgCode() == fgGammaCode)
2496                         {                       
2497                                 if (stack->IsPhysicalPrimary(iPart))
2498                                 {
2499                                         fHistGammaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2500                                         fHistGammaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                  
2501                                         fHistGammaRecEtaET->Fill(et,part->Eta());
2502                                         fHistGammaRecEtaE->Fill(part->Energy(),part->Eta());
2503                                         fHistGammaRecEtaPt->Fill(part->Pt(),part->Eta());       
2504                                         fGammaRectotET += et;
2505                                 }
2506                                 else if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) 
2507                                 {
2508                                         if (IsMotherPrimaryElectron(stack,iPartMom,pdgMom))
2509                                         {
2510                                                 fHistAnnihGammaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2511                                                 fHistAnnihGammaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                     
2512                                                 fHistAnnihGammaRecEtaET->Fill(et,part->Eta());
2513                                                 fHistAnnihGammaRecEtaE->Fill(part->Energy(),part->Eta());
2514                                                 fHistAnnihGammaRecEtaPt->Fill(part->Pt(),part->Eta());          
2515                                                 fAnnihGammaRectotET += et;
2516                                         }                                       
2517                                         else if (IsMotherPrimaryGamma(stack,iPartMom,pdgMom))
2518                                         {
2519                                                 fHistScatGammaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2520                                                 fHistScatGammaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
2521                                                 fHistScatGammaRecEtaET->Fill(et,part->Eta());
2522                                                 fHistScatGammaRecEtaE->Fill(part->Energy(),part->Eta());
2523                                                 fHistScatGammaRecEtaPt->Fill(part->Pt(),part->Eta());           
2524                                                 fScatGammaRectotET += et;
2525                                         }                                       
2526                                 }
2527                                 
2528                                 // few checks
2529                                 if (pdgMom)
2530                                         fHistGammaFirstMotherRec->Fill(pdgMom->PdgCode());
2531                                 fHistGammaFirstMotherXYRec->Fill(part->Vx(),part->Vy());                                        
2532                                 fHistGammaNDaughtersRec->Fill(nPartDaughters);
2533                                 
2534                                 iPartDaughter = part->GetLastDaughter();
2535                                 if ((iPartDaughter>=0)  && (iPartDaughter < nStackTracks))
2536                                 {
2537                                         partDaughter = stack->Particle(iPartDaughter);
2538                                         if (partDaughter)
2539                                         {
2540                                                 pdgDaugther = partDaughter->GetPDG(0);
2541                                                 if (pdgDaugther) {
2542                                                         fHistGammaDaughtersRec->Fill(pdgDaugther->PdgCode());   
2543                                                         fHistGammaDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2544                                                         
2545                                                         if (stack->IsPhysicalPrimary(iPart))
2546                                                         {
2547                                                                 if (IsGammaConversion(stack, part, pdg))
2548                                                                 {                                                                               
2549                                                                         fHistConvGammaDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2550                                                                 }
2551                                                                 else
2552                                                                 {
2553                                                                         fHistNonConvGammaDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2554                                                                 }
2555                                                         }                                                       
2556                                                 }
2557                                         }
2558                                 }
2559                         } // gamma
2560                         
2561                         if (pdg->PdgCode() == fgEPlusCode || pdg->PdgCode() == fgEMinusCode)
2562                         {
2563                                 if (stack->IsPhysicalPrimary(iPart))
2564                                 {
2565                                         fHistElectronRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2566                                         fHistElectronRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
2567                                         fHistElectronRecEtaET->Fill(et,part->Eta());
2568                                         fHistElectronRecEtaE->Fill(part->Energy(),part->Eta());
2569                                         fHistElectronRecEtaPt->Fill(part->Pt(),part->Eta());    
2570                                         fElectronRectotET += et;
2571                                 }
2572                                 else if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) 
2573                                 {
2574                                         if (IsMotherPrimaryGamma(stack,iPartMom,pdgMom))
2575                                         {
2576                                                 fHistConvElectronRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2577                                                 fHistConvElectronRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2578                                                 fHistConvElectronRecEtaET->Fill(et,part->Eta());
2579                                                 fHistConvElectronRecEtaE->Fill(part->Energy(),part->Eta());
2580                                                 fHistConvElectronRecEtaPt->Fill(part->Pt(),part->Eta());                                                        
2581                                                 fConvElectronRectotET += et;
2582                                         }               
2583                                         else if (IsMotherPrimaryElectron(stack,iPartMom,pdgMom))
2584                                         {
2585                                                 fHistScatElectronRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2586                                                 fHistScatElectronRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2587                                                 fHistScatElectronRecEtaET->Fill(et,part->Eta());
2588                                                 fHistScatElectronRecEtaE->Fill(part->Energy(),part->Eta());
2589                                                 fHistScatElectronRecEtaPt->Fill(part->Pt(),part->Eta());                                                        
2590                                                 fScatElectronRectotET += et;
2591                                         }               
2592                                 }
2593                                 
2594                                 // few checks
2595                                 if (pdgMom)
2596                                         fHistElectronFirstMotherRec->Fill(pdgMom->PdgCode());
2597                                 fHistElectronFirstMotherXYRec->Fill(part->Vx(),part->Vy());                                     
2598                                 fHistElectronNDaughtersRec->Fill(nPartDaughters);
2599                                 
2600                                 iPartDaughter = part->GetLastDaughter();
2601                                 if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
2602                                 {
2603                                         partDaughter = stack->Particle(iPartDaughter);
2604                                         if (partDaughter)
2605                                         {
2606                                                 pdgDaugther = partDaughter->GetPDG(0);
2607                                                 if (pdgDaugther) {
2608                                                         fHistElectronDaughtersRec->Fill(pdgDaugther->PdgCode());        
2609                                                         fHistElectronDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2610                                                 }
2611                                         }
2612                                 }
2613                         } // electrons
2614                         
2615                         if (pdg->PdgCode() == fgMuPlusCode || pdg->PdgCode() == fgMuMinusCode)
2616                         {
2617                                 fHistMuonRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2618                                 fHistMuonRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2619                                 fHistMuonRecEtaET->Fill(et,part->Eta());
2620                                 fHistMuonRecEtaE->Fill(part->Energy(),part->Eta());
2621                                 fHistMuonRecEtaPt->Fill(part->Pt(),part->Eta());        
2622                                 fMuonRectotET += et;
2623                                 
2624                                 fHistMuonRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2625                                 fHistMuonRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                     
2626                                 fHistMuonRecEtaETDep->Fill(etDep,part->Eta());
2627                                 fMuonRectotETDep += etDep;
2628
2629                                 if (trackProjected)
2630                                 {
2631                                         fHistMuonRecResEET->Fill(part->Energy(),res,et);
2632                                         fHistMuonRecResPtET->Fill(part->Pt(),res,et);                                                   
2633                                         fHistMuonRecResE->Fill(part->Energy(),res);
2634                                         fHistMuonRecResPt->Fill(part->Pt(),res);        
2635                                         fHistMuonRecResEDepETDep->Fill(caloE,res,etDep);
2636                                         fHistMuonRecResPtETDep->Fill(part->Pt(),res,etDep);     
2637                                         
2638                                         if ((res>0.) && (res<fResCut))
2639                                         {
2640                                                 fHistMuonMatchEtaEET->Fill(part->Energy(),part->Eta(),et);
2641                                                 fHistMuonMatchEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
2642                                                 fHistMuonMatchEtaET->Fill(et,part->Eta());
2643                                                 fHistMuonMatchEtaE->Fill(part->Energy(),part->Eta());
2644                                                 fHistMuonMatchEtaPt->Fill(part->Pt(),part->Eta());      
2645                                                 fMuonMatchtotET += et;
2646                                                 
2647                                                 fHistMuonMatchEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2648                                                 fHistMuonMatchEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                   
2649                                                 fHistMuonMatchEtaETDep->Fill(etDep,part->Eta());
2650                                                 fMuonMatchtotETDep += etDep;                                            
2651                                         }
2652                                 }
2653                         }
2654                         
2655                         if (pdg->PdgCode() == fgPiPlusCode || pdg->PdgCode() == fgPiMinusCode)
2656                         {
2657                                 fHistPionRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2658                                 fHistPionRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2659                                 fHistPionRecEtaET->Fill(et,part->Eta());
2660                                 fHistPionRecEtaE->Fill(part->Energy(),part->Eta());
2661                                 fHistPionRecEtaPt->Fill(part->Pt(),part->Eta());        
2662                                 fPionRectotET += et;
2663
2664                                 fHistPionRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2665                                 fHistPionRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                     
2666                                 fHistPionRecEtaETDep->Fill(etDep,part->Eta());
2667                                 fPionRectotETDep += etDep;
2668
2669                                 if (trackProjected)
2670                                 {
2671                                         fHistPionRecResEET->Fill(part->Energy(),res,et);
2672                                         fHistPionRecResPtET->Fill(part->Pt(),res,et);                                                   
2673                                         fHistPionRecResE->Fill(part->Energy(),res);
2674                                         fHistPionRecResPt->Fill(part->Pt(),res);        
2675                                         fHistPionRecResEDepETDep->Fill(caloE,res,etDep);
2676                                         fHistPionRecResPtETDep->Fill(part->Pt(),res,etDep);                                                     
2677
2678                                         if ((res>0.) && (res<fResCut))
2679                                         {
2680                                                 fHistPionMatchEtaEET->Fill(part->Energy(),part->Eta(),et);
2681                                                 fHistPionMatchEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
2682                                                 fHistPionMatchEtaET->Fill(et,part->Eta());
2683                                                 fHistPionMatchEtaE->Fill(part->Energy(),part->Eta());
2684                                                 fHistPionMatchEtaPt->Fill(part->Pt(),part->Eta());      
2685                                                 fPionMatchtotET += et;
2686                                                 
2687                                                 fHistPionMatchEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2688                                                 fHistPionMatchEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                   
2689                                                 fHistPionMatchEtaETDep->Fill(etDep,part->Eta());
2690                                                 fPionMatchtotETDep += etDep;
2691                                         }
2692                                 }
2693                         }                       
2694                         
2695                         if (pdg->PdgCode() == fgKPlusCode || pdg->PdgCode() == fgKMinusCode)
2696                         {
2697                                 fHistKaonRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2698                                 fHistKaonRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2699                                 fHistKaonRecEtaET->Fill(et,part->Eta());
2700                                 fHistKaonRecEtaE->Fill(part->Energy(),part->Eta());
2701                                 fHistKaonRecEtaPt->Fill(part->Pt(),part->Eta());        
2702                                 fKaonRectotET += et;
2703
2704                                 fHistKaonRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2705                                 fHistKaonRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                     
2706                                 fHistKaonRecEtaETDep->Fill(etDep,part->Eta());
2707                                 fKaonRectotETDep += etDep;
2708
2709                                 if (trackProjected)
2710                                 {
2711                                         fHistKaonRecResEET->Fill(part->Energy(),res,et);
2712                                         fHistKaonRecResPtET->Fill(part->Pt(),res,et);                                                   
2713                                         fHistKaonRecResE->Fill(part->Energy(),res);
2714                                         fHistKaonRecResPt->Fill(part->Pt(),res);        
2715
2716                                         fHistKaonRecResEDepETDep->Fill(caloE,res,etDep);
2717                                         fHistKaonRecResPtETDep->Fill(part->Pt(),res,etDep);                                                     
2718
2719                                         if ((res>0.) && (res<fResCut))
2720                                         {
2721                                                 fHistKaonMatchEtaEET->Fill(part->Energy(),part->Eta(),et);
2722                                                 fHistKaonMatchEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
2723                                                 fHistKaonMatchEtaET->Fill(et,part->Eta());
2724                                                 fHistKaonMatchEtaE->Fill(part->Energy(),part->Eta());
2725                                                 fHistKaonMatchEtaPt->Fill(part->Pt(),part->Eta());      
2726                                                 fKaonMatchtotET += et;
2727                                                 
2728                                                 fHistKaonMatchEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2729                                                 fHistKaonMatchEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                   
2730                                                 fHistKaonMatchEtaETDep->Fill(etDep,part->Eta());
2731                                                 fKaonMatchtotETDep += etDep;
2732                                         }
2733                                 }
2734                         }
2735         
2736                         if (pdg->PdgCode() == fgProtonCode || pdg->PdgCode() == fgAntiProtonCode)
2737                         {
2738                                 fHistProtonRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2739                                 fHistProtonRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
2740                                 fHistProtonRecEtaET->Fill(et,part->Eta());
2741                                 fHistProtonRecEtaE->Fill(part->Energy(),part->Eta());
2742                                 fHistProtonRecEtaPt->Fill(part->Pt(),part->Eta());      
2743                                 fProtonRectotET += et;
2744
2745                                 fHistProtonRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2746                                 fHistProtonRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                   
2747                                 fHistProtonRecEtaETDep->Fill(etDep,part->Eta());
2748                                 fProtonRectotETDep += etDep;
2749
2750                                 if (trackProjected)
2751                                 {
2752                                         fHistProtonRecResEET->Fill(part->Energy(),res,et);
2753                                         fHistProtonRecResPtET->Fill(part->Pt(),res,et);                                                 
2754                                         fHistProtonRecResE->Fill(part->Energy(),res);
2755                                         fHistProtonRecResPt->Fill(part->Pt(),res);      
2756
2757                                         fHistProtonRecResEDepETDep->Fill(caloE,res,etDep);
2758                                         fHistProtonRecResPtETDep->Fill(part->Pt(),res,etDep);                                                   
2759
2760                                         if ((res>0.) && (res<fResCut))
2761                                         {
2762                                                 fHistProtonMatchEtaEET->Fill(part->Energy(),part->Eta(),et);
2763                                                 fHistProtonMatchEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
2764                                                 fHistProtonMatchEtaET->Fill(et,part->Eta());
2765                                                 fHistProtonMatchEtaE->Fill(part->Energy(),part->Eta());
2766                                                 fHistProtonMatchEtaPt->Fill(part->Pt(),part->Eta());    
2767                                                 fProtonMatchtotET += et;
2768                                                 
2769                                                 fHistProtonMatchEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2770                                                 fHistProtonMatchEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                 
2771                                                 fHistProtonMatchEtaETDep->Fill(etDep,part->Eta());
2772                                                 fProtonMatchtotETDep += etDep;
2773                                         }
2774                                 }                               
2775                         }
2776                         
2777                         if (pdg->PdgCode() == fgNeutronCode || pdg->PdgCode() == fgAntiNeutronCode)
2778                         {
2779                                 fHistNeutronRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2780                                 fHistNeutronRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                        
2781                                 fHistNeutronRecEtaET->Fill(et,part->Eta());
2782                                 fHistNeutronRecEtaE->Fill(part->Energy(),part->Eta());
2783                                 fHistNeutronRecEtaPt->Fill(part->Pt(),part->Eta());     
2784                                 fNeutronRectotET += et;
2785
2786                                 fHistNeutronRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2787                                 fHistNeutronRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                  
2788                                 fHistNeutronRecEtaETDep->Fill(etDep,part->Eta());
2789                                 fNeutronRectotETDep += etDep;
2790                         }
2791                         
2792                         if (emcTrack)
2793                                 delete emcTrack;
2794                         if (esdTPart)
2795                                 delete esdTPart;
2796                         if (emcTPart)
2797                                 delete emcTPart;
2798                         if (extParamTPart)
2799                                 delete extParamTPart;
2800                 } // end of primary tracks
2801                 else // not a primary
2802                 {
2803                         if (pdgMom)
2804                         {
2805                                 if (pdgMom->PdgCode() == fgK0SCode)
2806                                 {
2807                                         fHistK0RecEtaEET->Fill(part->Energy(),part->Eta(),et);
2808                                         fHistK0RecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                     
2809                                         fHistK0RecEtaET->Fill(et,part->Eta());
2810                                         fHistK0RecEtaE->Fill(part->Energy(),part->Eta());
2811                                         fHistK0RecEtaPt->Fill(part->Pt(),part->Eta());  
2812                                         fK0RectotET += et;
2813                                         
2814                                         fHistK0RecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2815                                         fHistK0RecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                       
2816                                         fHistK0RecEtaETDep->Fill(etDep,part->Eta());                                    
2817                                         fK0RectotETDep += etDep;                                        
2818                                 }
2819                                 
2820                                 if (pdgMom->PdgCode() == fgLambdaCode || pdgMom->PdgCode() == fgAntiLambdaCode)
2821                                 {
2822                                         fHistLambdaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2823                                         fHistLambdaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
2824                                         fHistLambdaRecEtaET->Fill(et,part->Eta());
2825                                         fHistLambdaRecEtaE->Fill(part->Energy(),part->Eta());
2826                                         fHistLambdaRecEtaPt->Fill(part->Pt(),part->Eta());      
2827                                         fLambdaRectotET += et;
2828
2829                                         fHistLambdaRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2830                                         fHistLambdaRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                   
2831                                         fHistLambdaRecEtaETDep->Fill(etDep,part->Eta());                                        
2832                                         fLambdaRectotETDep += etDep;
2833                                 }
2834                         }
2835                         
2836                         if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) // exclude secondaries from interactions inside the EMCal
2837                         {
2838                                 if (pdg->PdgCode() == fgEPlusCode || pdg->PdgCode() == fgEMinusCode)
2839                                 {
2840                                         fHistNPPElectronRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2841                                         fHistNPPElectronRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                    
2842                                         fHistNPPElectronRecEtaET->Fill(et,part->Eta());
2843                                         fHistNPPElectronRecEtaE->Fill(part->Energy(),part->Eta());
2844                                         fHistNPPElectronRecEtaPt->Fill(part->Pt(),part->Eta()); 
2845                                         fNPPElectronRectotET += et;
2846                                         
2847                                         // few checks
2848                                         fHistNPPElectronFirstMotherRec->Fill(pdgMom->PdgCode());
2849                                         fHistNPPElectronFirstMotherXYRec->Fill(part->Vx(),part->Vy());                                  
2850                                         fHistNPPElectronNDaughtersRec->Fill(nPartDaughters);
2851                                         
2852                                         iPartDaughter = part->GetLastDaughter();
2853                                         if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
2854                                         {
2855                                                 partDaughter = stack->Particle(iPartDaughter);
2856                                                 if (partDaughter)
2857                                                 {
2858                                                         pdgDaugther = partDaughter->GetPDG(0);
2859                                                         if (pdgDaugther) {
2860                                                                 fHistNPPElectronDaughtersRec->Fill(pdgDaugther->PdgCode());     
2861                                                                 fHistNPPElectronDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2862                                                         }
2863                                                 }
2864                                         }
2865                                 } // end of if electron
2866                                 
2867                                 if(pdg->PdgCode() == fgGammaCode)
2868                                 {
2869                                         fHistNPPGammaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2870                                         fHistNPPGammaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
2871                                         fHistNPPGammaRecEtaET->Fill(et,part->Eta());
2872                                         fHistNPPGammaRecEtaE->Fill(part->Energy(),part->Eta());
2873                                         fHistNPPGammaRecEtaPt->Fill(part->Pt(),part->Eta());                    
2874                                         fNPPGammaRectotET += et;
2875                                         
2876                                         if (pdgMom)
2877                                         {       
2878                                                 if (pdgMom->PdgCode() == fgPi0Code)
2879                                                 {
2880                                                         fHistNPPPi0GammaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2881                                                         fHistNPPPi0GammaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                    
2882                                                         fHistNPPPi0GammaRecEtaET->Fill(et,part->Eta());
2883                                                         fHistNPPPi0GammaRecEtaE->Fill(part->Energy(),part->Eta());
2884                                                         fHistNPPPi0GammaRecEtaPt->Fill(part->Pt(),part->Eta());                                                                 
2885                                                         fNPPPi0GammaRectotET += et;
2886                                                 }
2887                                         }
2888                                         
2889                                         // few checks
2890                                         if (pdgMom)
2891                                                 fHistNPPGammaFirstMotherRec->Fill(pdgMom->PdgCode());
2892                                         fHistNPPGammaFirstMotherXYRec->Fill(part->Vx(),part->Vy());                                     
2893                                         fHistNPPGammaNDaughtersRec->Fill(nPartDaughters);
2894                                         
2895                                         iPartDaughter = part->GetLastDaughter();
2896                                         if ((iPartDaughter>=0)  && (iPartDaughter < nStackTracks))
2897                                         {
2898                                                 partDaughter = stack->Particle(iPartDaughter);
2899                                                 if (partDaughter)
2900                                                 {
2901                                                         pdgDaugther = partDaughter->GetPDG(0);
2902                                                         if (pdgDaugther) {
2903                                                                 fHistNPPGammaDaughtersRec->Fill(pdgDaugther->PdgCode());        
2904                                                                 fHistNPPGammaDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2905                                                         }
2906                                                 }
2907                                         }       
2908                                 } // end of gamma
2909                         }
2910                 } // end of NOT a primary
2911         } // end of loop over clusters  
2912
2913         fTotElectronRectotET = fElectronRectotET + fConvElectronRectotET + fScatElectronRectotET;
2914         fTotGammaRectotET = fGammaRectotET + fAnnihGammaRectotET + fScatElectronRectotET;
2915         fTotEMRectotET = fTotElectronRectotET + fTotGammaRectotET;
2916         fTotNPPEMRectotET = fNPPElectronRectotET + fNPPGammaRectotET;
2917         fTotChargedRectotET = fMuonRectotET + fPionRectotET + fKaonRectotET + fProtonRectotET;
2918         fTotChargedRectotETDep = fMuonRectotETDep + fPionRectotETDep + fKaonRectotETDep + fProtonRectotETDep;
2919         fTotChargedMatchtotET = fMuonMatchtotET + fPionMatchtotET + fKaonMatchtotET + fProtonMatchtotET;
2920         fTotChargedMatchtotETDep = fMuonMatchtotETDep + fPionMatchtotETDep + fKaonMatchtotETDep + fProtonMatchtotETDep;
2921         fTotNeutralRectotET = fNeutronRectotET + fK0RectotET + fLambdaRectotET;
2922         fTotNeutralRectotETDep = fNeutronRectotETDep + fK0RectotETDep + fLambdaRectotETDep;
2923         fTotalRectotET = fTotEMRectotET + fTotNPPEMRectotET + fTotChargedRectotET + fTotNeutralRectotET;
2924         fTotalRectotETDep = fTotEMRectotET + fTotNPPEMRectotET + fTotChargedRectotETDep + fTotNeutralRectotETDep;
2925         
2926         fHistPrimRectotET->Fill(fPrimRectotET);
2927         fHistPrimRectotETDep->Fill(fPrimRectotETDep);
2928
2929         fHistElectronRectotET->Fill(fElectronRectotET);
2930         fHistConvElectronRectotET->Fill(fConvElectronRectotET);
2931         fHistScatElectronRectotET->Fill(fScatElectronRectotET);
2932         fHistTotElectronRectotET->Fill(fTotElectronRectotET);
2933         
2934         fHistGammaRectotET->Fill(fGammaRectotET);
2935         fHistAnnihGammaRectotET->Fill(fAnnihGammaRectotET);
2936         fHistScatGammaRectotET->Fill(fScatGammaRectotET);
2937         fHistTotGammaRectotET->Fill(fTotGammaRectotET);
2938         
2939         fHistTotEMRectotET->Fill(fTotEMRectotET);
2940         
2941         fHistNPPElectronRectotET->Fill(fNPPElectronRectotET);
2942         fHistNPPGammaRectotET->Fill(fNPPGammaRectotET);
2943         fHistTotNPPEMRectotET->Fill(fTotNPPEMRectotET);
2944         
2945         fHistNPPPi0GammaRectotET->Fill(fNPPPi0GammaRectotET);
2946
2947         fHistMuonRectotET->Fill(fMuonRectotET); 
2948         fHistMuonRectotETDep->Fill(fMuonRectotETDep); 
2949         fHistMuonMatchtotET->Fill(fMuonMatchtotET); 
2950         fHistMuonMatchtotETDep->Fill(fMuonMatchtotETDep); 
2951         fHistPionRectotET->Fill(fPionRectotET); 
2952         fHistPionRectotETDep->Fill(fPionRectotETDep); 
2953         fHistPionMatchtotET->Fill(fPionMatchtotET); 
2954         fHistPionMatchtotETDep->Fill(fPionMatchtotETDep); 
2955         fHistKaonRectotET->Fill(fKaonRectotET); 
2956         fHistKaonRectotETDep->Fill(fKaonRectotETDep); 
2957         fHistKaonMatchtotET->Fill(fKaonMatchtotET); 
2958         fHistKaonMatchtotETDep->Fill(fKaonMatchtotETDep); 
2959         fHistProtonRectotET->Fill(fProtonRectotET); 
2960         fHistProtonRectotETDep->Fill(fProtonRectotETDep); 
2961         fHistProtonMatchtotET->Fill(fProtonMatchtotET); 
2962         fHistProtonMatchtotETDep->Fill(fProtonMatchtotETDep); 
2963         fHistTotChargedRectotET->Fill(fTotChargedRectotET);
2964         fHistTotChargedRectotETDep->Fill(fTotChargedRectotETDep);
2965         fHistTotChargedMatchtotET->Fill(fTotChargedMatchtotET);
2966         fHistTotChargedMatchtotETDep->Fill(fTotChargedMatchtotETDep);
2967         
2968         fHistNeutronRectotET->Fill(fNeutronRectotET);
2969         fHistNeutronRectotETDep->Fill(fNeutronRectotETDep);
2970         fHistK0RectotET->Fill(fK0RectotET);
2971         fHistK0RectotETDep->Fill(fK0RectotETDep);
2972         fHistLambdaRectotET->Fill(fLambdaRectotET);
2973         fHistLambdaRectotETDep->Fill(fLambdaRectotETDep);
2974         fHistTotNeutralRectotET->Fill(fTotNeutralRectotET);
2975         fHistTotNeutralRectotETDep->Fill(fTotNeutralRectotETDep);
2976         
2977         fHistTotalRectotET->Fill(fTotalRectotET);
2978         fHistTotalRectotETDep->Fill(fTotalRectotETDep);
2979         
2980         delete fGeoUt;
2981         delete caloClusters;
2982         
2983         return 0;    
2984 }       
2985
2986 void AliAnalysisEmEtMonteCarlo::Init()
2987 { // init
2988     AliAnalysisEt::Init();
2989         
2990         fDetectorRadius = fCuts->GetGeometryEmcalDetectorRadius();
2991         fEtaCutAcc = fCuts->GetGeometryEmcalEtaAccCut();
2992         fPhiCutAccMax = fCuts->GetGeometryEmcalPhiAccMaxCut() * TMath::Pi()/180.;
2993         fPhiCutAccMin = fCuts->GetGeometryEmcalPhiAccMinCut() * TMath::Pi()/180.;
2994         fClusterEnergyCut = fCuts->GetReconstructedEmcalClusterEnergyCut();
2995         fSingleCellEnergyCut = fCuts->GetReconstructedEmcalSingleCellEnergyCut();
2996         
2997         fDetector = fCuts->GetDetectorEmcal();  
2998 }
2999
3000 void AliAnalysisEmEtMonteCarlo::ResetEventValues()
3001 { // reset event values
3002         AliAnalysisEt::ResetEventValues();
3003         
3004         fPrimtotET = 0; fPrimAcctotET = 0; fPrimRectotET = 0; fPrimRectotETDep = 0;
3005
3006         fElectrontotET = 0; fElectronAcctotET = 0; fElectronRectotET = 0;
3007         fConvElectrontotET = 0; fConvElectronAcctotET = 0; fConvElectronRectotET = 0; fScatElectrontotET = 0; fScatElectronAcctotET = 0; fScatElectronRectotET = 0;
3008         fTotElectrontotET = 0, fTotElectronAcctotET = 0, fTotElectronRectotET = 0;
3009         
3010         fGammatotET = 0; fGammaAcctotET = 0; fGammaRectotET = 0;
3011         fAnnihGammatotET = 0; fAnnihGammaAcctotET = 0; fAnnihGammaRectotET = 0; fScatGammatotET = 0; fScatGammaAcctotET = 0; fScatGammaRectotET = 0;
3012         fTotGammatotET = 0, fTotGammaAcctotET = 0, fTotGammaRectotET = 0;
3013
3014         fTotEMtotET = 0, fTotEMAcctotET = 0, fTotEMRectotET = 0;
3015
3016         fConvGammatotET = 0; fNonConvGammatotET = 0; fConvGammaAcctotET = 0; fNonConvGammaAcctotET = 0; fNPPPi0GammatotET = 0; fNPPPi0GammaRectotET = 0;
3017         
3018         fNPPElectrontotET = 0; fNPPElectronRectotET = 0; fNPPGammatotET = 0; fNPPGammaRectotET = 0;
3019         fTotNPPEMtotET = 0, fTotNPPEMRectotET = 0;
3020
3021         fMuontotET = 0; fPiontotET = 0; fKaontotET = 0; fProtontotET = 0;
3022         fMuonAcctotET = 0; fPionAcctotET = 0; fKaonAcctotET = 0; fProtonAcctotET = 0;
3023         fMuonRectotET = 0; fMuonRectotETDep = 0; fPionRectotET = 0; fPionRectotETDep = 0; fKaonRectotET = 0; fKaonRectotETDep = 0; fProtonRectotET = 0; fProtonRectotETDep = 0;
3024         fMuonMatchtotET = 0; fMuonMatchtotETDep = 0; fPionMatchtotET = 0; fPionMatchtotETDep = 0; fKaonMatchtotET = 0; fKaonMatchtotETDep = 0; fProtonMatchtotET = 0; fProtonMatchtotETDep = 0;
3025         fTotChargedtotET = 0, fTotChargedAcctotET = 0, fTotChargedRectotET = 0, fTotChargedRectotETDep = 0, fTotChargedMatchtotET = 0, fTotChargedMatchtotETDep = 0;
3026
3027         fNeutrontotET = 0; fNeutronAcctotET = 0; fNeutronRectotET = 0; fNeutronRectotETDep = 0;
3028         fK0totET = 0; fK0RectotET = 0; fK0RectotETDep = 0; fLambdatotET = 0; fLambdaRectotET = 0; fLambdaRectotETDep = 0;
3029         fTotNeutraltotET = 0, fTotNeutralRectotET = 0, fTotNeutralRectotETDep = 0;
3030         
3031         fTotaltotET = 0, fTotalAcctotET = 0, fTotalRectotET = 0, fTotalRectotETDep = 0;
3032 }
3033
3034 void AliAnalysisEmEtMonteCarlo::CreateHistograms()
3035 { // histogram related additions
3036         //AliAnalysisEt::CreateHistograms();
3037         
3038         fHistPrimEtaEET = CreateEtaEHisto2D("fHistPrimEtaEET_","MC E_{T}, primary particles","E_{T}(GeV)");
3039         fHistPrimEtaPtET = CreateEtaPtHisto2D("fHistPrimEtaPtET_","MC E_{T}, primary particles","E_{T}(GeV)");
3040         fHistPrimEtaET = CreateEtaEtHisto2D("fHistPrimEtaET_","MC primary particles","#");
3041         TString histname = "fHistPrimtotET_" + fHistogramNameSuffix;
3042         fHistPrimtotET = new TH1F(histname.Data(),"total ET, primary particles",fgNumOfEBins, fgEAxis);
3043         
3044         fHistPrimAccEtaEET = CreateEtaEHisto2D("fHistPrimAccEtaEET_","MC E_{T}, primary particles","E_{T}(GeV)");
3045         fHistPrimAccEtaPtET = CreateEtaPtHisto2D("fHistPrimAccEtaPtET_","MC E_{T}, primary particles","E_{T}(GeV)");
3046         fHistPrimAccEtaET = CreateEtaEtHisto2D("fHistPrimAccEtaET_","MC primary particles","#");
3047         histname = "fHistPrimAcctotET_" + fHistogramNameSuffix;
3048         fHistPrimAcctotET = new TH1F(histname.Data(),"total ET, primary particles",fgNumOfEBins, fgEAxis);
3049         
3050         fHistPrimRecEtaEET = CreateEtaEHisto2D("fHistPrimRecEtaEET_","MC E_{T}, primary particles","E_{T}(GeV)");
3051         fHistPrimRecEtaPtET = CreateEtaPtHisto2D("fHistPrimRecEtaPtET_","MC E_{T}, primary particles","E_{T}(GeV)");
3052         fHistPrimRecEtaET = CreateEtaEtHisto2D("fHistPrimRecEtaET_","MC primary particles","#");
3053         histname = "fHistPrimRectotET_" + fHistogramNameSuffix;
3054         fHistPrimRectotET = new TH1F(histname.Data(),"total ET, primary particles",fgNumOfEBins, fgEAxis);
3055
3056         fHistPrimRecEtaEDepETDep = CreateEtaEHisto2D("fHistPrimRecEtaEDepETDep_","MC E_{T}, primary particles","E_{T}(GeV)");
3057         fHistPrimRecEtaPtETDep = CreateEtaPtHisto2D("fHistPrimRecEtaPtETDep_","MC E_{T}, primary particles","E_{T}(GeV)");
3058         fHistPrimRecEtaETDep = CreateEtaEtHisto2D("fHistPrimRecEtaETDep_","MC primary particles","#");
3059         histname = "fHistPrimRectotETDep_" + fHistogramNameSuffix;
3060         fHistPrimRectotETDep = new TH1F(histname.Data(),"total ET, primary particles",fgNumOfEBins, fgEAxis);
3061         
3062         fHistElectronEtaEET = CreateEtaEHisto2D("fHistElectronEtaEET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3063         fHistElectronEtaPtET = CreateEtaPtHisto2D("fHistElectronEtaPtET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3064         fHistElectronEtaET = CreateEtaEtHisto2D("fHistElectronEtaET_","MC primary electrons","#");
3065         fHistElectronEtaE = CreateEtaEHisto2D("fHistElectronEtaE_","MC primary electrons","#");
3066         fHistElectronEtaPt = CreateEtaPtHisto2D("fHistElectronEtaPt_","MC primary electrons","#");
3067         histname = "fHistElectrontotET_" + fHistogramNameSuffix;
3068         fHistElectrontotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3069
3070         fHistConvElectronEtaEET = CreateEtaEHisto2D("fHistConvElectronEtaEET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3071         fHistConvElectronEtaPtET = CreateEtaPtHisto2D("fHistConvElectronEtaPtET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3072         fHistConvElectronEtaET = CreateEtaEtHisto2D("fHistConvElectronEtaET_","MC electrons from conversion","#");
3073         fHistConvElectronEtaE = CreateEtaEHisto2D("fHistConvElectronEtaE_","MC electrons from conversion","#");
3074         fHistConvElectronEtaPt = CreateEtaPtHisto2D("fHistConvElectronEtaPt_","MC electrons from conversion","#");
3075         histname = "fHistConvElectrontotET_" + fHistogramNameSuffix;
3076         fHistConvElectrontotET = new TH1F(histname.Data(),"total ET, MC electrons from conversion",fgNumOfEBins, fgEAxis);
3077         
3078         fHistScatElectronEtaEET = CreateEtaEHisto2D("fHistScatElectronEtaEET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3079         fHistScatElectronEtaPtET = CreateEtaPtHisto2D("fHistScatElectronEtaPtET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3080         fHistScatElectronEtaET = CreateEtaEtHisto2D("fHistScatElectronEtaET_","MC electrons from Scattering","#");
3081         fHistScatElectronEtaE = CreateEtaEHisto2D("fHistScatElectronEtaE_","MC electrons from Scattering","#");
3082         fHistScatElectronEtaPt = CreateEtaPtHisto2D("fHistScatElectronEtaPt_","MC electrons from Scattering","#");
3083         histname = "fHistScatElectrontotET_" + fHistogramNameSuffix;
3084         fHistScatElectrontotET = new TH1F(histname.Data(),"total ET, MC electrons from Scattering",fgNumOfEBins, fgEAxis);
3085         
3086         histname = "fHistTotElectrontotET_" + fHistogramNameSuffix;
3087         fHistTotElectrontotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3088
3089         fHistGammaEtaEET = CreateEtaEHisto2D("fHistGammaEtaEET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3090         fHistGammaEtaPtET = CreateEtaPtHisto2D("fHistGammaEtaPtET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3091         fHistGammaEtaET = CreateEtaEtHisto2D("fHistGammaEtaET_","MC primary gammas","#"); 
3092         fHistGammaEtaE = CreateEtaEHisto2D("fHistGammaEtaE_","MC primary gammas","#"); 
3093         fHistGammaEtaPt = CreateEtaPtHisto2D("fHistGammaEtaPt_","MC primary gammas","#"); 
3094         histname = "fHistGammatotET_" + fHistogramNameSuffix;
3095         fHistGammatotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3096
3097         fHistAnnihGammaEtaEET = CreateEtaEHisto2D("fHistAnnihGammaEtaEET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3098         fHistAnnihGammaEtaPtET = CreateEtaPtHisto2D("fHistAnnihGammaEtaPtET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3099         fHistAnnihGammaEtaET = CreateEtaEtHisto2D("fHistAnnihGammaEtaET_","MC Annihilation gammas","#");        
3100         fHistAnnihGammaEtaE = CreateEtaEHisto2D("fHistAnnihGammaEtaE_","MC Annihilation gammas","#");   
3101         fHistAnnihGammaEtaPt = CreateEtaPtHisto2D("fHistAnnihGammaEtaPt_","MC Annihilation gammas","#"); 
3102         histname = "fHistAnnihGammatotET_" + fHistogramNameSuffix;
3103         fHistAnnihGammatotET = new TH1F(histname.Data(),"total ET, MC Annihilation gammas",fgNumOfEBins, fgEAxis);
3104         
3105         fHistScatGammaEtaEET = CreateEtaEHisto2D("fHistScatGammaEtaEET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3106         fHistScatGammaEtaPtET = CreateEtaPtHisto2D("fHistScatGammaEtaPtET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3107         fHistScatGammaEtaET = CreateEtaEtHisto2D("fHistScatGammaEtaET_","MC Scattering gammas","#");    
3108         fHistScatGammaEtaE = CreateEtaEHisto2D("fHistScatGammaEtaE_","MC Scattering gammas","#");       
3109         fHistScatGammaEtaPt = CreateEtaPtHisto2D("fHistScatGammaEtaPt_","MC Scattering gammas","#"); 
3110         histname = "fHistScatGammatotET_" + fHistogramNameSuffix;
3111         fHistScatGammatotET = new TH1F(histname.Data(),"total ET, MC Scattering gammas",fgNumOfEBins, fgEAxis);
3112         
3113         fHistConvGammaEtaEET = CreateEtaEHisto2D("fHistConvGammaEtaEET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3114         fHistConvGammaEtaPtET = CreateEtaPtHisto2D("fHistConvGammaEtaPtET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3115         fHistConvGammaEtaET = CreateEtaEtHisto2D("fHistConvGammaEtaET_","MC non conversion primary gammas","#"); 
3116         fHistConvGammaEtaE = CreateEtaEHisto2D("fHistConvGammaEtaE_","MC non conversion primary gammas","#"); 
3117         fHistConvGammaEtaPt = CreateEtaPtHisto2D("fHistConvGammaEtaPt_","MC non conversion primary gammas","#"); 
3118         histname = "fHistConvGammatotET_" + fHistogramNameSuffix;
3119         fHistConvGammatotET = new TH1F(histname.Data(),"total ET, MC non conversion primary gammas",fgNumOfEBins, fgEAxis);
3120         
3121         fHistNonConvGammaEtaEET = CreateEtaEHisto2D("fHistNonConvGammaEtaEET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3122         fHistNonConvGammaEtaPtET = CreateEtaPtHisto2D("fHistNonConvGammaEtaPtET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3123         fHistNonConvGammaEtaET = CreateEtaEtHisto2D("fHistNonConvGammaEtaET_","MC non conversion primary gammas","#"); 
3124         fHistNonConvGammaEtaE = CreateEtaEHisto2D("fHistNonConvGammaEtaE_","MC non conversion primary gammas","#"); 
3125         fHistNonConvGammaEtaPt = CreateEtaPtHisto2D("fHistNonConvGammaEtaPt_","MC non conversion primary gammas","#"); 
3126         histname = "fHistNonConvGammatotET_" + fHistogramNameSuffix;
3127         fHistNonConvGammatotET = new TH1F(histname.Data(),"total ET, MC non conversion primary gammas",fgNumOfEBins, fgEAxis);
3128                 
3129         histname = "fHistTotGammatotET_" + fHistogramNameSuffix;
3130         fHistTotGammatotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3131
3132         histname = "fHistTotEMtotET_" + fHistogramNameSuffix;
3133         fHistTotEMtotET = new TH1F(histname.Data(),"total electromagnetic ET",fgNumOfEBins, fgEAxis);
3134
3135         fHistNPPElectronEtaEET = CreateEtaEHisto2D("fHistNPPElectronEtaEET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3136         fHistNPPElectronEtaPtET = CreateEtaPtHisto2D("fHistNPPElectronEtaPtET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3137         fHistNPPElectronEtaET = CreateEtaEtHisto2D("fHistNPPElectronEtaET_","MC non-primary electrons","#");
3138         fHistNPPElectronEtaE = CreateEtaEHisto2D("fHistNPPElectronEtaE_","MC non-primary electrons","#");
3139         fHistNPPElectronEtaPt = CreateEtaPtHisto2D("fHistNPPElectronEtaPt_","MC non-primary electrons","#");
3140         histname = "fHistNPPElectrontotET_" + fHistogramNameSuffix;
3141         fHistNPPElectrontotET = new TH1F(histname.Data(),"total ET, MC non-primary electrons",fgNumOfEBins, fgEAxis);
3142         
3143         fHistNPPGammaEtaEET = CreateEtaEHisto2D("fHistNPPGammaEtaEET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3144         fHistNPPGammaEtaPtET = CreateEtaPtHisto2D("fHistNPPGammaEtaPtET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3145         fHistNPPGammaEtaET = CreateEtaEtHisto2D("fHistNPPGammaEtaET_","MC non-primary gammas","#"); 
3146         fHistNPPGammaEtaE = CreateEtaEHisto2D("fHistNPPGammaEtaE_","MC non-primary gammas","#"); 
3147         fHistNPPGammaEtaPt = CreateEtaPtHisto2D("fHistNPPGammaEtaPt_","MC non-primary gammas","#"); 
3148         histname = "fHistNPPGammatotET_" + fHistogramNameSuffix;
3149         fHistNPPGammatotET = new TH1F(histname.Data(),"total ET, MC non-primary gammas",fgNumOfEBins, fgEAxis);
3150         
3151         histname = "fHistTotNPPEMtotET_" + fHistogramNameSuffix;
3152         fHistTotNPPEMtotET = new TH1F(histname.Data(),"total ET, MC non-primary electromagnetic",fgNumOfEBins, fgEAxis);
3153         
3154         fHistNPPPi0GammaEtaEET = CreateEtaEHisto2D("fHistNPPPi0GammaEtaEET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3155         fHistNPPPi0GammaEtaPtET = CreateEtaPtHisto2D("fHistNPPPi0GammaEtaPtET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3156         fHistNPPPi0GammaEtaET = CreateEtaEtHisto2D("fHistNPPPi0GammaEtaET_","MC non-primary gammas","#"); 
3157         fHistNPPPi0GammaEtaE = CreateEtaEHisto2D("fHistNPPPi0GammaEtaE_","MC non-primary gammas","#"); 
3158         fHistNPPPi0GammaEtaPt = CreateEtaPtHisto2D("fHistNPPPi0GammaEtaPt_","MC non-primary gammas","#"); 
3159         histname = "fHistNPPPi0GammatotET_" + fHistogramNameSuffix;
3160         fHistNPPPi0GammatotET = new TH1F(histname.Data(),"total ET, MC non-primary gammas",fgNumOfEBins, fgEAxis);
3161                 
3162         fHistElectronAccEtaEET = CreateEtaEHisto2D("fHistElectronAccEtaEET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3163         fHistElectronAccEtaPtET = CreateEtaPtHisto2D("fHistElectronAccEtaPtET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3164         fHistElectronAccEtaET = CreateEtaEtHisto2D("fHistElectronAccEtaET_","MC primary electrons","#");
3165         fHistElectronAccEtaE = CreateEtaEHisto2D("fHistElectronAccEtaE_","MC primary electrons","#");
3166         fHistElectronAccEtaPt = CreateEtaPtHisto2D("fHistElectronAccEtaPt_","MC primary electrons","#");
3167         histname = "fHistElectronAcctotET_" + fHistogramNameSuffix;
3168         fHistElectronAcctotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3169         
3170         fHistConvElectronAccEtaEET = CreateEtaEHisto2D("fHistConvElectronAccEtaEET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3171         fHistConvElectronAccEtaPtET = CreateEtaPtHisto2D("fHistConvElectronAccEtaPtET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3172         fHistConvElectronAccEtaET = CreateEtaEtHisto2D("fHistConvElectronAccEtaET_","MC electrons from conversion","#");
3173         fHistConvElectronAccEtaE = CreateEtaEHisto2D("fHistConvElectronAccEtaE_","MC electrons from conversion","#");
3174         fHistConvElectronAccEtaPt = CreateEtaPtHisto2D("fHistConvElectronAccEtaPt_","MC electrons from conversion","#");
3175         histname = "fHistConvElectronAcctotET_" + fHistogramNameSuffix;
3176         fHistConvElectronAcctotET = new TH1F(histname.Data(),"total ET, MC electrons from conversion",fgNumOfEBins, fgEAxis);
3177         
3178         fHistScatElectronAccEtaEET = CreateEtaEHisto2D("fHistScatElectronAccEtaEET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3179         fHistScatElectronAccEtaPtET = CreateEtaPtHisto2D("fHistScatElectronAccEtaPtET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3180         fHistScatElectronAccEtaET = CreateEtaEtHisto2D("fHistScatElectronAccEtaET_","MC electrons from Scattering","#");
3181         fHistScatElectronAccEtaE = CreateEtaEHisto2D("fHistScatElectronAccEtaE_","MC electrons from Scattering","#");
3182         fHistScatElectronAccEtaPt = CreateEtaPtHisto2D("fHistScatElectronAccEtaPt_","MC electrons from Scattering","#");
3183         histname = "fHistScatElectronAcctotET_" + fHistogramNameSuffix;
3184         fHistScatElectronAcctotET = new TH1F(histname.Data(),"total ET, MC electrons from Scattering",fgNumOfEBins, fgEAxis);
3185
3186         histname = "fHistTotElectronAcctotET_" + fHistogramNameSuffix;
3187         fHistTotElectronAcctotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3188
3189         fHistGammaAccEtaEET = CreateEtaEHisto2D("fHistGammaAccEtaEET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3190         fHistGammaAccEtaPtET = CreateEtaPtHisto2D("fHistGammaAccEtaPtET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3191         fHistGammaAccEtaET = CreateEtaEtHisto2D("fHistGammaAccEtaET_","MC primary gammas","#"); 
3192         fHistGammaAccEtaE = CreateEtaEHisto2D("fHistGammaAccEtaE_","MC primary gammas","#"); 
3193         fHistGammaAccEtaPt = CreateEtaPtHisto2D("fHistGammaAccEtaPt_","MC primary gammas","#"); 
3194         histname = "fHistGammaAcctotET_" + fHistogramNameSuffix;
3195         fHistGammaAcctotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3196         
3197         fHistAnnihGammaAccEtaEET = CreateEtaEHisto2D("fHistAnnihGammaAccEtaEET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3198         fHistAnnihGammaAccEtaPtET = CreateEtaPtHisto2D("fHistAnnihGammaAccEtaPtET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3199         fHistAnnihGammaAccEtaET = CreateEtaEtHisto2D("fHistAnnihGammaAccEtaET_","MC Annihilation gammas","#");  
3200         fHistAnnihGammaAccEtaE = CreateEtaEHisto2D("fHistAnnihGammaAccEtaE_","MC Annihilation gammas","#");     
3201         fHistAnnihGammaAccEtaPt = CreateEtaPtHisto2D("fHistAnnihGammaAccEtaPt_","MC Annihilation gammas","#"); 
3202         histname = "fHistAnnihGammaAcctotET_" + fHistogramNameSuffix;
3203         fHistAnnihGammaAcctotET = new TH1F(histname.Data(),"total ET, MC Annihilation gammas",fgNumOfEBins, fgEAxis);
3204         
3205         fHistScatGammaAccEtaEET = CreateEtaEHisto2D("fHistScatGammaAccEtaEET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3206         fHistScatGammaAccEtaPtET = CreateEtaPtHisto2D("fHistScatGammaAccEtaPtET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3207         fHistScatGammaAccEtaET = CreateEtaEtHisto2D("fHistScatGammaAccEtaET_","MC Scattering gammas","#");      
3208         fHistScatGammaAccEtaE = CreateEtaEHisto2D("fHistScatGammaAccEtaE_","MC Scattering gammas","#");         
3209         fHistScatGammaAccEtaPt = CreateEtaPtHisto2D("fHistScatGammaAccEtaPt_","MC Scattering gammas","#"); 
3210         histname = "fHistScatGammaAcctotET_" + fHistogramNameSuffix;
3211         fHistScatGammaAcctotET = new TH1F(histname.Data(),"total ET, MC Scattering gammas",fgNumOfEBins, fgEAxis);
3212         
3213         fHistConvGammaAccEtaEET = CreateEtaEHisto2D("fHistConvGammaAccEtaEET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3214         fHistConvGammaAccEtaPtET = CreateEtaPtHisto2D("fHistConvGammaAccEtaPtET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3215         fHistConvGammaAccEtaET = CreateEtaEtHisto2D("fHistConvGammaAccEtaET_","MC non conversion primary gammas","#"); 
3216         fHistConvGammaAccEtaE = CreateEtaEHisto2D("fHistConvGammaAccEtaE_","MC non conversion primary gammas","#"); 
3217         fHistConvGammaAccEtaPt = CreateEtaPtHisto2D("fHistConvGammaAccEtaPt_","MC non conversion primary gammas","#"); 
3218         histname = "fHistConvGammaAcctotET_" + fHistogramNameSuffix;
3219         fHistConvGammaAcctotET = new TH1F(histname.Data(),"total ET, MC non conversion primary gammas",fgNumOfEBins, fgEAxis);
3220         
3221         fHistNonConvGammaAccEtaEET = CreateEtaEHisto2D("fHistNonConvGammaAccEtaEET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3222         fHistNonConvGammaAccEtaPtET = CreateEtaPtHisto2D("fHistNonConvGammaAccEtaPtET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3223         fHistNonConvGammaAccEtaET = CreateEtaEtHisto2D("fHistNonConvGammaAccEtaET_","MC non conversion primary gammas","#"); 
3224         fHistNonConvGammaAccEtaE = CreateEtaEHisto2D("fHistNonConvGammaAccEtaE_","MC non conversion primary gammas","#"); 
3225         fHistNonConvGammaAccEtaPt = CreateEtaPtHisto2D("fHistNonConvGammaAccEtaPt_","MC non conversion primary gammas","#"); 
3226         histname = "fHistNonConvGammaAcctotET_" + fHistogramNameSuffix;
3227         fHistNonConvGammaAcctotET = new TH1F(histname.Data(),"total ET, MC non conversion primary gammas",fgNumOfEBins, fgEAxis);
3228         
3229         histname = "fHistTotGammaAcctotET_" + fHistogramNameSuffix;
3230         fHistTotGammaAcctotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3231         
3232         histname = "fHistTotEMAcctotET_" + fHistogramNameSuffix;
3233         fHistTotEMAcctotET = new TH1F(histname.Data(),"total electromagnetic ET",fgNumOfEBins, fgEAxis);
3234
3235         fHistNPPElectronAccEtaEET = CreateEtaEHisto2D("fHistNPPElectronAccEtaEET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3236         fHistNPPElectronAccEtaPtET = CreateEtaPtHisto2D("fHistNPPElectronAccEtaPtET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3237         fHistNPPElectronAccEtaE = CreateEtaEHisto2D("fHistNPPElectronAccEtaE_","MC non-primary electrons","#");
3238         fHistNPPElectronAccEtaPt = CreateEtaPtHisto2D("fHistNPPElectronAccEtaPt_","MC non-primary electrons","#");
3239         
3240         fHistNPPGammaAccEtaEET = CreateEtaEHisto2D("fHistNPPGammaAccEtaEET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3241         fHistNPPGammaAccEtaPtET = CreateEtaPtHisto2D("fHistNPPGammaAccEtaPtET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3242         fHistNPPGammaAccEtaE = CreateEtaEHisto2D("fHistNPPGammaAccEtaE_","MC non-primary gammas","#"); 
3243         fHistNPPGammaAccEtaPt = CreateEtaPtHisto2D("fHistNPPGammaAccEtaPt_","MC non-primary gammas","#"); 
3244         
3245         fHistElectronRecEtaEET = CreateEtaEHisto2D("fHistElectronRecEtaEET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3246         fHistElectronRecEtaPtET = CreateEtaPtHisto2D("fHistElectronRecEtaPtET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3247         fHistElectronRecEtaET = CreateEtaEtHisto2D("fHistElectronRecEtaET_","MC primary electrons","#");
3248         fHistElectronRecEtaE = CreateEtaEHisto2D("fHistElectronRecEtaE_","MC primary electrons","#");
3249         fHistElectronRecEtaPt = CreateEtaPtHisto2D("fHistElectronRecEtaPt_","MC primary electrons","#");
3250         histname = "fHistElectronRectotET_" + fHistogramNameSuffix;
3251         fHistElectronRectotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3252
3253         fHistConvElectronRecEtaEET = CreateEtaEHisto2D("fHistConvElectronRecEtaEET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3254         fHistConvElectronRecEtaPtET = CreateEtaPtHisto2D("fHistConvElectronRecEtaPtET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3255         fHistConvElectronRecEtaET = CreateEtaEtHisto2D("fHistConvElectronRecEtaET_","MC electrons from conversion","#");
3256         fHistConvElectronRecEtaE = CreateEtaEHisto2D("fHistConvElectronRecEtaE_","MC electrons from conversion","#");
3257         fHistConvElectronRecEtaPt = CreateEtaPtHisto2D("fHistConvElectronRecEtaPt_","MC electrons from conversion","#");
3258         histname = "fHistConvElectronRectotET_" + fHistogramNameSuffix;
3259         fHistConvElectronRectotET = new TH1F(histname.Data(),"total ET, MC electrons from conversion",fgNumOfEBins, fgEAxis);
3260         
3261         fHistScatElectronRecEtaEET = CreateEtaEHisto2D("fHistScatElectronRecEtaEET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3262         fHistScatElectronRecEtaPtET = CreateEtaPtHisto2D("fHistScatElectronRecEtaPtET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3263         fHistScatElectronRecEtaET = CreateEtaEtHisto2D("fHistScatElectronRecEtaET_","MC electrons from Scattering","#");
3264         fHistScatElectronRecEtaE = CreateEtaEHisto2D("fHistScatElectronRecEtaE_","MC electrons from Scattering","#");
3265         fHistScatElectronRecEtaPt = CreateEtaPtHisto2D("fHistScatElectronRecEtaPt_","MC electrons from Scattering","#");
3266         histname = "fHistScatElectronRectotET_" + fHistogramNameSuffix;
3267         fHistScatElectronRectotET = new TH1F(histname.Data(),"total ET, MC electrons from Scattering",fgNumOfEBins, fgEAxis);
3268         
3269         histname = "fHistTotElectronRectotET_" + fHistogramNameSuffix;
3270         fHistTotElectronRectotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3271
3272         fHistGammaRecEtaEET = CreateEtaEHisto2D("fHistGammaRecEtaEET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3273         fHistGammaRecEtaPtET = CreateEtaPtHisto2D("fHistGammaRecEtaPtET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3274         fHistGammaRecEtaET = CreateEtaEtHisto2D("fHistGammaRecEtaET_","MC primary gammas","#"); 
3275         fHistGammaRecEtaE = CreateEtaEHisto2D("fHistGammaRecEtaE_","MC primary gammas","#"); 
3276         fHistGammaRecEtaPt = CreateEtaPtHisto2D("fHistGammaRecEtaPt_","MC primary gammas","#"); 
3277         histname = "fHistGammaRectotET_" + fHistogramNameSuffix;
3278         fHistGammaRectotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3279
3280         fHistAnnihGammaRecEtaEET = CreateEtaEHisto2D("fHistAnnihGammaRecEtaEET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3281         fHistAnnihGammaRecEtaPtET = CreateEtaPtHisto2D("fHistAnnihGammaRecEtaPtET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3282         fHistAnnihGammaRecEtaET = CreateEtaEtHisto2D("fHistAnnihGammaRecEtaET_","MC Annihilation gammas","#");  
3283         fHistAnnihGammaRecEtaE = CreateEtaEHisto2D("fHistAnnihGammaRecEtaE_","MC Annihilation gammas","#");     
3284         fHistAnnihGammaRecEtaPt = CreateEtaPtHisto2D("fHistAnnihGammaRecEtaPt_","MC Annihilation gammas","#"); 
3285         histname = "fHistAnnihGammaRectotET_" + fHistogramNameSuffix;
3286         fHistAnnihGammaRectotET = new TH1F(histname.Data(),"total ET, MC Annihilation gammas",fgNumOfEBins, fgEAxis);
3287         
3288         fHistScatGammaRecEtaEET = CreateEtaEHisto2D("fHistScatGammaRecEtaEET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3289         fHistScatGammaRecEtaPtET = CreateEtaPtHisto2D("fHistScatGammaRecEtaPtET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3290         fHistScatGammaRecEtaET = CreateEtaEtHisto2D("fHistScatGammaRecEtaET_","MC Scattering gammas","#");      
3291         fHistScatGammaRecEtaE = CreateEtaEHisto2D("fHistScatGammaRecEtaE_","MC Scattering gammas","#");         
3292         fHistScatGammaRecEtaPt = CreateEtaPtHisto2D("fHistScatGammaRecEtaPt_","MC Scattering gammas","#"); 
3293         histname = "fHistScatGammaRectotET_" + fHistogramNameSuffix;
3294         fHistScatGammaRectotET = new TH1F(histname.Data(),"total ET, MC Scattering gammas",fgNumOfEBins, fgEAxis);
3295         
3296         histname = "fHistTotGammaRectotET_" + fHistogramNameSuffix;
3297         fHistTotGammaRectotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3298         
3299         histname = "fHistTotEMRectotET_" + fHistogramNameSuffix;
3300         fHistTotEMRectotET = new TH1F(histname.Data(),"total electromagnetic ET",fgNumOfEBins, fgEAxis);
3301
3302         fHistNPPElectronRecEtaEET = CreateEtaEHisto2D("fHistNPPElectronRecEtaEET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3303         fHistNPPElectronRecEtaPtET = CreateEtaPtHisto2D("fHistNPPElectronRecEtaPtET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3304         fHistNPPElectronRecEtaET = CreateEtaEtHisto2D("fHistNPPElectronRecEtaET_","MC non-primary electrons","#");
3305         fHistNPPElectronRecEtaE = CreateEtaEHisto2D("fHistNPPElectronRecEtaE_","MC non-primary electrons","#");
3306         fHistNPPElectronRecEtaPt = CreateEtaPtHisto2D("fHistNPPElectronRecEtaPt_","MC non-primary electrons","#");
3307         histname = "fHistNPPElectronRectotET_" + fHistogramNameSuffix;
3308         fHistNPPElectronRectotET = new TH1F(histname.Data(),"total ET, MC non-primary electrons",fgNumOfEBins, fgEAxis);
3309         
3310         fHistNPPGammaRecEtaEET = CreateEtaEHisto2D("fHistNPPGammaRecEtaEET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3311         fHistNPPGammaRecEtaPtET = CreateEtaPtHisto2D("fHistNPPGammaRecEtaPtET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3312         fHistNPPGammaRecEtaET = CreateEtaEtHisto2D("fHistNPPGammaRecEtaET_","MC non-primary gammas","#"); 
3313         fHistNPPGammaRecEtaE = CreateEtaEHisto2D("fHistNPPGammaRecEtaE_","MC non-primary gammas","#"); 
3314         fHistNPPGammaRecEtaPt = CreateEtaPtHisto2D("fHistNPPGammaRecEtaPt_","MC non-primary gammas","#"); 
3315         histname = "fHistNPPGammaRectotET_" + fHistogramNameSuffix;
3316         fHistNPPGammaRectotET = new TH1F(histname.Data(),"total ET, MC non-primary gammas",fgNumOfEBins, fgEAxis);
3317
3318         histname = "fHistTotNPPEMRectotET_" + fHistogramNameSuffix;
3319         fHistTotNPPEMRectotET = new TH1F(histname.Data(),"total ET, MC non-primary electromagnetic",fgNumOfEBins, fgEAxis);
3320
3321         fHistNPPPi0GammaRecEtaEET = CreateEtaEHisto2D("fHistNPPPi0GammaRecEtaEET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3322         fHistNPPPi0GammaRecEtaPtET = CreateEtaPtHisto2D("fHistNPPPi0GammaRecEtaPtET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3323         fHistNPPPi0GammaRecEtaET = CreateEtaEtHisto2D("fHistNPPPi0GammaRecEtaET_","MC non-primary gammas","#"); 
3324         fHistNPPPi0GammaRecEtaE = CreateEtaEHisto2D("fHistNPPPi0GammaRecEtaE_","MC non-primary gammas","#"); 
3325         fHistNPPPi0GammaRecEtaPt = CreateEtaPtHisto2D("fHistNPPPi0GammaRecEtaPt_","MC non-primary gammas","#"); 
3326         histname = "fHistNPPPi0GammaRectotET_" + fHistogramNameSuffix;
3327         fHistNPPPi0GammaRectotET = new TH1F(histname.Data(),"total ET, MC non-primary gammas",fgNumOfEBins, fgEAxis);
3328         
3329         fHistMuonEtaEET = CreateEtaEHisto2D("fHistMuonEtaEET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3330         fHistMuonAccEtaEET = CreateEtaEHisto2D("fHistMuonAccEtaEET_","MC E_{T}, primary Muons, inside EMCal acceptance","E_{T}(GeV)");
3331         fHistMuonRecEtaEET = CreateEtaEHisto2D("fHistMuonRecEtaEET_","MC E_{T}, primary Muons, reconstructed","E_{T}(GeV)");
3332         fHistMuonMatchEtaEET = CreateEtaEHisto2D("fHistMuonMatchEtaEET_","MC E_{T}, primary Muons, tracking matched","E_{T}(GeV)");
3333         
3334         fHistMuonEtaPtET = CreateEtaPtHisto2D("fHistMuonEtaPtET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3335         fHistMuonAccEtaPtET = CreateEtaPtHisto2D("fHistMuonAccEtaPtET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3336         fHistMuonRecEtaPtET = CreateEtaPtHisto2D("fHistMuonRecEtaPtET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3337         fHistMuonMatchEtaPtET = CreateEtaPtHisto2D("fHistMuonMatchEtaPtET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3338
3339         fHistMuonEtaET = CreateEtaEtHisto2D("fHistMuonEtaET_","MC primary Muons","#");
3340         fHistMuonAccEtaET = CreateEtaEtHisto2D("fHistMuonAccEtaET_","MC primary Muons","#");
3341         fHistMuonRecEtaET = CreateEtaEtHisto2D("fHistMuonRecEtaET_","MC primary Muons","#");
3342         fHistMuonMatchEtaET = CreateEtaEtHisto2D("fHistMuonMatchEtaET_","MC primary Muons","#");
3343         
3344         fHistMuonEtaE = CreateEtaEHisto2D("fHistMuonEtaE_","MC primary Muons","#");
3345         fHistMuonAccEtaE = CreateEtaEHisto2D("fHistMuonAccEtaE_","MC primary Muons","#");
3346         fHistMuonRecEtaE = CreateEtaEHisto2D("fHistMuonRecEtaE_","MC primary Muons","#");
3347         fHistMuonMatchEtaE = CreateEtaEHisto2D("fHistMuonMatchEtaE_","MC primary Muons","#");
3348
3349         fHistMuonEtaPt = CreateEtaPtHisto2D("fHistMuonEtaPt_","MC primary Muons","#");
3350         fHistMuonAccEtaPt = CreateEtaPtHisto2D("fHistMuonAccEtaPt_","MC primary Muons","#");
3351         fHistMuonRecEtaPt = CreateEtaPtHisto2D("fHistMuonRecEtaPt_","MC primary Muons","#");
3352         fHistMuonMatchEtaPt = CreateEtaPtHisto2D("fHistMuonMatchEtaPt_","MC primary Muons","#");
3353
3354         histname = "fHistMuontotET_" + fHistogramNameSuffix;
3355         fHistMuontotET = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3356         histname = "fHistMuonAcctotET_" + fHistogramNameSuffix;
3357         fHistMuonAcctotET = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3358         histname = "fHistMuonRectotET_" + fHistogramNameSuffix;
3359         fHistMuonRectotET = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3360         histname = "fHistMuonMatchtotET_" + fHistogramNameSuffix;
3361         fHistMuonMatchtotET = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3362
3363         histname = "fHistMuonRectotETDep_" + fHistogramNameSuffix;
3364         fHistMuonRectotETDep = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3365         histname = "fHistMuonMatchtotETDep_" + fHistogramNameSuffix;
3366         fHistMuonMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3367                 
3368         fHistMuonRecEtaEDepETDep = CreateEtaEHisto2D("fHistMuonRecEtaEDepETDep_","MC E_{T}, primary Muons, reconstructed","E_{T} dep (GeV)");
3369         fHistMuonMatchEtaEDepETDep = CreateEtaEHisto2D("fHistMuonMatchEtaEDepETDep_","MC E_{T}, primary Muons, tracking matched","E_{T} dep (GeV)");
3370         
3371         fHistMuonRecEtaPtETDep = CreateEtaPtHisto2D("fHistMuonRecEtaPtETDep_","MC E_{T}, primary Muons","E_{T} dep (GeV)");
3372         fHistMuonMatchEtaPtETDep = CreateEtaPtHisto2D("fHistMuonMatchEtaPtETDep_","MC E_{T}, primary Muons","E_{T} dep(GeV)");
3373         
3374         fHistMuonRecEtaETDep = CreateEtaEtHisto2D("fHistMuonRecEtaETDep_","MC primary Muons","#");
3375         fHistMuonMatchEtaETDep = CreateEtaEtHisto2D("fHistMuonMatchEtaETDep_","MC primary Muons","#");
3376
3377         fHistMuonRecResEET = CreateResEHisto2D("fHistMuonRecResEET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3378         fHistMuonRecResPtET = CreateResPtHisto2D("fHistMuonRecResPtET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3379         fHistMuonRecResE = CreateResEHisto2D("fHistMuonRecResE_","MC primary Muons","#");
3380         fHistMuonRecResPt  = CreateResPtHisto2D("fHistMuonRecResPt_","MC primary Muons","#");
3381         fHistMuonRecResEDepETDep = CreateResEHisto2D("fHistMuonRecResEDepETDep_","MC E_{T}, primary Muons","E_{T} dep (GeV)");
3382         fHistMuonRecResPtETDep = CreateResPtHisto2D("fHistMuonRecResPtETDep_","MC E_{T}, primary Muons","E_{T} dep (GeV)");
3383         
3384         fHistPionEtaEET = CreateEtaEHisto2D("fHistPionEtaEET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3385         fHistPionAccEtaEET = CreateEtaEHisto2D("fHistPionAccEtaEET_","MC E_{T}, primary Pions, inside EMCal acceptance","E_{T}(GeV)");
3386         fHistPionRecEtaEET = CreateEtaEHisto2D("fHistPionRecEtaEET_","MC E_{T}, primary Pions, reconstructed","E_{T}(GeV)");
3387         fHistPionMatchEtaEET = CreateEtaEHisto2D("fHistPionMatchEtaEET_","MC E_{T}, primary Pions, tracking matched","E_{T}(GeV)");
3388         
3389         fHistPionEtaPtET = CreateEtaPtHisto2D("fHistPionEtaPtET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3390         fHistPionAccEtaPtET = CreateEtaPtHisto2D("fHistPionAccEtaPtET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3391         fHistPionRecEtaPtET = CreateEtaPtHisto2D("fHistPionRecEtaPtET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3392         fHistPionMatchEtaPtET = CreateEtaPtHisto2D("fHistPionMatchEtaPtET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3393         
3394         fHistPionEtaET = CreateEtaEtHisto2D("fHistPionEtaET_","MC primary Pions","#");
3395         fHistPionAccEtaET = CreateEtaEtHisto2D("fHistPionAccEtaET_","MC primary Pions","#");
3396         fHistPionRecEtaET = CreateEtaEtHisto2D("fHistPionRecEtaET_","MC primary Pions","#");
3397         fHistPionMatchEtaET = CreateEtaEtHisto2D("fHistPionMatchEtaET_","MC primary Pions","#");
3398         
3399         fHistPionEtaE = CreateEtaEHisto2D("fHistPionEtaE_","MC primary Pions","#");
3400         fHistPionAccEtaE = CreateEtaEHisto2D("fHistPionAccEtaE_","MC primary Pions","#");
3401         fHistPionRecEtaE = CreateEtaEHisto2D("fHistPionRecEtaE_","MC primary Pions","#");
3402         fHistPionMatchEtaE = CreateEtaEHisto2D("fHistPionMatchEtaE_","MC primary Pions","#");
3403         
3404         fHistPionEtaPt = CreateEtaPtHisto2D("fHistPionEtaPt_","MC primary Pions","#");
3405         fHistPionAccEtaPt = CreateEtaPtHisto2D("fHistPionAccEtaPt_","MC primary Pions","#");
3406         fHistPionRecEtaPt = CreateEtaPtHisto2D("fHistPionRecEtaPt_","MC primary Pions","#");
3407         fHistPionMatchEtaPt = CreateEtaPtHisto2D("fHistPionMatchEtaPt_","MC primary Pions","#");
3408
3409         histname = "fHistPiontotET_" + fHistogramNameSuffix;
3410         fHistPiontotET = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3411         histname = "fHistPionAcctotET_" + fHistogramNameSuffix;
3412         fHistPionAcctotET = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3413         histname = "fHistPionRectotET_" + fHistogramNameSuffix;
3414         fHistPionRectotET = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3415         histname = "fHistPionMatchtotET_" + fHistogramNameSuffix;
3416         fHistPionMatchtotET = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3417         
3418         histname = "fHistPionRectotETDep_" + fHistogramNameSuffix;
3419         fHistPionRectotETDep = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3420         histname = "fHistPionMatchtotETDep_" + fHistogramNameSuffix;
3421         fHistPionMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3422         
3423         fHistPionRecEtaEDepETDep = CreateEtaEHisto2D("fHistPionRecEtaEDepETDep_","MC E_{T}, primary Pions, reconstructed","E_{T} dep (GeV)");
3424         fHistPionMatchEtaEDepETDep = CreateEtaEHisto2D("fHistPionMatchEtaEDepETDep_","MC E_{T}, primary Pions, tracking matched","E_{T} dep (GeV)");
3425         
3426         fHistPionRecEtaPtETDep = CreateEtaPtHisto2D("fHistPionRecEtaPtETDep_","MC E_{T}, primary Pions","E_{T} dep (GeV)");
3427         fHistPionMatchEtaPtETDep = CreateEtaPtHisto2D("fHistPionMatchEtaPtETDep_","MC E_{T}, primary Pions","E_{T} dep(GeV)");
3428         
3429         fHistPionRecEtaETDep = CreateEtaEtHisto2D("fHistPionRecEtaETDep_","MC primary Pions","#");
3430         fHistPionMatchEtaETDep = CreateEtaEtHisto2D("fHistPionMatchEtaETDep_","MC primary Pions","#");
3431         
3432         fHistPionRecResEET = CreateResEHisto2D("fHistPionRecResEET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3433         fHistPionRecResPtET = CreateResPtHisto2D("fHistPionRecResPtET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3434         fHistPionRecResE = CreateResEHisto2D("fHistPionRecResE_","MC primary Pions","#");
3435         fHistPionRecResPt  = CreateResPtHisto2D("fHistPionRecResPt_","MC primary Pions","#");
3436         fHistPionRecResEDepETDep = CreateResEHisto2D("fHistPionRecResEDepETDep_","MC E_{T}, primary Pions","E_{T} dep (GeV)");
3437         fHistPionRecResPtETDep = CreateResPtHisto2D("fHistPionRecResPtETDep_","MC E_{T}, primary Pions","E_{T} dep (GeV)");
3438         
3439         fHistKaonEtaEET = CreateEtaEHisto2D("fHistKaonEtaEET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3440         fHistKaonAccEtaEET = CreateEtaEHisto2D("fHistKaonAccEtaEET_","MC E_{T}, primary Kaons, inside EMCal acceptance","E_{T}(GeV)");
3441         fHistKaonRecEtaEET = CreateEtaEHisto2D("fHistKaonRecEtaEET_","MC E_{T}, primary Kaons, reconstructed","E_{T}(GeV)");
3442         fHistKaonMatchEtaEET = CreateEtaEHisto2D("fHistKaonMatchEtaEET_","MC E_{T}, primary Kaons, tracking matched","E_{T}(GeV)");
3443         
3444         fHistKaonEtaPtET = CreateEtaPtHisto2D("fHistKaonEtaPtET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3445         fHistKaonAccEtaPtET = CreateEtaPtHisto2D("fHistKaonAccEtaPtET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3446         fHistKaonRecEtaPtET = CreateEtaPtHisto2D("fHistKaonRecEtaPtET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3447         fHistKaonMatchEtaPtET = CreateEtaPtHisto2D("fHistKaonMatchEtaPtET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3448         
3449         fHistKaonEtaET = CreateEtaEtHisto2D("fHistKaonEtaET_","MC primary Kaons","#");
3450         fHistKaonAccEtaET = CreateEtaEtHisto2D("fHistKaonAccEtaET_","MC primary Kaons","#");
3451         fHistKaonRecEtaET = CreateEtaEtHisto2D("fHistKaonRecEtaET_","MC primary Kaons","#");
3452         fHistKaonMatchEtaET = CreateEtaEtHisto2D("fHistKaonMatchEtaET_","MC primary Kaons","#");
3453         
3454         fHistKaonEtaE = CreateEtaEHisto2D("fHistKaonEtaE_","MC primary Kaons","#");
3455         fHistKaonAccEtaE = CreateEtaEHisto2D("fHistKaonAccEtaE_","MC primary Kaons","#");
3456         fHistKaonRecEtaE = CreateEtaEHisto2D("fHistKaonRecEtaE_","MC primary Kaons","#");
3457         fHistKaonMatchEtaE = CreateEtaEHisto2D("fHistKaonMatchEtaE_","MC primary Kaons","#");
3458         
3459         fHistKaonEtaPt = CreateEtaPtHisto2D("fHistKaonEtaPt_","MC primary Kaons","#");
3460         fHistKaonAccEtaPt = CreateEtaPtHisto2D("fHistKaonAccEtaPt_","MC primary Kaons","#");
3461         fHistKaonRecEtaPt = CreateEtaPtHisto2D("fHistKaonRecEtaPt_","MC primary Kaons","#");
3462         fHistKaonMatchEtaPt = CreateEtaPtHisto2D("fHistKaonMatchEtaPt_","MC primary Kaons","#");
3463         
3464         histname = "fHistKaontotET_" + fHistogramNameSuffix;
3465         fHistKaontotET = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3466         histname = "fHistKaonAcctotET_" + fHistogramNameSuffix;
3467         fHistKaonAcctotET = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3468         histname = "fHistKaonRectotET_" + fHistogramNameSuffix;
3469         fHistKaonRectotET = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3470         histname = "fHistKaonMatchtotET_" + fHistogramNameSuffix;
3471         fHistKaonMatchtotET = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3472         
3473         histname = "fHistKaonRectotETDep_" + fHistogramNameSuffix;
3474         fHistKaonRectotETDep = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3475         histname = "fHistKaonMatchtotETDep_" + fHistogramNameSuffix;
3476         fHistKaonMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3477         
3478         fHistKaonRecEtaEDepETDep = CreateEtaEHisto2D("fHistKaonRecEtaEDepETDep_","MC E_{T}, primary Kaons, reconstructed","E_{T} dep (GeV)");
3479         fHistKaonMatchEtaEDepETDep = CreateEtaEHisto2D("fHistKaonMatchEtaEDepETDep_","MC E_{T}, primary Kaons, tracking matched","E_{T} dep (GeV)");
3480         
3481         fHistKaonRecEtaPtETDep = CreateEtaPtHisto2D("fHistKaonRecEtaPtETDep_","MC E_{T}, primary Kaons","E_{T} dep (GeV)");
3482         fHistKaonMatchEtaPtETDep = CreateEtaPtHisto2D("fHistKaonMatchEtaPtETDep_","MC E_{T}, primary Kaons","E_{T} dep(GeV)");
3483         
3484         fHistKaonRecEtaETDep = CreateEtaEtHisto2D("fHistKaonRecEtaETDep_","MC primary Kaons","#");
3485         fHistKaonMatchEtaETDep = CreateEtaEtHisto2D("fHistKaonMatchEtaETDep_","MC primary Kaons","#");
3486         
3487         fHistKaonRecResEET = CreateResEHisto2D("fHistKaonRecResEET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3488         fHistKaonRecResPtET = CreateResPtHisto2D("fHistKaonRecResPtET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3489         fHistKaonRecResE = CreateResEHisto2D("fHistKaonRecResE_","MC primary Kaons","#");
3490         fHistKaonRecResPt  = CreateResPtHisto2D("fHistKaonRecResPt_","MC primary Kaons","#");   
3491         fHistKaonRecResEDepETDep = CreateResEHisto2D("fHistKaonRecResEDepETDep_","MC E_{T}, primary Kaons","E_{T} dep (GeV)");
3492         fHistKaonRecResPtETDep = CreateResPtHisto2D("fHistKaonRecResPtETDep_","MC E_{T}, primary Kaons","E_{T} dep (GeV)");
3493
3494         fHistProtonEtaEET = CreateEtaEHisto2D("fHistProtonEtaEET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3495         fHistProtonAccEtaEET = CreateEtaEHisto2D("fHistProtonAccEtaEET_","MC E_{T}, primary Protons, inside EMCal acceptance","E_{T}(GeV)");
3496         fHistProtonRecEtaEET = CreateEtaEHisto2D("fHistProtonRecEtaEET_","MC E_{T}, primary Protons, reconstructed","E_{T}(GeV)");
3497         fHistProtonMatchEtaEET = CreateEtaEHisto2D("fHistProtonMatchEtaEET_","MC E_{T}, primary Protons, tracking matched","E_{T}(GeV)");
3498         
3499         fHistProtonEtaPtET = CreateEtaPtHisto2D("fHistProtonEtaPtET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3500         fHistProtonAccEtaPtET = CreateEtaPtHisto2D("fHistProtonAccEtaPtET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3501         fHistProtonRecEtaPtET = CreateEtaPtHisto2D("fHistProtonRecEtaPtET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3502         fHistProtonMatchEtaPtET = CreateEtaPtHisto2D("fHistProtonMatchEtaPtET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3503         
3504         fHistProtonEtaET = CreateEtaEtHisto2D("fHistProtonEtaET_","MC primary Protons","#");
3505         fHistProtonAccEtaET = CreateEtaEtHisto2D("fHistProtonAccEtaET_","MC primary Protons","#");
3506         fHistProtonRecEtaET = CreateEtaEtHisto2D("fHistProtonRecEtaET_","MC primary Protons","#");
3507         fHistProtonMatchEtaET = CreateEtaEtHisto2D("fHistProtonMatchEtaET_","MC primary Protons","#");
3508         
3509         fHistProtonEtaE = CreateEtaEHisto2D("fHistProtonEtaE_","MC primary Protons","#");
3510         fHistProtonAccEtaE = CreateEtaEHisto2D("fHistProtonAccEtaE_","MC primary Protons","#");
3511         fHistProtonRecEtaE = CreateEtaEHisto2D("fHistProtonRecEtaE_","MC primary Protons","#");
3512         fHistProtonMatchEtaE = CreateEtaEHisto2D("fHistProtonMatchEtaE_","MC primary Protons","#");
3513         
3514         fHistProtonEtaPt = CreateEtaPtHisto2D("fHistProtonEtaPt_","MC primary Protons","#");
3515         fHistProtonAccEtaPt = CreateEtaPtHisto2D("fHistProtonAccEtaPt_","MC primary Protons","#");
3516         fHistProtonRecEtaPt = CreateEtaPtHisto2D("fHistProtonRecEtaPt_","MC primary Protons","#");
3517         fHistProtonMatchEtaPt = CreateEtaPtHisto2D("fHistProtonMatchEtaPt_","MC primary Protons","#");
3518         
3519         histname = "fHistProtontotET_" + fHistogramNameSuffix;
3520         fHistProtontotET = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3521         histname = "fHistProtonAcctotET_" + fHistogramNameSuffix;
3522         fHistProtonAcctotET = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3523         histname = "fHistProtonRectotET_" + fHistogramNameSuffix;
3524         fHistProtonRectotET = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3525         histname = "fHistProtonMatchtotET_" + fHistogramNameSuffix;
3526         fHistProtonMatchtotET = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3527         
3528         histname = "fHistProtonRectotETDep_" + fHistogramNameSuffix;
3529         fHistProtonRectotETDep = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3530         histname = "fHistProtonMatchtotETDep_" + fHistogramNameSuffix;
3531         fHistProtonMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3532         
3533         fHistProtonRecEtaEDepETDep = CreateEtaEHisto2D("fHistProtonRecEtaEDepETDep_","MC E_{T}, primary Protons, reconstructed","E_{T} dep (GeV)");
3534         fHistProtonMatchEtaEDepETDep = CreateEtaEHisto2D("fHistProtonMatchEtaEDepETDep_","MC E_{T}, primary Protons, tracking matched","E_{T} dep (GeV)");
3535         
3536         fHistProtonRecEtaPtETDep = CreateEtaPtHisto2D("fHistProtonRecEtaPtETDep_","MC E_{T}, primary Protons","E_{T} dep (GeV)");
3537         fHistProtonMatchEtaPtETDep = CreateEtaPtHisto2D("fHistProtonMatchEtaPtETDep_","MC E_{T}, primary Protons","E_{T} dep(GeV)");
3538         
3539         fHistProtonRecEtaETDep = CreateEtaEtHisto2D("fHistProtonRecEtaETDep_","MC primary Protons","#");
3540         fHistProtonMatchEtaETDep = CreateEtaEtHisto2D("fHistProtonMatchEtaETDep_","MC primary Protons","#");
3541         
3542         fHistProtonRecResEET = CreateResEHisto2D("fHistProtonRecResEET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3543         fHistProtonRecResPtET = CreateResPtHisto2D("fHistProtonRecResPtET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3544         fHistProtonRecResE = CreateResEHisto2D("fHistProtonRecResE_","MC primary Protons","#");
3545         fHistProtonRecResPt  = CreateResPtHisto2D("fHistProtonRecResPt_","MC primary Protons","#");
3546         fHistProtonRecResEDepETDep = CreateResEHisto2D("fHistProtonRecResEDepETDep_","MC E_{T}, primary Protons","E_{T} dep (GeV)");
3547         fHistProtonRecResPtETDep = CreateResPtHisto2D("fHistProtonRecResPtETDep_","MC E_{T}, primary Protons","E_{T} dep (GeV)");
3548         
3549         histname = "fHistTotChargedtotET_" + fHistogramNameSuffix;
3550         fHistTotChargedtotET = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3551         histname = "fHistTotChargedAcctotET_" + fHistogramNameSuffix;
3552         fHistTotChargedAcctotET = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3553         histname = "fHistTotChargedRectotET_" + fHistogramNameSuffix;
3554         fHistTotChargedRectotET = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3555         histname = "fHistTotChargedMatchtotET_" + fHistogramNameSuffix;
3556         fHistTotChargedMatchtotET = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3557         
3558         histname = "fHistTotChargedRectotETDep_" + fHistogramNameSuffix;
3559         fHistTotChargedRectotETDep = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3560         histname = "fHistTotChargedMatchtotETDep_" + fHistogramNameSuffix;
3561         fHistTotChargedMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3562         
3563         fHistNeutronEtaEET = CreateEtaEHisto2D("fHistNeutronEtaEET_","MC E_{T}, primary Neutrons","E_{T}(GeV)");
3564         fHistNeutronAccEtaEET = CreateEtaEHisto2D("fHistNeutronAccEtaEET_","MC E_{T}, primary Neutrons, inside EMCal acceptance","E_{T}(GeV)");
3565         fHistNeutronRecEtaEET = CreateEtaEHisto2D("fHistNeutronRecEtaEET_","MC E_{T}, primary Neutrons, reconstructed","E_{T}(GeV)");
3566         
3567         fHistNeutronEtaPtET = CreateEtaPtHisto2D("fHistNeutronEtaPtET_","MC E_{T}, primary Neutrons","E_{T}(GeV)");
3568         fHistNeutronAccEtaPtET = CreateEtaPtHisto2D("fHistNeutronAccEtaPtET_","MC E_{T}, primary Neutrons","E_{T}(GeV)");
3569         fHistNeutronRecEtaPtET = CreateEtaPtHisto2D("fHistNeutronRecEtaPtET_","MC E_{T}, primary Neutrons","E_{T}(GeV)");
3570         
3571         fHistNeutronEtaET = CreateEtaEtHisto2D("fHistNeutronEtaET_","MC primary Neutrons","#");
3572         fHistNeutronAccEtaET = CreateEtaEtHisto2D("fHistNeutronAccEtaET_","MC primary Neutrons","#");
3573         fHistNeutronRecEtaET = CreateEtaEtHisto2D("fHistNeutronRecEtaET_","MC primary Neutrons","#");
3574         
3575         fHistNeutronEtaE = CreateEtaEHisto2D("fHistNeutronEtaE_","MC primary Neutrons","#");
3576         fHistNeutronAccEtaE = CreateEtaEHisto2D("fHistNeutronAccEtaE_","MC primary Neutrons","#");
3577         fHistNeutronRecEtaE = CreateEtaEHisto2D("fHistNeutronRecEtaE_","MC primary Neutrons","#");
3578         
3579         fHistNeutronEtaPt = CreateEtaPtHisto2D("fHistNeutronEtaPt_","MC primary Neutrons","#");
3580         fHistNeutronAccEtaPt = CreateEtaPtHisto2D("fHistNeutronAccEtaPt_","MC primary Neutrons","#");
3581         fHistNeutronRecEtaPt = CreateEtaPtHisto2D("fHistNeutronRecEtaPt_","MC primary Neutrons","#");
3582         
3583         histname = "fHistNeutrontotET_" + fHistogramNameSuffix;
3584         fHistNeutrontotET = new TH1F(histname.Data(),"total ET, MC primary Neutrons",fgNumOfEBins, fgEAxis);
3585         histname = "fHistNeutronAcctotET_" + fHistogramNameSuffix;
3586         fHistNeutronAcctotET = new TH1F(histname.Data(),"total ET, MC primary Neutrons",fgNumOfEBins, fgEAxis);
3587         histname = "fHistNeutronRectotET_" + fHistogramNameSuffix;
3588         fHistNeutronRectotET = new TH1F(histname.Data(),"total ET, MC primary Neutrons",fgNumOfEBins, fgEAxis);
3589         histname = "fHistNeutronRectotETDep_" + fHistogramNameSuffix;
3590         fHistNeutronRectotETDep = new TH1F(histname.Data(),"total ET, MC primary Neutrons",fgNumOfEBins, fgEAxis);      
3591         
3592         fHistNeutronRecEtaEDepETDep = CreateEtaEHisto2D("fHistNeutronRecEtaEDepETDep_","MC E_{T}, primary Neutrons, reconstructed","E_{T} dep (GeV)");
3593         fHistNeutronRecEtaETDep = CreateEtaEtHisto2D("fHistNeutronRecEtaETDep_","MC primary Neutrons","#");
3594         
3595         fHistNeutronRecEtaPtETDep = CreateEtaPtHisto2D("fHistNeutronRecEtaPtETDep_","MC E_{T}, primary Neutrons","E_{T} dep (GeV)");
3596         
3597         fHistK0EtaEET = CreateEtaEHisto2D("fHistK0EtaEET_","MC E_{T}, K0S daughters","E_{T}(GeV)");
3598         fHistK0RecEtaEET = CreateEtaEHisto2D("fHistK0RecEtaEET_","MC E_{T}, K0S daughters, reconstructed","E_{T}(GeV)");
3599         
3600         fHistK0EtaPtET = CreateEtaPtHisto2D("fHistK0EtaPtET_","MC E_{T}, K0S daughters","E_{T}(GeV)");
3601         fHistK0RecEtaPtET = CreateEtaPtHisto2D("fHistK0RecEtaPtET_","MC E_{T}, K0S daughters","E_{T}(GeV)");
3602         
3603         fHistK0EtaET = CreateEtaEtHisto2D("fHistK0EtaET_","MC K0S daughters","#");
3604         fHistK0RecEtaET = CreateEtaEtHisto2D("fHistK0RecEtaET_","MC K0S daughters","#");
3605         
3606         fHistK0EtaE = CreateEtaEHisto2D("fHistK0EtaE_","MC K0S daughters","#");
3607         fHistK0RecEtaE = CreateEtaEHisto2D("fHistK0RecEtaE_","MC K0S daughters","#");
3608         
3609         fHistK0EtaPt = CreateEtaPtHisto2D("fHistK0EtaPt_","MC K0S daughters","#");
3610         fHistK0RecEtaPt = CreateEtaPtHisto2D("fHistK0RecEtaPt_","MC K0S daughters","#");
3611         
3612         histname = "fHistK0totET_" + fHistogramNameSuffix;
3613         fHistK0totET = new TH1F(histname.Data(),"total ET, MC K0s daughters",fgNumOfEBins, fgEAxis);
3614         histname = "fHistK0RectotET_" + fHistogramNameSuffix;
3615         fHistK0RectotET = new TH1F(histname.Data(),"total ET, MC K0s daughters",fgNumOfEBins, fgEAxis); 
3616         histname = "fHistK0RectotETDep_" + fHistogramNameSuffix;
3617         fHistK0RectotETDep = new TH1F(histname.Data(),"total ET, MC K0s daughters",fgNumOfEBins, fgEAxis);      
3618         
3619         fHistK0RecEtaEDepETDep = CreateEtaEHisto2D("fHistK0RecEtaEDepETDep_","MC E_{T}, MC K0s daughters, reconstructed","E_{T} dep (GeV)");
3620         fHistK0RecEtaETDep = CreateEtaEtHisto2D("fHistK0RecEtaETDep_","MC K0s daughters","#");
3621         
3622         fHistK0RecEtaPtETDep = CreateEtaPtHisto2D("fHistK0RecEtaPtETDep_","MC E_{T}, MC K0s daughters","E_{T} dep (GeV)");
3623         
3624         fHistLambdaEtaEET = CreateEtaEHisto2D("fHistLambdaEtaEET_","MC E_{T}, Lambda daughters","E_{T}(GeV)");
3625         fHistLambdaRecEtaEET = CreateEtaEHisto2D("fHistLambdaRecEtaEET_","MC E_{T}, Lambda daughters, reconstructed","E_{T}(GeV)");
3626         
3627         fHistLambdaEtaPtET = CreateEtaPtHisto2D("fHistLambdaEtaPtET_","MC E_{T}, Lambda daughters","E_{T}(GeV)");
3628         fHistLambdaRecEtaPtET = CreateEtaPtHisto2D("fHistLambdaRecEtaPtET_","MC E_{T}, Lambda daughters","E_{T}(GeV)");
3629         
3630         fHistLambdaEtaET = CreateEtaEtHisto2D("fHistLambdaEtaET_","MC Lambda daughters","#");
3631         fHistLambdaRecEtaET = CreateEtaEtHisto2D("fHistLambdaRecEtaET_","MC Lambda daughters","#");
3632         
3633         fHistLambdaEtaE = CreateEtaEHisto2D("fHistLambdaEtaE_","MC Lambda daughters","#");
3634         fHistLambdaRecEtaE = CreateEtaEHisto2D("fHistLambdaRecEtaE_","MC Lambda daughters","#");
3635         
3636         fHistLambdaEtaPt = CreateEtaPtHisto2D("fHistLambdaEtaPt_","MC Lambda daughters","#");
3637         fHistLambdaRecEtaPt = CreateEtaPtHisto2D("fHistLambdaRecEtaPt_","MC Lambda daughters","#");
3638                 
3639         histname = "fHistLambdatotET_" + fHistogramNameSuffix;
3640         fHistLambdatotET = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);
3641         histname = "fHistLambdaRectotET_" + fHistogramNameSuffix;
3642         fHistLambdaRectotET = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);
3643         histname = "fHistLambdaRectotETDep_" + fHistogramNameSuffix;
3644         fHistLambdaRectotETDep = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);      
3645         
3646         fHistLambdaRecEtaEDepETDep = CreateEtaEHisto2D("fHistLambdaRecEtaEDepETDep_","MC E_{T}, MC Lambdas daughters, reconstructed","E_{T} dep (GeV)");
3647         fHistLambdaRecEtaETDep = CreateEtaEtHisto2D("fHistLambdaRecEtaETDep_","MC Lambdas daughters","#");
3648         
3649         fHistLambdaRecEtaPtETDep = CreateEtaPtHisto2D("fHistLambdaRecEtaPtETDep_","MC E_{T}, MC Lambdas daughters","E_{T} dep (GeV)");
3650
3651         histname = "fHistTotNeutraltotET_" + fHistogramNameSuffix;
3652         fHistTotNeutraltotET = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);
3653         histname = "fHistTotNeutralRectotET_" + fHistogramNameSuffix;
3654         fHistTotNeutralRectotET = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);
3655         histname = "fHistTotNeutralRectotETDep_" + fHistogramNameSuffix;
3656         fHistTotNeutralRectotETDep = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);  
3657         
3658         histname = "fHistTotaltotET_" + fHistogramNameSuffix;
3659         fHistTotaltotET = new TH1F(histname.Data(),"total ET, all particles",fgNumOfEBins, fgEAxis);
3660         histname = "fHistTotalAcctotET_" + fHistogramNameSuffix;
3661         fHistTotalAcctotET = new TH1F(histname.Data(),"total ET, all particles",fgNumOfEBins, fgEAxis);
3662         histname = "fHistTotalRectotET_" + fHistogramNameSuffix;
3663         fHistTotalRectotET = new TH1F(histname.Data(),"total ET, all particles",fgNumOfEBins, fgEAxis);
3664         histname = "fHistTotalRectotETDep_" + fHistogramNameSuffix;
3665         fHistTotalRectotETDep = new TH1F(histname.Data(),"total ET, all particles",fgNumOfEBins, fgEAxis);      
3666         
3667         histname = "fHistAll_ERecvsMC_" + fHistogramNameSuffix;
3668         fHistAllERecEMC = new TH2F(histname.Data(),"E cluster Rec vs MC, all particles",fgNumOfEBins, fgEAxis,fgNumOfEBins, fgEAxis);
3669         fHistAllERecEMC->SetXTitle("E_{MC}(GeV)");
3670         fHistAllERecEMC->SetYTitle("E_{Rec}(GeV)");
3671         
3672         histname = "fHistElectron_ERecvsMC_" + fHistogramNameSuffix;
3673         fHistElectronERecEMC = new TH2F(histname.Data(),"E cluster Rec vs MC, Electrons",fgNumOfEBins, fgEAxis,fgNumOfEBins, fgEAxis);
3674         fHistElectronERecEMC->SetXTitle("E_{MC}(GeV)");
3675         fHistElectronERecEMC->SetYTitle("E_{Rec}(GeV)");
3676         
3677         histname = "fHistGamma_ERecvsMC_" + fHistogramNameSuffix;
3678         fHistGammaERecEMC = new TH2F(histname.Data(),"E cluster Rec vs MC, Gammas",fgNumOfEBins, fgEAxis,fgNumOfEBins, fgEAxis);
3679         fHistGammaERecEMC->SetXTitle("E_{MC}(GeV)");
3680         fHistGammaERecEMC->SetYTitle("E_{Rec}(GeV)");
3681         
3682         histname = "fHistAllPtRecPtMC_" + fHistogramNameSuffix;
3683         fHistAllPtRecPtMC = new TH2F(histname.Data(),"pt track Rec vs MC, all particles",fgNumOfEBins, fgEAxis,fgNumOfEBins, fgEAxis);
3684         fHistAllPtRecPtMC->SetXTitle("p_{T}^{MC}(GeV/c)");
3685         fHistAllPtRecPtMC->SetYTitle("p_{T}^{Rec}(GeV/c)");     
3686         
3687         histname = "fHistChargedRes_" + fHistogramNameSuffix;
3688         fHistChargedRes = new TH2F(histname.Data(),"#Delta#phi vs #Delta#eta (track projection - cluster position), charged particles",200,-0.1,0.1,200,-0.1,0.1);
3689         fHistChargedRes->SetXTitle("#Delta#phi");
3690         fHistChargedRes->SetYTitle("#Delta#eta");
3691         
3692         histname = "fHistChargedRes2_" + fHistogramNameSuffix;
3693         fHistChargedRes2 = new TH2F(histname.Data(),"#Delta#phi vs #Delta#eta (track projection - cluster position), charged particles",200,-0.1,0.1,200,-0.1,0.1);
3694         fHistChargedRes2->SetXTitle("#Delta#phi");
3695         fHistChargedRes2->SetYTitle("#Delta#eta");
3696         
3697         histname = "fHistChargedRes3_" + fHistogramNameSuffix;
3698         fHistChargedRes3 = new TH2F(histname.Data(),"#Delta#phi vs #Delta#eta (track projection - cluster position), charged particles",200,-0.1,0.1,200,-0.1,0.1);
3699         fHistChargedRes3->SetXTitle("#Delta#phi");
3700         fHistChargedRes3->SetYTitle("#Delta#eta");
3701         
3702         histname = "fHistNeutralRes_" + fHistogramNameSuffix;
3703         fHistNeutralRes = new TH2F(histname.Data(),"#Delta#phi vs #Delta#eta (track projection - cluster position), neutral particles",200,-0.1,0.1,200,-0.1,0.1);
3704         fHistNeutralRes->SetXTitle("#Delta#phi");
3705         fHistNeutralRes->SetYTitle("#Delta#eta");
3706         
3707         histname = "fHistElectronRes_" + fHistogramNameSuffix;
3708         fHistElectronRes = new TH2F(histname.Data(),"#Delta#phi vs #Delta#eta (track projection - cluster position, Electrons",200,-0.1,0.1,200,-0.1,0.1);
3709         fHistElectronRes->SetXTitle("#Delta#phi");
3710         fHistElectronRes->SetYTitle("#Delta#eta");
3711         
3712         histname = "fHistGammaRes_" + fHistogramNameSuffix;
3713         fHistGammaRes = new TH2F(histname.Data(),"#Delta#phi vs #Delta#eta (track projection - cluster position, Gammas",200,-0.1,0.1,200,-0.1,0.1);
3714         fHistGammaRes->SetXTitle("#Delta#phi");
3715         fHistGammaRes->SetYTitle("#Delta#eta");
3716         
3717         histname = "fHistIsInAcc_" + fHistogramNameSuffix;
3718         //fHistIsInAcc = new TH2F(histname.Data(),"X,Y position of particle projection inside EMCal",1201,-600.5,600.5,1201,-600.5,600.5);
3719         //fHistIsInAcc->SetXTitle("X (cm)");
3720         //fHistIsInAcc->SetYTitle("Y (cm)");
3721         fHistIsInAcc = new TH2F(histname.Data(),"#phhi, #eta position of particle projection inside EMCal",360,0.,360.,200,-1.,1.);
3722         fHistIsInAcc->SetXTitle("#phi");
3723         fHistIsInAcc->SetYTitle("#eta");
3724         
3725         histname = "fHistElectronFirstMother_" + fHistogramNameSuffix;
3726         fHistElectronFirstMother = new TH1F(histname.Data(),"Electron First Mother PDG Code",1201,-600.5,600.5);
3727         histname = "fHistElectronFirstMotherXY_" + fHistogramNameSuffix;
3728         fHistElectronFirstMotherXY = new TH2F(histname.Data(),"Electron Mother X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3729         histname = "fHistElectronNDaughters_" + fHistogramNameSuffix;
3730         fHistElectronNDaughters = new TH1F(histname.Data(),"Number of Electron Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3731         histname = "fHistElectronDaughters_" + fHistogramNameSuffix;
3732         fHistElectronDaughters = new TH1F(histname.Data(),"Electron Daugther PDG Code",1201,-600.5,600.5);
3733         histname = "fHistElectronDaughtersXY_" + fHistogramNameSuffix;
3734         fHistElectronDaughtersXY = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3735         
3736         histname = "fHistElectronFirstMotherAcc_" + fHistogramNameSuffix;
3737         fHistElectronFirstMotherAcc = new TH1F(histname.Data(),"Electron First Mother PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3738         histname = "fHistElectronFirstMotherXYAcc_" + fHistogramNameSuffix;
3739         fHistElectronFirstMotherXYAcc = new TH2F(histname.Data(),"Electron Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3740         histname = "fHistElectronNDaughtersAcc_" + fHistogramNameSuffix;
3741         fHistElectronNDaughtersAcc = new TH1F(histname.Data(),"Number of Electron Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3742         histname = "fHistElectronDaughtersAcc_" + fHistogramNameSuffix;
3743         fHistElectronDaughtersAcc = new TH1F(histname.Data(),"Electron Daugther PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3744         histname = "fHistElectronDaughtersXYAcc_" + fHistogramNameSuffix;
3745         fHistElectronDaughtersXYAcc = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3746         
3747         histname = "fHistElectronFirstMotherRec_" + fHistogramNameSuffix;
3748         fHistElectronFirstMotherRec = new TH1F(histname.Data(),"Reconstructed Electron First Mother PDG Code",1201,-600.5,600.5);
3749         histname = "fHistElectronFirstMotherXYRec_" + fHistogramNameSuffix;
3750         fHistElectronFirstMotherXYRec = new TH2F(histname.Data(),"Electron Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3751         histname = "fHistElectronNDaughtersRec_" + fHistogramNameSuffix;
3752         fHistElectronNDaughtersRec = new TH1F(histname.Data(),"Number of Electron Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3753         histname = "fHistElectronDaughtersRec_" + fHistogramNameSuffix;
3754         fHistElectronDaughtersRec = new TH1F(histname.Data(),"Electron Daugther PDG Code",1201,-600.5,600.5);
3755         histname = "fHistElectronDaughtersXYRec_" + fHistogramNameSuffix;
3756         fHistElectronDaughtersXYRec = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3757
3758         histname = "fHistNPPElectronFirstMother_" + fHistogramNameSuffix;
3759         fHistNPPElectronFirstMother = new TH1F(histname.Data(),"Electron First Mother PDG Code",1201,-600.5,600.5);
3760         histname = "fHistNPPElectronFirstMotherXY_" + fHistogramNameSuffix;
3761         fHistNPPElectronFirstMotherXY = new TH2F(histname.Data(),"Electron Mother X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3762         histname = "fHistNPPElectronNDaughters_" + fHistogramNameSuffix;
3763         fHistNPPElectronNDaughters = new TH1F(histname.Data(),"Number of Electron Daugthers",11,-0.5,10.5);
3764         histname = "fHistNPPElectronDaughters_" + fHistogramNameSuffix;
3765         fHistNPPElectronDaughters = new TH1F(histname.Data(),"Electron Daugther PDG Code",1201,-600.5,600.5);
3766         histname = "fHistNPPElectronDaughtersXY_" + fHistogramNameSuffix;
3767         fHistNPPElectronDaughtersXY = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3768         
3769         histname = "fHistNPPElectronFirstMotherAcc_" + fHistogramNameSuffix;
3770         fHistNPPElectronFirstMotherAcc = new TH1F(histname.Data(),"Electron First Mother PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3771         histname = "fHistNPPElectronFirstMotherXYAcc_" + fHistogramNameSuffix;
3772         fHistNPPElectronFirstMotherXYAcc = new TH2F(histname.Data(),"Electron Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3773         histname = "fHistNPPElectronNDaughtersAcc_" + fHistogramNameSuffix;
3774         fHistNPPElectronNDaughtersAcc = new TH1F(histname.Data(),"Number of Electron Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3775         histname = "fHistNPPElectronDaughtersAcc_" + fHistogramNameSuffix;
3776         fHistNPPElectronDaughtersAcc = new TH1F(histname.Data(),"Electron Daugther PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3777         histname = "fHistNPPElectronDaughtersXYAcc_" + fHistogramNameSuffix;
3778         fHistNPPElectronDaughtersXYAcc = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3779         
3780         histname = "fHistNPPElectronFirstMotherRec_" + fHistogramNameSuffix;
3781         fHistNPPElectronFirstMotherRec = new TH1F(histname.Data(),"Reconstructed Electron First Mother PDG Code",1201,-600.5,600.5);
3782         histname = "fHistNPPElectronFirstMotherXYRec_" + fHistogramNameSuffix;
3783         fHistNPPElectronFirstMotherXYRec = new TH2F(histname.Data(),"Electron Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3784         histname = "fHistNPPElectronNDaughtersRec_" + fHistogramNameSuffix;
3785         fHistNPPElectronNDaughtersRec = new TH1F(histname.Data(),"Number of Electron Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3786         histname = "fHistNPPElectronDaughtersRec_" + fHistogramNameSuffix;
3787         fHistNPPElectronDaughtersRec = new TH1F(histname.Data(),"Electron Daugther PDG Code",1201,-600.5,600.5);
3788         histname = "fHistNPPElectronDaughtersXYRec_" + fHistogramNameSuffix;
3789         fHistNPPElectronDaughtersXYRec = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3790         
3791         histname = "fHistGammaFirstMother_" + fHistogramNameSuffix;
3792         fHistGammaFirstMother = new TH1F(histname.Data(),"Gamma First Mother PDG Code",1201,-600.5,600.5);
3793         histname = "fHistGammaFirstMotherXY_" + fHistogramNameSuffix;
3794         fHistGammaFirstMotherXY = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3795         histname = "fHistGammaNDaughters_" + fHistogramNameSuffix;
3796         fHistGammaNDaughters = new TH1F(histname.Data(),"Number of Gamma Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3797         histname = "fHistGammaDaughters_" + fHistogramNameSuffix;
3798         fHistGammaDaughters = new TH1F(histname.Data(),"Gamma Daugther PDG Code",1201,-600.5,600.5);
3799         histname = "fHistGammaDaughtersXY_" + fHistogramNameSuffix;
3800         fHistGammaDaughtersXY = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3801         histname = "fHistConvGammaDaughtersXY_" + fHistogramNameSuffix;
3802         fHistConvGammaDaughtersXY = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3803         histname = "fHistNonConvGammaDaughtersXY_" + fHistogramNameSuffix;
3804         fHistNonConvGammaDaughtersXY = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3805         
3806         histname = "fHistGammaFirstMotherAcc_" + fHistogramNameSuffix;
3807         fHistGammaFirstMotherAcc = new TH1F(histname.Data(),"Gamma First Mother PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3808         histname = "fHistGammaFirstMotherXYAcc_" + fHistogramNameSuffix;
3809         fHistGammaFirstMotherXYAcc = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3810         histname = "fHistGammaNDaughtersAcc_" + fHistogramNameSuffix;
3811         fHistGammaNDaughtersAcc = new TH1F(histname.Data(),"Number of Gamma Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3812         histname = "fHistGammaDaughtersAcc_" + fHistogramNameSuffix;
3813         fHistGammaDaughtersAcc = new TH1F(histname.Data(),"Gamma Daugther PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3814         histname = "fHistGammaDaughtersXYAcc_" + fHistogramNameSuffix;
3815         fHistGammaDaughtersXYAcc = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3816         histname = "fHistConvGammaDaughtersXYAcc_" + fHistogramNameSuffix;
3817         fHistConvGammaDaughtersXYAcc = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3818         histname = "fHistNonConvGammaDaughtersXYAcc_" + fHistogramNameSuffix;
3819         fHistNonConvGammaDaughtersXYAcc = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3820         
3821         histname = "fHistGammaFirstMotherRec_" + fHistogramNameSuffix;
3822         fHistGammaFirstMotherRec = new TH1F(histname.Data(),"Reconstructed Gamma First Mother PDG Code",1201,-600.5,600.5);
3823         histname = "fHistGammaFirstMotherXYRec_" + fHistogramNameSuffix;
3824         fHistGammaFirstMotherXYRec = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3825         histname = "fHistGammaNDaughtersRec_" + fHistogramNameSuffix;
3826         fHistGammaNDaughtersRec = new TH1F(histname.Data(),"Number of Gamma Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3827         histname = "fHistGammaDaughtersRec_" + fHistogramNameSuffix;
3828         fHistGammaDaughtersRec = new TH1F(histname.Data(),"Gamma Daugther PDG Code",1201,-600.5,600.5);
3829         histname = "fHistGammaDaughtersXYRec_" + fHistogramNameSuffix;
3830         fHistGammaDaughtersXYRec = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3831         histname = "fHistConvGammaDaughtersXYRec_" + fHistogramNameSuffix;
3832         fHistConvGammaDaughtersXYRec = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3833         histname = "fHistNonConvGammaDaughtersXYRec_" + fHistogramNameSuffix;
3834         fHistNonConvGammaDaughtersXYRec = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3835         
3836         histname = "fHistNPPGammaFirstMother_" + fHistogramNameSuffix;
3837         fHistNPPGammaFirstMother = new TH1F(histname.Data(),"Gamma First Mother PDG Code",1201,-600.5,600.5);
3838         histname = "fHistNPPGammaFirstMotherXY_" + fHistogramNameSuffix;
3839         fHistNPPGammaFirstMotherXY = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3840         histname = "fHistNPPGammaNDaughters_" + fHistogramNameSuffix;
3841         fHistNPPGammaNDaughters = new TH1F(histname.Data(),"Number of Gamma Daugthers",11,-0.5,10.5);
3842         histname = "fHistNPPGammaDaughters_" + fHistogramNameSuffix;
3843         fHistNPPGammaDaughters = new TH1F(histname.Data(),"Gamma Daugther PDG Code",1201,-600.5,600.5);
3844         histname = "fHistNPPGammaDaughtersXY_" + fHistogramNameSuffix;
3845         fHistNPPGammaDaughtersXY = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3846         
3847         histname = "fHistNPPGammaFirstMotherAcc_" + fHistogramNameSuffix;
3848         fHistNPPGammaFirstMotherAcc = new TH1F(histname.Data(),"Gamma First Mother PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3849         histname = "fHistNPPGammaFirstMotherXYAcc_" + fHistogramNameSuffix;
3850         fHistNPPGammaFirstMotherXYAcc = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3851         histname = "fHistNPPGammaNDaughtersAcc_" + fHistogramNameSuffix;
3852         fHistNPPGammaNDaughtersAcc = new TH1F(histname.Data(),"Number of Gamma Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3853         histname = "fHistNPPGammaDaughtersAcc_" + fHistogramNameSuffix;
3854         fHistNPPGammaDaughtersAcc = new TH1F(histname.Data(),"Gamma Daugther PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3855         histname = "fHistNPPGammaDaughtersXYAcc_" + fHistogramNameSuffix;
3856         fHistNPPGammaDaughtersXYAcc = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3857         
3858         histname = "fHistNPPGammaFirstMotherRec_" + fHistogramNameSuffix;
3859         fHistNPPGammaFirstMotherRec = new TH1F(histname.Data(),"Reconstructed Gamma First Mother PDG Code",1201,-600.5,600.5);
3860         histname = "fHistNPPGammaFirstMotherXYRec_" + fHistogramNameSuffix;
3861         fHistNPPGammaFirstMotherXYRec = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3862         histname = "fHistNPPGammaNDaughtersRec_" + fHistogramNameSuffix;
3863         fHistNPPGammaNDaughtersRec = new TH1F(histname.Data(),"Number of Gamma Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3864         histname = "fHistNPPGammaDaughtersRec_" + fHistogramNameSuffix;
3865         fHistNPPGammaDaughtersRec = new TH1F(histname.Data(),"Gamma Daugther PDG Code",1201,-600.5,600.5);
3866         histname = "fHistNPPGammaDaughtersXYRec_" + fHistogramNameSuffix;
3867         fHistNPPGammaDaughtersXYRec = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3868 }
3869
3870 void AliAnalysisEmEtMonteCarlo::FillOutputList(TList *list)
3871 {//fill the output tlist
3872         //AliAnalysisEt::FillOutputList(list);
3873
3874         list->Add(fHistPrimEtaEET); 
3875         list->Add(fHistPrimEtaPtET); 
3876         list->Add(fHistPrimEtaET); 
3877         list->Add(fHistPrimtotET); 
3878         
3879         list->Add(fHistPrimAccEtaEET); 
3880         list->Add(fHistPrimAccEtaPtET); 
3881         list->Add(fHistPrimAccEtaET); 
3882         list->Add(fHistPrimAcctotET); 
3883
3884         list->Add(fHistPrimRecEtaEET); 
3885         list->Add(fHistPrimRecEtaPtET); 
3886         list->Add(fHistPrimRecEtaET); 
3887         list->Add(fHistPrimRectotET); 
3888
3889         list->Add(fHistPrimRecEtaEDepETDep); 
3890         list->Add(fHistPrimRecEtaPtETDep); 
3891         list->Add(fHistPrimRecEtaETDep); 
3892         list->Add(fHistPrimRectotETDep); 
3893         
3894         list->Add(fHistElectronEtaEET); 
3895         list->Add(fHistElectronEtaPtET); 
3896         list->Add(fHistElectronEtaET); 
3897         list->Add(fHistElectronEtaE); 
3898         list->Add(fHistElectronEtaPt); 
3899         list->Add(fHistElectrontotET); 
3900         
3901         list->Add(fHistConvElectronEtaEET);  
3902         list->Add(fHistConvElectronEtaPtET);  
3903         list->Add(fHistConvElectronEtaET);  
3904         list->Add(fHistConvElectronEtaE);  
3905         list->Add(fHistConvElectronEtaPt);  
3906         list->Add(fHistConvElectrontotET);  
3907         
3908         list->Add(fHistScatElectronEtaEET);  
3909         list->Add(fHistScatElectronEtaPtET);  
3910         list->Add(fHistScatElectronEtaET);  
3911         list->Add(fHistScatElectronEtaE);  
3912         list->Add(fHistScatElectronEtaPt);  
3913         list->Add(fHistScatElectrontotET);  
3914         
3915         list->Add(fHistTotElectrontotET); 
3916
3917         list->Add(fHistGammaEtaEET);  
3918         list->Add(fHistGammaEtaPtET);  
3919         list->Add(fHistGammaEtaET);  
3920         list->Add(fHistGammaEtaE);  
3921         list->Add(fHistGammaEtaPt);  
3922         list->Add(fHistGammatotET);  
3923         
3924         list->Add(fHistAnnihGammaEtaEET);  
3925         list->Add(fHistAnnihGammaEtaPtET);  
3926         list->Add(fHistAnnihGammaEtaET);  
3927         list->Add(fHistAnnihGammaEtaE);  
3928         list->Add(fHistAnnihGammaEtaPt);  
3929         list->Add(fHistAnnihGammatotET);  
3930         
3931         list->Add(fHistScatGammaEtaEET);  
3932         list->Add(fHistScatGammaEtaPtET);  
3933         list->Add(fHistScatGammaEtaET);  
3934         list->Add(fHistScatGammaEtaE);  
3935         list->Add(fHistScatGammaEtaPt);  
3936         list->Add(fHistScatGammatotET);  
3937
3938         list->Add(fHistConvGammaEtaEET);  
3939         list->Add(fHistConvGammaEtaPtET);  
3940         list->Add(fHistConvGammaEtaET);  
3941         list->Add(fHistConvGammaEtaE);  
3942         list->Add(fHistConvGammaEtaPt);  
3943         list->Add(fHistConvGammatotET);  
3944         
3945         list->Add(fHistNonConvGammaEtaEET);  
3946         list->Add(fHistNonConvGammaEtaPtET);  
3947         list->Add(fHistNonConvGammaEtaET);  
3948         list->Add(fHistNonConvGammaEtaE);  
3949         list->Add(fHistNonConvGammaEtaPt);  
3950         list->Add(fHistNonConvGammatotET);  
3951                 
3952         list->Add(fHistTotGammatotET);  
3953
3954         list->Add(fHistTotEMtotET); 
3955
3956         list->Add(fHistNPPElectronEtaEET); 
3957         list->Add(fHistNPPElectronEtaPtET); 
3958         list->Add(fHistNPPElectronEtaET); 
3959         list->Add(fHistNPPElectronEtaE); 
3960         list->Add(fHistNPPElectronEtaPt); 
3961         list->Add(fHistNPPElectrontotET); 
3962         
3963         list->Add(fHistNPPGammaEtaEET); 
3964         list->Add(fHistNPPGammaEtaPtET); 
3965         list->Add(fHistNPPGammaEtaET); 
3966         list->Add(fHistNPPGammaEtaE); 
3967         list->Add(fHistNPPGammaEtaPt); 
3968         list->Add(fHistNPPGammatotET); 
3969
3970         list->Add(fHistTotNPPEMtotET); 
3971
3972         list->Add(fHistNPPPi0GammaEtaEET); 
3973         list->Add(fHistNPPPi0GammaEtaPtET); 
3974         list->Add(fHistNPPPi0GammaEtaET); 
3975         list->Add(fHistNPPPi0GammaEtaE); 
3976         list->Add(fHistNPPPi0GammaEtaPt); 
3977         list->Add(fHistNPPPi0GammatotET); 
3978         
3979         list->Add(fHistElectronAccEtaEET); 
3980         list->Add(fHistElectronAccEtaPtET); 
3981         list->Add(fHistElectronAccEtaET); 
3982         list->Add(fHistElectronAccEtaE); 
3983         list->Add(fHistElectronAccEtaPt); 
3984         list->Add(fHistElectronAcctotET); 
3985         
3986         list->Add(fHistConvElectronAccEtaEET);  
3987         list->Add(fHistConvElectronAccEtaPtET);  
3988         list->Add(fHistConvElectronAccEtaET);  
3989         list->Add(fHistConvElectronAccEtaE);  
3990         list->Add(fHistConvElectronAccEtaPt);  
3991         list->Add(fHistConvElectronAcctotET);  
3992         
3993         list->Add(fHistScatElectronAccEtaEET);  
3994         list->Add(fHistScatElectronAccEtaPtET);  
3995         list->Add(fHistScatElectronAccEtaET);  
3996         list->Add(fHistScatElectronAccEtaE);  
3997         list->Add(fHistScatElectronAccEtaPt);  
3998         list->Add(fHistScatElectronAcctotET);  
3999         
4000         list->Add(fHistTotElectronAcctotET); 
4001
4002         list->Add(fHistGammaAccEtaEET);  
4003         list->Add(fHistGammaAccEtaPtET);  
4004         list->Add(fHistGammaAccEtaET);  
4005         list->Add(fHistGammaAccEtaE);  
4006         list->Add(fHistGammaAccEtaPt);  
4007         list->Add(fHistGammaAcctotET);  
4008         
4009         list->Add(fHistConvGammaAccEtaEET);  
4010         list->Add(fHistConvGammaAccEtaPtET);  
4011         list->Add(fHistConvGammaAccEtaET);  
4012         list->Add(fHistConvGammaAccEtaE);  
4013         list->Add(fHistConvGammaAccEtaPt);  
4014         list->Add(fHistConvGammaAcctotET);  
4015         
4016         list->Add(fHistNonConvGammaAccEtaEET);  
4017         list->Add(fHistNonConvGammaAccEtaPtET);  
4018         list->Add(fHistNonConvGammaAccEtaET);  
4019         list->Add(fHistNonConvGammaAccEtaE);  
4020         list->Add(fHistNonConvGammaAccEtaPt);  
4021         list->Add(fHistNonConvGammaAcctotET);  
4022         
4023         list->Add(fHistAnnihGammaAccEtaEET);  
4024         list->Add(fHistAnnihGammaAccEtaPtET);  
4025         list->Add(fHistAnnihGammaAccEtaET);  
4026         list->Add(fHistAnnihGammaAccEtaE);  
4027         list->Add(fHistAnnihGammaAccEtaPt);  
4028         list->Add(fHistAnnihGammaAcctotET);  
4029         
4030         list->Add(fHistScatGammaAccEtaEET);  
4031         list->Add(fHistScatGammaAccEtaPtET);  
4032         list->Add(fHistScatGammaAccEtaET);  
4033         list->Add(fHistScatGammaAccEtaE);  
4034         list->Add(fHistScatGammaAccEtaPt);  
4035         list->Add(fHistScatGammaAcctotET);  
4036
4037         list->Add(fHistTotGammaAcctotET);  
4038
4039         list->Add(fHistTotEMAcctotET); 
4040
4041         list->Add(fHistNPPElectronAccEtaEET); 
4042         list->Add(fHistNPPElectronAccEtaPtET); 
4043         list->Add(fHistNPPElectronAccEtaE); 
4044         list->Add(fHistNPPElectronAccEtaPt); 
4045         
4046         list->Add(fHistNPPGammaAccEtaEET); 
4047         list->Add(fHistNPPGammaAccEtaPtET); 
4048         list->Add(fHistNPPGammaAccEtaE); 
4049         list->Add(fHistNPPGammaAccEtaPt); 
4050         
4051         list->Add(fHistElectronRecEtaEET); 
4052         list->Add(fHistElectronRecEtaPtET); 
4053         list->Add(fHistElectronRecEtaET); 
4054         list->Add(fHistElectronRecEtaE); 
4055         list->Add(fHistElectronRecEtaPt); 
4056         list->Add(fHistElectronRectotET); 
4057         
4058         list->Add(fHistConvElectronRecEtaEET);  
4059         list->Add(fHistConvElectronRecEtaPtET);  
4060         list->Add(fHistConvElectronRecEtaET);  
4061         list->Add(fHistConvElectronRecEtaE);  
4062         list->Add(fHistConvElectronRecEtaPt);  
4063         list->Add(fHistConvElectronRectotET);  
4064         
4065         list->Add(fHistScatElectronRecEtaEET);  
4066         list->Add(fHistScatElectronRecEtaPtET);  
4067         list->Add(fHistScatElectronRecEtaET);  
4068         list->Add(fHistScatElectronRecEtaE);  
4069         list->Add(fHistScatElectronRecEtaPt);  
4070         list->Add(fHistScatElectronRectotET);  
4071         
4072         list->Add(fHistTotElectronRectotET); 
4073
4074         list->Add(fHistGammaRecEtaEET);  
4075         list->Add(fHistGammaRecEtaPtET);  
4076         list->Add(fHistGammaRecEtaET);  
4077         list->Add(fHistGammaRecEtaE);  
4078         list->Add(fHistGammaRecEtaPt);  
4079         list->Add(fHistGammaRectotET);  
4080         
4081         list->Add(fHistAnnihGammaRecEtaEET);  
4082         list->Add(fHistAnnihGammaRecEtaPtET);  
4083         list->Add(fHistAnnihGammaRecEtaET);  
4084         list->Add(fHistAnnihGammaRecEtaE);  
4085         list->Add(fHistAnnihGammaRecEtaPt);  
4086         list->Add(fHistAnnihGammaRectotET);  
4087         
4088         list->Add(fHistScatGammaRecEtaEET);  
4089         list->Add(fHistScatGammaRecEtaPtET);  
4090         list->Add(fHistScatGammaRecEtaET);  
4091         list->Add(fHistScatGammaRecEtaE);  
4092         list->Add(fHistScatGammaRecEtaPt);  
4093         list->Add(fHistScatGammaRectotET);  
4094
4095         list->Add(fHistTotGammaRectotET);  
4096
4097         list->Add(fHistTotEMRectotET); 
4098
4099         list->Add(fHistNPPElectronRecEtaEET); 
4100         list->Add(fHistNPPElectronRecEtaPtET); 
4101         list->Add(fHistNPPElectronRecEtaET); 
4102         list->Add(fHistNPPElectronRecEtaE); 
4103         list->Add(fHistNPPElectronRecEtaPt); 
4104         list->Add(fHistNPPElectronRectotET); 
4105         
4106         list->Add(fHistNPPGammaRecEtaEET); 
4107         list->Add(fHistNPPGammaRecEtaPtET); 
4108         list->Add(fHistNPPGammaRecEtaET); 
4109         list->Add(fHistNPPGammaRecEtaE); 
4110         list->Add(fHistNPPGammaRecEtaPt); 
4111         list->Add(fHistNPPGammaRectotET); 
4112
4113         list->Add(fHistTotNPPEMRectotET); 
4114
4115         list->Add(fHistNPPPi0GammaRecEtaEET); 
4116         list->Add(fHistNPPPi0GammaRecEtaPtET); 
4117         list->Add(fHistNPPPi0GammaRecEtaET); 
4118         list->Add(fHistNPPPi0GammaRecEtaE); 
4119         list->Add(fHistNPPPi0GammaRecEtaPt); 
4120         list->Add(fHistNPPPi0GammaRectotET); 
4121         
4122         list->Add(fHistMuonEtaEET); 
4123         list->Add(fHistMuonAccEtaEET); 
4124         list->Add(fHistMuonRecEtaEET); 
4125         list->Add(fHistMuonMatchEtaEET); 
4126         
4127         list->Add(fHistMuonEtaPtET); 
4128         list->Add(fHistMuonAccEtaPtET); 
4129         list->Add(fHistMuonRecEtaPtET); 
4130         list->Add(fHistMuonMatchEtaPtET); 
4131         
4132         list->Add(fHistMuonEtaET); 
4133         list->Add(fHistMuonAccEtaET); 
4134         list->Add(fHistMuonRecEtaET); 
4135         list->Add(fHistMuonMatchEtaET); 
4136         
4137         list->Add(fHistMuonEtaE); 
4138         list->Add(fHistMuonAccEtaE); 
4139         list->Add(fHistMuonRecEtaE); 
4140         list->Add(fHistMuonMatchEtaE); 
4141         
4142         list->Add(fHistMuonEtaPt); 
4143         list->Add(fHistMuonAccEtaPt); 
4144         list->Add(fHistMuonRecEtaPt); 
4145         list->Add(fHistMuonMatchEtaPt); 
4146         
4147         list->Add(fHistMuontotET); 
4148         list->Add(fHistMuonAcctotET); 
4149         list->Add(fHistMuonRectotET); 
4150         list->Add(fHistMuonMatchtotET); 
4151         
4152         list->Add(fHistMuonRectotETDep); 
4153         list->Add(fHistMuonMatchtotETDep); 
4154         
4155         list->Add(fHistMuonRecEtaEDepETDep); 
4156         list->Add(fHistMuonMatchEtaEDepETDep); 
4157
4158         list->Add(fHistMuonRecEtaPtETDep); 
4159         list->Add(fHistMuonMatchEtaPtETDep); 
4160
4161         list->Add(fHistMuonRecEtaETDep); 
4162         list->Add(fHistMuonMatchEtaETDep); 
4163
4164         list->Add(fHistMuonRecResEET);
4165         list->Add(fHistMuonRecResPtET); 
4166         list->Add(fHistMuonRecResE); 
4167         list->Add(fHistMuonRecResPt); 
4168         list->Add(fHistMuonRecResEDepETDep); 
4169         list->Add(fHistMuonRecResPtETDep); 
4170         
4171         list->Add(fHistPionEtaEET); 
4172         list->Add(fHistPionAccEtaEET); 
4173         list->Add(fHistPionRecEtaEET); 
4174         list->Add(fHistPionMatchEtaEET); 
4175         
4176         list->Add(fHistPionEtaPtET); 
4177         list->Add(fHistPionAccEtaPtET); 
4178         list->Add(fHistPionRecEtaPtET); 
4179         list->Add(fHistPionMatchEtaPtET); 
4180         
4181         list->Add(fHistPionEtaET); 
4182         list->Add(fHistPionAccEtaET); 
4183         list->Add(fHistPionRecEtaET); 
4184         list->Add(fHistPionMatchEtaET); 
4185         
4186         list->Add(fHistPionEtaE); 
4187         list->Add(fHistPionAccEtaE); 
4188         list->Add(fHistPionRecEtaE); 
4189         list->Add(fHistPionMatchEtaE); 
4190         
4191         list->Add(fHistPionEtaPt); 
4192         list->Add(fHistPionAccEtaPt); 
4193         list->Add(fHistPionRecEtaPt); 
4194         list->Add(fHistPionMatchEtaPt); 
4195         
4196         list->Add(fHistPiontotET); 
4197         list->Add(fHistPionAcctotET); 
4198         list->Add(fHistPionRectotET); 
4199         list->Add(fHistPionMatchtotET); 
4200         
4201         list->Add(fHistPionRectotETDep); 
4202         list->Add(fHistPionMatchtotETDep); 
4203         
4204         list->Add(fHistPionRecEtaEDepETDep); 
4205         list->Add(fHistPionMatchEtaEDepETDep); 
4206         
4207         list->Add(fHistPionRecEtaPtETDep); 
4208         list->Add(fHistPionMatchEtaPtETDep); 
4209         
4210         list->Add(fHistPionRecEtaETDep); 
4211         list->Add(fHistPionMatchEtaETDep); 
4212         
4213         list->Add(fHistPionRecResEET);
4214         list->Add(fHistPionRecResPtET); 
4215         list->Add(fHistPionRecResE); 
4216         list->Add(fHistPionRecResPt); 
4217         list->Add(fHistPionRecResEDepETDep); 
4218         list->Add(fHistPionRecResPtETDep); 
4219         
4220         list->Add(fHistKaonEtaEET); 
4221         list->Add(fHistKaonAccEtaEET); 
4222         list->Add(fHistKaonRecEtaEET); 
4223         list->Add(fHistKaonMatchEtaEET); 
4224         
4225         list->Add(fHistKaonEtaPtET); 
4226         list->Add(fHistKaonAccEtaPtET); 
4227         list->Add(fHistKaonRecEtaPtET); 
4228         list->Add(fHistKaonMatchEtaPtET); 
4229         
4230         list->Add(fHistKaonEtaET); 
4231         list->Add(fHistKaonAccEtaET); 
4232         list->Add(fHistKaonRecEtaET); 
4233         list->Add(fHistKaonMatchEtaET); 
4234         
4235         list->Add(fHistKaonEtaE); 
4236         list->Add(fHistKaonAccEtaE); 
4237         list->Add(fHistKaonRecEtaE); 
4238         list->Add(fHistKaonMatchEtaE); 
4239         
4240         list->Add(fHistKaonEtaPt); 
4241         list->Add(fHistKaonAccEtaPt); 
4242         list->Add(fHistKaonRecEtaPt); 
4243         list->Add(fHistKaonMatchEtaPt); 
4244         
4245         list->Add(fHistKaontotET); 
4246         list->Add(fHistKaonAcctotET); 
4247         list->Add(fHistKaonRectotET); 
4248         list->Add(fHistKaonMatchtotET); 
4249         
4250         list->Add(fHistKaonRectotETDep); 
4251         list->Add(fHistKaonMatchtotETDep); 
4252         
4253         list->Add(fHistKaonRecEtaEDepETDep); 
4254         list->Add(fHistKaonMatchEtaEDepETDep); 
4255         
4256         list->Add(fHistKaonRecEtaPtETDep); 
4257         list->Add(fHistKaonMatchEtaPtETDep); 
4258         
4259         list->Add(fHistKaonRecEtaETDep); 
4260         list->Add(fHistKaonMatchEtaETDep); 
4261         
4262         list->Add(fHistKaonRecResEET);
4263         list->Add(fHistKaonRecResPtET); 
4264         list->Add(fHistKaonRecResE); 
4265         list->Add(fHistKaonRecResPt); 
4266         list->Add(fHistKaonRecResEDepETDep); 
4267         list->Add(fHistKaonRecResPtETDep); 
4268         
4269         list->Add(fHistProtonEtaEET); 
4270         list->Add(fHistProtonAccEtaEET); 
4271         list->Add(fHistProtonRecEtaEET); 
4272         list->Add(fHistProtonMatchEtaEET); 
4273         
4274         list->Add(fHistProtonEtaPtET); 
4275         list->Add(fHistProtonAccEtaPtET); 
4276         list->Add(fHistProtonRecEtaPtET); 
4277         list->Add(fHistProtonMatchEtaPtET); 
4278         
4279         list->Add(fHistProtonEtaET); 
4280         list->Add(fHistProtonAccEtaET); 
4281         list->Add(fHistProtonRecEtaET); 
4282         list->Add(fHistProtonMatchEtaET); 
4283         
4284         list->Add(fHistProtonEtaE); 
4285         list->Add(fHistProtonAccEtaE); 
4286         list->Add(fHistProtonRecEtaE); 
4287         list->Add(fHistProtonMatchEtaE); 
4288         
4289         list->Add(fHistProtonEtaPt); 
4290         list->Add(fHistProtonAccEtaPt); 
4291         list->Add(fHistProtonRecEtaPt); 
4292         list->Add(fHistProtonMatchEtaPt); 
4293
4294         list->Add(fHistProtontotET); 
4295         list->Add(fHistProtonAcctotET); 
4296         list->Add(fHistProtonRectotET); 
4297         list->Add(fHistProtonMatchtotET); 
4298         
4299         list->Add(fHistProtonRectotETDep); 
4300         list->Add(fHistProtonMatchtotETDep); 
4301         
4302         list->Add(fHistProtonRecEtaEDepETDep); 
4303         list->Add(fHistProtonMatchEtaEDepETDep); 
4304         
4305         list->Add(fHistProtonRecEtaPtETDep); 
4306         list->Add(fHistProtonMatchEtaPtETDep); 
4307         
4308         list->Add(fHistProtonRecEtaETDep); 
4309         list->Add(fHistProtonMatchEtaETDep); 
4310         
4311         list->Add(fHistProtonRecResEET);
4312         list->Add(fHistProtonRecResPtET); 
4313         list->Add(fHistProtonRecResE); 
4314         list->Add(fHistProtonRecResPt); 
4315         list->Add(fHistProtonRecResEDepETDep); 
4316         list->Add(fHistProtonRecResPtETDep); 
4317
4318         list->Add(fHistTotChargedtotET); 
4319         list->Add(fHistTotChargedAcctotET); 
4320         list->Add(fHistTotChargedRectotET); 
4321         list->Add(fHistTotChargedMatchtotET); 
4322         
4323         list->Add(fHistTotChargedRectotETDep); 
4324         list->Add(fHistTotChargedMatchtotETDep); 
4325         
4326         list->Add(fHistNeutronEtaEET); 
4327         list->Add(fHistNeutronAccEtaEET); 
4328         list->Add(fHistNeutronRecEtaEET); 
4329         
4330         list->Add(fHistNeutronEtaPtET); 
4331         list->Add(fHistNeutronAccEtaPtET); 
4332         list->Add(fHistNeutronRecEtaPtET); 
4333         
4334         list->Add(fHistNeutronEtaET); 
4335         list->Add(fHistNeutronAccEtaET); 
4336         list->Add(fHistNeutronRecEtaET); 
4337         
4338         list->Add(fHistNeutronEtaE); 
4339         list->Add(fHistNeutronAccEtaE); 
4340         list->Add(fHistNeutronRecEtaE); 
4341         
4342         list->Add(fHistNeutronEtaPt); 
4343         list->Add(fHistNeutronAccEtaPt); 
4344         list->Add(fHistNeutronRecEtaPt); 
4345         
4346         list->Add(fHistNeutrontotET); 
4347         list->Add(fHistNeutronAcctotET); 
4348         list->Add(fHistNeutronRectotET); 
4349         list->Add(fHistNeutronRectotETDep); 
4350         
4351         list->Add(fHistNeutronRecEtaEDepETDep); 
4352         list->Add(fHistNeutronRecEtaETDep); 
4353                 
4354         list->Add(fHistNeutronRecEtaPtETDep); 
4355         
4356         list->Add(fHistK0EtaEET); 
4357         list->Add(fHistK0RecEtaEET); 
4358         
4359         list->Add(fHistK0EtaPtET); 
4360         list->Add(fHistK0RecEtaPtET); 
4361         
4362         list->Add(fHistK0EtaET); 
4363         list->Add(fHistK0RecEtaET); 
4364         
4365         list->Add(fHistK0EtaE); 
4366         list->Add(fHistK0RecEtaE); 
4367         
4368         list->Add(fHistK0EtaPt); 
4369         list->Add(fHistK0RecEtaPt); 
4370         
4371         list->Add(fHistK0totET); 
4372         list->Add(fHistK0RectotET); 
4373         list->Add(fHistK0RectotETDep); 
4374         
4375         list->Add(fHistK0RecEtaEDepETDep); 
4376         list->Add(fHistK0RecEtaETDep); 
4377         
4378         list->Add(fHistK0RecEtaPtETDep); 
4379         
4380         list->Add(fHistLambdaEtaEET); 
4381         list->Add(fHistLambdaRecEtaEET); 
4382         
4383         list->Add(fHistLambdaEtaPtET); 
4384         list->Add(fHistLambdaRecEtaPtET); 
4385         
4386         list->Add(fHistLambdaEtaET); 
4387         list->Add(fHistLambdaRecEtaET); 
4388         
4389         list->Add(fHistLambdaEtaE); 
4390         list->Add(fHistLambdaRecEtaE); 
4391         
4392         list->Add(fHistLambdaEtaPt); 
4393         list->Add(fHistLambdaRecEtaPt); 
4394         
4395         list->Add(fHistLambdatotET); 
4396         list->Add(fHistLambdaRectotET); 
4397         list->Add(fHistLambdaRectotETDep); 
4398         
4399         list->Add(fHistLambdaRecEtaEDepETDep); 
4400         list->Add(fHistLambdaRecEtaETDep); 
4401         
4402         list->Add(fHistLambdaRecEtaPtETDep); 
4403         
4404         list->Add(fHistTotNeutraltotET); 
4405         list->Add(fHistTotNeutralRectotET); 
4406         list->Add(fHistTotNeutralRectotETDep); 
4407
4408         list->Add(fHistTotaltotET); 
4409         list->Add(fHistTotalAcctotET); 
4410         list->Add(fHistTotalRectotET); 
4411         list->Add(fHistTotalRectotETDep); 
4412         
4413         list->Add(fHistElectronFirstMother); 
4414         list->Add(fHistElectronFirstMotherXY); 
4415         list->Add(fHistElectronNDaughters); 
4416         list->Add(fHistElectronDaughters); 
4417         list->Add(fHistElectronDaughtersXY); 
4418         
4419         list->Add(fHistElectronFirstMotherAcc);  
4420         list->Add(fHistElectronFirstMotherXYAcc);  
4421         list->Add(fHistElectronNDaughtersAcc); 
4422         list->Add(fHistElectronDaughtersAcc); 
4423         list->Add(fHistElectronDaughtersXYAcc); 
4424         
4425         list->Add(fHistElectronFirstMotherRec);  
4426         list->Add(fHistElectronFirstMotherXYRec);  
4427         list->Add(fHistElectronNDaughtersRec); 
4428         list->Add(fHistElectronDaughtersRec); 
4429         list->Add(fHistElectronDaughtersXYRec); 
4430         
4431         list->Add(fHistNPPElectronFirstMother); 
4432         list->Add(fHistNPPElectronFirstMotherXY); 
4433         list->Add(fHistNPPElectronNDaughters); 
4434         list->Add(fHistNPPElectronDaughters); 
4435         list->Add(fHistNPPElectronDaughtersXY); 
4436         
4437         list->Add(fHistNPPElectronFirstMotherAcc);  
4438         list->Add(fHistNPPElectronFirstMotherXYAcc);  
4439         list->Add(fHistNPPElectronNDaughtersAcc); 
4440         list->Add(fHistNPPElectronDaughtersAcc); 
4441         list->Add(fHistNPPElectronDaughtersXYAcc); 
4442         
4443         list->Add(fHistNPPElectronFirstMotherRec);  
4444         list->Add(fHistNPPElectronFirstMotherXYRec);  
4445         list->Add(fHistNPPElectronNDaughtersRec); 
4446         list->Add(fHistNPPElectronDaughtersRec); 
4447         list->Add(fHistNPPElectronDaughtersXYRec); 
4448         
4449         list->Add(fHistGammaFirstMother); 
4450         list->Add(fHistGammaFirstMotherXY); 
4451         list->Add(fHistGammaNDaughters); 
4452         list->Add(fHistGammaDaughters); 
4453         list->Add(fHistGammaDaughtersXY); 
4454         list->Add(fHistConvGammaDaughtersXY); 
4455         list->Add(fHistNonConvGammaDaughtersXY); 
4456         
4457         list->Add(fHistGammaFirstMotherAcc);  
4458         list->Add(fHistGammaFirstMotherXYAcc);  
4459         list->Add(fHistGammaNDaughtersAcc); 
4460         list->Add(fHistGammaDaughtersAcc); 
4461         list->Add(fHistGammaDaughtersXYAcc); 
4462         list->Add(fHistConvGammaDaughtersXYAcc); 
4463         list->Add(fHistNonConvGammaDaughtersXYAcc); 
4464         
4465         list->Add(fHistGammaFirstMotherRec);  
4466         list->Add(fHistGammaFirstMotherXYRec);  
4467         list->Add(fHistGammaNDaughtersRec); 
4468         list->Add(fHistGammaDaughtersRec); 
4469         list->Add(fHistGammaDaughtersXYRec); 
4470         list->Add(fHistConvGammaDaughtersXYRec); 
4471         list->Add(fHistNonConvGammaDaughtersXYRec); 
4472         
4473         list->Add(fHistNPPGammaFirstMother); 
4474         list->Add(fHistNPPGammaFirstMotherXY); 
4475         list->Add(fHistNPPGammaNDaughters); 
4476         list->Add(fHistNPPGammaDaughters); 
4477         list->Add(fHistNPPGammaDaughtersXY); 
4478         
4479         list->Add(fHistNPPGammaFirstMotherAcc);  
4480         list->Add(fHistNPPGammaFirstMotherXYAcc);  
4481         list->Add(fHistNPPGammaNDaughtersAcc); 
4482         list->Add(fHistNPPGammaDaughtersAcc); 
4483         list->Add(fHistNPPGammaDaughtersXYAcc); 
4484         
4485         list->Add(fHistNPPGammaFirstMotherRec);  
4486         list->Add(fHistNPPGammaFirstMotherXYRec);  
4487         list->Add(fHistNPPGammaNDaughtersRec); 
4488         list->Add(fHistNPPGammaDaughtersRec); 
4489         list->Add(fHistNPPGammaDaughtersXYRec); 
4490         
4491         list->Add(fHistAllERecEMC);     
4492         list->Add(fHistAllPtRecPtMC);
4493         list->Add(fHistElectronERecEMC);        
4494         list->Add(fHistGammaERecEMC);
4495         
4496         list->Add(fHistChargedRes);
4497         list->Add(fHistChargedRes2);
4498         list->Add(fHistChargedRes3);
4499         list->Add(fHistNeutralRes);
4500         list->Add(fHistElectronRes);
4501         list->Add(fHistGammaRes);
4502         
4503         list->Add(fHistIsInAcc);
4504 }
4505
4506 //________________________________________________________________________
4507 Bool_t AliAnalysisEmEtMonteCarlo::TrackHitsCalo(AliExternalTrackParam* extParam)
4508 {//Does the track hit the calorimeter?
4509         TVector3 pos(0,0,0);
4510         
4511         if (extParam)
4512         {
4513                 if (GetTrackProjection(extParam,pos))
4514                 {
4515                         Bool_t inAcc = fGeoUt->IsInEMCAL(pos.X(),pos.Y(),pos.Z());
4516                         
4517                         //if (inAcc)
4518                         //      fHistIsInAcc->Fill(pos.X(),pos.Y());
4519                         
4520                         return inAcc;
4521                 }
4522         }
4523         return kFALSE;
4524 }
4525
4526 //________________________________________________________________________
4527 // project to a EMCal radius
4528 Bool_t AliAnalysisEmEtMonteCarlo::GetTrackProjection(AliExternalTrackParam *trackParam, TVector3 &trackPos)
4529 {//Get the track projection
4530     Bool_t proj = kFALSE;
4531     Double_t emcalR = fGeoUt->GetEMCGeometry()->GetIPDistance();
4532         
4533     if (trackParam) //it is constructed from TParticle
4534     {
4535         Double_t trkPos[3] = {0};
4536                 
4537         //Assume the track is a pion with mass 0.139GeV/c^2
4538         //Extrapolation step is 1cm
4539         if(!AliTrackerBase::PropagateTrackToBxByBz(trackParam, emcalR, 0.139, 1, kTRUE, 0.8) ) return proj;
4540                 
4541         trackParam->GetXYZ(trkPos);
4542                 
4543         trackPos.SetXYZ(trkPos[0],trkPos[1],trkPos[2]);
4544                 
4545         proj = kTRUE;               
4546     }
4547         
4548     return proj;
4549 }
4550
4551 //________________________________________________________________________
4552 // project to a cluster position
4553 Bool_t AliAnalysisEmEtMonteCarlo::GetTrackProjection(AliEMCALTrack* emcTrack, TVector3 &trackPos, TVector3 clusPos)
4554 {//get the track projection
4555         Bool_t proj = kFALSE;
4556         
4557         if (emcTrack)
4558         {       
4559                 Double_t trkPos[3] = {0};
4560                 
4561                 emcTrack->PropagateToGlobal(clusPos.X(),clusPos.Y(),clusPos.Z(),0.,0.);
4562                 emcTrack->GetXYZ(trkPos);
4563                 
4564                 trackPos.SetXYZ(trkPos[0],trkPos[1],trkPos[2]);
4565                 
4566                 proj = kTRUE;
4567         }
4568         
4569         return proj;
4570 }
4571
4572 //________________________________________________________________________
4573 Bool_t AliAnalysisEmEtMonteCarlo::IsInAcceptance(TParticle *part, TParticlePDG *pdg, AliExternalTrackParam* extParam)
4574 {//is the track in the acceptance of the emcal?
4575         if ((part) && (pdg))
4576         {
4577                 if (TMath::Abs(pdg->Charge() - fCuts->GetMonteCarloNeutralParticle()) <1e-3 )
4578                 {
4579                         if (TMath::Abs(part->Eta()) < fEtaCutAcc && part->Phi() < fPhiCutAccMax && part->Phi() > fPhiCutAccMin) 
4580                                 return kTRUE;
4581                 }
4582                 else
4583                 {
4584                         return TrackHitsCalo(extParam);
4585                 }
4586         }
4587
4588         return kFALSE;
4589 }
4590
4591 //________________________________________________________________________
4592 Bool_t AliAnalysisEmEtMonteCarlo::IsInAcceptance(AliMCParticle *part)
4593 {// is the track in the acceptance of the emcal?
4594         if (part)
4595         {
4596                 for (int i=0;i<part->GetNumberOfTrackReferences();i++)
4597                 {
4598                         AliTrackReference* aliTrkRef = part->GetTrackReference(i);
4599                         
4600                         if (aliTrkRef)
4601                         {
4602                                 //if (aliTrkRef->DetectorId() == AliTrackReference::kEMCAL)
4603                                 //      return kTRUE;
4604                                 if ( (aliTrkRef->DetectorId() == AliTrackReference::kEMCAL) || (fGeoUt->IsInEMCAL(aliTrkRef->X(),aliTrkRef->Y(),aliTrkRef->Z())) )
4605                                         return kTRUE;
4606                         }
4607                 }
4608         }
4609         
4610         return kFALSE;
4611 }
4612
4613 //________________________________________________________________________
4614 Bool_t AliAnalysisEmEtMonteCarlo::IsPrimary(AliStack *stack, Int_t iPart, TParticlePDG *pdg, Int_t iPartMom, TParticlePDG *pdgMom)
4615 {//Is the track a primary track?
4616         if (stack->IsPhysicalPrimary(iPart))
4617         {
4618                 return kTRUE;
4619         }
4620         else if (pdg)
4621         {
4622                 if (((pdg->PdgCode() == fgEPlusCode) || (pdg->PdgCode() == fgEMinusCode) || (pdg->PdgCode() == fgGammaCode)) && 
4623                         ((IsMotherPrimaryGamma(stack,iPartMom,pdgMom)) || (IsMotherPrimaryElectron(stack,iPartMom,pdgMom)))  )
4624                 {
4625                         return kTRUE;
4626                 }
4627         }
4628
4629         return kFALSE;  
4630 }
4631
4632 //________________________________________________________________________
4633 Bool_t AliAnalysisEmEtMonteCarlo::IsMotherPrimaryGamma(AliStack *stack, Int_t iPartMom, TParticlePDG *pdgMom)
4634 {//Is the mother a primary gamma?
4635         Int_t nStackTracks = stack->GetNtrack();
4636
4637         if (pdgMom)
4638         {
4639                 if ((pdgMom->PdgCode() == fgGammaCode) && (iPartMom>=0) && (iPartMom < nStackTracks))
4640                 {
4641                         if (stack->IsPhysicalPrimary(iPartMom))
4642                                 return kTRUE;
4643                 }
4644         }
4645         return kFALSE;
4646 }
4647
4648 //________________________________________________________________________
4649 Bool_t AliAnalysisEmEtMonteCarlo::IsMotherPrimaryElectron(AliStack *stack, Int_t iPartMom, TParticlePDG *pdgMom)
4650 {//is the mother a primary electron?
4651         Int_t nStackTracks = stack->GetNtrack();
4652
4653         if (pdgMom)
4654         {
4655                 if ((pdgMom->PdgCode() == fgEPlusCode || pdgMom->PdgCode() == fgEMinusCode) && (iPartMom>=0) && (iPartMom < nStackTracks))
4656                 {
4657                         if (stack->IsPhysicalPrimary(iPartMom))
4658                                 return kTRUE;
4659                 }
4660         }
4661         return kFALSE;
4662 }
4663
4664 //________________________________________________________________________
4665 Bool_t AliAnalysisEmEtMonteCarlo::IsGammaConversion(AliStack *stack, TParticle *part, TParticlePDG *pdg)
4666 {//is the gamma converted?
4667         if ((part) && (pdg))
4668         {
4669                 if(pdg->PdgCode() == fgGammaCode)
4670                 {
4671                         Int_t nStackTracks = stack->GetNtrack();
4672                         Int_t iPartDaughter = part->GetLastDaughter();
4673                         
4674                         if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
4675                         {
4676                                 TParticle *partDaughter = stack->Particle(iPartDaughter);
4677                                 if (partDaughter)
4678                                 {
4679                                         TParticlePDG *pdgDaugther = partDaughter->GetPDG(0);
4680                                         if (pdgDaugther) 
4681                                         {
4682                                                 if ( ((pdgDaugther->PdgCode() == fgEPlusCode) || (pdgDaugther->PdgCode() == fgEMinusCode)) && (!fGeoUt->IsInEMCAL(partDaughter->Vx(),partDaughter->Vy(),partDaughter->Vz())) )
4683                                                 {
4684                                                         //Double_t emcalR = fGeoUt->GetEMCGeometry()->GetIPDistance();
4685                                                         //Double_t decayR = sqrt(pow(partDaughter->Vx(),2)+pow(partDaughter->Vy(),2));
4686                                                         
4687                                                         //if (decayR<emcalR)                                            
4688                                                         return kTRUE;
4689                                                 }
4690                                         }
4691                                 }
4692                         }
4693                 }
4694         }
4695         return kFALSE;                  
4696 }
4697         
4698 //________________________________________________________________________
4699 AliExternalTrackParam* AliAnalysisEmEtMonteCarlo::CreateExternalTrackParam(TParticle *part)
4700 {//create external track param
4701         // Calculate the AliExternalTrackParam content
4702         Double_t xref;
4703         Double_t alpha;
4704         Double_t param[5];
4705         Double_t covar[15];
4706         
4707         // Calculate alpha: the rotation angle of the corresponding local system (TPC sector)
4708         alpha = part->Phi()*180./TMath::Pi();
4709         if (alpha<0) alpha+= 360.;
4710         if (alpha>360) alpha -= 360.;
4711         
4712         Int_t sector = (Int_t)(alpha/20.);
4713         alpha = 10. + 20.*sector;
4714         alpha /= 180;
4715         alpha *= TMath::Pi();
4716         
4717         // Covariance matrix: no errors, the parameters are exact
4718         for (int i=0; i<15; i++) covar[i]=0.;
4719         
4720         // Get the vertex of origin and the momentum
4721         TVector3 ver(part->Vx(),part->Vy(),part->Vz());
4722         TVector3 mom(part->Px(),part->Py(),part->Pz());
4723         
4724         // Rotate to the local coordinate system (TPC sector)
4725         ver.RotateZ(-alpha);
4726         mom.RotateZ(-alpha);
4727         
4728         // X of the referense plane
4729         xref = ver.X();
4730         
4731         Double_t charge;
4732         if (part->GetPDG(0))
4733                 charge = part->GetPDG(0)->Charge();
4734         else
4735                 return 0;
4736         
4737         if (mom.Pt()>0)
4738         {
4739                 param[0] = ver.Y();
4740                 param[1] = ver.Z();
4741                 param[2] = TMath::Sin(mom.Phi());
4742                 param[3] = mom.Pz()/mom.Pt();
4743                 param[4] = TMath::Sign(1/mom.Pt(),charge);
4744         }
4745         else
4746                 return 0;
4747         
4748         // Set AliExternalTrackParam
4749         AliExternalTrackParam* extTrkParam = new AliExternalTrackParam(xref, alpha, param, covar);
4750         
4751         return extTrkParam;
4752 }
4753
4754 //________________________________________________________________________
4755 Double_t AliAnalysisEmEtMonteCarlo::CalcET(TParticle *part, TParticlePDG *pdg)
4756 {//Calculate Et
4757         //***************
4758         // calculate E_T
4759         //***************
4760         Double_t particleMassPart = 0; //The mass part in the Et calculation for this particle
4761         Double_t protonMass = fgProtonMass;
4762
4763         if (pdg)
4764         {
4765                 if (
4766                         TMath::Abs(pdg->PdgCode()) == fgProtonCode ||
4767                         TMath::Abs(pdg->PdgCode()) == fgNeutronCode ||
4768                         TMath::Abs(pdg->PdgCode()) == fgLambdaCode ||
4769                         TMath::Abs(pdg->PdgCode()) == fgXiCode ||
4770                         TMath::Abs(pdg->PdgCode()) == fgXi0Code ||
4771                         TMath::Abs(pdg->PdgCode()) == fgOmegaCode
4772                         )
4773                 {
4774                         if (pdg->PdgCode() > 0) { particleMassPart = - protonMass;}
4775                         if (pdg->PdgCode() < 0) { particleMassPart = protonMass;}
4776                 }
4777                 Double_t et = part->Energy() * TMath::Sin(part->Theta()) + particleMassPart;
4778                 return et;
4779         }
4780         else
4781                 return -1.;
4782 }
4783         
4784 //________________________________________________________________________
4785 Double_t AliAnalysisEmEtMonteCarlo::CalcETDep(Double_t caloE, TParticle *part, TParticlePDG *pdg)
4786 {//calculate et dependence
4787         //***************
4788         // calculate E_T
4789         //***************
4790         Double_t particleMassPart = 0; //The mass part in the Et calculation for this particle
4791         Double_t protonMass = fgProtonMass;
4792         
4793         if (pdg)
4794         {
4795                 if (
4796                         TMath::Abs(pdg->PdgCode()) == fgProtonCode ||
4797                         TMath::Abs(pdg->PdgCode()) == fgNeutronCode ||
4798                         TMath::Abs(pdg->PdgCode()) == fgLambdaCode ||
4799                         TMath::Abs(pdg->PdgCode()) == fgXiCode ||
4800                         TMath::Abs(pdg->PdgCode()) == fgXi0Code ||
4801                         TMath::Abs(pdg->PdgCode()) == fgOmegaCode
4802                         )
4803                 {
4804                         if (pdg->PdgCode() > 0) { particleMassPart = - protonMass;}
4805                         if (pdg->PdgCode() < 0) { particleMassPart = protonMass;}
4806                 }
4807                 Double_t et = caloE * TMath::Sin(part->Theta()) + particleMassPart;
4808                 return et;
4809         }
4810         else
4811                 return -1.;
4812 }
4813
4814
4815