]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliAnalysisTaskElecHadronCorrel.h
mixed events modified
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskElecHadronCorrel.h
1 #ifndef ALIANALYSISTASKELECHADRONCORREL_H
2 #define ALIANALYSISTASKELECHADRONCORREL_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////////////////////////////////////////////////////////////////////////
8 //                                                                    //
9 //  Task for Heavy Flavour Electron-Hadron DeltaPhi Correlation       //
10 //                                                                    //
11 //  Author: Deepa Thomas (Utrecht University)                         //
12 //                                                                    //
13 ////////////////////////////////////////////////////////////////////////
14
15 class THnSparse;
16 class TH2F;
17 class TLorentzVector;
18
19 class AliEMCALTrack;
20 class AliMagF;
21 class AliESDEvent;
22 class AliAODEvent;
23 class AliEMCALGeometry;
24 class AliEMCALRecoUtils;
25 class AliAnalysisFilter;
26 class AliESDtrackCuts;
27 class AliESDtrack;
28 class AliAODTrack;
29 class AliHFEcontainer;
30 class AliHFEcuts;
31 class AliHFEpid;
32 class AliHFEpidQAmanager;
33 class AliCFManager;
34 //class AliEventPoolManager;
35
36 #include "AliLog.h"
37 #include "AliAnalysisTaskSE.h"
38 #include "AliCentrality.h"
39
40 class AliAnalysisTaskElecHadronCorrel : public AliAnalysisTaskSE {
41   public:
42     AliAnalysisTaskElecHadronCorrel();
43     AliAnalysisTaskElecHadronCorrel(const char *name);
44     virtual ~AliAnalysisTaskElecHadronCorrel();
45
46     virtual void   UserCreateOutputObjects();
47     virtual void   UserExec(Option_t *option);
48     virtual void   Terminate(Option_t *);
49
50     Bool_t IsAODanalysis() const { return TestBit(kAODanalysis); };
51     Bool_t IsESDanalysis() const { return !TestBit(kAODanalysis); };
52
53     void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
54     void SetInvariantMassCut (Double_t invmass) {fInvmassCut = invmass;};
55     AliHFEpid *GetPID() const { return fPID; }
56     void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) { fRejectKinkMother = rejectKinkMother; };
57     void SelectPhotonicElectron(Int_t itrack, AliVTrack *track, Bool_t &fFlagPhotonicElec);
58     void ElectronHadCorrel(Int_t itrack, AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2,TH2F *DphiPt3,TH2F *DphiPt4);      
59     void ElectronHadCorrelEtaFarSide(Int_t itrack, AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2,TH2F *DphiPt3,TH2F *DphiPt4);    
60     void ElectronHadCorrelEtaBins(Int_t itrack, AliVTrack *track, TH2F *DphiPtEta1, TH2F *DphiPtEta11,TH2F *DphiPtEta12,TH2F *DphiPtEta13,TH2F *DphiPtEta14,TH2F *DphiPtEta2, TH2F *DphiPtEta21,TH2F *DphiPtEta22,TH2F *DphiPtEta23,TH2F *DphiPtEta24); 
61     // void ElectronHadCorrelEtaBins(Int_t itrack, AliVTrack *track, TH3F *DphiPtEta1, TH3F *DphiPtEta11,TH3F *DphiPtEta12,TH3F *DphiPtEta13,TH3F *DphiPtEta14);        
62     void ElectronHadCorrelNoPartner(Int_t itrack,Int_t jtrack, AliVTrack *track, TH2F *DphiPtNew,TH2F *DphiPtNew1,TH2F *DphiPtNew2,TH2F *DphiPtNew3,TH2F *DphiPtNew4);  
63     void ElectronHadCorrelEtaBinsNoPartner(Int_t itrack,Int_t jtrack, AliVTrack *track, TH2F *DphiPtEta1, TH2F *DphiPtEta11,TH2F *DphiPtEta12,TH2F *DphiPtEta13,TH2F *DphiPtEta14,TH2F *DphiPtEta2, TH2F *DphiPtEta21,TH2F *DphiPtEta22,TH2F *DphiPtEta23,TH2F *DphiPtEta24);   
64     // void ElectronHadCorrelEtaBinsNoPartner(Int_t itrack,Int_t jtrack, AliVTrack *track, TH3F *DphiPtEta1, TH3F *DphiPtEta11,TH3F *DphiPtEta12,TH3F *DphiPtEta13,TH3F *DphiPtEta14);  
65     void HadronInfo(Int_t itrack);
66     void SetTriggerSelection(Bool_t TriggerCentral) {fTriggerCentral = TriggerCentral;};
67     void    SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax, const char* CentralityMethod); //select centrality
68     void    CheckCentrality(AliVEvent *event,Bool_t &centralitypass); //to use only events with the correct centrality....
69
70     void SetAODAnalysis() { SetBit(kAODanalysis, kTRUE); };
71     void SetESDAnalysis() { SetBit(kAODanalysis, kFALSE); };
72
73     void SetTPCnsigmaCutsElecSelection(Double_t nsigMin, Double_t nsigMax) {fTPCnsigEleMin=nsigMin; fTPCnsigEleMax=nsigMax;};
74     void SetTPCnsigmaCutsHadSelection(Double_t nsigMin, Double_t nsigMax) {fTPCnsigHadMin=nsigMin; fTPCnsigHadMax=nsigMax;};
75     void SetShowerShapeCutsM02(Double_t M02CutMin, Double_t M02CutMax){fM02CutMin=M02CutMin; fM02CutMax=M02CutMax;};
76     void SetShowerShapeCutsM20(Double_t M20CutMin, Double_t M20CutMax){fM20CutMin=M20CutMin; fM20CutMax=M20CutMax;};
77     void SetShowerShapeCutsDisp(Double_t DispCutMin, Double_t DispCutMax){fDispCutMin=DispCutMin; fDispCutMax=DispCutMax;};
78     void SetEovPCuts(Double_t EovPMin, Double_t EovPMax){fEovPMin=EovPMin;fEovPMax=EovPMax;};
79  //   void MixedEvent(AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1, TH2F *DphiPt2, TH2F *DphiPt3, TH2F *DphiPt4);
80  //   TObjArray* CloneAndReduceTrackList();
81
82   private:
83
84     enum{
85       kAODanalysis = BIT(20),
86     };
87
88     Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
89
90     AliVEvent                 *fVevent;         //V event object
91     AliESDEvent                    *fESD;                       //ESD object
92     AliAODEvent                    *fAOD;                       //AOD object
93     AliEMCALGeometry    *fGeom;                 // emcal geometry 
94
95     TList                       *fOutputList;           //output list
96
97     AliESDtrackCuts             *fTrackCuts1;           //ESD track cuts
98     AliESDtrackCuts             *fTrackCuts2;           //ESD track cuts
99     AliHFEcuts                  *fCuts;                 //Cut Collection
100     Bool_t                            fIdentifiedAsOutInz;    //Out Of Range in z
101     Bool_t                      fPassTheEventCut;       //Pass The Event Cut
102     Bool_t                         fRejectKinkMother;      //Reject Kink Mother
103     Double_t                  fVz;                    //z position of the primary vertex
104     AliCFManager                *fCFM;                  //!Correction Framework Manager
105     AliHFEpid                 *fPID;                  //PID
106     AliHFEpidQAmanager  *fPIDqa;                //! PID QA manager
107     Double_t                    fInvmassCut;            //invariant mass cut value
108     Double_t             fCentrality; // event centrality for QA
109     Double_t             fCentralityMin; // lower bound of cenrality bin
110     Double_t             fCentralityMax; // upper bound of centrality bin
111     const char           *fkCentralityMethod; // method used to determine centrality (V0 by default)   
112     Double_t   fTPCnsigEleMin;//
113     Double_t   fTPCnsigEleMax;//
114     Double_t   fTPCnsigHadMin;//
115     Double_t   fTPCnsigHadMax;//
116     Double_t   fM02CutMin;//
117     Double_t   fM02CutMax;//
118     Double_t   fM20CutMin;//
119     Double_t   fM20CutMax;//
120     Double_t   fDispCutMin;//
121     Double_t   fDispCutMax;//
122     Double_t   fEovPMin;//
123     Double_t   fEovPMax;//
124     Bool_t     fTriggerCentral;//
125
126  //   AliEventPoolManager*     fPoolMgr;         //! event pool manager
127
128     TH1F                        *fNoEvents;             //no of events
129     //    TH1F                  *fTrkpt;                //track pt
130     TH2F                        *fTrkEovPAft;           //track E/p after HFE pid
131     //   TH2F                   *fTrkEovPBefHad;                //track E/p before HFE pid
132     //    TH2F                  *fdEdxBef;              //track dEdx vs p before HFE pid
133     TH2F                        *fSemiIncElecDphi;      //Semi Inclusive elec - had DPhi
134     TH2F                        *fSemiIncElecDphi1;     //Semi Inclusive elec - had DPhi
135     TH2F                        *fSemiIncElecDphi2;     //Semi Inclusive elec - had DPhi
136     TH2F                        *fSemiIncElecDphi3;     //Semi Inclusive elec - had DPhi
137     TH2F                        *fSemiIncElecDphi4;     //Semi Inclusive elec - had DPhi
138     TH2F                        *fPhotElecDphi;         //Photon elec - had DPhi
139     TH2F                        *fPhotElecDphi1;        //Photon elec - had DPhi
140     TH2F                        *fPhotElecDphi2;        //Photon elec - had DPhi
141     TH2F                        *fPhotElecDphi3;        //Photon elec - had DPhi
142     TH2F                        *fPhotElecDphi4;        //Photon elec - had DPhi
143     TH2F                        *fInclusiveElecDphi;    //Inclusive elec - had DPhi
144     TH2F                        *fInclusiveElecDphi1;   //Inclusive elec - had DPhi
145     TH2F                        *fInclusiveElecDphi2;   //Inclusive elec - had DPhi
146     TH2F                        *fInclusiveElecDphi3;   //Inclusive elec - had DPhi
147     TH2F                        *fInclusiveElecDphi4;   //Inclusive elec - had DPhi
148     TH2F       *fInclusiveElecDphiEtaFS;    //Inclusive elec EtaFS- had DPhi
149     TH2F       *fInclusiveElecDphiEtaFS1;   //Inclusive elec EtaFS- had DPhi
150     TH2F       *fInclusiveElecDphiEtaFS2;   //Inclusive elec EtaFS- had DPhi
151     TH2F       *fInclusiveElecDphiEtaFS3;   //Inclusive elec EtaFS- had DPhi
152     TH2F       *fInclusiveElecDphiEtaFS4;   //Inclusive elec EtaFS- had DPhi
153     TH2F                        *fDphiULSMassLow;       //Dphi - ULS, mass< mass cut
154     TH2F                        *fDphiULSMassLow1;      //Dphi - ULS, mass< mass cut
155     TH2F                        *fDphiULSMassLow2;      //Dphi - ULS, mass< mass cut
156     TH2F                        *fDphiULSMassLow3;      //Dphi - ULS, mass< mass cut
157     TH2F                        *fDphiULSMassLow4;      //Dphi - ULS, mass< mass cut
158     TH2F        *fDphiLSMassLow;  //Dphi - LS, mass< mass cut
159     TH2F        *fDphiLSMassLow1;  //Dphi - LS, mass< mass cut
160     TH2F        *fDphiLSMassLow2;  //Dphi - LS, mass< mass cut
161     TH2F        *fDphiLSMassLow3;  //Dphi - LS, mass< mass cut
162     TH2F        *fDphiLSMassLow4;  //Dphi - LS, mass< mass cut
163     TH2F        *fDphiULSMassLowNoPartner; //Dphi - ULS, mass< mass cut no partner
164     TH2F        *fDphiULSMassLowNoPartner1; //Dphi - ULS, mass< mass cut no partner
165     TH2F        *fDphiULSMassLowNoPartner2; //Dphi - ULS, mass< mass cut no partner
166     TH2F        *fDphiULSMassLowNoPartner3; //Dphi - ULS, mass< mass cut no partner
167     TH2F        *fDphiULSMassLowNoPartner4; //Dphi - ULS, mass< mass cut no partner
168     TH2F                        *fDphiLSMassLowNoPartner;       //Dphi - LS, mass< mass cut
169     TH2F                        *fDphiLSMassLowNoPartner1;      //Dphi - LS, mass< mass cut
170     TH2F                        *fDphiLSMassLowNoPartner2;      //Dphi - LS, mass< mass cut
171     TH2F                        *fDphiLSMassLowNoPartner3;      //Dphi - LS, mass< mass cut
172     TH2F                        *fDphiLSMassLowNoPartner4;      //Dphi - LS, mass< mass cut
173     TH1F                        *fPhotoElecPt;          //photonic elec pt 
174     TH1F                        *fSemiInclElecPt;       //Semi inclusive ele pt
175     TH1F        *fInclusiveElecPt; // Inclusive elec pt
176     TH1F        *fULSElecPt; //ULS elec Pt
177     TH1F        *fLSElecPt;// LS elec pt 
178     //Eta bins (Deta < 0.8)
179     TH2F       *fSemiIncElecDphiEta1;   //Semi Inclusive elec - had DPhi
180     TH2F       *fSemiIncElecDphiEta11;     //Semi Inclusive elec - had DPhi
181     TH2F       *fSemiIncElecDphiEta12;     //Semi Inclusive elec - had DPhi
182     TH2F       *fSemiIncElecDphiEta13;     //Semi Inclusive elec - had DPhi
183     TH2F       *fSemiIncElecDphiEta14;     //Semi Inclusive elec - had DPhi
184     TH2F       *fPhotElecDphiEta1;   //Photon elec - had DPhi
185     TH2F       *fPhotElecDphiEta11;     //Photon elec - had DPhi
186     TH2F       *fPhotElecDphiEta12;     //Photon elec - had DPhi
187     TH2F       *fPhotElecDphiEta13;     //Photon elec - had DPhi
188     TH2F       *fPhotElecDphiEta14;     //Photon elec - had DPhi
189     TH2F       *fInclusiveElecDphiEta1;    //Inclusive elec - had DPhi
190     TH2F       *fInclusiveElecDphiEta11;   //Inclusive elec - had DPhi
191     TH2F       *fInclusiveElecDphiEta12;   //Inclusive elec - had DPhi
192     TH2F       *fInclusiveElecDphiEta13;   //Inclusive elec - had DPhi
193     TH2F       *fInclusiveElecDphiEta14;   //Inclusive elec - had DPhi
194     TH2F       *fDphiULSMassLowEta1; //Dphi - ULS, mass< mass cut
195     TH2F       *fDphiULSMassLowEta11;   //Dphi - ULS, mass< mass cut
196     TH2F       *fDphiULSMassLowEta12;   //Dphi - ULS, mass< mass cut
197     TH2F       *fDphiULSMassLowEta13;   //Dphi - ULS, mass< mass cut
198     TH2F       *fDphiULSMassLowEta14;   //Dphi - ULS, mass< mass cut
199     TH2F        *fDphiLSMassLowEta1;  //Dphi - LS, mass< mass cut
200     TH2F        *fDphiLSMassLowEta11;  //Dphi - LS, mass< mass cut
201     TH2F        *fDphiLSMassLowEta12;  //Dphi - LS, mass< mass cut
202     TH2F        *fDphiLSMassLowEta13;  //Dphi - LS, mass< mass cut
203     TH2F        *fDphiLSMassLowEta14;  //Dphi - LS, mass< mass cut
204     TH2F        *fDphiULSMassLowNoPartnerEta1; //Dphi - ULS, mass< mass cut no partner
205     TH2F        *fDphiULSMassLowNoPartnerEta11; //Dphi - ULS, mass< mass cut no partner
206     TH2F        *fDphiULSMassLowNoPartnerEta12; //Dphi - ULS, mass< mass cut no partner
207     TH2F        *fDphiULSMassLowNoPartnerEta13; //Dphi - ULS, mass< mass cut no partner
208     TH2F        *fDphiULSMassLowNoPartnerEta14; //Dphi - ULS, mass< mass cut no partner
209     TH2F       *fDphiLSMassLowNoPartnerEta1;  //Dphi - LS, mass< mass cut
210     TH2F       *fDphiLSMassLowNoPartnerEta11; //Dphi - LS, mass< mass cut
211     TH2F       *fDphiLSMassLowNoPartnerEta12; //Dphi - LS, mass< mass cut
212     TH2F       *fDphiLSMassLowNoPartnerEta13; //Dphi - LS, mass< mass cut
213     TH2F       *fDphiLSMassLowNoPartnerEta14; //Dphi - LS, mass< mass cut
214
215     //Eta bins (Deta > 0.8)
216     TH2F       *fSemiIncElecDphiEta2;   //Semi Inclusive elec - had DPhi
217     TH2F       *fSemiIncElecDphiEta21;     //Semi Inclusive elec - had DPhi
218     TH2F       *fSemiIncElecDphiEta22;     //Semi Inclusive elec - had DPhi
219     TH2F       *fSemiIncElecDphiEta23;     //Semi Inclusive elec - had DPhi
220     TH2F       *fSemiIncElecDphiEta24;     //Semi Inclusive elec - had DPhi
221     TH2F       *fPhotElecDphiEta2;   //Photon elec - had DPhi
222     TH2F       *fPhotElecDphiEta21;     //Photon elec - had DPhi
223     TH2F       *fPhotElecDphiEta22;     //Photon elec - had DPhi
224     TH2F       *fPhotElecDphiEta23;     //Photon elec - had DPhi
225     TH2F       *fPhotElecDphiEta24;     //Photon elec - had DPhi
226     TH2F       *fInclusiveElecDphiEta2;    //Inclusive elec - had DPhi
227     TH2F       *fInclusiveElecDphiEta21;   //Inclusive elec - had DPhi
228     TH2F       *fInclusiveElecDphiEta22;   //Inclusive elec - had DPhi
229     TH2F       *fInclusiveElecDphiEta23;   //Inclusive elec - had DPhi
230     TH2F       *fInclusiveElecDphiEta24;   //Inclusive elec - had DPhi
231     TH2F       *fDphiULSMassLowEta2; //Dphi - ULS, mass< mass cut                       
232     TH2F       *fDphiULSMassLowEta21;   //Dphi - ULS, mass< mass cut                        
233     TH2F       *fDphiULSMassLowEta22;   //Dphi - ULS, mass< mass cut                            
234     TH2F       *fDphiULSMassLowEta23;   //Dphi - ULS, mass< mass cut
235     TH2F       *fDphiULSMassLowEta24;   //Dphi - ULS, mass< mass cut
236     TH2F        *fDphiLSMassLowEta2;  //Dphi - LS, mass< mass cut
237     TH2F        *fDphiLSMassLowEta21;  //Dphi - LS, mass< mass cut
238     TH2F        *fDphiLSMassLowEta22;  //Dphi - LS, mass< mass cut
239     TH2F        *fDphiLSMassLowEta23;  //Dphi - LS, mass< mass cut
240     TH2F        *fDphiLSMassLowEta24;  //Dphi - LS, mass< mass cut
241     TH2F        *fDphiULSMassLowNoPartnerEta2; //Dphi - ULS, mass< mass cut no partner
242     TH2F        *fDphiULSMassLowNoPartnerEta21; //Dphi - ULS, mass< mass cut no partner
243     TH2F        *fDphiULSMassLowNoPartnerEta22; //Dphi - ULS, mass< mass cut no partner
244     TH2F        *fDphiULSMassLowNoPartnerEta23; //Dphi - ULS, mass< mass cut no partner
245     TH2F        *fDphiULSMassLowNoPartnerEta24; //Dphi - ULS, mass< mass cut no partner
246     TH2F       *fDphiLSMassLowNoPartnerEta2;  //Dphi - LS, mass< mass cut
247     TH2F       *fDphiLSMassLowNoPartnerEta21; //Dphi - LS, mass< mass cut
248     TH2F       *fDphiLSMassLowNoPartnerEta22; //Dphi - LS, mass< mass cut
249     TH2F       *fDphiLSMassLowNoPartnerEta23; //Dphi - LS, mass< mass cut
250     TH2F       *fDphiLSMassLowNoPartnerEta24; //Dphi - LS, mass< mass cut
251
252     //   TH1F                   *fTrackPtBefTrkCuts;    //Track pt before track cuts    
253     //   TH1F                   *fTrackPtAftTrkCuts;    //Track pt after track cuts
254     //   TH2F                   *fTPCnsigma;            //TPC n sigma vs p      
255     //   TH1F                   *fNCellv1;              //No of cells in cluster, all EMCAL cluster
256     //   TH1F                   *fClsEv1;               //Cluster energy, all EMCAL cluster
257     //   TH1F                   *fNClusv1;              //No of clusters in event, all EMCAL cluster
258     TH1F        *fInvmassLS1; //LS Invmass for all rec par
259     //   TH1F        *fInvmassLS2; //LS Invmass for all rec par
260     //   TH1F        *fInvmassLS3; //LS Invmass for all rec par
261     //   TH1F        *fInvmassLS4; //LS Invmass for all rec par
262     //   TH1F        *fInvmassLS5; //LS Invmass for all rec par
263     TH1F        *fInvmassULS1;//ULS Invmass for all rec par
264     //   TH1F        *fInvmassULS2;//ULS Invmass for all rec par
265     //   TH1F        *fInvmassULS3;//ULS Invmass for all rec par
266     //   TH1F        *fInvmassULS4;//ULS Invmass for all rec par
267     //   TH1F        *fInvmassULS5;//ULS Invmass for all rec par
268     TH1F        *fcentrality;//
269     TH1F        *fElecPhi;//
270     TH1F        *fElecPhiTPChalf;//
271     TH2F        *fElecPhiPt;//
272     //    TH1F        *fElecPhiTPC;//
273     //    TH1F        *fElecPhiTPCEovP;//
274     TH1F        *fHadronPhi;//
275     TH1F        *fHadronPhiTPChalf;//
276     TH2F        *fHadronPhiPt;//
277     /*    TH1F        *fTrackHFEcuts;//
278           TH1F        *fTrakPhiSPD1;//
279           TH1F        *fTrakPhiSPD2;//
280           TH1F        *fTrakPhiSPDOr;//
281           TH1F        *fTrakPhiSPDAnd;//
282           TH1F        *fTrackHFEcutsITS;//
283      */
284 /*    TH1F        *fNoMixedEvents;//
285     TH2F        *fMixStat; //no of events in pool vs multplicity
286     TH2F        *fMixStat1; //no of events in pool vs zvtx 
287     TH2F        *fMixedIncElecDphi; //Mixed event - inclusive elec DPhi
288     TH2F        *fMixedIncElecDphi1; //Mixed event - inclusive elec DPhi
289     TH2F        *fMixedIncElecDphi2; //Mixed event - inclusive elec DPhi
290     TH2F        *fMixedIncElecDphi3; //Mixed event - inclusive elec DPhi
291     TH2F        *fMixedIncElecDphi4; //Mixed event - inclusive elec DPhi
292     TH2F        *fMixedPhotElecDphi; //
293     TH2F        *fMixedPhotElecDphi1; //
294     TH2F        *fMixedPhotElecDphi2; //
295     TH2F        *fMixedPhotElecDphi3; //
296     TH2F        *fMixedPhotElecDphi4; //
297     TH2F        *fMixedSemiIncElecDphi; //
298     TH2F        *fMixedSemiIncElecDphi1; //
299     TH2F        *fMixedSemiIncElecDphi2; //
300     TH2F        *fMixedSemiIncElecDphi3; //
301     TH2F        *fMixedSemiIncElecDphi4; //
302     TH2F        *fMixedDphiULSMassLow;//
303     TH2F        *fMixedDphiULSMassLow1;//
304     TH2F        *fMixedDphiULSMassLow2;//
305     TH2F        *fMixedDphiULSMassLow3;//
306     TH2F        *fMixedDphiULSMassLow4;//
307     TH2F        *fMixedDphiLSMassLow;//
308     TH2F        *fMixedDphiLSMassLow1;//
309     TH2F        *fMixedDphiLSMassLow2;//
310     TH2F        *fMixedDphiLSMassLow3;//
311     TH2F        *fMixedDphiLSMassLow4;//
312 */
313     TH1F        *fHadronPt;//
314     TH1F       *fCentralityPass; // ! QA histogram of events that pass centrality cut
315     TH1F       *fCentralityNoPass; //! QA histogram of events that do not pass centrality cut
316
317     TH2F       *fHadronDphi;    //Hadron - had DPhi
318     TH2F       *fHadronDphi1;   //Hadron - had DPhi
319     TH2F       *fHadronDphi2;   //Hadron - had DPhi
320     TH2F       *fHadronDphi3;   //Hadron - had DPhi
321     TH2F       *fHadronDphi4;   //Hadron - had DPhi
322     TH1F       *fPiPt; //TPC nsig < 3.5 pt
323
324     TH2F       *fHadronDphiNoSS;    //Hadron - had DPhi
325     TH2F       *fHadronDphiNoSS1;   //Hadron - had DPhi
326     TH2F       *fHadronDphiNoSS2;   //Hadron - had DPhi
327     TH2F       *fHadronDphiNoSS3;   //Hadron - had DPhi
328     TH2F       *fHadronDphiNoSS4;   //Hadron - had DPhi
329     TH1F       *fPiPtNoSS; //TPC nsig < 3.5 pt
330     TH2F       *fEovPWoSS;//
331     TH2F       *fEovPWSS;//
332     TH2F       *fEovPHadWoSS;//
333     TH2F       *fEovPHadWSS;//
334
335     //Deta < 0.8
336     TH2F       *fHadronDphiEta1;   //Hadron - had DPhi
337     TH2F       *fHadronDphiEta11;     //Hadron - had DPhi
338     TH2F       *fHadronDphiEta12;     //Hadron - had DPhi
339     TH2F       *fHadronDphiEta13;     //Hadron - had DPhi
340     TH2F       *fHadronDphiEta14;     //Hadron - had DPhi
341     TH2F       *fHadronDphiNoSSEta1;   //Hadron - had DPhi NoSS
342     TH2F       *fHadronDphiNoSSEta11;     //Hadron - had DPhi NoSS
343     TH2F       *fHadronDphiNoSSEta12;     //Hadron - had DPhi NoSS
344     TH2F       *fHadronDphiNoSSEta13;     //Hadron - had DPhi NoSS
345     TH2F       *fHadronDphiNoSSEta14;     //Hadron - had DPhi NoSS
346
347     //Deta > 0.8
348     TH2F       *fHadronDphiEta2;   //Hadron - had DPhi
349     TH2F       *fHadronDphiEta21;     //Hadron - had DPhi
350     TH2F       *fHadronDphiEta22;     //Hadron - had DPhi
351     TH2F       *fHadronDphiEta23;     //Hadron - had DPhi
352     TH2F       *fHadronDphiEta24;     //Hadron - had DPhi
353     TH2F       *fHadronDphiNoSSEta2;   //Hadron - had DPhi NoSS
354     TH2F       *fHadronDphiNoSSEta21;     //Hadron - had DPhi NoSS
355     TH2F       *fHadronDphiNoSSEta22;     //Hadron - had DPhi NoSS
356     TH2F       *fHadronDphiNoSSEta23;     //Hadron - had DPhi NoSS
357     TH2F       *fHadronDphiNoSSEta24;     //Hadron - had DPhi NoSS
358
359
360     //THnSparse  *fSparseElectron;//!Electron info 
361     //Double_t *fvalueElectron;//!Electron info 
362
363     AliAnalysisTaskElecHadronCorrel(const AliAnalysisTaskElecHadronCorrel&); // not implemented
364     AliAnalysisTaskElecHadronCorrel& operator=(const AliAnalysisTaskElecHadronCorrel&); // not implemented
365
366     ClassDef(AliAnalysisTaskElecHadronCorrel, 2); //!example of analysis
367 };
368 /*
369    class AliehDPhiBasicParticle : public AliVParticle
370    {
371    public:
372    AliehDPhiBasicParticle(Float_t eta, Float_t phi, Float_t pt, Short_t charge)
373    : fEta(eta), fPhi(phi), fpT(pt), fCharge(charge)
374    {
375    }
376    ~AliehDPhiBasicParticle() {}
377
378 // kinematics
379 virtual Double_t Px() const { AliFatal("Not implemented"); return 0; }
380 virtual Double_t Py() const { AliFatal("Not implemented"); return 0; }
381 virtual Double_t Pz() const { AliFatal("Not implemented"); return 0; }
382 virtual Double_t Pt() const { return fpT; }
383 virtual Double_t P() const { AliFatal("Not implemented"); return 0; }
384 virtual Bool_t   PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
385
386 virtual Double_t Xv() const { AliFatal("Not implemented"); return 0; }
387 virtual Double_t Yv() const { AliFatal("Not implemented"); return 0; }
388 virtual Double_t Zv() const { AliFatal("Not implemented"); return 0; }
389 virtual Bool_t   XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
390
391 virtual Double_t OneOverPt()  const { AliFatal("Not implemented"); return 0; }
392 virtual Double_t Phi()        const { return fPhi; }
393 virtual Double_t Theta()      const { AliFatal("Not implemented"); return 0; }
394
395
396 virtual Double_t E()          const { AliFatal("Not implemented"); return 0; }
397 virtual Double_t M()          const { AliFatal("Not implemented"); return 0; }
398
399 virtual Double_t Eta()        const { return fEta; }
400 virtual Double_t Y()          const { AliFatal("Not implemented"); return 0; }
401
402 virtual Short_t Charge()      const { return fCharge; }
403 virtual Int_t   GetLabel()    const { AliFatal("Not implemented"); return 0; }
404 // PID
405 virtual Int_t   PdgCode()     const { AliFatal("Not implemented"); return 0; }
406 virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0; }
407
408 private:
409 Float_t fEta;      // eta
410 Float_t fPhi;      // phi
411 Float_t fpT;       // pT
412 Short_t fCharge;   // charge
413
414 ClassDef( AliehDPhiBasicParticle, 1); // class which contains only quantities requires for this analysis to reduce memory consumption for event mixing
415 };
416  */
417 #endif
418
419