]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/AliAnalysisTaskElecHadronCorrel.h
updated task
[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 AliHFEcontainer;
29 class AliHFEcuts;
30 class AliHFEpid;
31 class AliHFEpidQAmanager;
32 class AliCFManager;
33 //class AliEventPoolManager;
34
35 #include "AliAnalysisTaskSE.h"
36 #include "AliCentrality.h"
37
38 class AliAnalysisTaskElecHadronCorrel : public AliAnalysisTaskSE {
39   public:
40     AliAnalysisTaskElecHadronCorrel();
41     AliAnalysisTaskElecHadronCorrel(const char *name);
42     virtual ~AliAnalysisTaskElecHadronCorrel();
43
44     virtual void   UserCreateOutputObjects();
45     virtual void   UserExec(Option_t *option);
46     virtual void   Terminate(Option_t *);
47
48     void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
49     void SetOpeningAngleCut (Double_t openingAngle) {fOpeningAngleCut = openingAngle;};
50     void SetInvariantMassCut (Double_t invmass) {fInvmassCut = invmass;};
51     AliHFEpid *GetPID() const { return fPID; }
52     void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) { fRejectKinkMother = rejectKinkMother; };
53     void SelectPhotonicElectron(Int_t itrack, AliESDtrack *track, Bool_t &fFlagPhotonicElec);
54     void ElectronHadCorrel(Int_t itrack, AliESDtrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2,TH2F *DphiPt3,TH2F *DphiPt4);    
55     void ElectronHadCorrelNoPartner(Int_t itrack,Int_t jtrack, AliESDtrack *track, TH2F *DphiPtNew,TH2F *DphiPtNew1,TH2F *DphiPtNew2,TH2F *DphiPtNew3,TH2F *DphiPtNew4);        
56 //    void MixedEvent(AliESDtrack *track, TH2F *DphiPt);
57 //    TObjArray* CloneAndReduceTrackList();
58   private:
59
60     Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
61
62     AliESDEvent                    *fESD;                       //ESD object
63     AliEMCALGeometry    *fGeom;                 // emcal geometry 
64
65     TList                       *fOutputList;           //output list
66
67     AliESDtrackCuts             *fTrackCuts1;           //ESD track cuts
68     AliESDtrackCuts             *fTrackCuts2;           //ESD track cuts
69     AliHFEcuts                  *fCuts;                 //Cut Collection
70     Bool_t                            fIdentifiedAsOutInz;    //Out Of Range in z
71     Bool_t                      fPassTheEventCut;       //Pass The Event Cut
72     Bool_t                         fRejectKinkMother;      //Reject Kink Mother
73     Double_t                  fVz;                    //z position of the primary vertex
74     AliCFManager                *fCFM;                  //!Correction Framework Manager
75     AliHFEpid                 *fPID;                  //PID
76     AliHFEpidQAmanager  *fPIDqa;                //! PID QA manager
77     Double_t                  fOpeningAngleCut; //openingAngle cut value
78     Double_t                    fInvmassCut;            //invariant mass cut value
79 //    AliEventPoolManager*     fPoolMgr;         //! event pool manager
80
81     TH1F                        *fNoEvents;             //no of events
82     TH1F                        *fTrkpt;                //track pt
83     TH2F                        *fTrkEovPBef;           //track E/p before HFE pid
84     TH2F                        *fTrkEovPBefHad;                //track E/p before HFE pid
85     TH2F                        *fTrkEovPAft;           //track E/p after HFE pid
86     TH2F                        *fTrkEovPAftOwn;                //track E/p after HFE pid
87     TH2F                        *fdEdxBef;              //track dEdx vs p before HFE pid
88     TH2F                        *fdEdxAft;              //track dEdx vs p before HFE pid
89     TH2F                        *fdEdxAftOwn;           //track dEdx vs p before HFE pid
90     TH1F                        *fOpeningAngleLS;       //opening angle for LS pairs
91     TH1F                        *fOpeningAngleULS;      //opening angle for ULS pairs
92     TH2F                        *fSemiIncElecDphi;      //Semi Inclusive elec - had DPhi
93     TH2F                        *fSemiIncElecDphi1;     //Semi Inclusive elec - had DPhi
94     TH2F                        *fSemiIncElecDphi2;     //Semi Inclusive elec - had DPhi
95     TH2F                        *fSemiIncElecDphi3;     //Semi Inclusive elec - had DPhi
96     TH2F                        *fSemiIncElecDphi4;     //Semi Inclusive elec - had DPhi
97     TH2F                        *fPhotElecDphi;         //Photon elec - had DPhi
98     TH2F                        *fPhotElecDphi1;        //Photon elec - had DPhi
99     TH2F                        *fPhotElecDphi2;        //Photon elec - had DPhi
100     TH2F                        *fPhotElecDphi3;        //Photon elec - had DPhi
101     TH2F                        *fPhotElecDphi4;        //Photon elec - had DPhi
102     TH2F                        *fInclusiveElecDphi;    //Inclusive elec - had DPhi
103     TH2F                        *fInclusiveElecDphi1;   //Inclusive elec - had DPhi
104     TH2F                        *fInclusiveElecDphi2;   //Inclusive elec - had DPhi
105     TH2F                        *fInclusiveElecDphi3;   //Inclusive elec - had DPhi
106     TH2F                        *fInclusiveElecDphi4;   //Inclusive elec - had DPhi
107     TH2F                        *fDphiULSMassLow;       //Dphi - ULS, mass< mass cut
108     TH2F                        *fDphiULSMassLow1;      //Dphi - ULS, mass< mass cut
109     TH2F                        *fDphiULSMassLow2;      //Dphi - ULS, mass< mass cut
110     TH2F                        *fDphiULSMassLow3;      //Dphi - ULS, mass< mass cut
111     TH2F                        *fDphiULSMassLow4;      //Dphi - ULS, mass< mass cut
112     TH2F        *fDphiLSMassLow;  //Dphi - LS, mass< mass cut
113     TH2F        *fDphiLSMassLow1;  //Dphi - LS, mass< mass cut
114     TH2F        *fDphiLSMassLow2;  //Dphi - LS, mass< mass cut
115     TH2F        *fDphiLSMassLow3;  //Dphi - LS, mass< mass cut
116     TH2F        *fDphiLSMassLow4;  //Dphi - LS, mass< mass cut
117     TH2F        *fDphiULSMassLowNoPartner; //Dphi - ULS, mass< mass cut no partner
118     TH2F        *fDphiULSMassLowNoPartner1; //Dphi - ULS, mass< mass cut no partner
119     TH2F        *fDphiULSMassLowNoPartner2; //Dphi - ULS, mass< mass cut no partner
120     TH2F        *fDphiULSMassLowNoPartner3; //Dphi - ULS, mass< mass cut no partner
121     TH2F        *fDphiULSMassLowNoPartner4; //Dphi - ULS, mass< mass cut no partner
122     TH2F                        *fDphiLSMassLowNoPartner;       //Dphi - LS, mass< mass cut
123     TH2F                        *fDphiLSMassLowNoPartner1;      //Dphi - LS, mass< mass cut
124     TH2F                        *fDphiLSMassLowNoPartner2;      //Dphi - LS, mass< mass cut
125     TH2F                        *fDphiLSMassLowNoPartner3;      //Dphi - LS, mass< mass cut
126     TH2F                        *fDphiLSMassLowNoPartner4;      //Dphi - LS, mass< mass cut
127     TH1F                        *fPhotoElecPt;          //photonic elec pt 
128     TH1F                        *fSemiInclElecPt;       //Semi inclusive ele pt
129     TH1F        *fInclusiveElecPt; // Inclusive elec pt
130     TH1F        *fULSElecPt; //ULS elec Pt
131     TH1F        *fLSElecPt;// LS elec pt 
132
133     TH1F                        *fTrackPtBefTrkCuts;    //Track pt before track cuts    
134     TH1F                        *fTrackPtAftTrkCuts;    //Track pt after track cuts
135     TH2F                        *fTPCnsigma;            //TPC n sigma vs p      
136     TH2F                        *fTPCnsigmaAft;         //TPC n sigma vs p      
137     TH2F                        *fTPCnsigmaAftOwn;              //TPC n sigma vs p      
138     TH1F                        *fNCellv1;              //No of cells in cluster, all EMCAL cluster
139     TH1F                        *fClsEv1;               //Cluster energy, all EMCAL cluster
140     TH1F                        *fNClusv1;              //No of clusters in event, all EMCAL cluster
141
142     TH1F        *fKFParticleP; //KFparticle rec P distr
143     TH1F        *fKFParticleE; //KFparticle rec E distr
144     TH1F        *fInvmassLS1; //LS Invmass for all rec par
145     TH1F        *fInvmassLS2; //LS Invmass for all rec par
146     TH1F        *fInvmassLS3; //LS Invmass for all rec par
147     TH1F        *fInvmassLS4; //LS Invmass for all rec par
148     TH1F        *fInvmassLS5; //LS Invmass for all rec par
149     TH1F        *fInvmassULS1;//ULS Invmass for all rec par
150     TH1F        *fInvmassULS2;//ULS Invmass for all rec par
151     TH1F        *fInvmassULS3;//ULS Invmass for all rec par
152     TH1F        *fInvmassULS4;//ULS Invmass for all rec par
153     TH1F        *fInvmassULS5;//ULS Invmass for all rec par
154     TH1F        *fcentrality;//
155     TH1F        *fElecPhi;//
156     TH1F        *fElecPhiTPC;//
157     TH1F        *fElecPhiTPCEovP;//
158     TH1F        *fHadronPhi;//
159     TH1F        *fTrackHFEcuts;//
160     TH1F        *fTrakPhiSPD1;//
161     TH1F        *fTrakPhiSPD2;//
162     TH1F        *fTrakPhiSPDOr;//
163     TH1F        *fTrakPhiSPDAnd;//
164     TH1F        *fTrackHFEcutsITS;//
165 /*    TH1F        *fNoMixedEvents;//
166     TH2F        *fMixStat; //no of events in pool vs multplicity
167     TH2F        *fMixStat1; //no of events in pool vs zvtx 
168     TH2F        *fMixedIncElecDphi; //Mixed event - inclusive elec DPhi
169     TH2F        *fMixedPhotElecDphi; //
170     TH2F        *fMixedSemiIncElecDphi; //
171     TH2F        *fMixedDphiULSMassLow;//
172     TH2F        *fMixedDphiLSMassLow;//
173 */
174     TH1F        *fNLSminus;//
175     TH1F        *fNLSplus;//
176     TH1F        *fNULS;//  
177     TH1F        *fHadronIPxy;//  
178     TH1F        *fHadronIPz;//  
179
180
181     //  THnSparse  *fSparseElectron;//!Electron info 
182     //  Double_t *fvalueElectron;//!Electron info 
183
184     AliAnalysisTaskElecHadronCorrel(const AliAnalysisTaskElecHadronCorrel&); // not implemented
185     AliAnalysisTaskElecHadronCorrel& operator=(const AliAnalysisTaskElecHadronCorrel&); // not implemented
186
187     ClassDef(AliAnalysisTaskElecHadronCorrel, 2); //!example of analysis
188 };
189
190 #endif
191
192