]>
Commit | Line | Data |
---|---|---|
d9105d92 | 1 | #ifndef ALIANAELECTRON_H |
2 | #define ALIANAELECTRON_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | /* $Id: AliAnaElectron.h 27413 2008-07-18 13:28:12Z gconesab $ */ | |
6 | ||
7 | //_________________________________________________________________________ | |
8 | // | |
9 | // Class for the electron identification, | |
10 | // Clusters from calorimeters are identified as electrons | |
11 | // and kept in the AOD. Few histograms produced. | |
12 | // Copy of AliAnaPhoton just add electron id. | |
13 | // | |
14 | ||
15 | //-- Author: Gustavo Conesa (LPSC-IN2P3-CNRS) | |
16 | ||
17 | // --- ROOT system --- | |
18 | class TH2F ; | |
19 | class TH1F; | |
20 | class TH3D; | |
21 | class TString ; | |
22 | class TObjString; | |
23 | ||
24 | // --- ANALYSIS system --- | |
25 | #include "AliAnaPartCorrBaseClass.h" | |
26 | class AliStack; | |
27 | class TParticle; | |
28 | ||
29 | class TList ; | |
30 | ||
31 | class AliAnaElectron : public AliAnaPartCorrBaseClass { | |
32 | ||
33 | public: | |
34 | ||
35 | AliAnaElectron() ; // default ctor | |
36 | ||
37 | virtual ~AliAnaElectron() { ; } // virtual dtor | |
38 | ||
39 | private: | |
40 | ||
41 | AliAnaElectron(const AliAnaElectron & g) ; // cpy ctor | |
42 | ||
43 | AliAnaElectron & operator = (const AliAnaElectron & g) ; // cpy assignment | |
44 | ||
45 | public: | |
46 | ||
47 | //--------------------------------------- | |
48 | // General analysis frame methods | |
49 | //--------------------------------------- | |
50 | ||
51 | TObjString * GetAnalysisCuts(); | |
52 | ||
53 | TList * GetCreateOutputObjects(); | |
54 | ||
55 | void Init(); | |
56 | ||
57 | void InitParameters(); | |
58 | ||
59 | void MakeAnalysisFillAOD() ; | |
60 | ||
61 | void MakeAnalysisFillHistograms() ; | |
62 | ||
63 | void Print(const Option_t * opt)const; | |
64 | ||
65 | ||
66 | // Analysis methods | |
67 | ||
68 | Bool_t ClusterSelected(AliVCluster* cl, TLorentzVector mom) ; | |
69 | ||
d9105d92 | 70 | void FillShowerShapeHistograms( AliVCluster* cluster, const Int_t mcTag , const Int_t pidTag) ; |
71 | ||
72 | void SwitchOnFillShowerShapeHistograms() { fFillSSHistograms = kTRUE ; } | |
73 | void SwitchOffFillShowerShapeHistograms() { fFillSSHistograms = kFALSE ; } | |
74 | ||
78a28af3 | 75 | void RecalibrateCellAmplitude(Float_t & amp, const Int_t absId); |
76 | ||
77 | void WeightHistograms(AliVCluster *clus); | |
78 | ||
79 | void SwitchOnFillWeightHistograms() { fFillWeightHistograms = kTRUE ; } | |
80 | void SwitchOffFillWeightHistograms() { fFillWeightHistograms = kFALSE ; } | |
81 | ||
d9105d92 | 82 | //--------------------------------------- |
83 | // Analysis parameters setters getters | |
84 | //--------------------------------------- | |
85 | ||
86 | TString GetCalorimeter() const { return fCalorimeter ; } | |
87 | void SetCalorimeter(TString & det) { fCalorimeter = det ; } | |
88 | ||
89 | // ** Cluster selection methods ** | |
90 | ||
91 | void SetdEdxCut(Double_t min, Double_t max) { fdEdxMin = min ; | |
92 | fdEdxMax = max ; } | |
93 | ||
94 | void SetEOverP(Double_t min, Double_t max) { fEOverPMin = min ; | |
95 | fEOverPMax = max ; } | |
96 | ||
97 | ||
98 | void SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) { | |
99 | fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3; } | |
100 | ||
101 | void SetTimeCut(Double_t min, Double_t max) { fTimeCutMin = min; | |
102 | fTimeCutMax = max ; } | |
103 | Double_t GetTimeCutMin() const { return fTimeCutMin ; } | |
104 | Double_t GetTimeCutMax() const { return fTimeCutMax ; } | |
105 | ||
106 | void SetNCellCut(Int_t n) { fNCellsCut = n ; } | |
107 | Double_t GetNCellCut() const { return fNCellsCut ; } | |
108 | ||
109 | void FillNOriginHistograms(Int_t n) { fNOriginHistograms = n ; | |
110 | if(n > 10) fNOriginHistograms = 10; } | |
111 | ||
112 | // For histograms in arrays, index in the array, corresponding to a particle | |
113 | enum mcTypes { mcPhoton = 0, mcPi0Decay = 1, mcOtherDecay = 2, | |
114 | mcPi0 = 3, mcEta = 4, mcElectron = 5, | |
115 | mcConversion = 6, mcOther = 7, mcAntiNeutron = 8, | |
116 | mcAntiProton = 9 }; | |
117 | ||
118 | enum mcssTypes { mcssPhoton = 0, mcssOther = 1, mcssPi0 = 2, | |
119 | mcssEta = 3, mcssConversion = 4, mcssElectron = 5 }; | |
120 | ||
121 | private: | |
122 | ||
123 | TString fCalorimeter ; // Calorimeter where the gamma is searched; | |
124 | Float_t fMinDist ; // Minimal distance to bad channel to accept cluster | |
125 | Float_t fMinDist2; // Cuts on Minimal distance to study acceptance evaluation | |
126 | Float_t fMinDist3; // One more cut on distance used for acceptance-efficiency study | |
127 | Double_t fTimeCutMin ; // Remove clusters/cells with time smaller than this value, in ns | |
128 | Double_t fTimeCutMax ; // Remove clusters/cells with time larger than this value, in ns | |
129 | Int_t fNCellsCut ; // Accept for the analysis clusters with more than fNCellsCut cells | |
130 | Bool_t fFillSSHistograms ; // Fill shower shape histograms | |
78a28af3 | 131 | Bool_t fFillWeightHistograms ; // Fill weigth histograms |
d9105d92 | 132 | Int_t fNOriginHistograms; // Fill only NOriginHistograms of the 14 defined types |
133 | ||
134 | Float_t fdEdxMin; // Max dEdx for electrons | |
135 | Float_t fdEdxMax; // Min dEdx for electrons | |
136 | Float_t fEOverPMin; // Max E/p for electrons, after dEdx cut | |
137 | Float_t fEOverPMax; // Min E/p for electrons, after dEdx cut | |
138 | ||
139 | //Histograms | |
140 | TH2F * fhdEdxvsE; //! matched track dEdx vs cluster E | |
141 | TH2F * fhdEdxvsP; //! matched track dEdx vs track P | |
142 | TH2F * fhEOverPvsE; //! matched track E cluster over P track vs cluster E, after dEdx cut | |
143 | TH2F * fhEOverPvsP; //! matched track E cluster over P track vs track P, after dEdx cut | |
144 | ||
145 | TH2F * fhNCellsE[2]; //! number of cells in cluster vs E | |
146 | TH2F * fhMaxCellDiffClusterE[2]; //! Fraction of energy carried by cell with maximum energy | |
42d47cb7 | 147 | TH2F * fhTimeE[2]; //! E vs Time of selected cluster |
148 | ||
d9105d92 | 149 | TH1F * fhE[2] ; //! Number of identified electron vs energy |
150 | TH1F * fhPt[2] ; //! Number of identified electron vs transerse momentum | |
151 | TH2F * fhPhi[2] ; //! Azimuthal angle of identified electron vs transerse momentum | |
152 | TH2F * fhEta[2] ; //! Pseudorapidity of identified electron vs transerse momentum | |
153 | TH2F * fhEtaPhi[2] ; //! Pseudorapidity vs Phi of identified electron for transerse momentum > 0.5 | |
154 | TH2F * fhEtaPhi05[2] ; //! Pseudorapidity vs Phi of identified electron for transerse momentum < 0.5 | |
155 | ||
156 | //Shower shape | |
157 | ||
158 | TH2F * fhDispE[2]; //! cluster dispersion vs E | |
159 | TH2F * fhLam0E[2]; //! cluster lambda0 vs E | |
160 | TH2F * fhLam1E[2]; //! cluster lambda1 vs E | |
161 | ||
162 | TH2F * fhDispETRD[2]; //! cluster dispersion vs E, SM covered by TRD | |
163 | TH2F * fhLam0ETRD[2]; //! cluster lambda0 vs E, SM covered by TRD | |
164 | TH2F * fhLam1ETRD[2]; //! cluster lambda1 vs E, SM covered by TRD | |
165 | ||
166 | TH2F * fhNCellsLam0LowE[2]; //! cluster N cells vs lambda0, E<2 | |
167 | TH2F * fhNCellsLam0HighE[2]; //! cluster N Cells vs lambda0, E>2 | |
168 | ||
169 | TH2F * fhEtaLam0LowE[2]; //! cluster eta vs lambda0, E<2 | |
170 | TH2F * fhPhiLam0LowE[2]; //! cluster phi vs lambda0, E<2 | |
171 | TH2F * fhEtaLam0HighE[2]; //! cluster eta vs lambda0, E>2 | |
172 | TH2F * fhPhiLam0HighE[2]; //! cluster phi vs lambda0, E>2 | |
173 | ||
78a28af3 | 174 | // Weight studies |
175 | ||
176 | TH2F * fhECellClusterRatio; //! e cell / e cluster vs e cluster for selected electrons | |
177 | TH2F * fhECellClusterLogRatio; //! log (e cell / e cluster) vs e cluster for selected electrons | |
178 | TH2F * fhEMaxCellClusterRatio; //! e max cell / e cluster vs e cluster for selected electrons | |
179 | TH2F * fhEMaxCellClusterLogRatio; //! log (e max cell / e cluster) vs e cluster for selected electrons | |
180 | TH2F * fhLambda0ForW0[7]; //! L0 for 7 defined w0= 3, 3.5 ... 6 for selected electrons | |
181 | TH2F * fhLambda1ForW0[7]; //! L1 for 7 defined w0= 3, 3.5 ... 6 for selected electrons | |
182 | ||
d9105d92 | 183 | //Fill MC dependent histograms, Origin of this cluster is ... |
184 | ||
185 | TH2F * fhMCDeltaE[2][10] ; //! MC-Reco E distribution coming from MC particle | |
186 | TH2F * fhMC2E[2][10] ; //! E distribution, Reco vs MC coming from MC particle | |
187 | ||
188 | TH1F * fhMCE[2][10]; //! Number of identified electron vs cluster energy coming from MC particle | |
189 | TH1F * fhMCPt[2][10]; //! Number of identified electron vs cluster energy coming from MC particle | |
190 | TH2F * fhMCPhi[2][10]; //! Phi of identified electron coming from MC particle | |
191 | TH2F * fhMCEta[2][10]; //! eta of identified electron coming from MC particle | |
192 | ||
193 | // Shower Shape MC | |
194 | ||
195 | TH2F * fhMCELambda0[2][6] ; //! E vs Lambda0 from MC particle | |
196 | ||
197 | TH2F * fhMCElectronELambda0NoOverlap ; //! E vs Lambda0 from MC electrons, no overlap | |
198 | TH2F * fhMCElectronELambda0TwoOverlap ; //! E vs Lambda0 from MC electrons, 2 particles overlap | |
199 | TH2F * fhMCElectronELambda0NOverlap ; //! E vs Lambda0 from MC electrons, N particles overlap | |
200 | ||
201 | //Embedding | |
202 | TH2F * fhEmbeddedSignalFractionEnergy ; //! Fraction of electron energy of embedded signal vs cluster energy | |
203 | ||
204 | TH2F * fhEmbedElectronELambda0FullSignal ; //! Lambda0 vs E for embedded electrons with more than 90% of the cluster energy | |
205 | TH2F * fhEmbedElectronELambda0MostlySignal ; //! Lambda0 vs E for embedded electrons with 90%<fraction<50% | |
206 | TH2F * fhEmbedElectronELambda0MostlyBkg ; //! Lambda0 vs E for embedded electrons with 50%<fraction<10% | |
207 | TH2F * fhEmbedElectronELambda0FullBkg ; //! Lambda0 vs E for embedded electrons with less than 10% of the cluster energy | |
208 | ||
78a28af3 | 209 | ClassDef(AliAnaElectron,2) |
d9105d92 | 210 | |
211 | } ; | |
212 | ||
213 | ||
214 | #endif//ALIANAELECTRON_H | |
215 | ||
216 | ||
217 |