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.4 by lethuill, Mon Dec 15 19:08:52 2008 UTC vs.
Revision 1.14 by lethuill, Fri Sep 18 14:14:20 2009 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines