]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/totEt/AliAnalysisEmEtMonteCarlo.cxx
Making corrections second order in cluster multiplicity
[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                         fHistElectronFirstMotherXY->Fill(part->Vx(),part->Vy());                                        
1717                         fHistElectronNDaughters->Fill(nPartDaughters);
1718                                                 
1719                         iPartDaughter = part->GetLastDaughter();
1720                         if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
1721                         {
1722                             partDaughter = stack->Particle(iPartDaughter);
1723                             if (partDaughter)
1724                             {
1725                                 pdgDaugther = partDaughter->GetPDG(0);
1726                                 if (pdgDaugther) {
1727                                     fHistElectronDaughters->Fill(pdgDaugther->PdgCode());       
1728                                     fHistElectronDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
1729                                 }
1730                             }
1731                         }
1732                                                 
1733                         // inside EMCal acceptance
1734                         //if (IsInAcceptance(part,pdg,extParam)) 
1735                         if (IsInAcceptance(aliPart)) 
1736                         {//Marcelo - should all three of the lines below be in the if statement?
1737                             if (pdgMom) fHistElectronFirstMotherAcc->Fill(pdgMom->PdgCode());
1738                             fHistElectronFirstMotherXYAcc->Fill(part->Vx(),part->Vy());                                 
1739                             fHistElectronNDaughtersAcc->Fill(nPartDaughters);
1740                                                         
1741                             iPartDaughter = part->GetLastDaughter();
1742                             if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
1743                             {
1744                                 partDaughter = stack->Particle(iPartDaughter);
1745                                 if (partDaughter)
1746                                 {
1747                                     pdgDaugther = partDaughter->GetPDG(0);
1748                                     if (pdgDaugther) {
1749                                         fHistElectronDaughtersAcc->Fill(pdgDaugther->PdgCode());        
1750                                         fHistElectronDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
1751                                     }
1752                                 }
1753                             }
1754                         }
1755                     }
1756                 } // end of if electron
1757                 
1758                 // some neutrals also
1759                 if (pdg->PdgCode() == fgNeutronCode || pdg->PdgCode() == fgAntiNeutronCode)
1760                 {
1761                     fHistNeutronEtaEET->Fill(part->Energy(),part->Eta(),et);
1762                     fHistNeutronEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
1763                     fHistNeutronEtaET->Fill(et,part->Eta());                                                    
1764                     fHistNeutronEtaE->Fill(part->Energy(),part->Eta());
1765                     fHistNeutronEtaPt->Fill(part->Pt(),part->Eta());            
1766                     fNeutrontotET += et;
1767                                         
1768                     // inside EMCal acceptance
1769                     //if (IsInAcceptance(part,pdg)) 
1770                     if (IsInAcceptance(aliPart)) 
1771                     {
1772                         fHistNeutronAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1773                         fHistNeutronAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                        
1774                         fHistNeutronAccEtaET->Fill(et,part->Eta());
1775                         fHistNeutronAccEtaE->Fill(part->Energy(),part->Eta());
1776                         fHistNeutronAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                                     
1777                         fNeutronAcctotET += et;
1778                     }                                           
1779                     if(pdg->PdgCode() == fgNeutronCode)
1780                     {
1781                         fNeutronEt += et;
1782                     }
1783                     if(pdg->PdgCode() == fgAntiNeutronCode)
1784                     {
1785                         fAntiNeutronEt += et;
1786                     }
1787                 }
1788                                 
1789                 if(pdg->PdgCode() == fgGammaCode)
1790                 {
1791                     if (stack->IsPhysicalPrimary(iPart))
1792                     {
1793                         fHistGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
1794                         fHistGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                     
1795                         fHistGammaEtaET->Fill(et,part->Eta());
1796                         fHistGammaEtaE->Fill(part->Energy(),part->Eta());
1797                         fHistGammaEtaPt->Fill(part->Pt(),part->Eta());  
1798                         fGammatotET += et;
1799                                                 
1800                         if (IsGammaConversion(stack, part, pdg))
1801                         {                                                                               
1802                             fHistConvGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
1803                             fHistConvGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                     
1804                             fHistConvGammaEtaET->Fill(et,part->Eta());
1805                             fHistConvGammaEtaE->Fill(part->Energy(),part->Eta());
1806                             fHistConvGammaEtaPt->Fill(part->Pt(),part->Eta());                                                                  
1807                             fConvGammatotET += et;
1808                         }
1809                         else
1810                         {                                                                               
1811                             fHistNonConvGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
1812                             fHistNonConvGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                  
1813                             fHistNonConvGammaEtaET->Fill(et,part->Eta());
1814                             fHistNonConvGammaEtaE->Fill(part->Energy(),part->Eta());
1815                             fHistNonConvGammaEtaPt->Fill(part->Pt(),part->Eta());                                                                       
1816                             fNonConvGammatotET += et;
1817                         }
1818                                                 
1819                         Bool_t inAcc=kFALSE;
1820                         // inside EMCal acceptance
1821                         //if (IsInAcceptance(part,pdg)) 
1822                         if (IsInAcceptance(aliPart)) 
1823                         {
1824                             //Printf("phi(1) = %f, eta(1) = %f",part->Phi(),part->Eta());
1825                             inAcc = kTRUE;
1826                                                         
1827                             fHistGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1828                             fHistGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1829                             fHistGammaAccEtaET->Fill(et,part->Eta());
1830                             fHistGammaAccEtaE->Fill(part->Energy(),part->Eta());
1831                             fHistGammaAccEtaPt->Fill(part->Pt(),part->Eta());           
1832                             fGammaAcctotET += et;
1833                         }
1834                                                 
1835                         if (IsInAcceptance(part,pdg)) 
1836                         {
1837                             if (IsGammaConversion(stack, part, pdg))
1838                             {   
1839                                 if (inAcc)
1840                                     Printf("phi(1) = %f, eta(1) = %f",part->Phi(),part->Eta());
1841                                 
1842                                 fHistConvGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1843                                 fHistConvGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1844                                 fHistConvGammaAccEtaET->Fill(et,part->Eta());
1845                                 fHistConvGammaAccEtaE->Fill(part->Energy(),part->Eta());
1846                                 fHistConvGammaAccEtaPt->Fill(part->Pt(),part->Eta());                                                                   
1847                                 fConvGammaAcctotET += et;
1848                             }
1849                             else
1850                             {                   
1851                                 /*
1852                                  if (!inAcc)
1853                                  {
1854                                  Printf("phi(2) = %f, eta(2) = %f, pt = %f",TMath::RadToDeg()*part->Phi(),part->Eta(),part->Pt());
1855                                  
1856                                  Int_t iPartDaughter = part->GetLastDaughter();
1857                                  
1858                                  if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
1859                                  {
1860                                  TParticle *partDaughter = stack->Particle(iPartDaughter);
1861                                  if (partDaughter)
1862                                  {
1863                                  TParticlePDG *pdgDaugther = partDaughter->GetPDG(0);
1864                                  if (pdgDaugther) 
1865                                  {
1866                                  Double_t decayR = sqrt(pow(partDaughter->Vx(),2)+pow(partDaughter->Vy(),2));
1867                                  Printf("radius = %f, daughter pid = %d",decayR,pdgDaugther->PdgCode());
1868                                  }
1869                                  }
1870                                  }
1871                                  
1872                                  for (int i=0;i<aliPart->GetNumberOfTrackReferences();i++)
1873                                  {
1874                                  AliTrackReference* aliTrkRef = aliPart->GetTrackReference(i);
1875                                  
1876                                  if (aliTrkRef)
1877                                  {
1878                                  Printf("det id = %d, x=%f, y=%f, z=%f", aliTrkRef->DetectorId(),aliTrkRef->X(),aliTrkRef->Y(),aliTrkRef->Z());
1879                                  }
1880                                  }
1881                                  
1882                                  }
1883                                  */
1884                                                                 
1885                                 fHistNonConvGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1886                                 fHistNonConvGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
1887                                 fHistNonConvGammaAccEtaET->Fill(et,part->Eta());
1888                                 fHistNonConvGammaAccEtaE->Fill(part->Energy(),part->Eta());
1889                                 fHistNonConvGammaAccEtaPt->Fill(part->Pt(),part->Eta());                                                                        
1890                                 fNonConvGammaAcctotET += et;
1891                             }
1892                         }                                                                                       
1893                     }
1894                     else if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) 
1895                     {
1896                         if (IsMotherPrimaryElectron(stack,iPartMom,pdgMom))
1897                         {
1898                             fHistAnnihGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
1899                             fHistAnnihGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                    
1900                             fHistAnnihGammaEtaET->Fill(et,part->Eta());
1901                             fHistAnnihGammaEtaE->Fill(part->Energy(),part->Eta());
1902                             fHistAnnihGammaEtaPt->Fill(part->Pt(),part->Eta());         
1903                             fAnnihGammatotET += et;
1904                                                         
1905                             // inside EMCal acceptance
1906                             //if (IsInAcceptance(part,pdg)) 
1907                             if (IsInAcceptance(aliPart)) 
1908                             {
1909                                 fHistAnnihGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1910                                 fHistAnnihGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                     
1911                                 fHistAnnihGammaAccEtaET->Fill(et,part->Eta());
1912                                 fHistAnnihGammaAccEtaE->Fill(part->Energy(),part->Eta());
1913                                 fHistAnnihGammaAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                          
1914                                 fAnnihGammaAcctotET += et;
1915                             }
1916                         }
1917                         else if (IsMotherPrimaryGamma(stack,iPartMom,pdgMom))
1918                         {
1919                             fHistScatGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
1920                             fHistScatGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                     
1921                             fHistScatGammaEtaET->Fill(et,part->Eta());
1922                             fHistScatGammaEtaE->Fill(part->Energy(),part->Eta());
1923                             fHistScatGammaEtaPt->Fill(part->Pt(),part->Eta());          
1924                             fScatGammatotET += et;
1925                                                         
1926                             // inside EMCal acceptance
1927                             //if (IsInAcceptance(part,pdg)) 
1928                             if (IsInAcceptance(aliPart)) 
1929                             {
1930                                 fHistScatGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
1931                                 fHistScatGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
1932                                 fHistScatGammaAccEtaET->Fill(et,part->Eta());
1933                                 fHistScatGammaAccEtaE->Fill(part->Energy(),part->Eta());
1934                                 fHistScatGammaAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                           
1935                                 fScatGammaAcctotET += et;
1936                             }
1937                         }
1938                     }
1939                     
1940                     // few checks
1941                     if ((stack->IsPhysicalPrimary(iPart)) || (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())))
1942                     {
1943                         if (pdgMom)
1944                             fHistGammaFirstMother->Fill(pdgMom->PdgCode());
1945                         fHistGammaFirstMotherXY->Fill(part->Vx(),part->Vy());                                   
1946                         fHistGammaNDaughters->Fill(nPartDaughters);
1947                                                 
1948                         iPartDaughter = part->GetLastDaughter();
1949                         if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
1950                         {
1951                             partDaughter = stack->Particle(iPartDaughter);
1952                             if (partDaughter)
1953                             {
1954                                 pdgDaugther = partDaughter->GetPDG(0);
1955                                 if (pdgDaugther) {
1956                                     fHistGammaDaughters->Fill(pdgDaugther->PdgCode());  
1957                                     fHistGammaDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
1958                                                                         
1959                                     if (stack->IsPhysicalPrimary(iPart))
1960                                     {
1961                                         if (IsGammaConversion(stack, part, pdg))
1962                                         {                                                                               
1963                                             fHistConvGammaDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
1964                                         }
1965                                         else
1966                                         {
1967                                             fHistNonConvGammaDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
1968                                         }
1969                                     }
1970                                 }
1971                             }
1972                         }
1973                                                 
1974                         // inside EMCal acceptance
1975                         //if (IsInAcceptance(part,pdg)) 
1976                         if (IsInAcceptance(aliPart)) 
1977                         {
1978                             if (pdgMom)//Marcelo - again, should this be all three?
1979                                 fHistGammaFirstMotherAcc->Fill(pdgMom->PdgCode());
1980                             fHistGammaFirstMotherXYAcc->Fill(part->Vx(),part->Vy());                                    
1981                             fHistGammaNDaughtersAcc->Fill(nPartDaughters);
1982                                                         
1983                             iPartDaughter = part->GetLastDaughter();
1984                             if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
1985                             {
1986                                 partDaughter = stack->Particle(iPartDaughter);
1987                                 if (partDaughter)
1988                                 {
1989                                     pdgDaugther = partDaughter->GetPDG(0);
1990                                     if (pdgDaugther) {
1991                                         fHistGammaDaughtersAcc->Fill(pdgDaugther->PdgCode());   
1992                                         fHistGammaDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
1993                                                                                 
1994                                         if (stack->IsPhysicalPrimary(iPart))
1995                                         {
1996                                             if (IsGammaConversion(stack, part, pdg))
1997                                             {                                                                           
1998                                                 fHistConvGammaDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
1999                                             }
2000                                             else
2001                                             {
2002                                                 fHistNonConvGammaDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
2003                                             }
2004                                         }
2005                                                                                 
2006                                     }
2007                                 }
2008                             }                                           
2009                         }
2010                     }
2011                 } // end of if gamma
2012                 
2013                 // Neutral particles
2014                 if (TMath::Abs(pdg->Charge() - fCuts->GetMonteCarloNeutralParticle()) <1e-3 )
2015                 {
2016                     //fNeutralMultiplicity++;
2017                     fTotNeutralEt += et;
2018                                         
2019                     // inside EMCal acceptance
2020                     //if (IsInAcceptance(part,pdg)) 
2021                     if (IsInAcceptance(aliPart)) 
2022                     {
2023                         fTotNeutralEtAcc += et;
2024                         //fTotEtAcc += et;                                                                              
2025                     }
2026                 } // end of neutral particles block
2027                 //Charged particles
2028                 else if (TMath::Abs( pdg->Charge() - fCuts->GetMonteCarloNeutralParticle())>1e-3 )
2029                 {
2030                     //fChargedMultiplicity++;
2031                     fTotChargedEt += et;
2032                                         
2033                     // inside EMCal acceptance
2034                     //if (IsInAcceptance(part,pdg,extParam)) 
2035                     if (IsInAcceptance(aliPart)) 
2036                     {
2037                         fTotChargedEtAcc += et;
2038                         //fTotEtAcc += et;
2039                     } // inside EMCal acceptance
2040                                         
2041                     //if (TrackHitsCalo(extParam)) // magnetic field info not filled?
2042                     //{
2043                     //  if (pdg->Charge() > 0) fHistPhivsPtPos->Fill(part->Phi(),part->Pt());
2044                     //  else if (pdg->Charge() < 0) fHistPhivsPtNeg->Fill(part->Phi(), part->Pt());
2045                     //}
2046                 } // end of charged particles block
2047             } // end of is primary
2048             else // not a primary
2049             {
2050                 if (pdgMom)
2051                 {
2052                     if (pdgMom->PdgCode() == fgK0SCode)
2053                     {
2054                         fHistK0EtaEET->Fill(part->Energy(),part->Eta(),et);
2055                         fHistK0EtaPtET->Fill(part->Pt(),part->Eta(),et);                                                        
2056                         fHistK0EtaET->Fill(et,part->Eta());                                                     
2057                         fHistK0EtaE->Fill(part->Energy(),part->Eta());
2058                         fHistK0EtaPt->Fill(part->Pt(),part->Eta());             
2059                         fK0totET += et;
2060                     }
2061                                         
2062                     if (pdgMom->PdgCode() == fgLambdaCode || pdgMom->PdgCode() == fgAntiLambdaCode)
2063                     {
2064                         fHistLambdaEtaEET->Fill(part->Energy(),part->Eta(),et);
2065                         fHistLambdaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                    
2066                         fHistLambdaEtaET->Fill(et,part->Eta());                                                 
2067                         fHistLambdaEtaE->Fill(part->Energy(),part->Eta());
2068                         fHistLambdaEtaPt->Fill(part->Pt(),part->Eta());         
2069                         fLambdatotET += et;
2070                     }
2071                 }
2072                 
2073                 if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) // exclude secondaries from interactions inside the EMCal
2074                 {
2075                     if (pdg->PdgCode() == fgEPlusCode || pdg->PdgCode() == fgEMinusCode)
2076                     {
2077                         fHistNPPElectronEtaEET->Fill(part->Energy(),part->Eta(),et);
2078                         fHistNPPElectronEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
2079                         fHistNPPElectronEtaET->Fill(et,part->Eta());
2080                         fHistNPPElectronEtaE->Fill(part->Energy(),part->Eta());
2081                         fHistNPPElectronEtaPt->Fill(part->Pt(),part->Eta());    
2082                         fNPPElectrontotET += et;
2083                                                 
2084                         // inside EMCal acceptance
2085                         //if (IsInAcceptance(part,pdg,extParam)) 
2086                         if (IsInAcceptance(aliPart)) 
2087                         {
2088                             fHistNPPElectronAccEtaEET->Fill(part->Energy(),part->Eta(),et);
2089                             fHistNPPElectronAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                        
2090                             fHistNPPElectronAccEtaE->Fill(part->Energy(),part->Eta());
2091                             fHistNPPElectronAccEtaPt->Fill(part->Pt(),part->Eta());                                                     
2092                         }                                                       
2093                                                 
2094                         // few checks
2095                         if(pdgMom) fHistNPPElectronFirstMother->Fill(pdgMom->PdgCode());
2096                         fHistNPPElectronFirstMotherXY->Fill(part->Vx(),part->Vy());                                     
2097                         fHistNPPElectronNDaughters->Fill(nPartDaughters);
2098                                                 
2099                         iPartDaughter = part->GetLastDaughter();
2100                         if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
2101                         {
2102                             partDaughter = stack->Particle(iPartDaughter);
2103                             if (partDaughter)
2104                             {
2105                                 pdgDaugther = partDaughter->GetPDG(0);
2106                                 if (pdgDaugther) {
2107                                     fHistNPPElectronDaughters->Fill(pdgDaugther->PdgCode());    
2108                                     fHistNPPElectronDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
2109                                 }
2110                             }
2111                         }
2112                                                 
2113                         // inside EMCal acceptance
2114                         //if (IsInAcceptance(part,pdg,extParam)) 
2115                         if (IsInAcceptance(aliPart)) 
2116                         {
2117                             if(pdgMom) fHistNPPElectronFirstMotherAcc->Fill(pdgMom->PdgCode());
2118                             fHistNPPElectronFirstMotherXYAcc->Fill(part->Vx(),part->Vy());                                      
2119                             fHistNPPElectronNDaughtersAcc->Fill(nPartDaughters);
2120                             
2121                             iPartDaughter = part->GetLastDaughter();
2122                             if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
2123                             {
2124                                 partDaughter = stack->Particle(iPartDaughter);
2125                                 if (partDaughter)
2126                                 {
2127                                     pdgDaugther = partDaughter->GetPDG(0);
2128                                     if (pdgDaugther) {
2129                                         fHistNPPElectronDaughtersAcc->Fill(pdgDaugther->PdgCode());     
2130                                         fHistNPPElectronDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
2131                                     }
2132                                 }
2133                             }
2134                         }                                               
2135                                                 
2136                     } // end of if electron
2137                                         
2138                     if(pdg->PdgCode() == fgGammaCode)
2139                     {
2140                         fHistNPPGammaEtaEET->Fill(part->Energy(),part->Eta(),et);
2141                         fHistNPPGammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                  
2142                         fHistNPPGammaEtaET->Fill(et,part->Eta());
2143                         fHistNPPGammaEtaE->Fill(part->Energy(),part->Eta());
2144                         fHistNPPGammaEtaPt->Fill(part->Pt(),part->Eta());                       
2145                         fNPPGammatotET += et;
2146                                                 
2147                         if (pdgMom)
2148                         {       
2149                             if (pdgMom->PdgCode() == fgPi0Code)
2150                             {
2151                                 fHistNPPPi0GammaEtaEET->Fill(part->Energy(),part->Eta(),et);
2152                                 fHistNPPPi0GammaEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
2153                                 fHistNPPPi0GammaEtaET->Fill(et,part->Eta());
2154                                 fHistNPPPi0GammaEtaE->Fill(part->Energy(),part->Eta());
2155                                 fHistNPPPi0GammaEtaPt->Fill(part->Pt(),part->Eta());                                                                    
2156                                 fNPPPi0GammatotET += et;
2157                             }
2158                         }
2159                                                 
2160                         // inside EMCal acceptance
2161                         //if (IsInAcceptance(part,pdg)) 
2162                         if (IsInAcceptance(aliPart)) 
2163                         {
2164                             fHistNPPGammaAccEtaEET->Fill(part->Energy(),part->Eta(),et);
2165                             fHistNPPGammaAccEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2166                             fHistNPPGammaAccEtaE->Fill(part->Energy(),part->Eta());
2167                             fHistNPPGammaAccEtaPt->Fill(part->Pt(),part->Eta());                                                                                                                                                
2168                         }                                                                                       
2169                                                 
2170                         // few checks
2171                         if (pdgMom)
2172                             fHistNPPGammaFirstMother->Fill(pdgMom->PdgCode());
2173                         fHistNPPGammaFirstMotherXY->Fill(part->Vx(),part->Vy());                                        
2174                         fHistNPPGammaNDaughters->Fill(nPartDaughters);
2175                                                 
2176                         iPartDaughter = part->GetLastDaughter();
2177                         if ((iPartDaughter>=0)  && (iPartDaughter < nStackTracks))
2178                         {
2179                             partDaughter = stack->Particle(iPartDaughter);
2180                             if (partDaughter)
2181                             {
2182                                 pdgDaugther = partDaughter->GetPDG(0);
2183                                 if (pdgDaugther) {
2184                                     fHistNPPGammaDaughters->Fill(pdgDaugther->PdgCode());       
2185                                     fHistNPPGammaDaughtersXY->Fill(partDaughter->Vx(),partDaughter->Vy());
2186                                 }
2187                             }
2188                         }       
2189                                                 
2190                         // inside EMCal acceptance
2191                         //if (IsInAcceptance(part,pdg)) 
2192                         if (IsInAcceptance(aliPart)) 
2193                         {
2194                             fHistNPPGammaFirstMotherAcc->Fill(pdgMom->PdgCode());
2195                             fHistNPPGammaFirstMotherXYAcc->Fill(part->Vx(),part->Vy());                                 
2196                             fHistNPPGammaNDaughtersAcc->Fill(nPartDaughters);
2197                             
2198                             iPartDaughter = part->GetLastDaughter();
2199                             if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
2200                             {
2201                                 partDaughter = stack->Particle(iPartDaughter);
2202                                 if (partDaughter)
2203                                 {
2204                                     pdgDaugther = partDaughter->GetPDG(0);
2205                                     if (pdgDaugther) {
2206                                         fHistNPPGammaDaughtersAcc->Fill(pdgDaugther->PdgCode());        
2207                                         fHistNPPGammaDaughtersXYAcc->Fill(partDaughter->Vx(),partDaughter->Vy());
2208                                     }
2209                                 }
2210                             }
2211                         }
2212                                                 
2213                     } // end of gamma
2214                 }
2215             } // end of NOT a primary
2216         } // end of eta cut (Inside ALICE central barrel acceptance)
2217                 
2218         if (extParam)
2219             delete extParam;
2220                 
2221     }// end of loop over TParticles
2222     fTotEt = fTotChargedEt + fTotNeutralEt;
2223     fTotEtAcc = fTotChargedEtAcc + fTotNeutralEtAcc;   
2224         
2225     fTotElectrontotET = fElectrontotET + fConvElectrontotET + fScatElectrontotET;
2226     fTotElectronAcctotET = fElectronAcctotET + fConvElectronAcctotET + fScatElectronAcctotET;
2227     fTotGammatotET = fGammatotET + fAnnihGammatotET + fScatGammatotET;
2228     fTotGammaAcctotET = fGammaAcctotET + fAnnihGammaAcctotET + fScatGammaAcctotET;
2229     fTotEMtotET = fTotElectrontotET + fTotGammatotET;
2230     fTotEMAcctotET = fTotElectronAcctotET + fTotGammaAcctotET;
2231     fTotNPPEMtotET = fNPPElectrontotET + fNPPGammatotET;
2232     fTotChargedtotET = fMuontotET + fPiontotET + fKaontotET + fProtontotET;
2233     fTotChargedAcctotET = fMuonAcctotET + fPionAcctotET + fKaonAcctotET + fProtonAcctotET;
2234     fTotNeutraltotET = fNeutrontotET + fK0totET + fLambdatotET;
2235     fTotaltotET = fTotEMtotET + fTotNPPEMtotET + fTotChargedtotET + fTotNeutraltotET;
2236     fTotalAcctotET = fTotEMAcctotET + fTotChargedAcctotET;
2237         
2238     //FillHistograms();
2239         
2240     fHistPrimtotET->Fill(fPrimtotET);
2241     fHistPrimAcctotET->Fill(fPrimAcctotET);
2242         
2243     fHistElectrontotET->Fill(fElectrontotET);
2244     fHistElectronAcctotET->Fill(fElectronAcctotET);
2245     fHistConvElectrontotET->Fill(fConvElectrontotET);
2246     fHistConvElectronAcctotET->Fill(fConvElectronAcctotET);
2247     fHistScatElectrontotET->Fill(fScatElectrontotET);
2248     fHistScatElectronAcctotET->Fill(fScatElectronAcctotET);
2249         
2250     fHistTotElectrontotET->Fill(fTotElectrontotET);
2251     fHistTotElectronAcctotET->Fill(fTotElectronAcctotET);
2252         
2253     fHistGammatotET->Fill(fGammatotET);
2254     fHistGammaAcctotET->Fill(fGammaAcctotET);
2255     fHistAnnihGammatotET->Fill(fAnnihGammatotET);
2256     fHistAnnihGammaAcctotET->Fill(fAnnihGammaAcctotET);
2257     fHistScatGammatotET->Fill(fScatGammatotET);
2258     fHistScatGammaAcctotET->Fill(fScatGammaAcctotET);
2259         
2260     fHistTotGammatotET->Fill(fTotGammatotET);
2261     fHistTotGammaAcctotET->Fill(fTotGammaAcctotET);
2262         
2263     fHistTotEMtotET->Fill(fTotEMtotET);
2264     fHistTotEMAcctotET->Fill(fTotEMAcctotET);
2265         
2266     fHistConvGammatotET->Fill(fConvGammatotET);
2267     fHistNonConvGammatotET->Fill(fNonConvGammatotET);
2268     fHistConvGammaAcctotET->Fill(fConvGammaAcctotET);
2269     fHistNonConvGammaAcctotET->Fill(fNonConvGammaAcctotET);
2270     
2271     fHistNPPElectrontotET->Fill(fNPPElectrontotET);
2272     fHistNPPGammatotET->Fill(fNPPGammatotET);
2273         
2274     fHistTotNPPEMtotET->Fill(fTotNPPEMtotET);
2275     
2276     fHistNPPPi0GammatotET->Fill(fNPPPi0GammatotET);
2277     
2278     fHistMuontotET->Fill(fMuontotET); 
2279     fHistMuonAcctotET->Fill(fMuonAcctotET); 
2280     fHistPiontotET->Fill(fPiontotET); 
2281     fHistPionAcctotET->Fill(fPionAcctotET); 
2282     fHistKaontotET->Fill(fKaontotET); 
2283     fHistKaonAcctotET->Fill(fKaonAcctotET); 
2284     fHistProtontotET->Fill(fProtontotET); 
2285     fHistProtonAcctotET->Fill(fProtonAcctotET); 
2286     
2287     fHistTotChargedtotET->Fill(fTotChargedtotET);
2288     fHistTotChargedAcctotET->Fill(fTotChargedAcctotET);
2289         
2290     fHistNeutrontotET->Fill(fNeutrontotET); 
2291     fHistNeutronAcctotET->Fill(fNeutronAcctotET); 
2292     fHistK0totET->Fill(fK0totET); 
2293     fHistLambdatotET->Fill(fNeutrontotET); 
2294     
2295     fHistTotNeutraltotET->Fill(fTotNeutraltotET);
2296         
2297     fHistTotaltotET->Fill(fTotaltotET);
2298     fHistTotalAcctotET->Fill(fTotalAcctotET);
2299     
2300     return 0;    
2301 }
2302
2303 Int_t AliAnalysisEmEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
2304 { // analyse MC and real event info
2305     if(!ev || !ev2){//Marcelo - should use AliError
2306         Printf("ERROR: Event does not exist");   
2307         return 0;
2308     }
2309         
2310     AliMCEvent *mcEvent = dynamic_cast<AliMCEvent*>(ev);
2311     AliESDEvent *realEvent = dynamic_cast<AliESDEvent*>(ev2);
2312     if(!mcEvent || !realEvent){//Marcelo - should use AliError
2313         Printf("ERROR: Event does not exist");   
2314         return 0;
2315     }
2316     fCentBin= -1;
2317     if(fDataSet==20100){//If this is Pb+Pb
2318         AliCentrality *centrality = realEvent->GetCentrality();
2319         if(fNCentBins<21) fCentBin= centrality->GetCentralityClass10(fCentralityMethod);
2320         else{ fCentBin= centrality->GetCentralityClass5(fCentralityMethod);}
2321     }
2322     
2323     if(!fGeoUt){
2324         fGeoUt = AliEMCALGeometry::GetInstance("EMCAL_FIRSTYEARV1");//new AliEMCALGeometry("EMCAL_FIRSTYEAR","EMCAL");
2325         AliInfo("Creating new AliEMCALGeometry");
2326     }
2327     //fGeoUt = new AliEMCALGeometry("EMCAL_FIRSTYEAR","EMCAL");
2328     //fGeoUt->SetMisalMatrix(realEvent->GetEMCALMatrix(0),0);
2329     
2330     ResetEventValues();
2331     AnalyseEvent(ev);
2332         
2333     AliStack *stack = mcEvent->Stack();
2334     if (!stack)
2335     {
2336         Printf("ERROR: Could not get stack");
2337         return 0;
2338     }   
2339         
2340     Int_t nStackTracks = stack->GetNtrack();
2341         
2342     // get all emcal clusters
2343     TRefArray* caloClusters = new TRefArray();
2344     realEvent->GetEMCALClusters( caloClusters );
2345         
2346     Int_t nCluster = caloClusters->GetEntries();
2347         
2348     Float_t pos[3] = {0};
2349     TVector3 caloPos(0,0,0);
2350     TVector3 trackPos(0,0,0);
2351         
2352     // loop the clusters
2353     for (int iCluster = 0; iCluster < nCluster; iCluster++ ) 
2354     {
2355         AliESDCaloCluster* caloCluster = ( AliESDCaloCluster* )caloClusters->At( iCluster );
2356         Float_t caloE = caloCluster->E();
2357         caloCluster->GetPosition(pos);          
2358         caloPos.SetXYZ(pos[0],pos[1],pos[2]);
2359                 
2360         UInt_t iPart = (UInt_t)TMath::Abs(caloCluster->GetLabel());
2361         TParticle *part  = stack->Particle(iPart);
2362                 
2363         if (!part)
2364         {//Marcelo -- use AliError
2365             Printf("No MC particle %d", iCluster);
2366             continue;
2367         }
2368                 
2369         TParticlePDG *pdg = part->GetPDG(0);
2370                 
2371         TParticle *partMom = 0;
2372         TParticlePDG *pdgMom = 0;
2373                 
2374         Int_t nPartDaughters = part->GetNDaughters();
2375         TParticle *partDaughter = 0;
2376         TParticlePDG *pdgDaugther = 0;          
2377                 
2378         if (!pdg)
2379         {//Marcelo -- use AliError
2380             Printf("ERROR-2: Could not get particle PDG %d", iPart);
2381             continue;
2382         }               
2383                 
2384         Int_t iPartMom = part->GetMother(0);
2385         Int_t iPartDaughter = 0;
2386                 
2387         if ((iPartMom>=0) && (iPartMom < nStackTracks))
2388         {
2389             partMom = stack->Particle(iPartMom);
2390             pdgMom = partMom->GetPDG(0);
2391         }                       
2392                 
2393         // find the track associated to this MC particle
2394         TObjArray* list = fEsdtrackCutsITSTPC->GetAcceptedTracks(realEvent);
2395         Int_t nGoodTracks = list->GetEntries();
2396         Bool_t trackFound = kFALSE;
2397         Bool_t trackProjected = kFALSE;
2398         Float_t res = 0, resMin=9999;
2399         AliESDtrack *track = 0;
2400         AliEMCALTrack *emcTrack = 0;
2401         AliEMCALTrack *emcTrack2 = 0;
2402         AliExternalTrackParam* extParamTPart = 0;
2403         AliESDtrack *esdTPart = 0;
2404         AliEMCALTrack *emcTPart = 0;
2405         
2406         // find corresponding track
2407         for (Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++)
2408         {
2409             track = dynamic_cast<AliESDtrack*> (list->At(iTrack));
2410             if (!track)
2411             {//Marcelo -use AliError
2412                 Printf("ERROR: Could not get track %d", iTrack);
2413                 continue;
2414             }
2415             else
2416             {
2417                 UInt_t label = (UInt_t)TMath::Abs(track->GetLabel());
2418                 if (label == iPart)
2419                 {
2420                     trackFound = kTRUE;
2421                     emcTrack = new AliEMCALTrack(*track);
2422                     fHistAllPtRecPtMC->Fill(part->Pt(),track->Pt());
2423                                         
2424                     if (GetTrackProjection(emcTrack,trackPos,caloPos)) 
2425                     {
2426                         trackProjected = kTRUE;
2427                         res = sqrt(pow(trackPos.Phi()-caloPos.Phi(),2)+pow(trackPos.Eta()-caloPos.Eta(),2));
2428                     }
2429                     else
2430                         res = -1.;
2431                                         
2432                     break;                                      
2433                 }
2434             }
2435         }                       
2436         
2437         if (!trackFound)
2438         {
2439             track = 0;
2440             emcTrack = 0;
2441             res = -2.;
2442         }
2443         
2444         //create an external track param for projection
2445         extParamTPart = CreateExternalTrackParam(part);
2446                 
2447         // create esd and emcal tracks out of TParticle (used for projection)
2448         esdTPart = new AliESDtrack(part);
2449                 
2450         if (esdTPart && extParamTPart) 
2451         {
2452             esdTPart->SetOuterParam(extParamTPart,0);
2453             emcTPart = new AliEMCALTrack(*esdTPart);
2454         }
2455                 
2456         // few checks
2457         // compare MC and Rec energies for all particles
2458         fHistAllERecEMC->Fill(part->Energy(),caloE);
2459         //Marcelo - doesn't it make sense to change this so that we use the tracks matched by the official code?                
2460         if (TMath::Abs( pdg->Charge() - fCuts->GetMonteCarloNeutralParticle()) > 1e-3)
2461         {
2462             //Printf("calo.Phi = %f, calo.Eta = %f \n", caloPos.Phi(), caloPos.Eta());
2463                         
2464             if (trackProjected)
2465             {
2466                 //Printf("good track.Phi = %f, track.Eta = %f  \n", trackPos.Phi(), trackPos.Eta());
2467                 fHistChargedRes->Fill(trackPos.Phi()-caloPos.Phi(),trackPos.Eta()-caloPos.Eta());
2468             }
2469                         
2470             if (GetTrackProjection(emcTPart,trackPos,caloPos)) 
2471             {
2472                 fHistChargedRes2->Fill(trackPos.Phi()-caloPos.Phi(),trackPos.Eta()-caloPos.Eta());
2473                 //Printf("track.Phi = %f, track.Eta = %f  \n", trackPos.Phi(), trackPos.Eta());
2474             }
2475                         
2476             if (GetTrackProjection(extParamTPart,trackPos)) 
2477             {
2478                 fHistChargedRes3->Fill(trackPos.Phi()-caloPos.Phi(),trackPos.Eta()-caloPos.Eta());
2479                 //Printf("track.Phi = %f, track.Eta = %f  \n", trackPos.Phi(), trackPos.Eta());
2480             }
2481                         
2482         } 
2483         else if (TMath::Abs(pdg->Charge() - fCuts->GetMonteCarloNeutralParticle()) < 1e-3 )
2484         {
2485             fHistNeutralRes->Fill(part->Phi()-caloPos.Phi(),part->Eta()-caloPos.Eta());                 
2486         }
2487                 
2488         if(pdg->PdgCode() == fgGammaCode)
2489         {
2490             // compare MC and Rec energies for gammas
2491             fHistGammaERecEMC->Fill(part->Energy(),caloE);              
2492             fHistGammaRes->Fill(part->Phi()-caloPos.Phi(),part->Eta()-caloPos.Eta());
2493         }                       
2494                 
2495         if (pdg->PdgCode() == fgEPlusCode || pdg->PdgCode() == fgEMinusCode)
2496         {
2497             // compare MC and Rec energies for electrons
2498             fHistElectronERecEMC->Fill(part->Energy(),caloE);
2499             if (GetTrackProjection(extParamTPart,trackPos))
2500             { 
2501                 fHistElectronRes->Fill(trackPos.Phi()-caloPos.Phi(),trackPos.Eta()-caloPos.Eta());
2502             }                   
2503         }
2504                 
2505         // calculate ET
2506         Double_t et = CalcET(part,pdg);
2507         Double_t etDep = CalcETDep(caloE,part,pdg);
2508                 
2509         // Check if it is a primary particle
2510         if (IsPrimary(stack,iPart,pdg,iPartMom,pdgMom))
2511         {                               
2512             if (TMath::Abs(TMath::Abs(pdg->Charge()) - fCuts->GetMonteCarloSingleChargedParticle())<1e-3 && TMath::Abs(TMath::Abs(pdg->Charge()) - fCuts->GetMonteCarloNeutralParticle())<1e-3) continue;
2513             
2514             if (stack->IsPhysicalPrimary(iPart))
2515             {
2516                 fHistPrimRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2517                 fHistPrimRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2518                 fHistPrimRecEtaET->Fill(et,part->Eta());
2519                 fPrimRectotET += et;
2520                 
2521                 fHistPrimRecEtaEDepETDep->Fill(part->Energy(),part->Eta(),etDep);
2522                 fHistPrimRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                     
2523                 fHistPrimRecEtaETDep->Fill(etDep,part->Eta());
2524                 fPrimRectotETDep += etDep;
2525             }
2526             
2527             if(pdg->PdgCode() == fgGammaCode)
2528             {                   
2529                 if (stack->IsPhysicalPrimary(iPart))
2530                 {
2531                     fHistGammaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2532                     fHistGammaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
2533                     fHistGammaRecEtaET->Fill(et,part->Eta());
2534                     fHistGammaRecEtaE->Fill(part->Energy(),part->Eta());
2535                     fHistGammaRecEtaPt->Fill(part->Pt(),part->Eta());   
2536                     
2537                     resMin=9999;
2538                     for (Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++)
2539                     {
2540                         track = dynamic_cast<AliESDtrack*> (list->At(iTrack));
2541                         if (!track)
2542                         {//Marcelo -use AliError
2543                             Printf("ERROR: Could not get track %d", iTrack);
2544                             continue;
2545                         }
2546                         else
2547                         {
2548                             emcTrack2 = new AliEMCALTrack(*track);
2549                             
2550                             if (GetTrackProjection(emcTrack2,trackPos,caloPos)) 
2551                             {
2552                                 res = sqrt(pow(trackPos.Phi()-caloPos.Phi(),2)+pow(trackPos.Eta()-caloPos.Eta(),2));
2553                             }
2554                             if (res<resMin)
2555                                 resMin=res;
2556                             
2557                             delete emcTrack2;
2558                             emcTrack2=0;
2559                         }
2560                     }
2561                         
2562                     fHistGammaRecResEET->Fill(part->Energy(),resMin,et);// Add Caio
2563                     fHistGammaRecResPtET->Fill(part->Pt(),resMin,et);// Add Caio                                                        
2564                     fHistGammaRecResE->Fill(part->Energy(),resMin);// Add Caio
2565                     fHistGammaRecResPt->Fill(part->Pt(),resMin);// Add Caio     
2566                     fHistGammaRecResEDepETDep->Fill(caloE,resMin,etDep);// Add Caio
2567                     fHistGammaRecResPtETDep->Fill(part->Pt(),resMin,etDep);// Add Caio
2568                     
2569                     
2570                     fGammaRectotET += et;
2571                 }
2572                 else if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) 
2573                 {
2574                     if (IsMotherPrimaryElectron(stack,iPartMom,pdgMom))
2575                     {
2576                         fHistAnnihGammaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2577                         fHistAnnihGammaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                     
2578                         fHistAnnihGammaRecEtaET->Fill(et,part->Eta());
2579                         fHistAnnihGammaRecEtaE->Fill(part->Energy(),part->Eta());
2580                         fHistAnnihGammaRecEtaPt->Fill(part->Pt(),part->Eta());          
2581                         fAnnihGammaRectotET += et;
2582                     }                                   
2583                     else if (IsMotherPrimaryGamma(stack,iPartMom,pdgMom))
2584                     {
2585                         fHistScatGammaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2586                         fHistScatGammaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                      
2587                         fHistScatGammaRecEtaET->Fill(et,part->Eta());
2588                         fHistScatGammaRecEtaE->Fill(part->Energy(),part->Eta());
2589                         fHistScatGammaRecEtaPt->Fill(part->Pt(),part->Eta());           
2590                         fScatGammaRectotET += et;
2591                     }                                   
2592                 }
2593                                 
2594                 // few checks
2595                 if (pdgMom)
2596                     fHistGammaFirstMotherRec->Fill(pdgMom->PdgCode());
2597                 fHistGammaFirstMotherXYRec->Fill(part->Vx(),part->Vy());                                        
2598                 fHistGammaNDaughtersRec->Fill(nPartDaughters);
2599                                 
2600                 iPartDaughter = part->GetLastDaughter();
2601                 if ((iPartDaughter>=0)  && (iPartDaughter < nStackTracks))
2602                 {
2603                     partDaughter = stack->Particle(iPartDaughter);
2604                     if (partDaughter)
2605                     {
2606                         pdgDaugther = partDaughter->GetPDG(0);
2607                         if (pdgDaugther) {
2608                             fHistGammaDaughtersRec->Fill(pdgDaugther->PdgCode());       
2609                             fHistGammaDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2610                                                         
2611                             if (stack->IsPhysicalPrimary(iPart))
2612                             {
2613                                 if (IsGammaConversion(stack, part, pdg))
2614                                 {                                                                               
2615                                     fHistConvGammaDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2616                                 }
2617                                 else
2618                                 {
2619                                     fHistNonConvGammaDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2620                                 }
2621                             }                                                   
2622                         }
2623                     }
2624                 }
2625             } // gamma
2626                         
2627             if (pdg->PdgCode() == fgEPlusCode || pdg->PdgCode() == fgEMinusCode)
2628             {
2629                 if (stack->IsPhysicalPrimary(iPart))
2630                 {
2631                     fHistElectronRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2632                     fHistElectronRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2633                     fHistElectronRecEtaET->Fill(et,part->Eta());
2634                     fHistElectronRecEtaE->Fill(part->Energy(),part->Eta());
2635                     fHistElectronRecEtaPt->Fill(part->Pt(),part->Eta());        
2636                     fElectronRectotET += et;
2637                 }
2638                 else if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) 
2639                 {
2640                     if (IsMotherPrimaryGamma(stack,iPartMom,pdgMom))
2641                     {
2642                         fHistConvElectronRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2643                         fHistConvElectronRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2644                         fHistConvElectronRecEtaET->Fill(et,part->Eta());
2645                         fHistConvElectronRecEtaE->Fill(part->Energy(),part->Eta());
2646                         fHistConvElectronRecEtaPt->Fill(part->Pt(),part->Eta());                                                        
2647                         fConvElectronRectotET += et;
2648                     }           
2649                     else if (IsMotherPrimaryElectron(stack,iPartMom,pdgMom))
2650                     {
2651                         fHistScatElectronRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2652                         fHistScatElectronRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2653                         fHistScatElectronRecEtaET->Fill(et,part->Eta());
2654                         fHistScatElectronRecEtaE->Fill(part->Energy(),part->Eta());
2655                         fHistScatElectronRecEtaPt->Fill(part->Pt(),part->Eta());                                                        
2656                         fScatElectronRectotET += et;
2657                     }           
2658                 }
2659                                 
2660                 // few checks
2661                 if (pdgMom)
2662                     fHistElectronFirstMotherRec->Fill(pdgMom->PdgCode());
2663                 fHistElectronFirstMotherXYRec->Fill(part->Vx(),part->Vy());                                     
2664                 fHistElectronNDaughtersRec->Fill(nPartDaughters);
2665                                 
2666                 iPartDaughter = part->GetLastDaughter();
2667                 if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
2668                 {
2669                     partDaughter = stack->Particle(iPartDaughter);
2670                     if (partDaughter)
2671                     {
2672                         pdgDaugther = partDaughter->GetPDG(0);
2673                         if (pdgDaugther) {
2674                             fHistElectronDaughtersRec->Fill(pdgDaugther->PdgCode());    
2675                             fHistElectronDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2676                         }
2677                     }
2678                 }
2679             } // electrons
2680                         
2681             if (pdg->PdgCode() == fgMuPlusCode || pdg->PdgCode() == fgMuMinusCode)
2682             {
2683                 fHistMuonRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2684                 fHistMuonRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2685                 fHistMuonRecEtaET->Fill(et,part->Eta());
2686                 fHistMuonRecEtaE->Fill(part->Energy(),part->Eta());
2687                 fHistMuonRecEtaPt->Fill(part->Pt(),part->Eta());        
2688                 fMuonRectotET += et;
2689                                 
2690                 fHistMuonRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2691                 fHistMuonRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                     
2692                 fHistMuonRecEtaETDep->Fill(etDep,part->Eta());
2693                 fMuonRectotETDep += etDep;
2694                 
2695                 if (trackProjected)
2696                 {
2697                     fHistMuonRecResEET->Fill(part->Energy(),res,et);
2698                     fHistMuonRecResPtET->Fill(part->Pt(),res,et);                                                       
2699                     fHistMuonRecResE->Fill(part->Energy(),res);
2700                     fHistMuonRecResPt->Fill(part->Pt(),res);    
2701                     fHistMuonRecResEDepETDep->Fill(caloE,res,etDep);
2702                     fHistMuonRecResPtETDep->Fill(part->Pt(),res,etDep); 
2703                                         
2704                     if ((res>0.) && (res<fResCut))
2705                     {
2706                         fHistMuonMatchEtaEET->Fill(part->Energy(),part->Eta(),et);
2707                         fHistMuonMatchEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
2708                         fHistMuonMatchEtaET->Fill(et,part->Eta());
2709                         fHistMuonMatchEtaE->Fill(part->Energy(),part->Eta());
2710                         fHistMuonMatchEtaPt->Fill(part->Pt(),part->Eta());      
2711                         fMuonMatchtotET += et;
2712                                                 
2713                         fHistMuonMatchEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2714                         fHistMuonMatchEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                   
2715                         fHistMuonMatchEtaETDep->Fill(etDep,part->Eta());
2716                         fMuonMatchtotETDep += etDep;                                            
2717                     }
2718                 }
2719             }
2720                         
2721             if (pdg->PdgCode() == fgPiPlusCode || pdg->PdgCode() == fgPiMinusCode)
2722             {
2723                 fHistPionRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2724                 fHistPionRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2725                 fHistPionRecEtaET->Fill(et,part->Eta());
2726                 fHistPionRecEtaE->Fill(part->Energy(),part->Eta());
2727                 fHistPionRecEtaPt->Fill(part->Pt(),part->Eta());        
2728                 fPionRectotET += et;
2729                 
2730                 fHistPionRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2731                 fHistPionRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                     
2732                 fHistPionRecEtaETDep->Fill(etDep,part->Eta());
2733                 fPionRectotETDep += etDep;
2734                 
2735                 if (trackProjected)
2736                 {
2737                     fHistPionRecResEET->Fill(part->Energy(),res,et);
2738                     fHistPionRecResPtET->Fill(part->Pt(),res,et);                                                       
2739                     fHistPionRecResE->Fill(part->Energy(),res);
2740                     fHistPionRecResPt->Fill(part->Pt(),res);    
2741                     fHistPionRecResEDepETDep->Fill(caloE,res,etDep);
2742                     fHistPionRecResPtETDep->Fill(part->Pt(),res,etDep);                                                 
2743                     
2744                     if ((res>0.) && (res<fResCut))
2745                     {
2746                         fHistPionMatchEtaEET->Fill(part->Energy(),part->Eta(),et);
2747                         fHistPionMatchEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
2748                         fHistPionMatchEtaET->Fill(et,part->Eta());
2749                         fHistPionMatchEtaE->Fill(part->Energy(),part->Eta());
2750                         fHistPionMatchEtaPt->Fill(part->Pt(),part->Eta());      
2751                         fPionMatchtotET += et;
2752                                                 
2753                         fHistPionMatchEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2754                         fHistPionMatchEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                   
2755                         fHistPionMatchEtaETDep->Fill(etDep,part->Eta());
2756                         fPionMatchtotETDep += etDep;
2757                     }
2758                 }
2759             }                   
2760                         
2761             if (pdg->PdgCode() == fgKPlusCode || pdg->PdgCode() == fgKMinusCode)
2762             {
2763                 fHistKaonRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2764                 fHistKaonRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2765                 fHistKaonRecEtaET->Fill(et,part->Eta());
2766                 fHistKaonRecEtaE->Fill(part->Energy(),part->Eta());
2767                 fHistKaonRecEtaPt->Fill(part->Pt(),part->Eta());        
2768                 fKaonRectotET += et;
2769                 
2770                 fHistKaonRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2771                 fHistKaonRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                     
2772                 fHistKaonRecEtaETDep->Fill(etDep,part->Eta());
2773                 fKaonRectotETDep += etDep;
2774                 
2775                 if (trackProjected)
2776                 {
2777                     fHistKaonRecResEET->Fill(part->Energy(),res,et);
2778                     fHistKaonRecResPtET->Fill(part->Pt(),res,et);                                                       
2779                     fHistKaonRecResE->Fill(part->Energy(),res);
2780                     fHistKaonRecResPt->Fill(part->Pt(),res);    
2781                     
2782                     fHistKaonRecResEDepETDep->Fill(caloE,res,etDep);
2783                     fHistKaonRecResPtETDep->Fill(part->Pt(),res,etDep);                                                 
2784                     
2785                     if ((res>0.) && (res<fResCut))
2786                     {
2787                         fHistKaonMatchEtaEET->Fill(part->Energy(),part->Eta(),et);
2788                         fHistKaonMatchEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
2789                         fHistKaonMatchEtaET->Fill(et,part->Eta());
2790                         fHistKaonMatchEtaE->Fill(part->Energy(),part->Eta());
2791                         fHistKaonMatchEtaPt->Fill(part->Pt(),part->Eta());      
2792                         fKaonMatchtotET += et;
2793                                                 
2794                         fHistKaonMatchEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2795                         fHistKaonMatchEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                   
2796                         fHistKaonMatchEtaETDep->Fill(etDep,part->Eta());
2797                         fKaonMatchtotETDep += etDep;
2798                     }
2799                 }
2800             }
2801             
2802             if (pdg->PdgCode() == fgProtonCode || pdg->PdgCode() == fgAntiProtonCode)
2803             {
2804                 fHistProtonRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2805                 fHistProtonRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
2806                 fHistProtonRecEtaET->Fill(et,part->Eta());
2807                 fHistProtonRecEtaE->Fill(part->Energy(),part->Eta());
2808                 fHistProtonRecEtaPt->Fill(part->Pt(),part->Eta());      
2809                 fProtonRectotET += et;
2810                 
2811                 fHistProtonRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2812                 fHistProtonRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                   
2813                 fHistProtonRecEtaETDep->Fill(etDep,part->Eta());
2814                 fProtonRectotETDep += etDep;
2815                 
2816                 if (trackProjected)
2817                 {
2818                     fHistProtonRecResEET->Fill(part->Energy(),res,et);
2819                     fHistProtonRecResPtET->Fill(part->Pt(),res,et);                                                     
2820                     fHistProtonRecResE->Fill(part->Energy(),res);
2821                     fHistProtonRecResPt->Fill(part->Pt(),res);  
2822                     
2823                     fHistProtonRecResEDepETDep->Fill(caloE,res,etDep);
2824                     fHistProtonRecResPtETDep->Fill(part->Pt(),res,etDep);                                                       
2825                     
2826                     if ((res>0.) && (res<fResCut))
2827                     {
2828                         fHistProtonMatchEtaEET->Fill(part->Energy(),part->Eta(),et);
2829                         fHistProtonMatchEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                       
2830                         fHistProtonMatchEtaET->Fill(et,part->Eta());
2831                         fHistProtonMatchEtaE->Fill(part->Energy(),part->Eta());
2832                         fHistProtonMatchEtaPt->Fill(part->Pt(),part->Eta());    
2833                         fProtonMatchtotET += et;
2834                                                 
2835                         fHistProtonMatchEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2836                         fHistProtonMatchEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                 
2837                         fHistProtonMatchEtaETDep->Fill(etDep,part->Eta());
2838                         fProtonMatchtotETDep += etDep;
2839                     }
2840                 }                               
2841             }
2842                         
2843             if (pdg->PdgCode() == fgNeutronCode || pdg->PdgCode() == fgAntiNeutronCode)
2844             {
2845                 fHistNeutronRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2846                 fHistNeutronRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                        
2847                 fHistNeutronRecEtaET->Fill(et,part->Eta());
2848                 fHistNeutronRecEtaE->Fill(part->Energy(),part->Eta());
2849                 fHistNeutronRecEtaPt->Fill(part->Pt(),part->Eta());     
2850                 fNeutronRectotET += et;
2851                 
2852                 fHistNeutronRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2853                 fHistNeutronRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                  
2854                 fHistNeutronRecEtaETDep->Fill(etDep,part->Eta());
2855                 fNeutronRectotETDep += etDep;
2856             }
2857                         
2858             if (emcTrack)
2859                 delete emcTrack;
2860             if (esdTPart)
2861                 delete esdTPart;
2862             if (emcTPart)
2863                 delete emcTPart;
2864             if (extParamTPart)
2865                 delete extParamTPart;
2866         } // end of primary tracks
2867         else // not a primary
2868         {
2869             if (pdgMom)
2870             {
2871                 if (pdgMom->PdgCode() == fgK0SCode)
2872                 {
2873                     fHistK0RecEtaEET->Fill(part->Energy(),part->Eta(),et);
2874                     fHistK0RecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                 
2875                     fHistK0RecEtaET->Fill(et,part->Eta());
2876                     fHistK0RecEtaE->Fill(part->Energy(),part->Eta());
2877                     fHistK0RecEtaPt->Fill(part->Pt(),part->Eta());      
2878                     fK0RectotET += et;
2879                                         
2880                     fHistK0RecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2881                     fHistK0RecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                   
2882                     fHistK0RecEtaETDep->Fill(etDep,part->Eta());                                        
2883                     fK0RectotETDep += etDep;                                    
2884                 }
2885                                 
2886                 if (pdgMom->PdgCode() == fgLambdaCode || pdgMom->PdgCode() == fgAntiLambdaCode)
2887                 {
2888                     fHistLambdaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2889                     fHistLambdaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                     
2890                     fHistLambdaRecEtaET->Fill(et,part->Eta());
2891                     fHistLambdaRecEtaE->Fill(part->Energy(),part->Eta());
2892                     fHistLambdaRecEtaPt->Fill(part->Pt(),part->Eta());  
2893                     fLambdaRectotET += et;
2894                     
2895                     fHistLambdaRecEtaEDepETDep->Fill(caloE,part->Eta(),etDep);
2896                     fHistLambdaRecEtaPtETDep->Fill(part->Pt(),part->Eta(),etDep);                                                       
2897                     fHistLambdaRecEtaETDep->Fill(etDep,part->Eta());                                    
2898                     fLambdaRectotETDep += etDep;
2899                 }
2900             }
2901                         
2902             if (!fGeoUt->IsInEMCAL(part->Vx(),part->Vy(),part->Vz())) // exclude secondaries from interactions inside the EMCal
2903             {
2904                 if (pdg->PdgCode() == fgEPlusCode || pdg->PdgCode() == fgEMinusCode)
2905                 {
2906                     fHistNPPElectronRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2907                     fHistNPPElectronRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                        
2908                     fHistNPPElectronRecEtaET->Fill(et,part->Eta());
2909                     fHistNPPElectronRecEtaE->Fill(part->Energy(),part->Eta());
2910                     fHistNPPElectronRecEtaPt->Fill(part->Pt(),part->Eta());     
2911                     fNPPElectronRectotET += et;
2912                                         
2913                     // few checks
2914                     if(pdgMom) fHistNPPElectronFirstMotherRec->Fill(pdgMom->PdgCode());
2915                     fHistNPPElectronFirstMotherXYRec->Fill(part->Vx(),part->Vy());                                      
2916                     fHistNPPElectronNDaughtersRec->Fill(nPartDaughters);
2917                                         
2918                     iPartDaughter = part->GetLastDaughter();
2919                     if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
2920                     {
2921                         partDaughter = stack->Particle(iPartDaughter);
2922                         if (partDaughter)
2923                         {
2924                             pdgDaugther = partDaughter->GetPDG(0);
2925                             if (pdgDaugther) {
2926                                 fHistNPPElectronDaughtersRec->Fill(pdgDaugther->PdgCode());     
2927                                 fHistNPPElectronDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2928                             }
2929                         }
2930                     }
2931                 } // end of if electron
2932                                 
2933                 if(pdg->PdgCode() == fgGammaCode)
2934                 {
2935                     fHistNPPGammaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2936                     fHistNPPGammaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                   
2937                     fHistNPPGammaRecEtaET->Fill(et,part->Eta());
2938                     fHistNPPGammaRecEtaE->Fill(part->Energy(),part->Eta());
2939                     fHistNPPGammaRecEtaPt->Fill(part->Pt(),part->Eta());                        
2940                     fNPPGammaRectotET += et;
2941                                         
2942                     if (pdgMom)
2943                     {   
2944                         if (pdgMom->PdgCode() == fgPi0Code)
2945                         {
2946                             fHistNPPPi0GammaRecEtaEET->Fill(part->Energy(),part->Eta(),et);
2947                             fHistNPPPi0GammaRecEtaPtET->Fill(part->Pt(),part->Eta(),et);                                                        
2948                             fHistNPPPi0GammaRecEtaET->Fill(et,part->Eta());
2949                             fHistNPPPi0GammaRecEtaE->Fill(part->Energy(),part->Eta());
2950                             fHistNPPPi0GammaRecEtaPt->Fill(part->Pt(),part->Eta());                                                                     
2951                             fNPPPi0GammaRectotET += et;
2952                         }
2953                     }
2954                                         
2955                     // few checks
2956                     if (pdgMom)
2957                         fHistNPPGammaFirstMotherRec->Fill(pdgMom->PdgCode());
2958                     fHistNPPGammaFirstMotherXYRec->Fill(part->Vx(),part->Vy());                                 
2959                     fHistNPPGammaNDaughtersRec->Fill(nPartDaughters);
2960                                         
2961                     iPartDaughter = part->GetLastDaughter();
2962                     if ((iPartDaughter>=0)  && (iPartDaughter < nStackTracks))
2963                     {
2964                         partDaughter = stack->Particle(iPartDaughter);
2965                         if (partDaughter)
2966                         {
2967                             pdgDaugther = partDaughter->GetPDG(0);
2968                             if (pdgDaugther) {
2969                                 fHistNPPGammaDaughtersRec->Fill(pdgDaugther->PdgCode());        
2970                                 fHistNPPGammaDaughtersXYRec->Fill(partDaughter->Vx(),partDaughter->Vy());
2971                             }
2972                         }
2973                     }   
2974                 } // end of gamma
2975             }
2976         } // end of NOT a primary
2977     } // end of loop over clusters      
2978     
2979     fTotElectronRectotET = fElectronRectotET + fConvElectronRectotET + fScatElectronRectotET;
2980     fTotGammaRectotET = fGammaRectotET + fAnnihGammaRectotET + fScatElectronRectotET;
2981     fTotEMRectotET = fTotElectronRectotET + fTotGammaRectotET;
2982     fTotNPPEMRectotET = fNPPElectronRectotET + fNPPGammaRectotET;
2983     fTotChargedRectotET = fMuonRectotET + fPionRectotET + fKaonRectotET + fProtonRectotET;
2984     fTotChargedRectotETDep = fMuonRectotETDep + fPionRectotETDep + fKaonRectotETDep + fProtonRectotETDep;
2985     fTotChargedMatchtotET = fMuonMatchtotET + fPionMatchtotET + fKaonMatchtotET + fProtonMatchtotET;
2986     fTotChargedMatchtotETDep = fMuonMatchtotETDep + fPionMatchtotETDep + fKaonMatchtotETDep + fProtonMatchtotETDep;
2987     fTotNeutralRectotET = fNeutronRectotET + fK0RectotET + fLambdaRectotET;
2988     fTotNeutralRectotETDep = fNeutronRectotETDep + fK0RectotETDep + fLambdaRectotETDep;
2989     fTotalRectotET = fTotEMRectotET + fTotNPPEMRectotET + fTotChargedRectotET + fTotNeutralRectotET;
2990     fTotalRectotETDep = fTotEMRectotET + fTotNPPEMRectotET + fTotChargedRectotETDep + fTotNeutralRectotETDep;
2991         
2992     fHistPrimRectotET->Fill(fPrimRectotET);
2993     fHistPrimRectotETDep->Fill(fPrimRectotETDep);
2994     
2995     fHistElectronRectotET->Fill(fElectronRectotET);
2996     fHistConvElectronRectotET->Fill(fConvElectronRectotET);
2997     fHistScatElectronRectotET->Fill(fScatElectronRectotET);
2998     fHistTotElectronRectotET->Fill(fTotElectronRectotET);
2999         
3000     fHistGammaRectotET->Fill(fGammaRectotET);
3001     fHistAnnihGammaRectotET->Fill(fAnnihGammaRectotET);
3002     fHistScatGammaRectotET->Fill(fScatGammaRectotET);
3003     fHistTotGammaRectotET->Fill(fTotGammaRectotET);
3004         
3005     fHistTotEMRectotET->Fill(fTotEMRectotET);
3006         
3007     fHistNPPElectronRectotET->Fill(fNPPElectronRectotET);
3008     fHistNPPGammaRectotET->Fill(fNPPGammaRectotET);
3009     fHistTotNPPEMRectotET->Fill(fTotNPPEMRectotET);
3010         
3011     fHistNPPPi0GammaRectotET->Fill(fNPPPi0GammaRectotET);
3012     
3013     fHistMuonRectotET->Fill(fMuonRectotET); 
3014     fHistMuonRectotETDep->Fill(fMuonRectotETDep); 
3015     fHistMuonMatchtotET->Fill(fMuonMatchtotET); 
3016     fHistMuonMatchtotETDep->Fill(fMuonMatchtotETDep); 
3017     fHistPionRectotET->Fill(fPionRectotET); 
3018     fHistPionRectotETDep->Fill(fPionRectotETDep); 
3019     fHistPionMatchtotET->Fill(fPionMatchtotET); 
3020     fHistPionMatchtotETDep->Fill(fPionMatchtotETDep); 
3021     fHistKaonRectotET->Fill(fKaonRectotET); 
3022     fHistKaonRectotETDep->Fill(fKaonRectotETDep); 
3023     fHistKaonMatchtotET->Fill(fKaonMatchtotET); 
3024     fHistKaonMatchtotETDep->Fill(fKaonMatchtotETDep); 
3025     fHistProtonRectotET->Fill(fProtonRectotET); 
3026     fHistProtonRectotETDep->Fill(fProtonRectotETDep); 
3027     fHistProtonMatchtotET->Fill(fProtonMatchtotET); 
3028     fHistProtonMatchtotETDep->Fill(fProtonMatchtotETDep); 
3029     fHistTotChargedRectotET->Fill(fTotChargedRectotET);
3030     fHistTotChargedRectotETDep->Fill(fTotChargedRectotETDep);
3031     fHistTotChargedMatchtotET->Fill(fTotChargedMatchtotET);
3032     fHistTotChargedMatchtotETDep->Fill(fTotChargedMatchtotETDep);
3033         
3034     fHistNeutronRectotET->Fill(fNeutronRectotET);
3035     fHistNeutronRectotETDep->Fill(fNeutronRectotETDep);
3036     fHistK0RectotET->Fill(fK0RectotET);
3037     fHistK0RectotETDep->Fill(fK0RectotETDep);
3038     fHistLambdaRectotET->Fill(fLambdaRectotET);
3039     fHistLambdaRectotETDep->Fill(fLambdaRectotETDep);
3040     fHistTotNeutralRectotET->Fill(fTotNeutralRectotET);
3041     fHistTotNeutralRectotETDep->Fill(fTotNeutralRectotETDep);
3042         
3043     fHistTotalRectotET->Fill(fTotalRectotET);
3044     fHistTotalRectotETDep->Fill(fTotalRectotETDep);
3045         
3046     //delete fGeoUt;
3047     delete caloClusters;//Marcelo - Christine - make as object & don't create new one each event
3048         
3049     return 0;    
3050 }       
3051
3052 void AliAnalysisEmEtMonteCarlo::Init()
3053 { // init
3054     AliAnalysisEt::Init();
3055         
3056     fDetectorRadius = fCuts->GetGeometryEmcalDetectorRadius();
3057     fSingleCellEnergyCut = fCuts->GetReconstructedEmcalSingleCellEnergyCut();
3058 }
3059
3060 void AliAnalysisEmEtMonteCarlo::ResetEventValues()
3061 { // reset event values
3062     AliAnalysisEt::ResetEventValues();
3063         
3064     fPrimtotET = 0; fPrimAcctotET = 0; fPrimRectotET = 0; fPrimRectotETDep = 0;
3065     
3066     fElectrontotET = 0; fElectronAcctotET = 0; fElectronRectotET = 0;
3067     fConvElectrontotET = 0; fConvElectronAcctotET = 0; fConvElectronRectotET = 0; fScatElectrontotET = 0; fScatElectronAcctotET = 0; fScatElectronRectotET = 0;
3068     fTotElectrontotET = 0, fTotElectronAcctotET = 0, fTotElectronRectotET = 0;
3069         
3070     fGammatotET = 0; fGammaAcctotET = 0; fGammaRectotET = 0;
3071     fAnnihGammatotET = 0; fAnnihGammaAcctotET = 0; fAnnihGammaRectotET = 0; fScatGammatotET = 0; fScatGammaAcctotET = 0; fScatGammaRectotET = 0;
3072     fTotGammatotET = 0, fTotGammaAcctotET = 0, fTotGammaRectotET = 0;
3073     
3074     fTotEMtotET = 0, fTotEMAcctotET = 0, fTotEMRectotET = 0;
3075     
3076     fConvGammatotET = 0; fNonConvGammatotET = 0; fConvGammaAcctotET = 0; fNonConvGammaAcctotET = 0; fNPPPi0GammatotET = 0; fNPPPi0GammaRectotET = 0;
3077         
3078     fNPPElectrontotET = 0; fNPPElectronRectotET = 0; fNPPGammatotET = 0; fNPPGammaRectotET = 0;
3079     fTotNPPEMtotET = 0, fTotNPPEMRectotET = 0;
3080     
3081     fMuontotET = 0; fPiontotET = 0; fKaontotET = 0; fProtontotET = 0;
3082     fMuonAcctotET = 0; fPionAcctotET = 0; fKaonAcctotET = 0; fProtonAcctotET = 0;
3083     fMuonRectotET = 0; fMuonRectotETDep = 0; fPionRectotET = 0; fPionRectotETDep = 0; fKaonRectotET = 0; fKaonRectotETDep = 0; fProtonRectotET = 0; fProtonRectotETDep = 0;
3084     fMuonMatchtotET = 0; fMuonMatchtotETDep = 0; fPionMatchtotET = 0; fPionMatchtotETDep = 0; fKaonMatchtotET = 0; fKaonMatchtotETDep = 0; fProtonMatchtotET = 0; fProtonMatchtotETDep = 0;
3085     fTotChargedtotET = 0, fTotChargedAcctotET = 0, fTotChargedRectotET = 0, fTotChargedRectotETDep = 0, fTotChargedMatchtotET = 0, fTotChargedMatchtotETDep = 0;
3086     
3087     fNeutrontotET = 0; fNeutronAcctotET = 0; fNeutronRectotET = 0; fNeutronRectotETDep = 0;
3088     fK0totET = 0; fK0RectotET = 0; fK0RectotETDep = 0; fLambdatotET = 0; fLambdaRectotET = 0; fLambdaRectotETDep = 0;
3089     fTotNeutraltotET = 0, fTotNeutralRectotET = 0, fTotNeutralRectotETDep = 0;
3090         
3091     fTotaltotET = 0, fTotalAcctotET = 0, fTotalRectotET = 0, fTotalRectotETDep = 0;
3092 }
3093
3094 void AliAnalysisEmEtMonteCarlo::CreateHistograms()
3095 { // histogram related Additions
3096     //AliAnalysisEt::CreateHistograms();
3097     fSelector = new AliAnalysisEtSelectorEmcal(fCuts);
3098     fHistPrimEtaEET = CreateEtaEHisto2D("fHistPrimEtaEET_","MC E_{T}, primary particles","E_{T}(GeV)");
3099     fHistPrimEtaPtET = CreateEtaPtHisto2D("fHistPrimEtaPtET_","MC E_{T}, primary particles","E_{T}(GeV)");
3100     fHistPrimEtaET = CreateEtaEtHisto2D("fHistPrimEtaET_","MC primary particles","#");
3101     TString histname = "fHistPrimtotET_" + fHistogramNameSuffix;
3102     fHistPrimtotET = new TH1F(histname.Data(),"total ET, primary particles",fgNumOfEBins, fgEAxis);
3103         
3104     fHistPrimAccEtaEET = CreateEtaEHisto2D("fHistPrimAccEtaEET_","MC E_{T}, primary particles","E_{T}(GeV)");
3105     fHistPrimAccEtaPtET = CreateEtaPtHisto2D("fHistPrimAccEtaPtET_","MC E_{T}, primary particles","E_{T}(GeV)");
3106     fHistPrimAccEtaET = CreateEtaEtHisto2D("fHistPrimAccEtaET_","MC primary particles","#");
3107     histname = "fHistPrimAcctotET_" + fHistogramNameSuffix;
3108     fHistPrimAcctotET = new TH1F(histname.Data(),"total ET, primary particles",fgNumOfEBins, fgEAxis);
3109         
3110     fHistPrimRecEtaEET = CreateEtaEHisto2D("fHistPrimRecEtaEET_","MC E_{T}, primary particles","E_{T}(GeV)");
3111     fHistPrimRecEtaPtET = CreateEtaPtHisto2D("fHistPrimRecEtaPtET_","MC E_{T}, primary particles","E_{T}(GeV)");
3112     fHistPrimRecEtaET = CreateEtaEtHisto2D("fHistPrimRecEtaET_","MC primary particles","#");
3113     histname = "fHistPrimRectotET_" + fHistogramNameSuffix;
3114     fHistPrimRectotET = new TH1F(histname.Data(),"total ET, primary particles",fgNumOfEBins, fgEAxis);
3115     
3116     fHistPrimRecEtaEDepETDep = CreateEtaEHisto2D("fHistPrimRecEtaEDepETDep_","MC E_{T}, primary particles","E_{T}(GeV)");
3117     fHistPrimRecEtaPtETDep = CreateEtaPtHisto2D("fHistPrimRecEtaPtETDep_","MC E_{T}, primary particles","E_{T}(GeV)");
3118     fHistPrimRecEtaETDep = CreateEtaEtHisto2D("fHistPrimRecEtaETDep_","MC primary particles","#");
3119     histname = "fHistPrimRectotETDep_" + fHistogramNameSuffix;
3120     fHistPrimRectotETDep = new TH1F(histname.Data(),"total ET, primary particles",fgNumOfEBins, fgEAxis);
3121         
3122     fHistElectronEtaEET = CreateEtaEHisto2D("fHistElectronEtaEET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3123     fHistElectronEtaPtET = CreateEtaPtHisto2D("fHistElectronEtaPtET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3124     fHistElectronEtaET = CreateEtaEtHisto2D("fHistElectronEtaET_","MC primary electrons","#");
3125     fHistElectronEtaE = CreateEtaEHisto2D("fHistElectronEtaE_","MC primary electrons","#");
3126     fHistElectronEtaPt = CreateEtaPtHisto2D("fHistElectronEtaPt_","MC primary electrons","#");
3127     histname = "fHistElectrontotET_" + fHistogramNameSuffix;
3128     fHistElectrontotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3129     
3130     fHistConvElectronEtaEET = CreateEtaEHisto2D("fHistConvElectronEtaEET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3131     fHistConvElectronEtaPtET = CreateEtaPtHisto2D("fHistConvElectronEtaPtET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3132     fHistConvElectronEtaET = CreateEtaEtHisto2D("fHistConvElectronEtaET_","MC electrons from conversion","#");
3133     fHistConvElectronEtaE = CreateEtaEHisto2D("fHistConvElectronEtaE_","MC electrons from conversion","#");
3134     fHistConvElectronEtaPt = CreateEtaPtHisto2D("fHistConvElectronEtaPt_","MC electrons from conversion","#");
3135     histname = "fHistConvElectrontotET_" + fHistogramNameSuffix;
3136     fHistConvElectrontotET = new TH1F(histname.Data(),"total ET, MC electrons from conversion",fgNumOfEBins, fgEAxis);
3137         
3138     fHistScatElectronEtaEET = CreateEtaEHisto2D("fHistScatElectronEtaEET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3139     fHistScatElectronEtaPtET = CreateEtaPtHisto2D("fHistScatElectronEtaPtET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3140     fHistScatElectronEtaET = CreateEtaEtHisto2D("fHistScatElectronEtaET_","MC electrons from Scattering","#");
3141     fHistScatElectronEtaE = CreateEtaEHisto2D("fHistScatElectronEtaE_","MC electrons from Scattering","#");
3142     fHistScatElectronEtaPt = CreateEtaPtHisto2D("fHistScatElectronEtaPt_","MC electrons from Scattering","#");
3143     histname = "fHistScatElectrontotET_" + fHistogramNameSuffix;
3144     fHistScatElectrontotET = new TH1F(histname.Data(),"total ET, MC electrons from Scattering",fgNumOfEBins, fgEAxis);
3145         
3146     histname = "fHistTotElectrontotET_" + fHistogramNameSuffix;
3147     fHistTotElectrontotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3148     
3149     fHistGammaEtaEET = CreateEtaEHisto2D("fHistGammaEtaEET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3150     fHistGammaEtaPtET = CreateEtaPtHisto2D("fHistGammaEtaPtET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3151     fHistGammaEtaET = CreateEtaEtHisto2D("fHistGammaEtaET_","MC primary gammas","#"); 
3152     fHistGammaEtaE = CreateEtaEHisto2D("fHistGammaEtaE_","MC primary gammas","#"); 
3153     fHistGammaEtaPt = CreateEtaPtHisto2D("fHistGammaEtaPt_","MC primary gammas","#"); 
3154     histname = "fHistGammatotET_" + fHistogramNameSuffix;
3155     fHistGammatotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3156     
3157     fHistAnnihGammaEtaEET = CreateEtaEHisto2D("fHistAnnihGammaEtaEET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3158     fHistAnnihGammaEtaPtET = CreateEtaPtHisto2D("fHistAnnihGammaEtaPtET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3159     fHistAnnihGammaEtaET = CreateEtaEtHisto2D("fHistAnnihGammaEtaET_","MC Annihilation gammas","#");    
3160     fHistAnnihGammaEtaE = CreateEtaEHisto2D("fHistAnnihGammaEtaE_","MC Annihilation gammas","#");       
3161     fHistAnnihGammaEtaPt = CreateEtaPtHisto2D("fHistAnnihGammaEtaPt_","MC Annihilation gammas","#"); 
3162     histname = "fHistAnnihGammatotET_" + fHistogramNameSuffix;
3163     fHistAnnihGammatotET = new TH1F(histname.Data(),"total ET, MC Annihilation gammas",fgNumOfEBins, fgEAxis);
3164         
3165     fHistScatGammaEtaEET = CreateEtaEHisto2D("fHistScatGammaEtaEET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3166     fHistScatGammaEtaPtET = CreateEtaPtHisto2D("fHistScatGammaEtaPtET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3167     fHistScatGammaEtaET = CreateEtaEtHisto2D("fHistScatGammaEtaET_","MC Scattering gammas","#");        
3168     fHistScatGammaEtaE = CreateEtaEHisto2D("fHistScatGammaEtaE_","MC Scattering gammas","#");   
3169     fHistScatGammaEtaPt = CreateEtaPtHisto2D("fHistScatGammaEtaPt_","MC Scattering gammas","#"); 
3170     histname = "fHistScatGammatotET_" + fHistogramNameSuffix;
3171     fHistScatGammatotET = new TH1F(histname.Data(),"total ET, MC Scattering gammas",fgNumOfEBins, fgEAxis);
3172         
3173     fHistConvGammaEtaEET = CreateEtaEHisto2D("fHistConvGammaEtaEET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3174     fHistConvGammaEtaPtET = CreateEtaPtHisto2D("fHistConvGammaEtaPtET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3175     fHistConvGammaEtaET = CreateEtaEtHisto2D("fHistConvGammaEtaET_","MC non conversion primary gammas","#"); 
3176     fHistConvGammaEtaE = CreateEtaEHisto2D("fHistConvGammaEtaE_","MC non conversion primary gammas","#"); 
3177     fHistConvGammaEtaPt = CreateEtaPtHisto2D("fHistConvGammaEtaPt_","MC non conversion primary gammas","#"); 
3178     histname = "fHistConvGammatotET_" + fHistogramNameSuffix;
3179     fHistConvGammatotET = new TH1F(histname.Data(),"total ET, MC non conversion primary gammas",fgNumOfEBins, fgEAxis);
3180         
3181     fHistNonConvGammaEtaEET = CreateEtaEHisto2D("fHistNonConvGammaEtaEET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3182     fHistNonConvGammaEtaPtET = CreateEtaPtHisto2D("fHistNonConvGammaEtaPtET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3183     fHistNonConvGammaEtaET = CreateEtaEtHisto2D("fHistNonConvGammaEtaET_","MC non conversion primary gammas","#"); 
3184     fHistNonConvGammaEtaE = CreateEtaEHisto2D("fHistNonConvGammaEtaE_","MC non conversion primary gammas","#"); 
3185     fHistNonConvGammaEtaPt = CreateEtaPtHisto2D("fHistNonConvGammaEtaPt_","MC non conversion primary gammas","#"); 
3186     histname = "fHistNonConvGammatotET_" + fHistogramNameSuffix;
3187     fHistNonConvGammatotET = new TH1F(histname.Data(),"total ET, MC non conversion primary gammas",fgNumOfEBins, fgEAxis);
3188     
3189     histname = "fHistTotGammatotET_" + fHistogramNameSuffix;
3190     fHistTotGammatotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3191     
3192     histname = "fHistTotEMtotET_" + fHistogramNameSuffix;
3193     fHistTotEMtotET = new TH1F(histname.Data(),"total electromagnetic ET",fgNumOfEBins, fgEAxis);
3194     
3195     fHistNPPElectronEtaEET = CreateEtaEHisto2D("fHistNPPElectronEtaEET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3196     fHistNPPElectronEtaPtET = CreateEtaPtHisto2D("fHistNPPElectronEtaPtET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3197     fHistNPPElectronEtaET = CreateEtaEtHisto2D("fHistNPPElectronEtaET_","MC non-primary electrons","#");
3198     fHistNPPElectronEtaE = CreateEtaEHisto2D("fHistNPPElectronEtaE_","MC non-primary electrons","#");
3199     fHistNPPElectronEtaPt = CreateEtaPtHisto2D("fHistNPPElectronEtaPt_","MC non-primary electrons","#");
3200     histname = "fHistNPPElectrontotET_" + fHistogramNameSuffix;
3201     fHistNPPElectrontotET = new TH1F(histname.Data(),"total ET, MC non-primary electrons",fgNumOfEBins, fgEAxis);
3202         
3203     fHistNPPGammaEtaEET = CreateEtaEHisto2D("fHistNPPGammaEtaEET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3204     fHistNPPGammaEtaPtET = CreateEtaPtHisto2D("fHistNPPGammaEtaPtET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3205     fHistNPPGammaEtaET = CreateEtaEtHisto2D("fHistNPPGammaEtaET_","MC non-primary gammas","#"); 
3206     fHistNPPGammaEtaE = CreateEtaEHisto2D("fHistNPPGammaEtaE_","MC non-primary gammas","#"); 
3207     fHistNPPGammaEtaPt = CreateEtaPtHisto2D("fHistNPPGammaEtaPt_","MC non-primary gammas","#"); 
3208     histname = "fHistNPPGammatotET_" + fHistogramNameSuffix;
3209     fHistNPPGammatotET = new TH1F(histname.Data(),"total ET, MC non-primary gammas",fgNumOfEBins, fgEAxis);
3210         
3211     histname = "fHistTotNPPEMtotET_" + fHistogramNameSuffix;
3212     fHistTotNPPEMtotET = new TH1F(histname.Data(),"total ET, MC non-primary electromagnetic",fgNumOfEBins, fgEAxis);
3213         
3214     fHistNPPPi0GammaEtaEET = CreateEtaEHisto2D("fHistNPPPi0GammaEtaEET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3215     fHistNPPPi0GammaEtaPtET = CreateEtaPtHisto2D("fHistNPPPi0GammaEtaPtET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3216     fHistNPPPi0GammaEtaET = CreateEtaEtHisto2D("fHistNPPPi0GammaEtaET_","MC non-primary gammas","#"); 
3217     fHistNPPPi0GammaEtaE = CreateEtaEHisto2D("fHistNPPPi0GammaEtaE_","MC non-primary gammas","#"); 
3218     fHistNPPPi0GammaEtaPt = CreateEtaPtHisto2D("fHistNPPPi0GammaEtaPt_","MC non-primary gammas","#"); 
3219     histname = "fHistNPPPi0GammatotET_" + fHistogramNameSuffix;
3220     fHistNPPPi0GammatotET = new TH1F(histname.Data(),"total ET, MC non-primary gammas",fgNumOfEBins, fgEAxis);
3221     
3222     fHistElectronAccEtaEET = CreateEtaEHisto2D("fHistElectronAccEtaEET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3223     fHistElectronAccEtaPtET = CreateEtaPtHisto2D("fHistElectronAccEtaPtET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3224     fHistElectronAccEtaET = CreateEtaEtHisto2D("fHistElectronAccEtaET_","MC primary electrons","#");
3225     fHistElectronAccEtaE = CreateEtaEHisto2D("fHistElectronAccEtaE_","MC primary electrons","#");
3226     fHistElectronAccEtaPt = CreateEtaPtHisto2D("fHistElectronAccEtaPt_","MC primary electrons","#");
3227     histname = "fHistElectronAcctotET_" + fHistogramNameSuffix;
3228     fHistElectronAcctotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3229         
3230     fHistConvElectronAccEtaEET = CreateEtaEHisto2D("fHistConvElectronAccEtaEET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3231     fHistConvElectronAccEtaPtET = CreateEtaPtHisto2D("fHistConvElectronAccEtaPtET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3232     fHistConvElectronAccEtaET = CreateEtaEtHisto2D("fHistConvElectronAccEtaET_","MC electrons from conversion","#");
3233     fHistConvElectronAccEtaE = CreateEtaEHisto2D("fHistConvElectronAccEtaE_","MC electrons from conversion","#");
3234     fHistConvElectronAccEtaPt = CreateEtaPtHisto2D("fHistConvElectronAccEtaPt_","MC electrons from conversion","#");
3235     histname = "fHistConvElectronAcctotET_" + fHistogramNameSuffix;
3236     fHistConvElectronAcctotET = new TH1F(histname.Data(),"total ET, MC electrons from conversion",fgNumOfEBins, fgEAxis);
3237         
3238     fHistScatElectronAccEtaEET = CreateEtaEHisto2D("fHistScatElectronAccEtaEET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3239     fHistScatElectronAccEtaPtET = CreateEtaPtHisto2D("fHistScatElectronAccEtaPtET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3240     fHistScatElectronAccEtaET = CreateEtaEtHisto2D("fHistScatElectronAccEtaET_","MC electrons from Scattering","#");
3241     fHistScatElectronAccEtaE = CreateEtaEHisto2D("fHistScatElectronAccEtaE_","MC electrons from Scattering","#");
3242     fHistScatElectronAccEtaPt = CreateEtaPtHisto2D("fHistScatElectronAccEtaPt_","MC electrons from Scattering","#");
3243     histname = "fHistScatElectronAcctotET_" + fHistogramNameSuffix;
3244     fHistScatElectronAcctotET = new TH1F(histname.Data(),"total ET, MC electrons from Scattering",fgNumOfEBins, fgEAxis);
3245     
3246     histname = "fHistTotElectronAcctotET_" + fHistogramNameSuffix;
3247     fHistTotElectronAcctotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3248     
3249     fHistGammaAccEtaEET = CreateEtaEHisto2D("fHistGammaAccEtaEET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3250     fHistGammaAccEtaPtET = CreateEtaPtHisto2D("fHistGammaAccEtaPtET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3251     fHistGammaAccEtaET = CreateEtaEtHisto2D("fHistGammaAccEtaET_","MC primary gammas","#"); 
3252     fHistGammaAccEtaE = CreateEtaEHisto2D("fHistGammaAccEtaE_","MC primary gammas","#"); 
3253     fHistGammaAccEtaPt = CreateEtaPtHisto2D("fHistGammaAccEtaPt_","MC primary gammas","#"); 
3254     histname = "fHistGammaAcctotET_" + fHistogramNameSuffix;
3255     fHistGammaAcctotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3256         
3257     fHistAnnihGammaAccEtaEET = CreateEtaEHisto2D("fHistAnnihGammaAccEtaEET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3258     fHistAnnihGammaAccEtaPtET = CreateEtaPtHisto2D("fHistAnnihGammaAccEtaPtET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3259     fHistAnnihGammaAccEtaET = CreateEtaEtHisto2D("fHistAnnihGammaAccEtaET_","MC Annihilation gammas","#");      
3260     fHistAnnihGammaAccEtaE = CreateEtaEHisto2D("fHistAnnihGammaAccEtaE_","MC Annihilation gammas","#");         
3261     fHistAnnihGammaAccEtaPt = CreateEtaPtHisto2D("fHistAnnihGammaAccEtaPt_","MC Annihilation gammas","#"); 
3262     histname = "fHistAnnihGammaAcctotET_" + fHistogramNameSuffix;
3263     fHistAnnihGammaAcctotET = new TH1F(histname.Data(),"total ET, MC Annihilation gammas",fgNumOfEBins, fgEAxis);
3264         
3265     fHistScatGammaAccEtaEET = CreateEtaEHisto2D("fHistScatGammaAccEtaEET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3266     fHistScatGammaAccEtaPtET = CreateEtaPtHisto2D("fHistScatGammaAccEtaPtET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3267     fHistScatGammaAccEtaET = CreateEtaEtHisto2D("fHistScatGammaAccEtaET_","MC Scattering gammas","#");  
3268     fHistScatGammaAccEtaE = CreateEtaEHisto2D("fHistScatGammaAccEtaE_","MC Scattering gammas","#");     
3269     fHistScatGammaAccEtaPt = CreateEtaPtHisto2D("fHistScatGammaAccEtaPt_","MC Scattering gammas","#"); 
3270     histname = "fHistScatGammaAcctotET_" + fHistogramNameSuffix;
3271     fHistScatGammaAcctotET = new TH1F(histname.Data(),"total ET, MC Scattering gammas",fgNumOfEBins, fgEAxis);
3272         
3273     fHistConvGammaAccEtaEET = CreateEtaEHisto2D("fHistConvGammaAccEtaEET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3274     fHistConvGammaAccEtaPtET = CreateEtaPtHisto2D("fHistConvGammaAccEtaPtET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3275     fHistConvGammaAccEtaET = CreateEtaEtHisto2D("fHistConvGammaAccEtaET_","MC non conversion primary gammas","#"); 
3276     fHistConvGammaAccEtaE = CreateEtaEHisto2D("fHistConvGammaAccEtaE_","MC non conversion primary gammas","#"); 
3277     fHistConvGammaAccEtaPt = CreateEtaPtHisto2D("fHistConvGammaAccEtaPt_","MC non conversion primary gammas","#"); 
3278     histname = "fHistConvGammaAcctotET_" + fHistogramNameSuffix;
3279     fHistConvGammaAcctotET = new TH1F(histname.Data(),"total ET, MC non conversion primary gammas",fgNumOfEBins, fgEAxis);
3280         
3281     fHistNonConvGammaAccEtaEET = CreateEtaEHisto2D("fHistNonConvGammaAccEtaEET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3282     fHistNonConvGammaAccEtaPtET = CreateEtaPtHisto2D("fHistNonConvGammaAccEtaPtET_","MC E_{T}, non conversion primary gammas","E_{T}(GeV)"); 
3283     fHistNonConvGammaAccEtaET = CreateEtaEtHisto2D("fHistNonConvGammaAccEtaET_","MC non conversion primary gammas","#"); 
3284     fHistNonConvGammaAccEtaE = CreateEtaEHisto2D("fHistNonConvGammaAccEtaE_","MC non conversion primary gammas","#"); 
3285     fHistNonConvGammaAccEtaPt = CreateEtaPtHisto2D("fHistNonConvGammaAccEtaPt_","MC non conversion primary gammas","#"); 
3286     histname = "fHistNonConvGammaAcctotET_" + fHistogramNameSuffix;
3287     fHistNonConvGammaAcctotET = new TH1F(histname.Data(),"total ET, MC non conversion primary gammas",fgNumOfEBins, fgEAxis);
3288         
3289     histname = "fHistTotGammaAcctotET_" + fHistogramNameSuffix;
3290     fHistTotGammaAcctotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3291         
3292     histname = "fHistTotEMAcctotET_" + fHistogramNameSuffix;
3293     fHistTotEMAcctotET = new TH1F(histname.Data(),"total electromagnetic ET",fgNumOfEBins, fgEAxis);
3294     
3295     fHistNPPElectronAccEtaEET = CreateEtaEHisto2D("fHistNPPElectronAccEtaEET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3296     fHistNPPElectronAccEtaPtET = CreateEtaPtHisto2D("fHistNPPElectronAccEtaPtET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3297     fHistNPPElectronAccEtaE = CreateEtaEHisto2D("fHistNPPElectronAccEtaE_","MC non-primary electrons","#");
3298     fHistNPPElectronAccEtaPt = CreateEtaPtHisto2D("fHistNPPElectronAccEtaPt_","MC non-primary electrons","#");
3299         
3300     fHistNPPGammaAccEtaEET = CreateEtaEHisto2D("fHistNPPGammaAccEtaEET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3301     fHistNPPGammaAccEtaPtET = CreateEtaPtHisto2D("fHistNPPGammaAccEtaPtET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3302     fHistNPPGammaAccEtaE = CreateEtaEHisto2D("fHistNPPGammaAccEtaE_","MC non-primary gammas","#"); 
3303     fHistNPPGammaAccEtaPt = CreateEtaPtHisto2D("fHistNPPGammaAccEtaPt_","MC non-primary gammas","#"); 
3304         
3305     fHistElectronRecEtaEET = CreateEtaEHisto2D("fHistElectronRecEtaEET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3306     fHistElectronRecEtaPtET = CreateEtaPtHisto2D("fHistElectronRecEtaPtET_","MC E_{T}, primary electrons","E_{T}(GeV)");
3307     fHistElectronRecEtaET = CreateEtaEtHisto2D("fHistElectronRecEtaET_","MC primary electrons","#");
3308     fHistElectronRecEtaE = CreateEtaEHisto2D("fHistElectronRecEtaE_","MC primary electrons","#");
3309     fHistElectronRecEtaPt = CreateEtaPtHisto2D("fHistElectronRecEtaPt_","MC primary electrons","#");
3310     histname = "fHistElectronRectotET_" + fHistogramNameSuffix;
3311     fHistElectronRectotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3312     
3313     fHistConvElectronRecEtaEET = CreateEtaEHisto2D("fHistConvElectronRecEtaEET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3314     fHistConvElectronRecEtaPtET = CreateEtaPtHisto2D("fHistConvElectronRecEtaPtET_","MC E_{T}, electrons from conversion","E_{T}(GeV)");
3315     fHistConvElectronRecEtaET = CreateEtaEtHisto2D("fHistConvElectronRecEtaET_","MC electrons from conversion","#");
3316     fHistConvElectronRecEtaE = CreateEtaEHisto2D("fHistConvElectronRecEtaE_","MC electrons from conversion","#");
3317     fHistConvElectronRecEtaPt = CreateEtaPtHisto2D("fHistConvElectronRecEtaPt_","MC electrons from conversion","#");
3318     histname = "fHistConvElectronRectotET_" + fHistogramNameSuffix;
3319     fHistConvElectronRectotET = new TH1F(histname.Data(),"total ET, MC electrons from conversion",fgNumOfEBins, fgEAxis);
3320         
3321     fHistScatElectronRecEtaEET = CreateEtaEHisto2D("fHistScatElectronRecEtaEET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3322     fHistScatElectronRecEtaPtET = CreateEtaPtHisto2D("fHistScatElectronRecEtaPtET_","MC E_{T}, electrons from Scattering","E_{T}(GeV)");
3323     fHistScatElectronRecEtaET = CreateEtaEtHisto2D("fHistScatElectronRecEtaET_","MC electrons from Scattering","#");
3324     fHistScatElectronRecEtaE = CreateEtaEHisto2D("fHistScatElectronRecEtaE_","MC electrons from Scattering","#");
3325     fHistScatElectronRecEtaPt = CreateEtaPtHisto2D("fHistScatElectronRecEtaPt_","MC electrons from Scattering","#");
3326     histname = "fHistScatElectronRectotET_" + fHistogramNameSuffix;
3327     fHistScatElectronRectotET = new TH1F(histname.Data(),"total ET, MC electrons from Scattering",fgNumOfEBins, fgEAxis);
3328         
3329     histname = "fHistTotElectronRectotET_" + fHistogramNameSuffix;
3330     fHistTotElectronRectotET = new TH1F(histname.Data(),"total ET, MC primary electrons",fgNumOfEBins, fgEAxis);
3331     
3332     fHistGammaRecEtaEET = CreateEtaEHisto2D("fHistGammaRecEtaEET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3333     fHistGammaRecEtaPtET = CreateEtaPtHisto2D("fHistGammaRecEtaPtET_","MC E_{T}, primary gammas","E_{T}(GeV)"); 
3334     fHistGammaRecEtaET = CreateEtaEtHisto2D("fHistGammaRecEtaET_","MC primary gammas","#"); 
3335     fHistGammaRecEtaE = CreateEtaEHisto2D("fHistGammaRecEtaE_","MC primary gammas","#"); 
3336     fHistGammaRecEtaPt = CreateEtaPtHisto2D("fHistGammaRecEtaPt_","MC primary gammas","#"); 
3337     histname = "fHistGammaRectotET_" + fHistogramNameSuffix;
3338     fHistGammaRectotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3339     
3340     fHistGammaRecResEET = CreateResEHisto2D("fHistGammaRecResEET_","MC E_{T}, primary Gammas","E_{T}(GeV)");// Add Caio
3341     fHistGammaRecResPtET = CreateResPtHisto2D("fHistGammaRecResPtET_","MC E_{T}, primary Gammas","E_{T}(GeV)");// Add Caio
3342     fHistGammaRecResE = CreateResEHisto2D("fHistGammaRecResE_","MC primary Gammas","#");// Add Caio
3343     fHistGammaRecResPt  = CreateResPtHisto2D("fHistGammaRecResPt_","MC primary Gammas","#");// Add Caio
3344     fHistGammaRecResEDepETDep = CreateResEHisto2D("fHistGammaRecResEDepETDep_","MC E_{T}, Gammas","E_{T} dep (GeV)"); // Add Caio
3345     fHistGammaRecResPtETDep = CreateResPtHisto2D("fHistGammaRecResPtETDep_","MC E_{T}, Gammas","E_{T} dep (GeV)");// Add Caio
3346     
3347     fHistAnnihGammaRecEtaEET = CreateEtaEHisto2D("fHistAnnihGammaRecEtaEET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3348     fHistAnnihGammaRecEtaPtET = CreateEtaPtHisto2D("fHistAnnihGammaRecEtaPtET_","MC E_{T}, Annihilation gammas","E_{T}(GeV)"); 
3349     fHistAnnihGammaRecEtaET = CreateEtaEtHisto2D("fHistAnnihGammaRecEtaET_","MC Annihilation gammas","#");      
3350     fHistAnnihGammaRecEtaE = CreateEtaEHisto2D("fHistAnnihGammaRecEtaE_","MC Annihilation gammas","#");         
3351     fHistAnnihGammaRecEtaPt = CreateEtaPtHisto2D("fHistAnnihGammaRecEtaPt_","MC Annihilation gammas","#"); 
3352     histname = "fHistAnnihGammaRectotET_" + fHistogramNameSuffix;
3353     fHistAnnihGammaRectotET = new TH1F(histname.Data(),"total ET, MC Annihilation gammas",fgNumOfEBins, fgEAxis);
3354         
3355     fHistScatGammaRecEtaEET = CreateEtaEHisto2D("fHistScatGammaRecEtaEET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3356     fHistScatGammaRecEtaPtET = CreateEtaPtHisto2D("fHistScatGammaRecEtaPtET_","MC E_{T}, Scattering gammas","E_{T}(GeV)"); 
3357     fHistScatGammaRecEtaET = CreateEtaEtHisto2D("fHistScatGammaRecEtaET_","MC Scattering gammas","#");  
3358     fHistScatGammaRecEtaE = CreateEtaEHisto2D("fHistScatGammaRecEtaE_","MC Scattering gammas","#");     
3359     fHistScatGammaRecEtaPt = CreateEtaPtHisto2D("fHistScatGammaRecEtaPt_","MC Scattering gammas","#"); 
3360     histname = "fHistScatGammaRectotET_" + fHistogramNameSuffix;
3361     fHistScatGammaRectotET = new TH1F(histname.Data(),"total ET, MC Scattering gammas",fgNumOfEBins, fgEAxis);
3362         
3363     histname = "fHistTotGammaRectotET_" + fHistogramNameSuffix;
3364     fHistTotGammaRectotET = new TH1F(histname.Data(),"total ET, MC primary gammas",fgNumOfEBins, fgEAxis);
3365         
3366     histname = "fHistTotEMRectotET_" + fHistogramNameSuffix;
3367     fHistTotEMRectotET = new TH1F(histname.Data(),"total electromagnetic ET",fgNumOfEBins, fgEAxis);
3368     
3369     fHistNPPElectronRecEtaEET = CreateEtaEHisto2D("fHistNPPElectronRecEtaEET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3370     fHistNPPElectronRecEtaPtET = CreateEtaPtHisto2D("fHistNPPElectronRecEtaPtET_","MC E_{T}, non-primary electrons","E_{T}(GeV)");
3371     fHistNPPElectronRecEtaET = CreateEtaEtHisto2D("fHistNPPElectronRecEtaET_","MC non-primary electrons","#");
3372     fHistNPPElectronRecEtaE = CreateEtaEHisto2D("fHistNPPElectronRecEtaE_","MC non-primary electrons","#");
3373     fHistNPPElectronRecEtaPt = CreateEtaPtHisto2D("fHistNPPElectronRecEtaPt_","MC non-primary electrons","#");
3374     histname = "fHistNPPElectronRectotET_" + fHistogramNameSuffix;
3375     fHistNPPElectronRectotET = new TH1F(histname.Data(),"total ET, MC non-primary electrons",fgNumOfEBins, fgEAxis);
3376         
3377     fHistNPPGammaRecEtaEET = CreateEtaEHisto2D("fHistNPPGammaRecEtaEET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3378     fHistNPPGammaRecEtaPtET = CreateEtaPtHisto2D("fHistNPPGammaRecEtaPtET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3379     fHistNPPGammaRecEtaET = CreateEtaEtHisto2D("fHistNPPGammaRecEtaET_","MC non-primary gammas","#"); 
3380     fHistNPPGammaRecEtaE = CreateEtaEHisto2D("fHistNPPGammaRecEtaE_","MC non-primary gammas","#"); 
3381     fHistNPPGammaRecEtaPt = CreateEtaPtHisto2D("fHistNPPGammaRecEtaPt_","MC non-primary gammas","#"); 
3382     histname = "fHistNPPGammaRectotET_" + fHistogramNameSuffix;
3383     fHistNPPGammaRectotET = new TH1F(histname.Data(),"total ET, MC non-primary gammas",fgNumOfEBins, fgEAxis);
3384     
3385     histname = "fHistTotNPPEMRectotET_" + fHistogramNameSuffix;
3386     fHistTotNPPEMRectotET = new TH1F(histname.Data(),"total ET, MC non-primary electromagnetic",fgNumOfEBins, fgEAxis);
3387     
3388     fHistNPPPi0GammaRecEtaEET = CreateEtaEHisto2D("fHistNPPPi0GammaRecEtaEET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3389     fHistNPPPi0GammaRecEtaPtET = CreateEtaPtHisto2D("fHistNPPPi0GammaRecEtaPtET_","MC E_{T}, non-primary gammas","E_{T}(GeV)"); 
3390     fHistNPPPi0GammaRecEtaET = CreateEtaEtHisto2D("fHistNPPPi0GammaRecEtaET_","MC non-primary gammas","#"); 
3391     fHistNPPPi0GammaRecEtaE = CreateEtaEHisto2D("fHistNPPPi0GammaRecEtaE_","MC non-primary gammas","#"); 
3392     fHistNPPPi0GammaRecEtaPt = CreateEtaPtHisto2D("fHistNPPPi0GammaRecEtaPt_","MC non-primary gammas","#"); 
3393     histname = "fHistNPPPi0GammaRectotET_" + fHistogramNameSuffix;
3394     fHistNPPPi0GammaRectotET = new TH1F(histname.Data(),"total ET, MC non-primary gammas",fgNumOfEBins, fgEAxis);
3395         
3396     fHistMuonEtaEET = CreateEtaEHisto2D("fHistMuonEtaEET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3397     fHistMuonAccEtaEET = CreateEtaEHisto2D("fHistMuonAccEtaEET_","MC E_{T}, primary Muons, inside EMCal acceptance","E_{T}(GeV)");
3398     fHistMuonRecEtaEET = CreateEtaEHisto2D("fHistMuonRecEtaEET_","MC E_{T}, primary Muons, reconstructed","E_{T}(GeV)");
3399     fHistMuonMatchEtaEET = CreateEtaEHisto2D("fHistMuonMatchEtaEET_","MC E_{T}, primary Muons, tracking matched","E_{T}(GeV)");
3400         
3401     fHistMuonEtaPtET = CreateEtaPtHisto2D("fHistMuonEtaPtET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3402     fHistMuonAccEtaPtET = CreateEtaPtHisto2D("fHistMuonAccEtaPtET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3403     fHistMuonRecEtaPtET = CreateEtaPtHisto2D("fHistMuonRecEtaPtET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3404     fHistMuonMatchEtaPtET = CreateEtaPtHisto2D("fHistMuonMatchEtaPtET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3405     
3406     fHistMuonEtaET = CreateEtaEtHisto2D("fHistMuonEtaET_","MC primary Muons","#");
3407     fHistMuonAccEtaET = CreateEtaEtHisto2D("fHistMuonAccEtaET_","MC primary Muons","#");
3408     fHistMuonRecEtaET = CreateEtaEtHisto2D("fHistMuonRecEtaET_","MC primary Muons","#");
3409     fHistMuonMatchEtaET = CreateEtaEtHisto2D("fHistMuonMatchEtaET_","MC primary Muons","#");
3410         
3411     fHistMuonEtaE = CreateEtaEHisto2D("fHistMuonEtaE_","MC primary Muons","#");
3412     fHistMuonAccEtaE = CreateEtaEHisto2D("fHistMuonAccEtaE_","MC primary Muons","#");
3413     fHistMuonRecEtaE = CreateEtaEHisto2D("fHistMuonRecEtaE_","MC primary Muons","#");
3414     fHistMuonMatchEtaE = CreateEtaEHisto2D("fHistMuonMatchEtaE_","MC primary Muons","#");
3415     
3416     fHistMuonEtaPt = CreateEtaPtHisto2D("fHistMuonEtaPt_","MC primary Muons","#");
3417     fHistMuonAccEtaPt = CreateEtaPtHisto2D("fHistMuonAccEtaPt_","MC primary Muons","#");
3418     fHistMuonRecEtaPt = CreateEtaPtHisto2D("fHistMuonRecEtaPt_","MC primary Muons","#");
3419     fHistMuonMatchEtaPt = CreateEtaPtHisto2D("fHistMuonMatchEtaPt_","MC primary Muons","#");
3420     
3421     histname = "fHistMuontotET_" + fHistogramNameSuffix;
3422     fHistMuontotET = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3423     histname = "fHistMuonAcctotET_" + fHistogramNameSuffix;
3424     fHistMuonAcctotET = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3425     histname = "fHistMuonRectotET_" + fHistogramNameSuffix;
3426     fHistMuonRectotET = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3427     histname = "fHistMuonMatchtotET_" + fHistogramNameSuffix;
3428     fHistMuonMatchtotET = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3429     
3430     histname = "fHistMuonRectotETDep_" + fHistogramNameSuffix;
3431     fHistMuonRectotETDep = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3432     histname = "fHistMuonMatchtotETDep_" + fHistogramNameSuffix;
3433     fHistMuonMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary Muons",fgNumOfEBins, fgEAxis);
3434     
3435     fHistMuonRecEtaEDepETDep = CreateEtaEHisto2D("fHistMuonRecEtaEDepETDep_","MC E_{T}, primary Muons, reconstructed","E_{T} dep (GeV)");
3436     fHistMuonMatchEtaEDepETDep = CreateEtaEHisto2D("fHistMuonMatchEtaEDepETDep_","MC E_{T}, primary Muons, tracking matched","E_{T} dep (GeV)");
3437         
3438     fHistMuonRecEtaPtETDep = CreateEtaPtHisto2D("fHistMuonRecEtaPtETDep_","MC E_{T}, primary Muons","E_{T} dep (GeV)");
3439     fHistMuonMatchEtaPtETDep = CreateEtaPtHisto2D("fHistMuonMatchEtaPtETDep_","MC E_{T}, primary Muons","E_{T} dep(GeV)");
3440         
3441     fHistMuonRecEtaETDep = CreateEtaEtHisto2D("fHistMuonRecEtaETDep_","MC primary Muons","#");
3442     fHistMuonMatchEtaETDep = CreateEtaEtHisto2D("fHistMuonMatchEtaETDep_","MC primary Muons","#");
3443     
3444     fHistMuonRecResEET = CreateResEHisto2D("fHistMuonRecResEET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3445     fHistMuonRecResPtET = CreateResPtHisto2D("fHistMuonRecResPtET_","MC E_{T}, primary Muons","E_{T}(GeV)");
3446     fHistMuonRecResE = CreateResEHisto2D("fHistMuonRecResE_","MC primary Muons","#");
3447     fHistMuonRecResPt  = CreateResPtHisto2D("fHistMuonRecResPt_","MC primary Muons","#");
3448     fHistMuonRecResEDepETDep = CreateResEHisto2D("fHistMuonRecResEDepETDep_","MC E_{T}, primary Muons","E_{T} dep (GeV)");
3449     fHistMuonRecResPtETDep = CreateResPtHisto2D("fHistMuonRecResPtETDep_","MC E_{T}, primary Muons","E_{T} dep (GeV)");
3450         
3451     fHistPionEtaEET = CreateEtaEHisto2D("fHistPionEtaEET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3452     fHistPionAccEtaEET = CreateEtaEHisto2D("fHistPionAccEtaEET_","MC E_{T}, primary Pions, inside EMCal acceptance","E_{T}(GeV)");
3453     fHistPionRecEtaEET = CreateEtaEHisto2D("fHistPionRecEtaEET_","MC E_{T}, primary Pions, reconstructed","E_{T}(GeV)");
3454     fHistPionMatchEtaEET = CreateEtaEHisto2D("fHistPionMatchEtaEET_","MC E_{T}, primary Pions, tracking matched","E_{T}(GeV)");
3455         
3456     fHistPionEtaPtET = CreateEtaPtHisto2D("fHistPionEtaPtET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3457     fHistPionAccEtaPtET = CreateEtaPtHisto2D("fHistPionAccEtaPtET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3458     fHistPionRecEtaPtET = CreateEtaPtHisto2D("fHistPionRecEtaPtET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3459     fHistPionMatchEtaPtET = CreateEtaPtHisto2D("fHistPionMatchEtaPtET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3460         
3461     fHistPionEtaET = CreateEtaEtHisto2D("fHistPionEtaET_","MC primary Pions","#");
3462     fHistPionAccEtaET = CreateEtaEtHisto2D("fHistPionAccEtaET_","MC primary Pions","#");
3463     fHistPionRecEtaET = CreateEtaEtHisto2D("fHistPionRecEtaET_","MC primary Pions","#");
3464     fHistPionMatchEtaET = CreateEtaEtHisto2D("fHistPionMatchEtaET_","MC primary Pions","#");
3465         
3466     fHistPionEtaE = CreateEtaEHisto2D("fHistPionEtaE_","MC primary Pions","#");
3467     fHistPionAccEtaE = CreateEtaEHisto2D("fHistPionAccEtaE_","MC primary Pions","#");
3468     fHistPionRecEtaE = CreateEtaEHisto2D("fHistPionRecEtaE_","MC primary Pions","#");
3469     fHistPionMatchEtaE = CreateEtaEHisto2D("fHistPionMatchEtaE_","MC primary Pions","#");
3470         
3471     fHistPionEtaPt = CreateEtaPtHisto2D("fHistPionEtaPt_","MC primary Pions","#");
3472     fHistPionAccEtaPt = CreateEtaPtHisto2D("fHistPionAccEtaPt_","MC primary Pions","#");
3473     fHistPionRecEtaPt = CreateEtaPtHisto2D("fHistPionRecEtaPt_","MC primary Pions","#");
3474     fHistPionMatchEtaPt = CreateEtaPtHisto2D("fHistPionMatchEtaPt_","MC primary Pions","#");
3475     
3476     histname = "fHistPiontotET_" + fHistogramNameSuffix;
3477     fHistPiontotET = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3478     histname = "fHistPionAcctotET_" + fHistogramNameSuffix;
3479     fHistPionAcctotET = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3480     histname = "fHistPionRectotET_" + fHistogramNameSuffix;
3481     fHistPionRectotET = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3482     histname = "fHistPionMatchtotET_" + fHistogramNameSuffix;
3483     fHistPionMatchtotET = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3484         
3485     histname = "fHistPionRectotETDep_" + fHistogramNameSuffix;
3486     fHistPionRectotETDep = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3487     histname = "fHistPionMatchtotETDep_" + fHistogramNameSuffix;
3488     fHistPionMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary Pions",fgNumOfEBins, fgEAxis);
3489         
3490     fHistPionRecEtaEDepETDep = CreateEtaEHisto2D("fHistPionRecEtaEDepETDep_","MC E_{T}, primary Pions, reconstructed","E_{T} dep (GeV)");
3491     fHistPionMatchEtaEDepETDep = CreateEtaEHisto2D("fHistPionMatchEtaEDepETDep_","MC E_{T}, primary Pions, tracking matched","E_{T} dep (GeV)");
3492         
3493     fHistPionRecEtaPtETDep = CreateEtaPtHisto2D("fHistPionRecEtaPtETDep_","MC E_{T}, primary Pions","E_{T} dep (GeV)");
3494     fHistPionMatchEtaPtETDep = CreateEtaPtHisto2D("fHistPionMatchEtaPtETDep_","MC E_{T}, primary Pions","E_{T} dep(GeV)");
3495         
3496     fHistPionRecEtaETDep = CreateEtaEtHisto2D("fHistPionRecEtaETDep_","MC primary Pions","#");
3497     fHistPionMatchEtaETDep = CreateEtaEtHisto2D("fHistPionMatchEtaETDep_","MC primary Pions","#");
3498         
3499     fHistPionRecResEET = CreateResEHisto2D("fHistPionRecResEET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3500     fHistPionRecResPtET = CreateResPtHisto2D("fHistPionRecResPtET_","MC E_{T}, primary Pions","E_{T}(GeV)");
3501     fHistPionRecResE = CreateResEHisto2D("fHistPionRecResE_","MC primary Pions","#");
3502     fHistPionRecResPt  = CreateResPtHisto2D("fHistPionRecResPt_","MC primary Pions","#");
3503     fHistPionRecResEDepETDep = CreateResEHisto2D("fHistPionRecResEDepETDep_","MC E_{T}, primary Pions","E_{T} dep (GeV)");
3504     fHistPionRecResPtETDep = CreateResPtHisto2D("fHistPionRecResPtETDep_","MC E_{T}, primary Pions","E_{T} dep (GeV)");
3505         
3506     fHistKaonEtaEET = CreateEtaEHisto2D("fHistKaonEtaEET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3507     fHistKaonAccEtaEET = CreateEtaEHisto2D("fHistKaonAccEtaEET_","MC E_{T}, primary Kaons, inside EMCal acceptance","E_{T}(GeV)");
3508     fHistKaonRecEtaEET = CreateEtaEHisto2D("fHistKaonRecEtaEET_","MC E_{T}, primary Kaons, reconstructed","E_{T}(GeV)");
3509     fHistKaonMatchEtaEET = CreateEtaEHisto2D("fHistKaonMatchEtaEET_","MC E_{T}, primary Kaons, tracking matched","E_{T}(GeV)");
3510         
3511     fHistKaonEtaPtET = CreateEtaPtHisto2D("fHistKaonEtaPtET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3512     fHistKaonAccEtaPtET = CreateEtaPtHisto2D("fHistKaonAccEtaPtET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3513     fHistKaonRecEtaPtET = CreateEtaPtHisto2D("fHistKaonRecEtaPtET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3514     fHistKaonMatchEtaPtET = CreateEtaPtHisto2D("fHistKaonMatchEtaPtET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3515         
3516     fHistKaonEtaET = CreateEtaEtHisto2D("fHistKaonEtaET_","MC primary Kaons","#");
3517     fHistKaonAccEtaET = CreateEtaEtHisto2D("fHistKaonAccEtaET_","MC primary Kaons","#");
3518     fHistKaonRecEtaET = CreateEtaEtHisto2D("fHistKaonRecEtaET_","MC primary Kaons","#");
3519     fHistKaonMatchEtaET = CreateEtaEtHisto2D("fHistKaonMatchEtaET_","MC primary Kaons","#");
3520         
3521     fHistKaonEtaE = CreateEtaEHisto2D("fHistKaonEtaE_","MC primary Kaons","#");
3522     fHistKaonAccEtaE = CreateEtaEHisto2D("fHistKaonAccEtaE_","MC primary Kaons","#");
3523     fHistKaonRecEtaE = CreateEtaEHisto2D("fHistKaonRecEtaE_","MC primary Kaons","#");
3524     fHistKaonMatchEtaE = CreateEtaEHisto2D("fHistKaonMatchEtaE_","MC primary Kaons","#");
3525         
3526     fHistKaonEtaPt = CreateEtaPtHisto2D("fHistKaonEtaPt_","MC primary Kaons","#");
3527     fHistKaonAccEtaPt = CreateEtaPtHisto2D("fHistKaonAccEtaPt_","MC primary Kaons","#");
3528     fHistKaonRecEtaPt = CreateEtaPtHisto2D("fHistKaonRecEtaPt_","MC primary Kaons","#");
3529     fHistKaonMatchEtaPt = CreateEtaPtHisto2D("fHistKaonMatchEtaPt_","MC primary Kaons","#");
3530         
3531     histname = "fHistKaontotET_" + fHistogramNameSuffix;
3532     fHistKaontotET = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3533     histname = "fHistKaonAcctotET_" + fHistogramNameSuffix;
3534     fHistKaonAcctotET = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3535     histname = "fHistKaonRectotET_" + fHistogramNameSuffix;
3536     fHistKaonRectotET = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3537     histname = "fHistKaonMatchtotET_" + fHistogramNameSuffix;
3538     fHistKaonMatchtotET = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3539         
3540     histname = "fHistKaonRectotETDep_" + fHistogramNameSuffix;
3541     fHistKaonRectotETDep = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3542     histname = "fHistKaonMatchtotETDep_" + fHistogramNameSuffix;
3543     fHistKaonMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary Kaons",fgNumOfEBins, fgEAxis);
3544         
3545     fHistKaonRecEtaEDepETDep = CreateEtaEHisto2D("fHistKaonRecEtaEDepETDep_","MC E_{T}, primary Kaons, reconstructed","E_{T} dep (GeV)");
3546     fHistKaonMatchEtaEDepETDep = CreateEtaEHisto2D("fHistKaonMatchEtaEDepETDep_","MC E_{T}, primary Kaons, tracking matched","E_{T} dep (GeV)");
3547         
3548     fHistKaonRecEtaPtETDep = CreateEtaPtHisto2D("fHistKaonRecEtaPtETDep_","MC E_{T}, primary Kaons","E_{T} dep (GeV)");
3549     fHistKaonMatchEtaPtETDep = CreateEtaPtHisto2D("fHistKaonMatchEtaPtETDep_","MC E_{T}, primary Kaons","E_{T} dep(GeV)");
3550         
3551     fHistKaonRecEtaETDep = CreateEtaEtHisto2D("fHistKaonRecEtaETDep_","MC primary Kaons","#");
3552     fHistKaonMatchEtaETDep = CreateEtaEtHisto2D("fHistKaonMatchEtaETDep_","MC primary Kaons","#");
3553         
3554     fHistKaonRecResEET = CreateResEHisto2D("fHistKaonRecResEET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3555     fHistKaonRecResPtET = CreateResPtHisto2D("fHistKaonRecResPtET_","MC E_{T}, primary Kaons","E_{T}(GeV)");
3556     fHistKaonRecResE = CreateResEHisto2D("fHistKaonRecResE_","MC primary Kaons","#");
3557     fHistKaonRecResPt  = CreateResPtHisto2D("fHistKaonRecResPt_","MC primary Kaons","#");       
3558     fHistKaonRecResEDepETDep = CreateResEHisto2D("fHistKaonRecResEDepETDep_","MC E_{T}, primary Kaons","E_{T} dep (GeV)");
3559     fHistKaonRecResPtETDep = CreateResPtHisto2D("fHistKaonRecResPtETDep_","MC E_{T}, primary Kaons","E_{T} dep (GeV)");
3560     
3561     fHistProtonEtaEET = CreateEtaEHisto2D("fHistProtonEtaEET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3562     fHistProtonAccEtaEET = CreateEtaEHisto2D("fHistProtonAccEtaEET_","MC E_{T}, primary Protons, inside EMCal acceptance","E_{T}(GeV)");
3563     fHistProtonRecEtaEET = CreateEtaEHisto2D("fHistProtonRecEtaEET_","MC E_{T}, primary Protons, reconstructed","E_{T}(GeV)");
3564     fHistProtonMatchEtaEET = CreateEtaEHisto2D("fHistProtonMatchEtaEET_","MC E_{T}, primary Protons, tracking matched","E_{T}(GeV)");
3565         
3566     fHistProtonEtaPtET = CreateEtaPtHisto2D("fHistProtonEtaPtET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3567     fHistProtonAccEtaPtET = CreateEtaPtHisto2D("fHistProtonAccEtaPtET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3568     fHistProtonRecEtaPtET = CreateEtaPtHisto2D("fHistProtonRecEtaPtET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3569     fHistProtonMatchEtaPtET = CreateEtaPtHisto2D("fHistProtonMatchEtaPtET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3570         
3571     fHistProtonEtaET = CreateEtaEtHisto2D("fHistProtonEtaET_","MC primary Protons","#");
3572     fHistProtonAccEtaET = CreateEtaEtHisto2D("fHistProtonAccEtaET_","MC primary Protons","#");
3573     fHistProtonRecEtaET = CreateEtaEtHisto2D("fHistProtonRecEtaET_","MC primary Protons","#");
3574     fHistProtonMatchEtaET = CreateEtaEtHisto2D("fHistProtonMatchEtaET_","MC primary Protons","#");
3575         
3576     fHistProtonEtaE = CreateEtaEHisto2D("fHistProtonEtaE_","MC primary Protons","#");
3577     fHistProtonAccEtaE = CreateEtaEHisto2D("fHistProtonAccEtaE_","MC primary Protons","#");
3578     fHistProtonRecEtaE = CreateEtaEHisto2D("fHistProtonRecEtaE_","MC primary Protons","#");
3579     fHistProtonMatchEtaE = CreateEtaEHisto2D("fHistProtonMatchEtaE_","MC primary Protons","#");
3580         
3581     fHistProtonEtaPt = CreateEtaPtHisto2D("fHistProtonEtaPt_","MC primary Protons","#");
3582     fHistProtonAccEtaPt = CreateEtaPtHisto2D("fHistProtonAccEtaPt_","MC primary Protons","#");
3583     fHistProtonRecEtaPt = CreateEtaPtHisto2D("fHistProtonRecEtaPt_","MC primary Protons","#");
3584     fHistProtonMatchEtaPt = CreateEtaPtHisto2D("fHistProtonMatchEtaPt_","MC primary Protons","#");
3585         
3586     histname = "fHistProtontotET_" + fHistogramNameSuffix;
3587     fHistProtontotET = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3588     histname = "fHistProtonAcctotET_" + fHistogramNameSuffix;
3589     fHistProtonAcctotET = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3590     histname = "fHistProtonRectotET_" + fHistogramNameSuffix;
3591     fHistProtonRectotET = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3592     histname = "fHistProtonMatchtotET_" + fHistogramNameSuffix;
3593     fHistProtonMatchtotET = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3594         
3595     histname = "fHistProtonRectotETDep_" + fHistogramNameSuffix;
3596     fHistProtonRectotETDep = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3597     histname = "fHistProtonMatchtotETDep_" + fHistogramNameSuffix;
3598     fHistProtonMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary Protons",fgNumOfEBins, fgEAxis);
3599         
3600     fHistProtonRecEtaEDepETDep = CreateEtaEHisto2D("fHistProtonRecEtaEDepETDep_","MC E_{T}, primary Protons, reconstructed","E_{T} dep (GeV)");
3601     fHistProtonMatchEtaEDepETDep = CreateEtaEHisto2D("fHistProtonMatchEtaEDepETDep_","MC E_{T}, primary Protons, tracking matched","E_{T} dep (GeV)");
3602         
3603     fHistProtonRecEtaPtETDep = CreateEtaPtHisto2D("fHistProtonRecEtaPtETDep_","MC E_{T}, primary Protons","E_{T} dep (GeV)");
3604     fHistProtonMatchEtaPtETDep = CreateEtaPtHisto2D("fHistProtonMatchEtaPtETDep_","MC E_{T}, primary Protons","E_{T} dep(GeV)");
3605         
3606     fHistProtonRecEtaETDep = CreateEtaEtHisto2D("fHistProtonRecEtaETDep_","MC primary Protons","#");
3607     fHistProtonMatchEtaETDep = CreateEtaEtHisto2D("fHistProtonMatchEtaETDep_","MC primary Protons","#");
3608         
3609     fHistProtonRecResEET = CreateResEHisto2D("fHistProtonRecResEET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3610     fHistProtonRecResPtET = CreateResPtHisto2D("fHistProtonRecResPtET_","MC E_{T}, primary Protons","E_{T}(GeV)");
3611     fHistProtonRecResE = CreateResEHisto2D("fHistProtonRecResE_","MC primary Protons","#");
3612     fHistProtonRecResPt  = CreateResPtHisto2D("fHistProtonRecResPt_","MC primary Protons","#");
3613     fHistProtonRecResEDepETDep = CreateResEHisto2D("fHistProtonRecResEDepETDep_","MC E_{T}, primary Protons","E_{T} dep (GeV)");
3614     fHistProtonRecResPtETDep = CreateResPtHisto2D("fHistProtonRecResPtETDep_","MC E_{T}, primary Protons","E_{T} dep (GeV)");
3615         
3616     histname = "fHistTotChargedtotET_" + fHistogramNameSuffix;
3617     fHistTotChargedtotET = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3618     histname = "fHistTotChargedAcctotET_" + fHistogramNameSuffix;
3619     fHistTotChargedAcctotET = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3620     histname = "fHistTotChargedRectotET_" + fHistogramNameSuffix;
3621     fHistTotChargedRectotET = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3622     histname = "fHistTotChargedMatchtotET_" + fHistogramNameSuffix;
3623     fHistTotChargedMatchtotET = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3624         
3625     histname = "fHistTotChargedRectotETDep_" + fHistogramNameSuffix;
3626     fHistTotChargedRectotETDep = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3627     histname = "fHistTotChargedMatchtotETDep_" + fHistogramNameSuffix;
3628     fHistTotChargedMatchtotETDep = new TH1F(histname.Data(),"total ET, MC primary charged particles",fgNumOfEBins, fgEAxis);
3629         
3630     fHistNeutronEtaEET = CreateEtaEHisto2D("fHistNeutronEtaEET_","MC E_{T}, primary Neutrons","E_{T}(GeV)");
3631     fHistNeutronAccEtaEET = CreateEtaEHisto2D("fHistNeutronAccEtaEET_","MC E_{T}, primary Neutrons, inside EMCal acceptance","E_{T}(GeV)");
3632     fHistNeutronRecEtaEET = CreateEtaEHisto2D("fHistNeutronRecEtaEET_","MC E_{T}, primary Neutrons, reconstructed","E_{T}(GeV)");
3633         
3634     fHistNeutronEtaPtET = CreateEtaPtHisto2D("fHistNeutronEtaPtET_","MC E_{T}, primary Neutrons","E_{T}(GeV)");
3635     fHistNeutronAccEtaPtET = CreateEtaPtHisto2D("fHistNeutronAccEtaPtET_","MC E_{T}, primary Neutrons","E_{T}(GeV)");
3636     fHistNeutronRecEtaPtET = CreateEtaPtHisto2D("fHistNeutronRecEtaPtET_","MC E_{T}, primary Neutrons","E_{T}(GeV)");
3637         
3638     fHistNeutronEtaET = CreateEtaEtHisto2D("fHistNeutronEtaET_","MC primary Neutrons","#");
3639     fHistNeutronAccEtaET = CreateEtaEtHisto2D("fHistNeutronAccEtaET_","MC primary Neutrons","#");
3640     fHistNeutronRecEtaET = CreateEtaEtHisto2D("fHistNeutronRecEtaET_","MC primary Neutrons","#");
3641         
3642     fHistNeutronEtaE = CreateEtaEHisto2D("fHistNeutronEtaE_","MC primary Neutrons","#");
3643     fHistNeutronAccEtaE = CreateEtaEHisto2D("fHistNeutronAccEtaE_","MC primary Neutrons","#");
3644     fHistNeutronRecEtaE = CreateEtaEHisto2D("fHistNeutronRecEtaE_","MC primary Neutrons","#");
3645         
3646     fHistNeutronEtaPt = CreateEtaPtHisto2D("fHistNeutronEtaPt_","MC primary Neutrons","#");
3647     fHistNeutronAccEtaPt = CreateEtaPtHisto2D("fHistNeutronAccEtaPt_","MC primary Neutrons","#");
3648     fHistNeutronRecEtaPt = CreateEtaPtHisto2D("fHistNeutronRecEtaPt_","MC primary Neutrons","#");
3649         
3650     histname = "fHistNeutrontotET_" + fHistogramNameSuffix;
3651     fHistNeutrontotET = new TH1F(histname.Data(),"total ET, MC primary Neutrons",fgNumOfEBins, fgEAxis);
3652     histname = "fHistNeutronAcctotET_" + fHistogramNameSuffix;
3653     fHistNeutronAcctotET = new TH1F(histname.Data(),"total ET, MC primary Neutrons",fgNumOfEBins, fgEAxis);
3654     histname = "fHistNeutronRectotET_" + fHistogramNameSuffix;
3655     fHistNeutronRectotET = new TH1F(histname.Data(),"total ET, MC primary Neutrons",fgNumOfEBins, fgEAxis);
3656     histname = "fHistNeutronRectotETDep_" + fHistogramNameSuffix;
3657     fHistNeutronRectotETDep = new TH1F(histname.Data(),"total ET, MC primary Neutrons",fgNumOfEBins, fgEAxis);  
3658         
3659     fHistNeutronRecEtaEDepETDep = CreateEtaEHisto2D("fHistNeutronRecEtaEDepETDep_","MC E_{T}, primary Neutrons, reconstructed","E_{T} dep (GeV)");
3660     fHistNeutronRecEtaETDep = CreateEtaEtHisto2D("fHistNeutronRecEtaETDep_","MC primary Neutrons","#");
3661         
3662     fHistNeutronRecEtaPtETDep = CreateEtaPtHisto2D("fHistNeutronRecEtaPtETDep_","MC E_{T}, primary Neutrons","E_{T} dep (GeV)");
3663         
3664     fHistK0EtaEET = CreateEtaEHisto2D("fHistK0EtaEET_","MC E_{T}, K0S daughters","E_{T}(GeV)");
3665     fHistK0RecEtaEET = CreateEtaEHisto2D("fHistK0RecEtaEET_","MC E_{T}, K0S daughters, reconstructed","E_{T}(GeV)");
3666         
3667     fHistK0EtaPtET = CreateEtaPtHisto2D("fHistK0EtaPtET_","MC E_{T}, K0S daughters","E_{T}(GeV)");
3668     fHistK0RecEtaPtET = CreateEtaPtHisto2D("fHistK0RecEtaPtET_","MC E_{T}, K0S daughters","E_{T}(GeV)");
3669         
3670     fHistK0EtaET = CreateEtaEtHisto2D("fHistK0EtaET_","MC K0S daughters","#");
3671     fHistK0RecEtaET = CreateEtaEtHisto2D("fHistK0RecEtaET_","MC K0S daughters","#");
3672         
3673     fHistK0EtaE = CreateEtaEHisto2D("fHistK0EtaE_","MC K0S daughters","#");
3674     fHistK0RecEtaE = CreateEtaEHisto2D("fHistK0RecEtaE_","MC K0S daughters","#");
3675         
3676     fHistK0EtaPt = CreateEtaPtHisto2D("fHistK0EtaPt_","MC K0S daughters","#");
3677     fHistK0RecEtaPt = CreateEtaPtHisto2D("fHistK0RecEtaPt_","MC K0S daughters","#");
3678         
3679     histname = "fHistK0totET_" + fHistogramNameSuffix;
3680     fHistK0totET = new TH1F(histname.Data(),"total ET, MC K0s daughters",fgNumOfEBins, fgEAxis);
3681     histname = "fHistK0RectotET_" + fHistogramNameSuffix;
3682     fHistK0RectotET = new TH1F(histname.Data(),"total ET, MC K0s daughters",fgNumOfEBins, fgEAxis);     
3683     histname = "fHistK0RectotETDep_" + fHistogramNameSuffix;
3684     fHistK0RectotETDep = new TH1F(histname.Data(),"total ET, MC K0s daughters",fgNumOfEBins, fgEAxis);  
3685         
3686     fHistK0RecEtaEDepETDep = CreateEtaEHisto2D("fHistK0RecEtaEDepETDep_","MC E_{T}, MC K0s daughters, reconstructed","E_{T} dep (GeV)");
3687     fHistK0RecEtaETDep = CreateEtaEtHisto2D("fHistK0RecEtaETDep_","MC K0s daughters","#");
3688         
3689     fHistK0RecEtaPtETDep = CreateEtaPtHisto2D("fHistK0RecEtaPtETDep_","MC E_{T}, MC K0s daughters","E_{T} dep (GeV)");
3690         
3691     fHistLambdaEtaEET = CreateEtaEHisto2D("fHistLambdaEtaEET_","MC E_{T}, Lambda daughters","E_{T}(GeV)");
3692     fHistLambdaRecEtaEET = CreateEtaEHisto2D("fHistLambdaRecEtaEET_","MC E_{T}, Lambda daughters, reconstructed","E_{T}(GeV)");
3693         
3694     fHistLambdaEtaPtET = CreateEtaPtHisto2D("fHistLambdaEtaPtET_","MC E_{T}, Lambda daughters","E_{T}(GeV)");
3695     fHistLambdaRecEtaPtET = CreateEtaPtHisto2D("fHistLambdaRecEtaPtET_","MC E_{T}, Lambda daughters","E_{T}(GeV)");
3696         
3697     fHistLambdaEtaET = CreateEtaEtHisto2D("fHistLambdaEtaET_","MC Lambda daughters","#");
3698     fHistLambdaRecEtaET = CreateEtaEtHisto2D("fHistLambdaRecEtaET_","MC Lambda daughters","#");
3699         
3700     fHistLambdaEtaE = CreateEtaEHisto2D("fHistLambdaEtaE_","MC Lambda daughters","#");
3701     fHistLambdaRecEtaE = CreateEtaEHisto2D("fHistLambdaRecEtaE_","MC Lambda daughters","#");
3702         
3703     fHistLambdaEtaPt = CreateEtaPtHisto2D("fHistLambdaEtaPt_","MC Lambda daughters","#");
3704     fHistLambdaRecEtaPt = CreateEtaPtHisto2D("fHistLambdaRecEtaPt_","MC Lambda daughters","#");
3705     
3706     histname = "fHistLambdatotET_" + fHistogramNameSuffix;
3707     fHistLambdatotET = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);
3708     histname = "fHistLambdaRectotET_" + fHistogramNameSuffix;
3709     fHistLambdaRectotET = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);
3710     histname = "fHistLambdaRectotETDep_" + fHistogramNameSuffix;
3711     fHistLambdaRectotETDep = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);  
3712         
3713     fHistLambdaRecEtaEDepETDep = CreateEtaEHisto2D("fHistLambdaRecEtaEDepETDep_","MC E_{T}, MC Lambdas daughters, reconstructed","E_{T} dep (GeV)");
3714     fHistLambdaRecEtaETDep = CreateEtaEtHisto2D("fHistLambdaRecEtaETDep_","MC Lambdas daughters","#");
3715         
3716     fHistLambdaRecEtaPtETDep = CreateEtaPtHisto2D("fHistLambdaRecEtaPtETDep_","MC E_{T}, MC Lambdas daughters","E_{T} dep (GeV)");
3717     
3718     histname = "fHistTotNeutraltotET_" + fHistogramNameSuffix;
3719     fHistTotNeutraltotET = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);
3720     histname = "fHistTotNeutralRectotET_" + fHistogramNameSuffix;
3721     fHistTotNeutralRectotET = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);
3722     histname = "fHistTotNeutralRectotETDep_" + fHistogramNameSuffix;
3723     fHistTotNeutralRectotETDep = new TH1F(histname.Data(),"total ET, MC Lambdas daughters",fgNumOfEBins, fgEAxis);      
3724         
3725     histname = "fHistTotaltotET_" + fHistogramNameSuffix;
3726     fHistTotaltotET = new TH1F(histname.Data(),"total ET, all particles",fgNumOfEBins, fgEAxis);
3727     histname = "fHistTotalAcctotET_" + fHistogramNameSuffix;
3728     fHistTotalAcctotET = new TH1F(histname.Data(),"total ET, all particles",fgNumOfEBins, fgEAxis);
3729     histname = "fHistTotalRectotET_" + fHistogramNameSuffix;
3730     fHistTotalRectotET = new TH1F(histname.Data(),"total ET, all particles",fgNumOfEBins, fgEAxis);
3731     histname = "fHistTotalRectotETDep_" + fHistogramNameSuffix;
3732     fHistTotalRectotETDep = new TH1F(histname.Data(),"total ET, all particles",fgNumOfEBins, fgEAxis);  
3733         
3734     histname = "fHistAll_ERecvsMC_" + fHistogramNameSuffix;
3735     fHistAllERecEMC = new TH2F(histname.Data(),"E cluster Rec vs MC, all particles",fgNumOfEBins, fgEAxis,fgNumOfEBins, fgEAxis);
3736     fHistAllERecEMC->SetXTitle("E_{MC}(GeV)");
3737     fHistAllERecEMC->SetYTitle("E_{Rec}(GeV)");
3738         
3739     histname = "fHistElectron_ERecvsMC_" + fHistogramNameSuffix;
3740     fHistElectronERecEMC = new TH2F(histname.Data(),"E cluster Rec vs MC, Electrons",fgNumOfEBins, fgEAxis,fgNumOfEBins, fgEAxis);
3741     fHistElectronERecEMC->SetXTitle("E_{MC}(GeV)");
3742     fHistElectronERecEMC->SetYTitle("E_{Rec}(GeV)");
3743         
3744     histname = "fHistGamma_ERecvsMC_" + fHistogramNameSuffix;
3745     fHistGammaERecEMC = new TH2F(histname.Data(),"E cluster Rec vs MC, Gammas",fgNumOfEBins, fgEAxis,fgNumOfEBins, fgEAxis);
3746     fHistGammaERecEMC->SetXTitle("E_{MC}(GeV)");
3747     fHistGammaERecEMC->SetYTitle("E_{Rec}(GeV)");
3748         
3749     histname = "fHistAllPtRecPtMC_" + fHistogramNameSuffix;
3750     fHistAllPtRecPtMC = new TH2F(histname.Data(),"pt track Rec vs MC, all particles",fgNumOfEBins, fgEAxis,fgNumOfEBins, fgEAxis);
3751     fHistAllPtRecPtMC->SetXTitle("p_{T}^{MC}(GeV/c)");
3752     fHistAllPtRecPtMC->SetYTitle("p_{T}^{Rec}(GeV/c)"); 
3753         
3754     histname = "fHistChargedRes_" + fHistogramNameSuffix;
3755     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);
3756     fHistChargedRes->SetXTitle("#Delta#phi");
3757     fHistChargedRes->SetYTitle("#Delta#eta");
3758         
3759     histname = "fHistChargedRes2_" + fHistogramNameSuffix;
3760     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);
3761     fHistChargedRes2->SetXTitle("#Delta#phi");
3762     fHistChargedRes2->SetYTitle("#Delta#eta");
3763         
3764     histname = "fHistChargedRes3_" + fHistogramNameSuffix;
3765     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);
3766     fHistChargedRes3->SetXTitle("#Delta#phi");
3767     fHistChargedRes3->SetYTitle("#Delta#eta");
3768         
3769     histname = "fHistNeutralRes_" + fHistogramNameSuffix;
3770     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);
3771     fHistNeutralRes->SetXTitle("#Delta#phi");
3772     fHistNeutralRes->SetYTitle("#Delta#eta");
3773         
3774     histname = "fHistElectronRes_" + fHistogramNameSuffix;
3775     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);
3776     fHistElectronRes->SetXTitle("#Delta#phi");
3777     fHistElectronRes->SetYTitle("#Delta#eta");
3778         
3779     histname = "fHistGammaRes_" + fHistogramNameSuffix;
3780     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);
3781     fHistGammaRes->SetXTitle("#Delta#phi");
3782     fHistGammaRes->SetYTitle("#Delta#eta");
3783         
3784     histname = "fHistIsInAcc_" + fHistogramNameSuffix;
3785     //fHistIsInAcc = new TH2F(histname.Data(),"X,Y position of particle projection inside EMCal",1201,-600.5,600.5,1201,-600.5,600.5);
3786     //fHistIsInAcc->SetXTitle("X (cm)");
3787     //fHistIsInAcc->SetYTitle("Y (cm)");
3788     fHistIsInAcc = new TH2F(histname.Data(),"#phhi, #eta position of particle projection inside EMCal",360,0.,360.,200,-1.,1.);
3789     fHistIsInAcc->SetXTitle("#phi");
3790     fHistIsInAcc->SetYTitle("#eta");
3791         
3792     histname = "fHistElectronFirstMother_" + fHistogramNameSuffix;
3793     fHistElectronFirstMother = new TH1F(histname.Data(),"Electron First Mother PDG Code",1201,-600.5,600.5);
3794     histname = "fHistElectronFirstMotherXY_" + fHistogramNameSuffix;
3795     fHistElectronFirstMotherXY = new TH2F(histname.Data(),"Electron Mother X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3796     histname = "fHistElectronNDaughters_" + fHistogramNameSuffix;
3797     fHistElectronNDaughters = new TH1F(histname.Data(),"Number of Electron Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3798     histname = "fHistElectronDaughters_" + fHistogramNameSuffix;
3799     fHistElectronDaughters = new TH1F(histname.Data(),"Electron Daugther PDG Code",1201,-600.5,600.5);
3800     histname = "fHistElectronDaughtersXY_" + fHistogramNameSuffix;
3801     fHistElectronDaughtersXY = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3802         
3803     histname = "fHistElectronFirstMotherAcc_" + fHistogramNameSuffix;
3804     fHistElectronFirstMotherAcc = new TH1F(histname.Data(),"Electron First Mother PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3805     histname = "fHistElectronFirstMotherXYAcc_" + fHistogramNameSuffix;
3806     fHistElectronFirstMotherXYAcc = new TH2F(histname.Data(),"Electron Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3807     histname = "fHistElectronNDaughtersAcc_" + fHistogramNameSuffix;
3808     fHistElectronNDaughtersAcc = new TH1F(histname.Data(),"Number of Electron Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3809     histname = "fHistElectronDaughtersAcc_" + fHistogramNameSuffix;
3810     fHistElectronDaughtersAcc = new TH1F(histname.Data(),"Electron Daugther PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3811     histname = "fHistElectronDaughtersXYAcc_" + fHistogramNameSuffix;
3812     fHistElectronDaughtersXYAcc = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3813         
3814     histname = "fHistElectronFirstMotherRec_" + fHistogramNameSuffix;
3815     fHistElectronFirstMotherRec = new TH1F(histname.Data(),"Reconstructed Electron First Mother PDG Code",1201,-600.5,600.5);
3816     histname = "fHistElectronFirstMotherXYRec_" + fHistogramNameSuffix;
3817     fHistElectronFirstMotherXYRec = 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 = "fHistElectronNDaughtersRec_" + fHistogramNameSuffix;
3819     fHistElectronNDaughtersRec = new TH1F(histname.Data(),"Number of Electron Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3820     histname = "fHistElectronDaughtersRec_" + fHistogramNameSuffix;
3821     fHistElectronDaughtersRec = new TH1F(histname.Data(),"Electron Daugther PDG Code",1201,-600.5,600.5);
3822     histname = "fHistElectronDaughtersXYRec_" + fHistogramNameSuffix;
3823     fHistElectronDaughtersXYRec = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3824     
3825     histname = "fHistNPPElectronFirstMother_" + fHistogramNameSuffix;
3826     fHistNPPElectronFirstMother = new TH1F(histname.Data(),"Electron First Mother PDG Code",1201,-600.5,600.5);
3827     histname = "fHistNPPElectronFirstMotherXY_" + fHistogramNameSuffix;
3828     fHistNPPElectronFirstMotherXY = new TH2F(histname.Data(),"Electron Mother X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3829     histname = "fHistNPPElectronNDaughters_" + fHistogramNameSuffix;
3830     fHistNPPElectronNDaughters = new TH1F(histname.Data(),"Number of Electron Daugthers",11,-0.5,10.5);
3831     histname = "fHistNPPElectronDaughters_" + fHistogramNameSuffix;
3832     fHistNPPElectronDaughters = new TH1F(histname.Data(),"Electron Daugther PDG Code",1201,-600.5,600.5);
3833     histname = "fHistNPPElectronDaughtersXY_" + fHistogramNameSuffix;
3834     fHistNPPElectronDaughtersXY = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3835         
3836     histname = "fHistNPPElectronFirstMotherAcc_" + fHistogramNameSuffix;
3837     fHistNPPElectronFirstMotherAcc = new TH1F(histname.Data(),"Electron First Mother PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3838     histname = "fHistNPPElectronFirstMotherXYAcc_" + fHistogramNameSuffix;
3839     fHistNPPElectronFirstMotherXYAcc = new TH2F(histname.Data(),"Electron Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3840     histname = "fHistNPPElectronNDaughtersAcc_" + fHistogramNameSuffix;
3841     fHistNPPElectronNDaughtersAcc = new TH1F(histname.Data(),"Number of Electron Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3842     histname = "fHistNPPElectronDaughtersAcc_" + fHistogramNameSuffix;
3843     fHistNPPElectronDaughtersAcc = new TH1F(histname.Data(),"Electron Daugther PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3844     histname = "fHistNPPElectronDaughtersXYAcc_" + fHistogramNameSuffix;
3845     fHistNPPElectronDaughtersXYAcc = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3846         
3847     histname = "fHistNPPElectronFirstMotherRec_" + fHistogramNameSuffix;
3848     fHistNPPElectronFirstMotherRec = new TH1F(histname.Data(),"Reconstructed Electron First Mother PDG Code",1201,-600.5,600.5);
3849     histname = "fHistNPPElectronFirstMotherXYRec_" + fHistogramNameSuffix;
3850     fHistNPPElectronFirstMotherXYRec = 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 = "fHistNPPElectronNDaughtersRec_" + fHistogramNameSuffix;
3852     fHistNPPElectronNDaughtersRec = new TH1F(histname.Data(),"Number of Electron Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3853     histname = "fHistNPPElectronDaughtersRec_" + fHistogramNameSuffix;
3854     fHistNPPElectronDaughtersRec = new TH1F(histname.Data(),"Electron Daugther PDG Code",1201,-600.5,600.5);
3855     histname = "fHistNPPElectronDaughtersXYRec_" + fHistogramNameSuffix;
3856     fHistNPPElectronDaughtersXYRec = new TH2F(histname.Data(),"Electron Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3857         
3858     histname = "fHistGammaFirstMother_" + fHistogramNameSuffix;
3859     fHistGammaFirstMother = new TH1F(histname.Data(),"Gamma First Mother PDG Code",1201,-600.5,600.5);
3860     histname = "fHistGammaFirstMotherXY_" + fHistogramNameSuffix;
3861     fHistGammaFirstMotherXY = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3862     histname = "fHistGammaNDaughters_" + fHistogramNameSuffix;
3863     fHistGammaNDaughters = new TH1F(histname.Data(),"Number of Gamma Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3864     histname = "fHistGammaDaughters_" + fHistogramNameSuffix;
3865     fHistGammaDaughters = new TH1F(histname.Data(),"Gamma Daugther PDG Code",1201,-600.5,600.5);
3866     histname = "fHistGammaDaughtersXY_" + fHistogramNameSuffix;
3867     fHistGammaDaughtersXY = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3868     histname = "fHistConvGammaDaughtersXY_" + fHistogramNameSuffix;
3869     fHistConvGammaDaughtersXY = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3870     histname = "fHistNonConvGammaDaughtersXY_" + fHistogramNameSuffix;
3871     fHistNonConvGammaDaughtersXY = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3872         
3873     histname = "fHistGammaFirstMotherAcc_" + fHistogramNameSuffix;
3874     fHistGammaFirstMotherAcc = new TH1F(histname.Data(),"Gamma First Mother PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3875     histname = "fHistGammaFirstMotherXYAcc_" + fHistogramNameSuffix;
3876     fHistGammaFirstMotherXYAcc = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3877     histname = "fHistGammaNDaughtersAcc_" + fHistogramNameSuffix;
3878     fHistGammaNDaughtersAcc = new TH1F(histname.Data(),"Number of Gamma Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3879     histname = "fHistGammaDaughtersAcc_" + fHistogramNameSuffix;
3880     fHistGammaDaughtersAcc = new TH1F(histname.Data(),"Gamma Daugther PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3881     histname = "fHistGammaDaughtersXYAcc_" + fHistogramNameSuffix;
3882     fHistGammaDaughtersXYAcc = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3883     histname = "fHistConvGammaDaughtersXYAcc_" + fHistogramNameSuffix;
3884     fHistConvGammaDaughtersXYAcc = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3885     histname = "fHistNonConvGammaDaughtersXYAcc_" + fHistogramNameSuffix;
3886     fHistNonConvGammaDaughtersXYAcc = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3887         
3888     histname = "fHistGammaFirstMotherRec_" + fHistogramNameSuffix;
3889     fHistGammaFirstMotherRec = new TH1F(histname.Data(),"Reconstructed Gamma First Mother PDG Code",1201,-600.5,600.5);
3890     histname = "fHistGammaFirstMotherXYRec_" + fHistogramNameSuffix;
3891     fHistGammaFirstMotherXYRec = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3892     histname = "fHistGammaNDaughtersRec_" + fHistogramNameSuffix;
3893     fHistGammaNDaughtersRec = new TH1F(histname.Data(),"Number of Gamma Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3894     histname = "fHistGammaDaughtersRec_" + fHistogramNameSuffix;
3895     fHistGammaDaughtersRec = new TH1F(histname.Data(),"Gamma Daugther PDG Code",1201,-600.5,600.5);
3896     histname = "fHistGammaDaughtersXYRec_" + fHistogramNameSuffix;
3897     fHistGammaDaughtersXYRec = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3898     histname = "fHistConvGammaDaughtersXYRec_" + fHistogramNameSuffix;
3899     fHistConvGammaDaughtersXYRec = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3900     histname = "fHistNonConvGammaDaughtersXYRec_" + fHistogramNameSuffix;
3901     fHistNonConvGammaDaughtersXYRec = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3902         
3903     histname = "fHistNPPGammaFirstMother_" + fHistogramNameSuffix;
3904     fHistNPPGammaFirstMother = new TH1F(histname.Data(),"Gamma First Mother PDG Code",1201,-600.5,600.5);
3905     histname = "fHistNPPGammaFirstMotherXY_" + fHistogramNameSuffix;
3906     fHistNPPGammaFirstMotherXY = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3907     histname = "fHistNPPGammaNDaughters_" + fHistogramNameSuffix;
3908     fHistNPPGammaNDaughters = new TH1F(histname.Data(),"Number of Gamma Daugthers",11,-0.5,10.5);
3909     histname = "fHistNPPGammaDaughters_" + fHistogramNameSuffix;
3910     fHistNPPGammaDaughters = new TH1F(histname.Data(),"Gamma Daugther PDG Code",1201,-600.5,600.5);
3911     histname = "fHistNPPGammaDaughtersXY_" + fHistogramNameSuffix;
3912     fHistNPPGammaDaughtersXY = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3913         
3914     histname = "fHistNPPGammaFirstMotherAcc_" + fHistogramNameSuffix;
3915     fHistNPPGammaFirstMotherAcc = new TH1F(histname.Data(),"Gamma First Mother PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3916     histname = "fHistNPPGammaFirstMotherXYAcc_" + fHistogramNameSuffix;
3917     fHistNPPGammaFirstMotherXYAcc = new TH2F(histname.Data(),"Gamma Mother X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3918     histname = "fHistNPPGammaNDaughtersAcc_" + fHistogramNameSuffix;
3919     fHistNPPGammaNDaughtersAcc = new TH1F(histname.Data(),"Number of Gamma Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3920     histname = "fHistNPPGammaDaughtersAcc_" + fHistogramNameSuffix;
3921     fHistNPPGammaDaughtersAcc = new TH1F(histname.Data(),"Gamma Daugther PDG Code, inside EMCal acceptance",1201,-600.5,600.5);
3922     histname = "fHistNPPGammaDaughtersXYAcc_" + fHistogramNameSuffix;
3923     fHistNPPGammaDaughtersXYAcc = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position, inside EMCal acceptance",1201,-600.5,600.5,1201,-600.5,600.5);
3924         
3925     histname = "fHistNPPGammaFirstMotherRec_" + fHistogramNameSuffix;
3926     fHistNPPGammaFirstMotherRec = new TH1F(histname.Data(),"Reconstructed Gamma First Mother PDG Code",1201,-600.5,600.5);
3927     histname = "fHistNPPGammaFirstMotherXYRec_" + fHistogramNameSuffix;
3928     fHistNPPGammaFirstMotherXYRec = 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 = "fHistNPPGammaNDaughtersRec_" + fHistogramNameSuffix;
3930     fHistNPPGammaNDaughtersRec = new TH1F(histname.Data(),"Number of Gamma Daugthers, inside EMCal acceptance",11,-0.5,10.5);
3931     histname = "fHistNPPGammaDaughtersRec_" + fHistogramNameSuffix;
3932     fHistNPPGammaDaughtersRec = new TH1F(histname.Data(),"Gamma Daugther PDG Code",1201,-600.5,600.5);
3933     histname = "fHistNPPGammaDaughtersXYRec_" + fHistogramNameSuffix;
3934     fHistNPPGammaDaughtersXYRec = new TH2F(histname.Data(),"Gamma Daugther X,Y vertex position",1201,-600.5,600.5,1201,-600.5,600.5);
3935 }
3936
3937 void AliAnalysisEmEtMonteCarlo::FillOutputList(TList *list)
3938 {//fill the output tlist
3939     //AliAnalysisEt::FillOutputList(list);
3940     
3941     list->Add(fHistPrimEtaEET); 
3942     list->Add(fHistPrimEtaPtET); 
3943     list->Add(fHistPrimEtaET); 
3944     list->Add(fHistPrimtotET); 
3945         
3946     list->Add(fHistPrimAccEtaEET); 
3947     list->Add(fHistPrimAccEtaPtET); 
3948     list->Add(fHistPrimAccEtaET); 
3949     list->Add(fHistPrimAcctotET); 
3950     
3951     list->Add(fHistPrimRecEtaEET); 
3952     list->Add(fHistPrimRecEtaPtET); 
3953     list->Add(fHistPrimRecEtaET); 
3954     list->Add(fHistPrimRectotET); 
3955     
3956     list->Add(fHistPrimRecEtaEDepETDep); 
3957     list->Add(fHistPrimRecEtaPtETDep); 
3958     list->Add(fHistPrimRecEtaETDep); 
3959     list->Add(fHistPrimRectotETDep); 
3960         
3961     list->Add(fHistElectronEtaEET); 
3962     list->Add(fHistElectronEtaPtET); 
3963     list->Add(fHistElectronEtaET); 
3964     list->Add(fHistElectronEtaE); 
3965     list->Add(fHistElectronEtaPt); 
3966     list->Add(fHistElectrontotET); 
3967         
3968     list->Add(fHistConvElectronEtaEET);  
3969     list->Add(fHistConvElectronEtaPtET);  
3970     list->Add(fHistConvElectronEtaET);  
3971     list->Add(fHistConvElectronEtaE);  
3972     list->Add(fHistConvElectronEtaPt);  
3973     list->Add(fHistConvElectrontotET);  
3974         
3975     list->Add(fHistScatElectronEtaEET);  
3976     list->Add(fHistScatElectronEtaPtET);  
3977     list->Add(fHistScatElectronEtaET);  
3978     list->Add(fHistScatElectronEtaE);  
3979     list->Add(fHistScatElectronEtaPt);  
3980     list->Add(fHistScatElectrontotET);  
3981         
3982     list->Add(fHistTotElectrontotET); 
3983     
3984     list->Add(fHistGammaEtaEET);  
3985     list->Add(fHistGammaEtaPtET);  
3986     list->Add(fHistGammaEtaET);  
3987     list->Add(fHistGammaEtaE);  
3988     list->Add(fHistGammaEtaPt);  
3989     list->Add(fHistGammatotET);  
3990         
3991     list->Add(fHistAnnihGammaEtaEET);  
3992     list->Add(fHistAnnihGammaEtaPtET);  
3993     list->Add(fHistAnnihGammaEtaET);  
3994     list->Add(fHistAnnihGammaEtaE);  
3995     list->Add(fHistAnnihGammaEtaPt);  
3996     list->Add(fHistAnnihGammatotET);  
3997         
3998     list->Add(fHistScatGammaEtaEET);  
3999     list->Add(fHistScatGammaEtaPtET);  
4000     list->Add(fHistScatGammaEtaET);  
4001     list->Add(fHistScatGammaEtaE);  
4002     list->Add(fHistScatGammaEtaPt);  
4003     list->Add(fHistScatGammatotET);  
4004     
4005     list->Add(fHistConvGammaEtaEET);  
4006     list->Add(fHistConvGammaEtaPtET);  
4007     list->Add(fHistConvGammaEtaET);  
4008     list->Add(fHistConvGammaEtaE);  
4009     list->Add(fHistConvGammaEtaPt);  
4010     list->Add(fHistConvGammatotET);  
4011         
4012     list->Add(fHistNonConvGammaEtaEET);  
4013     list->Add(fHistNonConvGammaEtaPtET);  
4014     list->Add(fHistNonConvGammaEtaET);  
4015     list->Add(fHistNonConvGammaEtaE);  
4016     list->Add(fHistNonConvGammaEtaPt);  
4017     list->Add(fHistNonConvGammatotET);  
4018     
4019     list->Add(fHistTotGammatotET);  
4020     
4021     list->Add(fHistTotEMtotET); 
4022     
4023     list->Add(fHistNPPElectronEtaEET); 
4024     list->Add(fHistNPPElectronEtaPtET); 
4025     list->Add(fHistNPPElectronEtaET); 
4026     list->Add(fHistNPPElectronEtaE); 
4027     list->Add(fHistNPPElectronEtaPt); 
4028     list->Add(fHistNPPElectrontotET); 
4029         
4030     list->Add(fHistNPPGammaEtaEET); 
4031     list->Add(fHistNPPGammaEtaPtET); 
4032     list->Add(fHistNPPGammaEtaET); 
4033     list->Add(fHistNPPGammaEtaE); 
4034     list->Add(fHistNPPGammaEtaPt); 
4035     list->Add(fHistNPPGammatotET); 
4036     
4037     list->Add(fHistTotNPPEMtotET); 
4038     
4039     list->Add(fHistNPPPi0GammaEtaEET); 
4040     list->Add(fHistNPPPi0GammaEtaPtET); 
4041     list->Add(fHistNPPPi0GammaEtaET); 
4042     list->Add(fHistNPPPi0GammaEtaE); 
4043     list->Add(fHistNPPPi0GammaEtaPt); 
4044     list->Add(fHistNPPPi0GammatotET); 
4045         
4046     list->Add(fHistElectronAccEtaEET); 
4047     list->Add(fHistElectronAccEtaPtET); 
4048     list->Add(fHistElectronAccEtaET); 
4049     list->Add(fHistElectronAccEtaE); 
4050     list->Add(fHistElectronAccEtaPt); 
4051     list->Add(fHistElectronAcctotET); 
4052         
4053     list->Add(fHistConvElectronAccEtaEET);  
4054     list->Add(fHistConvElectronAccEtaPtET);  
4055     list->Add(fHistConvElectronAccEtaET);  
4056     list->Add(fHistConvElectronAccEtaE);  
4057     list->Add(fHistConvElectronAccEtaPt);  
4058     list->Add(fHistConvElectronAcctotET);  
4059         
4060     list->Add(fHistScatElectronAccEtaEET);  
4061     list->Add(fHistScatElectronAccEtaPtET);  
4062     list->Add(fHistScatElectronAccEtaET);  
4063     list->Add(fHistScatElectronAccEtaE);  
4064     list->Add(fHistScatElectronAccEtaPt);  
4065     list->Add(fHistScatElectronAcctotET);  
4066         
4067     list->Add(fHistTotElectronAcctotET); 
4068     
4069     list->Add(fHistGammaAccEtaEET);  
4070     list->Add(fHistGammaAccEtaPtET);  
4071     list->Add(fHistGammaAccEtaET);  
4072     list->Add(fHistGammaAccEtaE);  
4073     list->Add(fHistGammaAccEtaPt);  
4074     list->Add(fHistGammaAcctotET);  
4075         
4076     list->Add(fHistConvGammaAccEtaEET);  
4077     list->Add(fHistConvGammaAccEtaPtET);  
4078     list->Add(fHistConvGammaAccEtaET);  
4079     list->Add(fHistConvGammaAccEtaE);  
4080     list->Add(fHistConvGammaAccEtaPt);  
4081     list->Add(fHistConvGammaAcctotET);  
4082         
4083     list->Add(fHistNonConvGammaAccEtaEET);  
4084     list->Add(fHistNonConvGammaAccEtaPtET);  
4085     list->Add(fHistNonConvGammaAccEtaET);  
4086     list->Add(fHistNonConvGammaAccEtaE);  
4087     list->Add(fHistNonConvGammaAccEtaPt);  
4088     list->Add(fHistNonConvGammaAcctotET);  
4089         
4090     list->Add(fHistAnnihGammaAccEtaEET);  
4091     list->Add(fHistAnnihGammaAccEtaPtET);  
4092     list->Add(fHistAnnihGammaAccEtaET);  
4093     list->Add(fHistAnnihGammaAccEtaE);  
4094     list->Add(fHistAnnihGammaAccEtaPt);  
4095     list->Add(fHistAnnihGammaAcctotET);  
4096         
4097     list->Add(fHistScatGammaAccEtaEET);  
4098     list->Add(fHistScatGammaAccEtaPtET);  
4099     list->Add(fHistScatGammaAccEtaET);  
4100     list->Add(fHistScatGammaAccEtaE);  
4101     list->Add(fHistScatGammaAccEtaPt);  
4102     list->Add(fHistScatGammaAcctotET);  
4103     
4104     list->Add(fHistTotGammaAcctotET);  
4105     
4106     list->Add(fHistTotEMAcctotET); 
4107     
4108     list->Add(fHistNPPElectronAccEtaEET); 
4109     list->Add(fHistNPPElectronAccEtaPtET); 
4110     list->Add(fHistNPPElectronAccEtaE); 
4111     list->Add(fHistNPPElectronAccEtaPt); 
4112         
4113     list->Add(fHistNPPGammaAccEtaEET); 
4114     list->Add(fHistNPPGammaAccEtaPtET); 
4115     list->Add(fHistNPPGammaAccEtaE); 
4116     list->Add(fHistNPPGammaAccEtaPt); 
4117         
4118     list->Add(fHistElectronRecEtaEET); 
4119     list->Add(fHistElectronRecEtaPtET); 
4120     list->Add(fHistElectronRecEtaET); 
4121     list->Add(fHistElectronRecEtaE); 
4122     list->Add(fHistElectronRecEtaPt); 
4123     list->Add(fHistElectronRectotET); 
4124         
4125     list->Add(fHistConvElectronRecEtaEET);  
4126     list->Add(fHistConvElectronRecEtaPtET);  
4127     list->Add(fHistConvElectronRecEtaET);  
4128     list->Add(fHistConvElectronRecEtaE);  
4129     list->Add(fHistConvElectronRecEtaPt);  
4130     list->Add(fHistConvElectronRectotET);  
4131         
4132     list->Add(fHistScatElectronRecEtaEET);  
4133     list->Add(fHistScatElectronRecEtaPtET);  
4134     list->Add(fHistScatElectronRecEtaET);  
4135     list->Add(fHistScatElectronRecEtaE);  
4136     list->Add(fHistScatElectronRecEtaPt);  
4137     list->Add(fHistScatElectronRectotET);  
4138         
4139     list->Add(fHistTotElectronRectotET); 
4140     
4141     list->Add(fHistGammaRecEtaEET);  
4142     list->Add(fHistGammaRecEtaPtET);  
4143     list->Add(fHistGammaRecEtaET);  
4144     list->Add(fHistGammaRecEtaE);  
4145     list->Add(fHistGammaRecEtaPt);  
4146     list->Add(fHistGammaRectotET);  
4147     
4148     
4149     list->Add(fHistGammaRecResEET);//Add Caio
4150     list->Add(fHistGammaRecResPtET);//Add CAio                                                  
4151     list->Add(fHistGammaRecResE);//Add Caio
4152     list->Add(fHistGammaRecResPt);//Add Caio    
4153     list->Add(fHistGammaRecResEDepETDep);//Add Caio 
4154     list->Add(fHistGammaRecResPtETDep); // Add Caio
4155         
4156     list->Add(fHistAnnihGammaRecEtaEET);  
4157     list->Add(fHistAnnihGammaRecEtaPtET);  
4158     list->Add(fHistAnnihGammaRecEtaET);  
4159     list->Add(fHistAnnihGammaRecEtaE);  
4160     list->Add(fHistAnnihGammaRecEtaPt);  
4161     list->Add(fHistAnnihGammaRectotET);  
4162         
4163     list->Add(fHistScatGammaRecEtaEET);  
4164     list->Add(fHistScatGammaRecEtaPtET);  
4165     list->Add(fHistScatGammaRecEtaET);  
4166     list->Add(fHistScatGammaRecEtaE);  
4167     list->Add(fHistScatGammaRecEtaPt);  
4168     list->Add(fHistScatGammaRectotET);  
4169     
4170     list->Add(fHistTotGammaRectotET);  
4171     
4172     list->Add(fHistTotEMRectotET); 
4173     
4174     list->Add(fHistNPPElectronRecEtaEET); 
4175     list->Add(fHistNPPElectronRecEtaPtET); 
4176     list->Add(fHistNPPElectronRecEtaET); 
4177     list->Add(fHistNPPElectronRecEtaE); 
4178     list->Add(fHistNPPElectronRecEtaPt); 
4179     list->Add(fHistNPPElectronRectotET); 
4180         
4181     list->Add(fHistNPPGammaRecEtaEET); 
4182     list->Add(fHistNPPGammaRecEtaPtET); 
4183     list->Add(fHistNPPGammaRecEtaET); 
4184     list->Add(fHistNPPGammaRecEtaE); 
4185     list->Add(fHistNPPGammaRecEtaPt); 
4186     list->Add(fHistNPPGammaRectotET); 
4187     
4188     list->Add(fHistTotNPPEMRectotET); 
4189     
4190     list->Add(fHistNPPPi0GammaRecEtaEET); 
4191     list->Add(fHistNPPPi0GammaRecEtaPtET); 
4192     list->Add(fHistNPPPi0GammaRecEtaET); 
4193     list->Add(fHistNPPPi0GammaRecEtaE); 
4194     list->Add(fHistNPPPi0GammaRecEtaPt); 
4195     list->Add(fHistNPPPi0GammaRectotET); 
4196         
4197     list->Add(fHistMuonEtaEET); 
4198     list->Add(fHistMuonAccEtaEET); 
4199     list->Add(fHistMuonRecEtaEET); 
4200     list->Add(fHistMuonMatchEtaEET); 
4201         
4202     list->Add(fHistMuonEtaPtET); 
4203     list->Add(fHistMuonAccEtaPtET); 
4204     list->Add(fHistMuonRecEtaPtET); 
4205     list->Add(fHistMuonMatchEtaPtET); 
4206         
4207     list->Add(fHistMuonEtaET); 
4208     list->Add(fHistMuonAccEtaET); 
4209     list->Add(fHistMuonRecEtaET); 
4210     list->Add(fHistMuonMatchEtaET); 
4211         
4212     list->Add(fHistMuonEtaE); 
4213     list->Add(fHistMuonAccEtaE); 
4214     list->Add(fHistMuonRecEtaE); 
4215     list->Add(fHistMuonMatchEtaE); 
4216         
4217     list->Add(fHistMuonEtaPt); 
4218     list->Add(fHistMuonAccEtaPt); 
4219     list->Add(fHistMuonRecEtaPt); 
4220     list->Add(fHistMuonMatchEtaPt); 
4221         
4222     list->Add(fHistMuontotET); 
4223     list->Add(fHistMuonAcctotET); 
4224     list->Add(fHistMuonRectotET); 
4225     list->Add(fHistMuonMatchtotET); 
4226         
4227     list->Add(fHistMuonRectotETDep); 
4228     list->Add(fHistMuonMatchtotETDep); 
4229         
4230     list->Add(fHistMuonRecEtaEDepETDep); 
4231     list->Add(fHistMuonMatchEtaEDepETDep); 
4232     
4233     list->Add(fHistMuonRecEtaPtETDep); 
4234     list->Add(fHistMuonMatchEtaPtETDep); 
4235     
4236     list->Add(fHistMuonRecEtaETDep); 
4237     list->Add(fHistMuonMatchEtaETDep); 
4238     
4239     list->Add(fHistMuonRecResEET);
4240     list->Add(fHistMuonRecResPtET); 
4241     list->Add(fHistMuonRecResE); 
4242     list->Add(fHistMuonRecResPt); 
4243     list->Add(fHistMuonRecResEDepETDep); 
4244     list->Add(fHistMuonRecResPtETDep); 
4245         
4246     list->Add(fHistPionEtaEET); 
4247     list->Add(fHistPionAccEtaEET); 
4248     list->Add(fHistPionRecEtaEET); 
4249     list->Add(fHistPionMatchEtaEET); 
4250         
4251     list->Add(fHistPionEtaPtET); 
4252     list->Add(fHistPionAccEtaPtET); 
4253     list->Add(fHistPionRecEtaPtET); 
4254     list->Add(fHistPionMatchEtaPtET); 
4255         
4256     list->Add(fHistPionEtaET); 
4257     list->Add(fHistPionAccEtaET); 
4258     list->Add(fHistPionRecEtaET); 
4259     list->Add(fHistPionMatchEtaET); 
4260         
4261     list->Add(fHistPionEtaE); 
4262     list->Add(fHistPionAccEtaE); 
4263     list->Add(fHistPionRecEtaE); 
4264     list->Add(fHistPionMatchEtaE); 
4265         
4266     list->Add(fHistPionEtaPt); 
4267     list->Add(fHistPionAccEtaPt); 
4268     list->Add(fHistPionRecEtaPt); 
4269     list->Add(fHistPionMatchEtaPt); 
4270         
4271     list->Add(fHistPiontotET); 
4272     list->Add(fHistPionAcctotET); 
4273     list->Add(fHistPionRectotET); 
4274     list->Add(fHistPionMatchtotET); 
4275         
4276     list->Add(fHistPionRectotETDep); 
4277     list->Add(fHistPionMatchtotETDep); 
4278         
4279     list->Add(fHistPionRecEtaEDepETDep); 
4280     list->Add(fHistPionMatchEtaEDepETDep); 
4281         
4282     list->Add(fHistPionRecEtaPtETDep); 
4283     list->Add(fHistPionMatchEtaPtETDep); 
4284         
4285     list->Add(fHistPionRecEtaETDep); 
4286     list->Add(fHistPionMatchEtaETDep); 
4287         
4288     list->Add(fHistPionRecResEET);
4289     list->Add(fHistPionRecResPtET); 
4290     list->Add(fHistPionRecResE); 
4291     list->Add(fHistPionRecResPt); 
4292     list->Add(fHistPionRecResEDepETDep); 
4293     list->Add(fHistPionRecResPtETDep); 
4294         
4295     list->Add(fHistKaonEtaEET); 
4296     list->Add(fHistKaonAccEtaEET); 
4297     list->Add(fHistKaonRecEtaEET); 
4298     list->Add(fHistKaonMatchEtaEET); 
4299         
4300     list->Add(fHistKaonEtaPtET); 
4301     list->Add(fHistKaonAccEtaPtET); 
4302     list->Add(fHistKaonRecEtaPtET); 
4303     list->Add(fHistKaonMatchEtaPtET); 
4304         
4305     list->Add(fHistKaonEtaET); 
4306     list->Add(fHistKaonAccEtaET); 
4307     list->Add(fHistKaonRecEtaET); 
4308     list->Add(fHistKaonMatchEtaET); 
4309         
4310     list->Add(fHistKaonEtaE); 
4311     list->Add(fHistKaonAccEtaE); 
4312     list->Add(fHistKaonRecEtaE); 
4313     list->Add(fHistKaonMatchEtaE); 
4314         
4315     list->Add(fHistKaonEtaPt); 
4316     list->Add(fHistKaonAccEtaPt); 
4317     list->Add(fHistKaonRecEtaPt); 
4318     list->Add(fHistKaonMatchEtaPt); 
4319         
4320     list->Add(fHistKaontotET); 
4321     list->Add(fHistKaonAcctotET); 
4322     list->Add(fHistKaonRectotET); 
4323     list->Add(fHistKaonMatchtotET); 
4324         
4325     list->Add(fHistKaonRectotETDep); 
4326     list->Add(fHistKaonMatchtotETDep); 
4327         
4328     list->Add(fHistKaonRecEtaEDepETDep); 
4329     list->Add(fHistKaonMatchEtaEDepETDep); 
4330         
4331     list->Add(fHistKaonRecEtaPtETDep); 
4332     list->Add(fHistKaonMatchEtaPtETDep); 
4333         
4334     list->Add(fHistKaonRecEtaETDep); 
4335     list->Add(fHistKaonMatchEtaETDep); 
4336         
4337     list->Add(fHistKaonRecResEET);
4338     list->Add(fHistKaonRecResPtET); 
4339     list->Add(fHistKaonRecResE); 
4340     list->Add(fHistKaonRecResPt); 
4341     list->Add(fHistKaonRecResEDepETDep); 
4342     list->Add(fHistKaonRecResPtETDep); 
4343         
4344     list->Add(fHistProtonEtaEET); 
4345     list->Add(fHistProtonAccEtaEET); 
4346     list->Add(fHistProtonRecEtaEET); 
4347     list->Add(fHistProtonMatchEtaEET); 
4348         
4349     list->Add(fHistProtonEtaPtET); 
4350     list->Add(fHistProtonAccEtaPtET); 
4351     list->Add(fHistProtonRecEtaPtET); 
4352     list->Add(fHistProtonMatchEtaPtET); 
4353         
4354     list->Add(fHistProtonEtaET); 
4355     list->Add(fHistProtonAccEtaET); 
4356     list->Add(fHistProtonRecEtaET); 
4357     list->Add(fHistProtonMatchEtaET); 
4358         
4359     list->Add(fHistProtonEtaE); 
4360     list->Add(fHistProtonAccEtaE); 
4361     list->Add(fHistProtonRecEtaE); 
4362     list->Add(fHistProtonMatchEtaE); 
4363         
4364     list->Add(fHistProtonEtaPt); 
4365     list->Add(fHistProtonAccEtaPt); 
4366     list->Add(fHistProtonRecEtaPt); 
4367     list->Add(fHistProtonMatchEtaPt); 
4368     
4369     list->Add(fHistProtontotET); 
4370     list->Add(fHistProtonAcctotET); 
4371     list->Add(fHistProtonRectotET); 
4372     list->Add(fHistProtonMatchtotET); 
4373         
4374     list->Add(fHistProtonRectotETDep); 
4375     list->Add(fHistProtonMatchtotETDep); 
4376         
4377     list->Add(fHistProtonRecEtaEDepETDep); 
4378     list->Add(fHistProtonMatchEtaEDepETDep); 
4379         
4380     list->Add(fHistProtonRecEtaPtETDep); 
4381     list->Add(fHistProtonMatchEtaPtETDep); 
4382         
4383     list->Add(fHistProtonRecEtaETDep); 
4384     list->Add(fHistProtonMatchEtaETDep); 
4385         
4386     list->Add(fHistProtonRecResEET);
4387     list->Add(fHistProtonRecResPtET); 
4388     list->Add(fHistProtonRecResE); 
4389     list->Add(fHistProtonRecResPt); 
4390     list->Add(fHistProtonRecResEDepETDep); 
4391     list->Add(fHistProtonRecResPtETDep); 
4392     
4393     list->Add(fHistTotChargedtotET); 
4394     list->Add(fHistTotChargedAcctotET); 
4395     list->Add(fHistTotChargedRectotET); 
4396     list->Add(fHistTotChargedMatchtotET); 
4397         
4398     list->Add(fHistTotChargedRectotETDep); 
4399     list->Add(fHistTotChargedMatchtotETDep); 
4400         
4401     list->Add(fHistNeutronEtaEET); 
4402     list->Add(fHistNeutronAccEtaEET); 
4403     list->Add(fHistNeutronRecEtaEET); 
4404         
4405     list->Add(fHistNeutronEtaPtET); 
4406     list->Add(fHistNeutronAccEtaPtET); 
4407     list->Add(fHistNeutronRecEtaPtET); 
4408         
4409     list->Add(fHistNeutronEtaET); 
4410     list->Add(fHistNeutronAccEtaET); 
4411     list->Add(fHistNeutronRecEtaET); 
4412         
4413     list->Add(fHistNeutronEtaE); 
4414     list->Add(fHistNeutronAccEtaE); 
4415     list->Add(fHistNeutronRecEtaE); 
4416         
4417     list->Add(fHistNeutronEtaPt); 
4418     list->Add(fHistNeutronAccEtaPt); 
4419     list->Add(fHistNeutronRecEtaPt); 
4420         
4421     list->Add(fHistNeutrontotET); 
4422     list->Add(fHistNeutronAcctotET); 
4423     list->Add(fHistNeutronRectotET); 
4424     list->Add(fHistNeutronRectotETDep); 
4425         
4426     list->Add(fHistNeutronRecEtaEDepETDep); 
4427     list->Add(fHistNeutronRecEtaETDep); 
4428     
4429     list->Add(fHistNeutronRecEtaPtETDep); 
4430         
4431     list->Add(fHistK0EtaEET); 
4432     list->Add(fHistK0RecEtaEET); 
4433         
4434     list->Add(fHistK0EtaPtET); 
4435     list->Add(fHistK0RecEtaPtET); 
4436         
4437     list->Add(fHistK0EtaET); 
4438     list->Add(fHistK0RecEtaET); 
4439         
4440     list->Add(fHistK0EtaE); 
4441     list->Add(fHistK0RecEtaE); 
4442         
4443     list->Add(fHistK0EtaPt); 
4444     list->Add(fHistK0RecEtaPt); 
4445         
4446     list->Add(fHistK0totET); 
4447     list->Add(fHistK0RectotET); 
4448     list->Add(fHistK0RectotETDep); 
4449         
4450     list->Add(fHistK0RecEtaEDepETDep); 
4451     list->Add(fHistK0RecEtaETDep); 
4452         
4453     list->Add(fHistK0RecEtaPtETDep); 
4454         
4455     list->Add(fHistLambdaEtaEET); 
4456     list->Add(fHistLambdaRecEtaEET); 
4457         
4458     list->Add(fHistLambdaEtaPtET); 
4459     list->Add(fHistLambdaRecEtaPtET); 
4460         
4461     list->Add(fHistLambdaEtaET); 
4462     list->Add(fHistLambdaRecEtaET); 
4463         
4464     list->Add(fHistLambdaEtaE); 
4465     list->Add(fHistLambdaRecEtaE); 
4466         
4467     list->Add(fHistLambdaEtaPt); 
4468     list->Add(fHistLambdaRecEtaPt); 
4469         
4470     list->Add(fHistLambdatotET); 
4471     list->Add(fHistLambdaRectotET); 
4472     list->Add(fHistLambdaRectotETDep); 
4473         
4474     list->Add(fHistLambdaRecEtaEDepETDep); 
4475     list->Add(fHistLambdaRecEtaETDep); 
4476         
4477     list->Add(fHistLambdaRecEtaPtETDep); 
4478         
4479     list->Add(fHistTotNeutraltotET); 
4480     list->Add(fHistTotNeutralRectotET); 
4481     list->Add(fHistTotNeutralRectotETDep); 
4482     
4483     list->Add(fHistTotaltotET); 
4484     list->Add(fHistTotalAcctotET); 
4485     list->Add(fHistTotalRectotET); 
4486     list->Add(fHistTotalRectotETDep); 
4487         
4488     list->Add(fHistElectronFirstMother); 
4489     list->Add(fHistElectronFirstMotherXY); 
4490     list->Add(fHistElectronNDaughters); 
4491     list->Add(fHistElectronDaughters); 
4492     list->Add(fHistElectronDaughtersXY); 
4493         
4494     list->Add(fHistElectronFirstMotherAcc);  
4495     list->Add(fHistElectronFirstMotherXYAcc);  
4496     list->Add(fHistElectronNDaughtersAcc); 
4497     list->Add(fHistElectronDaughtersAcc); 
4498     list->Add(fHistElectronDaughtersXYAcc); 
4499         
4500     list->Add(fHistElectronFirstMotherRec);  
4501     list->Add(fHistElectronFirstMotherXYRec);  
4502     list->Add(fHistElectronNDaughtersRec); 
4503     list->Add(fHistElectronDaughtersRec); 
4504     list->Add(fHistElectronDaughtersXYRec); 
4505         
4506     list->Add(fHistNPPElectronFirstMother); 
4507     list->Add(fHistNPPElectronFirstMotherXY); 
4508     list->Add(fHistNPPElectronNDaughters); 
4509     list->Add(fHistNPPElectronDaughters); 
4510     list->Add(fHistNPPElectronDaughtersXY); 
4511         
4512     list->Add(fHistNPPElectronFirstMotherAcc);  
4513     list->Add(fHistNPPElectronFirstMotherXYAcc);  
4514     list->Add(fHistNPPElectronNDaughtersAcc); 
4515     list->Add(fHistNPPElectronDaughtersAcc); 
4516     list->Add(fHistNPPElectronDaughtersXYAcc); 
4517         
4518     list->Add(fHistNPPElectronFirstMotherRec);  
4519     list->Add(fHistNPPElectronFirstMotherXYRec);  
4520     list->Add(fHistNPPElectronNDaughtersRec); 
4521     list->Add(fHistNPPElectronDaughtersRec); 
4522     list->Add(fHistNPPElectronDaughtersXYRec); 
4523         
4524     list->Add(fHistGammaFirstMother); 
4525     list->Add(fHistGammaFirstMotherXY); 
4526     list->Add(fHistGammaNDaughters); 
4527     list->Add(fHistGammaDaughters); 
4528     list->Add(fHistGammaDaughtersXY); 
4529     list->Add(fHistConvGammaDaughtersXY); 
4530     list->Add(fHistNonConvGammaDaughtersXY); 
4531         
4532     list->Add(fHistGammaFirstMotherAcc);  
4533     list->Add(fHistGammaFirstMotherXYAcc);  
4534     list->Add(fHistGammaNDaughtersAcc); 
4535     list->Add(fHistGammaDaughtersAcc); 
4536     list->Add(fHistGammaDaughtersXYAcc); 
4537     list->Add(fHistConvGammaDaughtersXYAcc); 
4538     list->Add(fHistNonConvGammaDaughtersXYAcc); 
4539         
4540     list->Add(fHistGammaFirstMotherRec);  
4541     list->Add(fHistGammaFirstMotherXYRec);  
4542     list->Add(fHistGammaNDaughtersRec); 
4543     list->Add(fHistGammaDaughtersRec); 
4544     list->Add(fHistGammaDaughtersXYRec); 
4545     list->Add(fHistConvGammaDaughtersXYRec); 
4546     list->Add(fHistNonConvGammaDaughtersXYRec); 
4547         
4548     list->Add(fHistNPPGammaFirstMother); 
4549     list->Add(fHistNPPGammaFirstMotherXY); 
4550     list->Add(fHistNPPGammaNDaughters); 
4551     list->Add(fHistNPPGammaDaughters); 
4552     list->Add(fHistNPPGammaDaughtersXY); 
4553         
4554     list->Add(fHistNPPGammaFirstMotherAcc);  
4555     list->Add(fHistNPPGammaFirstMotherXYAcc);  
4556     list->Add(fHistNPPGammaNDaughtersAcc); 
4557     list->Add(fHistNPPGammaDaughtersAcc); 
4558     list->Add(fHistNPPGammaDaughtersXYAcc); 
4559         
4560     list->Add(fHistNPPGammaFirstMotherRec);  
4561     list->Add(fHistNPPGammaFirstMotherXYRec);  
4562     list->Add(fHistNPPGammaNDaughtersRec); 
4563     list->Add(fHistNPPGammaDaughtersRec); 
4564     list->Add(fHistNPPGammaDaughtersXYRec); 
4565         
4566     list->Add(fHistAllERecEMC); 
4567     list->Add(fHistAllPtRecPtMC);
4568     list->Add(fHistElectronERecEMC);    
4569     list->Add(fHistGammaERecEMC);
4570         
4571     list->Add(fHistChargedRes);
4572     list->Add(fHistChargedRes2);
4573     list->Add(fHistChargedRes3);
4574     list->Add(fHistNeutralRes);
4575     list->Add(fHistElectronRes);
4576     list->Add(fHistGammaRes);
4577         
4578     list->Add(fHistIsInAcc);
4579 }
4580
4581 //________________________________________________________________________
4582 Bool_t AliAnalysisEmEtMonteCarlo::TrackHitsCalo(AliExternalTrackParam* extParam)
4583 {//Does the track hit the calorimeter?
4584     TVector3 pos(0,0,0);
4585         
4586     if (extParam)
4587     {
4588         if (GetTrackProjection(extParam,pos))
4589         {
4590             Bool_t inAcc = fGeoUt->IsInEMCAL(pos.X(),pos.Y(),pos.Z());
4591                         
4592             //if (inAcc)
4593             //  fHistIsInAcc->Fill(pos.X(),pos.Y());
4594                         
4595             return inAcc;
4596         }
4597     }
4598     return kFALSE;
4599 }
4600
4601 //________________________________________________________________________
4602 //project to a EMCal radius
4603 Bool_t AliAnalysisEmEtMonteCarlo::GetTrackProjection(AliExternalTrackParam *trackParam, TVector3 &trackPos)
4604 {//Get the track projection
4605     Bool_t proj = kFALSE;
4606     Double_t emcalR = fGeoUt->GetEMCGeometry()->GetIPDistance();
4607         
4608     if (trackParam) //it is constructed from TParticle
4609     {
4610         Double_t trkPos[3] = {0};
4611                 
4612         //Assume the track is a pion with mass 0.139GeV/c^2
4613         //Extrapolation step is 1cm
4614         if(!AliTrackerBase::PropagateTrackToBxByBz(trackParam, emcalR, 0.139, 1, kTRUE, 0.8) ) return proj;
4615                 
4616         trackParam->GetXYZ(trkPos);
4617                 
4618         trackPos.SetXYZ(trkPos[0],trkPos[1],trkPos[2]);
4619                 
4620         proj = kTRUE;               
4621     }
4622         
4623     return proj;
4624 }
4625
4626 //________________________________________________________________________
4627 //project to a cluster position
4628 Bool_t AliAnalysisEmEtMonteCarlo::GetTrackProjection(AliEMCALTrack* emcTrack, TVector3 &trackPos, TVector3 clusPos)
4629 {//get the track projection
4630     Bool_t proj = kFALSE;
4631         
4632     if (emcTrack)
4633     {   
4634         Double_t trkPos[3] = {0};
4635                 
4636         emcTrack->PropagateToGlobal(clusPos.X(),clusPos.Y(),clusPos.Z(),0.,0.);
4637         emcTrack->GetXYZ(trkPos);
4638                 
4639         trackPos.SetXYZ(trkPos[0],trkPos[1],trkPos[2]);
4640                 
4641         proj = kTRUE;
4642     }
4643         
4644     return proj;
4645 }
4646
4647 //________________________________________________________________________
4648 Bool_t AliAnalysisEmEtMonteCarlo::IsInAcceptance(TParticle *part, TParticlePDG *pdg, AliExternalTrackParam* extParam)
4649 {//is the track in the acceptance of the emcal?
4650     if ((part) && (pdg))
4651     {
4652         if (TMath::Abs(pdg->Charge() - fCuts->GetMonteCarloNeutralParticle()) <1e-3 )
4653         {
4654             return fSelector->CutGeometricalAcceptance(*part);
4655         }
4656         else
4657         {
4658             return TrackHitsCalo(extParam);
4659         }
4660     }
4661     
4662     return kFALSE;
4663 }
4664
4665 //________________________________________________________________________
4666 Bool_t AliAnalysisEmEtMonteCarlo::IsInAcceptance(AliMCParticle *part)
4667 {// is the track in the acceptance of the emcal?
4668     if (part)
4669     {
4670         for (int i=0;i<part->GetNumberOfTrackReferences();i++)
4671         {
4672             AliTrackReference* aliTrkRef = part->GetTrackReference(i);
4673                         
4674             if (aliTrkRef)
4675             {
4676                 //if (aliTrkRef->DetectorId() == AliTrackReference::kEMCAL)
4677                 //      return kTRUE;
4678                 if ( (aliTrkRef->DetectorId() == AliTrackReference::kEMCAL) || (fGeoUt->IsInEMCAL(aliTrkRef->X(),aliTrkRef->Y(),aliTrkRef->Z())) )
4679                     return kTRUE;
4680             }
4681         }
4682     }
4683         
4684     return kFALSE;
4685 }
4686
4687 //________________________________________________________________________
4688 Bool_t AliAnalysisEmEtMonteCarlo::IsPrimary(AliStack *stack, Int_t iPart, TParticlePDG *pdg, Int_t iPartMom, TParticlePDG *pdgMom)
4689 {//Is the track a primary track?
4690     if (stack->IsPhysicalPrimary(iPart))
4691     {
4692         return kTRUE;
4693     }
4694     else if (pdg)
4695     {
4696         if (((pdg->PdgCode() == fgEPlusCode) || (pdg->PdgCode() == fgEMinusCode) || (pdg->PdgCode() == fgGammaCode)) && 
4697             ((IsMotherPrimaryGamma(stack,iPartMom,pdgMom)) || (IsMotherPrimaryElectron(stack,iPartMom,pdgMom)))  )
4698         {
4699             return kTRUE;
4700         }
4701     }
4702     
4703     return kFALSE;      
4704 }
4705
4706 //________________________________________________________________________
4707 Bool_t AliAnalysisEmEtMonteCarlo::IsMotherPrimaryGamma(AliStack *stack, Int_t iPartMom, TParticlePDG *pdgMom)
4708 {//Is the mother a primary gamma?
4709     Int_t nStackTracks = stack->GetNtrack();
4710     
4711     if (pdgMom)
4712     {
4713         if ((pdgMom->PdgCode() == fgGammaCode) && (iPartMom>=0) && (iPartMom < nStackTracks))
4714         {
4715             if (stack->IsPhysicalPrimary(iPartMom))
4716                 return kTRUE;
4717         }
4718     }
4719     return kFALSE;
4720 }
4721
4722 //________________________________________________________________________
4723 Bool_t AliAnalysisEmEtMonteCarlo::IsMotherPrimaryElectron(AliStack *stack, Int_t iPartMom, TParticlePDG *pdgMom)
4724 {//is the mother a primary electron?
4725     Int_t nStackTracks = stack->GetNtrack();
4726     
4727     if (pdgMom)
4728     {
4729         if ((pdgMom->PdgCode() == fgEPlusCode || pdgMom->PdgCode() == fgEMinusCode) && (iPartMom>=0) && (iPartMom < nStackTracks))
4730         {
4731             if (stack->IsPhysicalPrimary(iPartMom))
4732                 return kTRUE;
4733         }
4734     }
4735     return kFALSE;
4736 }
4737
4738 //________________________________________________________________________
4739 Bool_t AliAnalysisEmEtMonteCarlo::IsGammaConversion(AliStack *stack, TParticle *part, TParticlePDG *pdg)
4740 {//is the gamma converted?
4741     if ((part) && (pdg))
4742     {
4743         if(pdg->PdgCode() == fgGammaCode)
4744         {
4745             Int_t nStackTracks = stack->GetNtrack();
4746             Int_t iPartDaughter = part->GetLastDaughter();
4747                         
4748             if ((iPartDaughter>=0) && (iPartDaughter < nStackTracks))
4749             {
4750                 TParticle *partDaughter = stack->Particle(iPartDaughter);
4751                 if (partDaughter)
4752                 {
4753                     TParticlePDG *pdgDaugther = partDaughter->GetPDG(0);
4754                     if (pdgDaugther) 
4755                     {
4756                         if ( ((pdgDaugther->PdgCode() == fgEPlusCode) || (pdgDaugther->PdgCode() == fgEMinusCode)) && (!fGeoUt->IsInEMCAL(partDaughter->Vx(),partDaughter->Vy(),partDaughter->Vz())) )
4757                         {
4758                             //Double_t emcalR = fGeoUt->GetEMCGeometry()->GetIPDistance();
4759                             //Double_t decayR = sqrt(pow(partDaughter->Vx(),2)+pow(partDaughter->Vy(),2));
4760                                                         
4761                             //if (decayR<emcalR)                                                
4762                             return kTRUE;
4763                         }
4764                     }
4765                 }
4766             }
4767         }
4768     }
4769     return kFALSE;                      
4770 }
4771
4772 //________________________________________________________________________
4773 AliExternalTrackParam* AliAnalysisEmEtMonteCarlo::CreateExternalTrackParam(TParticle *part)
4774 {//create external track param
4775     // Calculate the AliExternalTrackParam content
4776     Double_t xref;
4777     Double_t alpha;
4778     Double_t param[5];
4779     Double_t covar[15];
4780         
4781     // Calculate alpha: the rotation angle of the corresponding local system (TPC sector)
4782     alpha = part->Phi()*180./TMath::Pi();
4783     if (alpha<0) alpha+= 360.;
4784     if (alpha>360) alpha -= 360.;
4785         
4786     Int_t sector = (Int_t)(alpha/20.);
4787     alpha = 10. + 20.*sector;
4788     alpha /= 180;
4789     alpha *= TMath::Pi();
4790         
4791     // Covariance matrix: no errors, the parameters are exact
4792     for (int i=0; i<15; i++) covar[i]=0.;
4793         
4794     // Get the vertex of origin and the momentum
4795     TVector3 ver(part->Vx(),part->Vy(),part->Vz());
4796     TVector3 mom(part->Px(),part->Py(),part->Pz());
4797         
4798     // Rotate to the local coordinate system (TPC sector)
4799     ver.RotateZ(-alpha);
4800     mom.RotateZ(-alpha);
4801         
4802     // X of the referense plane
4803     xref = ver.X();
4804         
4805     Double_t charge;
4806     if (part->GetPDG(0))
4807         charge = part->GetPDG(0)->Charge();
4808     else
4809         return 0;
4810         
4811     if (mom.Pt()>0)
4812     {
4813         param[0] = ver.Y();
4814         param[1] = ver.Z();
4815         param[2] = TMath::Sin(mom.Phi());
4816         param[3] = mom.Pz()/mom.Pt();
4817         param[4] = TMath::Sign(1/mom.Pt(),charge);
4818     }
4819     else
4820         return 0;
4821         
4822     // Set AliExternalTrackParam
4823     AliExternalTrackParam* extTrkParam = new AliExternalTrackParam(xref, alpha, param, covar);
4824         
4825     return extTrkParam;
4826 }
4827
4828 //________________________________________________________________________
4829 Double_t AliAnalysisEmEtMonteCarlo::CalcET(TParticle *part, TParticlePDG *pdg)
4830 {//Calculate Et
4831     //***************
4832     // calculate E_T
4833     //***************
4834     Double_t particleMassPart = 0; //The mass part in the Et calculation for this particle
4835     Double_t protonMass = fgProtonMass;
4836     
4837     if (pdg)
4838     {
4839         if (
4840             TMath::Abs(pdg->PdgCode()) == fgProtonCode ||
4841             TMath::Abs(pdg->PdgCode()) == fgNeutronCode ||
4842             TMath::Abs(pdg->PdgCode()) == fgLambdaCode ||
4843             TMath::Abs(pdg->PdgCode()) == fgXiCode ||
4844             TMath::Abs(pdg->PdgCode()) == fgXi0Code ||
4845             TMath::Abs(pdg->PdgCode()) == fgOmegaCode
4846             )
4847         {
4848             if (pdg->PdgCode() > 0) { particleMassPart = - protonMass;}
4849             if (pdg->PdgCode() < 0) { particleMassPart = protonMass;}
4850         }
4851         Double_t et = part->Energy() * TMath::Sin(part->Theta()) + particleMassPart;
4852         return et;
4853     }
4854     else
4855         return -1.;
4856 }
4857
4858 //________________________________________________________________________
4859 Double_t AliAnalysisEmEtMonteCarlo::CalcETDep(Double_t caloE, TParticle *part, TParticlePDG *pdg)
4860 {//calculate et dependence
4861     //***************
4862     // calculate E_T
4863     //***************
4864     Double_t particleMassPart = 0; //The mass part in the Et calculation for this particle
4865     Double_t protonMass = fgProtonMass;
4866         
4867     if (pdg)
4868     {
4869         if (
4870             TMath::Abs(pdg->PdgCode()) == fgProtonCode ||
4871             TMath::Abs(pdg->PdgCode()) == fgNeutronCode ||
4872             TMath::Abs(pdg->PdgCode()) == fgLambdaCode ||
4873             TMath::Abs(pdg->PdgCode()) == fgXiCode ||
4874             TMath::Abs(pdg->PdgCode()) == fgXi0Code ||
4875             TMath::Abs(pdg->PdgCode()) == fgOmegaCode
4876             )
4877         {
4878             if (pdg->PdgCode() > 0) { particleMassPart = - protonMass;}
4879             if (pdg->PdgCode() < 0) { particleMassPart = protonMass;}
4880         }
4881         Double_t et = caloE * TMath::Sin(part->Theta()) + particleMassPart;
4882         return et;
4883     }
4884     else
4885         return -1.;
4886 }
4887
4888
4889