ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Utils/interface/ElectronEnergyRegression.h
Revision: 1.1
Committed: Tue Oct 9 13:57:27 2012 UTC (12 years, 6 months ago) by sixie
Content type: text/plain
Branch: MAIN
Log Message:
add electron energy regression evaluator

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 //
3 // ElectronEnergyRegression
4 //
5 // Helper Class for applying electron energy regression calculation
6 //
7 //--------------------------------------------------------------------------------------------------
8
9 #ifndef MITPHYSICS_UTILS_ELECTRONENERGYREGRESSIONEVALUATE_H
10 #define MITPHYSICS_UTILS_ELECTRONENERGYREGRESSIONEVALUATE_H
11
12 // For applying regression
13 #include "CondFormats/EgammaObjects/interface/GBRForest.h"
14 #include "TFile.h"
15
16 namespace mithep {
17 class ElectronEnergyRegression{
18 public:
19 ElectronEnergyRegression();
20 ~ElectronEnergyRegression();
21
22 enum ElectronEnergyRegressionType {
23 kNoTrkVar,
24 kWithTrkVar
25 };
26
27 void initialize(std::string weightsFile,
28 ElectronEnergyRegression::ElectronEnergyRegressionType type);
29
30 bool isInitialized() const {return fIsInitialized;}
31
32 // Evaluates regression without tracker variables
33 double regressionValueNoTrkVar(
34 double SCRawEnergy,
35 double scEta,
36 double scPhi,
37 double R9,
38 double etawidth,
39 double phiwidth,
40 double NClusters,
41 double HoE,
42 double rho,
43 double vertices,
44 double EtaSeed,
45 double PhiSeed,
46 double ESeed,
47 double E3x3Seed,
48 double E5x5Seed,
49 double see,
50 double spp,
51 double sep,
52 double EMaxSeed,
53 double E2ndSeed,
54 double ETopSeed,
55 double EBottomSeed,
56 double ELeftSeed,
57 double ERightSeed,
58 double E2x5MaxSeed,
59 double E2x5TopSeed,
60 double E2x5BottomSeed,
61 double E2x5LeftSeed,
62 double E2x5RightSeed,
63 double IEtaSeed,
64 double IPhiSeed,
65 double EtaCrySeed,
66 double PhiCrySeed,
67 double PreShowerOverRaw,
68 bool printDebug = false);
69
70 // Evaluates regression without tracker variables
71 double regressionUncertaintyNoTrkVar(
72 double SCRawEnergy,
73 double scEta,
74 double scPhi,
75 double R9,
76 double etawidth,
77 double phiwidth,
78 double NClusters,
79 double HoE,
80 double rho,
81 double vertices,
82 double EtaSeed,
83 double PhiSeed,
84 double ESeed,
85 double E3x3Seed,
86 double E5x5Seed,
87 double see,
88 double spp,
89 double sep,
90 double EMaxSeed,
91 double E2ndSeed,
92 double ETopSeed,
93 double EBottomSeed,
94 double ELeftSeed,
95 double ERightSeed,
96 double E2x5MaxSeed,
97 double E2x5TopSeed,
98 double E2x5BottomSeed,
99 double E2x5LeftSeed,
100 double E2x5RightSeed,
101 double IEtaSeed,
102 double IPhiSeed,
103 double EtaCrySeed,
104 double PhiCrySeed,
105 double PreShowerOverRaw,
106 bool printDebug = false);
107
108
109 // Evaluates regression using tracker variables
110 double regressionValueWithTrkVarV1(
111 double SCRawEnergy,
112 double scEta,
113 double scPhi,
114 double R9,
115 double etawidth,
116 double phiwidth,
117 double NClusters,
118 double HoE,
119 double rho,
120 double vertices,
121 double EtaSeed,
122 double PhiSeed,
123 double ESeed,
124 double E3x3Seed,
125 double E5x5Seed,
126 double see,
127 double spp,
128 double sep,
129 double EMaxSeed,
130 double E2ndSeed,
131 double ETopSeed,
132 double EBottomSeed,
133 double ELeftSeed,
134 double ERightSeed,
135 double E2x5MaxSeed,
136 double E2x5TopSeed,
137 double E2x5BottomSeed,
138 double E2x5LeftSeed,
139 double E2x5RightSeed,
140 double IEtaSeed,
141 double IPhiSeed,
142 double EtaCrySeed,
143 double PhiCrySeed,
144 double PreShowerOverRaw,
145 double GsfTrackPIn,
146 double fbrem,
147 double Charge,
148 double EoP,
149 double TrackMomentumError,
150 bool printDebug = false );
151
152
153 // Evaluates regression using tracker variables
154 double regressionUncertaintyWithTrkVarV1(
155 double electronP,
156 double SCRawEnergy,
157 double scEta,
158 double scPhi,
159 double R9,
160 double etawidth,
161 double phiwidth,
162 double NClusters,
163 double HoE,
164 double rho,
165 double vertices,
166 double EtaSeed,
167 double PhiSeed,
168 double ESeed,
169 double E3x3Seed,
170 double E5x5Seed,
171 double see,
172 double spp,
173 double sep,
174 double EMaxSeed,
175 double E2ndSeed,
176 double ETopSeed,
177 double EBottomSeed,
178 double ELeftSeed,
179 double ERightSeed,
180 double E2x5MaxSeed,
181 double E2x5TopSeed,
182 double E2x5BottomSeed,
183 double E2x5LeftSeed,
184 double E2x5RightSeed,
185 double IEtaSeed,
186 double IPhiSeed,
187 double EtaCrySeed,
188 double PhiCrySeed,
189 double PreShowerOverRaw,
190 double GsfTrackPIn,
191 double fbrem,
192 double Charge,
193 double EoP,
194 bool printDebug = false );
195
196 // Evaluates regression using tracker variables
197 double regressionValueWithTrkVarV2( std::vector<double> &inputvars,
198 bool printDebug = false );
199
200
201 // Evaluates regression using tracker variables
202 double regressionUncertaintyWithTrkVarV2( std::vector<double> &inputvars,
203 bool printDebug = false );
204
205 private:
206 bool fIsInitialized;
207 ElectronEnergyRegression::ElectronEnergyRegressionType fVersionType;
208 GBRForest *forestCorrection_eb; // Pointer to the GBRForest for barrel
209 GBRForest *forestCorrection_ee; // Pointer to the GBRForest for endcap
210
211 GBRForest *forestUncertainty_eb;
212 GBRForest *forestUncertainty_ee;
213 };
214 }
215 #endif