ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootElectron.h
Revision: 1.5
Committed: Wed Dec 17 16:23:49 2008 UTC (16 years, 4 months ago) by lethuill
Content type: text/plain
Branch: MAIN
Changes since 1.4: +6 -20 lines
Log Message:
Add reference (TRef) to mcParticle

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