ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Electron.h
Revision: 1.47
Committed: Fri May 20 16:51:39 2011 UTC (13 years, 11 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_025a, Mit_025, Mit_025pre2, Mit_024b, Mit_025pre1, Mit_024a, Mit_024, Mit_023, Mit_022a, Mit_022, Mit_021
Changes since 1.46: +62 -2 lines
Log Message:
Add muon kink variables and muon,electron unbiased ip variables

File Contents

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