28 |
|
const SuperCluster *SCluster() const; |
29 |
|
FourVector Mom() const; |
30 |
|
const Track *Trk() const { return BestTrk(); } |
31 |
< |
Double_t E() const {return SCluster()->Energy(); } |
32 |
< |
|
31 |
> |
Double_t E() const; |
32 |
> |
Double_t P() const; |
33 |
> |
Double_t Pt() const; |
34 |
> |
Double_t Px() const; |
35 |
> |
Double_t Py() const; |
36 |
> |
Double_t Pz() const; |
37 |
|
|
38 |
|
Double_t Mass() const { return 0.51099892e-3; } |
39 |
|
Double_t ESuperClusterOverP() const { return fESuperClusterOverP; } |
40 |
|
Double_t ESeedClusterOverPout() const { return fESeedClusterOverPout; } |
41 |
+ |
Double_t ESeedClusterOverPIn() const; |
42 |
+ |
Double_t PIn() const { return fPIn; } |
43 |
+ |
Double_t POut() const { return fPOut; } |
44 |
|
Double_t DeltaEtaSuperClusterTrackAtVtx() const { return fDeltaEtaSuperClTrkAtVtx; } |
45 |
|
Double_t DeltaEtaSeedClusterTrackAtCalo() const { return fDeltaEtaSeedClTrkAtCalo; } |
46 |
|
Double_t DeltaPhiSuperClusterTrackAtVtx() const { return fDeltaPhiSuperClTrkAtVtx; } |
56 |
|
Double_t CovEtaPhi() const { return fCovEtaPhi; } |
57 |
|
Double_t CovPhiPhi() const { return fCovPhiPhi; } |
58 |
|
Double_t CaloIsolation() const { return fCaloIsolation; } |
59 |
+ |
Double_t CaloTowerIsolation() const { return fCaloTowerIsolation; } |
60 |
|
Double_t TrackIsolation() const { return fTrackIsolation; } |
61 |
< |
|
62 |
< |
Double_t ComputeTrackIsolation ( Double_t extRadius, Double_t intRadius, |
63 |
< |
Double_t ptLow, Double_t maxVtxZDist, |
64 |
< |
mithep::Collection<Track> *tracks ); |
65 |
< |
Double_t ComputeEcalIsolation ( Double_t coneSize, Double_t etLow, |
66 |
< |
mithep::Collection<BasicCluster> *basicClusters); |
61 |
> |
Double_t EcalJurassicIsolation() const { return fEcalJurassicIsolation; } |
62 |
> |
Double_t HcalJurassicIsolation() const { return fHcalJurassicIsolation; } |
63 |
> |
|
64 |
> |
Double_t PassLooseID() const { return fPassLooseID; } |
65 |
> |
Double_t PassTightID() const { return fPassTightID; } |
66 |
> |
Double_t IDLikelihood() const { return fIDLikelihood; } |
67 |
|
|
68 |
|
void SetGsfTrk(Track* t) { fGsfTrackRef = t; } |
69 |
|
void SetTrackerTrk(Track* t) { fTrackerTrackRef = t; } |
70 |
|
void SetSuperCluster(SuperCluster* sc) { fSuperClusterRef = sc; } |
71 |
|
void SetESuperClusterOverP(Double_t x) { fESuperClusterOverP = x; } |
72 |
|
void SetESeedClusterOverPout(Double_t x) { fESeedClusterOverPout = x; } |
73 |
+ |
void SetPIn(Double_t PIn) { fPIn = PIn; } |
74 |
+ |
void SetPOut(Double_t POut) { fPOut = POut; } |
75 |
|
void SetDeltaEtaSuperClusterTrackAtVtx(Double_t x) { fDeltaEtaSuperClTrkAtVtx = x; } |
76 |
|
void SetDeltaEtaSeedClusterTrackAtCalo(Double_t x) { fDeltaEtaSeedClTrkAtCalo = x; } |
77 |
|
void SetDeltaPhiSuperClusterTrackAtVtx(Double_t x) { fDeltaPhiSuperClTrkAtVtx = x; } |
87 |
|
void SetCovEtaPhi(Double_t CovEtaPhi) { fCovEtaPhi = CovEtaPhi; } |
88 |
|
void SetCovPhiPhi(Double_t CovPhiPhi) { fCovPhiPhi = CovPhiPhi; } |
89 |
|
void SetCaloIsolation(Double_t CaloIsolation) { fCaloIsolation = CaloIsolation; } |
90 |
+ |
void SetCaloTowerIsolation(Double_t TowerIso) { fCaloTowerIsolation = TowerIso; } |
91 |
|
void SetTrackIsolation(Double_t TrackIsolation) { fTrackIsolation = TrackIsolation;} |
92 |
+ |
void SetEcalJurassicIsolation(Double_t iso ) { fEcalJurassicIsolation = iso; } |
93 |
+ |
void SetHcalJurassicIsolation(Double_t iso ) { fHcalJurassicIsolation = iso; } |
94 |
+ |
void SetPassLooseID(Double_t passLooseID) { fPassLooseID = passLooseID; } |
95 |
+ |
void SetPassTightID(Double_t passTightID) { fPassTightID = passTightID; } |
96 |
+ |
void SetIDLikelihood(Double_t likelihood) { fIDLikelihood = likelihood; } |
97 |
|
|
98 |
|
protected: |
99 |
|
TRef fGsfTrackRef; //global combined track reference |
111 |
|
Double_t fIsMomentumCorrected; |
112 |
|
Double_t fNumberOfClusters; |
113 |
|
Double_t fClassification; |
98 |
– |
Double_t fSuperClusterPx; |
99 |
– |
Double_t fSuperClusterPy; |
100 |
– |
Double_t fSuperClusterPz; |
101 |
– |
Double_t fSuperClusterE; |
114 |
|
Double_t fE33; |
115 |
|
Double_t fE55; |
116 |
|
Double_t fCovEtaEta; |
117 |
|
Double_t fCovEtaPhi; |
118 |
|
Double_t fCovPhiPhi; |
119 |
|
Double_t fCaloIsolation; |
120 |
+ |
Double_t fCaloTowerIsolation; |
121 |
|
Double_t fTrackIsolation; |
122 |
+ |
Double_t fEcalJurassicIsolation; |
123 |
+ |
Double_t fHcalJurassicIsolation; |
124 |
+ |
Double_t fPassLooseID; |
125 |
+ |
Double_t fPassTightID; |
126 |
+ |
Double_t fIDLikelihood; |
127 |
+ |
Double_t fPIn; |
128 |
+ |
Double_t fPOut; |
129 |
|
|
130 |
|
ClassDef(Electron, 1) // Electron class |
131 |
|
}; |
173 |
|
// Return Momentum of the electron. We use the direction of the |
174 |
|
// Track and the Energy of the Super Cluster |
175 |
|
|
176 |
< |
double P = TMath::Sqrt( E()*E() - Mass()*Mass()); |
177 |
< |
return FourVector(P*sin(Trk()->Theta())*cos(Trk()->Phi()), |
178 |
< |
P*sin(Trk()->Theta())*sin(Trk()->Phi()), P*cos(Trk()->Theta()), E()); |
176 |
> |
return FourVector(Px(), Py(), Pz(), E()); |
177 |
> |
} |
178 |
> |
|
179 |
> |
//------------------------------------------------------------------------------------------------- |
180 |
> |
inline Double_t mithep::Electron::ESeedClusterOverPIn() const |
181 |
> |
{ |
182 |
> |
// Return Energy of the SuperCluster Seed Divided by the magnitude |
183 |
> |
// of the track momentum at the vertex |
184 |
> |
|
185 |
> |
return SCluster()->Seed()->Energy() / PIn(); |
186 |
> |
} |
187 |
> |
|
188 |
> |
//------------------------------------------------------------------------------------------------- |
189 |
> |
inline Double_t mithep::Electron::E() const |
190 |
> |
{ |
191 |
> |
// Return Energy of the SuperCluster if present |
192 |
> |
// or else return energy derived from the track |
193 |
> |
|
194 |
> |
const mithep::SuperCluster *sc = SCluster(); |
195 |
> |
if (sc) |
196 |
> |
return sc->Energy(); |
197 |
> |
else |
198 |
> |
return TMath::Sqrt(Trk()->P()*Trk()->P() + Mass()*Mass()); |
199 |
> |
} |
200 |
> |
|
201 |
> |
//------------------------------------------------------------------------------------------------- |
202 |
> |
inline Double_t mithep::Electron::P() const |
203 |
> |
{ |
204 |
> |
// Return momentum derived from the SuperCluster if present |
205 |
> |
// or else return momentum from the track |
206 |
> |
|
207 |
> |
const mithep::SuperCluster *sc = SCluster(); |
208 |
> |
if (sc) |
209 |
> |
return TMath::Sqrt(sc->Energy()*sc->Energy() - Mass()*Mass()); |
210 |
> |
else |
211 |
> |
return Trk()->P(); |
212 |
> |
} |
213 |
> |
|
214 |
> |
//------------------------------------------------------------------------------------------------- |
215 |
> |
inline Double_t mithep::Electron::Px() const |
216 |
> |
{ |
217 |
> |
return Pt()*TMath::Cos(Trk()->Phi()); |
218 |
> |
} |
219 |
> |
|
220 |
> |
//------------------------------------------------------------------------------------------------- |
221 |
> |
inline Double_t mithep::Electron::Py() const |
222 |
> |
{ |
223 |
> |
return Pt()*TMath::Sin(Trk()->Phi()); |
224 |
> |
} |
225 |
> |
|
226 |
> |
//------------------------------------------------------------------------------------------------- |
227 |
> |
inline Double_t mithep::Electron::Pz() const |
228 |
> |
{ |
229 |
> |
return P()*TMath::Sin(Trk()->Lambda()); |
230 |
> |
} |
231 |
> |
|
232 |
> |
//------------------------------------------------------------------------------------------------- |
233 |
> |
inline Double_t mithep::Electron::Pt() const |
234 |
> |
{ |
235 |
> |
return TMath::Abs(P()*TMath::Cos(Trk()->Lambda())); |
236 |
|
} |
237 |
|
#endif |