ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/Electron.h
Revision: 1.13
Committed: Fri Aug 8 11:17:13 2008 UTC (16 years, 8 months ago) by sixie
Content type: text/plain
Branch: MAIN
CVS Tags: MITHEP_2_0_x
Changes since 1.12: +94 -7 lines
Log Message:
Add object ID variables into the Electron and Muons. Add functions to compute track and ecal isolation to electrons

File Contents

# User Rev Content
1 bendavid 1.1 //--------------------------------------------------------------------------------------------------
2 sixie 1.13 // $Id: Electron.h,v 1.12 2008/07/29 07:55:40 loizides Exp $
3 bendavid 1.1 //
4 paus 1.3 // Electron
5 bendavid 1.1 //
6     // Details to be worked out...
7     //
8 sixie 1.13 // Authors: C.Loizides, J.Bendavid, S.Xie
9 bendavid 1.1 //--------------------------------------------------------------------------------------------------
10    
11 loizides 1.6 #ifndef DATATREE_ELECTRON_H
12     #define DATATREE_ELECTRON_H
13    
14 sixie 1.13 #include "MitAna/DataTree/interface/SuperCluster.h"
15 bendavid 1.11 #include "MitAna/DataTree/interface/ChargedParticle.h"
16 loizides 1.6
17 bendavid 1.1 namespace mithep
18     {
19 bendavid 1.11 class Electron : public ChargedParticle
20 bendavid 1.1 {
21     public:
22     Electron() {}
23     ~Electron() {}
24    
25 loizides 1.10 const Track *BestTrk() const;
26     const Track *GsfTrk() const;
27     const Track *TrackerTrk() const;
28 sixie 1.13 const SuperCluster *SCluster() const;
29 loizides 1.12 const Track *Trk() const { return BestTrk(); }
30 sixie 1.13
31     Double_t Mass() const { return 0.51099892e-3; }
32     Double_t ESuperClusterOverP() const { return fESuperClusterOverP; }
33     Double_t ESeedClusterOverPout() const { return fESeedClusterOverPout; }
34     Double_t DeltaEtaSuperClusterTrackAtVtx() const { return fDeltaEtaSuperClTrkAtVtx; }
35     Double_t DeltaEtaSeedClusterTrackAtCalo() const { return fDeltaEtaSeedClTrkAtCalo; }
36     Double_t DeltaPhiSuperClusterTrackAtVtx() const { return fDeltaPhiSuperClTrkAtVtx; }
37     Double_t DeltaPhiSeedClusterTrackAtCalo() const { return fDeltaPhiSeedClTrkAtCalo; }
38     Double_t HadronicOverEm() const { return fHadronicOverEm; }
39     Double_t IsEnergyScaleCorrected() const { return fIsEnergyScaleCorrected; }
40     Double_t IsMomentumCorrected() const { return fIsMomentumCorrected; }
41     Double_t NumberOfClusters() const { return fNumberOfClusters; }
42     Double_t Classification() const { return fClassification; }
43     Double_t SuperClusterPx() const { return fSuperClusterPx; }
44     Double_t SuperClusterPy() const { return fSuperClusterPy; }
45     Double_t SuperClusterPz() const { return fSuperClusterPz; }
46     Double_t SuperClusterE() const { return fSuperClusterE; }
47     Double_t E33() const { return fE33; }
48     Double_t E55() const { return fE55; }
49     Double_t CovEtaEta() const { return fCovEtaEta; }
50     Double_t CovEtaPhi() const { return fCovEtaPhi; }
51     Double_t CovPhiPhi() const { return fCovPhiPhi; }
52     Double_t CaloIsolation() const { return fCaloIsolation; }
53     Double_t TrackIsolation() const { return fTrackIsolation; }
54 loizides 1.8
55 sixie 1.13 Double_t ComputeTrackIsolation ( Double_t extRadius, Double_t intRadius,
56     Double_t ptLow, Double_t maxVtxZDist,
57     mithep::Collection<Track> *tracks );
58     Double_t ComputeEcalIsolation ( Double_t coneSize, Double_t etLow,
59     mithep::Collection<BasicCluster> *basicClusters);
60    
61     void SetGsfTrk(Track* t) { fGsfTrackRef = t; }
62     void SetTrackerTrk(Track* t) { fTrackerTrackRef = t; }
63     void SetSuperCluster(SuperCluster* sc) { fSuperClusterRef = sc; }
64     void SetESuperClusterOverP(Double_t x) { fESuperClusterOverP = x; }
65     void SetESeedClusterOverPout(Double_t x) { fESeedClusterOverPout = x; }
66     void SetDeltaEtaSuperClusterTrackAtVtx(Double_t x) { fDeltaEtaSuperClTrkAtVtx = x; }
67     void SetDeltaEtaSeedClusterTrackAtCalo(Double_t x) { fDeltaEtaSeedClTrkAtCalo = x; }
68     void SetDeltaPhiSuperClusterTrackAtVtx(Double_t x) { fDeltaPhiSuperClTrkAtVtx = x; }
69     void SetDeltaPhiSeedClusterTrackAtCalo(Double_t x) { fDeltaPhiSeedClTrkAtCalo = x; }
70     void SetHadronicOverEm(Double_t x) { fHadronicOverEm = x; }
71     void SetIsEnergyScaleCorrected(Double_t x) { fIsEnergyScaleCorrected = x; }
72     void SetIsMomentumCorrected(Double_t x) { fIsMomentumCorrected = x; }
73     void SetNumberOfClusters(Double_t x) { fNumberOfClusters = x; }
74     void SetClassification(Double_t x) { fClassification = x; }
75     void SetSuperClusterPx(Double_t SuperClusterPx) { fSuperClusterPx = SuperClusterPx;}
76     void SetSuperClusterPy(Double_t SuperClusterPy) { fSuperClusterPy = SuperClusterPy;}
77     void SetSuperClusterPz(Double_t SuperClusterPz) { fSuperClusterPz = SuperClusterPz;}
78     void SetSuperClusterE(Double_t SuperClusterE) { fSuperClusterE = SuperClusterE; }
79     void SetE33(Double_t E33) { fE33 = E33; }
80     void SetE55(Double_t E55) { fE55 = E55; }
81     void SetCovEtaEta(Double_t CovEtaEta) { fCovEtaEta = CovEtaEta; }
82     void SetCovEtaPhi(Double_t CovEtaPhi) { fCovEtaPhi = CovEtaPhi; }
83     void SetCovPhiPhi(Double_t CovPhiPhi) { fCovPhiPhi = CovPhiPhi; }
84     void SetCaloIsolation(Double_t CaloIsolation) { fCaloIsolation = CaloIsolation; }
85     void SetTrackIsolation(Double_t TrackIsolation) { fTrackIsolation = TrackIsolation;}
86    
87    
88    
89 loizides 1.8 protected:
90 loizides 1.9 TRef fGsfTrackRef; //global combined track reference
91     TRef fTrackerTrackRef; //tracker track reference
92 sixie 1.13 TRef fSuperClusterRef; //superCluster
93    
94     Double_t fESuperClusterOverP;
95     Double_t fESeedClusterOverPout;
96     Double_t fDeltaEtaSuperClTrkAtVtx;
97     Double_t fDeltaEtaSeedClTrkAtCalo;
98     Double_t fDeltaPhiSuperClTrkAtVtx;
99     Double_t fDeltaPhiSeedClTrkAtCalo;
100     Double_t fHadronicOverEm;
101     Double_t fIsEnergyScaleCorrected;
102     Double_t fIsMomentumCorrected;
103     Double_t fNumberOfClusters;
104     Double_t fClassification;
105     Double_t fSuperClusterPx;
106     Double_t fSuperClusterPy;
107     Double_t fSuperClusterPz;
108     Double_t fSuperClusterE;
109     Double_t fE33;
110     Double_t fE55;
111     Double_t fCovEtaEta;
112     Double_t fCovEtaPhi;
113     Double_t fCovPhiPhi;
114     Double_t fCaloIsolation;
115     Double_t fTrackIsolation;
116    
117 loizides 1.7 ClassDef(Electron, 1) // Electron class
118 bendavid 1.1 };
119 loizides 1.4 }
120 loizides 1.8
121 loizides 1.9 //--------------------------------------------------------------------------------------------------
122 loizides 1.10 inline const mithep::Track *mithep::Electron::BestTrk() const
123 loizides 1.9 {
124 loizides 1.10 // Return "best" track.
125    
126     if (GsfTrk())
127     return GsfTrk();
128     else if (TrackerTrk())
129     return TrackerTrk();
130 loizides 1.9
131 loizides 1.10 return 0;
132 loizides 1.9 }
133    
134     //--------------------------------------------------------------------------------------------------
135 loizides 1.10 inline const mithep::Track *mithep::Electron::GsfTrk() const
136 loizides 1.9 {
137 loizides 1.10 // Return global combined track.
138 loizides 1.9
139 loizides 1.10 return static_cast<const Track*>(fGsfTrackRef.GetObject());
140 loizides 1.9 }
141    
142     //--------------------------------------------------------------------------------------------------
143 loizides 1.10 inline const mithep::Track *mithep::Electron::TrackerTrk() const
144 loizides 1.9 {
145 loizides 1.10 // Return tracker track.
146 loizides 1.9
147 loizides 1.10 return static_cast<const Track*>(fTrackerTrackRef.GetObject());
148 loizides 1.9 }
149 sixie 1.13 //--------------------------------------------------------------------------------------------------
150     inline const mithep::SuperCluster *mithep::Electron::SCluster() const
151     {
152     // Return Super cluster
153    
154     return static_cast<const SuperCluster*>(fSuperClusterRef.GetObject());
155     }
156 loizides 1.8 #endif