ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootElectron.h
(Generate patch)

Comparing UserCode/Morgan/interface/TRootElectron.h (file contents):
Revision 1.2 by lethuill, Wed Nov 19 19:03:16 2008 UTC vs.
Revision 1.12 by lethuill, Tue Jun 30 15:37:17 2009 UTC

# Line 1 | Line 1
1   #ifndef TRootElectron_h
2   #define TRootElectron_h
3  
4 < #include "../interface/TRootParticle.h"
5 <
6 < #include "Rtypes.h"
7 < #include "TObject.h"
4 > #include <map>
5  
6 + #include "../interface/TRootParticle.h"
7  
8   using namespace std;
9  
10 + class TRootSuperCluster;
11 +
12   class TRootElectron : public TRootParticle
13   {
14 <        
15 < public:
16 <        
17 <        TRootElectron() :
18 <                        TRootParticle()
19 <                        ,dummy_(0.)
20 <                        {;}
21 <
22 <        TRootElectron(const TRootElectron& electron) :
23 <                        TRootParticle(electron)
24 <                         ,dummy_(electron.dummy_)
25 <                        {;}
26 <
27 <        TRootElectron(Double_t px, Double_t py, Double_t pz, Double_t e) :
28 <                        TRootParticle(px,py,pz,e)
29 <                        ,dummy_(0.)
30 <                        {;}
31 <        
32 <        TRootElectron(Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vtx_x, Double_t vtx_y, Double_t vtx_z) :
33 <                        TRootParticle(px,py,pz,e,vtx_x,vtx_y,vtx_z)
34 <                        ,dummy_(0.)
35 <                        {;}
36 <
37 <        TRootElectron(Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vtx_x, Double_t vtx_y, Double_t vtx_z, Int_t type, Float_t charge) :
38 <                        TRootParticle(px,py,pz,e,vtx_x,vtx_y,vtx_z,type,charge)
39 <                        ,dummy_(0.)
40 <                        {;}
41 <
42 <        TRootElectron(const TLorentzVector &momentum) :
43 <                        TRootParticle(momentum)
44 <                        ,dummy_(0.)
45 <                        {;}
46 <
47 <        TRootElectron(const TLorentzVector &momentum, const TVector3 &vertex, Int_t type, Float_t charge) :
48 <                        TRootParticle(momentum, vertex, type, charge)
49 <                        ,dummy_(0.)
50 <                        {;}
51 <
52 <        ~TRootElectron() {;}
53 <                
54 <        Float_t dummy() const { return dummy_; }
55 <
56 <        void setDummy(Float_t dummy) { dummy_ = dummy; }
57 <        
58 <        friend std::ostream& operator<< (std::ostream& stream, const TRootElectron& electron) {
59 <                stream << "TRootElectron - Charge=" << electron.charge() << " (Et,eta,phi)=("<< electron.Et() <<","<< electron.Eta() <<","<< electron.Phi() << ")"
60 <                                << " vertex(x,y,z)=("<< electron.vx() <<","<< electron.vy() <<","<< electron.vz() << ")";
61 <                return stream;
62 <        };
63 <
64 <                        
65 < private:
66 <        
67 <        Float_t dummy_;
68 <        
69 <        ClassDef (TRootElectron,1);
14 >
15 >   public:
16 >
17 >      TRootElectron() :
18 >      TRootParticle()
19 >      ,classification_(-9999)
20 >      ,caloEnergy_(-9999.)
21 >      ,caloEnergyError_(-9999.)
22 >      ,trackMomentum_(-9999.)
23 >      ,trackMomentumError_(-9999.)
24 >      ,hadOverEm_(-9999.)
25 >      ,deltaEtaIn_(-9999.)
26 >      ,deltaPhiIn_(-9999.)
27 >      ,energySuperClusterOverPin_(-9999.)
28 >      ,deltaEtaOut_(-9999.)
29 >      ,deltaPhiOut_(-9999.)
30 >      ,energySeedClusterOverPout_(-9999.)
31 >      ,energyScaleCorrected_(false)
32 >      ,momentumCorrected_(false)
33 >      ,pixelLayersWithMeasurement_(-1)
34 >      ,stripLayersWithMeasurement_(-1)
35 >      ,d0_(-9999.)
36 >      ,d0Error_(-9999.)
37 >      ,dsz_(-9999.)
38 >      ,dszError_(-9999.)
39 >      ,normalizedChi2_(-9999.)
40 >      ,ptError_(-9999.)
41 >      ,etaError_(-9999.)
42 >      ,phiError_(-9999.)
43 >      ,ip3DSignificance_(-9999.)
44 >      ,nbClusters_(-9999)
45 >      ,superClusterRawEnergy_(-9999.)
46 >      ,preshowerEnergy_(-9999.)
47 >      ,caloPosition_(-9999.,-9999.,-9999.)
48 >      ,scIndex_()
49 >      ,scRef_()
50 >      ,clusterAlgo_(-9999)
51 >      ,caloConeSize_(-9999.)
52 >      ,e2x2_(-9999.)
53 >      ,e3x3_(-9999.)
54 >      ,e5x5_(-9999.)
55 >      ,eMax_(-9999.)
56 >      ,isoR01_sumPt_(-9999.)
57 >      ,isoR01_nTracks_(-9999)
58 >      ,isoR02_sumPt_(-9999.)
59 >      ,isoR02_nTracks_(-9999)
60 >      ,isoR03_emEt_(-9999.)
61 >      ,isoR03_hadEt_(-9999.)
62 >      ,isoR03_sumPt_(-9999.)
63 >      ,isoR03_nTracks_(-9999)
64 >      ,isoR05_emEt_(-9999.)
65 >      ,isoR05_hadEt_(-9999.)
66 >      ,isoR05_sumPt_(-9999.)
67 >      ,isoR05_nTracks_(-9999)
68 >      ,idCutBasedFixedThresholdLoose_(-1)
69 >      ,idCutBasedFixedThresholdTight_(-1)
70 >      ,idCutBasedFixedThresholdHighEnergy_(-1)
71 >      ,idCutBasedCategorizedLoose_(-1)
72 >      ,idCutBasedCategorizedTight_(-1)
73 >      ,idLikelihood_(-9999.)
74 >      ,idNeuralNet_(-9999.)
75 >      {;}
76 >
77 >      TRootElectron(const TRootElectron& electron) :
78 >      TRootParticle(electron)
79 >      ,classification_(electron.classification_)
80 >      ,caloEnergy_(electron.caloEnergy_)
81 >      ,caloEnergyError_(electron.caloEnergyError_)
82 >      ,trackMomentum_(electron.trackMomentum_)
83 >      ,trackMomentumError_(electron.trackMomentumError_)
84 >      ,hadOverEm_(electron.hadOverEm_)
85 >      ,deltaEtaIn_(electron.deltaEtaIn_)
86 >      ,deltaPhiIn_(electron.deltaPhiIn_)
87 >      ,energySuperClusterOverPin_(electron.energySuperClusterOverPin_)
88 >      ,deltaEtaOut_(electron.deltaEtaOut_)
89 >      ,deltaPhiOut_(electron.deltaPhiOut_)
90 >      ,energySeedClusterOverPout_(electron.energySeedClusterOverPout_)
91 >      ,energyScaleCorrected_(electron.energyScaleCorrected_)
92 >      ,momentumCorrected_(electron.momentumCorrected_)
93 >      ,pixelLayersWithMeasurement_(electron.pixelLayersWithMeasurement_)
94 >      ,stripLayersWithMeasurement_(electron.stripLayersWithMeasurement_)
95 >      ,d0_(electron.d0_)
96 >      ,d0Error_(electron.d0Error_)
97 >      ,dsz_(electron.dsz_)
98 >      ,dszError_(electron.dszError_)
99 >      ,normalizedChi2_(electron.normalizedChi2_)
100 >      ,ptError_(electron.ptError_)
101 >      ,etaError_(electron.etaError_)
102 >      ,phiError_(electron.phiError_)
103 >      ,ip3DSignificance_(electron.ip3DSignificance_)
104 >      ,nbClusters_(electron.nbClusters_)
105 >      ,superClusterRawEnergy_(electron.superClusterRawEnergy_)
106 >      ,preshowerEnergy_(electron.preshowerEnergy_)
107 >      ,caloPosition_(electron.caloPosition_)
108 >      ,scIndex_(electron.scIndex_)
109 >      ,scRef_(electron.scRef_)
110 >      ,clusterAlgo_(electron.clusterAlgo_)
111 >      ,caloConeSize_(electron.caloConeSize_)
112 >      ,e2x2_(electron.e2x2_)
113 >      ,e3x3_(electron.e3x3_)
114 >      ,e5x5_(electron.e5x5_)
115 >      ,eMax_(electron.eMax_)
116 >      ,isoR01_sumPt_(electron.isoR01_sumPt_)
117 >      ,isoR01_nTracks_(electron.isoR01_nTracks_)
118 >      ,isoR02_sumPt_(electron.isoR02_sumPt_)
119 >      ,isoR02_nTracks_(electron.isoR02_nTracks_)
120 >      ,isoR03_emEt_(electron.isoR03_emEt_)
121 >      ,isoR03_hadEt_(electron.isoR03_hadEt_)
122 >      ,isoR03_sumPt_(electron.isoR03_sumPt_)
123 >      ,isoR03_nTracks_(electron.isoR03_nTracks_)
124 >      ,isoR05_emEt_(electron.isoR05_emEt_)
125 >      ,isoR05_hadEt_(electron.isoR05_hadEt_)
126 >      ,isoR05_sumPt_(electron.isoR05_sumPt_)
127 >      ,isoR05_nTracks_(electron.isoR05_nTracks_)
128 >      ,idCutBasedFixedThresholdLoose_(electron.idCutBasedFixedThresholdLoose_)
129 >      ,idCutBasedFixedThresholdTight_(electron.idCutBasedFixedThresholdTight_)
130 >      ,idCutBasedFixedThresholdHighEnergy_(electron.idCutBasedFixedThresholdHighEnergy_)
131 >      ,idCutBasedCategorizedLoose_(electron.idCutBasedCategorizedLoose_)
132 >      ,idCutBasedCategorizedTight_(electron.idCutBasedCategorizedTight_)
133 >      ,idLikelihood_(electron.idLikelihood_)
134 >      ,idNeuralNet_(electron.idNeuralNet_)
135 >      {;}
136 >
137 >      TRootElectron(Double_t px, Double_t py, Double_t pz, Double_t e) :
138 >      TRootParticle(px,py,pz,e)
139 >      ,classification_(-9999)
140 >      ,caloEnergy_(-9999.)
141 >      ,caloEnergyError_(-9999.)
142 >      ,trackMomentum_(-9999.)
143 >      ,trackMomentumError_(-9999.)
144 >      ,hadOverEm_(-9999.)
145 >      ,deltaEtaIn_(-9999.)
146 >      ,deltaPhiIn_(-9999.)
147 >      ,energySuperClusterOverPin_(-9999.)
148 >      ,deltaEtaOut_(-9999.)
149 >      ,deltaPhiOut_(-9999.)
150 >      ,energySeedClusterOverPout_(-9999.)
151 >      ,energyScaleCorrected_(false)
152 >      ,momentumCorrected_(false)
153 >      ,pixelLayersWithMeasurement_(-1)
154 >      ,stripLayersWithMeasurement_(-1)
155 >      ,d0_(-9999.)
156 >      ,d0Error_(-9999.)
157 >      ,dsz_(-9999.)
158 >      ,dszError_(-9999.)
159 >      ,normalizedChi2_(-9999.)
160 >      ,ptError_(-9999.)
161 >      ,etaError_(-9999.)
162 >      ,phiError_(-9999.)
163 >      ,ip3DSignificance_(-9999.)
164 >      ,nbClusters_(-9999)
165 >      ,superClusterRawEnergy_(-9999.)
166 >      ,preshowerEnergy_(-9999.)
167 >      ,caloPosition_(-9999.,-9999.,-9999.)
168 >      ,scIndex_()
169 >      ,scRef_()
170 >      ,clusterAlgo_(-9999)
171 >      ,caloConeSize_(-9999.)
172 >      ,e2x2_(-9999.)
173 >      ,e3x3_(-9999.)
174 >      ,e5x5_(-9999.)
175 >      ,eMax_(-9999.)
176 >      ,isoR01_sumPt_(-9999.)
177 >      ,isoR01_nTracks_(-9999)
178 >      ,isoR02_sumPt_(-9999.)
179 >      ,isoR02_nTracks_(-9999)
180 >      ,isoR03_emEt_(-9999.)
181 >      ,isoR03_hadEt_(-9999.)
182 >      ,isoR03_sumPt_(-9999.)
183 >      ,isoR03_nTracks_(-9999)
184 >      ,isoR05_emEt_(-9999.)
185 >      ,isoR05_hadEt_(-9999.)
186 >      ,isoR05_sumPt_(-9999.)
187 >      ,isoR05_nTracks_(-9999)
188 >      ,idCutBasedFixedThresholdLoose_(-1)
189 >      ,idCutBasedFixedThresholdTight_(-1)
190 >      ,idCutBasedFixedThresholdHighEnergy_(-1)
191 >      ,idCutBasedCategorizedLoose_(-1)
192 >      ,idCutBasedCategorizedTight_(-1)
193 >      ,idLikelihood_(-9999.)
194 >      ,idNeuralNet_(-9999.)
195 >      {;}
196 >
197 >      TRootElectron(Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vtx_x, Double_t vtx_y, Double_t vtx_z) :
198 >      TRootParticle(px,py,pz,e,vtx_x,vtx_y,vtx_z)
199 >      ,classification_(-9999)
200 >      ,caloEnergy_(-9999.)
201 >      ,caloEnergyError_(-9999.)
202 >      ,trackMomentum_(-9999.)
203 >      ,trackMomentumError_(-9999.)
204 >      ,hadOverEm_(-9999.)
205 >      ,deltaEtaIn_(-9999.)
206 >      ,deltaPhiIn_(-9999.)
207 >      ,energySuperClusterOverPin_(-9999.)
208 >      ,deltaEtaOut_(-9999.)
209 >      ,deltaPhiOut_(-9999.)
210 >      ,energySeedClusterOverPout_(-9999.)
211 >      ,energyScaleCorrected_(false)
212 >      ,momentumCorrected_(false)
213 >      ,pixelLayersWithMeasurement_(-1)
214 >      ,stripLayersWithMeasurement_(-1)
215 >      ,d0_(-9999.)
216 >      ,d0Error_(-9999.)
217 >      ,dsz_(-9999.)
218 >      ,dszError_(-9999.)
219 >      ,normalizedChi2_(-9999.)
220 >      ,ptError_(-9999.)
221 >      ,etaError_(-9999.)
222 >      ,phiError_(-9999.)
223 >      ,ip3DSignificance_(-9999.)
224 >      ,nbClusters_(-9999)
225 >      ,superClusterRawEnergy_(-9999.)
226 >      ,preshowerEnergy_(-9999.)
227 >      ,caloPosition_(-9999.,-9999.,-9999.)
228 >      ,scIndex_()
229 >      ,scRef_()
230 >      ,clusterAlgo_(-9999)
231 >      ,caloConeSize_(-9999.)
232 >      ,e2x2_(-9999.)
233 >      ,e3x3_(-9999.)
234 >      ,e5x5_(-9999.)
235 >      ,eMax_(-9999.)
236 >      ,isoR01_sumPt_(-9999.)
237 >      ,isoR01_nTracks_(-9999)
238 >      ,isoR02_sumPt_(-9999.)
239 >      ,isoR02_nTracks_(-9999)
240 >      ,isoR03_emEt_(-9999.)
241 >      ,isoR03_hadEt_(-9999.)
242 >      ,isoR03_sumPt_(-9999.)
243 >      ,isoR03_nTracks_(-9999)
244 >      ,isoR05_emEt_(-9999.)
245 >      ,isoR05_hadEt_(-9999.)
246 >      ,isoR05_sumPt_(-9999.)
247 >      ,isoR05_nTracks_(-9999)
248 >      ,idCutBasedFixedThresholdLoose_(-1)
249 >      ,idCutBasedFixedThresholdTight_(-1)
250 >      ,idCutBasedFixedThresholdHighEnergy_(-1)
251 >      ,idCutBasedCategorizedLoose_(-1)
252 >      ,idCutBasedCategorizedTight_(-1)
253 >      ,idLikelihood_(-9999.)
254 >      ,idNeuralNet_(-9999.)
255 >      {;}
256 >
257 >      TRootElectron(Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vtx_x, Double_t vtx_y, Double_t vtx_z, Int_t type, Float_t charge) :
258 >      TRootParticle(px,py,pz,e,vtx_x,vtx_y,vtx_z,type,charge)
259 >      ,classification_(-9999)
260 >      ,caloEnergy_(-9999.)
261 >      ,caloEnergyError_(-9999.)
262 >      ,trackMomentum_(-9999.)
263 >      ,trackMomentumError_(-9999.)
264 >      ,hadOverEm_(-9999.)
265 >      ,deltaEtaIn_(-9999.)
266 >      ,deltaPhiIn_(-9999.)
267 >      ,energySuperClusterOverPin_(-9999.)
268 >      ,deltaEtaOut_(-9999.)
269 >      ,deltaPhiOut_(-9999.)
270 >      ,energySeedClusterOverPout_(-9999.)
271 >      ,energyScaleCorrected_(false)
272 >      ,momentumCorrected_(false)
273 >      ,pixelLayersWithMeasurement_(-1)
274 >      ,stripLayersWithMeasurement_(-1)
275 >      ,d0_(-9999.)
276 >      ,d0Error_(-9999.)
277 >      ,dsz_(-9999.)
278 >      ,dszError_(-9999.)
279 >      ,normalizedChi2_(-9999.)
280 >      ,ptError_(-9999.)
281 >      ,etaError_(-9999.)
282 >      ,phiError_(-9999.)
283 >      ,ip3DSignificance_(-9999.)
284 >      ,nbClusters_(-9999)
285 >      ,superClusterRawEnergy_(-9999.)
286 >      ,preshowerEnergy_(-9999.)
287 >      ,caloPosition_(-9999.,-9999.,-9999.)
288 >      ,scIndex_()
289 >      ,scRef_()
290 >      ,clusterAlgo_(-9999)
291 >      ,caloConeSize_(-9999.)
292 >      ,e2x2_(-9999.)
293 >      ,e3x3_(-9999.)
294 >      ,e5x5_(-9999.)
295 >      ,eMax_(-9999.)
296 >      ,isoR01_sumPt_(-9999.)
297 >      ,isoR01_nTracks_(-9999)
298 >      ,isoR02_sumPt_(-9999.)
299 >      ,isoR02_nTracks_(-9999)
300 >      ,isoR03_emEt_(-9999.)
301 >      ,isoR03_hadEt_(-9999.)
302 >      ,isoR03_sumPt_(-9999.)
303 >      ,isoR03_nTracks_(-9999)
304 >      ,isoR05_emEt_(-9999.)
305 >      ,isoR05_hadEt_(-9999.)
306 >      ,isoR05_sumPt_(-9999.)
307 >      ,isoR05_nTracks_(-9999)
308 >      ,idCutBasedFixedThresholdLoose_(-1)
309 >      ,idCutBasedFixedThresholdTight_(-1)
310 >      ,idCutBasedFixedThresholdHighEnergy_(-1)
311 >      ,idCutBasedCategorizedLoose_(-1)
312 >      ,idCutBasedCategorizedTight_(-1)
313 >      ,idLikelihood_(-9999.)
314 >      ,idNeuralNet_(-9999.)
315 >      {;}
316 >
317 >      TRootElectron(const TLorentzVector &momentum) :
318 >      TRootParticle(momentum)
319 >      ,classification_(-9999)
320 >      ,caloEnergy_(-9999.)
321 >      ,caloEnergyError_(-9999.)
322 >      ,trackMomentum_(-9999.)
323 >      ,trackMomentumError_(-9999.)
324 >      ,hadOverEm_(-9999.)
325 >      ,deltaEtaIn_(-9999.)
326 >      ,deltaPhiIn_(-9999.)
327 >      ,energySuperClusterOverPin_(-9999.)
328 >      ,deltaEtaOut_(-9999.)
329 >      ,deltaPhiOut_(-9999.)
330 >      ,energySeedClusterOverPout_(-9999.)
331 >      ,energyScaleCorrected_(false)
332 >      ,momentumCorrected_(false)
333 >      ,pixelLayersWithMeasurement_(-1)
334 >      ,stripLayersWithMeasurement_(-1)
335 >      ,d0_(-9999.)
336 >      ,d0Error_(-9999.)
337 >      ,dsz_(-9999.)
338 >      ,dszError_(-9999.)
339 >      ,normalizedChi2_(-9999.)
340 >      ,ptError_(-9999.)
341 >      ,etaError_(-9999.)
342 >      ,phiError_(-9999.)
343 >      ,ip3DSignificance_(-9999.)
344 >      ,nbClusters_(-9999)
345 >      ,superClusterRawEnergy_(-9999.)
346 >      ,preshowerEnergy_(-9999.)
347 >      ,caloPosition_(-9999.,-9999.,-9999.)
348 >      ,scIndex_()
349 >      ,scRef_()
350 >      ,clusterAlgo_(-9999)
351 >      ,caloConeSize_(-9999.)
352 >      ,e2x2_(-9999.)
353 >      ,e3x3_(-9999.)
354 >      ,e5x5_(-9999.)
355 >      ,eMax_(-9999.)
356 >      ,isoR01_sumPt_(-9999.)
357 >      ,isoR01_nTracks_(-9999)
358 >      ,isoR02_sumPt_(-9999.)
359 >      ,isoR02_nTracks_(-9999)
360 >      ,isoR03_emEt_(-9999.)
361 >      ,isoR03_hadEt_(-9999.)
362 >      ,isoR03_sumPt_(-9999.)
363 >      ,isoR03_nTracks_(-9999)
364 >      ,isoR05_emEt_(-9999.)
365 >      ,isoR05_hadEt_(-9999.)
366 >      ,isoR05_sumPt_(-9999.)
367 >      ,isoR05_nTracks_(-9999)
368 >      ,idCutBasedFixedThresholdLoose_(-1)
369 >      ,idCutBasedFixedThresholdTight_(-1)
370 >      ,idCutBasedFixedThresholdHighEnergy_(-1)
371 >      ,idCutBasedCategorizedLoose_(-1)
372 >      ,idCutBasedCategorizedTight_(-1)
373 >      ,idLikelihood_(-9999.)
374 >      ,idNeuralNet_(-9999.)
375 >      {;}
376 >
377 >      TRootElectron(const TLorentzVector &momentum, const TVector3 &vertex, Int_t type, Float_t charge) :
378 >      TRootParticle(momentum, vertex, type, charge)
379 >      ,classification_(-9999)
380 >      ,caloEnergy_(-9999.)
381 >      ,caloEnergyError_(-9999.)
382 >      ,trackMomentum_(-9999.)
383 >      ,trackMomentumError_(-9999.)
384 >      ,hadOverEm_(-9999.)
385 >      ,deltaEtaIn_(-9999.)
386 >      ,deltaPhiIn_(-9999.)
387 >      ,energySuperClusterOverPin_(-9999.)
388 >      ,deltaEtaOut_(-9999.)
389 >      ,deltaPhiOut_(-9999.)
390 >      ,energySeedClusterOverPout_(-9999.)
391 >      ,energyScaleCorrected_(false)
392 >      ,momentumCorrected_(false)
393 >      ,pixelLayersWithMeasurement_(-1)
394 >      ,stripLayersWithMeasurement_(-1)
395 >      ,d0_(-9999.)
396 >      ,d0Error_(-9999.)
397 >      ,dsz_(-9999.)
398 >      ,dszError_(-9999.)
399 >      ,normalizedChi2_(-9999.)
400 >      ,ptError_(-9999.)
401 >      ,etaError_(-9999.)
402 >      ,phiError_(-9999.)
403 >      ,ip3DSignificance_(-9999.)
404 >      ,nbClusters_(-9999)
405 >      ,superClusterRawEnergy_(-9999.)
406 >      ,preshowerEnergy_(-9999.)
407 >      ,caloPosition_(-9999.,-9999.,-9999.)
408 >      ,scIndex_()
409 >      ,scRef_()
410 >      ,clusterAlgo_(-9999)
411 >      ,caloConeSize_(-9999.)
412 >      ,e2x2_(-9999.)
413 >      ,e3x3_(-9999.)
414 >      ,e5x5_(-9999.)
415 >      ,eMax_(-9999.)
416 >      ,isoR01_sumPt_(-9999.)
417 >      ,isoR01_nTracks_(-9999)
418 >      ,isoR02_sumPt_(-9999.)
419 >      ,isoR02_nTracks_(-9999)
420 >      ,isoR03_emEt_(-9999.)
421 >      ,isoR03_hadEt_(-9999.)
422 >      ,isoR03_sumPt_(-9999.)
423 >      ,isoR03_nTracks_(-9999)
424 >      ,isoR05_emEt_(-9999.)
425 >      ,isoR05_hadEt_(-9999.)
426 >      ,isoR05_sumPt_(-9999.)
427 >      ,isoR05_nTracks_(-9999)
428 >      ,idCutBasedFixedThresholdLoose_(-1)
429 >      ,idCutBasedFixedThresholdTight_(-1)
430 >      ,idCutBasedFixedThresholdHighEnergy_(-1)
431 >      ,idCutBasedCategorizedLoose_(-1)
432 >      ,idCutBasedCategorizedTight_(-1)
433 >      ,idLikelihood_(-9999.)
434 >      ,idNeuralNet_(-9999.)
435 >      {;}
436 >
437 >      ~TRootElectron() {;}
438 >
439 >
440 >      Int_t classification() const { return classification_ ;}
441 >      Float_t caloEnergy() const { return caloEnergy_ ;}
442 >      Float_t caloEnergyError() const { return caloEnergyError_ ;}
443 >      Float_t trackMomentum() const { return trackMomentum_ ;}
444 >      Float_t trackMomentumError() const { return trackMomentumError_ ;}
445 >      Float_t hadOverEm() const { return hadOverEm_ ;}
446 >      Float_t deltaEtaIn() const { return deltaEtaIn_ ;}
447 >      Float_t deltaPhiIn() const { return deltaPhiIn_ ;}
448 >      Float_t energySuperClusterOverPin() const { return energySuperClusterOverPin_ ;}
449 >      Float_t deltaEtaOut() const { return deltaEtaOut_ ;}
450 >      Float_t deltaPhiOut() const { return deltaPhiOut_ ;}
451 >      Float_t energySeedClusterOverPout() const { return energySeedClusterOverPout_ ;}
452 >      Bool_t energyScaleCorrected() const { return energyScaleCorrected_ ;}
453 >      Bool_t momentumCorrected() const { return momentumCorrected_ ;}
454 >
455 >      Int_t pixelLayersWithMeasurement() const { return pixelLayersWithMeasurement_; }
456 >      Int_t stripLayersWithMeasurement() const { return stripLayersWithMeasurement_; }
457 >      Float_t d0() const { return d0_ ;}
458 >      Float_t d0Error() const { return d0Error_ ;}
459 >      Float_t dsz() const { return dsz_ ;}
460 >      Float_t dszError() const { return dszError_ ;}
461 >      Float_t normalizedChi2() const { return normalizedChi2_ ;}
462 >      Float_t ptError() const { return ptError_ ;}
463 >      Float_t etaError() const { return etaError_ ;}
464 >      Float_t phiError() const { return phiError_ ;}
465 >      Float_t ip3DSignificance() const { return ip3DSignificance_ ;}
466 >
467 >      Int_t nbClusters() const { return nbClusters_ ;}
468 >      Float_t superClusterRawEnergy() const { return superClusterRawEnergy_ ;}
469 >      Float_t preshowerEnergy() const { return preshowerEnergy_ ;}
470 >      TVector3 caloPosition() const { return caloPosition_ ;}
471 >      map<Int_t,Int_t> scIndexMap() const { return scIndex_; }
472 >      map<Int_t,TRef> scRef() const { return scRef_ ;}
473 >      Int_t nSuperClusters() const { return scRef_.size();}
474 >      
475 >      // Get index in TCloneArray of the supercluster associated by default
476 >      // Default SC collection for electron producer defined in
477 >      // RecoEgamma/EgammaElectronProducers/python/pixelMatchGsfElectrons_cfi
478 >      Int_t scIndex()
479 >      {
480 >         // 0=island or multi5x5, 1=hybrid
481 >         //if ( clusterAlgo_== 0 ) return scIndexOfType(122);
482 >         if ( clusterAlgo_== 0 ) return scIndexOfType(322);
483 >         else if ( clusterAlgo_== 1 ) return scIndexOfType(211);
484 >         else return -1;
485 >      }
486 >      
487 >      // Get ith element  in map scIndex_
488 >      Int_t scIndexAt(UInt_t index)
489 >      {
490 >         if ( index>=scIndex_.size())
491 >         {
492 >            return -1;
493 >         }
494 >         else
495 >         {
496 >            map<Int_t,Int_t>::iterator it=scIndex_.begin();
497 >            for (UInt_t i=0; i<index; ++i)  it++;
498 >            return ( (*it).second );
499 >         }
500 >      }
501 >      
502 >      // Get index in TCloneArray of the seed supercluster of type "type"
503 >      Int_t scIndexOfType(Int_t type)
504 >      {
505 >         map<Int_t,Int_t>::iterator it=scIndex_.find(type);
506 >         return ( it ==scIndex_.end() ? -1 : (*it).second );
507 >      }
508 >      
509 >      // Get supercluster associated by default
510 >      // Default SC collection for electron producer defined in
511 >      // RecoEgamma/EgammaElectronProducers/python/pixelMatchGsfElectrons_cfi
512 >      TRootSuperCluster* superCluster()
513 >      {
514 >         // 0=island or multi5x5, 1=hybrid
515 >         //if ( clusterAlgo_== 0 ) return superClusterOfType(122);
516 >         if ( clusterAlgo_== 0 ) return superClusterOfType(322);
517 >         else if ( clusterAlgo_== 1 ) return superClusterOfType(211);
518 >         else return 0;
519 >      }
520 >      
521 >      // Get ith element  in map scRef_
522 >      TRootSuperCluster* superClusterAt(UInt_t index)
523 >      {
524 >         if ( index>=scRef_.size())
525 >         {
526 >            return 0;
527 >         }
528 >         else
529 >         {
530 >            map<Int_t,TRef>::iterator it=scRef_.begin();
531 >            for (UInt_t i=0; i<index; ++i)  it++;
532 >            return ( (TRootSuperCluster*)(*it).second.GetObject() );
533 >         }
534 >      }
535 >      
536 >      // Get the seed supercluster of type "type"
537 >      TRootSuperCluster* superClusterOfType(Int_t type)
538 >      {
539 >         map<Int_t,TRef>::iterator it=scRef_.find(type);
540 >         return ( it ==scRef_.end() ? 0 : (TRootSuperCluster*) (*it).second.GetObject() );
541 >      }
542 >      
543 >      Int_t clusterAlgo() const { return clusterAlgo_ ;}
544 >      Float_t caloConeSize() const { return caloConeSize_ ;}
545 >      Float_t e2x2() const { return e2x2_ ;}
546 >      Float_t e3x3() const { return e3x3_ ;}
547 >      Float_t e5x5() const { return e5x5_ ;}
548 >      Float_t eMax() const { return eMax_ ;}
549 >      Float_t r19() const { return ( e3x3_ == 0. ? -1. : eMax_/e3x3_ ); }  // ratio of Emax/E(3x3)
550 >      // FIXME - Check definition of r9... include preshowerEnergy as in SimplePhotonAnalyzer.cc ?
551 >      Float_t r9() const { return ( superClusterRawEnergy_ == 0. ? -1. : e3x3_/superClusterRawEnergy_ ); } // ratio of E(3x3)/ESC
552 >      Float_t isoR01_sumPt() const { return isoR01_sumPt_ ;}
553 >      Int_t isoR01_nTracks() const { return isoR01_nTracks_ ;}
554 >      Float_t isoR02_sumPt() const { return isoR02_sumPt_ ;}
555 >      Int_t isoR02_nTracks() const { return isoR02_nTracks_ ;}
556 >      Float_t isoR03_emEt() const { return isoR03_emEt_ ;}
557 >      Float_t isoR03_hadEt() const { return isoR03_hadEt_ ;}
558 >      Float_t isoR03_sumPt() const { return isoR03_sumPt_ ;}
559 >      Int_t isoR03_nTracks() const { return isoR03_nTracks_ ;}
560 >      Float_t isoR05_emEt() const { return isoR05_emEt_ ;}
561 >      Float_t isoR05_hadEt() const { return isoR05_hadEt_ ;}
562 >      Float_t isoR05_sumPt() const { return isoR05_sumPt_ ;}
563 >      Int_t isoR05_nTracks() const { return isoR05_nTracks_ ;}
564 >      Int_t idCutBasedFixedThresholdLoose() const { return idCutBasedFixedThresholdLoose_ ;}
565 >      Int_t idCutBasedFixedThresholdTight() const { return idCutBasedFixedThresholdTight_ ;}
566 >      Int_t idCutBasedFixedThresholdHighEnergy() const { return idCutBasedFixedThresholdHighEnergy_ ;}
567 >      Int_t idCutBasedCategorizedLoose() const { return idCutBasedCategorizedLoose_ ;}
568 >      Int_t idCutBasedCategorizedTight() const { return idCutBasedCategorizedTight_ ;}
569 >      Float_t idLikelihood() const { return idLikelihood_ ;}
570 >      Float_t idNeuralNet() const { return idNeuralNet_ ;}
571 >
572 >      /* TODO - isBarrel / isEndcap / isCrack
573 >      if (fabs (eta) <= 1.4442) {
574 >         localElectron.setPosition (1);
575 >      }
576 >      else if (fabs (eta) > 1.4442 & fabs (eta) < 1.5560) {
577 >         localElectron.setPosition (0);
578 >      }
579 >      else if (fabs (eta) >= 1.5560) {
580 >         localElectron.setPosition (-1);
581 >      }
582 >      */
583 >
584 >      virtual TString typeName() const { return "TRootElectron"; }
585 >
586 >
587 >      void setClassification(Int_t classification) { classification_ = classification; }
588 >      void setCaloEnergy(Float_t caloEnergy) { caloEnergy_ = caloEnergy; }
589 >      void setCaloEnergyError(Float_t caloEnergyError) { caloEnergyError_ = caloEnergyError; }
590 >      void setTrackMomentum(Float_t trackMomentum) { trackMomentum_ = trackMomentum; }
591 >      void setTrackMomentumError(Float_t trackMomentumError) { trackMomentumError_ = trackMomentumError; }
592 >      void setHadOverEm(Float_t hadOverEm) { hadOverEm_ = hadOverEm; }
593 >      void setDeltaEtaIn(Float_t deltaEtaIn) { deltaEtaIn_ = deltaEtaIn; }
594 >      void setDeltaPhiIn(Float_t deltaPhiIn) { deltaPhiIn_ = deltaPhiIn; }
595 >      void setEnergySuperClusterOverPin(Float_t energySuperClusterOverPin) { energySuperClusterOverPin_ = energySuperClusterOverPin; }
596 >      void setDeltaEtaOut(Float_t deltaEtaOut) { deltaEtaOut_ = deltaEtaOut; }
597 >      void setDeltaPhiOut(Float_t deltaPhiOut) { deltaPhiOut_ = deltaPhiOut; }
598 >      void setEnergySeedClusterOverPout(Float_t energySeedClusterOverPout) { energySeedClusterOverPout_ = energySeedClusterOverPout; }
599 >      void setEnergyScaleCorrected(Bool_t energyScaleCorrected) { energyScaleCorrected_ = energyScaleCorrected; }
600 >      void setMomentumCorrected(Bool_t momentumCorrected) { momentumCorrected_ = momentumCorrected; }
601 >
602 >      void setPixelLayersWithMeasurement(Int_t pixelLayersWithMeasurement) { pixelLayersWithMeasurement_ = pixelLayersWithMeasurement; }
603 >      void setStripLayersWithMeasurement(Int_t stripLayersWithMeasurement) { stripLayersWithMeasurement_ = stripLayersWithMeasurement; }
604 >      void setD0(Float_t d0) { d0_ = d0; }
605 >      void setD0Error(Float_t d0Error) { d0Error_ = d0Error; }
606 >      void setDsz(Float_t dsz) { dsz_ = dsz; }
607 >      void setDszError(Float_t dszError) { dszError_ = dszError; }
608 >      void setNormalizedChi2(Float_t normalizedChi2) { normalizedChi2_ = normalizedChi2; }
609 >      void setPtError(Float_t ptError) { ptError_ = ptError; }
610 >      void setEtaError(Float_t etaError) { etaError_ = etaError; }
611 >      void setPhiError(Float_t phiError) { phiError_ = phiError; }
612 >      void setIP3DSignificance(Float_t ip3DSignificance) { ip3DSignificance_ = ip3DSignificance; }
613 >
614 >      void setNbClusters(Int_t nbClusters) { nbClusters_ = nbClusters; }
615 >      void setSuperClusterRawEnergy(Float_t superClusterRawEnergy) { superClusterRawEnergy_ = superClusterRawEnergy; }
616 >      void setPreshowerEnergy(Float_t preshowerEnergy) { preshowerEnergy_ = preshowerEnergy; }
617 >      void setCaloPosition(TVector3 caloPosition) { caloPosition_ = caloPosition; }
618 >      void setCaloPosition(Double_t x, Double_t y, Double_t z) { caloPosition_.SetXYZ(x, y ,z); }
619 >      void setSCIndex(Int_t type, Int_t index) { scIndex_[type]=index; }
620 >      void setSCRef(Int_t type, TObject* superCluster) { scRef_[type]=superCluster; }
621 >      void setClusterAlgo(Int_t clusterAlgo) { clusterAlgo_ = clusterAlgo; }
622 >      void setCaloConeSize(Float_t caloConeSize) { caloConeSize_ = caloConeSize; }
623 >      void setE2x2(Float_t e2x2) { e2x2_ = e2x2; }
624 >      void setE3x3(Float_t e3x3) { e3x3_ = e3x3; }
625 >      void setE5x5(Float_t e5x5) { e5x5_ = e5x5; }
626 >      void setEMax(Float_t eMax) { eMax_ = eMax; }
627 >      void setIsoR01_sumPt(Float_t isoR01_sumPt) { isoR01_sumPt_ = isoR01_sumPt; }
628 >      void setIsoR01_nTracks(Int_t isoR01_nTracks) { isoR01_nTracks_ = isoR01_nTracks; }
629 >      void setIsoR02_sumPt(Float_t isoR02_sumPt) { isoR02_sumPt_ = isoR02_sumPt; }
630 >      void setIsoR02_nTracks(Int_t isoR02_nTracks) { isoR02_nTracks_ = isoR02_nTracks; }
631 >      void setIsoR03_emEt(Float_t isoR03_emEt) { isoR03_emEt_ = isoR03_emEt; }
632 >      void setIsoR03_hadEt(Float_t isoR03_hadEt) { isoR03_hadEt_ = isoR03_hadEt; }
633 >      void setIsoR03_sumPt(Float_t isoR03_sumPt) { isoR03_sumPt_ = isoR03_sumPt; }
634 >      void setIsoR03_nTracks(Int_t isoR03_nTracks) { isoR03_nTracks_ = isoR03_nTracks; }
635 >      void setIsoR05_emEt(Float_t isoR05_emEt) { isoR05_emEt_ = isoR05_emEt; }
636 >      void setIsoR05_hadEt(Float_t isoR05_hadEt) { isoR05_hadEt_ = isoR05_hadEt; }
637 >      void setIsoR05_sumPt(Float_t isoR05_sumPt) { isoR05_sumPt_ = isoR05_sumPt; }
638 >      void setIsoR05_nTracks(Int_t isoR05_nTracks) { isoR05_nTracks_ = isoR05_nTracks; }
639 >      void setIDCutBasedFixedThresholdLoose(Int_t idCutBasedFixedThresholdLoose) { idCutBasedFixedThresholdLoose_ = idCutBasedFixedThresholdLoose; }
640 >      void setIDCutBasedFixedThresholdTight(Int_t idCutBasedFixedThresholdTight) { idCutBasedFixedThresholdTight_ = idCutBasedFixedThresholdTight; }
641 >      void setIDCutBasedFixedThresholdHighEnergy(Int_t idCutBasedFixedThresholdHighEnergy) { idCutBasedFixedThresholdHighEnergy_ = idCutBasedFixedThresholdHighEnergy; }
642 >      void setIDCutBasedCategorizedLoose(Int_t idCutBasedCategorizedLoose) { idCutBasedCategorizedLoose_ = idCutBasedCategorizedLoose; }
643 >      void setIDCutBasedCategorizedTight(Int_t idCutBasedCategorizedTight) { idCutBasedCategorizedTight_ = idCutBasedCategorizedTight; }
644 >      void setIDLikelihood(Float_t idLikelihood) { idLikelihood_ = idLikelihood; }
645 >      void setIDNeuralNet(Float_t idNeuralNet) { idNeuralNet_ = idNeuralNet; }
646 >
647 >      friend std::ostream& operator<< (std::ostream& stream, const TRootElectron& electron)
648 >      {
649 >         stream << "TRootElectron - Charge=" << electron.charge() << " (E,Et,eta,phi)=("<< electron.Energy() <<","<< electron.Et() <<","<< electron.Eta() <<","<< electron.Phi() << ")"
650 >         << " vertex(x,y,z)=("<< electron.vx() <<","<< electron.vy() <<","<< electron.vz() << ")";
651 >         return stream;
652 >      };
653 >
654 >      void Print()
655 >      {
656 >         std::cout << "TRootElectron - Charge=" << this->charge() << " (E,Et,eta,phi)=("<< this->Energy() <<","<< this->Et() <<","<< this->Eta() <<","<< this->Phi() << ")"
657 >         << "  vertex=("<< this->vx() <<","<< this->vy() <<","<< this->vz() << ")"
658 >         << "  caloPosition=(" << this->caloPosition().X() << "," << this->caloPosition().Y() << "," << this->caloPosition().Z() << ")" << endl
659 >         << "            trackMomentum=" << this->trackMomentum() << "+-" << this->trackMomentumError() << " nPixels=" << this->pixelLayersWithMeasurement()
660 >         << " nStrips=" << this->stripLayersWithMeasurement() << " d0=" << this->d0() << "+-" << this->d0Error()<< " dsz=" << this->dsz() << "+-" << this->dszError() << endl
661 >         << "            algo=" << this->clusterAlgo() << " nBC=" << this->nbClusters() << "  caloEnergy=" << this->caloEnergy() << "+-" << this->caloEnergyError()
662 >         << " scRawEnergy=" << this->superClusterRawEnergy() << " preshEnergy=" << this->preshowerEnergy()
663 >         << " E2x2=" << this->e2x2() <<" E3x3=" << this->e3x3() <<" E5x5=" << this->e5x5() <<" Emax=" << this->eMax()
664 >         << " R19=" << this->r19() <<" R9=" << this->r9() << endl
665 >         <<"            H/E=" << this->hadOverEm() <<"  deltaEtaIn=" << this->deltaEtaIn() <<"  deltaPhiIn=" << this->deltaPhiIn() <<"  deltaEtaOut=" << this->deltaEtaOut() <<"  deltaPhiOut=" << this->deltaPhiOut() <<"  E/p in=" << this->energySuperClusterOverPin() <<"  E/p out=" << this->energySeedClusterOverPout() << endl
666 >         << "            iso03  ecal="<< this->isoR03_emEt() << " hcal=" << this->isoR03_hadEt() << " tracker=" << this->isoR03_sumPt() << " ntracks=" << this->isoR03_nTracks()
667 >         << "  iso05  ecal="<< this->isoR05_emEt() << " hcal=" << this->isoR05_hadEt() << " tracker=" << this->isoR05_sumPt() << " ntracks=" << this->isoR05_nTracks() << endl
668 >         <<"            ID:  Fixed-Threshold(Loose,Tight,HighEnergy)=(" << this->idCutBasedFixedThresholdLoose() << "," << this->idCutBasedFixedThresholdTight()  << "," << this->idCutBasedFixedThresholdHighEnergy() << ")"
669 >         <<"  Categorized(Loose,Tight)=(" << this->idCutBasedCategorizedLoose() << "," << this->idCutBasedCategorizedTight()  << ")"
670 >         <<"  LH=" << this->idLikelihood() << "  NN=" << this->idNeuralNet();
671 >      };
672 >
673 >
674 >   private:
675 >
676 >      // Variables from reco::GsfElectron
677 >
678 >      // Classification:
679 >      //        barrel  :   0: golden,  10: bigbrem,  20: narrow,  30-34: showering,  40: crack
680 >      //          (30: showering nbrem=0, 31: showering nbrem=1, 32: showering nbrem=2 ,33: showering nbrem=3, 34: showering nbrem>=4)
681 >      //        endcaps : 100: golden, 110: bigbrem, 120: narrow, 130-134: showering
682 >      //            (130: showering nbrem=0, 131: showering nbrem=1, 132: showering nbrem=2 ,133: showering nbrem=3, 134: showering nbrem>=4)
683 >
684 >      Int_t classification_;             // Electron classification
685 >
686 >      Float_t caloEnergy_;                // SuperCluster energy corrected by EnergyScaleFactor
687 >      Float_t caloEnergyError_;           // Error on caloEnergy_
688 >      Float_t trackMomentum_;             // Track momentum at vertex
689 >      Float_t trackMomentumError_;        // Error on trackMomentum_
690 >
691 >      Float_t hadOverEm_;                 // hadronic over electromagnetic fraction
692 >
693 >      Float_t deltaEtaIn_;                // Supercluster eta - Track eta from helix extrapolation from impact point
694 >      Float_t deltaPhiIn_;                // Supercluster phi - Track phi from helix extrapolation from impact point
695 >      Float_t energySuperClusterOverPin_; // supercluster energy / track momentum at impact point
696 >
697 >      Float_t deltaEtaOut_;               // SeedCluster eta - Track eta at calo from outermost state
698 >      Float_t deltaPhiOut_;               // SeedCluster phi - Track phi at calo from outermost state
699 >      Float_t energySeedClusterOverPout_; // SeedCluster energy / track momentum at calo from outermost state
700 >
701 >      Bool_t energyScaleCorrected_;       // Has Energy Scale been applied ?
702 >      Bool_t momentumCorrected_;          // Tell if class dependant E-p combination has been determined
703 >
704 >
705 >      // Variables from reco::GsfTrack
706 >
707 >      /* cf: http://cmslxr.fnal.gov/lxr/source/DataFormats/TrackReco/interface/TrackBase.h
708 >      For tracks reconstructed in the CMS Tracker, the reference position is the point of closest approach to the centre
709 >      of CMS. For muons, this is not necessarily true. Parameters associated to the 5D curvilinear covariance matrix:
710 >      qoverp = q / abs(p) = signed inverse of momentum [1/GeV]
711 >      lambda = pi/2 - polar angle at the given point
712 >      phi = azimuth angle at the given point
713 >      dxy = -vx*sin(phi) + vy*cos(phi) [cm]
714 >      dsz = vz*cos(lambda) - (vx*cos(phi)+vy*sin(phi))*sin(lambda) [cm]
715 >
716 >      Geometrically, dxy is the signed distance in the XY plane between the straight line passing through (vx,vy) with
717 >      azimuthal angle phi and the point (0,0). The dsz parameter is the signed distance in the SZ plane between the straight
718 >      line passing through (vx,vy,vz) with angles (phi, lambda) and the point (s=0,z=0). The S axis is defined by the projection
719 >      of the straight line onto the XY plane. The convention is to assign the S coordinate for (vx,vy) as the value
720 >      vx*cos(phi)+vy*sin(phi). This value is zero when (vx,vy) is the point of minimum transverse distance to (0,0).
721 >
722 >      Note that dxy and dsz provide sensible estimates of the distance from the true particle trajectory to (0,0,0) ONLY
723 >      in two cases:
724 >      - When (vx,vy,vz) already correspond to the point of minimum transverse distance to (0,0,0) or is close to it
725 >      (so that the differences between considering the exact trajectory or a straight line in this range  are negligible).
726 >      This is usually true for Tracker tracks.
727 >      - When the track has infinite or extremely high momentum */
728 >
729 >      Int_t pixelLayersWithMeasurement_; // Number of pixel layers with at least one valid hit
730 >      Int_t stripLayersWithMeasurement_; // Number of strip layers with at least one valid hit
731 >
732 >      Float_t d0_;             // d0=-dxy
733 >      Float_t d0Error_;        // error on d0_
734 >      Float_t dsz_;            // dsz parameter
735 >      Float_t dszError_;       // error on dsz_
736 >      Float_t normalizedChi2_; // chi-squared divided by n.d.o.f. of track fit
737 >
738 >      Float_t ptError_;        // needed ?  ptError()
739 >      Float_t etaError_;       // needed ?  etaError()
740 >      Float_t phiError_;       // needed ?  phiError()
741 >
742 >      Float_t ip3DSignificance_;  // Significance of the impact parameter wrt to the selected primary vertex
743 >
744 >
745 >      // Variables from reco::SuperCluster
746 >      Int_t nbClusters_; // Number of related brem clusters
747 >      Float_t superClusterRawEnergy_;
748 >      Float_t preshowerEnergy_;
749 >      TVector3 caloPosition_;            // SuperCluster centroid position
750 >      map<Int_t,Int_t> scIndex_;  // indexes of the seed SuperClusters (one per SC tytpe)
751 >      map<Int_t,TRef> scRef_;     // references to the seed SuperClusters (one per SC tytpe)
752 >
753 >
754 >      // Cluster Shape variables
755 >      // need reco::SuperCluster and reco::BasicCluster
756 >      Int_t clusterAlgo_;    // reco::BasicCluster::algo() island = 0, hybrid = 1, fixedMatrix = 2, dynamicHybrid = 3, multi5x5 = 4
757 >      Float_t caloConeSize_; // Delta_R of the cone centered on the reco::GsfElectron and containing all its basic clusters constituents
758 >      // need reco::SuperCluster and reco::BasicCluster and reduced Ecal RecHits Collections for EcalClusterLazyTools
759 >      Float_t e2x2_;
760 >      Float_t e3x3_;
761 >      Float_t e5x5_;
762 >      Float_t eMax_;
763 >
764 >
765 >      // pat::Electron Isolation
766 >      Float_t isoR01_sumPt_;
767 >      Int_t isoR01_nTracks_;
768 >
769 >      Float_t isoR02_sumPt_;
770 >      Int_t isoR02_nTracks_;
771 >
772 >      Float_t isoR03_emEt_;
773 >      Float_t isoR03_hadEt_;
774 >      Float_t isoR03_sumPt_;
775 >      Int_t isoR03_nTracks_;
776 >
777 >      Float_t isoR05_emEt_;
778 >      Float_t isoR05_hadEt_;
779 >      Float_t isoR05_sumPt_; // Pt sum of tracks in a DR=0.5 cone around the electron
780 >      Int_t isoR05_nTracks_; // Tracks multiplicity in a DR=0.5 cone around the electron
781 >
782 >
783 >      // Electron ID (cf https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideElectronID)
784 >      // By default in 2.2.X, only cut based identification is available in pat (https://twiki.cern.ch/twiki/bin/view/CMS/SWGuideCutBasedElectronID
785 >      Int_t idCutBasedFixedThresholdLoose_;      // Simple cut based ID (aka 'robust') - Loose Thresholds on H/E, DeltaEta, DeltaPhi, SigmaEtaEta
786 >      Int_t idCutBasedFixedThresholdTight_;      // Simple cut based ID (default in EWK group) - Tight Thresholds on H/E, DeltaEta, DeltaPhi, SigmaEtaEta
787 >      Int_t idCutBasedFixedThresholdHighEnergy_; // Simple cut based ID - Thresholds optimized for high energy electron (~TeV) - not activated by default in 2.2.X
788 >      Int_t idCutBasedCategorizedLoose_;         // Category based ID - Different loose thresholds on H/E, DeltaEta, DeltaPhi, SigmaEtaEta, eSeedOverPin for differents regions in the E/p vs fBrem plane
789 >      Int_t idCutBasedCategorizedTight_;         // Category based ID - Different tight thresholds on H/E, DeltaEta, DeltaPhi, SigmaEtaEta, eSeedOverPin for differents regions in the E/p vs fBrem plane
790 >      Float_t idLikelihood_;                     // Lieklihood ID - not activated by default in 2.2.X
791 >      Float_t idNeuralNet_;                      // NN ID - not activated by default in 2.2.X
792 >
793 >
794 >      // needed ?
795 >      //Float_t sigmaEtaEta_;
796 >      //Float_t sigmaPhiPhi_;
797 >
798 >
799 >      ClassDef (TRootElectron,4);
800 >
801   };
802  
803   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines