]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/totEt/AliAnalysisEtCommon.h
Adding common base class for AliAnalysisEt and AliAnalysisHadEt so we are not repeati...
[u/mrichter/AliRoot.git] / PWG4 / totEt / AliAnalysisEtCommon.h
1 //_________________________________________________________________________
2 //Created by Christine Nattrass, Rebecca Scott, Irakli Martashvili
3 //University of Tennessee at Knoxville
4 //
5 // This class is designed for the analysis of the hadronic component of 
6 // transverse energy.  It is used by AliAnalysisTaskHadEt.
7 //_________________________________________________________________________
8 #ifndef ALIANALYSISETCOMMON_H
9 #define ALIANALYSISETCOMMON_H
10
11 #include "TString.h"
12
13 class TH2F;
14 class TH1F;
15 class AliVEvent;
16 class TList;
17 class AliESDtrackCuts;
18 class Rtypes;
19 class TParticle;
20 class TDatabasePDG;
21 class AliAnalysisEtCuts;
22
23 class AliAnalysisEtCommon
24 {
25 public:
26    
27   AliAnalysisEtCommon();
28     virtual ~AliAnalysisEtCommon();
29
30     /** Analyse the event! */
31     virtual Int_t AnalyseEvent(AliVEvent *event);
32
33
34     /** Initialise the analysis, must be overloaded. */
35     virtual void Init();
36
37
38     /** Reset event specific values (Et etc.) */
39     virtual void ResetEventValues();
40
41     /** Cuts info */
42     AliAnalysisEtCuts * GetCuts() const { return fCuts; } 
43     virtual void SetCuts(const AliAnalysisEtCuts *cuts) 
44     { fCuts = (AliAnalysisEtCuts *) cuts; } 
45
46
47     void SetTPCITSTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsITSTPC = (AliESDtrackCuts *) cuts;}
48     void SetTPCOnlyTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsTPC = (AliESDtrackCuts *) cuts;}
49     void SetITSTrackCuts(const AliESDtrackCuts *cuts){ fEsdtrackCutsITS = (AliESDtrackCuts *) cuts;}
50
51
52 protected:   
53     
54     TString fHistogramNameSuffix; /** The suffix for the histogram names */
55
56     AliAnalysisEtCuts *fCuts; // keeper of basic cuts
57
58     /** PDG Database */
59     //TDatabasePDG *fPdgDB;//data base used for looking up pdg codes
60     //these codes are stored as variables because otherwise there were issues using this with the plugin
61
62     static Int_t fgPiPlusCode;//pdg pi plus code
63     static Int_t fgPiMinusCode;//pdg pi minus code
64     static Int_t fgKPlusCode;// pdg k plus code
65     static Int_t fgKMinusCode;//pdg k minus code
66     static Int_t fgProtonCode;//pdg proton code
67     static Int_t fgAntiProtonCode;//pdg antiproton code
68     static Int_t fgLambdaCode;// pdg lambda code
69     static Int_t fgAntiLambdaCode;//pdg antilambda code
70     static Int_t fgK0SCode;//pdg k0 short code
71     static Int_t fgOmegaCode;//pdg omega code
72     static Int_t fgAntiOmegaCode;//pdg anti-omega code
73     static Int_t fgXi0Code;//pdg xi-0 code
74     static Int_t fgAntiXi0Code;//pdg anti-xi0 code
75     static Int_t fgXiCode;//pdg xi code
76     static Int_t fgAntiXiCode;//pdg anti-xi code
77     static Int_t fgSigmaCode;//pdg sigma code
78     static Int_t fgAntiSigmaCode;//pdg anti-sigma code
79     static Int_t fgK0LCode;//pdg k0 long code
80     static Int_t fgNeutronCode;//pdg neutron code
81     static Int_t fgAntiNeutronCode;//pdg anti-neutron code
82     static Int_t fgEPlusCode;//pdg positron code
83     static Int_t fgEMinusCode;//pdg electron code
84     static Int_t fgMuPlusCode;//pdg positron code
85     static Int_t fgMuMinusCode;//pdg electron code
86     static Int_t fgGammaCode;//pdg gamma code
87     static Int_t fgPi0Code;//pdg neutral pion code
88     static Int_t fgEtaCode;//pdg eta code
89     static Int_t fgOmega0Code;//pdg eta code
90     static Float_t fgPionMass;//pdg pion mass
91     static Float_t fgKaonMass;//pdg kaon mass
92     static Float_t fgProtonMass;//pdg proton mass
93     static Float_t fgElectronMass;//pdg electron mass
94
95
96     Float_t Et(TParticle *part, float mass = -1000);
97     Float_t Et(Float_t p, Float_t theta, Int_t pid, Short_t charge) const;
98     AliESDtrackCuts* fEsdtrackCutsITSTPC;//esd track cuts for ITS+TPC tracks
99     AliESDtrackCuts* fEsdtrackCutsTPC;//esd track cuts for TPC tracks (which may also contain ITS hits)
100     AliESDtrackCuts* fEsdtrackCutsITS;//esd track cuts for ITS stand alone tracks
101
102     static Float_t fgPtTPCCutOff;//cut off for tracks in TPC
103     static Float_t fgPtITSCutOff;//cut off for tracks in ITS
104     
105
106
107  private:
108     //Declare it private to avoid compilation warning
109     AliAnalysisEtCommon & operator = (const AliAnalysisEtCommon & g) ;//cpy assignment
110     AliAnalysisEtCommon(const AliAnalysisEtCommon & g) ; // cpy ctor
111
112     ClassDef(AliAnalysisEtCommon, 1);
113 };
114
115 #endif // ALIANALYSISETCOMMON_H