ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootElectron.h
Revision: 1.6
Committed: Fri Dec 19 12:26:01 2008 UTC (16 years, 4 months ago) by lethuill
Content type: text/plain
Branch: MAIN
CVS Tags: pat_2_1_12_02
Changes since 1.5: +0 -33 lines
Log Message:
Replace MC infos encapsulated in TRootObjects by a TRef pointing to TRootMCParticles stocked in MCParticles branch
pdgId is now signed

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