AliPhysics  e34b7ac (e34b7ac)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnalysisTaskPSHFE.cxx
Go to the documentation of this file.
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  * *
4  * Author: The ALICE Off-line Project. *
5  * Contributors are mentioned in the code where appropriate. *
6  * *
7  * Permission to use, copy, modify and distribute this software and its *
8  * documentation strictly for non-commercial purposes is hereby granted *
9  * without fee, provided that the above copyright notice appears in all *
10  * copies and that both the copyright notice and this permission notice *
11  * appear in the supporting documentation. The authors make no claims *
12  * about the suitability of this software for any purpose. It is *
13  * provided "as is" without express or implied warranty. *
14  **************************************************************************/
15 
16 /* $Id$ */
17 
18 /* AliAnalysisTaskPSHFE.cxx
19  *
20  * Macro for analysis of heavy flavour electrons
21  * -Patrick Steffanic
22  */
23 #include "AliAnalysisTaskPSHFE.h"
24 
25 #include <iostream>
26 #include <fstream>
27 #include <vector>
28 #include "Riostream.h"
29 #include "TChain.h"
30 #include "TTree.h"
31 #include "TMath.h"
32 #include "TString.h"
33 #include "TH1F.h"
34 #include "TH2F.h"
35 #include "TCanvas.h"
36 #include "TList.h"
37 #include "TF1.h"
38 #include "TGraph.h"
39 
40 #include "AliAnalysisTaskSE.h"
41 #include "AliAnalysisManager.h"
42 #include "AliStack.h"
43 #include "AliESDtrackCuts.h"
44 #include "AliESDtrack.h"
45 #include "AliAODTrack.h"
46 #include "AliESDCaloCluster.h"
47 #include "AliAODCaloCluster.h"
48 #include "AliESDEvent.h"
49 #include "AliAODEvent.h"
50 #include "AliESDInputHandler.h"
51 #include "AliAODInputHandler.h"
52 #include "AliPID.h"
53 #include "AliPIDResponse.h"
54 #include "AliTRDPIDResponse.h"
55 #include "AliEventPoolManager.h"
56 
57 using std::cout;
58 using std::endl;
59 
60 
62 
63 //________________________________________________________________________
64 AliAnalysisTaskPSHFE::AliAnalysisTaskPSHFE() // All data members should be initialised here
66  fOutputMB(0),
67  fOutputEMC7(0),
68  fOutputEMCJet(0),
69  fTrackCutsStrong(0),
70  fTrackCutsWeak(0),
71  globaltrackCuts(0),
72  comptrackCuts(0),
73  fPoolMan(0),
74  fPool(0),
75  aodEv(0),
76  trkArr(0),
77  EMC7trg(0),
78  EMCJettrg(0),
79  MBtrg(0),
80  tagStrong(0),
81  tagPhot(0),
82 
83  fHistPIDRejection(0),
84  fHistNElecPerEvent(0),
85 
86  fHistTPCNClus_MB(0),
87  fHistITSNClus_MB(0),
88  fHistTPCSig_MB(0),
89  fHistTPCSigCut_MB(0),
90  fHistImpPar_MB(0),
91  fHistImpParTag_MB(0),
92  fHistNevents_MB(0),
93  fHistPtSum_MB(0),
94  fHistPtSumTag_MB(0),
95  fHistPtSumEMC_MB(0),
96  fHistEtaPhi_MB(0),
97  fHistEtaPhiTag_MB(0),
98  fHistEtaPhiTPCOnly_MB(0),
99  fHistDPhi28_MB(0),
100  fHistDPhiDEta28_MB(0),
101  fHistDPhiMix28_MB(0),
102  fHistDPhiDEtaMix28_MB(0),
103  fHistEMC_Had_MB_1Gev(0),
104  fHistInvMassElecLike_MB(0),
105  fHistInvMassElecUnLike_MB(0),
106  fHistOpAngElecLike_MB(0),
107  fHistOpAngElecUnLike_MB(0),
108  fHistPtAssoc_MB(0),
109  fHistPtAssocMix_MB(0),
110  fHistPtTag_MB(0),
111  fHistPhotoMismatch_MB(0),
112  fHistDPhi18Spe_MB(0),
113 
114  fHistTPCNClus_EMC7(0),
115  fHistITSNClus_EMC7(0),
116  fHistTPCSig_EMC7(0),
117  fHistTPCSigCut_EMC7(0),
118  fHistImpPar_EMC7(0),
119  fHistImpParTag_EMC7(0),
120  fHistNevents_EMC7(0),
121  fHistPtSum_EMC7(0),
122  fHistPtSumTag_EMC7(0),
123  fHistPtSumEMC_EMC7(0),
124  fHistEtaPhi_EMC7(0),
125  fHistEtaPhiTag_EMC7(0),
126  fHistDPhi28_EMC7(0),
127  fHistDPhiDEta28_EMC7(0),
128  fHistDPhiMix28_EMC7(0),
129  fHistDPhiDEtaMix28_EMC7(0),
130  fHistInvMassElecLike_EMC7(0),
131  fHistInvMassElecUnLike_EMC7(0),
132  fHistOpAngElecLike_EMC7(0),
133  fHistOpAngElecUnLike_EMC7(0),
134  fHistPtAssoc_EMC7(0),
135  fHistPtAssocMix_EMC7(0),
136  fHistPtTag_EMC7(0),
137  fHistPhotoMismatch_EMC7(0),
138  fHistDPhi18Spe_EMC7(0),
139 
140  fHistTPCNClus_EMCJet(0),
141  fHistITSNClus_EMCJet(0),
142  fHistTPCSig_EMCJet(0),
143  fHistTPCSigCut_EMCJet(0),
144  fHistImpPar_EMCJet(0),
145  fHistImpParTag_EMCJet(0),
146  fHistNevents_EMCJet(0),
147  fHistPtSum_EMCJet(0),
148  fHistPtSumTag_EMCJet(0),
149  fHistPtSumEMC_EMCJet(0),
150  fHistEtaPhi_EMCJet(0),
151  fHistEtaPhiTag_EMCJet(0),
152  fHistDPhi28_EMCJet(0),
153  fHistDPhiDEta28_EMCJet(0),
154  fHistDPhiMix28_EMCJet(0),
155  fHistDPhiDEtaMix28_EMCJet(0),
156  fHistInvMassElecLike_EMCJet(0),
157  fHistInvMassElecUnLike_EMCJet(0),
158  fHistOpAngElecLike_EMCJet(0),
159  fHistOpAngElecUnLike_EMCJet(0),
160  fHistPtAssoc_EMCJet(0),
161  fHistPtAssocMix_EMCJet(0),
162  fHistPtTag_EMCJet(0),
163  fHistPhotoMismatch_EMCJet(0),
164  fHistDPhi18Spe_EMCJet(0)
165 
166  // The last in the above list should not have a comma after it
167 {
168 
169  //Init the DPhi Plots here because they are stored in arrays
170  for(Int_t i=0; i<3; i++){
171  fHistDPhi300_500_MB[i]=0;
172  fHistDPhi500_800_MB[i]=0;
173  fHistDPhi800_1_MB[i]=0;
174  fHistDPhi1_2_MB[i]=0;
175  fHistDPhi2_3_MB[i]=0;
176  fHistDPhi3_4_MB[i]=0;
177  fHistDPhi4_MB[i]=0;
178 
179  fHistDPhi300_500_EMC7[i]=0;
180  fHistDPhi500_800_EMC7[i]=0;
181  fHistDPhi800_1_EMC7[i]=0;
182  fHistDPhi1_2_EMC7[i]=0;
183  fHistDPhi2_3_EMC7[i]=0;
184  fHistDPhi3_4_EMC7[i]=0;
185  fHistDPhi4_EMC7[i]=0;
186 
187  fHistDPhi300_500_EMCJet[i]=0;
188  fHistDPhi500_800_EMCJet[i]=0;
189  fHistDPhi800_1_EMCJet[i]=0;
190  fHistDPhi1_2_EMCJet[i]=0;
191  fHistDPhi2_3_EMCJet[i]=0;
192  fHistDPhi3_4_EMCJet[i]=0;
193  fHistDPhi4_EMCJet[i]=0;
194 
195  //ME histos
196  fHistDPhiMix300_500_MB[i]=0;
197  fHistDPhiMix500_800_MB[i]=0;
198  fHistDPhiMix800_1_MB[i]=0;
199  fHistDPhiMix1_2_MB[i]=0;
200  fHistDPhiMix2_3_MB[i]=0;
201  fHistDPhiMix3_4_MB[i]=0;
202  fHistDPhiMix4_MB[i]=0;
203 
204  fHistDPhiMix300_500_EMC7[i]=0;
205  fHistDPhiMix500_800_EMC7[i]=0;
206  fHistDPhiMix800_1_EMC7[i]=0;
207  fHistDPhiMix1_2_EMC7[i]=0;
208  fHistDPhiMix2_3_EMC7[i]=0;
209  fHistDPhiMix3_4_EMC7[i]=0;
210  fHistDPhiMix4_EMC7[i]=0;
211 
212  fHistDPhiMix300_500_EMCJet[i]=0;
213  fHistDPhiMix500_800_EMCJet[i]=0;
214  fHistDPhiMix800_1_EMCJet[i]=0;
215  fHistDPhiMix1_2_EMCJet[i]=0;
216  fHistDPhiMix2_3_EMCJet[i]=0;
217  fHistDPhiMix3_4_EMCJet[i]=0;
218  fHistDPhiMix4_EMCJet[i]=0;
219  }
220 
221  //Init PID Plots here since they are stored in Arrays
222  for(int i=0;i<6;i++){
223  //MB Plots
224  fHistTPC_EMCTRD_MB[i]=0;
225 
226  fHistEMC_TPCTRD_MB[i]=0;
227 
228  fHistTRD_TPCEMC_MB[i]=0;
229 
230  //EMC7 Plots
231  fHistTPC_EMCTRD_EMC7[i]=0;
232 
233  fHistEMC_TPCTRD_EMC7[i]=0;
234 
235  fHistTRD_TPCEMC_EMC7[i]=0;
236 
237  //EMCJet Plots
238  fHistTPC_EMCTRD_EMCJet[i]=0;
239 
240  fHistEMC_TPCTRD_EMCJet[i]=0;
241 
242  fHistTRD_TPCEMC_EMCJet[i]=0;
243 
244  fHistM02_All_MB[i]=0;
245  fHistM02_Elec_MB[i]=0;
246  fHistM20_All_MB[i]=0;
247  fHistM20_Elec_MB[i]=0;
248 
249  fHistM02_All_EMC7[i]=0;
250  fHistM02_Elec_EMC7[i]=0;
251  fHistM20_All_EMC7[i]=0;
252  fHistM20_Elec_EMC7[i]=0;
253 
254  fHistM02_All_EMCJet[i]=0;
255  fHistM02_Elec_EMCJet[i]=0;
256  fHistM20_All_EMCJet[i]=0;
257  fHistM20_Elec_EMCJet[i]=0;
258  }
259 
260  // Dummy constructor ALWAYS needed for I/O.
261 }
262 
263 //________________________________________________________________________
264 AliAnalysisTaskPSHFE::AliAnalysisTaskPSHFE(const char *name) // All data members should be initialised here
265  :AliAnalysisTaskSE(name),
266  fOutputMB(0),
267  fOutputEMC7(0),
268  fOutputEMCJet(0),
269  fTrackCutsStrong(0),
270  fTrackCutsWeak(0),
271  globaltrackCuts(0),
272  comptrackCuts(0),
273  fPoolMan(0),
274  fPool(0),
275  aodEv(0),
276  trkArr(0),
277  EMC7trg(0),
278  EMCJettrg(0),
279  MBtrg(0),
280  tagStrong(0),
281  tagPhot(0),
282 
283  fHistPIDRejection(0),
284  fHistNElecPerEvent(0),
285 
286  fHistTPCNClus_MB(0),
287  fHistITSNClus_MB(0),
288  fHistTPCSig_MB(0),
289  fHistTPCSigCut_MB(0),
290  fHistImpPar_MB(0),
291  fHistImpParTag_MB(0),
292  fHistNevents_MB(0),
293  fHistPtSum_MB(0),
294  fHistPtSumTag_MB(0),
295  fHistPtSumEMC_MB(0),
296  fHistEtaPhi_MB(0),
297  fHistEtaPhiTag_MB(0),
298  fHistEtaPhiTPCOnly_MB(0),
299  fHistDPhi28_MB(0),
300  fHistDPhiDEta28_MB(0),
301  fHistDPhiMix28_MB(0),
302  fHistDPhiDEtaMix28_MB(0),
303  fHistEMC_Had_MB_1Gev(0),
304  fHistInvMassElecLike_MB(0),
305  fHistInvMassElecUnLike_MB(0),
306  fHistOpAngElecLike_MB(0),
307  fHistOpAngElecUnLike_MB(0),
308  fHistPtAssoc_MB(0),
309  fHistPtAssocMix_MB(0),
310  fHistPtTag_MB(0),
311  fHistPhotoMismatch_MB(0),
312  fHistDPhi18Spe_MB(0),
313 
314  fHistTPCNClus_EMC7(0),
315  fHistITSNClus_EMC7(0),
316  fHistTPCSig_EMC7(0),
317  fHistTPCSigCut_EMC7(0),
318  fHistImpPar_EMC7(0),
319  fHistImpParTag_EMC7(0),
320  fHistNevents_EMC7(0),
321  fHistPtSum_EMC7(0),
322  fHistPtSumTag_EMC7(0),
323  fHistPtSumEMC_EMC7(0),
324  fHistEtaPhi_EMC7(0),
325  fHistEtaPhiTag_EMC7(0),
326  fHistDPhi28_EMC7(0),
327  fHistDPhiDEta28_EMC7(0),
328  fHistDPhiMix28_EMC7(0),
329  fHistDPhiDEtaMix28_EMC7(0),
330  fHistInvMassElecLike_EMC7(0),
331  fHistInvMassElecUnLike_EMC7(0),
332  fHistOpAngElecLike_EMC7(0),
333  fHistOpAngElecUnLike_EMC7(0),
334  fHistPtAssoc_EMC7(0),
335  fHistPtAssocMix_EMC7(0),
336  fHistPtTag_EMC7(0),
337  fHistPhotoMismatch_EMC7(0),
338  fHistDPhi18Spe_EMC7(0),
339 
340  fHistTPCNClus_EMCJet(0),
341  fHistITSNClus_EMCJet(0),
342  fHistTPCSig_EMCJet(0),
343  fHistTPCSigCut_EMCJet(0),
344  fHistImpPar_EMCJet(0),
345  fHistImpParTag_EMCJet(0),
346  fHistNevents_EMCJet(0),
347  fHistPtSum_EMCJet(0),
348  fHistPtSumTag_EMCJet(0),
349  fHistPtSumEMC_EMCJet(0),
350  fHistEtaPhi_EMCJet(0),
351  fHistEtaPhiTag_EMCJet(0),
352  fHistDPhi28_EMCJet(0),
353  fHistDPhiDEta28_EMCJet(0),
354  fHistDPhiMix28_EMCJet(0),
355  fHistDPhiDEtaMix28_EMCJet(0),
356  fHistInvMassElecLike_EMCJet(0),
357  fHistInvMassElecUnLike_EMCJet(0),
358  fHistOpAngElecLike_EMCJet(0),
359  fHistOpAngElecUnLike_EMCJet(0),
360  fHistPtAssoc_EMCJet(0),
361  fHistPtAssocMix_EMCJet(0),
362  fHistPtTag_EMCJet(0),
363  fHistPhotoMismatch_EMCJet(0),
364  fHistDPhi18Spe_EMCJet(0)
365 
366  // The last in the above list should not have a comma after it
367 {
368  // Constructor
369  // Define input and output slots here (never in the dummy constructor)
370  // Input slot #0 works with a TChain - it is connected to the default input container
371  // Output slot #1 writes into a TH1 container
372 
373  for(Int_t i=0; i<3; i++){
374  fHistDPhi300_500_MB[i]=0;
375  fHistDPhi500_800_MB[i]=0;
376  fHistDPhi800_1_MB[i]=0;
377  fHistDPhi1_2_MB[i]=0;
378  fHistDPhi2_3_MB[i]=0;
379  fHistDPhi3_4_MB[i]=0;
380  fHistDPhi4_MB[i]=0;
381 
384  fHistDPhi800_1_EMC7[i]=0;
385  fHistDPhi1_2_EMC7[i]=0;
386  fHistDPhi2_3_EMC7[i]=0;
387  fHistDPhi3_4_EMC7[i]=0;
388  fHistDPhi4_EMC7[i]=0;
389 
393  fHistDPhi1_2_EMCJet[i]=0;
394  fHistDPhi2_3_EMCJet[i]=0;
395  fHistDPhi3_4_EMCJet[i]=0;
396  fHistDPhi4_EMCJet[i]=0;
397 
398  //ME histos
402  fHistDPhiMix1_2_MB[i]=0;
403  fHistDPhiMix2_3_MB[i]=0;
404  fHistDPhiMix3_4_MB[i]=0;
405  fHistDPhiMix4_MB[i]=0;
406 
413  fHistDPhiMix4_EMC7[i]=0;
414 
422  }
423 
424  //Init PID Plots here since they are stored in Arrays
425  for(Int_t i=0;i<6;i++){
426  //MB Plots
427  fHistTPC_EMCTRD_MB[i]=0;
428 
429  fHistEMC_TPCTRD_MB[i]=0;
430 
431  fHistTRD_TPCEMC_MB[i]=0;
432 
433  //EMC7 Plots
435 
437 
439 
440  //EMCJet Plots
442 
444 
446 
447  fHistM02_All_MB[i]=0;
448  fHistM02_Elec_MB[i]=0;
449  fHistM20_All_MB[i]=0;
450  fHistM20_Elec_MB[i]=0;
451 
452  fHistM02_All_EMC7[i]=0;
453  fHistM02_Elec_EMC7[i]=0;
454  fHistM20_All_EMC7[i]=0;
455  fHistM20_Elec_EMC7[i]=0;
456 
457  fHistM02_All_EMCJet[i]=0;
459  fHistM20_All_EMCJet[i]=0;
461  }
462 
463 
464  DefineOutput(1, TList::Class());//MB
465  DefineOutput(2, TList::Class());//EMC7
466  DefineOutput(3, TList::Class());//EMCJet
467 }
468 
469 //________________________________________________________________________
471 {
472  // Destructor. Clean-up the output list, but not the histograms that are put inside
473  // (the list is owner and will clean-up these histograms). Protect in PROOF case.
474  for(Int_t i=0;i<3;i++){
475  delete fHistDPhi300_500_MB[i];
476  delete fHistDPhi500_800_MB[i];
477  delete fHistDPhi800_1_MB[i];
478  delete fHistDPhi1_2_MB[i];
479  delete fHistDPhi2_3_MB[i];
480  delete fHistDPhi3_4_MB[i];
481  delete fHistDPhi4_MB[i];
482 
483  delete fHistDPhi300_500_EMC7[i];
484  delete fHistDPhi500_800_EMC7[i];
485  delete fHistDPhi800_1_EMC7[i];
486  delete fHistDPhi1_2_EMC7[i];
487  delete fHistDPhi2_3_EMC7[i];
488  delete fHistDPhi3_4_EMC7[i];
489  delete fHistDPhi4_EMC7[i];
490 
491  delete fHistDPhi300_500_EMCJet[i];
492  delete fHistDPhi500_800_EMCJet[i];
493  delete fHistDPhi800_1_EMCJet[i];
494  delete fHistDPhi1_2_EMCJet[i];
495  delete fHistDPhi2_3_EMCJet[i];
496  delete fHistDPhi3_4_EMCJet[i];
497  delete fHistDPhi4_EMCJet[i];
498 
499  //ME histos
500  delete fHistDPhiMix300_500_MB[i];
501  delete fHistDPhiMix500_800_MB[i];
502  delete fHistDPhiMix800_1_MB[i];
503  delete fHistDPhiMix1_2_MB[i];
504  delete fHistDPhiMix2_3_MB[i];
505  delete fHistDPhiMix3_4_MB[i];
506  delete fHistDPhiMix4_MB[i];
507 
508  delete fHistDPhiMix300_500_EMC7[i];
509  delete fHistDPhiMix500_800_EMC7[i];
510  delete fHistDPhiMix800_1_EMC7[i];
511  delete fHistDPhiMix1_2_EMC7[i];
512  delete fHistDPhiMix2_3_EMC7[i];
513  delete fHistDPhiMix3_4_EMC7[i];
514  delete fHistDPhiMix4_EMC7[i];
515 
516  delete fHistDPhiMix300_500_EMCJet[i];
517  delete fHistDPhiMix500_800_EMCJet[i];
518  delete fHistDPhiMix800_1_EMCJet[i];
519  delete fHistDPhiMix1_2_EMCJet[i];
520  delete fHistDPhiMix2_3_EMCJet[i];
521  delete fHistDPhiMix3_4_EMCJet[i];
522  delete fHistDPhiMix4_EMCJet[i];
523  }
524 
525  //Init PID Plots here since they are stored in Arrays
526  for(Int_t i=0;i<6;i++){
527  //MB Plots
528  delete fHistTPC_EMCTRD_MB[i];
529 
530  delete fHistEMC_TPCTRD_MB[i];
531 
532  delete fHistTRD_TPCEMC_MB[i];
533 
534  //EMC7 Plots
535  delete fHistTPC_EMCTRD_EMC7[i];
536 
537  delete fHistEMC_TPCTRD_EMC7[i];
538 
539  delete fHistTRD_TPCEMC_EMC7[i];
540 
541  //EMCJet Plots
542  delete fHistTPC_EMCTRD_EMCJet[i];
543 
544  delete fHistEMC_TPCTRD_EMCJet[i];
545 
546  delete fHistTRD_TPCEMC_EMCJet[i];
547 
548  delete fHistM02_All_MB[i];
549  delete fHistM02_Elec_MB[i];
550  delete fHistM20_All_MB[i];
551  delete fHistM20_Elec_MB[i];
552 
553  delete fHistM02_All_EMC7[i];
554  delete fHistM02_Elec_EMC7[i];
555  delete fHistM20_All_EMC7[i];
556  delete fHistM20_Elec_EMC7[i];
557 
558  delete fHistM02_All_EMCJet[i];
559  delete fHistM02_Elec_EMCJet[i];
560  delete fHistM20_All_EMCJet[i];
561  delete fHistM20_Elec_EMCJet[i];
562  }
563 
564  delete fTrackCutsStrong;
565  delete fTrackCutsWeak;
566 }
567 
568 //________________________________________________________________________
570  // Create histograms
571  // Called once (on the worker node)
572 
573  fOutputMB = new TList();
574  OpenFile(1);
575  fOutputMB->SetOwner(); // IMPORTANT!
576  fOutputEMC7 = new TList();
577  OpenFile(2);
578  fOutputEMC7->SetOwner(); // IMPORTANT!
579  fOutputEMCJet = new TList();
580  OpenFile(3);
581  fOutputEMCJet->SetOwner(); // IMPORTANT!
582 
583  //Initialize event pool stuff
584  Double_t vertexBins[5] = { -10, -4, 0, 4, 10 };
585  Int_t nZvtxBins = 4;
586  Double_t multBins[4] = {0, 200, 500, 1000};
587  Int_t nMultBins = 3;
588 
589  fPoolMan = new AliEventPoolManager(50, 50, nMultBins, multBins, nZvtxBins, vertexBins);
590  fPoolMan->Validate();
591 
592  //Some strings for histograms
593  TString ptRangesDPhi[3] = {"1-2Gev", "2-4Gev", "4-8Gev"};
594  TString ptRangesPID[6] = {"1-2GeV", "2-3GeV", "3-4GeV", "4-5GeV", "5-6GeV", ">6GeV"};
595  TString ptRangesRegion[4] = {"1-2Gev", "2-4Gev", "4-6Gev", ">6Gev"};
596 
597  //Strong cuts for heavy flavour
598  fTrackCutsStrong = new AliESDtrackCuts();
599  // TPC
600  fTrackCutsStrong->SetRequireTPCRefit(kTRUE);
601  // ITS
602  fTrackCutsStrong->SetRequireITSRefit(kTRUE);
603  // 7*(0.0026+0.0050/pt^1.01)
604  fTrackCutsStrong->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
605  fTrackCutsStrong->SetMaxDCAToVertexZ(2);
606  fTrackCutsStrong->SetDCAToVertex2D(kFALSE);
607  fTrackCutsStrong->SetRequireSigmaToVertex(kFALSE);
608  fTrackCutsStrong->SetMaxChi2PerClusterITS(36);
609  fTrackCutsStrong->SetMinNClustersTPC(120);
610  fTrackCutsStrong->SetMinNClustersITS(4);
611  fTrackCutsStrong->SetPtRange(1,10e10);
612  fTrackCutsStrong->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kBoth);
613  fTrackCutsStrong->SetMaxChi2PerClusterTPC(2);
614  fTrackCutsStrong->SetMaxDCAToVertexXY(1);
615  fTrackCutsStrong->SetMaxDCAToVertexZ(2);
616  fTrackCutsStrong->SetEtaRange(-.6, .6);
617  fTrackCutsStrong->SetAcceptKinkDaughters(kFALSE);
618 
619  //Weak cuts for heavy flavour
620  fTrackCutsWeak = new AliESDtrackCuts();
621  // TPC
622  fTrackCutsWeak->SetRequireTPCRefit(kTRUE);
623  // ITS
624  fTrackCutsWeak->SetRequireITSRefit(kTRUE);
625  // 7*(0.0026+0.0050/pt^1.01)
626  fTrackCutsWeak->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
627  fTrackCutsWeak->SetMaxDCAToVertexZ(2);
628  fTrackCutsWeak->SetDCAToVertex2D(kFALSE);
629  fTrackCutsWeak->SetRequireSigmaToVertex(kFALSE);
630  fTrackCutsWeak->SetMaxChi2PerClusterITS(36);
631  fTrackCutsWeak->SetMinNClustersTPC(80);
632  fTrackCutsWeak->SetMinNClustersITS(3);
633  fTrackCutsWeak->SetPtRange(1,10e10);
634  fTrackCutsWeak->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kBoth);
635  fTrackCutsWeak->SetMaxChi2PerClusterTPC(4);
636  //fTrackCutsWeak->SetMaxDCAToVertexXY(2);
637  //fTrackCutsWeak->SetMaxDCAToVertexZ(3);
638  fTrackCutsWeak->SetEtaRange(-.7, .7);
639  fTrackCutsWeak->SetAcceptKinkDaughters(kFALSE);
640 
641  // Create histograms
642 
643  //Photonic e mismatch histo
644 
645  fHistPhotoMismatch_MB = new TH1F("fHistPhotoMismatch_MB", "Electrons identified as 'heavy flavour' that fall in photonic invariant mass and opening angle cuts", 2, 0, 1);
646  fHistPhotoMismatch_MB->GetXaxis()->SetTitle("Electrons");
647  fHistPhotoMismatch_MB->GetYaxis()->SetTitle("Cts");
648 
649  fHistPhotoMismatch_EMC7 = new TH1F("fHistPhotoMismatch_EMC7", "Electrons identified as 'heavy flavour' that fall in photonic invariant mass and opening angle cuts", 2, 0, 1);
650  fHistPhotoMismatch_EMC7->GetXaxis()->SetTitle("Electrons");
651  fHistPhotoMismatch_EMC7->GetYaxis()->SetTitle("Cts");
652 
653  fHistPhotoMismatch_EMCJet = new TH1F("fHistPhotoMismatch_EMCJet", "Electrons identified as 'heavy flavour' that fall in photonic invariant mass and opening angle cuts", 2, 0, 1);
654  fHistPhotoMismatch_EMCJet->GetXaxis()->SetTitle("Electrons");
655  fHistPhotoMismatch_EMCJet->GetYaxis()->SetTitle("Cts");
656 
657  //Invariant mass histos
658 
659  fHistInvMassElecLike_MB = new TH1F("fHistInvMassElecLike_MB", "Invariant mass for all like-signed electron pairs", 100, 0, .5);
660  fHistInvMassElecLike_MB->GetXaxis()->SetTitle("Invariant Mass(Gev/c^2)");
661  fHistInvMassElecLike_MB->GetYaxis()->SetTitle("Cts");
662 
663  fHistInvMassElecLike_EMC7 = new TH1F("fHistInvMassElecLike_EMC7", "Invariant mass for all like-signed electron pairs", 100, 0, .5);
664  fHistInvMassElecLike_EMC7->GetXaxis()->SetTitle("Invariant Mass(Gev/c^2)");
665  fHistInvMassElecLike_EMC7->GetYaxis()->SetTitle("Cts");
666 
667  fHistInvMassElecLike_EMCJet = new TH1F("fHistInvMassElecLike_EMCJet", "Invariant mass for all like-signed electron pairs", 100, 0, .5);
668  fHistInvMassElecLike_EMCJet->GetXaxis()->SetTitle("Invariant Mass(Gev/c^2)");
669  fHistInvMassElecLike_EMCJet->GetYaxis()->SetTitle("Cts");
670 
671  fHistInvMassElecUnLike_MB = new TH1F("fHistInvMassElecUnLike_MB", "Invariant mass for all unlike-signed electron pairs", 100, 0, .5);
672  fHistInvMassElecUnLike_MB->GetXaxis()->SetTitle("Invariant Mass(Gev/c^2)");
673  fHistInvMassElecUnLike_MB->GetYaxis()->SetTitle("Cts");
674 
675  fHistInvMassElecUnLike_EMC7 = new TH1F("fHistInvMassElecUnLike_EMC7", "Invariant mass for all unlike-signed electron pairs", 100, 0, .5);
676  fHistInvMassElecUnLike_EMC7->GetXaxis()->SetTitle("Invariant Mass(Gev/c^2)");
677  fHistInvMassElecUnLike_EMC7->GetYaxis()->SetTitle("Cts");
678 
679  fHistInvMassElecUnLike_EMCJet = new TH1F("fHistInvMassElecUnLike_EMCJet", "Invariant mass for all unlike-signed electron pairs", 100, 0, .5);
680  fHistInvMassElecUnLike_EMCJet->GetXaxis()->SetTitle("Invariant Mass(Gev/c^2)");
681  fHistInvMassElecUnLike_EMCJet->GetYaxis()->SetTitle("Cts");
682 
683  //Opening Angle Histos
684 
685  fHistOpAngElecLike_MB = new TH1F("fHistOpAngElecLike_MB", "Opening angle for all like-signed electron pairs", 100, 0, TMath::Pi());
686  fHistOpAngElecLike_MB->GetXaxis()->SetTitle("Opening Angle(rad)");
687  fHistOpAngElecLike_MB->GetYaxis()->SetTitle("Cts");
688 
689  fHistOpAngElecLike_EMC7 = new TH1F("fHistOpAngElecLike_EMC7", "Opening angle for all like-signed electron pairs", 100, 0, TMath::Pi());
690  fHistOpAngElecLike_EMC7->GetXaxis()->SetTitle("Opening Angle(rad)");
691  fHistOpAngElecLike_EMC7->GetYaxis()->SetTitle("Cts");
692 
693  fHistOpAngElecLike_EMCJet = new TH1F("fHistOpAngElecLike_EMCJet", "Opening angle for all like-signed electron pairs", 100, 0, TMath::Pi());
694  fHistOpAngElecLike_EMCJet->GetXaxis()->SetTitle("Opening Angle(rad)");
695  fHistOpAngElecLike_EMCJet->GetYaxis()->SetTitle("Cts");
696 
697  fHistOpAngElecUnLike_MB = new TH1F("fHistOpAngElecUnLike_MB", "Opening angle for all unlike-signed electron pairs", 100, 0, TMath::Pi());
698  fHistOpAngElecUnLike_MB->GetXaxis()->SetTitle("Opening Angle(rad)");
699  fHistOpAngElecUnLike_MB->GetYaxis()->SetTitle("Cts");
700 
701  fHistOpAngElecUnLike_EMC7 = new TH1F("fHistOpAngElecUnLike_EMC7", "Opening angle for all unlike-signed electron pairs", 100, 0, TMath::Pi());
702  fHistOpAngElecUnLike_EMC7->GetXaxis()->SetTitle("Opening Angle(rad)");
703  fHistOpAngElecUnLike_EMC7->GetYaxis()->SetTitle("Cts");
704 
705  fHistOpAngElecUnLike_EMCJet = new TH1F("fHistOpAngElecUnLike_EMCJet", "Opening angle for all unlike-signed electron pairs", 100, 0, TMath::Pi());
706  fHistOpAngElecUnLike_EMCJet->GetXaxis()->SetTitle("Opening Angle(rad)");
707  fHistOpAngElecUnLike_EMCJet->GetYaxis()->SetTitle("Cts");
708 
709  //Rejection Histos
710 
711  fHistPIDRejection = new TH1F("fHistPIDRejection", "PID rejection counts for each detector.", 4, 1, 4);
712  fHistPIDRejection->GetXaxis()->SetTitle("Detector");
713  fHistPIDRejection->GetYaxis()->SetTitle("Cts");
714  fHistPIDRejection->GetXaxis()->SetBinLabel(1, "TPC");
715  fHistPIDRejection->GetXaxis()->SetBinLabel(2, "TOF");
716  fHistPIDRejection->GetXaxis()->SetBinLabel(3, "TRD");
717  fHistPIDRejection->GetXaxis()->SetBinLabel(4, "EMC");
718 
719  //Number of electrons per event histo
720  fHistNElecPerEvent = new TH1F("fHistNElecPerEvent", "Number of tagged electrons per event", 5, 1, 5);
721  fHistNElecPerEvent->GetXaxis()->SetTitle("Num. of Electrons");
722  fHistNElecPerEvent->GetYaxis()->SetTitle("Cts");
723 
724  //PID Plots
725 
726  //TPC PID Plots
727  for(Int_t i=0; i<6; i++){
728  //MB
729  fHistTPC_EMCTRD_MB[i] = new TH2F(TString::Format("fHistTPC_EMCTRD_MB_%s",ptRangesPID[i].Data()), TString::Format("TPC nSigma for tracks with Pt between %s after EMC and TRD cuts",ptRangesPID[i].Data()), 100, 0, 10, 800, -10, 10);
730  fHistTPC_EMCTRD_MB[i]->GetXaxis()->SetTitle("Pt");
731  fHistTPC_EMCTRD_MB[i]->GetYaxis()->SetTitle("nSigma");
732 
733  //EMC7
734  fHistTPC_EMCTRD_EMC7[i] = new TH2F(TString::Format("fHistTPC_EMCTRD_EMC7_%s",ptRangesPID[i].Data()), TString::Format("TPC nSigma for tracks with Pt between %s after EMC and TRD cuts",ptRangesPID[i].Data()), 100, 0, 10, 800, -10, 10);
735  fHistTPC_EMCTRD_EMC7[i]->GetXaxis()->SetTitle("Pt");
736  fHistTPC_EMCTRD_EMC7[i]->GetYaxis()->SetTitle("nSigma");
737 
738  //EMCJet
739  fHistTPC_EMCTRD_EMCJet[i] = new TH2F(TString::Format("fHistTPC_EMCTRD_EMCJet_%s",ptRangesPID[i].Data()), TString::Format("TPC nSigma for tracks with Pt between %s after EMC and TRD cuts",ptRangesPID[i].Data()), 100, 0, 10, 800, -10, 10);
740  fHistTPC_EMCTRD_EMCJet[i]->GetXaxis()->SetTitle("Pt");
741  fHistTPC_EMCTRD_EMCJet[i]->GetYaxis()->SetTitle("nSigma");
742  }
743 
744  //EMC PID Plots
745  for(Int_t i=0; i<6; i++){
746  //MB
747  fHistEMC_TPCTRD_MB[i] = new TH1F(TString::Format("fHistEMC_TPCTRD_MB_%s",ptRangesPID[i].Data()), TString::Format("E/p for tracks with Pt between %s after TPC and TRD cuts",ptRangesPID[i].Data()), 100, 0, 1.5);
748  fHistEMC_TPCTRD_MB[i]->GetXaxis()->SetTitle("E/p");
749  fHistEMC_TPCTRD_MB[i]->GetYaxis()->SetTitle("Cts");
750 
751  //EMC7
752  fHistEMC_TPCTRD_EMC7[i] = new TH1F(TString::Format("fHistEMC_TPCTRD_EMC7_%s",ptRangesPID[i].Data()), TString::Format("E/p for tracks with Pt between %s after TPC and TRD cuts",ptRangesPID[i].Data()), 100, 0, 1.5);
753  fHistEMC_TPCTRD_EMC7[i]->GetXaxis()->SetTitle("E/p");
754  fHistEMC_TPCTRD_EMC7[i]->GetYaxis()->SetTitle("Cts");
755 
756  //EMCJet
757  fHistEMC_TPCTRD_EMCJet[i] = new TH1F(TString::Format("fHistEMC_TPCTRD_EMCJet_%s",ptRangesPID[i].Data()), TString::Format("E/p for tracks with Pt between %s after EMC and TRD cuts",ptRangesPID[i].Data()), 100, 0, 1.5);
758  fHistEMC_TPCTRD_EMCJet[i]->GetXaxis()->SetTitle("E/p");
759  fHistEMC_TPCTRD_EMCJet[i]->GetYaxis()->SetTitle("Cts");
760  }
761 
762  //TRD PID Plots
763  for(Int_t i=0; i<6; i++){
764  //MB
765  fHistTRD_TPCEMC_MB[i] = new TH2F(TString::Format("fHistTRD_TPCEMC_MB_%s",ptRangesPID[i].Data()), TString::Format("TRD electron Likelihood for tracks with Pt between %s after TPC and EMC cuts",ptRangesPID[i].Data()), 100, 0, 10, 800, 0, 1);
766  fHistTRD_TPCEMC_MB[i]->GetXaxis()->SetTitle("Pt");
767  fHistTRD_TPCEMC_MB[i]->GetYaxis()->SetTitle("electron Likelihood");
768 
769  //EMC7
770  fHistTRD_TPCEMC_EMC7[i] = new TH2F(TString::Format("fHistTRD_TPCEMC_EMC7_%s",ptRangesPID[i].Data()), TString::Format("TRD electron Likelihood for tracks with Pt between %s after TPC and EMC cuts",ptRangesPID[i].Data()), 100, 0, 10, 800, 0, 1);
771  fHistTRD_TPCEMC_EMC7[i]->GetXaxis()->SetTitle("Pt");
772  fHistTRD_TPCEMC_EMC7[i]->GetYaxis()->SetTitle("electron Likelihood");
773 
774  //EMCJet
775  fHistTRD_TPCEMC_EMCJet[i] = new TH2F(TString::Format("fHistTRD_TPCEMC_EMCJet_%s",ptRangesPID[i].Data()), TString::Format("TRD electron Likelihood for tracks with Pt between %s after EMC and EMC cuts",ptRangesPID[i].Data()), 100, 0, 10, 800, 0, 1);
776  fHistTRD_TPCEMC_EMCJet[i]->GetXaxis()->SetTitle("Pt");
777  fHistTRD_TPCEMC_EMCJet[i]->GetYaxis()->SetTitle("electron Likelihood");
778  }
779 
780  //EMC Shower Shape PID Plots
781  for(Int_t i=0; i<6; i++){
782  //MB
783  fHistM02_All_MB[i] = new TH2F(TString::Format("fHistM02_All_MB_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M02(semi-major axis) for tracks with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
784  fHistM02_All_MB[i]->GetXaxis()->SetTitle("M02");
785  fHistM02_All_MB[i]->GetYaxis()->SetTitle("E/p");
786 
787  fHistM20_All_MB[i] = new TH2F(TString::Format("fHistM20_All_MB_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M20(semi-minor axis) for tracks with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
788  fHistM20_All_MB[i]->GetXaxis()->SetTitle("M20");
789  fHistM20_All_MB[i]->GetYaxis()->SetTitle("E/p");
790 
791  fHistM02_Elec_MB[i] = new TH2F(TString::Format("fHistM02_Elec_MB_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M02(semi-major axis) for electron candidates with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
792  fHistM02_Elec_MB[i]->GetXaxis()->SetTitle("M02");
793  fHistM02_Elec_MB[i]->GetYaxis()->SetTitle("E/p");
794 
795  fHistM20_Elec_MB[i] = new TH2F(TString::Format("fHistM20_Elec_MB_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M20(semi-minor axis) for electron candidates with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
796  fHistM20_Elec_MB[i]->GetXaxis()->SetTitle("M20");
797  fHistM20_Elec_MB[i]->GetYaxis()->SetTitle("E/p");
798 
799  //EMC7
800  fHistM02_All_EMC7[i] = new TH2F(TString::Format("fHistM02_All_EMC7_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M02(semi-major axis) for tracks with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
801  fHistM02_All_EMC7[i]->GetXaxis()->SetTitle("M02");
802  fHistM02_All_EMC7[i]->GetYaxis()->SetTitle("E/p");
803 
804  fHistM20_All_EMC7[i] = new TH2F(TString::Format("fHistM20_All_EMC7_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M20(semi-minor axis) for tracks with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
805  fHistM20_All_EMC7[i]->GetXaxis()->SetTitle("M20");
806  fHistM20_All_EMC7[i]->GetYaxis()->SetTitle("E/p");
807 
808  fHistM02_Elec_EMC7[i] = new TH2F(TString::Format("fHistM02_Elec_EMC7_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M02(semi-major axis) for electron candidates with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
809  fHistM02_Elec_EMC7[i]->GetXaxis()->SetTitle("M02");
810  fHistM02_Elec_EMC7[i]->GetYaxis()->SetTitle("E/p");
811 
812  fHistM20_Elec_EMC7[i] = new TH2F(TString::Format("fHistM20_Elec_EMC7_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M20(semi-minor axis) for electron candidates with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
813  fHistM20_Elec_EMC7[i]->GetXaxis()->SetTitle("M20");
814  fHistM20_Elec_EMC7[i]->GetYaxis()->SetTitle("E/p");
815 
816  //EMCJet
817  fHistM02_All_EMCJet[i] = new TH2F(TString::Format("fHistM02_All_EMCJet_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M02(semi-major axis) for tracks with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
818  fHistM02_All_EMCJet[i]->GetXaxis()->SetTitle("M02");
819  fHistM02_All_EMCJet[i]->GetYaxis()->SetTitle("E/p");
820 
821  fHistM20_All_EMCJet[i] = new TH2F(TString::Format("fHistM20_All_EMCJet_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M20(semi-minor axis) for tracks with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
822  fHistM20_All_EMCJet[i]->GetXaxis()->SetTitle("M20");
823  fHistM20_All_EMCJet[i]->GetYaxis()->SetTitle("E/p");
824 
825  fHistM02_Elec_EMCJet[i] = new TH2F(TString::Format("fHistM02_Elec_EMCJet_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M02(semi-major axis) for electron candidates with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
826  fHistM02_Elec_EMCJet[i]->GetXaxis()->SetTitle("M02");
827  fHistM02_Elec_EMCJet[i]->GetYaxis()->SetTitle("E/p");
828 
829  fHistM20_Elec_EMCJet[i] = new TH2F(TString::Format("fHistM20_Elec_EMCJet_%s",ptRangesPID[i].Data()), TString::Format("E/p vs M20(semi-minor axis) for electron candidates with Pt between %s",ptRangesPID[i].Data()), 100, 0, 1.5, 300, 0, 2);
830  fHistM20_Elec_EMCJet[i]->GetXaxis()->SetTitle("M20");
831  fHistM20_Elec_EMCJet[i]->GetYaxis()->SetTitle("E/p");
832  }
833 
834  //DPhi for candidate electrons 2-8 gev and assoc. particles >3gev
835  fHistDPhi28_MB = new TH1F("fHistDPhi28_MB", "Delta-Phi for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev", 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
836  fHistDPhi28_MB->GetXaxis()->SetTitle("Delta-Phi");
837  fHistDPhi28_MB->GetYaxis()->SetTitle("Cts");
838 
839  fHistDPhi28_EMC7 = new TH1F("fHistDPhi28_EMC7", "Delta-Phi for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev", 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
840  fHistDPhi28_EMC7->GetXaxis()->SetTitle("Delta-Phi");
841  fHistDPhi28_EMC7->GetYaxis()->SetTitle("Cts");
842 
843  fHistDPhi28_EMCJet = new TH1F("fHistDPhi28_EMCJet", "Delta-Phi for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev", 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
844  fHistDPhi28_EMCJet->GetXaxis()->SetTitle("Delta-Phi");
845  fHistDPhi28_EMCJet->GetYaxis()->SetTitle("Cts");
846 
847  //DPhi by Eta for triggered particles 2-8 gev and assoc. particles >3gev
848  fHistDPhiDEta28_MB = new TH2F("fHistDPhiDEta28_MB", "Delta-Phi by Delta-Eta for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev", 100, -TMath::Pi()/2, 3*TMath::Pi()/2, 100, -0.9, 0.9);
849  fHistDPhiDEta28_MB->GetXaxis()->SetTitle("Delta-Phi");
850  fHistDPhiDEta28_MB->GetYaxis()->SetTitle("Delta-Eta");
851  fHistDPhiDEta28_MB->GetZaxis()->SetTitle("Cts");
852 
853  fHistDPhiDEta28_EMC7 = new TH2F("fHistDPhiDEta28_EMC7", "Delta-Phi by Delta-Eta for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev", 100, -TMath::Pi()/2, 3*TMath::Pi()/2, 100, -0.9, 0.9);
854  fHistDPhiDEta28_EMC7->GetXaxis()->SetTitle("Delta-Phi");
855  fHistDPhiDEta28_EMC7->GetYaxis()->SetTitle("Delta-Eta");
856  fHistDPhiDEta28_EMC7->GetZaxis()->SetTitle("Cts");
857 
858  fHistDPhiDEta28_EMCJet = new TH2F("fHistDPhiDEta28_EMCJet", "Delta-Phi by Delta-Eta for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev", 100, -TMath::Pi()/2, 3*TMath::Pi()/2, 100, -0.9, 0.9);
859  fHistDPhiDEta28_EMCJet->GetXaxis()->SetTitle("Delta-Phi");
860  fHistDPhiDEta28_EMCJet->GetYaxis()->SetTitle("Delta-Eta");
861  fHistDPhiDEta28_EMCJet->GetZaxis()->SetTitle("Cts");
862 
863  //DPhi for candidate electrons 2-8 gev and assoc. particles >2Gev for Mixed Events
864  fHistDPhiMix28_MB = new TH1F("fHistDPhiMix28_MB", "Delta-Phi for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev for Mixed Events", 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
865  fHistDPhiMix28_MB->GetXaxis()->SetTitle("Delta-Phi");
866  fHistDPhiMix28_MB->GetYaxis()->SetTitle("Cts");
867 
868  fHistDPhiMix28_EMC7 = new TH1F("fHistDPhiMix28_EMC7", "Delta-Phi for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev for Mixed Events", 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
869  fHistDPhiMix28_EMC7->GetXaxis()->SetTitle("Delta-Phi");
870  fHistDPhiMix28_EMC7->GetYaxis()->SetTitle("Cts");
871 
872  fHistDPhiMix28_EMCJet = new TH1F("fHistDPhiMix28_EMCJet", "Delta-Phi for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev for Mixed Events", 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
873  fHistDPhiMix28_EMCJet->GetXaxis()->SetTitle("Delta-Phi");
874  fHistDPhiMix28_EMCJet->GetYaxis()->SetTitle("Cts");
875 
876  //DPhi by Eta for triggered particles 2-8 gev and assoc. particles >3gev
877  fHistDPhiDEtaMix28_MB = new TH2F("fHistDPhiDEtaMix28_MB", "Delta-Phi by Delta-Eta for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev for Mixed Events", 100, -TMath::Pi()/2, 3*TMath::Pi()/2, 100, -0.9, 0.9);
878  fHistDPhiDEtaMix28_MB->GetXaxis()->SetTitle("Delta-Phi");
879  fHistDPhiDEtaMix28_MB->GetYaxis()->SetTitle("Delta-Eta");
880  fHistDPhiDEtaMix28_MB->GetZaxis()->SetTitle("Cts");
881 
882  fHistDPhiDEtaMix28_EMC7 = new TH2F("fHistDPhiDEtaMix28_EMC7", "Delta-Phi by Delta-Eta for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev for Mixed Events", 100, -TMath::Pi()/2, 3*TMath::Pi()/2, 100, -0.9, 0.9);
883  fHistDPhiDEtaMix28_EMC7->GetXaxis()->SetTitle("Delta-Phi");
884  fHistDPhiDEtaMix28_EMC7->GetYaxis()->SetTitle("Delta-Eta");
885  fHistDPhiDEtaMix28_EMC7->GetZaxis()->SetTitle("Cts");
886 
887  fHistDPhiDEtaMix28_EMCJet = new TH2F("fHistDPhiDEtaMix28_EMCJet", "Delta-Phi by Delta-Eta for candidate electrons with 2<pt<8Gev and assoc. with pt>2Gev for Mixed Events", 100, -TMath::Pi()/2, 3*TMath::Pi()/2, 100, -0.9, 0.9);
888  fHistDPhiDEtaMix28_EMCJet->GetXaxis()->SetTitle("Delta-Phi");
889  fHistDPhiDEtaMix28_EMCJet->GetYaxis()->SetTitle("Delta-Eta");
890  fHistDPhiDEtaMix28_EMCJet->GetZaxis()->SetTitle("Cts");
891 
892  //DPhi by dEdx for triggered particles 2-8 gev and assoc. particles >2gev
893  fHistDPhi18Spe_MB = new TH2F("fHistDPhi18Spe_MB", "Delta-Phi by most probable species for candidate electrons with 1<pt<8Gev and assoc. with pt>.3Gev", 100, -TMath::Pi()/2, 3*TMath::Pi()/2, 10, 0, 10);
894  fHistDPhi18Spe_MB->GetXaxis()->SetTitle("Delta-Phi");
895  fHistDPhi18Spe_MB->GetYaxis()->SetTitle("Species");
896  fHistDPhi18Spe_MB->GetYaxis()->SetBinLabel(0, "Unkown");
897  fHistDPhi18Spe_MB->GetYaxis()->SetBinLabel(1, "Electron");
898  fHistDPhi18Spe_MB->GetYaxis()->SetBinLabel(2, "Muon");
899  fHistDPhi18Spe_MB->GetYaxis()->SetBinLabel(3, "Pion");
900  fHistDPhi18Spe_MB->GetYaxis()->SetBinLabel(4, "Kaon");
901  fHistDPhi18Spe_MB->GetYaxis()->SetBinLabel(5, "Proton");
902  fHistDPhi18Spe_MB->GetYaxis()->SetBinLabel(6, "Deuteron");
903  fHistDPhi18Spe_MB->GetZaxis()->SetTitle("Cts");
904 
905  fHistDPhi18Spe_EMC7 = new TH2F("fHistDPhi18Spe_EMC7", "Delta-Phi by most probable species for candidate electrons with 1<pt<8Gev and assoc. with pt>.3Gev", 100, -TMath::Pi()/2, 3*TMath::Pi()/2, 10, 0, 10);
906  fHistDPhi18Spe_EMC7->GetXaxis()->SetTitle("Delta-Phi");
907  fHistDPhi18Spe_EMC7->GetYaxis()->SetTitle("Species");
908  fHistDPhi18Spe_EMC7->GetYaxis()->SetBinLabel(0, "Unkown");
909  fHistDPhi18Spe_EMC7->GetYaxis()->SetBinLabel(1, "Electron");
910  fHistDPhi18Spe_EMC7->GetYaxis()->SetBinLabel(2, "Muon");
911  fHistDPhi18Spe_EMC7->GetYaxis()->SetBinLabel(3, "Pion");
912  fHistDPhi18Spe_EMC7->GetYaxis()->SetBinLabel(4, "Kaon");
913  fHistDPhi18Spe_EMC7->GetYaxis()->SetBinLabel(5, "Proton");
914  fHistDPhi18Spe_EMC7->GetYaxis()->SetBinLabel(6, "Deuteron");
915  fHistDPhi18Spe_EMC7->GetZaxis()->SetTitle("Cts");
916 
917  fHistDPhi18Spe_EMCJet = new TH2F("fHistDPhi18Spe_EMCJet", "Delta-Phi by most probable species for candidate electrons with 1<pt<8Gev and assoc. with pt>.3Gev", 100, -TMath::Pi()/2, 3*TMath::Pi()/2, 10, 0, 10);
918  fHistDPhi18Spe_EMCJet->GetXaxis()->SetTitle("Delta-Phi");
919  fHistDPhi18Spe_EMCJet->GetYaxis()->SetTitle("Species");
920  fHistDPhi18Spe_EMCJet->GetYaxis()->SetBinLabel(0, "Unkown");
921  fHistDPhi18Spe_EMCJet->GetYaxis()->SetBinLabel(1, "Electron");
922  fHistDPhi18Spe_EMCJet->GetYaxis()->SetBinLabel(2, "Muon");
923  fHistDPhi18Spe_EMCJet->GetYaxis()->SetBinLabel(3, "Pion");
924  fHistDPhi18Spe_EMCJet->GetYaxis()->SetBinLabel(4, "Kaon");
925  fHistDPhi18Spe_EMCJet->GetYaxis()->SetBinLabel(5, "Proton");
926  fHistDPhi18Spe_EMCJet->GetYaxis()->SetBinLabel(6, "Deuteron");
927  fHistDPhi18Spe_EMCJet->GetZaxis()->SetTitle("Cts");
928 
929  // Delta Phi for tracks > 300MeV
930  for(Int_t i=0; i<3; i++){
931  fHistDPhi300_500_MB[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_.3-.5Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .3Gev<pt<.5Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
932  fHistDPhi300_500_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
933  fHistDPhi300_500_MB[i]->GetYaxis()->SetTitle("Cts");
934  }
935 
936  for(Int_t i=0; i<3; i++){
937  fHistDPhi300_500_EMC7[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_.3-.5Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .3Gev<pt<.5Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
938  fHistDPhi300_500_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
939  fHistDPhi300_500_EMC7[i]->GetYaxis()->SetTitle("Cts");
940  }
941 
942  for(Int_t i=0; i<3; i++){
943  fHistDPhi300_500_EMCJet[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_.3-.5Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .3Gev<pt<.5Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
944  fHistDPhi300_500_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
945  fHistDPhi300_500_EMCJet[i]->GetYaxis()->SetTitle("Cts");
946  }
947 
948  // Delta Phi for tracks > 500MeV
949  for(Int_t i=0; i<3; i++){
950  fHistDPhi500_800_MB[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_.5-.8Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .5Gev<pt<.8Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
951  fHistDPhi500_800_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
952  fHistDPhi500_800_MB[i]->GetYaxis()->SetTitle("Cts");
953  }
954 
955  for(Int_t i=0; i<3; i++){
956  fHistDPhi500_800_EMC7[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_.5-.8Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .5Gev<pt<.8Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
957  fHistDPhi500_800_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
958  fHistDPhi500_800_EMC7[i]->GetYaxis()->SetTitle("Cts");
959  }
960 
961  for(Int_t i=0; i<3; i++){
962  fHistDPhi500_800_EMCJet[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_.5-.8Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .5Gev<pt<.8Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
963  fHistDPhi500_800_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
964  fHistDPhi500_800_EMCJet[i]->GetYaxis()->SetTitle("Cts");
965  }
966 
967  // Delta Phi for tracks > 800MeV
968  for(Int_t i=0; i<3; i++){
969  fHistDPhi800_1_MB[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_.8-1Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .8Gev<pt<1Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
970  fHistDPhi800_1_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
971  fHistDPhi800_1_MB[i]->GetYaxis()->SetTitle("Cts");
972  }
973 
974  for(Int_t i=0; i<3; i++){
975  fHistDPhi800_1_EMC7[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_.8-1Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .8Gev<pt<1Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
976  fHistDPhi800_1_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
977  fHistDPhi800_1_EMC7[i]->GetYaxis()->SetTitle("Cts");
978  }
979 
980  for(Int_t i=0; i<3; i++){
981  fHistDPhi800_1_EMCJet[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_.8-1Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .8Gev<pt<1Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
982  fHistDPhi800_1_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
983  fHistDPhi800_1_EMCJet[i]->GetYaxis()->SetTitle("Cts");
984  }
985 
986  // Delta Phi for tracks > 1GeV
987  for(Int_t i=0; i<3; i++){
988  fHistDPhi1_2_MB[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_1-2Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 1Gev<pt<2Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
989  fHistDPhi1_2_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
990  fHistDPhi1_2_MB[i]->GetYaxis()->SetTitle("Cts");
991  }
992 
993  for(Int_t i=0; i<3; i++){
994  fHistDPhi1_2_EMC7[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_1-2Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 1Gev<pt<2Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
995  fHistDPhi1_2_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
996  fHistDPhi1_2_EMC7[i]->GetYaxis()->SetTitle("Cts");
997  }
998 
999  for(Int_t i=0; i<3; i++){
1000  fHistDPhi1_2_EMCJet[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_1-2Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 1Gev<pt<2Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1001  fHistDPhi1_2_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1002  fHistDPhi1_2_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1003  }
1004 
1005  // Delta Phi for tracks > 2GeV
1006  for(Int_t i=0; i<3; i++){
1007  fHistDPhi2_3_MB[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_2-3Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 2Gev<pt<3Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1008  fHistDPhi2_3_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
1009  fHistDPhi2_3_MB[i]->GetYaxis()->SetTitle("Cts");
1010  }
1011 
1012  for(Int_t i=0; i<3; i++){
1013  fHistDPhi2_3_EMC7[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_2-3Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 2Gev<pt<3Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1014  fHistDPhi2_3_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
1015  fHistDPhi2_3_EMC7[i]->GetYaxis()->SetTitle("Cts");
1016  }
1017 
1018  for(Int_t i=0; i<3; i++){
1019  fHistDPhi2_3_EMCJet[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_2-3Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 2Gev<pt<3Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1020  fHistDPhi2_3_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1021  fHistDPhi2_3_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1022  }
1023 
1024  // Delta Phi for tracks > 3GeV
1025  for(Int_t i=0; i<3; i++){
1026  fHistDPhi3_4_MB[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_3-4Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 3Gev<pt<4Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1027  fHistDPhi3_4_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
1028  fHistDPhi3_4_MB[i]->GetYaxis()->SetTitle("Cts");
1029  }
1030 
1031  for(Int_t i=0; i<3; i++){
1032  fHistDPhi3_4_EMC7[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_3-4Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 3Gev<pt<4Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1033  fHistDPhi3_4_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
1034  fHistDPhi3_4_EMC7[i]->GetYaxis()->SetTitle("Cts");
1035  }
1036 
1037  for(Int_t i=0; i<3; i++){
1038  fHistDPhi3_4_EMCJet[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_3-4Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 3Gev<pt<4Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1039  fHistDPhi3_4_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1040  fHistDPhi3_4_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1041  }
1042 
1043  // Delta Phi for tracks > 5GeV
1044  for(Int_t i=0; i<3; i++){
1045  fHistDPhi4_MB[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_4Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated pt>4Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1046  fHistDPhi4_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
1047  fHistDPhi4_MB[i]->GetYaxis()->SetTitle("Cts");
1048  }
1049 
1050  for(Int_t i=0; i<3; i++){
1051  fHistDPhi4_EMC7[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_4Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated pt>4Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1052  fHistDPhi4_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
1053  fHistDPhi4_EMC7[i]->GetYaxis()->SetTitle("Cts");
1054  }
1055 
1056  for(Int_t i=0; i<3; i++){
1057  fHistDPhi4_EMCJet[i] = new TH1F(TString::Format("fHistDPhi_trig_%s_assoc_4Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated pt>4Gev",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1058  fHistDPhi4_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1059  fHistDPhi4_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1060  }
1061 
1062  //Mixed Event DPhi plots
1063 
1064  // Delta Phi for tracks > 300MeV
1065  for(Int_t i=0; i<3; i++){
1066  fHistDPhiMix300_500_MB[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_.3-.5Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .3Gev<pt<.5Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1067  fHistDPhiMix300_500_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
1068  fHistDPhiMix300_500_MB[i]->GetYaxis()->SetTitle("Cts");
1069  }
1070 
1071  for(Int_t i=0; i<3; i++){
1072  fHistDPhiMix300_500_EMC7[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_.3-.5Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .3Gev<pt<.5Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1073  fHistDPhiMix300_500_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
1074  fHistDPhiMix300_500_EMC7[i]->GetYaxis()->SetTitle("Cts");
1075  }
1076 
1077  for(Int_t i=0; i<3; i++){
1078  fHistDPhiMix300_500_EMCJet[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_.3-.5Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .3Gev<pt<.5Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1079  fHistDPhiMix300_500_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1080  fHistDPhiMix300_500_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1081  }
1082 
1083  // Delta Phi for tracks > 500MeV
1084  for(Int_t i=0; i<3; i++){
1085  fHistDPhiMix500_800_MB[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_.5-.8Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .5Gev<pt<.8Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1086  fHistDPhiMix500_800_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
1087  fHistDPhiMix500_800_MB[i]->GetYaxis()->SetTitle("Cts");
1088  }
1089 
1090  for(Int_t i=0; i<3; i++){
1091  fHistDPhiMix500_800_EMC7[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_.5-.8Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .5Gev<pt<.8Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1092  fHistDPhiMix500_800_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
1093  fHistDPhiMix500_800_EMC7[i]->GetYaxis()->SetTitle("Cts");
1094  }
1095 
1096  for(Int_t i=0; i<3; i++){
1097  fHistDPhiMix500_800_EMCJet[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_.5-.8Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .5Gev<pt<.8Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1098  fHistDPhiMix500_800_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1099  fHistDPhiMix500_800_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1100  }
1101 
1102  // Delta Phi for tracks > 800MeV
1103  for(Int_t i=0; i<3; i++){
1104  fHistDPhiMix800_1_MB[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_.8-1Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .8Gev<pt<1Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1105  fHistDPhiMix800_1_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
1106  fHistDPhiMix800_1_MB[i]->GetYaxis()->SetTitle("Cts");
1107  }
1108 
1109  for(Int_t i=0; i<3; i++){
1110  fHistDPhiMix800_1_EMC7[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_.8-1Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .8Gev<pt<1Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1111  fHistDPhiMix800_1_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
1112  fHistDPhiMix800_1_EMC7[i]->GetYaxis()->SetTitle("Cts");
1113  }
1114 
1115  for(Int_t i=0; i<3; i++){
1116  fHistDPhiMix800_1_EMCJet[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_.8-1Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated .8Gev<pt<1Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1117  fHistDPhiMix800_1_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1118  fHistDPhiMix800_1_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1119  }
1120 
1121  // Delta Phi for tracks > 1GeV
1122  for(Int_t i=0; i<3; i++){
1123  fHistDPhiMix1_2_MB[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_1-2Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 1Gev<pt<2Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1124  fHistDPhiMix1_2_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
1125  fHistDPhiMix1_2_MB[i]->GetYaxis()->SetTitle("Cts");
1126  }
1127 
1128  for(Int_t i=0; i<3; i++){
1129  fHistDPhiMix1_2_EMC7[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_1-2Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 1Gev<pt<2Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1130  fHistDPhiMix1_2_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
1131  fHistDPhiMix1_2_EMC7[i]->GetYaxis()->SetTitle("Cts");
1132  }
1133 
1134  for(Int_t i=0; i<3; i++){
1135  fHistDPhiMix1_2_EMCJet[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_1-2Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 1Gev<pt<2Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1136  fHistDPhiMix1_2_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1137  fHistDPhiMix1_2_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1138  }
1139 
1140  // Delta Phi for tracks > 2GeV
1141  for(Int_t i=0; i<3; i++){
1142  fHistDPhiMix2_3_MB[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_2-3Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 2Gev<pt<3Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1143  fHistDPhiMix2_3_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
1144  fHistDPhiMix2_3_MB[i]->GetYaxis()->SetTitle("Cts");
1145  }
1146 
1147  for(Int_t i=0; i<3; i++){
1148  fHistDPhiMix2_3_EMC7[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_2-3Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 2Gev<pt<3Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1149  fHistDPhiMix2_3_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
1150  fHistDPhiMix2_3_EMC7[i]->GetYaxis()->SetTitle("Cts");
1151  }
1152 
1153  for(Int_t i=0; i<3; i++){
1154  fHistDPhiMix2_3_EMCJet[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_2-3Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 2Gev<pt<3Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1155  fHistDPhiMix2_3_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1156  fHistDPhiMix2_3_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1157  }
1158 
1159  // Delta Phi for tracks > 3GeV
1160  for(Int_t i=0; i<3; i++){
1161  fHistDPhiMix3_4_MB[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_3-4Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 3Gev<pt<4Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1162  fHistDPhiMix3_4_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
1163  fHistDPhiMix3_4_MB[i]->GetYaxis()->SetTitle("Cts");
1164  }
1165 
1166  for(Int_t i=0; i<3; i++){
1167  fHistDPhiMix3_4_EMC7[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_3-4Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 3Gev<pt<4Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1168  fHistDPhiMix3_4_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
1169  fHistDPhiMix3_4_EMC7[i]->GetYaxis()->SetTitle("Cts");
1170  }
1171 
1172  for(Int_t i=0; i<3; i++){
1173  fHistDPhiMix3_4_EMCJet[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_3-4Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated 3Gev<pt<4Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1174  fHistDPhiMix3_4_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1175  fHistDPhiMix3_4_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1176  }
1177 
1178  // Delta Phi for tracks > 5GeV
1179  for(Int_t i=0; i<3; i++){
1180  fHistDPhiMix4_MB[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_4Gev_MB",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated pt>4Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1181  fHistDPhiMix4_MB[i]->GetXaxis()->SetTitle("Delta-Phi");
1182  fHistDPhiMix4_MB[i]->GetYaxis()->SetTitle("Cts");
1183  }
1184 
1185  for(Int_t i=0; i<3; i++){
1186  fHistDPhiMix4_EMC7[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_4Gev_EMC7",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated pt>4Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1187  fHistDPhiMix4_EMC7[i]->GetXaxis()->SetTitle("Delta-Phi");
1188  fHistDPhiMix4_EMC7[i]->GetYaxis()->SetTitle("Cts");
1189  }
1190 
1191  for(Int_t i=0; i<3; i++){
1192  fHistDPhiMix4_EMCJet[i] = new TH1F(TString::Format("fHistDPhiMix_trig_%s_assoc_4Gev_EMCJet",ptRangesDPhi[i].Data()).Data(), TString::Format("Delta-Phi for candidate electrons w/ pt=%s and Associated pt>4Gev for Mixed Events",ptRangesDPhi[i].Data()).Data(), 100, -TMath::Pi()/2, 3*TMath::Pi()/2);
1193  fHistDPhiMix4_EMCJet[i]->GetXaxis()->SetTitle("Delta-Phi");
1194  fHistDPhiMix4_EMCJet[i]->GetYaxis()->SetTitle("Cts");
1195  }
1196 
1197  //Hadron e/p plot
1198  fHistEMC_Had_MB_1Gev = new TH1F("fHistEMC_Had_MB_1Gev", "E/p for hadrons with Pt between 1-2Gev", 100, 0, 1.5);
1199  fHistEMC_Had_MB_1Gev->GetXaxis()->SetTitle("E/p");
1200  fHistEMC_Had_MB_1Gev->GetYaxis()->SetTitle("Cts");
1201 
1202  // Eta-Phi distribution for tagged events
1203  fHistEtaPhiTag_MB = new TH2F("fHistEtaPhiTag_MB", "Eta-Phi distribution of tracks in tagged events", 100, -.9,.9,100,0,2*TMath::Pi());
1204  fHistEtaPhiTag_MB->GetXaxis()->SetTitle("Eta");
1205  fHistEtaPhiTag_MB->GetYaxis()->SetTitle("Phi");
1206 
1207  fHistEtaPhiTag_EMC7 = new TH2F("fHistEtaPhiTag_EMC7", "Eta-Phi distribution of tracks in tagged events", 100, -.9,.9,100,0,2*TMath::Pi());
1208  fHistEtaPhiTag_EMC7->GetXaxis()->SetTitle("Eta");
1209  fHistEtaPhiTag_EMC7->GetYaxis()->SetTitle("Phi");
1210 
1211  fHistEtaPhiTag_EMCJet = new TH2F("fHistEtaPhiTag_EMCJet", "Eta-Phi distribution of tracks in tagged events", 100, -.9,.9,100,0,2*TMath::Pi());
1212  fHistEtaPhiTag_EMCJet->GetXaxis()->SetTitle("Eta");
1213  fHistEtaPhiTag_EMCJet->GetYaxis()->SetTitle("Phi");
1214 
1215  // Eta-Phi distribution
1216  fHistEtaPhi_MB = new TH2F("fHistEtaPhi_MB", "Eta-Phi distribution of tracks", 100, -.9,.9,100,0,2*TMath::Pi());
1217  fHistEtaPhi_MB->GetXaxis()->SetTitle("Eta");
1218  fHistEtaPhi_MB->GetYaxis()->SetTitle("Phi");
1219 
1220  fHistEtaPhi_EMC7 = new TH2F("fHistEtaPhi_EMC7", "Eta-Phi distribution of tracks", 100, -.9,.9,100,0,2*TMath::Pi());
1221  fHistEtaPhi_EMC7->GetXaxis()->SetTitle("Eta");
1222  fHistEtaPhi_EMC7->GetYaxis()->SetTitle("Phi");
1223 
1224  fHistEtaPhi_EMCJet = new TH2F("fHistEtaPhi_EMCJet", "Eta-Phi distribution of tracks", 100, -.9,.9,100,0,2*TMath::Pi());
1225  fHistEtaPhi_EMCJet->GetXaxis()->SetTitle("Eta");
1226  fHistEtaPhi_EMCJet->GetYaxis()->SetTitle("Phi");
1227 
1228  fHistEtaPhiTPCOnly_MB = new TH2F("fHistEtaPhiTPCOnly_MB", "Eta-Phi distribution of TPC only tracks", 100, -.9,.9,100,0,2*TMath::Pi());
1229  fHistEtaPhiTPCOnly_MB->GetXaxis()->SetTitle("Eta");
1230  fHistEtaPhiTPCOnly_MB->GetYaxis()->SetTitle("Phi");
1231 
1232  // Energy per event histos
1233  fHistPtSum_MB = new TH1F("fHistPtSum_MB", "Pt sum for events w/o an electron candidate", 500, 0, 500);
1234  fHistPtSum_MB->GetXaxis()->SetTitle("Pt Sum");
1235  fHistPtSum_MB->GetYaxis()->SetTitle("Cts");
1236 
1237  fHistPtSum_EMC7 = new TH1F("fHistPtSum_EMC7", "Pt sum for events w/o an electron candidate", 500, 0, 500);
1238  fHistPtSum_EMC7->GetXaxis()->SetTitle("Pt Sum");
1239  fHistPtSum_EMC7->GetYaxis()->SetTitle("Cts");
1240 
1241  fHistPtSum_EMCJet = new TH1F("fHistPtSum_EMCJet", "Pt sum for events w/o an electron candidate", 500, 0, 500);
1242  fHistPtSum_EMCJet->GetXaxis()->SetTitle("Pt Sum");
1243  fHistPtSum_EMCJet->GetYaxis()->SetTitle("Cts");
1244 
1245  // Energy per tagged event histos
1246  fHistPtSumTag_MB = new TH1F("fHistPtSumTag_MB", "Pt sum for events w/ an electron candidate", 500, 0, 500);
1247  fHistPtSumTag_MB->GetXaxis()->SetTitle("Pt Sum");
1248  fHistPtSumTag_MB->GetYaxis()->SetTitle("Cts");
1249 
1250  fHistPtSumTag_EMC7 = new TH1F("fHistPtSumTag_EMC7", "Pt sum for events w/ an electron candidate", 500, 0, 500);
1251  fHistPtSumTag_EMC7->GetXaxis()->SetTitle("Pt Sum");
1252  fHistPtSumTag_EMC7->GetYaxis()->SetTitle("Cts");
1253 
1254  fHistPtSumTag_EMCJet = new TH1F("fHistPtSumTag_EMCJet", "Pt sum for events w/ an electron candidate", 500, 0, 500);
1255  fHistPtSumTag_EMCJet->GetXaxis()->SetTitle("Pt Sum");
1256  fHistPtSumTag_EMCJet->GetYaxis()->SetTitle("Cts");
1257 
1258  // Energy per event in EMC acceptance histos
1259  fHistPtSumEMC_MB = new TH1F("fHistPtSumEMC_MB", "Pt sum for events in EMCal acceptance", 500, 0, 500);
1260  fHistPtSumEMC_MB->GetXaxis()->SetTitle("Pt Sum");
1261  fHistPtSumEMC_MB->GetYaxis()->SetTitle("Cts");
1262 
1263  fHistPtSumEMC_EMC7 = new TH1F("fHistPtSumEMC_EMC7", "Pt sum for events in EMCal acceptance", 500, 0, 500);
1264  fHistPtSumEMC_EMC7->GetXaxis()->SetTitle("Pt Sum");
1265  fHistPtSumEMC_EMC7->GetYaxis()->SetTitle("Cts");
1266 
1267  fHistPtSumEMC_EMCJet = new TH1F("fHistPtSumEMC_EMCJet", "Pt sum for events in EMCal acceptance", 500, 0, 500);
1268  fHistPtSumEMC_EMCJet->GetXaxis()->SetTitle("Pt Sum");
1269  fHistPtSumEMC_EMCJet->GetYaxis()->SetTitle("Cts");
1270 
1271  // Numbers of events
1272  fHistNevents_MB = new TH1F("fHistNevents_MB", "Number of events that have an 'electron'", 2,0,1);
1273  fHistNevents_MB->GetXaxis()->SetBinLabel(1,"Events");
1274  fHistNevents_MB->GetXaxis()->SetBinLabel(2,"Events containing candidates");
1275  fHistNevents_MB->GetYaxis()->SetTitle("Cts");
1276 
1277  fHistNevents_EMC7 = new TH1F("fHistNevents_EMC7", "Number of events that have an 'electron'", 2,0,1);
1278  fHistNevents_EMC7->GetXaxis()->SetBinLabel(1,"Events");
1279  fHistNevents_EMC7->GetXaxis()->SetBinLabel(2,"Events containing candidates");
1280  fHistNevents_EMC7->GetYaxis()->SetTitle("Cts");
1281 
1282  fHistNevents_EMCJet = new TH1F("fHistNevents_EMCJet", "Number of events that have an 'electron'", 2,0,1);
1283  fHistNevents_EMCJet->GetXaxis()->SetBinLabel(1,"Events");
1284  fHistNevents_EMCJet->GetXaxis()->SetBinLabel(2,"Events containing candidates");
1285  fHistNevents_EMCJet->GetYaxis()->SetTitle("Cts");
1286 
1287  //TPC Sigma
1288  fHistTPCSig_MB = new TH1F("fHistTPCSig_MB", "dEdx Resolution in TPC", 100,0,100);
1289  fHistTPCSig_MB->GetXaxis()->SetTitle("Resolution");
1290  fHistTPCSig_MB->GetYaxis()->SetTitle("Count");
1291 
1292  fHistTPCSig_EMC7 = new TH1F("fHistTPCSig_EMC7", "dEdx Resolution in TPC", 100,0,100);
1293  fHistTPCSig_EMC7->GetXaxis()->SetTitle("Resolution");
1294  fHistTPCSig_EMC7->GetYaxis()->SetTitle("Count");
1295 
1296  fHistTPCSig_EMCJet = new TH1F("fHistTPCSig_EMCJet", "dEdx Resolution in TPC", 100,0,100);
1297  fHistTPCSig_EMCJet->GetXaxis()->SetTitle("Resolution");
1298  fHistTPCSig_EMCJet->GetYaxis()->SetTitle("Count");
1299 
1300  //TPC Sigma after general cuts
1301  fHistTPCSigCut_MB = new TH1F("fHistTPCSigCut_MB", "dEdx Resolution in TPC for tracks that pass the basic track cuts", 100,0,100);
1302  fHistTPCSigCut_MB->GetXaxis()->SetTitle("Resolution");
1303  fHistTPCSigCut_MB->GetYaxis()->SetTitle("Count");
1304 
1305  fHistTPCSigCut_EMC7 = new TH1F("fHistTPCSigCut_EMC7", "dEdx Resolution in TPC for tracks that pass the basic track cuts", 100,0,100);
1306  fHistTPCSigCut_EMC7->GetXaxis()->SetTitle("Resolution");
1307  fHistTPCSigCut_EMC7->GetYaxis()->SetTitle("Count");
1308 
1309  fHistTPCSigCut_EMCJet = new TH1F("fHistTPCSigCut_EMCJet", "dEdx Resolution in TPC for tracks that pass the basic track cuts", 100,0,100);
1310  fHistTPCSigCut_EMCJet->GetXaxis()->SetTitle("Resolution");
1311  fHistTPCSigCut_EMCJet->GetYaxis()->SetTitle("Count");
1312 
1313  //Impact Parameter histos
1314  fHistImpPar_MB = new TH1F("fHistImpPar_MB", "Impact Parameter distribution in xy plane for all tracks", 100,-1, 1);
1315  fHistImpPar_MB->GetXaxis()->SetTitle("Impact Parameter(cm)");
1316  fHistImpPar_MB->GetYaxis()->SetTitle("Count");
1317 
1318  fHistImpPar_EMC7 = new TH1F("fHistImpPar_EMC7", "Impact Parameter distribution in xy plane for all tracks", 100,-1, 1);
1319  fHistImpPar_EMC7->GetXaxis()->SetTitle("Impact Parameter(cm)");
1320  fHistImpPar_EMC7->GetYaxis()->SetTitle("Count");
1321 
1322  fHistImpPar_EMCJet = new TH1F("fHistImpPar_EMCJet", "Impact Parameter distribution in xy plane for all tracks", 100,-1, 1);
1323  fHistImpPar_EMCJet->GetXaxis()->SetTitle("Impact Parameter(cm)");
1324  fHistImpPar_EMCJet->GetYaxis()->SetTitle("Count");
1325 
1326  //Impact Parameter for tagged electrons histos
1327  fHistImpParTag_MB = new TH1F("fHistImpParTag_MB", "Impact Parameter distribution in xy plane for electron candidates", 100,-1, 1);
1328  fHistImpParTag_MB->GetXaxis()->SetTitle("Impact Parameter(cm)");
1329  fHistImpParTag_MB->GetYaxis()->SetTitle("Count");
1330 
1331  fHistImpParTag_EMC7 = new TH1F("fHistImpParTag_EMC7", "Impact Parameter distribution in xy plane for electron candidates", 100,-1, 1);
1332  fHistImpParTag_EMC7->GetXaxis()->SetTitle("Impact Parameter(cm)");
1333  fHistImpParTag_EMC7->GetYaxis()->SetTitle("Count");
1334 
1335  fHistImpParTag_EMCJet = new TH1F("fHistImpParTag_EMCJet", "Impact Parameter distribution in xy plane for electron candidates", 100,-1, 1);
1336  fHistImpParTag_EMCJet->GetXaxis()->SetTitle("Impact Parameter(cm)");
1337  fHistImpParTag_EMCJet->GetYaxis()->SetTitle("Count");
1338 
1339  //Number of clusters per track in TPC
1340  fHistTPCNClus_MB = new TH1F("fHistTPCNClus_MB", "Number of Clusters per track in TPC", 159, 0, 159);
1341  fHistTPCNClus_MB->GetXaxis()->SetTitle("Number of TPC Clusters");
1342  fHistTPCNClus_MB->GetYaxis()->SetTitle("Number of Tracks");
1343 
1344  fHistTPCNClus_EMC7 = new TH1F("fHistTPCNClus_EMC7", "Number of Clusters per track in TPC", 159, 0, 159);
1345  fHistTPCNClus_EMC7->GetXaxis()->SetTitle("Number of TPC Clusters");
1346  fHistTPCNClus_EMC7->GetYaxis()->SetTitle("Number of Tracks");
1347 
1348  fHistTPCNClus_EMCJet = new TH1F("fHistTPCNClus_EMCJet", "Number of Clusters per track in TPC", 159, 0, 159);
1349  fHistTPCNClus_EMCJet->GetXaxis()->SetTitle("Number of TPC Clusters");
1350  fHistTPCNClus_EMCJet->GetYaxis()->SetTitle("Number of Tracks");
1351 
1352  //Number of clusters per track in ITS
1353  fHistITSNClus_MB = new TH1F("fHistITSNClus_MB", "Number of Clusters per Track in ITS", 10, 0, 10);
1354  fHistITSNClus_MB->GetXaxis()->SetTitle("Number of ITS Clusters");
1355  fHistITSNClus_MB->GetYaxis()->SetTitle("Number of Tracks");
1356 
1357  fHistITSNClus_EMC7 = new TH1F("fHistITSNClus_EMC7", "Number of Clusters per Track in ITS", 10, 0, 10);
1358  fHistITSNClus_EMC7->GetXaxis()->SetTitle("Number of ITS Clusters");
1359  fHistITSNClus_EMC7->GetYaxis()->SetTitle("Number of Tracks");
1360 
1361  fHistITSNClus_EMCJet = new TH1F("fHistITSNClus_EMCJet", "Number of Clusters per Track in ITS", 10, 0, 10);
1362  fHistITSNClus_EMCJet->GetXaxis()->SetTitle("Number of ITS Clusters");
1363  fHistITSNClus_EMCJet->GetYaxis()->SetTitle("Number of Tracks");
1364 
1365  // Pt distribution of all tracks and tagged tracks
1366  fHistPtAssoc_MB = new TH1F("fHistPtAssoc_MB", "Pt distribution for associated tracks", 100,0, 15);
1367  fHistPtAssoc_MB->GetXaxis()->SetTitle("Pt(Gev)");
1368  fHistPtAssoc_MB->GetYaxis()->SetTitle("Count");
1369 
1370  fHistPtAssoc_EMC7 = new TH1F("fHistPtAssoc_EMC7", "Pt distribution for associated tracks", 100,0, 15);
1371  fHistPtAssoc_EMC7->GetXaxis()->SetTitle("Pt(Gev)");
1372  fHistPtAssoc_EMC7->GetYaxis()->SetTitle("Count");
1373 
1374  fHistPtAssoc_EMCJet = new TH1F("fHistPtAssoc_EMCJet", "Pt distribution for associated tracks", 100,0, 15);
1375  fHistPtAssoc_EMCJet->GetXaxis()->SetTitle("Pt(Gev)");
1376  fHistPtAssoc_EMCJet->GetYaxis()->SetTitle("Count");
1377 
1378  // Pt distribution of all tracks for mixed events
1379  fHistPtAssocMix_MB = new TH1F("fHistPtAssocMix_MB", "Pt distribution for associated tracks in mixed events", 100,0, 15);
1380  fHistPtAssocMix_MB->GetXaxis()->SetTitle("Pt(Gev)");
1381  fHistPtAssocMix_MB->GetYaxis()->SetTitle("Count");
1382 
1383  fHistPtAssocMix_EMC7 = new TH1F("fHistPtAssocMix_EMC7", "Pt distribution for associated tracks in mixed events", 100,0, 15);
1384  fHistPtAssocMix_EMC7->GetXaxis()->SetTitle("Pt(Gev)");
1385  fHistPtAssocMix_EMC7->GetYaxis()->SetTitle("Count");
1386 
1387  fHistPtAssocMix_EMCJet = new TH1F("fHistPtAssocMix_EMCJet", "Pt distribution for associated tracks in mixed events", 100,0, 15);
1388  fHistPtAssocMix_EMCJet->GetXaxis()->SetTitle("Pt(Gev)");
1389  fHistPtAssocMix_EMCJet->GetYaxis()->SetTitle("Count");
1390 
1391  //Impact Parameter for tagged electrons histos
1392  fHistPtTag_MB = new TH1F("fHistPtTag_MB", "Pt distribution for electron candidates", 100,0, 15);
1393  fHistPtTag_MB->GetXaxis()->SetTitle("Pt(Gev)");
1394  fHistPtTag_MB->GetYaxis()->SetTitle("Count");
1395 
1396  fHistPtTag_EMC7 = new TH1F("fHistPtTag_EMC7", "Pt distribution for electron candidates", 100,0, 15);
1397  fHistPtTag_EMC7->GetXaxis()->SetTitle("Pt(Gev)");
1398  fHistPtTag_EMC7->GetYaxis()->SetTitle("Count");
1399 
1400  fHistPtTag_EMCJet = new TH1F("fHistPtTag_EMCJet", "Pt distribution for electron candidates", 100,0, 15);
1401  fHistPtTag_EMCJet->GetXaxis()->SetTitle("Pt(Gev)");
1402  fHistPtTag_EMCJet->GetYaxis()->SetTitle("Count");
1403 
1404  //Add rejection plots to MB plots since it is the easiest place
1407 
1409  fOutputMB->Add(fHistPtAssoc_MB);
1411  fOutputMB->Add(fHistPtTag_MB);
1414  fOutputMB->Add(fHistTPCSig_MB);
1416  fOutputMB->Add(fHistImpPar_MB);
1418  fOutputMB->Add(fHistNevents_MB);
1419  fOutputMB->Add(fHistPtSum_MB);
1422  fOutputMB->Add(fHistEtaPhi_MB);
1430  for(Int_t i=0; i<6;i++){
1431  fOutputMB->Add(fHistTPC_EMCTRD_MB[i]);
1432 
1433  fOutputMB->Add(fHistEMC_TPCTRD_MB[i]);
1434 
1435  fOutputMB->Add(fHistTRD_TPCEMC_MB[i]);
1436 
1437  fOutputMB->Add(fHistM02_All_MB[i]);
1438  fOutputMB->Add(fHistM20_All_MB[i]);
1439  fOutputMB->Add(fHistM02_Elec_MB[i]);
1440  fOutputMB->Add(fHistM20_Elec_MB[i]);
1441  }
1442  for(Int_t i=0; i<3;i++){
1443  fOutputMB->Add(fHistDPhi300_500_MB[i]);
1444  fOutputMB->Add(fHistDPhi500_800_MB[i]);
1445  fOutputMB->Add(fHistDPhi800_1_MB[i]);
1446  fOutputMB->Add(fHistDPhi1_2_MB[i]);
1447  fOutputMB->Add(fHistDPhi2_3_MB[i]);
1448  fOutputMB->Add(fHistDPhi3_4_MB[i]);
1449  fOutputMB->Add(fHistDPhi4_MB[i]);
1453  fOutputMB->Add(fHistDPhiMix1_2_MB[i]);
1454  fOutputMB->Add(fHistDPhiMix2_3_MB[i]);
1455  fOutputMB->Add(fHistDPhiMix3_4_MB[i]);
1456  fOutputMB->Add(fHistDPhiMix4_MB[i]);
1457  }
1458  fOutputMB->Add(fHistDPhi28_MB);
1463 
1484  for(Int_t i=0; i<6;i++){
1486 
1488 
1490 
1491  fOutputEMC7->Add(fHistM02_All_EMC7[i]);
1492  fOutputEMC7->Add(fHistM20_All_EMC7[i]);
1495  }
1496  for(Int_t i=0; i<3;i++){
1500  fOutputEMC7->Add(fHistDPhi1_2_EMC7[i]);
1501  fOutputEMC7->Add(fHistDPhi2_3_EMC7[i]);
1502  fOutputEMC7->Add(fHistDPhi3_4_EMC7[i]);
1503  fOutputEMC7->Add(fHistDPhi4_EMC7[i]);
1511  }
1517 
1538  for(Int_t i=0; i<6;i++){
1540 
1542 
1544 
1549  }
1550  for(Int_t i=0; i<3;i++){
1565  }
1571 
1572  // NEW HISTO added to fOutput here
1573  PostData(1, fOutputMB);
1574  PostData(2, fOutputEMC7);
1575  PostData(3, fOutputEMCJet);// Post data for ALL output slots >0 here, to get at least an empty histogram
1576 }
1577 
1578 //________________________________________________________________________
1580 {
1581  // Main loop
1582  // Called for each event
1583 
1584  //_______________________________Major event-level stuff____________________________________
1585  // Create pointer to reconstructed event
1586  AliVEvent *event = InputEvent();
1587  if (!event) { Printf("ERROR: Could not retrieve event"); return; }
1588 
1589  AliESDEvent* esd;
1590  // create pointer to event
1591  AliAODEvent* aod = dynamic_cast<AliAODEvent*>(event);
1592  if (!aod) {
1593  AliError("Cannot get the AOD event");
1594  return;
1595  }
1596  if(!aodEv){
1597  esd = dynamic_cast<AliESDEvent*>(event);
1598  cout<<"Made ESD Event\n";
1599  if (!esd) {
1600  AliError("Cannot get the ESD event");
1601  return;
1602  }
1603  }
1604 
1605  // input handler
1606  const AliAnalysisManager* man(AliAnalysisManager::GetAnalysisManager());
1607  if (NULL == man) {
1608  AliWarning("AliAnalysisManager is not available");
1609  return;
1610  }
1611 
1612  AliInputEventHandler* inputHandler = (AliInputEventHandler*)man->GetInputEventHandler();
1613  if (!inputHandler) {
1614  AliWarning("AliInputEventHandler is not available");
1615  return;
1616  }
1617  /*if(!aodEv){
1618  AliESDInputHandler* inputHandlerESD = dynamic_cast<AliESDInputHandler*>(man->GetInputEventHandler());
1619  if (!inputHandlerESD) {
1620  AliWarning("AliESDInputHandler is not available");
1621  return;
1622  }
1623  }else{
1624  AliAODInputHandler* inputHandlerAOD = (AliAODInputHandler*)(man->GetInputEventHandler());
1625  if (!inputHandlerAOD) {
1626  AliWarning("AliAODInputHandler is not available");
1627  return;
1628  }
1629  }*/
1630 
1631  UInt_t fSelectMask = inputHandler->IsEventSelected();
1632  /*if(!aodEv){
1633  UInt_t fSelectMask = inputHandler->IsEventSelected();
1634  }else{
1635  UInt_t fSelectMask = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected();
1636  } */
1637 
1638  Bool_t isSelected = fSelectMask & (AliVEvent::kEMC7 | AliVEvent::kEMCEJE | AliVEvent::kEMC8);
1639  if(!isSelected){
1640  AliWarning("This is not an EMCal triggered event");
1641  }
1642 
1643  MBtrg = fSelectMask & AliVEvent::kAnyINT;
1644  EMC7trg = fSelectMask & AliVEvent::kEMC7;
1645  EMCJettrg = fSelectMask & AliVEvent::kEMCEJE;
1646 
1647  Int_t elecIDs[1000];
1648  Int_t elecCnt=0;
1649 
1650  if(!aodEv){
1652  AliWarning("The hybrid track cuts are null");
1653  return;
1654  }
1655  }
1656 
1657  AliPIDResponse* fPIDResponse = (AliPIDResponse*)inputHandler->GetPIDResponse();
1658  /*if(!aodEv){
1659  AliPIDResponse* fPIDResponse = ((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->GetPIDResponse();
1660  }else{
1661  AliPIDResponse* fPIDResponse = (inputHandlerAOD)->GetPIDResponse();
1662  }*/
1663  if(!fPIDResponse){
1664  AliWarning("NULL PIDResponse");
1665  }
1666 
1667  if(aodEv){
1668  trkArr = MakeTrkArr(aod);
1669  }
1670  //__________________________End major event stuff_____________________________
1671 
1672 
1673  //Fill the histogram cataloguing # of events vs. events tagged
1674  if(MBtrg){
1675  fHistNevents_MB->Fill("Events",1);
1676  }
1677  if(EMC7trg){
1678  fHistNevents_EMC7->Fill("Events",1);
1679  }
1680 
1681  if(EMCJettrg){
1682  fHistNevents_EMCJet->Fill("Events",1);
1683  }
1684 
1685  //Initialize energy variable and tagging flags
1686  Double_t PtSum=0;
1687  Double_t PtSumEMC=0;
1688  tagStrong=kFALSE;
1689  Bool_t tagEvt=kFALSE;
1690 
1691  //Initialize the # of tracks variable and the Eta Phi arrays
1692  Int_t ntracks=0;
1693  ntracks = aod->GetNumberOfTracks();
1694  if(!aodEv){
1695  ntracks = esd->GetNumberOfTracks();
1696  }
1697 
1698  std::vector<Double_t> Eta;
1699  std::vector<Double_t> Phi;
1700 
1701  // Track loop for reconstructed event
1702  for(Int_t i = 0; i < ntracks; i++) {
1703 
1704  tagStrong=kFALSE;
1705  tagPhot=kFALSE;
1706  AliESDtrack* esdtrack = 0;
1707  AliAODTrack* aodtrack = (AliAODTrack*)aod->GetTrack(i); // pointer to reconstructed to track
1708  if(!aodEv){
1709  esdtrack = (AliESDtrack*)esd->GetTrack(i); // pointer to reconstructed to track
1710  }
1711 
1712  if(!aodtrack) {
1713  AliError(Form("ERROR: Could not retrieve track %d",i));
1714  continue;
1715  }
1716 
1717  if(!aodEv){
1718  if(!esdtrack) {
1719  AliError(Form("ERROR: Could not retrieve track %d",i));
1720  continue;
1721  }
1722  }
1723 
1724  //Fill TPCOnly track eta-phi
1725 
1726  if(aodtrack->IsTPCOnly()){
1727  fHistEtaPhiTPCOnly_MB->Fill(aodtrack->Eta(),aodtrack->Phi());
1728  }
1729 
1730  if(!aodEv){
1731  if(AliESDtrackCuts::GetStandardTPCOnlyTrackCuts()->AcceptTrack(esdtrack)){
1732  fHistEtaPhiTPCOnly_MB->Fill(esdtrack->Eta(),esdtrack->Phi());
1733  }
1734  }
1735 
1736 
1737  //Do hybrid track cuts
1738  if(!aodtrack->IsHybridGlobalConstrainedGlobal()){continue;}
1739  if(!aodEv){
1740  if(!globaltrackCuts->AcceptTrack(esdtrack)&&!comptrackCuts->AcceptTrack(esdtrack)){continue;}
1741  }
1742 
1743  //Add this tracks energy to the running total
1744  PtSum=PtSum+aodtrack->Pt();
1745  if(aodtrack->Eta()<.7&&aodtrack->Eta()>-.7&&aodtrack->Phi()>80&&aodtrack->Phi()<180){
1746  PtSumEMC=PtSumEMC+aodtrack->Pt();
1747  }
1748 
1749  //Fill the Eta Phi arrays with this tracks Eta and Phi
1750  Eta.push_back(aodtrack->Eta());
1751  Phi.push_back(aodtrack->Phi());
1752 
1753  if(MBtrg){
1754  fHistEtaPhi_MB->Fill(aodtrack->Eta(),aodtrack->Phi());
1755  }
1756  if(EMC7trg){
1757  fHistEtaPhi_EMC7->Fill(aodtrack->Eta(),aodtrack->Phi());
1758  }
1759  if(EMCJettrg){
1760  fHistEtaPhi_EMCJet->Fill(aodtrack->Eta(),aodtrack->Phi());
1761  }
1762 
1763  //do Cut level histograms
1764  if(MBtrg){
1765  if(aodtrack->GetTPCncls()>0){
1766  fHistTPCNClus_MB->Fill(aodtrack->GetTPCncls());
1767  }
1768  fHistITSNClus_MB->Fill(aodtrack->GetNcls(0));
1769  }
1770  if(EMC7trg){
1771  if(aodtrack->GetTPCncls()>0){
1772  fHistTPCNClus_EMC7->Fill(aodtrack->GetTPCncls());
1773  }
1774  fHistITSNClus_EMC7->Fill(aodtrack->GetNcls(0));
1775  }
1776 
1777  if(EMCJettrg){
1778  if(aodtrack->GetTPCncls()>0){
1779  fHistTPCNClus_EMCJet->Fill(aodtrack->GetTPCncls());
1780  }
1781  fHistITSNClus_EMCJet->Fill(aodtrack->GetNcls(0));
1782  }
1783 
1784  if(!aodEv){
1785  //Add this tracks energy to the running total
1786  PtSum=PtSum+esdtrack->Pt();
1787 
1788  //Fill the Eta Phi arrays with this tracks Eta and Phi
1789  Eta.push_back(esdtrack->Eta());
1790  Phi.push_back(esdtrack->Phi());
1791 
1792  if(MBtrg){
1793  fHistEtaPhi_MB->Fill(esdtrack->Eta(),esdtrack->Phi());
1794  }
1795  if(EMC7trg){
1796  fHistEtaPhi_EMC7->Fill(esdtrack->Eta(),esdtrack->Phi());
1797  }
1798  if(EMCJettrg){
1799  fHistEtaPhi_EMCJet->Fill(esdtrack->Eta(),esdtrack->Phi());
1800  }
1801 
1802  //do Cut level histograms
1803  if(MBtrg){
1804  if(esdtrack->GetTPCncls()>0){
1805  fHistTPCNClus_MB->Fill(esdtrack->GetTPCncls());
1806  }
1807  fHistITSNClus_MB->Fill(esdtrack->GetNcls(0));
1808  }
1809  if(EMC7trg){
1810  if(esdtrack->GetTPCncls()>0){
1811  fHistTPCNClus_EMC7->Fill(esdtrack->GetTPCncls());
1812  }
1813  fHistITSNClus_EMC7->Fill(esdtrack->GetNcls(0));
1814  }
1815 
1816  if(EMCJettrg){
1817  if(esdtrack->GetTPCncls()>0){
1818  fHistTPCNClus_EMCJet->Fill(esdtrack->GetTPCncls());
1819  }
1820  fHistITSNClus_EMCJet->Fill(esdtrack->GetNcls(0));
1821  }
1822  }
1823 
1824 
1825  //Fill histogram for TPC resolution
1826  if(!aodEv){
1827  if(MBtrg){
1828  fHistTPCSig_MB->Fill(esdtrack->GetTPCsignalSigma());
1829  }
1830  if(EMC7trg){
1831  fHistTPCSig_EMC7->Fill(esdtrack->GetTPCsignalSigma());
1832  }
1833 
1834  if(EMCJettrg){
1835  fHistTPCSig_EMCJet->Fill(esdtrack->GetTPCsignalSigma());
1836  }
1837  }
1838 
1839  //Impact parameter
1840  Float_t xy;
1841  Float_t z;
1842 
1843  xy=TMath::Sqrt(aodtrack->XAtDCA()*aodtrack->XAtDCA()+aodtrack->YAtDCA()*aodtrack->YAtDCA());
1844 
1845  if(!aodEv){
1846  esdtrack->GetImpactParameters(xy, z);
1847  }
1848 
1849  if(MBtrg){
1850  fHistImpPar_MB->Fill(xy);
1851  }
1852  if(EMC7trg){
1853  fHistImpPar_EMC7->Fill(xy);
1854  }
1855 
1856  if(EMCJettrg){
1857  fHistImpPar_EMCJet->Fill(xy);
1858  }
1859 
1860  FillPhotoElecHistos(aod, aodtrack, fPIDResponse, i);
1861 
1862  if(!aodEv){
1863  FillPhotoElecHistos(esd, esdtrack, fPIDResponse, i);
1864  }
1865 
1866  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1867  //If the track doesn't pass the cuts, move on to the next one
1868  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1869  if(trackCutsStrong){
1870  if(!fTrackCutsStrong->AcceptVTrack((AliVTrack*)aodtrack) || aodtrack->GetTPCsignalN()<80){continue;}
1871  }else{
1872  if(!fTrackCutsWeak->AcceptVTrack((AliVTrack*)aodtrack) || aodtrack->GetTPCsignalN()<80){continue;}
1873  }
1874 
1875  if(!aodEv){
1876  if(trackCutsStrong){
1877  if(!fTrackCutsStrong->AcceptTrack(esdtrack) || esdtrack->GetTPCsignalN()<80){continue;}
1878  }else{
1879  if(!fTrackCutsWeak->AcceptTrack(esdtrack) || esdtrack->GetTPCsignalN()<80){continue;}
1880  }
1881  }
1882 
1883 
1884 
1885  //Fill histogram for TPC resolution
1886  if(!aodEv){
1887  if(MBtrg){
1888  fHistTPCSigCut_MB->Fill(esdtrack->GetTPCsignalSigma());
1889  }
1890  if(EMC7trg){
1891  fHistTPCSigCut_EMC7->Fill(esdtrack->GetTPCsignalSigma());
1892  }
1893 
1894  if(EMCJettrg){
1895  fHistTPCSigCut_EMCJet->Fill(esdtrack->GetTPCsignalSigma());
1896  }
1897  }
1898 
1899  FillPIDHistos(aod, aodtrack, fPIDResponse);//Fill PID histos and set "tagStrong" boolean if this track satisfies cuts
1900 
1901  if(!aodEv){
1902  FillPIDHistos(esd, esdtrack, fPIDResponse);//Fill PID histos and set "tagStrong" boolean if this track satisfies cuts
1903  }
1904 
1905  //If the track made it through any 3 detector cuts
1906  if(tagStrong){
1907  tagEvt=kTRUE;//This event contains a candidate electron
1908  //Increment the candidate count and put track ID of candidate into array
1909 
1910  elecIDs[elecCnt]=i;
1911  elecCnt+=1;
1912 
1913  //Fill impact parameter plots
1914  if(MBtrg){
1915  fHistImpParTag_MB->Fill(xy);
1916  }
1917  if(EMC7trg){
1918  fHistImpParTag_EMC7->Fill(xy);
1919  }
1920 
1921  if(EMCJettrg){
1922  fHistImpParTag_EMCJet->Fill(xy);
1923  }
1924 
1925  //Pt distribution
1926 
1927  if(MBtrg){
1928  fHistPtTag_MB->Fill(aodtrack->Pt());
1929  }
1930  if(EMC7trg){
1931  fHistPtTag_EMC7->Fill(aodtrack->Pt());
1932  }
1933 
1934  if(EMCJettrg){
1935  fHistPtTag_EMCJet->Fill(aodtrack->Pt());
1936  }
1937 
1938  if(!aodEv){
1939  if(MBtrg){
1940  fHistPtTag_MB->Fill(esdtrack->Pt());
1941  }
1942  if(EMC7trg){
1943  fHistPtTag_EMC7->Fill(esdtrack->Pt());
1944  }
1945 
1946  if(EMCJettrg){
1947  fHistPtTag_EMCJet->Fill(esdtrack->Pt());
1948  }
1949  }
1950 
1951  FillDPhiHistos(aod, aodtrack, i);//Fill DPhi histos
1952 
1953  if(!aodEv){
1954  FillDPhiHistos(esd, esdtrack, i);//Fill DPhi histos
1955  }
1956 
1957  if(tagPhot){
1958  if(MBtrg){
1959  fHistPhotoMismatch_MB->Fill(0);
1960  }
1961  if(EMC7trg){
1962  fHistPhotoMismatch_EMC7->Fill(0);
1963  }
1964  if(EMCJettrg){
1965  fHistPhotoMismatch_EMCJet->Fill(0);
1966  }
1967  }
1968 
1969  fPool = fPoolMan->GetEventPool(ntracks, aod->GetPrimaryVertex()->GetZ());
1970 
1971 
1972  if(!fPool){cout<<"No Pool for this event man\n"; continue;}
1973 
1974  fPool->PrintInfo();
1975 
1976  if(fPool->IsReady() ){
1977  FillMEDPhiHistos(aodtrack);
1978  }
1979  else{
1980  cout<<"Pool wasn't ready\n";
1981  }
1982  }//end if(tagStrong)
1983 
1984  }//end main track loop
1985  if(UseNonSignalEvents){
1986  fPool->UpdatePool(trkArr);
1987  }else{
1988  if(tagEvt){
1989  fPool->UpdatePool(trkArr);
1990  }
1991  }
1992 
1993  //Call function to fill Region histos and pass it int array of IDs for identified electron tracks
1994  Int_t elecIDsSparse[elecCnt];
1995  for(Int_t i=0;i<elecCnt;i++){
1996  elecIDsSparse[i]=elecIDs[i];
1997  }
1998 
1999  //Fill Number of electrons plot
2000  fHistNElecPerEvent->Fill(elecCnt);
2001 
2002  //Fill the total pt sum histogram
2003  if(tagEvt){
2004  if(MBtrg){
2005  fHistPtSumTag_MB->Fill(PtSum);
2006  }
2007  if(EMC7trg){
2008  fHistPtSumTag_EMC7->Fill(PtSum);
2009  }
2010  if(EMCJettrg){
2011  fHistPtSumTag_EMCJet->Fill(PtSum);
2012  }
2013  }else{
2014  if(MBtrg){
2015  fHistPtSum_MB->Fill(PtSum);
2016  }
2017  if(EMC7trg){
2018  fHistPtSum_EMC7->Fill(PtSum);
2019  }
2020  if(EMCJettrg){
2021  fHistPtSum_EMCJet->Fill(PtSum);
2022  }
2023  }
2024 
2025  if(MBtrg){
2026  fHistPtSumEMC_MB->Fill(PtSumEMC);
2027  }
2028  if(EMC7trg){
2029  fHistPtSumEMC_EMC7->Fill(PtSumEMC);
2030  }
2031  if(EMCJettrg){
2032  fHistPtSumEMC_EMCJet->Fill(PtSumEMC);
2033  }
2034 
2035  //Fill Nevent histos
2036  if(tagEvt){
2037  if(MBtrg){
2038  fHistNevents_MB->Fill("Events containing candidates",1);
2039  }
2040  if(EMC7trg){
2041  fHistNevents_EMC7->Fill("Events containing candidates",1);
2042  }
2043  if(EMCJettrg){
2044  fHistNevents_EMCJet->Fill("Events containing candidates",1);
2045  }
2046  }
2047 
2048  //Fill the Eta Phi histograms
2049  if(tagEvt){
2050  for(Int_t i=0;i<Eta.size();i++){
2051  if(MBtrg){
2052  fHistEtaPhiTag_MB->Fill(Eta[i],Phi[i]);
2053  }
2054  if(EMC7trg){
2055  fHistEtaPhiTag_EMC7->Fill(Eta[i],Phi[i]);
2056  }
2057  if(EMCJettrg){
2058  fHistEtaPhiTag_EMCJet->Fill(Eta[i],Phi[i]);
2059  }
2060  }
2061  }
2062 
2063 
2064 
2065  // NEW HISTO should be filled before this point, as PostData puts the
2066  // information for this iteration of the UserExec in the container
2067  PostData(1, fOutputMB);
2068  PostData(2, fOutputEMC7);
2069  PostData(3, fOutputEMCJet);
2070 }
2071 
2072 void AliAnalysisTaskPSHFE::FillPIDHistos(AliESDEvent *esd, AliESDtrack *esdtrack, AliPIDResponse *fPIDResponse){
2073 
2074  if(!esdtrack){
2075  AliWarning("esdtrack is null, no point in doing PID");
2076  return;
2077  }
2078 
2079 
2080  Bool_t isPIDRej = kFALSE;
2081 
2082  //Fill TOF and TPC status variables
2083  AliPIDResponse::EDetPidStatus TOFStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTOF, esdtrack);
2084 
2085  AliPIDResponse::EDetPidStatus TPCStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTPC, esdtrack);
2086 
2087  AliPIDResponse::EDetPidStatus TRDStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTRD, esdtrack);
2088 
2089  AliPIDResponse::EDetPidStatus EMCStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kEMCAL, esdtrack);
2090 
2091  //Check validity of PID, TODO: Add a rejection histogram
2092  if(TOFStatus!=AliPIDResponse::kDetPidOk){
2093  fHistPIDRejection->Fill(2);
2094  //isPIDRej=kTRUE;
2095  }
2096 
2097  if(TPCStatus!=AliPIDResponse::kDetPidOk){
2098  fHistPIDRejection->Fill(1);
2099  isPIDRej=kTRUE;
2100  }
2101 
2102  if(TRDStatus!=AliPIDResponse::kDetPidOk){
2103  fHistPIDRejection->Fill(3);
2104  isPIDRej=kTRUE;
2105  }
2106 
2107  if(EMCStatus!=AliPIDResponse::kDetPidOk){
2108  fHistPIDRejection->Fill(4);
2109  isPIDRej=kTRUE;
2110  }
2111 
2112 
2113  //Get the # of sigmas around an electron hypothesis for TOF and TPC
2114  Double_t nSigmaTOF;
2115  nSigmaTOF = fPIDResponse->NumberOfSigmasTOF(esdtrack,AliPID::kElectron);
2116 
2117  Double_t nSigmaTPC;
2118  nSigmaTPC = fPIDResponse->NumberOfSigmasTPC(esdtrack,AliPID::kElectron);
2119 
2120  Double_t elecLikeTRD[1];
2121  if(fPIDResponse->ComputeTRDProbability(esdtrack, AliPID::kElectron, elecLikeTRD, AliTRDPIDResponse::kLQ2D) != AliPIDResponse::kDetPidOk || esdtrack->GetTRDntrackletsPID()<4){
2122  fHistPIDRejection->Fill(3);
2123  isPIDRej=kTRUE;
2124  }
2125 
2126  if(isPIDRej){return;}
2127 
2128  //declare emcal cluster PID variables
2129  Double_t EOP=-1;
2130  Double_t M02=-1;
2131  Double_t M20=-1;
2132  Int_t caloId=esdtrack->GetEMCALcluster();
2133 
2134  if(caloId==-99999){
2135  return;
2136  }
2137 
2138  AliESDCaloCluster* tagEMCclus=esd->GetCaloCluster(caloId);
2139 
2140  if(tagEMCclus->E()>.5){
2141  EOP = tagEMCclus->E()/esdtrack->Pt();
2142  M02 = tagEMCclus->GetM02();
2143  M20 = tagEMCclus->GetM20();
2144  }
2145  else{
2146  return;
2147  }
2148 
2149 
2150 
2151  //=========================================================================================================================
2152  //PID cuts and histogram filling
2153  //=========================================================================================================================
2154 
2155  //Some Double arrays for pt ranges
2156  Double_t ptUpper[6] = {2, 3, 4, 5, 6, 1000000};
2157  Double_t ptLower[6] = {1, 2, 3, 4, 5, 6};
2158  Double_t TPCcut = 2;
2159  Double_t TOFcut = 2;
2160  Double_t TRDcut = .9;
2161  Double_t EMCcutLower[6] = {.85,.85,.85,.85,.85,.95};
2162  Double_t EMCcutHigher[6] = {1.15,1.15,1.15,1.15,1.15,1.25};
2163 
2164  for(Int_t i=0; i<6; i++){
2165  if(esdtrack->Pt()>ptLower[i]&&esdtrack->Pt()<ptUpper[i]){
2166 
2167  //Fill general shower shape plots
2168  if(MBtrg){
2169  fHistM02_All_MB[i]->Fill(M02, EOP);
2170  fHistM20_All_MB[i]->Fill(M20, EOP);
2171  }
2172  if(EMC7trg){
2173  fHistM02_All_EMC7[i]->Fill(M02, EOP);
2174  fHistM20_All_EMC7[i]->Fill(M20, EOP);
2175  }
2176 
2177  if(EMCJettrg){
2178  fHistM02_All_EMCJet[i]->Fill(M02, EOP);
2179  fHistM20_All_EMCJet[i]->Fill(M20, EOP);
2180  }
2181 
2182  //TPC Plots
2183  //EMC+TRD cuts
2184  if(EOP<EMCcutHigher[i]&&EOP>EMCcutLower[i]&&elecLikeTRD[0]>TRDcut){
2185 
2186  if(MBtrg){
2187  fHistTPC_EMCTRD_MB[i]->Fill(esdtrack->Pt(), nSigmaTPC);
2188  }
2189  if(EMC7trg){
2190  fHistTPC_EMCTRD_EMC7[i]->Fill(esdtrack->Pt(), nSigmaTPC);
2191  }
2192 
2193  if(EMCJettrg){
2194  fHistTPC_EMCTRD_EMCJet[i]->Fill(esdtrack->Pt(), nSigmaTPC);
2195  }
2196  }
2197 
2198  //EMC Plots
2199 
2200  //TPC+TRD cuts
2201  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&elecLikeTRD[0]>TRDcut){
2202 
2203  if(!applySSCuts){
2204  if(MBtrg){
2205  fHistEMC_TPCTRD_MB[i]->Fill(EOP);
2206  }
2207  if(EMC7trg){
2208  fHistEMC_TPCTRD_EMC7[i]->Fill(EOP);
2209  }
2210 
2211  if(EMCJettrg){
2212  fHistEMC_TPCTRD_EMCJet[i]->Fill(EOP);
2213  }
2214  }else{
2215  if(M02<.5&&M02>0&&M20<.3&&M20>0){
2216  if(MBtrg){
2217  fHistEMC_TPCTRD_MB[i]->Fill(EOP);
2218  }
2219  if(EMC7trg){
2220  fHistEMC_TPCTRD_EMC7[i]->Fill(EOP);
2221  }
2222 
2223  if(EMCJettrg){
2224  fHistEMC_TPCTRD_EMCJet[i]->Fill(EOP);
2225  }
2226  }
2227  }
2228 
2229  //Fill the shower shape plots here also
2230  if(MBtrg){
2231  fHistM02_Elec_MB[i]->Fill(M02, EOP);
2232  fHistM20_Elec_MB[i]->Fill(M20, EOP);
2233  }
2234  if(EMC7trg){
2235  fHistM02_Elec_EMC7[i]->Fill(M02, EOP);
2236  fHistM20_Elec_EMC7[i]->Fill(M20, EOP);
2237  }
2238 
2239  if(EMCJettrg){
2240  fHistM02_Elec_EMCJet[i]->Fill(M02, EOP);
2241  fHistM20_Elec_EMCJet[i]->Fill(M20, EOP);
2242  }
2243  }
2244 
2245  //TRD Plots
2246 
2247  //TPC+EMC cuts
2248  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&EOP<EMCcutHigher[i]&&EOP>EMCcutLower[i]){
2249 
2250  if(MBtrg){
2251  fHistTRD_TPCEMC_MB[i]->Fill(esdtrack->Pt(), elecLikeTRD[0]);
2252  }
2253  if(EMC7trg){
2254  fHistTRD_TPCEMC_EMC7[i]->Fill(esdtrack->Pt(), elecLikeTRD[0]);
2255  }
2256 
2257  if(EMCJettrg){
2258  fHistTRD_TPCEMC_EMCJet[i]->Fill(esdtrack->Pt(), elecLikeTRD[0]);
2259  }
2260  }
2261  }
2262  }
2263  if(MBtrg){
2264  if(esdtrack->Pt()<2&&esdtrack->Pt()>1){
2265  if(nSigmaTPC<-2&&nSigmaTPC>-8){
2266  fHistEMC_Had_MB_1Gev->Fill(EOP);
2267  }
2268  }
2269  }
2270 
2271  if(applySSCuts){
2272 
2273  //An electron candidate is one that passes TPC +-2Sig, TRD>.9, 0.85<E/p<1.15, M02=(0,.5), M20=(0,.3)
2274 
2275  if(esdtrack->Pt()<6){
2276  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&elecLikeTRD[0]>TRDcut&&EOP<EMCcutHigher[0]&&EOP>EMCcutLower[0]&&M02<.5&&M02>0&&M20<.3&&M20>0){
2277 
2278  tagStrong=kTRUE;
2279 
2280  }
2281 
2282  }
2283 
2284  else{
2285 
2286  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&elecLikeTRD[0]>TRDcut&&EOP<EMCcutHigher[5]&&EOP>EMCcutLower[5]&&M02<.5&&M02>0&&M20<.3&&M20>0){
2287 
2288  tagStrong=kTRUE;
2289 
2290  }
2291 
2292  }
2293 
2294  }else{//no sscuts
2295 
2296  //An electron candidate is one that passes TPC +-2Sig, TRD>.9, 0.85<E/p<1.15
2297 
2298  if(esdtrack->Pt()<6){
2299  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&elecLikeTRD[0]>TRDcut&&EOP<EMCcutHigher[0]&&EOP>EMCcutLower[0]){
2300 
2301  tagStrong=kTRUE;
2302 
2303  }
2304 
2305  }
2306 
2307  else{
2308 
2309  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&elecLikeTRD[0]>TRDcut&&EOP<EMCcutHigher[5]&&EOP>EMCcutLower[5]){
2310 
2311  tagStrong=kTRUE;
2312 
2313  }
2314 
2315  }
2316 
2317  }
2318 
2319  /*//Check if any tracks pass all cuts
2320  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&nSigmaTOF<TOFcut&&nSigmaTOF>-TOFcut&&elecLikeTRD[0]>TRDcut&&EOP<EMCcutHigher&&EOP>EMCcutLower){
2321  tagAll=kTRUE;
2322  }*/
2323 
2324  //=========================================================================
2325  // End of PID stuff
2326  //=========================================================================
2327  PostData(1, fOutputMB);
2328  PostData(2, fOutputEMC7);
2329  PostData(3, fOutputEMCJet);
2330  return;
2331 }
2332 
2333 void AliAnalysisTaskPSHFE::FillPIDHistos(AliAODEvent *aod, AliAODTrack *aodtrack, AliPIDResponse *fPIDResponse){
2334 
2335  if(!aodtrack){
2336  AliWarning("aodtrack is null, no point in doing PID");
2337  return;
2338  }
2339 
2340 
2341  Bool_t isPIDRej = kFALSE;
2342 
2343  //Fill TOF and TPC status variables
2344  AliPIDResponse::EDetPidStatus TOFStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTOF, aodtrack);
2345 
2346  AliPIDResponse::EDetPidStatus TPCStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTPC, aodtrack);
2347 
2348  AliPIDResponse::EDetPidStatus TRDStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTRD, aodtrack);
2349 
2350  AliPIDResponse::EDetPidStatus EMCStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kEMCAL, aodtrack);
2351 
2352  //Check validity of PID, TODO: Add a rejection histogram
2353  if(TOFStatus!=AliPIDResponse::kDetPidOk){
2354  fHistPIDRejection->Fill(2);
2355  //isPIDRej=kTRUE;
2356  }
2357 
2358  if(TPCStatus!=AliPIDResponse::kDetPidOk){
2359  fHistPIDRejection->Fill(1);
2360  isPIDRej=kTRUE;
2361  }
2362 
2363  if(TRDStatus!=AliPIDResponse::kDetPidOk){
2364  fHistPIDRejection->Fill(3);
2365  isPIDRej=kTRUE;
2366  }
2367 
2368  if(EMCStatus!=AliPIDResponse::kDetPidOk){
2369  fHistPIDRejection->Fill(4);
2370  isPIDRej=kTRUE;
2371  }
2372 
2373 
2374  //Get the # of sigmas around an electron hypothesis for TOF and TPC
2375  Double_t nSigmaTOF;
2376  nSigmaTOF = fPIDResponse->NumberOfSigmasTOF(aodtrack,AliPID::kElectron);
2377 
2378  Double_t nSigmaTPC;
2379  nSigmaTPC = fPIDResponse->NumberOfSigmasTPC(aodtrack,AliPID::kElectron);
2380 
2381  Double_t elecLikeTRD[1];
2382  if(fPIDResponse->ComputeTRDProbability(aodtrack, AliPID::kElectron, elecLikeTRD, AliTRDPIDResponse::kLQ2D) != AliPIDResponse::kDetPidOk || aodtrack->GetTRDntrackletsPID()<4){
2383  fHistPIDRejection->Fill(3);
2384  isPIDRej=kTRUE;
2385  }
2386 
2387  if(isPIDRej){return;}
2388 
2389  //declare emcal cluster PID variables
2390  Double_t EOP=-1;
2391  Double_t M02=-1;
2392  Double_t M20=-1;
2393  Int_t caloId=aodtrack->GetEMCALcluster();
2394 
2395  if(caloId==-99999){
2396  return;
2397  }
2398 
2399  AliAODCaloCluster* tagEMCclus=aod->GetCaloCluster(caloId);
2400 
2401  if(tagEMCclus->E()>.5){
2402  EOP = tagEMCclus->E()/aodtrack->Pt();
2403  M02 = tagEMCclus->GetM02();
2404  M20 = tagEMCclus->GetM20();
2405  }
2406  else{
2407  return;
2408  }
2409 
2410 
2411 
2412  //=========================================================================================================================
2413  //PID cuts and histogram filling
2414  //=========================================================================================================================
2415 
2416  //Some Double arrays for pt ranges
2417  Double_t ptUpper[6] = {2, 3, 4, 5, 6, 1000000};
2418  Double_t ptLower[6] = {1, 2, 3, 4, 5, 6};
2419  Double_t TPCcut = 2;
2420  Double_t TOFcut = 2;
2421  Double_t TRDcut = .9;
2422  Double_t EMCcutLower[6] = {.85,.85,.85,.85,.85,.95};
2423  Double_t EMCcutHigher[6] = {1.15,1.15,1.15,1.15,1.15,1.25};
2424 
2425  for(Int_t i=0; i<6; i++){
2426  if(aodtrack->Pt()>ptLower[i]&&aodtrack->Pt()<ptUpper[i]){
2427 
2428  //Fill general shower shape plots
2429  if(MBtrg){
2430  fHistM02_All_MB[i]->Fill(M02, EOP);
2431  fHistM20_All_MB[i]->Fill(M20, EOP);
2432  }
2433  if(EMC7trg){
2434  fHistM02_All_EMC7[i]->Fill(M02, EOP);
2435  fHistM20_All_EMC7[i]->Fill(M20, EOP);
2436  }
2437 
2438  if(EMCJettrg){
2439  fHistM02_All_EMCJet[i]->Fill(M02, EOP);
2440  fHistM20_All_EMCJet[i]->Fill(M20, EOP);
2441  }
2442 
2443  //TPC Plots
2444  //EMC+TRD cuts
2445  if(EOP<EMCcutHigher[i]&&EOP>EMCcutLower[i]&&elecLikeTRD[0]>TRDcut){
2446 
2447  if(MBtrg){
2448  fHistTPC_EMCTRD_MB[i]->Fill(aodtrack->Pt(), nSigmaTPC);
2449  }
2450  if(EMC7trg){
2451  fHistTPC_EMCTRD_EMC7[i]->Fill(aodtrack->Pt(), nSigmaTPC);
2452  }
2453 
2454  if(EMCJettrg){
2455  fHistTPC_EMCTRD_EMCJet[i]->Fill(aodtrack->Pt(), nSigmaTPC);
2456  }
2457  }
2458 
2459  //EMC Plots
2460 
2461  //TPC+TRD cuts
2462  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&elecLikeTRD[0]>TRDcut){
2463 
2464  if(!applySSCuts){
2465  if(MBtrg){
2466  fHistEMC_TPCTRD_MB[i]->Fill(EOP);
2467  }
2468  if(EMC7trg){
2469  fHistEMC_TPCTRD_EMC7[i]->Fill(EOP);
2470  }
2471 
2472  if(EMCJettrg){
2473  fHistEMC_TPCTRD_EMCJet[i]->Fill(EOP);
2474  }
2475  }else{
2476  if(M02<.5&&M02>0&&M20<.3&&M20>0){
2477  if(MBtrg){
2478  fHistEMC_TPCTRD_MB[i]->Fill(EOP);
2479  }
2480  if(EMC7trg){
2481  fHistEMC_TPCTRD_EMC7[i]->Fill(EOP);
2482  }
2483 
2484  if(EMCJettrg){
2485  fHistEMC_TPCTRD_EMCJet[i]->Fill(EOP);
2486  }
2487  }
2488  }
2489 
2490  //Fill the shower shape plots here also
2491  if(MBtrg){
2492  fHistM02_Elec_MB[i]->Fill(M02, EOP);
2493  fHistM20_Elec_MB[i]->Fill(M20, EOP);
2494  }
2495  if(EMC7trg){
2496  fHistM02_Elec_EMC7[i]->Fill(M02, EOP);
2497  fHistM20_Elec_EMC7[i]->Fill(M20, EOP);
2498  }
2499 
2500  if(EMCJettrg){
2501  fHistM02_Elec_EMCJet[i]->Fill(M02, EOP);
2502  fHistM20_Elec_EMCJet[i]->Fill(M20, EOP);
2503  }
2504  }
2505 
2506  //TRD Plots
2507 
2508  //TPC+EMC cuts
2509  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&EOP<EMCcutHigher[i]&&EOP>EMCcutLower[i]){
2510 
2511  if(MBtrg){
2512  fHistTRD_TPCEMC_MB[i]->Fill(aodtrack->Pt(), elecLikeTRD[0]);
2513  }
2514  if(EMC7trg){
2515  fHistTRD_TPCEMC_EMC7[i]->Fill(aodtrack->Pt(), elecLikeTRD[0]);
2516  }
2517 
2518  if(EMCJettrg){
2519  fHistTRD_TPCEMC_EMCJet[i]->Fill(aodtrack->Pt(), elecLikeTRD[0]);
2520  }
2521  }
2522  }
2523  }
2524  if(MBtrg){
2525  if(aodtrack->Pt()<2&&aodtrack->Pt()>1){
2526  if(nSigmaTPC<-2&&nSigmaTPC>-8){
2527  fHistEMC_Had_MB_1Gev->Fill(EOP);
2528  }
2529  }
2530  }
2531 
2532  if(applySSCuts){
2533 
2534  //An electron candidate is one that passes TPC +-2Sig, TRD>.9, 0.85<E/p<1.15, M02=(0,.5), M20=(0,.3)
2535 
2536  if(aodtrack->Pt()<6){
2537  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&elecLikeTRD[0]>TRDcut&&EOP<EMCcutHigher[0]&&EOP>EMCcutLower[0]&&M02<.5&&M02>0&&M20<.3&&M20>0){
2538 
2539  tagStrong=kTRUE;
2540 
2541  }
2542 
2543  }
2544 
2545  else{
2546 
2547  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&elecLikeTRD[0]>TRDcut&&EOP<EMCcutHigher[5]&&EOP>EMCcutLower[5]&&M02<.5&&M02>0&&M20<.3&&M20>0){
2548 
2549  tagStrong=kTRUE;
2550 
2551  }
2552 
2553  }
2554 
2555  }else{//no sscuts
2556 
2557  //An electron candidate is one that passes TPC +-2Sig, TRD>.9, 0.85<E/p<1.15
2558 
2559  if(aodtrack->Pt()<6){
2560  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&elecLikeTRD[0]>TRDcut&&EOP<EMCcutHigher[0]&&EOP>EMCcutLower[0]){
2561 
2562  tagStrong=kTRUE;
2563 
2564  }
2565 
2566  }
2567 
2568  else{
2569 
2570  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&elecLikeTRD[0]>TRDcut&&EOP<EMCcutHigher[5]&&EOP>EMCcutLower[5]){
2571 
2572  tagStrong=kTRUE;
2573 
2574  }
2575 
2576  }
2577 
2578  }
2579 
2580  /*//Check if any tracks pass all cuts
2581  if(nSigmaTPC<TPCcut&&nSigmaTPC>-TPCcut&&nSigmaTOF<TOFcut&&nSigmaTOF>-TOFcut&&elecLikeTRD[0]>TRDcut&&EOP<EMCcutHigher&&EOP>EMCcutLower){
2582  tagAll=kTRUE;
2583  }*/
2584 
2585  //=========================================================================
2586  // End of PID stuff
2587  //=========================================================================
2588  PostData(1, fOutputMB);
2589  PostData(2, fOutputEMC7);
2590  PostData(3, fOutputEMCJet);
2591  return;
2592 }
2593 
2594 void AliAnalysisTaskPSHFE::FillDPhiHistos(AliESDEvent *esd, AliESDtrack *esdtrack, Int_t i){
2595  //Run through all tracks in this
2596  Int_t ntracks = esd->GetNumberOfTracks();
2597  for(Int_t j = 0; j < ntracks; j++) {
2598 
2599  //Don't double count the tagged tracks
2600  if(i==j){continue;}
2601 
2602 
2603  AliESDtrack* esdtrackassoc = (AliESDtrack*)esd->GetTrack(j); // pointer to reconstructed to track
2604 
2605  if(!esdtrackassoc) {
2606  AliError(Form("ERROR: Could not retrieve esdtrack %d",j));
2607  continue;
2608  }
2609 
2610  //Do hybrid track cuts
2611  if(!globaltrackCuts->AcceptTrack(esdtrackassoc)&&!comptrackCuts->AcceptTrack(esdtrackassoc)){continue;}
2612 
2613  //Pt distribution
2614  if(MBtrg){
2615  fHistPtAssoc_MB->Fill(esdtrackassoc->Pt());
2616  }
2617  if(EMC7trg){
2618  fHistPtAssoc_EMC7->Fill(esdtrackassoc->Pt());
2619  }
2620 
2621  if(EMCJettrg){
2622  fHistPtAssoc_EMCJet->Fill(esdtrackassoc->Pt());
2623  }
2624 
2625  //Fill Delta Phi variable and correct for periodicity
2626  Double_t DPhi=esdtrackassoc->Phi()-esdtrack->Phi();
2627 
2628  if(DPhi<-TMath::Pi()/2){DPhi=TMath::Abs(2*TMath::Pi()+DPhi);}
2629 
2630  if(DPhi>3*TMath::Pi()/2){DPhi=-TMath::Abs(2*TMath::Pi()-DPhi);}
2631 
2632  Double_t DEta=esdtrackassoc->Eta()-esdtrack->Eta();
2633 
2634  //candidate 1<pt<2
2635  if(esdtrack->Pt()>1&&esdtrack->Pt()<2){
2636 
2637  //300-500MeV
2638  if(esdtrackassoc->Pt()>.3&&esdtrackassoc->Pt()<.5){
2639  if(MBtrg){
2640  fHistDPhi300_500_MB[0]->Fill(DPhi);
2641  }
2642  if(EMC7trg){
2643  fHistDPhi300_500_EMC7[0]->Fill(DPhi);
2644  }
2645  if(EMCJettrg){
2646  fHistDPhi300_500_EMCJet[0]->Fill(DPhi);
2647  }
2648  }
2649 
2650  //500MeV
2651  if(esdtrackassoc->Pt()>.5&&esdtrackassoc->Pt()<.8){
2652  if(MBtrg){
2653  fHistDPhi500_800_MB[0]->Fill(DPhi);
2654  }
2655  if(EMC7trg){
2656  fHistDPhi500_800_EMC7[0]->Fill(DPhi);
2657  }
2658  if(EMCJettrg){
2659  fHistDPhi500_800_EMCJet[0]->Fill(DPhi);
2660  }
2661  }
2662 
2663  //800MeV
2664  if(esdtrackassoc->Pt()>.8&&esdtrackassoc->Pt()<1){
2665  if(MBtrg){
2666  fHistDPhi800_1_MB[0]->Fill(DPhi);
2667  }
2668  if(EMC7trg){
2669  fHistDPhi800_1_EMC7[0]->Fill(DPhi);
2670  }
2671  if(EMCJettrg){
2672  fHistDPhi800_1_EMCJet[0]->Fill(DPhi);
2673  }
2674  }
2675 
2676  //1GeV
2677  if(esdtrackassoc->Pt()>1&&esdtrackassoc->Pt()<2){
2678  if(MBtrg){
2679  fHistDPhi1_2_MB[0]->Fill(DPhi);
2680  }
2681  if(EMC7trg){
2682  fHistDPhi1_2_EMC7[0]->Fill(DPhi);
2683  }
2684  if(EMCJettrg){
2685  fHistDPhi1_2_EMCJet[0]->Fill(DPhi);
2686  }
2687  }
2688 
2689  //2GeV
2690  if(esdtrackassoc->Pt()>2&&esdtrackassoc->Pt()<3){
2691  if(MBtrg){
2692  fHistDPhi2_3_MB[0]->Fill(DPhi);
2693  }
2694  if(EMC7trg){
2695  fHistDPhi2_3_EMC7[0]->Fill(DPhi);
2696  }
2697  if(EMCJettrg){
2698  fHistDPhi2_3_EMCJet[0]->Fill(DPhi);
2699  }
2700  }
2701 
2702  //3GeV
2703  if(esdtrackassoc->Pt()>3&&esdtrackassoc->Pt()<4){
2704  if(MBtrg){
2705  fHistDPhi3_4_MB[0]->Fill(DPhi);
2706  }
2707  if(EMC7trg){
2708  fHistDPhi3_4_EMC7[0]->Fill(DPhi);
2709  }
2710  if(EMCJettrg){
2711  fHistDPhi3_4_EMCJet[0]->Fill(DPhi);
2712  }
2713  }
2714 
2715  //5GeV
2716  if(esdtrackassoc->Pt()>4){
2717  if(MBtrg){
2718  fHistDPhi4_MB[0]->Fill(DPhi);
2719  }
2720  if(EMC7trg){
2721  fHistDPhi4_EMC7[0]->Fill(DPhi);
2722  }
2723  if(EMCJettrg){
2724  fHistDPhi4_EMCJet[0]->Fill(DPhi);
2725  }
2726  }
2727  }
2728 
2729  //candidate 2<pt<4
2730  if(esdtrack->Pt()>2&&esdtrack->Pt()<4){
2731 
2732  //300MeV
2733  if(esdtrackassoc->Pt()>.3&&esdtrackassoc->Pt()<.5){
2734  if(MBtrg){
2735  fHistDPhi300_500_MB[1]->Fill(DPhi);
2736  }
2737  if(EMC7trg){
2738  fHistDPhi300_500_EMC7[1]->Fill(DPhi);
2739  }
2740  if(EMCJettrg){
2741  fHistDPhi300_500_EMCJet[1]->Fill(DPhi);
2742  }
2743  }
2744 
2745  //500MeV
2746  if(esdtrackassoc->Pt()>.5&&esdtrackassoc->Pt()<.8){
2747  if(MBtrg){
2748  fHistDPhi500_800_MB[1]->Fill(DPhi);
2749  }
2750  if(EMC7trg){
2751  fHistDPhi500_800_EMC7[1]->Fill(DPhi);
2752  }
2753  if(EMCJettrg){
2754  fHistDPhi500_800_EMCJet[1]->Fill(DPhi);
2755  }
2756  }
2757 
2758  //800MeV
2759  if(esdtrackassoc->Pt()>.8&&esdtrackassoc->Pt()<1){
2760  if(MBtrg){
2761  fHistDPhi800_1_MB[1]->Fill(DPhi);
2762  }
2763  if(EMC7trg){
2764  fHistDPhi800_1_EMC7[1]->Fill(DPhi);
2765  }
2766  if(EMCJettrg){
2767  fHistDPhi800_1_EMCJet[1]->Fill(DPhi);
2768  }
2769  }
2770 
2771  //1GeV
2772  if(esdtrackassoc->Pt()>1&&esdtrackassoc->Pt()<2){
2773  if(MBtrg){
2774  fHistDPhi1_2_MB[1]->Fill(DPhi);
2775  }
2776  if(EMC7trg){
2777  fHistDPhi1_2_EMC7[1]->Fill(DPhi);
2778  }
2779  if(EMCJettrg){
2780  fHistDPhi1_2_EMCJet[1]->Fill(DPhi);
2781  }
2782  }
2783 
2784  //2GeV
2785  if(esdtrackassoc->Pt()>2&&esdtrackassoc->Pt()<3){
2786  if(MBtrg){
2787  fHistDPhi2_3_MB[1]->Fill(DPhi);
2788  fHistDPhi28_MB->Fill(DPhi);
2789  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
2790  fHistDPhi18Spe_MB->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2791  }
2792  if(EMC7trg){
2793  fHistDPhi2_3_EMC7[1]->Fill(DPhi);
2794  fHistDPhi28_EMC7->Fill(DPhi);
2795  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
2796  fHistDPhi18Spe_EMC7->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2797  }
2798  if(EMCJettrg){
2799  fHistDPhi2_3_EMCJet[1]->Fill(DPhi);
2800  fHistDPhi28_EMCJet->Fill(DPhi);
2801  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
2802  fHistDPhi18Spe_EMCJet->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2803  }
2804  }
2805 
2806  //3GeV
2807  if(esdtrackassoc->Pt()>3&&esdtrackassoc->Pt()<4){
2808  if(MBtrg){
2809  fHistDPhi3_4_MB[1]->Fill(DPhi);
2810  fHistDPhi28_MB->Fill(DPhi);
2811  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
2812  fHistDPhi18Spe_MB->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2813  }
2814  if(EMC7trg){
2815  fHistDPhi3_4_EMC7[1]->Fill(DPhi);
2816  fHistDPhi28_EMC7->Fill(DPhi);
2817  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
2818  fHistDPhi18Spe_EMC7->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2819  }
2820  if(EMCJettrg){
2821  fHistDPhi3_4_EMCJet[1]->Fill(DPhi);
2822  fHistDPhi28_EMCJet->Fill(DPhi);
2823  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
2824  fHistDPhi18Spe_EMCJet->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2825  }
2826  }
2827 
2828  //5GeV
2829  if(esdtrackassoc->Pt()>4){
2830  if(MBtrg){
2831  fHistDPhi4_MB[1]->Fill(DPhi);
2832  fHistDPhi28_MB->Fill(DPhi);
2833  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
2834  fHistDPhi18Spe_MB->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2835  }
2836  if(EMC7trg){
2837  fHistDPhi4_EMC7[1]->Fill(DPhi);
2838  fHistDPhi28_EMC7->Fill(DPhi);
2839  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
2840  fHistDPhi18Spe_EMC7->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2841  }
2842  if(EMCJettrg){
2843  fHistDPhi4_EMCJet[1]->Fill(DPhi);
2844  fHistDPhi28_EMCJet->Fill(DPhi);
2845  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
2846  fHistDPhi18Spe_EMCJet->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2847  }
2848  }
2849  }
2850 
2851  //candidate 4<pt<8
2852  if(esdtrack->Pt()>4&&esdtrack->Pt()<8){
2853 
2854  //300MeV
2855  if(esdtrackassoc->Pt()>.3&&esdtrackassoc->Pt()<.5){
2856  if(MBtrg){
2857  fHistDPhi300_500_MB[2]->Fill(DPhi);
2858  }
2859  if(EMC7trg){
2860  fHistDPhi300_500_EMC7[2]->Fill(DPhi);
2861  }
2862  if(EMCJettrg){
2863  fHistDPhi300_500_EMCJet[2]->Fill(DPhi);
2864  }
2865  }
2866 
2867  //500MeV
2868  if(esdtrackassoc->Pt()>.5&&esdtrackassoc->Pt()<.8){
2869  if(MBtrg){
2870  fHistDPhi500_800_MB[2]->Fill(DPhi);
2871  }
2872  if(EMC7trg){
2873  fHistDPhi500_800_EMC7[2]->Fill(DPhi);
2874  }
2875  if(EMCJettrg){
2876  fHistDPhi500_800_EMCJet[2]->Fill(DPhi);
2877  }
2878  }
2879 
2880  //800MeV
2881  if(esdtrackassoc->Pt()>.8&&esdtrackassoc->Pt()<1){
2882  if(MBtrg){
2883  fHistDPhi800_1_MB[2]->Fill(DPhi);
2884  }
2885  if(EMC7trg){
2886  fHistDPhi800_1_EMC7[2]->Fill(DPhi);
2887  }
2888  if(EMCJettrg){
2889  fHistDPhi800_1_EMCJet[2]->Fill(DPhi);
2890  }
2891  }
2892 
2893  //1GeV
2894  if(esdtrackassoc->Pt()>1&&esdtrackassoc->Pt()<2){
2895  if(MBtrg){
2896  fHistDPhi1_2_MB[2]->Fill(DPhi);
2897  }
2898  if(EMC7trg){
2899  fHistDPhi1_2_EMC7[2]->Fill(DPhi);
2900  }
2901  if(EMCJettrg){
2902  fHistDPhi1_2_EMCJet[2]->Fill(DPhi);
2903  }
2904  }
2905 
2906  //2GeV
2907  if(esdtrackassoc->Pt()>2&&esdtrackassoc->Pt()<3){
2908  if(MBtrg){
2909  fHistDPhi2_3_MB[2]->Fill(DPhi);
2910  fHistDPhi28_MB->Fill(DPhi);
2911  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
2912  fHistDPhi18Spe_MB->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2913  }
2914  if(EMC7trg){
2915  fHistDPhi2_3_EMC7[2]->Fill(DPhi);
2916  fHistDPhi28_EMC7->Fill(DPhi);
2917  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
2918  fHistDPhi18Spe_EMC7->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2919  }
2920  if(EMCJettrg){
2921  fHistDPhi2_3_EMCJet[2]->Fill(DPhi);
2922  fHistDPhi28_EMCJet->Fill(DPhi);
2923  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
2924  fHistDPhi18Spe_EMCJet->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2925  }
2926  }
2927 
2928  //3GeV
2929  if(esdtrackassoc->Pt()>3&&esdtrackassoc->Pt()<4){
2930  if(MBtrg){
2931  fHistDPhi3_4_MB[2]->Fill(DPhi);
2932  fHistDPhi28_MB->Fill(DPhi);
2933  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
2934  fHistDPhi18Spe_MB->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2935  }
2936  if(EMC7trg){
2937  fHistDPhi3_4_EMC7[2]->Fill(DPhi);
2938  fHistDPhi28_EMC7->Fill(DPhi);
2939  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
2940  fHistDPhi18Spe_EMC7->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2941  }
2942  if(EMCJettrg){
2943  fHistDPhi3_4_EMCJet[2]->Fill(DPhi);
2944  fHistDPhi28_EMCJet->Fill(DPhi);
2945  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
2946  fHistDPhi18Spe_EMCJet->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2947  }
2948  }
2949 
2950  //5GeV
2951  if(esdtrackassoc->Pt()>4){
2952  if(MBtrg){
2953  fHistDPhi4_MB[2]->Fill(DPhi);
2954  fHistDPhi28_MB->Fill(DPhi);
2955  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
2956  fHistDPhi18Spe_MB->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2957  }
2958  if(EMC7trg){
2959  fHistDPhi4_EMC7[2]->Fill(DPhi);
2960  fHistDPhi28_EMC7->Fill(DPhi);
2961  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
2962  fHistDPhi18Spe_EMC7->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2963  }
2964  if(EMCJettrg){
2965  fHistDPhi4_EMCJet[2]->Fill(DPhi);
2966  fHistDPhi28_EMCJet->Fill(DPhi);
2967  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
2968  fHistDPhi18Spe_EMCJet->Fill(DPhi, esdtrackassoc->GetTPCsignal());
2969  }
2970  }
2971  }
2972 
2973  }
2974  PostData(1, fOutputMB);
2975  PostData(2, fOutputEMC7);
2976  PostData(3, fOutputEMCJet);
2977  return;
2978 }
2979 
2980 void AliAnalysisTaskPSHFE::FillDPhiHistos(AliAODEvent *aod, AliAODTrack *aodtrack, Int_t i){
2981  //Run through all tracks in this
2982  Int_t ntracks = aod->GetNumberOfTracks();
2983  for(Int_t j = 0; j < ntracks; j++) {
2984 
2985  //Don't double count the tagged tracks
2986  if(i==j){continue;}
2987 
2988 
2989  AliAODTrack* aodtrackassoc = (AliAODTrack*)aod->GetTrack(j); // pointer to reconstructed to track
2990 
2991  if(!aodtrackassoc) {
2992  AliError(Form("ERROR: Could not retrieve aodtrack %d",j));
2993  continue;
2994  }
2995 
2996  //Do hybrid track cuts
2997  if(aodtrackassoc->IsHybridGlobalConstrainedGlobal()){continue;}
2998 
2999  //Pt distribution
3000  if(MBtrg){
3001  fHistPtAssoc_MB->Fill(aodtrackassoc->Pt());
3002  }
3003  if(EMC7trg){
3004  fHistPtAssoc_EMC7->Fill(aodtrackassoc->Pt());
3005  }
3006 
3007  if(EMCJettrg){
3008  fHistPtAssoc_EMCJet->Fill(aodtrackassoc->Pt());
3009  }
3010 
3011  //Fill Delta Phi variable and correct for periodicity
3012  Double_t DPhi=aodtrackassoc->Phi()-aodtrack->Phi();
3013 
3014  if(DPhi<-TMath::Pi()/2){DPhi=TMath::Abs(2*TMath::Pi()+DPhi);}
3015 
3016  if(DPhi>3*TMath::Pi()/2){DPhi=-TMath::Abs(2*TMath::Pi()-DPhi);}
3017 
3018  Double_t DEta=aodtrackassoc->Eta()-aodtrack->Eta();
3019 
3020  Int_t PID=0;
3021  cout<<"most probPID"<<AliAODTrack::kElectron<<":"<<aodtrackassoc->GetMostProbablePID()<<'\n';
3022  switch(aodtrackassoc->GetMostProbablePID()){
3023  case AliAODTrack::kElectron:
3024  PID=1;
3025  break;
3026  case AliAODTrack::kMuon:
3027  PID=2;
3028  break;
3029  case AliAODTrack::kPion:
3030  PID=3;
3031  break;
3032  case AliAODTrack::kKaon:
3033  PID=4;
3034  break;
3035  case AliAODTrack::kProton:
3036  PID=5;
3037  break;
3038  case AliAODTrack::kDeuteron:
3039  PID=6;
3040  break;
3041  case AliAODTrack::kUnknown:
3042  PID=0;
3043  break;
3044  }
3045 
3046  //candidate 1<pt<2
3047  if(aodtrack->Pt()>1&&aodtrack->Pt()<2){
3048 
3049  //300-500MeV
3050  if(aodtrackassoc->Pt()>.3&&aodtrackassoc->Pt()<.5){
3051  if(MBtrg){
3052  fHistDPhi300_500_MB[0]->Fill(DPhi);
3053  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3054  }
3055  if(EMC7trg){
3056  fHistDPhi300_500_EMC7[0]->Fill(DPhi);
3057  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3058  }
3059  if(EMCJettrg){
3060  fHistDPhi300_500_EMCJet[0]->Fill(DPhi);
3061  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3062  }
3063  }
3064 
3065  //500MeV
3066  if(aodtrackassoc->Pt()>.5&&aodtrackassoc->Pt()<.8){
3067  if(MBtrg){
3068  fHistDPhi500_800_MB[0]->Fill(DPhi);
3069  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3070  }
3071  if(EMC7trg){
3072  fHistDPhi500_800_EMC7[0]->Fill(DPhi);
3073  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3074  }
3075  if(EMCJettrg){
3076  fHistDPhi500_800_EMCJet[0]->Fill(DPhi);
3077  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3078  }
3079  }
3080 
3081  //800MeV
3082  if(aodtrackassoc->Pt()>.8&&aodtrackassoc->Pt()<1){
3083  if(MBtrg){
3084  fHistDPhi800_1_MB[0]->Fill(DPhi);
3085  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3086  }
3087  if(EMC7trg){
3088  fHistDPhi800_1_EMC7[0]->Fill(DPhi);
3089  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3090  }
3091  if(EMCJettrg){
3092  fHistDPhi800_1_EMCJet[0]->Fill(DPhi);
3093  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3094  }
3095  }
3096 
3097  //1GeV
3098  if(aodtrackassoc->Pt()>1&&aodtrackassoc->Pt()<2){
3099  if(MBtrg){
3100  fHistDPhi1_2_MB[0]->Fill(DPhi);
3101  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3102  }
3103  if(EMC7trg){
3104  fHistDPhi1_2_EMC7[0]->Fill(DPhi);
3105  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3106  }
3107  if(EMCJettrg){
3108  fHistDPhi1_2_EMCJet[0]->Fill(DPhi);
3109  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3110  }
3111  }
3112 
3113  //2GeV
3114  if(aodtrackassoc->Pt()>2&&aodtrackassoc->Pt()<3){
3115  if(MBtrg){
3116  fHistDPhi2_3_MB[0]->Fill(DPhi);
3117  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3118  }
3119  if(EMC7trg){
3120  fHistDPhi2_3_EMC7[0]->Fill(DPhi);
3121  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3122  }
3123  if(EMCJettrg){
3124  fHistDPhi2_3_EMCJet[0]->Fill(DPhi);
3125  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3126  }
3127  }
3128 
3129  //3GeV
3130  if(aodtrackassoc->Pt()>3&&aodtrackassoc->Pt()<4){
3131  if(MBtrg){
3132  fHistDPhi3_4_MB[0]->Fill(DPhi);
3133  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3134  }
3135  if(EMC7trg){
3136  fHistDPhi3_4_EMC7[0]->Fill(DPhi);
3137  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3138  }
3139  if(EMCJettrg){
3140  fHistDPhi3_4_EMCJet[0]->Fill(DPhi);
3141  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3142  }
3143  }
3144 
3145  //5GeV
3146  if(aodtrackassoc->Pt()>4){
3147  if(MBtrg){
3148  fHistDPhi4_MB[0]->Fill(DPhi);
3149  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3150  }
3151  if(EMC7trg){
3152  fHistDPhi4_EMC7[0]->Fill(DPhi);
3153  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3154  }
3155  if(EMCJettrg){
3156  fHistDPhi4_EMCJet[0]->Fill(DPhi);
3157  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3158  }
3159  }
3160  }
3161 
3162  //candidate 2<pt<4
3163  if(aodtrack->Pt()>2&&aodtrack->Pt()<4){
3164 
3165  //300MeV
3166  if(aodtrackassoc->Pt()>.3&&aodtrackassoc->Pt()<.5){
3167  if(MBtrg){
3168  fHistDPhi300_500_MB[1]->Fill(DPhi);
3169  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3170  }
3171  if(EMC7trg){
3172  fHistDPhi300_500_EMC7[1]->Fill(DPhi);
3173  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3174  }
3175  if(EMCJettrg){
3176  fHistDPhi300_500_EMCJet[1]->Fill(DPhi);
3177  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3178  }
3179  }
3180 
3181  //500MeV
3182  if(aodtrackassoc->Pt()>.5&&aodtrackassoc->Pt()<.8){
3183  if(MBtrg){
3184  fHistDPhi500_800_MB[1]->Fill(DPhi);
3185  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3186  }
3187  if(EMC7trg){
3188  fHistDPhi500_800_EMC7[1]->Fill(DPhi);
3189  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3190  }
3191  if(EMCJettrg){
3192  fHistDPhi500_800_EMCJet[1]->Fill(DPhi);
3193  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3194  }
3195  }
3196 
3197  //800MeV
3198  if(aodtrackassoc->Pt()>.8&&aodtrackassoc->Pt()<1){
3199  if(MBtrg){
3200  fHistDPhi800_1_MB[1]->Fill(DPhi);
3201  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3202  }
3203  if(EMC7trg){
3204  fHistDPhi800_1_EMC7[1]->Fill(DPhi);
3205  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3206  }
3207  if(EMCJettrg){
3208  fHistDPhi800_1_EMCJet[1]->Fill(DPhi);
3209  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3210  }
3211  }
3212 
3213  //1GeV
3214  if(aodtrackassoc->Pt()>1&&aodtrackassoc->Pt()<2){
3215  if(MBtrg){
3216  fHistDPhi1_2_MB[1]->Fill(DPhi);
3217  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3218  }
3219  if(EMC7trg){
3220  fHistDPhi1_2_EMC7[1]->Fill(DPhi);
3221  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3222  }
3223  if(EMCJettrg){
3224  fHistDPhi1_2_EMCJet[1]->Fill(DPhi);
3225  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3226  }
3227  }
3228 
3229  //2GeV
3230  if(aodtrackassoc->Pt()>2&&aodtrackassoc->Pt()<3){
3231  if(MBtrg){
3232  fHistDPhi2_3_MB[1]->Fill(DPhi);
3233  fHistDPhi28_MB->Fill(DPhi);
3234  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
3235  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3236  }
3237  if(EMC7trg){
3238  fHistDPhi2_3_EMC7[1]->Fill(DPhi);
3239  fHistDPhi28_EMC7->Fill(DPhi);
3240  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
3241  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3242  }
3243  if(EMCJettrg){
3244  fHistDPhi2_3_EMCJet[1]->Fill(DPhi);
3245  fHistDPhi28_EMCJet->Fill(DPhi);
3246  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
3247  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3248  }
3249  }
3250 
3251  //3GeV
3252  if(aodtrackassoc->Pt()>3&&aodtrackassoc->Pt()<4){
3253  if(MBtrg){
3254  fHistDPhi3_4_MB[1]->Fill(DPhi);
3255  fHistDPhi28_MB->Fill(DPhi);
3256  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
3257  fHistDPhi18Spe_MB->Fill(DPhi,PID);
3258  }
3259  if(EMC7trg){
3260  fHistDPhi3_4_EMC7[1]->Fill(DPhi);
3261  fHistDPhi28_EMC7->Fill(DPhi);
3262  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
3263  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3264  }
3265  if(EMCJettrg){
3266  fHistDPhi3_4_EMCJet[1]->Fill(DPhi);
3267  fHistDPhi28_EMCJet->Fill(DPhi);
3268  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
3269  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3270  }
3271  }
3272 
3273  //5GeV
3274  if(aodtrackassoc->Pt()>4){
3275  if(MBtrg){
3276  fHistDPhi4_MB[1]->Fill(DPhi);
3277  fHistDPhi28_MB->Fill(DPhi);
3278  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
3279  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3280  }
3281  if(EMC7trg){
3282  fHistDPhi4_EMC7[1]->Fill(DPhi);
3283  fHistDPhi28_EMC7->Fill(DPhi);
3284  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
3285  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3286  }
3287  if(EMCJettrg){
3288  fHistDPhi4_EMCJet[1]->Fill(DPhi);
3289  fHistDPhi28_EMCJet->Fill(DPhi);
3290  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
3291  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3292  }
3293  }
3294  }
3295 
3296  //candidate 4<pt<8
3297  if(aodtrack->Pt()>4&&aodtrack->Pt()<8){
3298 
3299  //300MeV
3300  if(aodtrackassoc->Pt()>.3&&aodtrackassoc->Pt()<.5){
3301  if(MBtrg){
3302  fHistDPhi300_500_MB[2]->Fill(DPhi);
3303  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3304  }
3305  if(EMC7trg){
3306  fHistDPhi300_500_EMC7[2]->Fill(DPhi);
3307  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3308  }
3309  if(EMCJettrg){
3310  fHistDPhi300_500_EMCJet[2]->Fill(DPhi);
3311  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3312  }
3313  }
3314 
3315  //500MeV
3316  if(aodtrackassoc->Pt()>.5&&aodtrackassoc->Pt()<.8){
3317  if(MBtrg){
3318  fHistDPhi500_800_MB[2]->Fill(DPhi);
3319  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3320  }
3321  if(EMC7trg){
3322  fHistDPhi500_800_EMC7[2]->Fill(DPhi);
3323  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3324  }
3325  if(EMCJettrg){
3326  fHistDPhi500_800_EMCJet[2]->Fill(DPhi);
3327  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3328  }
3329  }
3330 
3331  //800MeV
3332  if(aodtrackassoc->Pt()>.8&&aodtrackassoc->Pt()<1){
3333  if(MBtrg){
3334  fHistDPhi800_1_MB[2]->Fill(DPhi);
3335  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3336  }
3337  if(EMC7trg){
3338  fHistDPhi800_1_EMC7[2]->Fill(DPhi);
3339  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3340  }
3341  if(EMCJettrg){
3342  fHistDPhi800_1_EMCJet[2]->Fill(DPhi);
3343  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3344  }
3345  }
3346 
3347  //1GeV
3348  if(aodtrackassoc->Pt()>1&&aodtrackassoc->Pt()<2){
3349  if(MBtrg){
3350  fHistDPhi1_2_MB[2]->Fill(DPhi);
3351  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3352  }
3353  if(EMC7trg){
3354  fHistDPhi1_2_EMC7[2]->Fill(DPhi);
3355  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3356  }
3357  if(EMCJettrg){
3358  fHistDPhi1_2_EMCJet[2]->Fill(DPhi);
3359  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3360  }
3361  }
3362 
3363  //2GeV
3364  if(aodtrackassoc->Pt()>2&&aodtrackassoc->Pt()<3){
3365  if(MBtrg){
3366  fHistDPhi2_3_MB[2]->Fill(DPhi);
3367  fHistDPhi28_MB->Fill(DPhi);
3368  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
3369  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3370  }
3371  if(EMC7trg){
3372  fHistDPhi2_3_EMC7[2]->Fill(DPhi);
3373  fHistDPhi28_EMC7->Fill(DPhi);
3374  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
3375  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3376  }
3377  if(EMCJettrg){
3378  fHistDPhi2_3_EMCJet[2]->Fill(DPhi);
3379  fHistDPhi28_EMCJet->Fill(DPhi);
3380  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
3381  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3382  }
3383  }
3384 
3385  //3GeV
3386  if(aodtrackassoc->Pt()>3&&aodtrackassoc->Pt()<4){
3387  if(MBtrg){
3388  fHistDPhi3_4_MB[2]->Fill(DPhi);
3389  fHistDPhi28_MB->Fill(DPhi);
3390  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
3391  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3392  }
3393  if(EMC7trg){
3394  fHistDPhi3_4_EMC7[2]->Fill(DPhi);
3395  fHistDPhi28_EMC7->Fill(DPhi);
3396  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
3397  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3398  }
3399  if(EMCJettrg){
3400  fHistDPhi3_4_EMCJet[2]->Fill(DPhi);
3401  fHistDPhi28_EMCJet->Fill(DPhi);
3402  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
3403  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3404  }
3405  }
3406 
3407  //5GeV
3408  if(aodtrackassoc->Pt()>4){
3409  if(MBtrg){
3410  fHistDPhi4_MB[2]->Fill(DPhi);
3411  fHistDPhi28_MB->Fill(DPhi);
3412  fHistDPhiDEta28_MB->Fill(DPhi, DEta);
3413  fHistDPhi18Spe_MB->Fill(DPhi, PID);
3414  }
3415  if(EMC7trg){
3416  fHistDPhi4_EMC7[2]->Fill(DPhi);
3417  fHistDPhi28_EMC7->Fill(DPhi);
3418  fHistDPhiDEta28_EMC7->Fill(DPhi, DEta);
3419  fHistDPhi18Spe_EMC7->Fill(DPhi, PID);
3420  }
3421  if(EMCJettrg){
3422  fHistDPhi4_EMCJet[2]->Fill(DPhi);
3423  fHistDPhi28_EMCJet->Fill(DPhi);
3424  fHistDPhiDEta28_EMCJet->Fill(DPhi, DEta);
3425  fHistDPhi18Spe_EMCJet->Fill(DPhi, PID);
3426  }
3427  }
3428  }
3429 
3430  }
3431  PostData(1, fOutputMB);
3432  PostData(2, fOutputEMC7);
3433  PostData(3, fOutputEMCJet);
3434  return;
3435 }
3436 
3437 void AliAnalysisTaskPSHFE::SetTrackCuts(AliESDtrackCuts *gtrkCuts, AliESDtrackCuts *ctrkCuts){
3438  cout<<"assigning hybrid track cuts \n";
3439  globaltrackCuts=gtrkCuts;
3440  comptrackCuts=ctrkCuts;
3441 }
3442 
3444  trackCutsStrong=trkCutBool;
3445 }
3446 
3448  applySSCuts=SSCutBool;
3449 }
3450 
3451 void AliAnalysisTaskPSHFE::FillPhotoElecHistos(AliESDEvent *esd, AliESDtrack *esdtrack, AliPIDResponse *fPIDResponse, Int_t i){
3452 
3453  if(!esdtrack){
3454  AliWarning("esdtrack is null, no point in doing Photonic Electron stuff");
3455  return;
3456  }
3457 
3458  Bool_t isElec=kFALSE;
3459  Double_t ElecMass=.0005109989;
3460  //Fill TOF and TPC status variables
3461  AliPIDResponse::EDetPidStatus TPCStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTPC, esdtrack);
3462 
3463  AliPIDResponse::EDetPidStatus TRDStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTRD, esdtrack);
3464 
3465  AliPIDResponse::EDetPidStatus EMCStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kEMCAL, esdtrack);
3466 
3467  //Check validity of PID, TODO: Add a rejection histogram
3468  if(TPCStatus!=AliPIDResponse::kDetPidOk){
3469  return;
3470  }
3471 
3472  if(TRDStatus!=AliPIDResponse::kDetPidOk){
3473  return;
3474  }
3475 
3476  if(EMCStatus!=AliPIDResponse::kDetPidOk){
3477  return;
3478  }
3479 
3480 
3481  //Get the # of sigmas around an electron hypothesis for TOF and TPC
3482  Double_t nSigmaTPC;
3483  nSigmaTPC = fPIDResponse->NumberOfSigmasTPC(esdtrack,AliPID::kElectron);
3484 
3485  Double_t elecLikeTRD[1];
3486  if(fPIDResponse->ComputeTRDProbability(esdtrack, AliPID::kElectron, elecLikeTRD, AliTRDPIDResponse::kLQ2D) != AliPIDResponse::kDetPidOk || esdtrack->GetTRDntrackletsPID()<4){
3487  return;
3488  }
3489 
3490  //declare emcal cluster PID variables
3491  Double_t EOP=-1;
3492  Int_t caloId=esdtrack->GetEMCALcluster();
3493 
3494  if(caloId==-99999){
3495  return;
3496  }
3497 
3498  AliESDCaloCluster* tagEMCclus=esd->GetCaloCluster(caloId);
3499 
3500  EOP = tagEMCclus->E()/esdtrack->Pt();
3501 
3502  if((nSigmaTPC<2&&nSigmaTPC>-2)||(EOP<1.4&&EOP>.8)||(elecLikeTRD[0]>.8)){
3503  isElec=kTRUE;
3504  }
3505 
3506  if(!isElec){return;}
3507 
3508  Int_t ntracks=esd->GetNumberOfTracks();
3509 
3510  for(Int_t j = 0; j < ntracks; j++) {
3511 
3512  //Don't double count the tagged tracks
3513  if(i==j){continue;}
3514 
3515  AliESDtrack* esdtrackassoc = (AliESDtrack*)esd->GetTrack(j); // pointer to reconstructed to track
3516 
3517  if(!esdtrackassoc) {
3518  AliError(Form("ERROR: Could not retrieve esdtrack %d",j));
3519  continue;
3520  }
3521 
3522  //Do hybrid track cuts
3523  if(!globaltrackCuts->AcceptTrack(esdtrackassoc)&&!comptrackCuts->AcceptTrack(esdtrackassoc)){continue;}
3524 
3525  Bool_t isElecToo=kFALSE;
3526 
3527  //Fill TOF and TPC status variables
3528  AliPIDResponse::EDetPidStatus TPCStatusassoc=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTPC, esdtrackassoc);
3529 
3530  AliPIDResponse::EDetPidStatus TRDStatusassoc=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTRD, esdtrackassoc);
3531 
3532  //Check validity of PID, TODO: Add a rejection histogram
3533  if(TPCStatusassoc!=AliPIDResponse::kDetPidOk){
3534  continue;
3535  }
3536 
3537  if(TRDStatusassoc!=AliPIDResponse::kDetPidOk){
3538  continue;
3539  }
3540 
3541 
3542  //Get the # of sigmas around an electron hypothesis for TOF and TPC
3543  Double_t nSigmaTPCassoc;
3544  nSigmaTPCassoc = fPIDResponse->NumberOfSigmasTPC(esdtrackassoc,AliPID::kElectron);
3545 
3546  Double_t elecLikeTRDassoc[1];
3547  if(fPIDResponse->ComputeTRDProbability(esdtrackassoc, AliPID::kElectron, elecLikeTRDassoc, AliTRDPIDResponse::kLQ2D) != AliPIDResponse::kDetPidOk || esdtrackassoc->GetTRDntrackletsPID()<4){
3548  return;
3549  }
3550 
3551  if((nSigmaTPCassoc<2&&nSigmaTPCassoc>-2)||(elecLikeTRDassoc[0]>.8)){
3552  isElecToo=kTRUE;
3553  }
3554 
3555  if(!isElecToo){continue;}
3556 
3557  Double_t elecE1=TMath::Sqrt(esdtrack->P()*esdtrack->P()+ElecMass*ElecMass);
3558  Double_t elecE2=TMath::Sqrt(esdtrackassoc->P()*esdtrackassoc->P()+ElecMass*ElecMass);
3559 
3560  TLorentzVector elec1(esdtrack->Px(), esdtrack->Py(), esdtrack->Pz(), elecE1);
3561  TLorentzVector elec2(esdtrackassoc->Px(), esdtrackassoc->Py(), esdtrackassoc->Pz(), elecE2);
3562 
3563  Double_t InvMass=(elec1+elec2).M();
3564  Double_t OpAng=elec1.Angle(elec2.Vect());
3565 
3566  if(esdtrack->GetSign()==esdtrackassoc->GetSign()){
3567 
3568  if(MBtrg){
3569  fHistInvMassElecLike_MB->Fill(InvMass);
3570  fHistOpAngElecLike_MB->Fill(OpAng);
3571  }
3572 
3573  if(EMC7trg){
3574  fHistInvMassElecLike_EMC7->Fill(InvMass);
3575  fHistOpAngElecLike_EMC7->Fill(OpAng);
3576  }
3577 
3578  if(EMCJettrg){
3579  fHistInvMassElecLike_EMCJet->Fill(InvMass);
3580  fHistOpAngElecLike_EMCJet->Fill(OpAng);
3581  }
3582 
3583  }else{
3584  if(InvMass<0.1&&OpAng<0.1){tagPhot=kTRUE;}
3585  if(MBtrg){
3586  fHistInvMassElecUnLike_MB->Fill(InvMass);
3587  fHistOpAngElecUnLike_MB->Fill(OpAng);
3588  }
3589 
3590  if(EMC7trg){
3591  fHistInvMassElecUnLike_EMC7->Fill(InvMass);
3592  fHistOpAngElecUnLike_EMC7->Fill(OpAng);
3593  }
3594 
3595  if(EMCJettrg){
3596  fHistInvMassElecUnLike_EMCJet->Fill(InvMass);
3597  fHistOpAngElecUnLike_EMCJet->Fill(OpAng);
3598  }
3599  }
3600  }//end loop over tracks
3601 
3602  PostData(1, fOutputMB);
3603  PostData(2, fOutputEMC7);
3604  PostData(3, fOutputEMCJet);
3605  return;
3606 }
3607 
3608 void AliAnalysisTaskPSHFE::FillPhotoElecHistos(AliAODEvent *aod, AliAODTrack *aodtrack, AliPIDResponse *fPIDResponse, Int_t i){
3609 
3610  if(!aodtrack){
3611  AliWarning("aodtrack is null, no point in doing Photonic Electron stuff");
3612  return;
3613  }
3614 
3615  Bool_t isElec=kFALSE;
3616  Double_t ElecMass=.0005109989;
3617  //Fill TOF and TPC status variables
3618  AliPIDResponse::EDetPidStatus TPCStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTPC, aodtrack);
3619 
3620  AliPIDResponse::EDetPidStatus TRDStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTRD, aodtrack);
3621 
3622  AliPIDResponse::EDetPidStatus EMCStatus=fPIDResponse->CheckPIDStatus(AliPIDResponse::kEMCAL, aodtrack);
3623 
3624  //Check validity of PID, TODO: Add a rejection histogram
3625  if(TPCStatus!=AliPIDResponse::kDetPidOk){
3626  return;
3627  }
3628 
3629  if(TRDStatus!=AliPIDResponse::kDetPidOk){
3630  return;
3631  }
3632 
3633  if(EMCStatus!=AliPIDResponse::kDetPidOk){
3634  return;
3635  }
3636 
3637 
3638  //Get the # of sigmas around an electron hypothesis for TOF and TPC
3639  Double_t nSigmaTPC;
3640  nSigmaTPC = fPIDResponse->NumberOfSigmasTPC(aodtrack,AliPID::kElectron);
3641 
3642  Double_t elecLikeTRD[1];
3643  if(fPIDResponse->ComputeTRDProbability(aodtrack, AliPID::kElectron, elecLikeTRD, AliTRDPIDResponse::kLQ2D) != AliPIDResponse::kDetPidOk || aodtrack->GetTRDntrackletsPID()<4){
3644  return;
3645  }
3646 
3647  //declare emcal cluster PID variables
3648  Double_t EOP=-1;
3649  Int_t caloId=aodtrack->GetEMCALcluster();
3650 
3651  if(caloId==-99999){
3652  return;
3653  }
3654 
3655  AliAODCaloCluster* tagEMCclus=aod->GetCaloCluster(caloId);
3656 
3657  EOP = tagEMCclus->E()/aodtrack->Pt();
3658 
3659  if((nSigmaTPC<2&&nSigmaTPC>-2)||(EOP<1.4&&EOP>.8)||(elecLikeTRD[0]>.8)){
3660  isElec=kTRUE;
3661  }
3662 
3663  if(!isElec){return;}
3664 
3665  Int_t ntracks=aod->GetNumberOfTracks();
3666 
3667  for(Int_t j = 0; j < ntracks; j++) {
3668 
3669  //Don't double count the tagged tracks
3670  if(i==j){continue;}
3671 
3672  AliAODTrack* aodtrackassoc = (AliAODTrack*)aod->GetTrack(j); // pointer to reconstructed to track
3673 
3674  if(!aodtrackassoc) {
3675  AliError(Form("ERROR: Could not retrieve aodtrack %d",j));
3676  continue;
3677  }
3678 
3679  //Do hybrid track cuts
3680  if(aodtrackassoc->IsHybridGlobalConstrainedGlobal()){continue;}
3681 
3682  Bool_t isElecToo=kFALSE;
3683 
3684  //Fill TOF and TPC status variables
3685  AliPIDResponse::EDetPidStatus TPCStatusassoc=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTPC, aodtrackassoc);
3686 
3687  AliPIDResponse::EDetPidStatus TRDStatusassoc=fPIDResponse->CheckPIDStatus(AliPIDResponse::kTRD, aodtrackassoc);
3688 
3689  //Check validity of PID, TODO: Add a rejection histogram
3690  if(TPCStatusassoc!=AliPIDResponse::kDetPidOk){
3691  continue;
3692  }
3693 
3694  if(TRDStatusassoc!=AliPIDResponse::kDetPidOk){
3695  continue;
3696  }
3697 
3698 
3699  //Get the # of sigmas around an electron hypothesis for TOF and TPC
3700  Double_t nSigmaTPCassoc;
3701  nSigmaTPCassoc = fPIDResponse->NumberOfSigmasTPC(aodtrackassoc,AliPID::kElectron);
3702 
3703  Double_t elecLikeTRDassoc[1];
3704  if(fPIDResponse->ComputeTRDProbability(aodtrackassoc, AliPID::kElectron, elecLikeTRDassoc, AliTRDPIDResponse::kLQ2D) != AliPIDResponse::kDetPidOk || aodtrackassoc->GetTRDntrackletsPID()<4){
3705  return;
3706  }
3707 
3708  if((nSigmaTPCassoc<2&&nSigmaTPCassoc>-2)||(elecLikeTRDassoc[0]>.8)){
3709  isElecToo=kTRUE;
3710  }
3711 
3712  if(!isElecToo){continue;}
3713 
3714  Double_t elecE1=TMath::Sqrt(aodtrack->P()*aodtrack->P()+ElecMass*ElecMass);
3715  Double_t elecE2=TMath::Sqrt(aodtrackassoc->P()*aodtrackassoc->P()+ElecMass*ElecMass);
3716 
3717  TLorentzVector elec1(aodtrack->Px(), aodtrack->Py(), aodtrack->Pz(), elecE1);
3718  TLorentzVector elec2(aodtrackassoc->Px(), aodtrackassoc->Py(), aodtrackassoc->Pz(), elecE2);
3719 
3720  Double_t InvMass=(elec1+elec2).M();
3721  Double_t OpAng=elec1.Angle(elec2.Vect());
3722 
3723  if(aodtrack->GetSign()==aodtrackassoc->GetSign()){
3724 
3725  if(MBtrg){
3726  fHistInvMassElecLike_MB->Fill(InvMass);
3727  fHistOpAngElecLike_MB->Fill(OpAng);
3728  }
3729 
3730  if(EMC7trg){
3731  fHistInvMassElecLike_EMC7->Fill(InvMass);
3732  fHistOpAngElecLike_EMC7->Fill(OpAng);
3733  }
3734 
3735  if(EMCJettrg){
3736  fHistInvMassElecLike_EMCJet->Fill(InvMass);
3737  fHistOpAngElecLike_EMCJet->Fill(OpAng);
3738  }
3739 
3740  }else{
3741  if(InvMass<0.1&&OpAng<0.1){tagPhot=kTRUE;}
3742  if(MBtrg){
3743  fHistInvMassElecUnLike_MB->Fill(InvMass);
3744  fHistOpAngElecUnLike_MB->Fill(OpAng);
3745  }
3746 
3747  if(EMC7trg){
3748  fHistInvMassElecUnLike_EMC7->Fill(InvMass);
3749  fHistOpAngElecUnLike_EMC7->Fill(OpAng);
3750  }
3751 
3752  if(EMCJettrg){
3753  fHistInvMassElecUnLike_EMCJet->Fill(InvMass);
3754  fHistOpAngElecUnLike_EMCJet->Fill(OpAng);
3755  }
3756  }
3757  }//end loop over tracks
3758 
3759  PostData(1, fOutputMB);
3760  PostData(2, fOutputEMC7);
3761  PostData(3, fOutputEMCJet);
3762  return;
3763 }
3764 
3766 {
3767  if(!aod){AliWarning("Invalid AOD Event");}
3768  Int_t nTracks = aod->GetNumberOfTracks();
3769  TObjArray* accTracks = new TObjArray;
3770 
3771  for(Int_t i=0;i<nTracks;i++){
3772  AliAODTrack *aodtrack = (AliAODTrack*)aod->GetTrack(i);
3773 
3774  if(!aodtrack){
3775  continue;
3776  }
3777 
3778  if(aodtrack->IsHybridGlobalConstrainedGlobal()){
3779  continue;
3780  }
3781 
3782  accTracks->Add(new AliAODTrack(*aodtrack));
3783  }
3784 
3785  return accTracks;
3786 }
3787 
3788 void AliAnalysisTaskPSHFE::FillMEDPhiHistos(AliAODTrack *aodtrack)
3789 {
3790  Int_t nEvents = fPool->GetCurrentNEvents();
3791 
3792  for(Int_t Ev=0;Ev<nEvents;Ev++){
3793 
3794  TObjArray *mixedTracks = fPool->GetEvent(Ev);
3795 
3796  Int_t nMixedTracks = mixedTracks->GetEntriesFast();
3797 
3798  for(Int_t j=0;j<nMixedTracks;j++){
3799  AliAODTrack* aodtrackassoc = (AliAODTrack*)mixedTracks->At(j); // pointer to reconstructed to track
3800 
3801  if(!aodtrackassoc) {
3802  AliError(Form("ERROR: Could not retrieve aodtrack %d",j));
3803  continue;
3804  }
3805 
3806  //Do hybrid track cuts
3807  if(aodtrackassoc->IsHybridGlobalConstrainedGlobal()){continue;}
3808 
3809  //Pt distribution
3810  if(MBtrg){
3811  fHistPtAssocMix_MB->Fill(aodtrackassoc->Pt());
3812  }
3813  if(EMC7trg){
3814  fHistPtAssocMix_EMC7->Fill(aodtrackassoc->Pt());
3815  }
3816 
3817  if(EMCJettrg){
3818  fHistPtAssocMix_EMCJet->Fill(aodtrackassoc->Pt());
3819  }
3820 
3821  //Fill Delta Phi variable and correct for periodicity
3822  Double_t DPhi=aodtrackassoc->Phi()-aodtrack->Phi();
3823 
3824  if(DPhi<-TMath::Pi()/2){DPhi=TMath::Abs(2*TMath::Pi()+DPhi);}
3825 
3826  if(DPhi>3*TMath::Pi()/2){DPhi=-TMath::Abs(2*TMath::Pi()-DPhi);}
3827 
3828  Double_t DEta=aodtrackassoc->Eta()-aodtrack->Eta();
3829 
3830  //candidate 1<pt<2
3831  if(aodtrack->Pt()>1&&aodtrack->Pt()<2){
3832 
3833  //300-500MeV
3834  if(aodtrackassoc->Pt()>.3&&aodtrackassoc->Pt()<.5){
3835  if(MBtrg){
3836  fHistDPhiMix300_500_MB[0]->Fill(DPhi);
3837  }
3838  if(EMC7trg){
3839  fHistDPhiMix300_500_EMC7[0]->Fill(DPhi);
3840  }
3841  if(EMCJettrg){
3842  fHistDPhiMix300_500_EMCJet[0]->Fill(DPhi);
3843  }
3844  }
3845 
3846  //500MeV
3847  if(aodtrackassoc->Pt()>.5&&aodtrackassoc->Pt()<.8){
3848  if(MBtrg){
3849  fHistDPhiMix500_800_MB[0]->Fill(DPhi);
3850  }
3851  if(EMC7trg){
3852  fHistDPhiMix500_800_EMC7[0]->Fill(DPhi);
3853  }
3854  if(EMCJettrg){
3855  fHistDPhiMix500_800_EMCJet[0]->Fill(DPhi);
3856  }
3857  }
3858 
3859  //800MeV
3860  if(aodtrackassoc->Pt()>.8&&aodtrackassoc->Pt()<1){
3861  if(MBtrg){
3862  fHistDPhiMix800_1_MB[0]->Fill(DPhi);
3863  }
3864  if(EMC7trg){
3865  fHistDPhiMix800_1_EMC7[0]->Fill(DPhi);
3866  }
3867  if(EMCJettrg){
3868  fHistDPhiMix800_1_EMCJet[0]->Fill(DPhi);
3869  }
3870  }
3871 
3872  //1GeV
3873  if(aodtrackassoc->Pt()>1&&aodtrackassoc->Pt()<2){
3874  if(MBtrg){
3875  fHistDPhiMix1_2_MB[0]->Fill(DPhi);
3876  }
3877  if(EMC7trg){
3878  fHistDPhiMix1_2_EMC7[0]->Fill(DPhi);
3879  }
3880  if(EMCJettrg){
3881  fHistDPhiMix1_2_EMCJet[0]->Fill(DPhi);
3882  }
3883  }
3884 
3885  //2GeV
3886  if(aodtrackassoc->Pt()>2&&aodtrackassoc->Pt()<3){
3887  if(MBtrg){
3888  fHistDPhiMix2_3_MB[0]->Fill(DPhi);
3889  }
3890  if(EMC7trg){
3891  fHistDPhiMix2_3_EMC7[0]->Fill(DPhi);
3892  }
3893  if(EMCJettrg){
3894  fHistDPhiMix2_3_EMCJet[0]->Fill(DPhi);
3895  }
3896  }
3897 
3898  //3GeV
3899  if(aodtrackassoc->Pt()>3&&aodtrackassoc->Pt()<4){
3900  if(MBtrg){
3901  fHistDPhiMix3_4_MB[0]->Fill(DPhi);
3902  }
3903  if(EMC7trg){
3904  fHistDPhiMix3_4_EMC7[0]->Fill(DPhi);
3905  }
3906  if(EMCJettrg){
3907  fHistDPhiMix3_4_EMCJet[0]->Fill(DPhi);
3908  }
3909  }
3910 
3911  //5GeV
3912  if(aodtrackassoc->Pt()>4){
3913  if(MBtrg){
3914  fHistDPhiMix4_MB[0]->Fill(DPhi);
3915  }
3916  if(EMC7trg){
3917  fHistDPhiMix4_EMC7[0]->Fill(DPhi);
3918  }
3919  if(EMCJettrg){
3920  fHistDPhiMix4_EMCJet[0]->Fill(DPhi);
3921  }
3922  }
3923  }
3924 
3925  //candidate 2<pt<4
3926  if(aodtrack->Pt()>2&&aodtrack->Pt()<4){
3927 
3928  //300MeV
3929  if(aodtrackassoc->Pt()>.3&&aodtrackassoc->Pt()<.5){
3930  if(MBtrg){
3931  fHistDPhiMix300_500_MB[1]->Fill(DPhi);
3932  }
3933  if(EMC7trg){
3934  fHistDPhiMix300_500_EMC7[1]->Fill(DPhi);
3935  }
3936  if(EMCJettrg){
3937  fHistDPhiMix300_500_EMCJet[1]->Fill(DPhi);
3938  }
3939  }
3940 
3941  //500MeV
3942  if(aodtrackassoc->Pt()>.5&&aodtrackassoc->Pt()<.8){
3943  if(MBtrg){
3944  fHistDPhiMix500_800_MB[1]->Fill(DPhi);
3945  }
3946  if(EMC7trg){
3947  fHistDPhiMix500_800_EMC7[1]->Fill(DPhi);
3948  }
3949  if(EMCJettrg){
3950  fHistDPhiMix500_800_EMCJet[1]->Fill(DPhi);
3951  }
3952  }
3953 
3954  //800MeV
3955  if(aodtrackassoc->Pt()>.8&&aodtrackassoc->Pt()<1){
3956  if(MBtrg){
3957  fHistDPhiMix800_1_MB[1]->Fill(DPhi);
3958  }
3959  if(EMC7trg){
3960  fHistDPhiMix800_1_EMC7[1]->Fill(DPhi);
3961  }
3962  if(EMCJettrg){
3963  fHistDPhiMix800_1_EMCJet[1]->Fill(DPhi);
3964  }
3965  }
3966 
3967  //1GeV
3968  if(aodtrackassoc->Pt()>1&&aodtrackassoc->Pt()<2){
3969  if(MBtrg){
3970  fHistDPhiMix1_2_MB[1]->Fill(DPhi);
3971  }
3972  if(EMC7trg){
3973  fHistDPhiMix1_2_EMC7[1]->Fill(DPhi);
3974  }
3975  if(EMCJettrg){
3976  fHistDPhiMix1_2_EMCJet[1]->Fill(DPhi);
3977  }
3978  }
3979 
3980  //2GeV
3981  if(aodtrackassoc->Pt()>2&&aodtrackassoc->Pt()<3){
3982  if(MBtrg){
3983  fHistDPhiMix2_3_MB[1]->Fill(DPhi);
3984  fHistDPhiMix28_MB->Fill(DPhi);
3985  fHistDPhiDEtaMix28_MB->Fill(DPhi, DEta);
3986  }
3987  if(EMC7trg){
3988  fHistDPhiMix2_3_EMC7[1]->Fill(DPhi);
3989  fHistDPhiMix28_EMC7->Fill(DPhi);
3990  fHistDPhiDEtaMix28_EMC7->Fill(DPhi, DEta);
3991  }
3992  if(EMCJettrg){
3993  fHistDPhiMix2_3_EMCJet[1]->Fill(DPhi);
3994  fHistDPhiMix28_EMCJet->Fill(DPhi);
3995  fHistDPhiDEtaMix28_EMCJet->Fill(DPhi, DEta);
3996  }
3997  }
3998 
3999  //3GeV
4000  if(aodtrackassoc->Pt()>3&&aodtrackassoc->Pt()<4){
4001  if(MBtrg){
4002  fHistDPhiMix3_4_MB[1]->Fill(DPhi);
4003  fHistDPhiMix28_MB->Fill(DPhi);
4004  fHistDPhiDEtaMix28_MB->Fill(DPhi, DEta);
4005  }
4006  if(EMC7trg){
4007  fHistDPhiMix3_4_EMC7[1]->Fill(DPhi);
4008  fHistDPhiMix28_EMC7->Fill(DPhi);
4009  fHistDPhiDEtaMix28_EMC7->Fill(DPhi, DEta);
4010  }
4011  if(EMCJettrg){
4012  fHistDPhiMix3_4_EMCJet[1]->Fill(DPhi);
4013  fHistDPhiMix28_EMCJet->Fill(DPhi);
4014  fHistDPhiDEtaMix28_EMCJet->Fill(DPhi, DEta);
4015  }
4016  }
4017 
4018  //5GeV
4019  if(aodtrackassoc->Pt()>4){
4020  if(MBtrg){
4021  fHistDPhiMix4_MB[1]->Fill(DPhi);
4022  fHistDPhiMix28_MB->Fill(DPhi);
4023  fHistDPhiDEtaMix28_MB->Fill(DPhi, DEta);
4024  }
4025  if(EMC7trg){
4026  fHistDPhiMix4_EMC7[1]->Fill(DPhi);
4027  fHistDPhiMix28_EMC7->Fill(DPhi);
4028  fHistDPhiDEtaMix28_EMC7->Fill(DPhi, DEta);
4029  }
4030  if(EMCJettrg){
4031  fHistDPhiMix4_EMCJet[1]->Fill(DPhi);
4032  fHistDPhiMix28_EMCJet->Fill(DPhi);
4033  fHistDPhiDEtaMix28_EMCJet->Fill(DPhi, DEta);
4034  }
4035  }
4036  }
4037 
4038  //candidate 4<pt<8
4039  if(aodtrack->Pt()>4&&aodtrack->Pt()<8){
4040 
4041  //300MeV
4042  if(aodtrackassoc->Pt()>.3&&aodtrackassoc->Pt()<.5){
4043  if(MBtrg){
4044  fHistDPhiMix300_500_MB[2]->Fill(DPhi);
4045  }
4046  if(EMC7trg){
4047  fHistDPhiMix300_500_EMC7[2]->Fill(DPhi);
4048  }
4049  if(EMCJettrg){
4050  fHistDPhiMix300_500_EMCJet[2]->Fill(DPhi);
4051  }
4052  }
4053 
4054  //500MeV
4055  if(aodtrackassoc->Pt()>.5&&aodtrackassoc->Pt()<.8){
4056  if(MBtrg){
4057  fHistDPhiMix500_800_MB[2]->Fill(DPhi);
4058  }
4059  if(EMC7trg){
4060  fHistDPhiMix500_800_EMC7[2]->Fill(DPhi);
4061  }
4062  if(EMCJettrg){
4063  fHistDPhiMix500_800_EMCJet[2]->Fill(DPhi);
4064  }
4065  }
4066 
4067  //800MeV
4068  if(aodtrackassoc->Pt()>.8&&aodtrackassoc->Pt()<1){
4069  if(MBtrg){
4070  fHistDPhiMix800_1_MB[2]->Fill(DPhi);
4071  }
4072  if(EMC7trg){
4073  fHistDPhiMix800_1_EMC7[2]->Fill(DPhi);
4074  }
4075  if(EMCJettrg){
4076  fHistDPhiMix800_1_EMCJet[2]->Fill(DPhi);
4077  }
4078  }
4079 
4080  //1GeV
4081  if(aodtrackassoc->Pt()>1&&aodtrackassoc->Pt()<2){
4082  if(MBtrg){
4083  fHistDPhiMix1_2_MB[2]->Fill(DPhi);
4084  }
4085  if(EMC7trg){
4086  fHistDPhiMix1_2_EMC7[2]->Fill(DPhi);
4087  }
4088  if(EMCJettrg){
4089  fHistDPhiMix1_2_EMCJet[2]->Fill(DPhi);
4090  }
4091  }
4092 
4093  //2GeV
4094  if(aodtrackassoc->Pt()>2&&aodtrackassoc->Pt()<3){
4095  if(MBtrg){
4096  fHistDPhiMix2_3_MB[2]->Fill(DPhi);
4097  fHistDPhiMix28_MB->Fill(DPhi);
4098  fHistDPhiDEtaMix28_MB->Fill(DPhi, DEta);
4099  }
4100  if(EMC7trg){
4101  fHistDPhiMix2_3_EMC7[2]->Fill(DPhi);
4102  fHistDPhiMix28_EMC7->Fill(DPhi);
4103  fHistDPhiDEtaMix28_EMC7->Fill(DPhi, DEta);
4104  }
4105  if(EMCJettrg){
4106  fHistDPhiMix2_3_EMCJet[2]->Fill(DPhi);
4107  fHistDPhiMix28_EMCJet->Fill(DPhi);
4108  fHistDPhiDEtaMix28_EMCJet->Fill(DPhi, DEta);
4109  }
4110  }
4111 
4112  //3GeV
4113  if(aodtrackassoc->Pt()>3&&aodtrackassoc->Pt()<4){
4114  if(MBtrg){
4115  fHistDPhiMix3_4_MB[2]->Fill(DPhi);
4116  fHistDPhiMix28_MB->Fill(DPhi);
4117  fHistDPhiDEtaMix28_MB->Fill(DPhi, DEta);
4118  }
4119  if(EMC7trg){
4120  fHistDPhiMix3_4_EMC7[2]->Fill(DPhi);
4121  fHistDPhiMix28_EMC7->Fill(DPhi);
4122  fHistDPhiDEtaMix28_EMC7->Fill(DPhi, DEta);
4123  }
4124  if(EMCJettrg){
4125  fHistDPhiMix3_4_EMCJet[2]->Fill(DPhi);
4126  fHistDPhiMix28_EMCJet->Fill(DPhi);
4127  fHistDPhiDEtaMix28_EMCJet->Fill(DPhi, DEta);
4128  }
4129  }
4130 
4131  //5GeV
4132  if(aodtrackassoc->Pt()>4){
4133  if(MBtrg){
4134  fHistDPhiMix4_MB[2]->Fill(DPhi);
4135  fHistDPhiMix28_MB->Fill(DPhi);
4136  fHistDPhiDEtaMix28_MB->Fill(DPhi, DEta);
4137  }
4138  if(EMC7trg){
4139  fHistDPhiMix4_EMC7[2]->Fill(DPhi);
4140  fHistDPhiMix28_EMC7->Fill(DPhi);
4141  fHistDPhiDEtaMix28_EMC7->Fill(DPhi, DEta);
4142  }
4143  if(EMCJettrg){
4144  fHistDPhiMix4_EMCJet[2]->Fill(DPhi);
4145  fHistDPhiMix28_EMCJet->Fill(DPhi);
4146  fHistDPhiDEtaMix28_EMCJet->Fill(DPhi, DEta);
4147  }
4148  }
4149  }
4150  }
4151  }
4152  PostData(1, fOutputMB);
4153  PostData(2, fOutputEMC7);
4154  PostData(3, fOutputEMCJet);
4155  return;
4156 }
4157 
4158 //________________________________________________________________________
4160 {
4161 
4162 }
double Double_t
Definition: External.C:58
Definition: External.C:236
virtual void Terminate(Option_t *)
AliESDtrackCuts * globaltrackCuts
void SetTrackCuts(AliESDtrackCuts *gtrkCuts, AliESDtrackCuts *ctrkCuts)
void FillPIDHistos(AliESDEvent *esd, AliESDtrack *esdtrack, AliPIDResponse *fPIDResponse)
int Int_t
Definition: External.C:63
unsigned int UInt_t
Definition: External.C:33
void FillPhotoElecHistos(AliESDEvent *esd, AliESDtrack *esdtrack, AliPIDResponse *fPIDResponse, Int_t i)
float Float_t
Definition: External.C:68
TObjArray * MakeTrkArr(AliAODEvent *aod)
AliEventPoolManager * fPoolMan
void SetElectronTrackCuts(Bool_t trkCutBool)
AliESDtrackCuts * fTrackCutsWeak
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
ClassImp(AliAnalysisTaskPSHFE) AliAnalysisTaskPSHFE
Float_t nEvents[nProd]
void FillDPhiHistos(AliESDEvent *esd, AliESDtrack *esdtrack, Int_t i)
virtual void UserExec(Option_t *option)
virtual void UserCreateOutputObjects()
const char Option_t
Definition: External.C:48
void FillMEDPhiHistos(AliAODTrack *aodtrack)
AliESDtrackCuts * comptrackCuts
bool Bool_t
Definition: External.C:53
void SetSSCutBool(Bool_t SSCutBool)
TList * OpenFile(const char *fname)
Definition: DrawAnaELoss.C:65
AliESDtrackCuts * fTrackCutsStrong