ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootElectron.h
Revision: 1.9
Committed: Tue Apr 14 16:47:59 2009 UTC (16 years ago) by lethuill
Content type: text/plain
Branch: MAIN
CVS Tags: JeSuisBeaucoupPlusGrosQunReco_2_2_7_01, RecoPhoton_2_2_7_02, pat_2_2_7_01, RecoPhoton_2_2_7_01, pat_2_2_5_03
Changes since 1.8: +26 -1 lines
Log Message:
Add number of pixel and strip layers with measurements

File Contents

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