ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootElectron.h
Revision: 1.5
Committed: Wed Dec 17 16:23:49 2008 UTC (16 years, 4 months ago) by lethuill
Content type: text/plain
Branch: MAIN
Changes since 1.4: +6 -20 lines
Log Message:
Add reference (TRef) to mcParticle

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