ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Electron.h
Revision: 1.35
Committed: Tue Jul 21 16:34:46 2009 UTC (15 years, 9 months ago) by bendavid
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_010
Changes since 1.34: +3 -12 lines
Log Message:
Remove some deprecated accessors and variables

File Contents

# User Rev Content
1 bendavid 1.1 //--------------------------------------------------------------------------------------------------
2 bendavid 1.35 // $Id: Electron.h,v 1.34 2009/07/20 04:57:27 loizides 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     fESuperClusterOverP(0), fESeedClusterOverPout(0), fDeltaEtaSuperClTrkAtVtx(0),
25     fDeltaEtaSeedClTrkAtCalo(0), fDeltaPhiSuperClTrkAtVtx(0),
26     fDeltaPhiSeedClTrkAtCalo(0), fFBrem(0), fHadronicOverEm(0), fHcalDepth1OverEcal(0),
27 bendavid 1.35 fHcalDepth2OverEcal(0), fNumberOfClusters(0), fE15(0), fE25Max(0),
28     fE55(0), fCovEtaEta(0), fCoviEtaiEta(0),
29 loizides 1.34 fCaloIsolation(0), fHcalJurassicIsolation(0),
30     fHcalDepth1TowerSumEtDr04(0), fHcalDepth2TowerSumEtDr04(0),
31     fEcalJurassicIsolation(0), fTrackIsolationDr04(0), fCaloTowerIsolation(0),
32     fHcalDepth1TowerSumEtDr03(0), fHcalDepth2TowerSumEtDr03(0),
33     fEcalRecHitSumEtDr03(0), fTrackIsolation(0), fPassLooseID(0),
34     fPassTightID(0), fIDLikelihood(0), fPIn(0), fPOut(0), fFracSharedHits(0),
35     fMva(0), fIsEnergyScaleCorrected(0), fIsMomentumCorrected(0),
36     fClassification(0), fIsEB(), fIsEE(0), fIsEBEEGap(0), fIsEBEtaGap(0),
37     fIsEBPhiGap(0), fIsEEDeeGap(0), fIsEERingGap(0),
38     fIsEcalDriven(0), fIsTrackerDriven(0) {}
39 loizides 1.29
40     const Track *BestTrk() const;
41 loizides 1.34 Double_t CaloIsolation() const { return fCaloIsolation; } //*DEPRECATED*
42     Int_t Classification() const { return fClassification; }
43     Double_t CovEtaEta() const { return fCovEtaEta; }
44     Double_t CoviEtaiEta() const { return fCoviEtaiEta; }
45 loizides 1.27 Double_t DeltaEtaSuperClusterTrackAtVtx() const
46     { return fDeltaEtaSuperClTrkAtVtx; }
47     Double_t DeltaEtaSeedClusterTrackAtCalo() const
48     { return fDeltaEtaSeedClTrkAtCalo; }
49     Double_t DeltaPhiSuperClusterTrackAtVtx() const
50     { return fDeltaPhiSuperClTrkAtVtx; }
51     Double_t DeltaPhiSeedClusterTrackAtCalo() const
52     { return fDeltaPhiSeedClTrkAtCalo; }
53 loizides 1.34 Double_t E15() const { return fE15; }
54     Double_t E25Max() const { return fE25Max; }
55     Double_t E55() const { return fE55; }
56 loizides 1.29 Double_t ESuperClusterOverP() const { return fESuperClusterOverP; }
57     Double_t ESeedClusterOverPout() const { return fESeedClusterOverPout; }
58     Double_t ESeedClusterOverPIn() const;
59 bendavid 1.33 Double_t FBrem() const { return fFBrem; }
60     Double_t FBremOld() const { return (PIn() - POut())/PIn(); }
61     Double_t FracSharedHits() const { return fFracSharedHits; }
62 loizides 1.29 const Track *GsfTrk() const { return fGsfTrackRef.Obj(); }
63 loizides 1.30 Double_t HadronicOverEm() const { return fHadronicOverEm; }
64 bendavid 1.33 Double_t HcalDepth1OverEcal() const { return fHcalDepth1OverEcal; }
65     Double_t HcalDepth2OverEcal() const { return fHcalDepth2OverEcal; }
66 loizides 1.29 Bool_t HasGsfTrk() const { return fGsfTrackRef.IsValid(); }
67     Bool_t HasTrackerTrk() const { return fTrackerTrackRef.IsValid(); }
68     Bool_t HasSuperCluster() const { return fSuperClusterRef.IsValid(); }
69 loizides 1.34 Double_t HcalIsolation() const { return fHcalJurassicIsolation; } //*DEPRECATED*
70 loizides 1.29 Double_t IDLikelihood() const { return fIDLikelihood; }
71     Bool_t IsEnergyScaleCorrected() const { return fIsEnergyScaleCorrected; }
72     Bool_t IsMomentumCorrected() const { return fIsMomentumCorrected; }
73 bendavid 1.33 Bool_t IsEB() const { return fIsEB; }
74     Bool_t IsEE() const { return fIsEE; }
75     Bool_t IsEBEEGap() const { return fIsEBEEGap; }
76     Bool_t IsEBEtaGap() const { return fIsEBEtaGap; }
77     Bool_t IsEBPhiGap() const { return fIsEBPhiGap; }
78     Bool_t IsEEDeeGap() const { return fIsEEDeeGap; }
79     Bool_t IsEERingGap() const { return fIsEERingGap; }
80     Bool_t IsEcalDriven() const { return fIsEcalDriven; }
81     Bool_t IsTrackerDriven() const { return fIsTrackerDriven; }
82     Double_t Mva() const { return fMva; }
83 loizides 1.29 Double_t NumberOfClusters() const { return fNumberOfClusters; }
84     EObjType ObjType() const { return kElectron; }
85     Double_t PassLooseID() const { return fPassLooseID; }
86     Double_t PassTightID() const { return fPassTightID; }
87     Double_t PIn() const { return fPIn; }
88     Double_t POut() const { return fPOut; }
89     const SuperCluster *SCluster() const { return fSuperClusterRef.Obj(); }
90 bendavid 1.33
91     Double_t EcalRecHitIsoDr04() const { return fEcalJurassicIsolation; }
92     Double_t HcalTowerSumEtDr04() const { return HcalDepth1TowerSumEtDr04() +
93     HcalDepth2TowerSumEtDr04(); }
94     Double_t HcalDepth1TowerSumEtDr04() const { return fHcalDepth1TowerSumEtDr04; }
95     Double_t HcalDepth2TowerSumEtDr04() const { return fHcalDepth2TowerSumEtDr04; }
96     Double_t TrackIsolationDr04() const { return fTrackIsolationDr04; }
97     Double_t EcalRecHitIsoDr03() const { return fEcalRecHitSumEtDr03; }
98     Double_t HcalTowerSumEtDr03() const { return fCaloTowerIsolation; }
99     Double_t HcalDepth1TowerSumEtDr03() const { return fHcalDepth1TowerSumEtDr03; }
100     Double_t HcalDepth2TowerSumEtDr03() const { return fHcalDepth2TowerSumEtDr03; }
101     Double_t TrackIsolationDr03() const { return fTrackIsolation; }
102    
103    
104 loizides 1.29 void SetClassification(Int_t x) { fClassification = x; }
105     void SetCovEtaEta(Double_t CovEtaEta) { fCovEtaEta = CovEtaEta; }
106     void SetCoviEtaiEta(Double_t CoviEtaiEta) { fCoviEtaiEta = CoviEtaiEta; }
107 loizides 1.27 void SetDeltaEtaSuperClusterTrackAtVtx(Double_t x)
108     { fDeltaEtaSuperClTrkAtVtx = x; }
109     void SetDeltaEtaSeedClusterTrackAtCalo(Double_t x)
110     { fDeltaEtaSeedClTrkAtCalo = x; }
111     void SetDeltaPhiSuperClusterTrackAtVtx(Double_t x)
112     { fDeltaPhiSuperClTrkAtVtx = x; }
113     void SetDeltaPhiSeedClusterTrackAtCalo(Double_t x)
114     { fDeltaPhiSeedClTrkAtCalo = x; }
115 bendavid 1.33 void SetE15(Double_t x) { fE15 = x; }
116     void SetE25Max(Double_t x) { fE25Max = x; }
117     void SetE55(Double_t x) { fE55 = x; }
118 loizides 1.29 void SetESeedClusterOverPout(Double_t x) { fESeedClusterOverPout = x; }
119     void SetESuperClusterOverP(Double_t x) { fESuperClusterOverP = x; }
120 bendavid 1.33 void SetFBrem(Double_t x) { fFBrem = x; }
121     void SetFracSharedHits(Double_t x) { fFracSharedHits = x; }
122 loizides 1.29 void SetGsfTrk(const Track* t)
123 bendavid 1.31 { fGsfTrackRef = t; ClearCharge(); }
124 loizides 1.29 void SetHadronicOverEm(Double_t x) { fHadronicOverEm = x; }
125 bendavid 1.33 void SetHcalDepth1OverEcal(Double_t x) { fHcalDepth1OverEcal = x; }
126     void SetHcalDepth2OverEcal(Double_t x) { fHcalDepth2OverEcal = x; }
127 loizides 1.29 void SetIDLikelihood(Double_t likelihood) { fIDLikelihood = likelihood; }
128     void SetIsEnergyScaleCorrected(Bool_t x) { fIsEnergyScaleCorrected = x; }
129     void SetIsMomentumCorrected(Bool_t x) { fIsMomentumCorrected = x; }
130     void SetNumberOfClusters(Double_t x) { fNumberOfClusters = x; }
131     void SetPIn(Double_t PIn) { fPIn = PIn; }
132     void SetPOut(Double_t POut) { fPOut = POut; }
133     void SetPassLooseID(Double_t passLooseID) { fPassLooseID = passLooseID; }
134     void SetPassTightID(Double_t passTightID) { fPassTightID = passTightID; }
135 bendavid 1.31 void SetPtEtaPhi(Double_t pt, Double_t eta, Double_t phi);
136     void SetSuperCluster(const SuperCluster* sc)
137     { fSuperClusterRef = sc; }
138 loizides 1.29 void SetTrackerTrk(const Track* t)
139 bendavid 1.31 { fTrackerTrackRef = t; ClearCharge(); }
140 bendavid 1.33 void SetEcalRecHitIsoDr04(Double_t x) { fEcalJurassicIsolation = x; }
141     void SetHcalDepth1TowerSumEtDr04(Double_t x) { fHcalDepth1TowerSumEtDr04 = x; }
142     void SetHcalDepth2TowerSumEtDr04(Double_t x) { fHcalDepth2TowerSumEtDr04 = x; }
143     void SetTrackIsolationDr04(Double_t x) { fTrackIsolationDr04 = x; }
144 loizides 1.34 void SetEcalRecHitIsoDr03(Double_t x) { fEcalRecHitSumEtDr03 = x; }
145 bendavid 1.33 void SetHcalTowerSumEtDr03(Double_t x) { fCaloTowerIsolation = x; }
146     void SetHcalDepth1TowerSumEtDr03(Double_t x) { fHcalDepth1TowerSumEtDr03 = x; }
147     void SetHcalDepth2TowerSumEtDr03(Double_t x) { fHcalDepth2TowerSumEtDr03 = x; }
148 loizides 1.34 void SetTrackIsolationDr03(Double_t x) { fTrackIsolation = x; }
149     void SetMva(Double_t x) { fMva = x; }
150     void SetIsEB(Bool_t b) { fIsEB = b; }
151     void SetIsEE(Bool_t b) { fIsEE = b; }
152     void SetIsEBEEGap(Bool_t b) { fIsEBEEGap = b; }
153     void SetIsEBEtaGap(Bool_t b) { fIsEBEtaGap = b; }
154     void SetIsEBPhiGap(Bool_t b) { fIsEBPhiGap = b; }
155     void SetIsEEDeeGap(Bool_t b) { fIsEEDeeGap = b; }
156     void SetIsEERingGap(Bool_t b) { fIsEERingGap = b; }
157     void SetIsEcalDriven(Bool_t b) { fIsEcalDriven = b; }
158     void SetIsTrackerDriven(Bool_t b) { fIsTrackerDriven = b; }
159 bendavid 1.33
160    
161 loizides 1.34 const Track *TrackerTrk() const { return fTrackerTrackRef.Obj(); }
162     const Track *Trk() const { return BestTrk(); }
163 sixie 1.13
164 loizides 1.8 protected:
165 loizides 1.34 Double_t GetMass() const { return 0.51099892e-3; }
166 loizides 1.27 void GetMom() const;
167 loizides 1.25
168 bendavid 1.31 Vect3C fMom; //stored three-momentum
169 loizides 1.27 Ref<Track> fGsfTrackRef; //gsf track reference
170     Ref<Track> fTrackerTrackRef; //tracker track reference
171     Ref<SuperCluster> fSuperClusterRef; //reference to SuperCluster
172 loizides 1.29 Double32_t fESuperClusterOverP; //[0,0,14]super cluster e over p ratio
173     Double32_t fESeedClusterOverPout; //[0,0,14]seed cluster e over p mom
174     Double32_t fDeltaEtaSuperClTrkAtVtx; //[0,0,14]delta eta of super cluster with trk
175     Double32_t fDeltaEtaSeedClTrkAtCalo; //[0,0,14]delta eta of seeed cluster with trk
176     Double32_t fDeltaPhiSuperClTrkAtVtx; //[0,0,14]delta phi of super cluster with trk
177     Double32_t fDeltaPhiSeedClTrkAtCalo; //[0,0,14]delta phi of seeed cluster with trk
178 bendavid 1.33 Double32_t fFBrem; //[0,0,14]brem fraction
179     Double32_t fHadronicOverEm; //[0,0,14]hadronic over em fraction *DEPRECATED*
180     Double32_t fHcalDepth1OverEcal; //[0,0,14]hadronic over em fraction depth1
181     Double32_t fHcalDepth2OverEcal; //[0,0,14]hadronic over em fraction depth2
182 loizides 1.29 Double32_t fNumberOfClusters; //[0,0,14]number of associated clusters
183 bendavid 1.33 Double32_t fE15; //[0,0,14]1x5 crystal energy
184     Double32_t fE25Max; //[0,0,14]2x5 crystal energy (max of two possible sums)
185 loizides 1.29 Double32_t fE55; //[0,0,14]5x5 crystal energy
186     Double32_t fCovEtaEta; //[0,0,14]variance eta-eta
187     Double32_t fCoviEtaiEta; //[0,0,14]covariance eta-eta (in crystals)
188 bendavid 1.33 Double32_t fCaloIsolation; //[0,0,14](non-jura) ecal isolation based on rechits dR 0.3 *DEPRECATED*
189     Double32_t fHcalJurassicIsolation; //[0,0,14]hcal jura iso dR 0.4 *DEPRECATED*
190     Double32_t fHcalDepth1TowerSumEtDr04; //[0,0,14]hcal depth1 tower based isolation dR 0.4
191     Double32_t fHcalDepth2TowerSumEtDr04; //[0,0,14]hcal depth2 tower based isolation dR 0.4
192     Double32_t fEcalJurassicIsolation; //[0,0,14]ecal jura iso dR 0.4 *RENAMING*
193     Double32_t fTrackIsolationDr04; //[0,0,14]isolation based on tracks dR 0.4
194     Double32_t fCaloTowerIsolation; //[0,0,14]hcal tower based isolation dR 0.3 *DEPRECATED*
195     Double32_t fHcalDepth1TowerSumEtDr03; //[0,0,14]hcal depth1 tower based isolation dR 0.3
196     Double32_t fHcalDepth2TowerSumEtDr03; //[0,0,14]hcal depth2 tower based isolation dR 0.3
197     Double32_t fEcalRecHitSumEtDr03; //[0,0,14]ecal jura iso dR 0.3
198     Double32_t fTrackIsolation; //[0,0,14]isolation based on tracks dR 0.3 *RENAMING*
199 loizides 1.29 Double32_t fPassLooseID; //[0,0,14]pass loose id
200     Double32_t fPassTightID; //[0,0,14]pass tight id
201     Double32_t fIDLikelihood; //[0,0,14]likelihood value
202     Double32_t fPIn; //[0,0,14]momentum at vtx
203     Double32_t fPOut; //[0,0,14]momentum at ecal surface
204 bendavid 1.33 Double32_t fFracSharedHits; //[0,0,14]fraction of shared hits btw gsf and std. track
205     Double32_t fMva; //[0,0,14] pflow mva output
206 loizides 1.29 Bool_t fIsEnergyScaleCorrected; //class dependent escale correction
207     Bool_t fIsMomentumCorrected; //class dependent E-p combination
208     Int_t fClassification; //classification (see GsfElectron.h)
209 bendavid 1.33 Bool_t fIsEB; //is ECAL barrel
210     Bool_t fIsEE; //is ECAL Endcap
211     Bool_t fIsEBEEGap; //is in barrel-endcap gap
212     Bool_t fIsEBEtaGap; //is in EB eta module gap
213     Bool_t fIsEBPhiGap; //is in EB phi module gap
214     Bool_t fIsEEDeeGap; //is in EE dee gap
215     Bool_t fIsEERingGap; //is in EE ring gap
216     Bool_t fIsEcalDriven; //is std. egamma electron
217     Bool_t fIsTrackerDriven; //is pflow track-seeded electron
218 sixie 1.13
219 bendavid 1.33 ClassDef(Electron, 2) // Electron class
220 bendavid 1.1 };
221 loizides 1.4 }
222 loizides 1.8
223 loizides 1.9 //--------------------------------------------------------------------------------------------------
224 loizides 1.10 inline const mithep::Track *mithep::Electron::BestTrk() const
225 loizides 1.9 {
226 loizides 1.10 // Return "best" track.
227    
228 bendavid 1.24 if (HasGsfTrk())
229 loizides 1.10 return GsfTrk();
230 bendavid 1.24 else if (HasTrackerTrk())
231 loizides 1.10 return TrackerTrk();
232 loizides 1.9
233 loizides 1.10 return 0;
234 loizides 1.9 }
235    
236 loizides 1.25 //--------------------------------------------------------------------------------------------------
237     inline void mithep::Electron::GetMom() const
238 sixie 1.14 {
239 bendavid 1.31 // Get momentum of the electron. We use an explicitly stored three vector, with the pdg mass,
240     // since the momentum vector may be computed non-trivially in cmssw
241 sixie 1.14
242 bendavid 1.31 fCachedMom.SetCoordinates(fMom.Rho(),fMom.Eta(),fMom.Phi(),GetMass());
243 bendavid 1.18 }
244    
245     //-------------------------------------------------------------------------------------------------
246 loizides 1.25 inline Double_t mithep::Electron::ESeedClusterOverPIn() const
247 bendavid 1.18 {
248 loizides 1.25 // Return energy of the SuperCluster seed divided by the magnitude
249     // of the track momentum at the vertex.
250    
251     return SCluster()->Seed()->Energy() / PIn();
252 bendavid 1.18 }
253 bendavid 1.31
254     //-------------------------------------------------------------------------------------------------
255     inline void mithep::Electron::SetPtEtaPhi(Double_t pt, Double_t eta, Double_t phi)
256     {
257     // Set three-vector
258    
259     fMom.Set(pt,eta,phi);
260     ClearMom();
261     }
262 loizides 1.8 #endif