ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Electron.h
Revision: 1.44
Committed: Thu Jan 27 21:57:15 2011 UTC (14 years, 3 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_020a, Mit_020, Mit_020pre1, Mit_018
Changes since 1.43: +40 -10 lines
Log Message:
Add ckf track impact parameter variables

File Contents

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