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