ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Electron.h
Revision: 1.43
Committed: Mon Oct 18 01:33:37 2010 UTC (14 years, 6 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, Mit_016, Mit_015b, Mit_015a, Mit_015
Changes since 1.42: +7 -3 lines
Log Message:
Add links to ambiguous gsf tracks (may be interesting for conversion rejection)

File Contents

# User Rev Content
1 bendavid 1.1 //--------------------------------------------------------------------------------------------------
2 bendavid 1.43 // $Id: Electron.h,v 1.42 2010/06/23 09:02:04 bendavid Exp $
3 bendavid 1.1 //
4 paus 1.3 // Electron
5 bendavid 1.1 //
6 loizides 1.29 // This class holds information about reconstructed electrons from CMSSW.
7 bendavid 1.1 //
8 sixie 1.13 // Authors: C.Loizides, J.Bendavid, S.Xie
9 bendavid 1.1 //--------------------------------------------------------------------------------------------------
10    
11 loizides 1.23 #ifndef MITANA_DATATREE_ELECTRON_H
12     #define MITANA_DATATREE_ELECTRON_H
13 loizides 1.6
14 sixie 1.13 #include "MitAna/DataTree/interface/SuperCluster.h"
15 bendavid 1.11 #include "MitAna/DataTree/interface/ChargedParticle.h"
16 bendavid 1.24 #include "MitAna/DataCont/interface/Ref.h"
17 loizides 1.6
18 bendavid 1.1 namespace mithep
19     {
20 bendavid 1.11 class Electron : public ChargedParticle
21 bendavid 1.1 {
22     public:
23 loizides 1.34 Electron() :
24 bendavid 1.38 fCharge(-99), fScPixCharge(0),
25 loizides 1.34 fESuperClusterOverP(0), fESeedClusterOverPout(0), fDeltaEtaSuperClTrkAtVtx(0),
26     fDeltaEtaSeedClTrkAtCalo(0), fDeltaPhiSuperClTrkAtVtx(0),
27     fDeltaPhiSeedClTrkAtCalo(0), fFBrem(0), fHadronicOverEm(0), fHcalDepth1OverEcal(0),
28 bendavid 1.35 fHcalDepth2OverEcal(0), fNumberOfClusters(0), fE15(0), fE25Max(0),
29     fE55(0), fCovEtaEta(0), fCoviEtaiEta(0),
30 loizides 1.34 fCaloIsolation(0), fHcalJurassicIsolation(0),
31     fHcalDepth1TowerSumEtDr04(0), fHcalDepth2TowerSumEtDr04(0),
32     fEcalJurassicIsolation(0), fTrackIsolationDr04(0), fCaloTowerIsolation(0),
33     fHcalDepth1TowerSumEtDr03(0), fHcalDepth2TowerSumEtDr03(0),
34     fEcalRecHitSumEtDr03(0), fTrackIsolation(0), fPassLooseID(0),
35     fPassTightID(0), fIDLikelihood(0), fPIn(0), fPOut(0), fFracSharedHits(0),
36 bendavid 1.40 fMva(0), fD0PV(0), fD0PVErr(0), fIp3dPV(0), fIp3dPVErr(0),
37     fD0PVBS(0), fD0PVBSErr(0), fIp3dPVBS(0), fIp3dPVBSErr(0),
38 bendavid 1.41 fGsfPVCompatibility(0), fGsfPVBSCompatibility(0),
39     fGsfPVCompatibilityMatched(0), fGsfPVBSCompatibilityMatched(0),
40 bendavid 1.40 fConvPartnerDCotTheta(0), fConvPartnerDist(0), fConvPartnerRadius(0),
41     fIsEnergyScaleCorrected(0), fIsMomentumCorrected(0),
42 loizides 1.34 fClassification(0), fIsEB(), fIsEE(0), fIsEBEEGap(0), fIsEBEtaGap(0),
43     fIsEBPhiGap(0), fIsEEDeeGap(0), fIsEERingGap(0),
44 bendavid 1.42 fIsEcalDriven(0), fIsTrackerDriven(0), fMatchesVertexConversion(0) {}
45 loizides 1.29
46     const Track *BestTrk() const;
47 bendavid 1.40 Double_t D0PV() const { return fD0PV; }
48     Double_t D0PVErr() const { return fD0PVErr; }
49     Double_t D0PVSignificance() const { return fD0PV/fD0PVErr; }
50     Double_t Ip3dPV() const { return fIp3dPV; }
51     Double_t Ip3dPVErr() const { return fIp3dPVErr; }
52     Double_t Ip3dPVSignificance() const { return fIp3dPV/fIp3dPVErr; }
53     Double_t D0PVBS() const { return fD0PVBS; }
54     Double_t D0PVBSErr() const { return fD0PVBSErr; }
55     Double_t D0PVBSSignificance() const { return fD0PVBS/fD0PVBSErr; }
56     Double_t Ip3dPVBS() const { return fIp3dPVBS; }
57     Double_t Ip3dPVBSErr() const { return fIp3dPVBSErr; }
58     Double_t Ip3dPVBSSignificance() const { return fIp3dPVBS/fIp3dPVBSErr; }
59 bendavid 1.41 Double_t GsfPVCompatibility() const { return fGsfPVCompatibility; }
60     Double_t GsfPVBSCompatibility() const { return fGsfPVBSCompatibility; }
61     Double_t GsfPVCompatibilityMatched() const { return fGsfPVCompatibilityMatched; }
62     Double_t GsfPVBSCompatibilityMatched() const { return fGsfPVBSCompatibilityMatched; }
63 bendavid 1.40 Double_t ConvPartnerDCotTheta() const { return fConvPartnerDCotTheta; }
64     Double_t ConvPartnerDist() const { return fConvPartnerDist; }
65     Double_t ConvPartnerRadius() const { return fConvPartnerRadius; }
66 ceballos 1.36 Double_t CaloIsolation() const { return fCaloIsolation; } // *DEPRECATED*
67 loizides 1.34 Int_t Classification() const { return fClassification; }
68     Double_t CovEtaEta() const { return fCovEtaEta; }
69     Double_t CoviEtaiEta() const { return fCoviEtaiEta; }
70 loizides 1.27 Double_t DeltaEtaSuperClusterTrackAtVtx() const
71     { return fDeltaEtaSuperClTrkAtVtx; }
72     Double_t DeltaEtaSeedClusterTrackAtCalo() const
73     { return fDeltaEtaSeedClTrkAtCalo; }
74     Double_t DeltaPhiSuperClusterTrackAtVtx() const
75     { return fDeltaPhiSuperClTrkAtVtx; }
76     Double_t DeltaPhiSeedClusterTrackAtCalo() const
77     { return fDeltaPhiSeedClTrkAtCalo; }
78 loizides 1.34 Double_t E15() const { return fE15; }
79     Double_t E25Max() const { return fE25Max; }
80     Double_t E55() const { return fE55; }
81 loizides 1.29 Double_t ESuperClusterOverP() const { return fESuperClusterOverP; }
82     Double_t ESeedClusterOverPout() const { return fESeedClusterOverPout; }
83     Double_t ESeedClusterOverPIn() const;
84 bendavid 1.33 Double_t FBrem() const { return fFBrem; }
85     Double_t FBremOld() const { return (PIn() - POut())/PIn(); }
86     Double_t FracSharedHits() const { return fFracSharedHits; }
87 loizides 1.29 const Track *GsfTrk() const { return fGsfTrackRef.Obj(); }
88 loizides 1.30 Double_t HadronicOverEm() const { return fHadronicOverEm; }
89 bendavid 1.33 Double_t HcalDepth1OverEcal() const { return fHcalDepth1OverEcal; }
90     Double_t HcalDepth2OverEcal() const { return fHcalDepth2OverEcal; }
91 loizides 1.29 Bool_t HasGsfTrk() const { return fGsfTrackRef.IsValid(); }
92     Bool_t HasTrackerTrk() const { return fTrackerTrackRef.IsValid(); }
93     Bool_t HasSuperCluster() const { return fSuperClusterRef.IsValid(); }
94 ceballos 1.36 Double_t HcalIsolation() const { return fHcalJurassicIsolation; } // *DEPRECATED*
95 loizides 1.29 Double_t IDLikelihood() const { return fIDLikelihood; }
96     Bool_t IsEnergyScaleCorrected() const { return fIsEnergyScaleCorrected; }
97     Bool_t IsMomentumCorrected() const { return fIsMomentumCorrected; }
98 bendavid 1.33 Bool_t IsEB() const { return fIsEB; }
99     Bool_t IsEE() const { return fIsEE; }
100     Bool_t IsEBEEGap() const { return fIsEBEEGap; }
101     Bool_t IsEBEtaGap() const { return fIsEBEtaGap; }
102     Bool_t IsEBPhiGap() const { return fIsEBPhiGap; }
103     Bool_t IsEEDeeGap() const { return fIsEEDeeGap; }
104     Bool_t IsEERingGap() const { return fIsEERingGap; }
105     Bool_t IsEcalDriven() const { return fIsEcalDriven; }
106     Bool_t IsTrackerDriven() const { return fIsTrackerDriven; }
107     Double_t Mva() const { return fMva; }
108 loizides 1.29 Double_t NumberOfClusters() const { return fNumberOfClusters; }
109     EObjType ObjType() const { return kElectron; }
110     Double_t PassLooseID() const { return fPassLooseID; }
111     Double_t PassTightID() const { return fPassTightID; }
112     Double_t PIn() const { return fPIn; }
113     Double_t POut() const { return fPOut; }
114     const SuperCluster *SCluster() const { return fSuperClusterRef.Obj(); }
115 bendavid 1.38 Double_t ScPixCharge() const { return fScPixCharge; }
116 bendavid 1.33
117     Double_t EcalRecHitIsoDr04() const { return fEcalJurassicIsolation; }
118     Double_t HcalTowerSumEtDr04() const { return HcalDepth1TowerSumEtDr04() +
119     HcalDepth2TowerSumEtDr04(); }
120     Double_t HcalDepth1TowerSumEtDr04() const { return fHcalDepth1TowerSumEtDr04; }
121     Double_t HcalDepth2TowerSumEtDr04() const { return fHcalDepth2TowerSumEtDr04; }
122     Double_t TrackIsolationDr04() const { return fTrackIsolationDr04; }
123     Double_t EcalRecHitIsoDr03() const { return fEcalRecHitSumEtDr03; }
124     Double_t HcalTowerSumEtDr03() const { return fCaloTowerIsolation; }
125     Double_t HcalDepth1TowerSumEtDr03() const { return fHcalDepth1TowerSumEtDr03; }
126     Double_t HcalDepth2TowerSumEtDr03() const { return fHcalDepth2TowerSumEtDr03; }
127     Double_t TrackIsolationDr03() const { return fTrackIsolation; }
128 bendavid 1.42 Bool_t MatchesVertexConversion() const { return fMatchesVertexConversion; }
129 bendavid 1.43 UInt_t NAmbiguousGsfTracks() const { return fAmbiguousGsfTracks.Entries(); }
130     Bool_t HasAmbiguousGsfTrack(const Track *t) const { return fAmbiguousGsfTracks.HasObject(t); }
131     const Track *AmbiguousGsfTrack(UInt_t i) const { return fAmbiguousGsfTracks.At(i); }
132 bendavid 1.33
133 bendavid 1.43 void AddAmbiguousGsfTrack(const Track *t) { fAmbiguousGsfTracks.Add(t); }
134 bendavid 1.39 void SetCharge(Char_t x) { fCharge = x; ClearCharge(); }
135 bendavid 1.38 void SetScPixCharge(Char_t x) { fScPixCharge = x; }
136 bendavid 1.40 void SetD0PV(Double_t x) { fD0PV = x; }
137     void SetD0PVErr(Double_t x) { fD0PVErr = x; }
138     void SetIp3dPV(Double_t x) { fIp3dPV = x; }
139     void SetIp3dPVErr(Double_t x) { fIp3dPVErr = x; }
140     void SetD0PVBS(Double_t x) { fD0PVBS = x; }
141     void SetD0PVBSErr(Double_t x) { fD0PVBSErr = x; }
142     void SetIp3dPVBS(Double_t x) { fIp3dPVBS = x; }
143     void SetIp3dPVBSErr(Double_t x) { fIp3dPVBSErr = x; }
144 bendavid 1.41 void SetGsfPVCompatibility(Double_t x) { fGsfPVCompatibility = x; }
145     void SetGsfPVBSCompatibility(Double_t x) { fGsfPVBSCompatibility = x; }
146     void SetGsfPVCompatibilityMatched(Double_t x) { fGsfPVCompatibilityMatched = x; }
147     void SetGsfPVBSCompatibilityMatched(Double_t x) { fGsfPVBSCompatibilityMatched = x; }
148 bendavid 1.40 void SetConvPartnerDCotTheta(Double_t x) { fConvPartnerDCotTheta = x; }
149     void SetConvPartnerDist(Double_t x) { fConvPartnerDist = x; }
150     void SetConvPartnerRadius(Double_t x) { fConvPartnerRadius = x; }
151 loizides 1.29 void SetClassification(Int_t x) { fClassification = x; }
152     void SetCovEtaEta(Double_t CovEtaEta) { fCovEtaEta = CovEtaEta; }
153     void SetCoviEtaiEta(Double_t CoviEtaiEta) { fCoviEtaiEta = CoviEtaiEta; }
154 loizides 1.27 void SetDeltaEtaSuperClusterTrackAtVtx(Double_t x)
155     { fDeltaEtaSuperClTrkAtVtx = x; }
156     void SetDeltaEtaSeedClusterTrackAtCalo(Double_t x)
157     { fDeltaEtaSeedClTrkAtCalo = x; }
158     void SetDeltaPhiSuperClusterTrackAtVtx(Double_t x)
159     { fDeltaPhiSuperClTrkAtVtx = x; }
160     void SetDeltaPhiSeedClusterTrackAtCalo(Double_t x)
161     { fDeltaPhiSeedClTrkAtCalo = x; }
162 bendavid 1.33 void SetE15(Double_t x) { fE15 = x; }
163     void SetE25Max(Double_t x) { fE25Max = x; }
164     void SetE55(Double_t x) { fE55 = x; }
165 loizides 1.29 void SetESeedClusterOverPout(Double_t x) { fESeedClusterOverPout = x; }
166     void SetESuperClusterOverP(Double_t x) { fESuperClusterOverP = x; }
167 bendavid 1.33 void SetFBrem(Double_t x) { fFBrem = x; }
168     void SetFracSharedHits(Double_t x) { fFracSharedHits = x; }
169 loizides 1.29 void SetGsfTrk(const Track* t)
170 bendavid 1.31 { fGsfTrackRef = t; ClearCharge(); }
171 loizides 1.29 void SetHadronicOverEm(Double_t x) { fHadronicOverEm = x; }
172 bendavid 1.33 void SetHcalDepth1OverEcal(Double_t x) { fHcalDepth1OverEcal = x; }
173     void SetHcalDepth2OverEcal(Double_t x) { fHcalDepth2OverEcal = x; }
174 loizides 1.29 void SetIDLikelihood(Double_t likelihood) { fIDLikelihood = likelihood; }
175     void SetIsEnergyScaleCorrected(Bool_t x) { fIsEnergyScaleCorrected = x; }
176     void SetIsMomentumCorrected(Bool_t x) { fIsMomentumCorrected = x; }
177     void SetNumberOfClusters(Double_t x) { fNumberOfClusters = x; }
178     void SetPIn(Double_t PIn) { fPIn = PIn; }
179     void SetPOut(Double_t POut) { fPOut = POut; }
180     void SetPassLooseID(Double_t passLooseID) { fPassLooseID = passLooseID; }
181     void SetPassTightID(Double_t passTightID) { fPassTightID = passTightID; }
182 bendavid 1.31 void SetPtEtaPhi(Double_t pt, Double_t eta, Double_t phi);
183     void SetSuperCluster(const SuperCluster* sc)
184     { fSuperClusterRef = sc; }
185 loizides 1.29 void SetTrackerTrk(const Track* t)
186 bendavid 1.31 { fTrackerTrackRef = t; ClearCharge(); }
187 bendavid 1.42 void SetConvPartnerTrk(const Track *t)
188     { fConvPartnerTrackRef = t; }
189 bendavid 1.33 void SetEcalRecHitIsoDr04(Double_t x) { fEcalJurassicIsolation = x; }
190     void SetHcalDepth1TowerSumEtDr04(Double_t x) { fHcalDepth1TowerSumEtDr04 = x; }
191     void SetHcalDepth2TowerSumEtDr04(Double_t x) { fHcalDepth2TowerSumEtDr04 = x; }
192     void SetTrackIsolationDr04(Double_t x) { fTrackIsolationDr04 = x; }
193 loizides 1.34 void SetEcalRecHitIsoDr03(Double_t x) { fEcalRecHitSumEtDr03 = x; }
194 bendavid 1.33 void SetHcalTowerSumEtDr03(Double_t x) { fCaloTowerIsolation = x; }
195     void SetHcalDepth1TowerSumEtDr03(Double_t x) { fHcalDepth1TowerSumEtDr03 = x; }
196     void SetHcalDepth2TowerSumEtDr03(Double_t x) { fHcalDepth2TowerSumEtDr03 = x; }
197 loizides 1.34 void SetTrackIsolationDr03(Double_t x) { fTrackIsolation = x; }
198     void SetMva(Double_t x) { fMva = x; }
199     void SetIsEB(Bool_t b) { fIsEB = b; }
200     void SetIsEE(Bool_t b) { fIsEE = b; }
201     void SetIsEBEEGap(Bool_t b) { fIsEBEEGap = b; }
202     void SetIsEBEtaGap(Bool_t b) { fIsEBEtaGap = b; }
203     void SetIsEBPhiGap(Bool_t b) { fIsEBPhiGap = b; }
204     void SetIsEEDeeGap(Bool_t b) { fIsEEDeeGap = b; }
205     void SetIsEERingGap(Bool_t b) { fIsEERingGap = b; }
206     void SetIsEcalDriven(Bool_t b) { fIsEcalDriven = b; }
207     void SetIsTrackerDriven(Bool_t b) { fIsTrackerDriven = b; }
208 bendavid 1.42 void SetMatchesVertexConversion(Bool_t b) { fMatchesVertexConversion = b; }
209     void SetConversionXYZ(Double_t x, Double_t y, Double_t z)
210     { fConvPosition.SetXYZ(x,y,z); }
211 bendavid 1.33
212    
213 loizides 1.34 const Track *TrackerTrk() const { return fTrackerTrackRef.Obj(); }
214     const Track *Trk() const { return BestTrk(); }
215 bendavid 1.42 const Track *ConvPartnerTrk() const { return fConvPartnerTrackRef.Obj(); }
216 sixie 1.13
217 loizides 1.8 protected:
218 bendavid 1.37 Double_t GetCharge() const;
219 loizides 1.34 Double_t GetMass() const { return 0.51099892e-3; }
220 loizides 1.27 void GetMom() const;
221 loizides 1.25
222 bendavid 1.31 Vect3C fMom; //stored three-momentum
223 bendavid 1.37 Char_t fCharge; //stored charge - filled with -99 when reading old files
224 bendavid 1.38 Char_t fScPixCharge; //charge from supercluster-pixel matching
225 loizides 1.27 Ref<Track> fGsfTrackRef; //gsf track reference
226     Ref<Track> fTrackerTrackRef; //tracker track reference
227 bendavid 1.42 Ref<Track> fConvPartnerTrackRef; //conversion partner track reference
228 loizides 1.27 Ref<SuperCluster> fSuperClusterRef; //reference to SuperCluster
229 loizides 1.29 Double32_t fESuperClusterOverP; //[0,0,14]super cluster e over p ratio
230     Double32_t fESeedClusterOverPout; //[0,0,14]seed cluster e over p mom
231     Double32_t fDeltaEtaSuperClTrkAtVtx; //[0,0,14]delta eta of super cluster with trk
232     Double32_t fDeltaEtaSeedClTrkAtCalo; //[0,0,14]delta eta of seeed cluster with trk
233     Double32_t fDeltaPhiSuperClTrkAtVtx; //[0,0,14]delta phi of super cluster with trk
234     Double32_t fDeltaPhiSeedClTrkAtCalo; //[0,0,14]delta phi of seeed cluster with trk
235 bendavid 1.33 Double32_t fFBrem; //[0,0,14]brem fraction
236     Double32_t fHadronicOverEm; //[0,0,14]hadronic over em fraction *DEPRECATED*
237     Double32_t fHcalDepth1OverEcal; //[0,0,14]hadronic over em fraction depth1
238     Double32_t fHcalDepth2OverEcal; //[0,0,14]hadronic over em fraction depth2
239 loizides 1.29 Double32_t fNumberOfClusters; //[0,0,14]number of associated clusters
240 bendavid 1.33 Double32_t fE15; //[0,0,14]1x5 crystal energy
241     Double32_t fE25Max; //[0,0,14]2x5 crystal energy (max of two possible sums)
242 loizides 1.29 Double32_t fE55; //[0,0,14]5x5 crystal energy
243     Double32_t fCovEtaEta; //[0,0,14]variance eta-eta
244     Double32_t fCoviEtaiEta; //[0,0,14]covariance eta-eta (in crystals)
245 bendavid 1.33 Double32_t fCaloIsolation; //[0,0,14](non-jura) ecal isolation based on rechits dR 0.3 *DEPRECATED*
246     Double32_t fHcalJurassicIsolation; //[0,0,14]hcal jura iso dR 0.4 *DEPRECATED*
247     Double32_t fHcalDepth1TowerSumEtDr04; //[0,0,14]hcal depth1 tower based isolation dR 0.4
248     Double32_t fHcalDepth2TowerSumEtDr04; //[0,0,14]hcal depth2 tower based isolation dR 0.4
249     Double32_t fEcalJurassicIsolation; //[0,0,14]ecal jura iso dR 0.4 *RENAMING*
250     Double32_t fTrackIsolationDr04; //[0,0,14]isolation based on tracks dR 0.4
251     Double32_t fCaloTowerIsolation; //[0,0,14]hcal tower based isolation dR 0.3 *DEPRECATED*
252     Double32_t fHcalDepth1TowerSumEtDr03; //[0,0,14]hcal depth1 tower based isolation dR 0.3
253     Double32_t fHcalDepth2TowerSumEtDr03; //[0,0,14]hcal depth2 tower based isolation dR 0.3
254     Double32_t fEcalRecHitSumEtDr03; //[0,0,14]ecal jura iso dR 0.3
255     Double32_t fTrackIsolation; //[0,0,14]isolation based on tracks dR 0.3 *RENAMING*
256 loizides 1.29 Double32_t fPassLooseID; //[0,0,14]pass loose id
257     Double32_t fPassTightID; //[0,0,14]pass tight id
258     Double32_t fIDLikelihood; //[0,0,14]likelihood value
259     Double32_t fPIn; //[0,0,14]momentum at vtx
260     Double32_t fPOut; //[0,0,14]momentum at ecal surface
261 bendavid 1.33 Double32_t fFracSharedHits; //[0,0,14]fraction of shared hits btw gsf and std. track
262     Double32_t fMva; //[0,0,14] pflow mva output
263 bendavid 1.40 Double32_t fD0PV; //[0,0,14]transverse impact parameter to signal PV
264     Double32_t fD0PVErr; //[0,0,14]transverse impact parameter uncertainty to signal PV
265     Double32_t fIp3dPV; //[0,0,14]3d impact parameter to signal PV
266     Double32_t fIp3dPVErr; //[0,0,14]3d impact parameter uncertainty to signal PV
267     Double32_t fD0PVBS; //[0,0,14]transverse impact parameter to signal PV w/ bs constraint
268     Double32_t fD0PVBSErr; //[0,0,14]transverse impact parameter uncertainty to signal PV w/ bs constraint
269     Double32_t fIp3dPVBS; //[0,0,14]3d impact parameter to signal PV w/ bs constraint
270     Double32_t fIp3dPVBSErr; //[0,0,14]3d impact parameter uncertainty to signal PV w/ bs constraint
271 bendavid 1.41 Double32_t fGsfPVCompatibility; //[0,0,14]gsf compatibility with signal PV
272     Double32_t fGsfPVBSCompatibility; //[0,0,14]gsf compatibility with signal PV w/ bs constraint
273     Double32_t fGsfPVCompatibilityMatched; //[0,0,14]gsf compatibility with signal PV (matching ckf track excluded from vertex)
274     Double32_t fGsfPVBSCompatibilityMatched; //[0,0,14]gsf compatibility with signal PV w/ bs constraint (matching ckf track excluded from vertex)
275 bendavid 1.40 Double32_t fConvPartnerDCotTheta; //[0,0,14]delta cot theta to nearest conversion partner track
276     Double32_t fConvPartnerDist; //[0,0,14]distance in x-y plane to nearest conversion partner track
277     Double32_t fConvPartnerRadius; //[0,0,14]radius of helix intersection with conversion partner track
278 bendavid 1.42 Vect3C fConvPosition;
279 loizides 1.29 Bool_t fIsEnergyScaleCorrected; //class dependent escale correction
280     Bool_t fIsMomentumCorrected; //class dependent E-p combination
281     Int_t fClassification; //classification (see GsfElectron.h)
282 bendavid 1.33 Bool_t fIsEB; //is ECAL barrel
283     Bool_t fIsEE; //is ECAL Endcap
284     Bool_t fIsEBEEGap; //is in barrel-endcap gap
285     Bool_t fIsEBEtaGap; //is in EB eta module gap
286     Bool_t fIsEBPhiGap; //is in EB phi module gap
287     Bool_t fIsEEDeeGap; //is in EE dee gap
288     Bool_t fIsEERingGap; //is in EE ring gap
289     Bool_t fIsEcalDriven; //is std. egamma electron
290     Bool_t fIsTrackerDriven; //is pflow track-seeded electron
291 bendavid 1.42 Bool_t fMatchesVertexConversion;
292 bendavid 1.43 RefArray<Track> fAmbiguousGsfTracks; //ambiguous gsf tracks for this electron
293 sixie 1.13
294 bendavid 1.43 ClassDef(Electron, 8) // Electron class
295 bendavid 1.1 };
296 loizides 1.4 }
297 loizides 1.8
298 loizides 1.9 //--------------------------------------------------------------------------------------------------
299 loizides 1.10 inline const mithep::Track *mithep::Electron::BestTrk() const
300 loizides 1.9 {
301 loizides 1.10 // Return "best" track.
302    
303 bendavid 1.24 if (HasGsfTrk())
304 loizides 1.10 return GsfTrk();
305 bendavid 1.24 else if (HasTrackerTrk())
306 loizides 1.10 return TrackerTrk();
307 loizides 1.9
308 loizides 1.10 return 0;
309 loizides 1.9 }
310    
311 loizides 1.25 //--------------------------------------------------------------------------------------------------
312 bendavid 1.37 inline Double_t mithep::Electron::GetCharge() const
313     {
314     // Return stored charge, unless it is set to invalid (-99),
315     // in that case get charge from track as before
316    
317     if (fCharge==-99)
318     return mithep::ChargedParticle::GetCharge();
319     else
320     return fCharge;
321    
322     }
323    
324     //--------------------------------------------------------------------------------------------------
325 loizides 1.25 inline void mithep::Electron::GetMom() const
326 sixie 1.14 {
327 bendavid 1.31 // Get momentum of the electron. We use an explicitly stored three vector, with the pdg mass,
328     // since the momentum vector may be computed non-trivially in cmssw
329 sixie 1.14
330 bendavid 1.31 fCachedMom.SetCoordinates(fMom.Rho(),fMom.Eta(),fMom.Phi(),GetMass());
331 bendavid 1.18 }
332    
333     //-------------------------------------------------------------------------------------------------
334 loizides 1.25 inline Double_t mithep::Electron::ESeedClusterOverPIn() const
335 bendavid 1.18 {
336 loizides 1.25 // Return energy of the SuperCluster seed divided by the magnitude
337     // of the track momentum at the vertex.
338    
339     return SCluster()->Seed()->Energy() / PIn();
340 bendavid 1.18 }
341 bendavid 1.31
342     //-------------------------------------------------------------------------------------------------
343     inline void mithep::Electron::SetPtEtaPhi(Double_t pt, Double_t eta, Double_t phi)
344     {
345     // Set three-vector
346    
347     fMom.Set(pt,eta,phi);
348     ClearMom();
349     }
350 loizides 1.8 #endif