]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetHF.h
add option to assign pi0 mass to neutral background particles
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalJetHF.h
1 #ifndef AliAnalysisTaskEmcalJetHF_h
2 #define AliAnalysisTaskEmcalJetHF_h
3
4 class TClonesArray;
5 class TH1F;
6 class TH2F;
7 class TH3F;
8 class THnSparse;
9 class TLorentzVector;
10 class TGraph;
11
12 class AliEMCALTrack;
13 class AliMagF;
14 class AliESDEvent;
15 class AliAODEvent;
16 class AliEMCALGeometry;
17 class AliEMCALRecoUtils;
18 class AliESDtrack;
19 class AliESDtrackCuts;
20 class AliAnalysisEtCuts;
21
22
23 // this whole section of includes added 
24 #include <AliEmcalJet.h>
25 #include <AliVEvent.h>
26 #include <AliVTrack.h>
27 #include <AliVCluster.h>
28 #include <TClonesArray.h>
29 #include <TMath.h>
30 #include <TRandom3.h>
31 #include <AliLog.h>
32 #include "AliAnalysisTaskEmcalJet.h"
33 #include "AliEMCALPIDResponse.h"
34
35 // PID stuff                                                                                                                                
36 #include "AliPIDResponse.h"
37 #include "AliTPCPIDResponse.h"
38 #include "AliESDpid.h"
39 #include "AliAnalysisFilter.h"
40
41 class AliAnalysisTaskEmcalJetHF : public AliAnalysisTaskEmcalJet {
42  public:
43   AliAnalysisTaskEmcalJetHF();
44   AliAnalysisTaskEmcalJetHF(const char *name);
45   virtual ~AliAnalysisTaskEmcalJetHF();
46   
47   virtual void           UserCreateOutputObjects();
48   
49     /** Cuts info */
50     AliAnalysisEtCuts * GetCuts() const { return fCuts; }
51     virtual void SetCuts(const AliAnalysisEtCuts *cuts)
52     { fCuts = (AliAnalysisEtCuts *) cuts; }
53     
54     
55     void SetTPCITSTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsITSTPC = (AliESDtrackCuts *) cuts;}
56     void SetTPCOnlyTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsTPC = (AliESDtrackCuts *) cuts;}
57     void SetITSTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsITS = (AliESDtrackCuts *) cuts;}
58   
59   //PID Sparse
60   virtual THnSparse*      NewTHnSparseDHF(const char* name, UInt_t entries);
61   virtual void            GetDimParamsHF(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
62   
63   //JetQA Sparse
64   virtual THnSparse*      NewTHnSparseDJetQA(const char* name, UInt_t entries);
65   virtual void            GetDimParamsJetQA(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
66
67
68   // setters
69   virtual void SetdoGlobalPID(Bool_t PID)  { doGlobalPID = PID; }  //Global PID fpr all tracks and clusters in event
70   void SetJetPt(Double_t jpt)           { fJetHIpt = jpt; }  // jet threshold pt cut
71   void SetTrackPtCut(Double_t trpt)     { fTrackPtCut = trpt; } // track pt threshold to do PID on  
72   virtual void            SetTrackEta(Double_t e)                 { fTrackEta   = e; }  //eta range of the associated tracks   
73   virtual void            SetTrackQACut(Double_t trkQAcut)            { fTrkQAcut = trkQAcut;}
74   
75   // eta and phi limits of jets - setters
76   virtual void            SetJetEta(Double_t emin, Double_t emax)  { fEtamin = emin; fEtamax = emax; }
77   virtual void            SetJetPhi(Double_t pmin, Double_t pmax)  { fPhimin = pmin; fPhimax = pmax; }
78   
79   // event no.
80   Int_t event;          // event number (processed)
81   Int_t fillHist;
82
83  protected:
84   Bool_t                 Run();
85   virtual void           Terminate(Option_t *);
86   virtual Int_t          AcceptMyJet(AliEmcalJet *jet);   // applies basic jet tests/cuts before accepting
87   virtual Int_t          GetCentBin(Double_t cent) const;  // Get Centrality bin
88   void                  ExecOnce();
89   
90   // data type switch
91   Bool_t       doGlobalPID;
92   
93   AliAnalysisEtCuts *fCuts;                            // keeper of basic cuts
94
95   // cuts
96   Double_t              fPhimin;
97   Double_t              fPhimax;
98   Double_t              fEtamin;
99   Double_t              fEtamax;
100   Double_t              fAreacut;                     //area cut
101   Double_t              fJetHIpt;                    // high jet pt 
102   Double_t              fTrackPtCut;                 // track pt cut to do PID on
103   Double_t              fTrackEta;  
104   Double_t              fTrkQAcut;                    //trkQA cut
105   
106   // PID                                                                                                                                    
107   AliPIDResponse        *fPIDResponse;   // PID response object                                                                             
108   AliTPCPIDResponse     *fTPCResponse;   // TPC pid response object
109   
110   AliESDtrackCuts* fEsdtrackCutsITSTPC;//esd track cuts for ITS+TPC tracks
111   AliESDtrackCuts* fEsdtrackCutsTPC;//esd track cuts for TPC tracks (which may also contain ITS hits)
112   AliESDtrackCuts* fEsdtrackCutsITS;//esd track cuts for ITS stand alone tracks
113    
114
115  private:
116   AliESDEvent           *fESD;//!  // ESD object
117   AliAODEvent           *fAOD;//!  // AOD Object
118
119   
120   TH2F                  *fHistRhovsCent; //!
121   TH1F                              *fHistJetPhi;//!              // Njets vs Phi
122   TH1F                              *fHistCorJetPt;//!            // (Njets) vs Corrected Jet Pt (local rho)
123   TH1F                              *fHistJetPt;//!                // raw jet pt (uncorrected)
124   TH1F                              *fHistdEdx;//!
125   TH2F                  *fHistdEdxvPt;//!
126   TH1F                  *fHistClusE;//!
127   TH1F                  *fHistEovPTracks;//!
128   TH2F                  *fHistEovPvsPtTracks;//!
129
130   TH2F                  *fHistJetPtvsTrackPt[6];//!
131   TH1F                  *fHistTrackPt[6];//!
132   TH1F                  *fHistEP0[6];//!
133   TH1F                  *fHistEP0A[6];//!
134   TH1F                  *fHistEP0C[6];//!
135   TH2F                  *fHistEPAvsC[6];//!
136
137   // PID status histo's                                                                                                                     
138   TH1                   *fHistPID;//!
139   TH1                   *fHistPIDtpc;//!
140   TH1                   *fHistPIDits;//!
141   TH1                   *fHistPIDtof;//!
142   TH1F                  *fHistnsigelectron;//!
143   TH2F                  *fHistnSigElecPt;//!
144   TH2F                  *fHistTrackPhivEta;//!
145   TH2F                  *fHistClusterPhivEta;//!
146   TH2F                  *fHistnJetTrackvnJetClusters;//!
147
148   //HF_PID Sparse
149   THnSparse             *fhnPIDHF;//!          // PID sparse
150   //QA Sparse
151   //QA Sparse
152   THnSparse             *fhnQA;             //  QA sparse
153   THnSparse             *fhnJetQA;          //Jet QA Sparse
154   THnSparse             *fhnClusQA;         // cluster QA sparse
155   THnSparse             *fhnTrackQA;        // track QA sparse
156   THnSparse             *fhnGlobalPID;     //Global Track PID
157   //Declare it private to avoid compilation warning
158   
159   AliAnalysisTaskEmcalJetHF(const AliAnalysisTaskEmcalJetHF & g) ; // cpy ctor
160   AliAnalysisTaskEmcalJetHF& operator=(const AliAnalysisTaskEmcalJetHF&); // not implemented
161   
162
163
164   ClassDef(AliAnalysisTaskEmcalJetHF, 4); // Emcal jet Heavy Flavor
165 };
166 #endif