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