]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/FlavourJetTasks/AliAnalysisTaskEmcalJetFlavourTagExample.h
- Reduce number of bins in order to decrease memory consumption
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / AliAnalysisTaskEmcalJetFlavourTagExample.h
1 #ifndef AliAnalysisTaskEmcalJetFlavourTagExample_h
2 #define AliAnalysisTaskEmcalJetFlavourTagExample_h
3
4 class TClonesArray;
5 class TH1;
6 class TH2;
7 class TH3;
8 class TH1F;
9 class TH2F;
10 class TH3F;
11 class THnSparse;
12 class TLorentzVector;
13 class TGraph;
14
15 class AliEMCALTrack;
16 class AliMagF;
17 class AliESDEvent;
18 class AliAODEvent;
19 class AliEMCALGeometry;
20 class AliEMCALRecoUtils;
21 class AliESDtrack;
22 class AliESDtrackCuts;
23 class AliAnalysisEtCuts;
24 class AliDetectorPID;
25 class AliESDCaloCluster;
26
27 class AliJetContainer;
28 class AliParticleContainer;
29 class AliClusterContainer;
30
31
32 // this whole section of includes added 
33 #include <AliEmcalJet.h>
34 #include <AliVEvent.h>
35 #include <AliVTrack.h>
36 #include <AliVCluster.h>
37 #include <TClonesArray.h>
38 #include <TMath.h>
39 #include <TRandom3.h>
40 #include <AliLog.h>
41 #include "AliAnalysisTaskEmcalJet.h"
42 #include "AliEMCALPIDResponse.h"
43 #include <AliESDCaloCluster.h>
44 #include <AliESDtrackCuts.h>
45 #include "AliAODTrack.h"
46 #include "AliESDtrack.h"
47 #include "AliPID.h"
48 #include "AliTPCdEdxInfo.h"
49
50 // PID stuff                                                                                                                                
51 #include "AliPIDResponse.h"
52 #include "AliTPCPIDResponse.h"
53 #include "AliESDpid.h"
54 #include "AliAnalysisFilter.h"
55
56 class AliAnalysisTaskEmcalJetFlavourTagExample : public AliAnalysisTaskEmcalJet {
57  public:
58   AliAnalysisTaskEmcalJetFlavourTagExample();
59   AliAnalysisTaskEmcalJetFlavourTagExample(const char *name);
60   virtual ~AliAnalysisTaskEmcalJetFlavourTagExample();
61   
62   virtual void           UserCreateOutputObjects();
63   
64     /** Cuts info */
65     AliAnalysisEtCuts * GetCuts() const { return fCuts; }
66     virtual void SetCuts(const AliAnalysisEtCuts *cuts)
67     { fCuts = (AliAnalysisEtCuts *) cuts; }
68
69   // setters
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   void                    SetTrackCuts(AliESDtrackCuts *cuts)         { fesdTrackCuts = cuts; }
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   
82  protected:
83   Bool_t                      Run();
84   virtual void                Terminate(Option_t *);
85   virtual Int_t               AcceptMyJet(AliEmcalJet *jet);   // applies basic jet tests/cuts before accepting
86   void                                    ExecOnce();
87
88   
89   // data type switch
90   
91   AliAnalysisEtCuts *fCuts;                            // keeper of basic cuts
92
93   // cuts
94   Double_t              fPhimin;
95   Double_t              fPhimax;
96   Double_t              fEtamin;
97   Double_t              fEtamax;
98   Double_t              fAreacut;                     //area cut
99   Double_t              fJetHIpt;                    // high jet pt 
100   Double_t              fTrackPtCut;                 // track pt cut to do PID on
101   Double_t              fTrackEta;  
102   AliESDtrackCuts       *fesdTrackCuts;           //esd track cuts!!
103   
104   // PID                                                                                                                                    
105   AliPIDResponse        *fPIDResponse;   // PID response object                                                                             
106   AliTPCPIDResponse     *fTPCResponse;   // TPC pid response object
107   
108   AliJetContainer            *fJetsCont;                   //!Jets
109   AliParticleContainer       *fTracksCont;                 //!Tracks
110   AliClusterContainer        *fCaloClustersCont;           //!Clusters
111   AliParticleContainer       *fTracksJetCont;                 //! JetTracks
112   AliClusterContainer        *fCaloClustersJetCont;           //!JetClusters
113   
114
115  private:
116   AliESDEvent               *fESD;//!  // ESD object
117   AliAODEvent               *fAOD;//!  // AOD Object
118
119   
120   TH1F                                  *fHistJetPhi;//!              // Njets vs Phi
121   TH1F                                  *fHistCorJetPt;//!            // (Njets) vs Corrected Jet Pt (local rho)
122   TH1F                                  *fHistJetPt;//!                     // raw jet pt (uncorrected)
123   TH1F                      *fHistHighJetPt;//!
124
125   TH2F                      *fHistnSigElecPt;//!  check
126   TH2F                      *fHistdEdXvsPt;//! check
127   TH2F                      *fHistnJetTrackvnJetClusters;//!  check
128
129   AliAnalysisTaskEmcalJetFlavourTagExample(const AliAnalysisTaskEmcalJetFlavourTagExample & g) ; // cpy ctor
130   AliAnalysisTaskEmcalJetFlavourTagExample& operator=(const AliAnalysisTaskEmcalJetFlavourTagExample&); // not implemented
131   
132
133
134   ClassDef(AliAnalysisTaskEmcalJetFlavourTagExample, 4); // Emcal jet Heavy Flavor
135 };
136 #endif