]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/hfe/AliAnalysisTaskElecHadronCorrel.h
Updates to run with deltas (L. Cunqueiro)
[u/mrichter/AliRoot.git] / PWG3 / 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
34 #include "AliAnalysisTaskSE.h"
35
36 class AliAnalysisTaskElecHadronCorrel : public AliAnalysisTaskSE {
37  public:
38   AliAnalysisTaskElecHadronCorrel();
39   AliAnalysisTaskElecHadronCorrel(const char *name);
40   virtual ~AliAnalysisTaskElecHadronCorrel();
41   
42   virtual void   UserCreateOutputObjects();
43   virtual void   UserExec(Option_t *option);
44   virtual void   Terminate(Option_t *);
45   
46   void SetHFECuts(AliHFEcuts * const cuts) { fCuts = cuts; };
47   void SetOpeningAngleCut (Double_t openingAngle) {fOpeningAngleCut = openingAngle;};
48   void SetInvariantMassCut (Double_t invmass) {fInvmassCut = invmass;};
49   AliHFEpid *GetPID() const { return fPID; }
50   void SetRejectKinkMother(Bool_t rejectKinkMother = kFALSE) { fRejectKinkMother = rejectKinkMother; };
51   void SelectPhotonicElectron(Int_t itrack, AliESDtrack *track, Bool_t &fFlagPhotonicElec);
52   void ElectronHadCorrel(Int_t itrack, AliESDtrack *track, TH2F *DphiPt);       
53   Bool_t IsLEDEvent() const;    
54  private:
55   
56   Bool_t ProcessCutStep(Int_t cutStep, AliVParticle *track);
57   
58   AliESDEvent           *fESD;                  //!ESD object
59   AliEMCALGeometry      *fGeom;                 //! emcal geometry 
60   
61   TList                 *fOutputList;           //! output list
62   
63   AliESDtrackCuts       *fTrackCuts1;           //! ESD track cuts
64   AliESDtrackCuts       *fTrackCuts2;           //! ESD track cuts
65   AliHFEcuts            *fCuts;                 //! Cut Collection
66   Bool_t                fIdentifiedAsOutInz;    //Out Of Range in z
67   Bool_t                fPassTheEventCut;       //Pass The Event Cut
68   Bool_t                fRejectKinkMother;      //Reject Kink Mother
69   Double_t              fVz;                    //z position of the primary vertex
70   AliCFManager          *fCFM;                  //! Correction Framework Manager
71   AliHFEpid             *fPID;                  //! PID
72   AliHFEpidQAmanager    *fPIDqa;                //! PID QA manager
73   Double_t              fOpeningAngleCut;       //openingAngle cut value
74   Double_t              fInvmassCut;            //invariant mass cut value
75   
76   TH1F                  *fNoEvents;             //! no of events
77   TH1F                  *fTrkpt;                //! track pt
78   TH2F                  *fTrkEovPBef;           //! track E/p before HFE pid
79   TH2F                  *fTrkEovPAft;           //! track E/p after HFE pid
80   TH2F                  *fdEdxBef;              //! track dEdx vs p before HFE pid
81   TH2F                  *fdEdxAft;              //! track dEdx vs p before HFE pid
82   TH1F                  *fInvmassLS;            //! Inv mass of LS (e,e)
83   TH1F                  *fInvmassULS;           //! Inv mass of ULS (e,e)
84   TH1F                  *fOpeningAngleLS;       //! opening angle for LS pairs
85   TH1F                  *fOpeningAngleULS;      //! opening angle for ULS pairs
86   TH2F                  *fSemiIncElecDphi;      //! Semi Inclusive elec - had DPhi
87   TH2F                  *fPhotElecDphi;         //! Photon elec - had DPhi
88   TH2F                  *fInclusiveElecDphi;    //! Inclusive elec - had DPhi
89   TH2F                  *fDphiMassHigh;         //! Dphi - LS+ULS, mass>0.01
90   TH2F                  *fDphiULSMassLow;       //! Dphi - ULS, mass<0.01
91   TH2F                  *fDphiLSMassLow;        //! Dphi - LS, mass<0.01
92   TH1F                  *fPhotoElecPt;          //! photonic elec pt 
93   TH1F                  *fSemiInclElecPt;       //! Semi inclusive ele pt
94   
95   TH1F                  *fTrackPtBefTrkCuts;    //! Track pt before track cuts  
96   TH1F                  *fTrackPtAftTrkCuts;    //! Track pt after track cuts
97   TH2F                  *fTPCnsigma;            //! TPC n sigma vs p    
98   
99   AliAnalysisTaskElecHadronCorrel(const AliAnalysisTaskElecHadronCorrel&); // not implemented
100   AliAnalysisTaskElecHadronCorrel& operator=(const AliAnalysisTaskElecHadronCorrel&); // not implemented
101   
102   ClassDef(AliAnalysisTaskElecHadronCorrel, 1); //!example of analysis
103 };
104
105 #endif
106
107