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