1 #ifndef ALIANALYSISTASKELECHADRONCORREL_H
2 #define ALIANALYSISTASKELECHADRONCORREL_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 ////////////////////////////////////////////////////////////////////////
9 // Task for Heavy Flavour Electron-Hadron DeltaPhi Correlation //
11 // Author: Deepa Thomas (Utrecht University) //
13 ////////////////////////////////////////////////////////////////////////
23 class AliEMCALGeometry;
24 class AliEMCALRecoUtils;
25 class AliAnalysisFilter;
26 class AliESDtrackCuts;
28 class AliHFEcontainer;
31 class AliHFEpidQAmanager;
33 //class AliEventPoolManager;
35 #include "AliAnalysisTaskSE.h"
36 #include "AliCentrality.h"
38 class AliAnalysisTaskElecHadronCorrel : public AliAnalysisTaskSE {
40 AliAnalysisTaskElecHadronCorrel();
41 AliAnalysisTaskElecHadronCorrel(const char *name);
42 virtual ~AliAnalysisTaskElecHadronCorrel();
44 virtual void UserCreateOutputObjects();
45 virtual void UserExec(Option_t *option);
46 virtual void Terminate(Option_t *);
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();
60 Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
62 AliESDEvent *fESD; //ESD object
63 AliEMCALGeometry *fGeom; // emcal geometry
65 TList *fOutputList; //output list
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
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
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
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
157 TH1F *fElecPhiTPCEovP;//
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;//
181 // THnSparse *fSparseElectron;//!Electron info
182 // Double_t *fvalueElectron;//!Electron info
184 AliAnalysisTaskElecHadronCorrel(const AliAnalysisTaskElecHadronCorrel&); // not implemented
185 AliAnalysisTaskElecHadronCorrel& operator=(const AliAnalysisTaskElecHadronCorrel&); // not implemented
187 ClassDef(AliAnalysisTaskElecHadronCorrel, 2); //!example of analysis