ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootElectron.h
Revision: 1.8
Committed: Tue Apr 7 17:09:06 2009 UTC (16 years ago) by lethuill
Content type: text/plain
Branch: MAIN
CVS Tags: pat_2_2_5_02
Changes since 1.7: +0 -3 lines
Log Message:
Cleaning dependencies / Add genMETs and genJets and references to them in reco objects

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