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

# User Rev Content
1 mlethuil 1.1 #ifndef TRootElectron_h
2     #define TRootElectron_h
3    
4 lethuill 1.4 #include <map>
5    
6 mlethuil 1.1 #include "../interface/TRootParticle.h"
7    
8     using namespace std;
9    
10     class TRootElectron : public TRootParticle
11     {
12 lethuill 1.3
13 lethuill 1.4 public:
14 lethuill 1.3
15 lethuill 1.4 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 lethuill 1.9 ,pixelLayersWithMeasurement_(-1)
32     ,stripLayersWithMeasurement_(-1)
33 lethuill 1.4 ,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 lethuill 1.7 ,idCutBasedFixedThresholdLoose_(-1)
65     ,idCutBasedFixedThresholdTight_(-1)
66     ,idCutBasedFixedThresholdHighEnergy_(-1)
67     ,idCutBasedCategorizedLoose_(-1)
68     ,idCutBasedCategorizedTight_(-1)
69 lethuill 1.4 ,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 lethuill 1.9 ,pixelLayersWithMeasurement_(electron.pixelLayersWithMeasurement_)
90     ,stripLayersWithMeasurement_(electron.stripLayersWithMeasurement_)
91 lethuill 1.4 ,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 lethuill 1.7 ,idCutBasedFixedThresholdLoose_(electron.idCutBasedFixedThresholdLoose_)
123     ,idCutBasedFixedThresholdTight_(electron.idCutBasedFixedThresholdTight_)
124     ,idCutBasedFixedThresholdHighEnergy_(electron.idCutBasedFixedThresholdHighEnergy_)
125     ,idCutBasedCategorizedLoose_(electron.idCutBasedCategorizedLoose_)
126     ,idCutBasedCategorizedTight_(electron.idCutBasedCategorizedTight_)
127 lethuill 1.4 ,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 lethuill 1.9 ,pixelLayersWithMeasurement_(-1)
148     ,stripLayersWithMeasurement_(-1)
149 lethuill 1.4 ,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 lethuill 1.7 ,idCutBasedFixedThresholdLoose_(-1)
181     ,idCutBasedFixedThresholdTight_(-1)
182     ,idCutBasedFixedThresholdHighEnergy_(-1)
183     ,idCutBasedCategorizedLoose_(-1)
184     ,idCutBasedCategorizedTight_(-1)
185 lethuill 1.4 ,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 lethuill 1.9 ,pixelLayersWithMeasurement_(-1)
206     ,stripLayersWithMeasurement_(-1)
207 lethuill 1.4 ,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 lethuill 1.7 ,idCutBasedFixedThresholdLoose_(-1)
239     ,idCutBasedFixedThresholdTight_(-1)
240     ,idCutBasedFixedThresholdHighEnergy_(-1)
241     ,idCutBasedCategorizedLoose_(-1)
242     ,idCutBasedCategorizedTight_(-1)
243 lethuill 1.4 ,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 lethuill 1.9 ,pixelLayersWithMeasurement_(-1)
264     ,stripLayersWithMeasurement_(-1)
265 lethuill 1.4 ,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 lethuill 1.7 ,idCutBasedFixedThresholdLoose_(-1)
297     ,idCutBasedFixedThresholdTight_(-1)
298     ,idCutBasedFixedThresholdHighEnergy_(-1)
299     ,idCutBasedCategorizedLoose_(-1)
300     ,idCutBasedCategorizedTight_(-1)
301 lethuill 1.4 ,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 lethuill 1.9 ,pixelLayersWithMeasurement_(-1)
322     ,stripLayersWithMeasurement_(-1)
323 lethuill 1.4 ,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 lethuill 1.7 ,idCutBasedFixedThresholdLoose_(-1)
355     ,idCutBasedFixedThresholdTight_(-1)
356     ,idCutBasedFixedThresholdHighEnergy_(-1)
357     ,idCutBasedCategorizedLoose_(-1)
358     ,idCutBasedCategorizedTight_(-1)
359 lethuill 1.4 ,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 lethuill 1.9 ,pixelLayersWithMeasurement_(-1)
380     ,stripLayersWithMeasurement_(-1)
381 lethuill 1.4 ,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 lethuill 1.7 ,idCutBasedFixedThresholdLoose_(-1)
413     ,idCutBasedFixedThresholdTight_(-1)
414     ,idCutBasedFixedThresholdHighEnergy_(-1)
415     ,idCutBasedCategorizedLoose_(-1)
416     ,idCutBasedCategorizedTight_(-1)
417 lethuill 1.4 ,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 lethuill 1.9
439     Int_t pixelLayersWithMeasurement() const { return pixelLayersWithMeasurement_; }
440     Int_t stripLayersWithMeasurement() const { return stripLayersWithMeasurement_; }
441 lethuill 1.4 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 lethuill 1.9
450 lethuill 1.4 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 lethuill 1.7 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 lethuill 1.4 Float_t idLikelihood() const { return idLikelihood_ ;}
479     Float_t idNeuralNet() const { return idNeuralNet_ ;}
480    
481 lethuill 1.5 virtual TString typeName() const { return "TRootElectron"; }
482    
483 lethuill 1.4
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 lethuill 1.9
499     void setPixelLayersWithMeasurement(Int_t pixelLayersWithMeasurement) { pixelLayersWithMeasurement_ = pixelLayersWithMeasurement; }
500     void setStripLayersWithMeasurement(Int_t stripLayersWithMeasurement) { stripLayersWithMeasurement_ = stripLayersWithMeasurement; }
501 lethuill 1.4 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 lethuill 1.9
510 lethuill 1.4 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 lethuill 1.7 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 lethuill 1.4 void setIDLikelihood(Float_t idLikelihood) { idLikelihood_ = idLikelihood; }
540     void setIDNeuralNet(Float_t idNeuralNet) { idNeuralNet_ = idNeuralNet; }
541 mlethuil 1.1
542 lethuill 1.4 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 mlethuil 1.1
548 lethuill 1.4
549 lethuill 1.3 private:
550 lethuill 1.4 /*
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 lethuill 1.9 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 lethuill 1.4 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 lethuill 1.7 // 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 lethuill 1.4
678 lethuill 1.7
679 lethuill 1.4 // Matched genParticle
680     TLorentzVector momentumMCElectron_;
681     TVector3 vertexMCElectron_;
682     Int_t pdgIdMCElectron_;
683    
684     // needed ?
685     //Float_t sigmaEtaEta_;
686     //Float_t sigmaPhiPhi_;
687 lethuill 1.3
688 mlethuil 1.1
689 lethuill 1.9 ClassDef (TRootElectron,3);
690 mlethuil 1.1 };
691    
692     #endif