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