]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/totEt/AliAnalysisEtCuts.h
New MFT analysis tools
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisEtCuts.h
1 #ifndef ALIANALYSISETCUTS_H
2 #define ALIANALYSISETCUTS_H
3 //_________________________________________________________________________
4 //  Utility Class for transverse energy studies
5 //  Base class for ESD & MC analysis
6 //  - cuts for reconstruction and MonteCarlo 
7 //  
8 //*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL)
9 //_________________________________________________________________________
10
11 #include "TNamed.h"
12 #include <iostream>
13
14 class AliAnalysisEtCuts : public TNamed
15 {
16  public:
17    
18   AliAnalysisEtCuts();
19   virtual ~AliAnalysisEtCuts();
20
21   virtual void SetPbPbDefaults();
22
23   // Getters
24   // Common
25   Double_t GetCommonEtaCut() const { return fCommonEtaCut; }
26   Double_t GetCommonClusterEnergyCut() const { return fCommonClusterEnergyCut; }
27   Double_t GetCommonTrackPtCut() const { return fCommonTrackPtCut; }
28   Int_t GetCommonSingleCell() const { return fCommonSingleCell; }
29
30   // GeometryPhos
31   Double_t GetGeometryPhosEtaAccCut() const { return fGeometryPhosEtaAccCut; }
32   Double_t GetGeometryPhosPhiAccMinCut() const { return fGeometryPhosPhiAccMinCut; }
33   Double_t GetGeometryPhosPhiAccMaxCut() const { return fGeometryPhosPhiAccMaxCut; }
34   Double_t GetGeometryPhosDetectorRadius() const { return fGeometryPhosDetectorRadius; }
35   // GeometryEmcal
36   Double_t GetGeometryEmcalEtaAccCut() const { return fGeometryEmcalEtaAccCut; }
37   Double_t GetGeometryEmcalPhiAccMinCut() const { return fGeometryEmcalPhiAccMinCut; }
38   Double_t GetGeometryEmcalPhiAccMaxCut() const { return fGeometryEmcalPhiAccMaxCut; }
39   Double_t GetGeometryEmcalDetectorRadius() const { return fGeometryEmcalDetectorRadius; }
40   // Reconstructed
41   Double_t GetReconstructedVertexXCut() const { return fReconstructedVertexXCut; }
42   Double_t GetReconstructedVertexYCut() const { return fReconstructedVertexYCut; }
43   Double_t GetReconstructedVertexZCut() const { return fReconstructedVertexZCut; }
44   Double_t GetReconstructedIPxyCut() const { return fReconstructedIPxyCut; }
45   Double_t GetReconstructedIPzCut() const { return fReconstructedIPzCut; }
46   Int_t GetReconstructedNTpcClustersCut() const { return fReconstructedNTpcClustersCut; }
47   Int_t GetReconstructedNItsClustersCut() const { return fReconstructedNItsClustersCut; }
48   Double_t GetReconstructedPidCut() const { return fReconstructedPidCut; }
49   // ReconstructedPhos
50   Char_t GetPhosClusterType() const { return fReconstructedPhosClusterType; }
51   Double_t GetReconstructedPhosClusterEnergyCut() const { return fReconstructedPhosClusterEnergyCut; }
52   Double_t GetReconstructedPhosSingleCellEnergyCut() const { return fReconstructedPhosSingleCellEnergyCut; }
53   Double_t GetPhosTrackDistanceCut() const { return fPhosTrackDistanceCut; }
54   Double_t GetPhosTrackDxCut() const { return fPhosTrackDxCut; }
55   Double_t GetPhosTrackDzCut() const { return fPhosTrackDzCut; }
56   Double_t GetPhosTrackRCut() const { return fPhosTrackRCut; }
57   
58   Double_t GetPhosBadDistanceCut() const { return fPhosBadDistanceCut; }
59   
60   // ReconstructedEmcal
61   Char_t GetEmcalClusterType() const { return fReconstructedEmcalClusterType; }
62   Double_t GetReconstructedEmcalClusterEnergyCut() const { return fReconstructedEmcalClusterEnergyCut; }
63   Double_t GetReconstructedEmcalSingleCellEnergyCut() const { return fReconstructedEmcalSingleCellEnergyCut; }
64   Double_t GetEmcalTrackDistanceCut() const { return fEmcalTrackDistanceCut; }
65   Double_t GetEmcalTrackDxCut() const { return fEmcalTrackDxCut; }
66   Double_t GetEmcalTrackDzCut() const { return fEmcalTrackDzCut; }
67   
68   // MonteCarlo
69   Double_t GetMonteCarloSingleChargedParticle() const { return fMonteCarloSingleChargedParticle; }
70   Double_t GetMonteCarloNeutralParticle() const { return fMonteCarloNeutralParticle; }
71   // Hist: TTree and histogram info
72   Bool_t GetHistMakeTree() const { return fHistMakeTree; }
73   Bool_t GetHistMakeTreeDeposit() const { return fHistMakeTreeDeposit; }
74   //
75   Int_t GetHistNbinsMult() const { return fHistNbinsMult; }
76   Double_t GetHistMinMult() const { return fHistMinMult; }
77   Double_t GetHistMaxMult() const { return fHistMaxMult; }
78   //
79   Int_t GetHistNbinsTotEt() const { return fHistNbinsTotEt; }
80   Double_t GetHistMinTotEt() const { return fHistMinTotEt; }
81   Double_t GetHistMaxTotEt() const { return fHistMaxTotEt; }
82   //
83   Int_t GetHistNbinsParticleEt() const { return fHistNbinsParticleEt; }
84   Double_t GetHistMinParticleEt() const { return fHistMinParticleEt; }
85   Double_t GetHistMaxParticleEt() const { return fHistMaxParticleEt; }
86   //
87   Int_t GetHistNbinsParticlePt() const { return fHistNbinsParticlePt; }
88   Double_t GetHistMinParticlePt() const { return fHistMinParticlePt; }
89   Double_t GetHistMaxParticlePt() const { return fHistMaxParticlePt; }
90   
91   
92   
93   Short_t GetDetectorPhos() const { return fgkDetectorPhos; }
94   Short_t GetDetectorEmcal() const { return fgkDetectorEmcal; }
95   
96   Double_t GetPrimaryVertexCutXY() const { return fPrimaryVertexCutXY; }
97   Double_t GetPrimaryVertexCutZ() const { return fPrimaryVertexCutZ; }
98   
99
100   // Setters
101   // Common
102   void SetCommonEtaCut(Double_t val) { fCommonEtaCut = val; }
103   void SetCommonClusterEnergyCut(Double_t val) { fCommonClusterEnergyCut = val; }
104   void SetCommonTrackPtCut(Double_t val) { fCommonTrackPtCut = val; }
105   void SetCommonSingleCell(Int_t val) { fCommonSingleCell = val;}
106   // GeometryPhos
107   void SetGeometryPhosEtaAccCut(Double_t val) { fGeometryPhosEtaAccCut = val; }
108   void SetGeometryPhosPhiAccMinCut(Double_t val) { fGeometryPhosPhiAccMinCut = val; }
109   void SetGeometryPhosPhiAccMaxCut(Double_t val) { fGeometryPhosPhiAccMaxCut = val; }
110   void SetGeometryPhosDetectorRadius(Double_t val) { fGeometryPhosDetectorRadius = val; }
111   // GeometryEmcal
112   void SetGeometryEmcalEtaAccCut(Double_t val) { fGeometryEmcalEtaAccCut = val; }
113   void SetGeometryEmcalPhiAccMinCut(Double_t val) { fGeometryEmcalPhiAccMinCut = val; }
114   void SetGeometryEmcalPhiAccMaxCut(Double_t val) { fGeometryEmcalPhiAccMaxCut = val; }
115   void SetGeometryEmcalDetectorRadius(Double_t val) { fGeometryEmcalDetectorRadius = val; }
116   // Reconstructed
117   void SetReconstructedVertexXCut(Double_t val) { fReconstructedVertexXCut = val; }
118   void SetReconstructedVertexYCut(Double_t val) { fReconstructedVertexYCut = val; }
119   void SetReconstructedVertexZCut(Double_t val) { fReconstructedVertexZCut = val; }
120   void SetReconstructedIPxyCut(Double_t val) { fReconstructedIPxyCut = val; }
121   void SetReconstructedIPzCut(Double_t val) { fReconstructedIPzCut = val; }
122   void SetReconstructedNTpcClustersCut(Int_t val) { fReconstructedNTpcClustersCut = val; }
123   void SetReconstructedNItsClustersCut(Int_t val) { fReconstructedNItsClustersCut = val; }
124   void SetReconstrucedPidCut(Double_t val) { fReconstructedPidCut = val; }
125   // ReconstructedPhos
126   void SetReconstructedPhosClusterType(Char_t val) { fReconstructedPhosClusterType = val; }
127   void SetReconstructedPhosClusterEnergyCut(Double_t val) { fReconstructedPhosClusterEnergyCut = val; }
128   void SetReconstructedPhosSingleCellEnergyCut(Double_t val) { fReconstructedPhosSingleCellEnergyCut = val; }
129   void SetPhosTrackDistanceCut(Double_t val) { fPhosTrackDistanceCut = val; }
130   void SetPhosTrackDxCut(Double_t val) { fPhosTrackDxCut = val; }
131   void SetPhosTrackDzCut(Double_t val) { fPhosTrackDzCut = val; }
132   void SetPhosTrackRCut(Double_t val) { std::cout << "Setting: " << val << std::endl; fPhosTrackRCut = val; }
133   
134   void SetPhosBadDistanceCut(Double_t val) { fPhosBadDistanceCut = val; }
135   
136   // ReconstructedEmcal
137   void SetReconstructedEmcalClusterType(Char_t val) { fReconstructedEmcalClusterType = val; }
138   void SetReconstructedEmcalClusterEnergyCut(Double_t val) { fReconstructedEmcalClusterEnergyCut = val; }
139   void SetReconstructedEmcalSingleCellEnergyCut(Double_t val) { fReconstructedEmcalSingleCellEnergyCut = val; }
140   void SetEmcalTrackDistanceCut(Double_t val) { fEmcalTrackDistanceCut = val; }
141   // MonteCarlo
142   void SetMonteCarloSingleChargedParticle(Double_t val) { fMonteCarloSingleChargedParticle = val; }
143   void SetMonteCarloNeutralParticle(Double_t val) { fMonteCarloNeutralParticle = val; }
144   // Hist: TTree and histogram info
145   void SetHistMakeTree(Bool_t val) { fHistMakeTree = val; }
146   void SetHistMakeTreeDeposit(Bool_t val) { fHistMakeTreeDeposit = val; }
147   //
148   void SetHistNbinsMult(Int_t val) { fHistNbinsMult = val; }
149   void SetHistMinMult(Double_t val) { fHistMinMult = val; }
150   void SetHistMaxMult(Double_t val) { fHistMaxMult = val; }
151   //
152   void SetHistNbinsTotEt(Int_t val) { fHistNbinsTotEt = val; }
153   void SetHistMinTotEt(Double_t val) { fHistMinTotEt = val; }
154   void SetHistMaxTotEt(Double_t val) { fHistMaxTotEt = val; }
155   //
156   void SetHistNbinsParticleEt(Int_t val) { fHistNbinsParticleEt = val; }
157   void SetHistMinParticleEt(Double_t val) { fHistMinParticleEt = val; }
158   void SetHistMaxParticleEt(Double_t val) { fHistMaxParticleEt = val; }
159   //
160   void SetHistNbinsParticlePt(Int_t val) { fHistNbinsParticlePt = val; }
161   void SetHistMinParticlePt(Double_t val) { fHistMinParticlePt = val; }
162   void SetHistMaxParticlePt(Double_t val) { fHistMaxParticlePt = val; }
163
164   void SetPrimaryVertexCutXY(Double_t val) { fPrimaryVertexCutXY = val; }
165   void SetPrimaryVertexCutZ(Double_t val) { fPrimaryVertexCutZ = val; }
166   
167   
168   
169  protected:
170
171   // Common   
172   Double_t fCommonEtaCut; // Eta cut
173   Double_t fCommonClusterEnergyCut; // Cluster Energy cut
174   Double_t fCommonTrackPtCut; // Track Pt
175   Int_t fCommonSingleCell; // Single Cell (1)
176   Double_t fEmcalTrackDistanceCut; // EMCal track distance
177   Double_t fEmcalTrackDxCut; // EMCal track distance in x 
178   Double_t fEmcalTrackDzCut; // EMCal track distance in z
179   
180   Double_t fPhosTrackDistanceCut; // PHOS track distance  
181   Double_t fPhosTrackDxCut; // PHOS track distance in x
182   Double_t fPhosTrackDzCut; // PHOS track distance  in z
183   Double_t fPhosTrackRCut; // PHOS track distance  in r (using the parametrized track distance)
184  
185  Double_t fPhosBadDistanceCut; // PHOS distance to bad channel 
186  
187   // GeometryPhos
188   Double_t fGeometryPhosEtaAccCut; // PHOS Eta Acc cut
189   Double_t fGeometryPhosPhiAccMinCut; // PHOS Phi Acc Min cut
190   Double_t fGeometryPhosPhiAccMaxCut; // PHOS Phi Acc Max cut
191   Double_t fGeometryPhosDetectorRadius; // PHOS Detector Radius 
192
193   // GeometryEmcal
194   Double_t fGeometryEmcalEtaAccCut; // EMCal Eta Acc cut
195   Double_t fGeometryEmcalPhiAccMinCut; // EMCal Phi Acc Min cut
196   Double_t fGeometryEmcalPhiAccMaxCut; // EMCal Phi Acc Max cut
197   Double_t fGeometryEmcalDetectorRadius; // EMCal Detector Radius
198
199   // Reconstructed
200   Double_t fReconstructedVertexXCut; // vertex X cut
201   Double_t fReconstructedVertexYCut; // vertex Y cut
202   Double_t fReconstructedVertexZCut; // vertex Z cut
203   Double_t fReconstructedIPxyCut; // IP xy cut
204   Double_t fReconstructedIPzCut; // IP z cut
205   Int_t fReconstructedNTpcClustersCut; // # of TPC clusters cut
206   Int_t fReconstructedNItsClustersCut; // # of ITS clusters cut
207   Double_t fReconstructedPidCut; // cut on pid prob
208
209   // ReconstructedPhos
210   Char_t fReconstructedPhosClusterType; // PHOS cluster type
211   Double_t fReconstructedPhosClusterEnergyCut; // PHOS cluster energy
212   Double_t fReconstructedPhosSingleCellEnergyCut; // PHOS single cell energy
213   Double_t fReconstructedPhosTrackDistanceTightCut; // PHOS track distance
214   Double_t fReconstructedPhosTrackDistanceMediumCut; // PHOS track distance
215   Double_t fReconstructedPhosTrackDistanceLooseCut; // PHOS track distance
216
217   // ReconstructedEmcal
218   Char_t fReconstructedEmcalClusterType; // EMCal cluster type
219   Double_t fReconstructedEmcalClusterEnergyCut; // EMCal cluster energy
220   Double_t fReconstructedEmcalSingleCellEnergyCut; // EMCal single cell energy
221   Double_t fReconstructedEmcalTrackDistanceTightCut; // EMCAL track distance
222   Double_t fReconstructedEmcalTrackDistanceMediumCut; // EMCAL track distance
223   Double_t fReconstructedEmcalTrackDistanceLooseCut; // EMCAL track distance
224
225   // MonteCarlo
226   Double_t fMonteCarloSingleChargedParticle; // MC charged
227   Double_t fMonteCarloNeutralParticle; // MC neutral
228
229   // Hist: TTree and histogram info
230   Bool_t fHistMakeTree; // whether to make a summary tree or not
231   Bool_t fHistMakeTreeDeposit; // whether to make a summary tree of energy deposit or not
232   
233   Int_t fHistNbinsMult; // number of bins in multiplicity histograms
234   Double_t fHistMinMult; // minimum value in multiplicity histograms
235   Double_t fHistMaxMult; // maximum value in multiplicity histograms
236
237   Int_t fHistNbinsTotEt; // number of bins in event Et histograms
238   Double_t fHistMinTotEt; // minimum value in event Et histograms
239   Double_t fHistMaxTotEt; // maximum value in event Et histograms
240
241   Int_t fHistNbinsParticleEt; // number of bins in particle Et histograms
242   Double_t fHistMinParticleEt; // minimum value in particle Et histograms
243   Double_t fHistMaxParticleEt; // maximum value in particle Et histograms
244
245   Int_t fHistNbinsParticlePt; // number of bins in particle Pt histograms
246   Double_t fHistMinParticlePt; // minimum value in particle Pt histograms
247   Double_t fHistMaxParticlePt; // maximum value in particle Pt histograms
248
249 // Detector definition
250   static const Short_t fgkDetectorPhos = -1; // PHOS 
251   static const Short_t fgkDetectorEmcal = 1; // EMCAL 
252   
253   Double_t fPrimaryVertexCutXY; // Cut to decide if particle is from primary vertex
254   Double_t fPrimaryVertexCutZ; // Cut to decide if particle is from primary vertex
255   
256
257 private:
258   //Declare private to avoid compilation warning
259   AliAnalysisEtCuts & operator = (const AliAnalysisEtCuts & g) ;//copy assignment
260   AliAnalysisEtCuts(const AliAnalysisEtCuts & g) ; // copy ctor
261
262   ClassDef(AliAnalysisEtCuts, 1);
263 };
264
265 #endif // ALIANALYSISETCUTS_H