ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootElectron.h
Revision: 1.14
Committed: Fri Sep 18 14:14:20 2009 UTC (15 years, 7 months ago) by lethuill
Content type: text/plain
Branch: MAIN
CVS Tags: all_3_3_2_01, all_3_2_5_02, all_3_2_5_01, HEAD
Changes since 1.13: +47 -4 lines
Log Message:
Update for 3.2.X

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