]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/AliAnalysisTaskEMCALCaloTrackCorr.h
coverity fix
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALCaloTrackCorr.h
1 #ifndef ALIANALYSISTASKEMCALCALOTRACKCORR_cxx
2 #define ALIANALYSISTASKEMCALCALOTRACKCORR_cxx
3
4 class TList;
5 class TH1F;
6 class TH2F;
7 class TH1I;
8 class TString;
9 class TGeoHMatrix;
10 class TClonesArray;
11 class AliEMCALGeometry;
12 class AliEMCALRecoUtils;
13 class AliESDtrackCuts;
14 class AliESDEvent;
15 class AliMCEvent;
16 class AliStack;
17 class AliVCluster;
18 class AliFiducialCut;
19 class AliCaloTrackParticle;
20 class AliCentrality;
21 class AliEventplane;
22 class AliAnalysisManager;
23 class AliInputEventHandler;
24
25
26 #include "AliAnalysisTaskSE.h"
27
28 class AliAnalysisTaskEMCALCaloTrackCorr : public AliAnalysisTaskSE {
29 public:
30   AliAnalysisTaskEMCALCaloTrackCorr(const char *name = "AliAnalysisTaskEMCALCaloTrackCorr");
31   virtual ~AliAnalysisTaskEMCALCaloTrackCorr() {}
32   
33   virtual void   UserCreateOutputObjects();
34   virtual void   UserExec(Option_t *option);
35   virtual void   Terminate(Option_t *);
36
37 //  virtual  AliFiducialCut  *GetFiducialCut() { if(!fFidCut)  
38 //                      fFidCut = new AliFiducialCut(); return  fFidCut ; } 
39
40
41   enum type {kPtThresholdIC=0, kSumPtInConeIC=1, kPtFracationIC=2, kSumPtFracationIC=3};
42   enum particleInCone { kIsolatedNeutralAndCharged=0, kIsolatedOnlyNeutral=1, kIsolatedOnlyCharged=2  };  
43
44   Int_t    GetMinNCells()           const { return fMinNCells  ; }
45   Double_t GetMinE()                const { return fMinE       ; }
46   Double_t GetMinDistBad()          const { return fMinDistBad ; }  
47
48   Int_t    GetDebug()               const { return fDebug ; }
49   void     SetDebug(Int_t deb)            { fDebug = deb  ; }
50
51   Bool_t   IsDataMC()               const { return kMC ; }
52   void     SetMC(Bool_t mc)               { kMC = mc   ; }
53
54   TString  GetDataType()            const { return fDataType ; }
55   void     SetDataType(TString data)      { fDataType = data ; }
56
57   Int_t    GetHistoPtBins()         const { return fHistoPtBins  ; }
58   Float_t  GetHistoPtMin()          const { return fHistoPtMin   ; }
59   Float_t  GetHistoPtMax()          const { return fHistoPtMax   ; }
60
61   void    SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
62           {fHistoPtBins = n; fHistoPtMax = max; fHistoPtMin = min;}
63
64   Int_t    GetHistoPhiBins()        const { return fHistoPhiBins  ; }
65   Float_t  GetHistoPhiMin()         const { return fHistoPhiMin   ; }
66   Float_t  GetHistoPhiMax()         const { return fHistoPhiMax   ; }
67
68   void    SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n) 
69           {fHistoPhiBins = n; fHistoPhiMax = max; fHistoPhiMin = min;}
70
71   Int_t    GetHistoEtaBins()        const { return fHistoEtaBins  ; }
72   Float_t  GetHistoEtaMin()         const { return fHistoEtaMin   ; }
73   Float_t  GetHistoEtaMax()         const { return fHistoEtaMax   ; }
74
75   void    SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n) 
76           {fHistoEtaBins = n; fHistoEtaMax = max; fHistoEtaMin = min;}
77
78
79
80   Float_t  GetConeR()               const { return fSetConeR          ; }
81   Float_t  GetPtThreshold()         const { return fSetPtThreshold    ; }
82   Float_t  GetSumPtThreshold()      const { return fSetSumPtThreshold ; }
83   Float_t  GetPtFraction()          const { return fSetPtFraction     ; }
84   TString  GetICMethod()            const { return fICMethod          ; }
85   TString  GetParticleTypeInCone()  const { return fParticlesInCone    ; }
86   
87   void   SetMinNCells(Int_t n)                { fMinNCells   = n  ; }
88   void   SetMinE(Double_t pt)                 { fMinE        = pt ; }
89   void   SetMinDistBad(Double_t fn)           { fMinDistBad = fn ; }
90   
91   void   SetConeR(Float_t r)              { fSetConeR          = r       ; }
92   void   SetPtThreshold(Float_t pt)       { fSetPtThreshold    = pt      ; }
93   void   SetSumPtThreshold(Float_t s)     { fSetSumPtThreshold = s       ; }
94   void   SetPtFraction(Float_t pt)        { fSetPtFraction     = pt      ; }
95   void   SetICMethod(Int_t iMethod )      { fICMethod          = iMethod ; }
96   void   SetParticleTypeInCone(Int_t i)   { fParticlesInCone    = i       ; }
97  
98   void   SwitchOnAnaIsolated()            { kDoIsolatedAna = kTRUE  ; }
99   void   SwitchOffAnaIsolated()           { kDoIsolatedAna = kFALSE ; }
100
101   void   SwitchOnTrackMultBins()          { kDoTrackMultBins = kTRUE ; }
102   void   SwitchOffTrackMultBins()         { kDoTrackMultBins = kTRUE ; }
103
104   void   SetAnaUELeftRightOrNearAway(Bool_t leftright, Bool_t nearaway) {
105                                                    kUELeftRight = leftright,
106                                                    kUENearAway  = nearaway ; }
107   void   SwitchOnTwoTracksCorr()     { kTwoTracksCorr = kTRUE    ; }
108   void   SwitchOffTwoTracksCorr()    { kTwoTracksCorr = kFALSE   ; }  
109
110   void   SelectDecayPhotonCorr(Bool_t decayphoton) {kDecayPhotonCorr = decayphoton;}
111
112   void   SetAnaMCTruthOrPrimaryCorr(Bool_t kAnatruth, Bool_t kAnaprimary){
113                                              kAnaMCTruthCorr = kAnatruth,
114                                              kAnaMCPrimaryCorr = kAnaprimary ; }
115
116   void   SetAnaMCPrimaryParticle(Bool_t kpi0, Bool_t keta, Bool_t kphoton){
117                                                     kAnaPi0Prim = kpi0,
118                                                     kAnaEtaPrim = keta,
119                                                     kAnaPhotonPrim = kphoton ; }
120   // Taking the absolute leading as the trigger or not
121   Bool_t  DoAbsoluteLeading()         const { return kMakeAbsoluteLeading   ; }
122   void    SwitchOnAbsoluteLeading()         { kMakeAbsoluteLeading = kTRUE  ; }
123   void    SwitchOffAbsoluteLeading()        { kMakeAbsoluteLeading = kFALSE ; }
124
125   // Taking the near side leading as the trigger or not
126   Bool_t  DoNearSideLeading()         const { return kMakeNearSideLeading   ; }
127   void    SwitchOnNearSideLeading()         { kMakeNearSideLeading = kTRUE  ; }
128   void    SwitchOffNearSideLeading()        { kMakeNearSideLeading = kFALSE ; }
129   
130   void    SwitchOnInAcceptance()            { kPhotonInAcceptance = kTRUE   ; }
131   void    SwitchOffInAcceptance()           { kPhotonInAcceptance = kFALSE  ; }
132  
133   void    SwitchOnAnaMapping()              { kAnaDecayMapping = kTRUE  ; }
134   void    SwitchOffAnaMapping()             { kAnaDecayMapping = kFALSE ; }
135
136 //  Bool_t  IsFiducialCutOn()           const { return fCheckFidCut           ; }
137 //  void    SwitchOnFiducialCut()             { fCheckFidCut = kTRUE;
138  //                                  if(!fFidCut)fFidCut = new AliFiducialCut();}
139 //  void    SwitchOffFiducialCut()            { fCheckFidCut = kFALSE         ; }
140
141   void    SetNTriggPtBins(Int_t nbins)      { fNTriggPtBins = nbins ; }
142   Int_t   GetNTriggPtBins()           const { return fNTriggPtBins  ; }
143   void    SetTriggerBins(Float_t *ptTriggBins);
144
145   void    SetNAssocPtBins(Int_t mbins)      { fNAssocPtBins = mbins ; }
146   Int_t   GetNAssocPtBins()           const { return fNAssocPtBins  ; }
147   void    SetAssociatedBins(Float_t *ptAssocBins);
148
149   Float_t GetDeltaPhiMaxCut()         const { return fDeltaPhiMaxCut ; }
150   Float_t GetDeltaPhiMinCut()         const { return fDeltaPhiMinCut ; }
151   void     SetDeltaPhiCutRange(Float_t phimin, Float_t phimax)
152                 {fDeltaPhiMaxCut = phimax;  fDeltaPhiMinCut = phimin ; } 
153  
154   void   SetMixedEventsPool(Int_t n)        { nMixedEvents = n ; }
155   void   SwitchOnAnaMixEvent()              { kDoMixEventsAna = kTRUE    ; }
156   void   SwitchOffAnaMixEvent()             { kDoMixEventsAna = kFALSE   ; }
157
158   void   SwitchOnFillMesonAOD()             { kDoMesonFill = kTRUE  ; }
159   void   SwitchOffFillMesonAOD()            { kDoMesonFill = kFALSE ; }
160
161   void   SwitchOnFillMesonHistos()          { kNeutralMesonHistos = kTRUE  ; }
162   void   SwitchOffFillMesonHistos()         { kNeutralMesonHistos = kFALSE ; }
163
164   void   SwitchOnAnaMesonCorr()             { kDoMesonCorrAna = kTRUE  ; }
165   void   SwitchOffAnaMesonCorr()            { kDoMesonCorrAna = kFALSE ; }
166
167   void   SwitchOnAnaPhotonCorr()            { kDoPhotonCorrAna = kTRUE  ; }
168   void   SwitchOffAnaPhotonCorr()           { kDoPhotonCorrAna = kFALSE ; }  
169
170   void   SwitchOnEventTriggerAtSE()         { kEventTriggerAtSE = kTRUE ; }
171   void   SwitchOffEventTriggerAtSE()        { kEventTriggerAtSE = kFALSE; }
172
173   void   SwithchOnPhotonPairTimeCut()       { kPhotonPairTimeCut = kTRUE ;}
174   void   SwithchOffPhotonPairTimeCut()      { kPhotonPairTimeCut = kFALSE ;}
175
176   void   SwithchOnPhotonIDCut()             { kDoPhotonIDCut = kTRUE  ; }
177   void   SwithchOffPhotonIDCut()            { kDoPhotonIDCut = kFALSE ; }
178
179   TString GetAnaTypeInIsolated()         const { return fAnaTypeInIsolated ; }
180   void    SetAnaTypeInIsolated(TString & part) { fAnaTypeInIsolated = part ; }
181
182   Float_t GetDeltaPhiHRSize()           const { return fDeltaPhiHRSize   ; }
183   void SetDeltaPhiHRSize(Float_t fHRphi)       { fDeltaPhiHRSize = fHRphi ; }
184
185   Float_t  GetUeDeltaPhiSize()           const { return fUeDeltaPhiSize ; }
186   Float_t  GetUeDeltaPhiFix()            const { return fUeDeltaPhiFix  ; }
187   void     SetUeDeltaPhiFixAndSize(Float_t uefix, Float_t uesize)
188                     { fUeDeltaPhiFix = uefix,  fUeDeltaPhiSize = uesize ; }
189
190   void     SetAssociatedPtBegin(Float_t begin) {fptAssociatedBegin = begin;}
191
192   void     SetLargeCorrTrigger(Float_t ftrigger1, Float_t ftrigger2) 
193                  {fptTriggerBegin = ftrigger1, fptTriggerEnd   = ftrigger2; }
194
195   void    SwitchOnAsymmetryCut()             { kDoAsymmetryCut = kTRUE  ; }
196   void    SwitchOffAsymmetryCut()            { kDoAsymmetryCut = kFALSE ; }
197   void    SetAsymmetryCut(Float_t asycut)    { fAsymmetryCut = asycut ; }
198
199   void    SwitchOnAODHybridTrackSelection()  { kDoSelectHybridTracks = kTRUE ;}
200   void    SwitchOffAODHybridTrackSelection() { kDoSelectHybridTracks = kFALSE;}  
201   void    SetAnaMesonType(TString fmesontype){ fAnaMesonType = fmesontype ; }
202
203   void    SetCentralityBin(Int_t min, Int_t max)
204                        { fCentralityBinMin = min; fCentralityBinMax = max ; }
205   void    SetCentralityClass(TString name)   { fCentralityClass   = name  ; }
206   
207   void    SetEventPlaneMethod(TString m)     { fEventPlaneMethod = m      ; }
208
209   UInt_t  GetEventTriggerMask()        const { return fEventTriggerMaks   ; }
210   void    SetEventTriggerMask(UInt_t evtTrig = AliVEvent::kAny)
211                                         { fEventTriggerMaks = evtTrig     ; }
212   void    SetNCentralityBins(Int_t fcenbins) { fNCentralityBins = fcenbins; }
213   void    SetNEventPlaneBins(Int_t fevbins)  { fNEventPlaneBins = fevbins ; }
214
215   void    SetEMCALLambda0Cut(Float_t l0min, Float_t l0max)
216                                    { fL0CutMin = l0min, fL0CutMax = l0max ; }
217   void    SetClusterTimeCut(Float_t timemin, Float_t timemax){
218                              fTimeCutMin = timemin, fTimeCutMax = timemax ; }
219   void    SetPhotonPairDeltaTimeCut(Float_t deltatime)
220                                          { fPhotonPairTimeCut = deltatime ; }
221  
222   void    SetTrackMatchedDPhiCut(Float_t dphicut){ fEMCALDPhiCut = dphicut; }
223   void    SetTrackMatchedDEtaCut(Float_t detacut){ fEMCALDEtaCut = detacut; }
224
225   void    SetMesonInMassRangeCut(Float_t inmass1, Float_t inmass2){
226                         fInvMassMinCut = inmass1, fInvMassMaxCut = inmass2 ; }
227
228   void    SetMesonInMassLeftRangeCut(Float_t leftmin, Float_t leftmax){
229                       fLeftBandMinCut = leftmin, fLeftBandMaxCut = leftmax ; }
230
231   void    SetMesonInMassRightRangeCut(Float_t rightmin, Float_t rightmax){
232                   fRightBandMinCut = rightmin, fRightBandMaxCut = rightmax ; }
233  
234   void    SetEMCALGeometryName(TString name) { fEMCALGeomName = name ; }
235
236   void    SetTrackCuts(AliESDtrackCuts * cuts);
237  
238   void    SetZvertexCut(Float_t fzcut) { fZVertexCut = fzcut ; }
239
240   void    SetTrackFilterMask(ULong_t bit)  { fTrackFilterMask = bit ; }
241   
242  
243 private:
244   AliAnalysisTaskEMCALCaloTrackCorr(const AliAnalysisTaskEMCALCaloTrackCorr&); // not implemented
245   AliAnalysisTaskEMCALCaloTrackCorr& operator=(const AliAnalysisTaskEMCALCaloTrackCorr&); // not implemented
246
247   ////////////Add function
248   void    InitParameters();
249  
250   Bool_t  FillInputEvent();
251
252   Bool_t  SelectPair(AliCaloTrackParticle *mesonCandidate);
253   Bool_t  IsolatedPhoton(TClonesArray *fEMCALEventIsolated, 
254                          TClonesArray *fCTSEventIsolated,
255                          Int_t fIndexPhotonCan,  Double_t ptPhotonCan,
256                          Double_t phiPhotonCan, Double_t etaPhotonCan);
257   void    FillInputPhoton();
258   void    FillInputMeson() ;
259   void    FillInputTrack() ;
260   Bool_t  MakeChargedCorrelation(Int_t fTrackIndex, Double_t ptTrigg, 
261                                Double_t phiTrigg, Double_t etaTrigg);
262   void    MakeChargedMixCorrelation(Double_t ptTriggMix,  Double_t phiTriggMix,
263                             Double_t etaTriggMix, TList *poolMix);
264 private:
265   enum {kNtriggPtBins=10, kNassocPtBins=10};
266
267   AliAnalysisManager    *fManager;
268   AliInputEventHandler  *fInputHandler;
269
270   AliVEvent   *fEvent;
271   AliMCEvent    *fMCEvent;
272   AliStack      *fStack;
273   AliCentrality *fCentrality;
274   AliEventplane *fEventPlane;
275
276   AliEMCALRecoUtils *fEMCALRecU;
277   AliEMCALGeometry  *fEMCALGeom;
278   AliESDtrackCuts   *fESDtrackCuts;
279   //  AliFiducialCut    *fFidCut;
280
281   TList    *outputContainer;
282
283   TString  fEMCALGeomName; 
284   TString  fCentralityClass;    
285   Int_t    fCentralityBinMin;
286   Int_t    fCentralityBinMax;
287   TString  fEventPlaneMethod;
288   UInt_t   fEventTriggerMaks;
289   Int_t    fNCentralityBins;
290   Int_t    fNEventPlaneBins;
291  
292   Int_t    fHistoPtBins ; 
293   Float_t  fHistoPtMax  ; 
294   Float_t  fHistoPtMin  ; 
295   Int_t    fHistoPhiBins; 
296   Float_t  fHistoPhiMax ;
297   Float_t  fHistoPhiMin ;
298   Int_t    fHistoEtaBins;
299   Float_t  fHistoEtaMax ;
300   Float_t  fHistoEtaMin ;
301  
302   Int_t    fMinNCells;
303   Float_t  fMinE;
304   Double_t fMinDistBad;
305   Float_t  fL0CutMin;
306   Float_t  fL0CutMax;
307   Float_t  fTimeCutMin;
308   Float_t  fTimeCutMax;
309   Float_t  fPhotonPairTimeCut;
310   Float_t  fEMCALDPhiCut;
311   Float_t  fEMCALDEtaCut;
312   Float_t  fZVertexCut; 
313   Int_t    fDebug;         
314   TString  fAnaMesonType;
315   Float_t  fAsymmetryCut;
316   TString  fDataType;
317   ULong_t  fTrackFilterMask;
318
319   Float_t  fInvMassMinCut;
320   Float_t  fInvMassMaxCut;
321   Float_t  fLeftBandMinCut;
322   Float_t  fLeftBandMaxCut;
323   Float_t  fRightBandMinCut;
324   Float_t  fRightBandMaxCut;
325
326   Bool_t  kMC;
327   Bool_t  kNeutralMesonHistos;
328   Bool_t  kDoMixEventsAna;
329   Bool_t  kDoPhotonCorrAna;
330   Bool_t  kDoAsymmetryCut;
331   Bool_t  kDoSelectHybridTracks;
332   Bool_t  kDoMesonFill;
333   Bool_t  kDoMesonCorrAna;
334   Bool_t  kDoIsolatedAna;
335   Bool_t  kDoTrackMultBins;
336   Bool_t  kUELeftRight;
337   Bool_t  kUENearAway;
338   Bool_t  kDecayPhotonCorr;
339   Bool_t  kAnaMCTruthCorr;
340   Bool_t  kAnaMCPrimaryCorr;
341   Bool_t  kAnaPi0Prim;
342   Bool_t  kAnaEtaPrim;
343   Bool_t  kAnaPhotonPrim;
344   Bool_t  kMakeAbsoluteLeading;
345   Bool_t  kMakeNearSideLeading;
346   Bool_t  kTwoTracksCorr;
347   Bool_t  kPhotonInAcceptance;
348   Bool_t  kAnaDecayMapping;
349 //  Bool_t  fCheckFidCut;
350   Bool_t  kEventTriggerAtSE;
351   Bool_t  kPhotonPairTimeCut;
352   Bool_t  kDoPhotonIDCut;
353
354   TH1F     *fhNEvents;        
355   Int_t    fnEvents;
356   TH1F     *fhNEventsAnalyized;
357   Int_t    fEventAnalyized;
358   TClonesArray  *fPhotonEvent;
359   TClonesArray  *fPhotonPairEvent;
360   TClonesArray  *fCTSEvent;
361   Int_t    nPhotonsEMCAL;
362   Int_t    nTracksCTS;
363   TString  fAnaTypeInIsolated;
364   Int_t    nMixedEvents;
365   Float_t  fSetConeR;
366   Float_t  fSetPtThreshold;
367   Float_t  fSetSumPtThreshold;
368   Float_t  fSetPtFraction;
369   Int_t    fICMethod;
370   Int_t    fParticlesInCone;
371
372   Float_t  *fTriggPtArray;
373   Int_t    fNTriggPtBins;
374   Float_t  fptTriggerBegin;
375   Float_t  fptTriggerEnd;
376   Float_t  *fAssocPtArray;
377   Int_t    fNAssocPtBins;
378   Float_t  fptAssociatedBegin;
379
380   Float_t  fDeltaPhiMaxCut;
381   Float_t  fDeltaPhiMinCut;
382   Float_t  fUeDeltaPhiSize;
383   Float_t  fUeDeltaPhiFix;
384   Float_t  fDeltaPhiHRSize;
385
386   TH1F * fhPhotonE;
387   TH2F * fhPhotonPtPhi;
388   TH2F * fhPhotonPtEta;
389   TH2F * fhPhotonPhiEta;
390
391   TH1F * fhMesonE;
392   TH2F * fhMesonPtPhi;
393   TH2F * fhMesonPtEta;
394   TH2F * fhMesonPhiEta;
395
396   TH2F * fhAnglePairNoCut;
397   TH2F * fhInvMassPairNoCut;
398   TH2F * fhAsyNoCut;
399   TH2F * fhInvMassPairAsyCut; 
400   TH2F * fhAnglePairAsyCut;
401   TH2F * fhInvMassPairPhi;
402   TH2F * fhInvMassPairEta;
403   TH2F * fhInvMassPairAllCut;
404   TH2F * fhAnglePairAllCut;
405   TH2F * fhAsyAllCut;
406   TH2F * fhPi0DecayPhoton1;
407   TH2F * fhPi0DecayPhoton1Dphi;
408   TH2F * fhDecayPhoton1Pi0Dphi;
409   TH2F * fhPi0DecayPhoton2;
410   TH2F * fhPi0DecayPhoton2Dphi;
411   TH2F * fhDecayPhoton2Pi0Dphi;
412   TH2F * fhDecayPhoton1Photon2;
413   TH2F * fhDecayPhoton1Photon2Dphi;
414   TH2F * fhDecayPhoton2Photon1Dphi;
415
416   TH1F * fhNtracksAll;
417   TH1F * fhNtracksEMC7;
418   TH1F * fhNtracksAnyINT;
419   TH1F * fhNtracksCentral;
420   TH1F * fhNtracksSemiCentral;
421   TH1F * fhNtracksOtherTirgger;
422   TH1F * fhNtracksCorr;
423   TH2F * fhTrackPtPhi;
424   TH2F * fhTrackPtEta;
425   TH2F * fhTrackPhiEta;
426   TH2F * fhPtPhiLeading;        //! phi distribution vs pT of leading
427   TH2F * fhPtEtaLeading;        //! eta distribution vs pT of leading
428   TH2F * fhMixPtPhiLeading;        //! phi distribution vs pT of leading
429   TH2F * fhMixPtEtaLeading;        //! eta distribution vs pT of leading
430  
431   TH2F * fhDPhiTriggPtAssocPt;
432   TH2F * fhDEtaTriggPtAssocPt;
433   TH2F * fhAssocPtTriggPt;
434   TH2F * fhxELogTriggPt;
435   TH2F * fhpoutTriggPt;
436   TH2F * fhzTTriggPt;
437   TH2F * fhxETriggPt;       
438   TH2F * fhAssocPtTriggPtHR;
439   TH2F * fhxELogTriggPtHR;
440   TH2F * fhpoutTriggPtHR;
441   TH2F * fhzTTriggPtHR;
442   TH2F * fhxETriggPtHR;
443   TH2F * fhNUeAssocPtTriggPt;
444   TH2F * fhNUepoutTriggPt;
445   TH2F * fhNUexETriggPt;
446   TH2F * fhNUezTTriggPt;
447   TH2F * fhNUexELogTriggPt;
448   TH2F * fhNUeDPhiDEta;
449   TH2F * fhAUeAssocPtTriggPt;
450   TH2F * fhAUepoutTriggPt;
451   TH2F * fhAUezTTriggPt; 
452   TH2F * fhAUexETriggPt;
453   TH2F * fhAUexELogTriggPt;
454   TH2F * fhAUeDPhiDEta;
455
456   TH2F * fhMCPtPhiLeading;        //! phi distribution vs pT of leading
457   TH2F * fhMCPtEtaLeading;        //! eta distribution vs pT of leading
458
459   TH2F * fhMCAssocPtTriggPt;
460   TH2F * fhMCxELogTriggPt;
461   TH2F * fhMCpoutTriggPt;
462   TH2F * fhMCzTTriggPt;
463   TH2F * fhMCxETriggPt;
464   TH2F * fhMCAssocPtTriggPtHR;
465   TH2F * fhMCxELogTriggPtHR;
466   TH2F * fhMCpoutTriggPtHR;
467   TH2F * fhMCzTTriggPtHR;
468   TH2F * fhMCxETriggPtHR;
469   TH2F * fhMCNUeAssocPtTriggPt;
470   TH2F * fhMCNUepoutTriggPt;
471   TH2F * fhMCNUexETriggPt;
472   TH2F * fhMCNUezTTriggPt;
473   TH2F * fhMCNUexELogTriggPt;
474   TH2F * fhMCAUeAssocPtTriggPt;
475   TH2F * fhMCAUepoutTriggPt;
476   TH2F * fhMCAUezTTriggPt;
477   TH2F * fhMCAUexETriggPt;
478   TH2F * fhMCAUexELogTriggPt;
479
480   TH2F * fhDPhiAssocPt15T;
481   TH2F * fhDEtaAssocPt15T;
482   TH2F * fhMixDPhiAssocPt15T;
483   TH2F * fhMixDEtaAssocPt15T;
484   TH2F * fhMCDPhiAssocPt15T;
485   TH2F * fhMCDEtaAssocPt15T;
486
487   TList* fListMixEvents[10][10][10]; 
488  
489   TH2F  *fhDPhiTriggPtT[kNassocPtBins];
490   TH2F  *fhDEtaTriggPtT[kNassocPtBins];
491   TH2F  *fhMixDPhiTriggPtT[kNassocPtBins];
492   TH2F  *fhMixDEtaTriggPtT[kNassocPtBins];
493
494   TH2F  *fhDPhiSumPtBin[kNtriggPtBins][kNassocPtBins];
495   TH2F  *fhDEtaSumPtBin[kNtriggPtBins][kNassocPtBins];
496   TH2F  *fhDPhiDEtaBin[kNtriggPtBins][kNassocPtBins];
497   TH2F  *fhMixDPhiDEtaBin[kNtriggPtBins][kNassocPtBins];
498
499   TH2F  *fhDPhiAssocPtA[kNtriggPtBins];
500   TH2F  *fhDEtaAssocPtA[kNtriggPtBins];
501   TH2F  *fhMixDPhiAssocPtA[kNtriggPtBins];
502   TH2F  *fhMixDEtaAssocPtA[kNtriggPtBins];
503
504   TH2F  *fhMCDPhiTriggPtT[kNassocPtBins];
505   TH2F  *fhMCDEtaTriggPtT[kNassocPtBins];
506
507   TH2F  *fhMCDPhiSumPtBin[kNtriggPtBins][kNassocPtBins];
508   TH2F  *fhMCDEtaSumPtBin[kNtriggPtBins][kNassocPtBins];
509   TH2F  *fhMCDPhiDEtaBin[kNtriggPtBins][kNassocPtBins];
510
511   TH2F  *fhMCDPhiAssocPtA[kNtriggPtBins];
512   TH2F  *fhMCDEtaAssocPtA[kNtriggPtBins];
513
514   ClassDef(AliAnalysisTaskEMCALCaloTrackCorr, 1); // example of analysis
515 };
516
517 #endif