ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootElectron.h
Revision: 1.4
Committed: Mon Dec 15 19:08:52 2008 UTC (16 years, 4 months ago) by lethuill
Content type: text/plain
Branch: MAIN
CVS Tags: pat_2_1_12_01
Changes since 1.3: +703 -575 lines
Log Message:
MC infos from Silvano

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