ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootElectron.h
Revision: 1.7
Committed: Wed Mar 11 12:44:56 2009 UTC (16 years, 1 month ago) by lethuill
Content type: text/plain
Branch: MAIN
CVS Tags: pat_2_2_5_01
Changes since 1.6: +55 -63 lines
Log Message:
Transition to 2.2.X

File Contents

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