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

# User Rev Content
1 sixie 1.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