ATLAS Offline Software
Loading...
Searching...
No Matches
EMErrorDetail.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6#include "GaudiKernel/GaudiException.h"
9#include "AthLinks/ElementLink.h"
10#include "TrkTrack/Track.h"
18
19#include <cmath>
20
21
22//const double DEFAULT_MOMENTUM = 1e11;
23
25
28
29const std::string& EMErrorDetail::className() const {
30 return s_className;
31}
32
33// ===============================================================
35
36
37 using elParams = std::pair<egammaParameters::ParamDef, int>;
38
40 std::vector<elParams>::const_iterator p = m_parametersInt.begin();
41
42 for (;p !=m_parametersInt.end(); ++p) {
43 if ( (*p).first == key ){
44 result = (*p).second;
45 break;
46 }
47 }
48 return result;
49}
50
51// ==================================================================
53
54 if ( hasIntParameter(key) ) {
55 return (double) intParameter(key);
56 }
57
58 using elParams = std::pair<egammaParameters::ParamDef, double>;
59
61 std::vector<elParams>::const_iterator p = m_parameters.begin();
62
63 for (;p !=m_parameters.end(); ++p) {
64 if ( (*p).first == key ) {
65 result = (*p).second;
66 break;
67 }
68 }
69
70 return result;
71}
72
73// ===================================================================
74void EMErrorDetail::set_parameterInt(egammaParameters::ParamDef key, int value, bool overwrite) {
75
76 using elParams = std::pair<egammaParameters::ParamDef, int>;
77
78 std::vector<elParams>::iterator p = m_parametersInt.begin();
79
80 for (;p !=m_parametersInt.end(); ++p) {
81 if ( (*p).first == key ) break;
82 }
83
84 if ( p == m_parametersInt.end() ) {
85 m_parametersInt.emplace_back(key,value );
86 }
87 else {
88 if ( overwrite ) {
89 (*p).second = value;
90 }
91 else {
92 throw GaudiException("parameter not saved", "EMErrorDetail::set_parameter(...)", StatusCode::FAILURE);
93 }
94 }
95}
96
97// ======================================================================
98void EMErrorDetail::set_parameter(egammaParameters::ParamDef key, double value, bool overwrite) {
99
100 if ( hasIntParameter(key) ) {
101 set_parameterInt(key,(int)value,overwrite);
102 }
103
104 using elParams = std::pair<egammaParameters::ParamDef, double>;
105 std::vector<elParams>::iterator p = m_parameters.begin();
106
107 for (;p !=m_parameters.end(); ++p) {
108 if ( (*p).first == key ) break;
109 }
110
111 if ( p == m_parameters.end() ) {
112 m_parameters.emplace_back(key,value );
113 }
114 else {
115 if ( overwrite ) {
116 (*p).second = value;
117 }
118 else {
119 throw GaudiException("parameter not saved", "EMErrorDetail::set_parameter(...)", StatusCode::FAILURE);
120 }
121 }
122
123}
124
125// =======================================================================
126bool EMErrorDetail::isElectron(const egamma* eg, bool forcePhoton)
127{
128 return (!forcePhoton && ((eg->conversion() != nullptr) || (eg->trackParticle() != nullptr)));
129}
130
131
132// ===================================================================
133double EMErrorDetail::caloEta(const egamma* eg, double clusterEta) {
134
135 const double etaPointing = eg->detailValue(egammaParameters::etap);
136 if ( fabs(etaPointing - clusterEta ) < 0.15 ) {
137 return etaPointing;
138 }
139 return clusterEta;
140
141}
142
143
144// ====================================================================
145AmgSymMatrix(3) EMErrorDetail::getEMPhotonErrorMatrix() const {
146
147 // Make a 3x3 matrix that is filled with zero's alternatively we could fill it with the identity matrix;
148 // Chosen the identity matrix option (second argument = 1)
149 AmgSymMatrix(3) hepSymMatrix;
150 hepSymMatrix.setZero();
151 // Fill the matrix E,eta,phi,M
152 hepSymMatrix(1,1) = EMphoton_CovEclusEclus();
153 hepSymMatrix(2,2) = EMphoton_Covetaeta();
154 hepSymMatrix(3,3) = EMphoton_Covphiphi();
155
156 hepSymMatrix.fillSymmetric(1,2,EMphoton_CovetaEclus());
157 hepSymMatrix.fillSymmetric(1,3,EMphoton_CovphiEclus());
158 hepSymMatrix.fillSymmetric(2,3, EMphoton_Covetaphi());
159
160 return hepSymMatrix;
161
162}
163
164// ====================================================================
166{
167 // see if combined matrix exists, if so, return it, otherwise,
168 // it's an unconverted photon, so just return the photon error
169 // matrix.
171 return getEMPhotonErrorMatrix();
172 }
173 return getEMTrackCombinedErrorMatrix();
174
175}
176
177// ====================================================================
179{
180 // this still looks for combined matrix to make the decision
182 return getEMPhotonErrorMatrix();
183 }
184 return getEMTrackUncombinedErrorMatrix();
185
186}
187
188// ====================================================================
189AmgSymMatrix(4) EMErrorDetail::get4x4CombinedErrorMatrix() const
190{
191 // see if combined matrix exists, if so, return it, otherwise,
192 // it's an unconverted photon, so just return the photon error
193 // matrix.
194 if (EMtrack_comb_CovPP() == egammaParameters::EgParamUndefined) {
195 return get4x4EMPhotonErrorMatrix();
196 }
197 return get4x4EMTrackCombinedErrorMatrix();
198
199}
200
201// ====================================================================
202AmgSymMatrix(4) EMErrorDetail::get4x4UncombinedErrorMatrix() const
203{
204 // this still looks for combined matrix to make the decision
205 if (EMtrack_comb_CovPP() == egammaParameters::EgParamUndefined) {
206 return get4x4EMPhotonErrorMatrix();
207 }
208 return get4x4EMTrackUncombinedErrorMatrix();
209
210}
211
212// ====================================================================
213AmgSymMatrix(5) EMErrorDetail::getEMTrackCombinedErrorMatrix() const {
214
215 // Make a 5x5 matrix that is filled with zero's alternatively we could fill it with the identity matrix;
216 // Chosen the identity matrix option
217 AmgSymMatrix(5) hepSymMatrix;
218 hepSymMatrix.setZero();
219 // Fill the matrix
220 hepSymMatrix(0,0) = EMtrack_comb_Covd0d0();
221 hepSymMatrix(1,1) = EMtrack_comb_Covz0z0();
222 hepSymMatrix(2,2) = EMtrack_comb_Covphiphi();
223 hepSymMatrix(3,3) = EMtrack_comb_Covetaeta();
224 hepSymMatrix(4,4) = EMtrack_comb_CovPP();
225
226
227 hepSymMatrix.fillSymmetric(0,1, EMtrack_comb_Covd0z0());
228 hepSymMatrix.fillSymmetric(0,2 ,EMtrack_comb_Covd0phi());
229 hepSymMatrix.fillSymmetric(0,3, EMtrack_comb_Covd0eta());
230 hepSymMatrix.fillSymmetric(0,4, EMtrack_comb_Covd0P());
231 hepSymMatrix.fillSymmetric(1,2, EMtrack_comb_Covz0phi());
232 hepSymMatrix.fillSymmetric(1,3, EMtrack_comb_Covz0eta());
233 hepSymMatrix.fillSymmetric(1,4, EMtrack_comb_Covz0P());
234 hepSymMatrix.fillSymmetric(2,3, EMtrack_comb_Covphieta());
235 hepSymMatrix.fillSymmetric(2,4, EMtrack_comb_CovphiP());
236 hepSymMatrix.fillSymmetric(3,4, EMtrack_comb_CovetaP());
237
238 return hepSymMatrix;
239}
240
241// ====================================================================
242AmgSymMatrix(5) EMErrorDetail::getEMTrackUncombinedErrorMatrix() const {
243
244 // Make a 5x5 matrix that is filled with zero's alternatively we could fill it with the identity matrix;
245 // Chosen the identity matrix option
246 // Fill the matrix
247 if (hasSiliconHits()) {
248 AmgSymMatrix(5) hepSymMatrix;
249 hepSymMatrix.setZero();
250 // use tracks for everything but energy
251 hepSymMatrix(0,0) = EMtrack_perigee_Covd0d0();
252 hepSymMatrix(1,1) = EMtrack_perigee_Covz0z0();
253 hepSymMatrix(2,2) = EMtrack_perigee_Covphiphi();
254 hepSymMatrix(3,3) = EMtrack_perigee_Covthetatheta();
255 hepSymMatrix(4,4) = EMphoton_CovEclusEclus();
256 //Symmetric fill
257 hepSymMatrix.fillSymmetric(0,1,EMtrack_perigee_Covd0z0());
258 hepSymMatrix.fillSymmetric(0,2,EMtrack_perigee_Covd0phi());
259 hepSymMatrix.fillSymmetric(0,3,EMtrack_perigee_Covd0theta()); // note theta
260 hepSymMatrix.fillSymmetric(0,4,0.0);
261 hepSymMatrix.fillSymmetric(1,2,EMtrack_perigee_Covz0phi());
262 hepSymMatrix.fillSymmetric(1,3,EMtrack_perigee_Covz0theta());
263 hepSymMatrix.fillSymmetric(1,4,0.0);
264 hepSymMatrix.fillSymmetric(2,3,EMtrack_perigee_Covphitheta());
265 hepSymMatrix.fillSymmetric(2,4,0.0);
266 hepSymMatrix.fillSymmetric(3,4,0.0);
267
268 //jacob
269 AmgSymMatrix(5) jacob;
270 jacob.setIdentity();
271 jacob(3,3) = (-1./sin(EMtrack_perigee_theta())); // deta/dtheta
272 //similarity
273 return jacob*hepSymMatrix*jacob.transpose();
274
275 }
276 AmgSymMatrix(5) hepSymMatrix;
277 hepSymMatrix.setIdentity();
278 // use cluster for energy and eta
279 hepSymMatrix(0,0) = EMtrack_perigee_Covd0d0();
280 hepSymMatrix(1,1) = EMtrack_perigee_Covz0z0();
281 hepSymMatrix(2,2) = EMtrack_perigee_Covphiphi();
282 hepSymMatrix(3,3) = EMphoton_Covetaeta();
283 hepSymMatrix(4,4) = EMphoton_CovEclusEclus();
284
285 hepSymMatrix.fillSymmetric(0,1,EMtrack_perigee_Covd0z0());
286 hepSymMatrix.fillSymmetric(0,2,EMtrack_perigee_Covd0phi());
287 hepSymMatrix.fillSymmetric(0,3,0.0);
288 hepSymMatrix.fillSymmetric(0,4,0.0);
289 hepSymMatrix.fillSymmetric(1,2,EMtrack_perigee_Covz0phi());
290 hepSymMatrix.fillSymmetric(1,3,0.0);
291 hepSymMatrix.fillSymmetric(1,4,0.0);
292 hepSymMatrix.fillSymmetric(2,3,0.0);
293 hepSymMatrix.fillSymmetric(2,4,0.0);
294 hepSymMatrix.fillSymmetric(3,4,EMphoton_CovetaEclus());
295
296 return hepSymMatrix;
297
298
299}
300
301// ====================================================================
302AmgSymMatrix(4) EMErrorDetail::get4x4EMTrackCombinedErrorMatrix() const {
303
304 // E,eta,phi,M representation.
305 AmgSymMatrix(4) hepSymMatrix;
306 hepSymMatrix.setZero();
307 // Fill the matrix
308 hepSymMatrix(0,0) = EMtrack_comb_CovPP();
309 hepSymMatrix(1,1) = EMtrack_comb_Covetaeta();
310 hepSymMatrix(2,2) = EMtrack_comb_Covphiphi();
311
312 hepSymMatrix.fillSymmetric(0,1,EMtrack_comb_CovetaP());
313 hepSymMatrix.fillSymmetric(0,2,EMtrack_comb_CovphiP());
314 hepSymMatrix.fillSymmetric(1,2,EMtrack_comb_Covphieta());
315
316 return hepSymMatrix;
317}
318
319// ====================================================================
320AmgSymMatrix(4) EMErrorDetail::get4x4EMTrackUncombinedErrorMatrix() const {
321
322 // E,eta,phi,M representation.
323 if (hasSiliconHits()) {
324 AmgSymMatrix(4) hepSymMatrix;
325 hepSymMatrix.setZero();
326 // use tracks for everything but energy
327 hepSymMatrix(0,0) = EMphoton_CovEclusEclus();
328 hepSymMatrix(1,1) = EMtrack_perigee_Covthetatheta();
329 hepSymMatrix(2,2) = EMtrack_perigee_Covphiphi();
330 //fill symmetric
331 hepSymMatrix.fillSymmetric(1,2, EMtrack_perigee_Covphitheta());
332
333 //jacobian
334 AmgSymMatrix(4) jacob;
335 jacob.setIdentity();
336 jacob(1,1) = (-1./sin(EMtrack_perigee_theta())); // deta/dtheta
337 //similarity
338 return jacob*hepSymMatrix*jacob.transpose();
339 }
340
341 AmgSymMatrix(4) hepSymMatrix;
342 hepSymMatrix.setZero();
343 // use cluster for energy and eta
344 hepSymMatrix(0,0) = EMphoton_CovEclusEclus();
345 hepSymMatrix(1,1) = EMphoton_Covetaeta();
346 hepSymMatrix(2,2) = EMtrack_perigee_Covphiphi();
347
348 hepSymMatrix.fillSymmetric(0,1, EMphoton_CovetaEclus());
349
350 return hepSymMatrix;
351
352
353}
354
355// ====================================================================
356AmgSymMatrix(4) EMErrorDetail::get4x4EMPhotonErrorMatrix() const {
357
358 // E,eta,phi,M representation.
359 AmgSymMatrix(4) hepSymMatrix;
360 hepSymMatrix.setZero();
361
362 // Fill the matrix
363 hepSymMatrix(0,0) = EMphoton_CovEclusEclus();
364 hepSymMatrix(1,1) = EMphoton_Covetaeta();
365 hepSymMatrix(1,2) = EMphoton_Covetaphi();
366 hepSymMatrix(2,2) = EMphoton_Covphiphi();
367
368 hepSymMatrix.fillSymmetric(0,1, EMphoton_CovetaEclus());
369 hepSymMatrix.fillSymmetric(0,3, EMphoton_CovphiEclus());
370
371 return hepSymMatrix;
372
373}
374// ======================================================================
375bool EMErrorDetail::hasIntParameter(egammaParameters::ParamDef key) const {
376 switch(key) {
379 return true;
380 default:
381 return false;
382 }
383}
384
385// =======================================================================
387 if(hasIntParameter(key)) return true;
388 switch (key) {
405
422
438
442
449 return true;
450 // the following are depricated
463 return true;
464 default:
465 return false;
466 }
467}
468
469
470/* Get parameters of unconverted photon */
473// double EMErrorDetail::EMconvertedphoton_perigee_Eclus() const {return parameter(egammaParameters::EMConvertedPhoton_Eclus) ;}
478
483// double EMErrorDetail::EMconvertedphoton_perigee_Covd0Eclus () const {return parameter(egammaParameters::EMConvertedPhoton_Covd0Eclus) ;}
487// double EMErrorDetail::EMconvertedphoton_perigee_Covz0Eclus () const {return parameter(egammaParameters::EMConvertedPhoton_Covz0Eclus) ;}
490// double EMErrorDetail::EMconvertedphoton_perigee_CovphiEclus () const {return parameter(egammaParameters::EMConvertedPhoton_CovphiEclus) ;}
492// double EMErrorDetail::EMconvertedphoton_perigee_CovthetaEclus () const {return parameter(egammaParameters::EMConvertedPhoton_CovthetaEclus) ;}
493// double EMErrorDetail::EMconvertedphoton_perigee_CovEclusEclus () const {return parameter(egammaParameters::EMConvertedPhoton_CovEclusEclus) ;}
494
495/* Set parameters of unconverted photons */
498// void EMErrorDetail::EMconvertedphoton_perigee_Eclus (double x) {set_parameter(egammaParameters::EMConvertedPhoton_Eclus, x, true) ;}
503
508// void EMErrorDetail::EMconvertedphoton_perigee_Covd0Eclus (double x) {set_parameter(egammaParameters::EMConvertedPhoton_Covd0Eclus, x, true) ;}
512// void EMErrorDetail::EMconvertedphoton_perigee_Covz0Eclus (double x) {set_parameter(egammaParameters::EMConvertedPhoton_Covz0Eclus, x, true) ;}
515// void EMErrorDetail::EMconvertedphoton_perigee_CovphiEclus (double x) {set_parameter(egammaParameters::EMConvertedPhoton_CovphiEclus, x, true) ;}
517// void EMErrorDetail::EMconvertedphoton_perigee_CovthetaEclus (double x) {set_parameter(egammaParameters::EMConvertedPhoton_CovthetaEclus, x, true) ;}
518// void EMErrorDetail::EMconvertedphoton_perigee_CovEclusEclus (double x) {set_parameter(egammaParameters::EMConvertedPhoton_CovEclusEclus, x, true) ;}
519
520
521/* Get parameters of tracks */
524// double EMErrorDetail::EMtrack_perigee_Eclus() const {return parameter(egammaParameters::EMTrack_Eclus) ;}
529
534// double EMErrorDetail::EMtrack_perigee_Covd0Eclus () const {return parameter(egammaParameters::EMTrack_Covd0Eclus) ;}
538// double EMErrorDetail::EMtrack_perigee_Covz0Eclus () const {return parameter(egammaParameters::EMTrack_Covz0Eclus) ;}
541// double EMErrorDetail::EMtrack_perigee_CovphiEclus () const {return parameter(egammaParameters::EMTrack_CovphiEclus) ;}
543// double EMErrorDetail::EMtrack_perigee_CovthetaEclus () const {return parameter(egammaParameters::EMTrack_CovthetaEclus) ;}
544// double EMErrorDetail::EMtrack_perigee_CovEclusEclus () const {return parameter(egammaParameters::EMTrack_CovEclusEclus) ;}
545
546/* Get parameters of tracks from the combined method (track and cluster information combined)*/
562
563
564
565/* Set parameters of tracks */
568// void EMErrorDetail::EMtrack_perigee_Eclus (double x) {set_parameter(egammaParameters::EMTrack_Eclus, x, true) ;}
573
578// void EMErrorDetail::EMtrack_perigee_Covd0Eclus (double x) {set_parameter(egammaParameters::EMTrack_Covd0Eclus, x, true) ;}
582// void EMErrorDetail::EMtrack_perigee_Covz0Eclus (double x) {set_parameter(egammaParameters::EMTrack_Covz0Eclus, x, true) ;}
585// void EMErrorDetail::EMtrack_perigee_CovphiEclus (double x) {set_parameter(egammaParameters::EMTrack_CovphiEclus, x, true) ;}
587// void EMErrorDetail::EMtrack_perigee_CovthetaEclus (double x) {set_parameter(egammaParameters::EMTrack_CovthetaEclus, x, true) ;}
588// void EMErrorDetail::EMtrack_perigee_CovEclusEclus (double x) {set_parameter(egammaParameters::EMTrack_CovEclusEclus, x, true) ;}
589
590
606
607/* Get parameters of photons */
611
618
619/* Set parameters of photons */
623
630
633
636
637
638AmgSymMatrix(5) EMErrorDetail::P5Jacobiand0z0PhiThetaE2d0z0PhiEtaE(const double theta)
639{
640 AmgSymMatrix(5) m;
641 m.setIdentity();
642 m(3,3) = (-1./sin(theta)); // deta/dtheta
643 return m;
644}
645
646AmgSymMatrix(4) EMErrorDetail::P4JacobiandEThetaPhiM2EEtaPhiM(const double theta)
647{
648 AmgSymMatrix(4) m;
649 m.setIdentity();
650 m(1,1) = (-1./sin(theta)); // deta/dtheta
651 return m;
652}
653
655
656// LocalWords: hepSymMatrix
Scalar theta() const
theta method
void fillSymmetric(size_t i, size_t j, Scalar value)
method to fill elements for a symmetric matrix
An interface for getting the name of a class as a string.
Provide an interface for finding inheritance information at run time.
#define SG_ADD_BASE(D, B)
Add a new base class B to class D.
#define AmgSymMatrix(dim)
#define x
static std::string name()
Return the name of class T as a string.
double EMtrack_comb_Covphieta() const
double EMphoton_Covetaeta() const
Covariance matrix item (Eta,Eta)
double EMconvertedphoton_perigee_Covphiphi() const
double EMphoton_eta() const
Set the Covariance matrix item (theta,Eclus)
double EMtrack_comb_CovphiP() const
virtual int intParameter(egammaParameters::ParamDef) const
virtual const std::string & className() const
double EMtrack_perigee_d0() const
transverse impact parameter (distance of closest approach)
Amg::MatrixX getCombinedErrorMatrix() const
E/P combined error matrix, natural size.
double EMtrack_comb_Covz0P() const
double EMtrack_comb_Covd0phi() const
static double caloEta(const egamma *, double clusterEta)
Get the error on cluster energy, eta and phi.
double EMconvertedphoton_perigee_Covz0theta() const
double EMtrack_comb_Covz0z0() const
double EMtrack_perigee_Covz0theta() const
Covariance matrix item (z0,theta)
std::vector< std::pair< egammaParameters::ParamDef, double > > m_parameters
double EMphoton_Eclus() const
cluster energy
double EMphoton_Covetaphi() const
Covariance matrix item (Eta,Phi)
virtual double parameter(egammaParameters::ParamDef) const
int hasSiliconHits() const
Does the track of vertex have silicon hits.
double EMtrack_perigee_momentum() const
momentum of the track fit
EMErrorDetail()
Default constructor.
double EMtrack_perigee_Covd0phi() const
Covariance matrix item (d0,phi)
Amg::MatrixX getUncombinedErrorMatrix() const
E/P combined error matrix, natural size.
double EMtrack_perigee_Covd0d0() const
Covariance matrix item (d0,d0)
double EMconvertedphoton_perigee_eta() const
double EMtrack_perigee_Covz0z0() const
Covariance matrix item (d0,Eclus)
double EMconvertedphoton_perigee_Covphitheta() const
virtual bool hasParameter(egammaParameters::ParamDef) const
double EMtrack_comb_Covphiphi() const
double EMphoton_phi0() const
cluster phi
double EMconvertedphoton_perigee_Covd0z0() const
void set_parameter(egammaParameters::ParamDef, double, bool overwrite=false)
general set method for parameters
double EMconvertedphoton_perigee_d0() const
double EMphoton_Covphiphi() const
Covariance matrix item (phi,phi)
double EMtrack_perigee_Covd0z0() const
Covariance matrix item (d0,z0)
void set_hasSiliconHits(int x)
set whether the track of vertex have silicon hits
double EMtrack_comb_Covetaeta() const
static const std::string s_className
interfaces
void set_parameterInt(egammaParameters::ParamDef, int, bool overwrite=false)
double EMtrack_perigee_Covthetatheta() const
Covariance matrix item (phi,Eclus)
double EMtrack_perigee_eta() const
eta of the track fit
double EMtrack_perigee_Covz0phi() const
Covariance matrix item (z0,phi)
double EMtrack_comb_Covd0z0() const
virtual bool hasIntParameter(egammaParameters::ParamDef) const
double EMconvertedphoton_perigee_Covd0phi() const
double EMconvertedphoton_perigee_Covthetatheta() const
static bool isElectron(const egamma *, bool forcePhoton)
Obsolete Fill the perigree parameter for converted photon.
double EMconvertedphoton_perigee_Covz0phi() const
double EMtrack_perigee_Covd0theta() const
Covariance matrix item (d0,theta)
double EMphoton_CovphiEclus() const
Covariance matrix item (phi,Eclus)
double EMconvertedphoton_perigee_Covz0z0() const
void set_linkIndex(int)
Set link index.
double EMconvertedphoton_perigee_Covd0theta() const
double EMphoton_CovEclusEclus() const
Covariance matrix item (theta,theta)
double EMtrack_comb_Covd0P() const
double EMconvertedphoton_perigee_z0() const
double EMtrack_perigee_Covphitheta() const
Covariance matrix item (phi,theta)
double EMtrack_perigee_theta() const
theta of the track fit
double EMtrack_comb_CovPP() const
double EMtrack_comb_Covd0d0() const
double EMtrack_comb_Covz0eta() const
double EMtrack_perigee_z0() const
cluster energy
double EMconvertedphoton_perigee_theta() const
int linkIndex() const
link index
double EMconvertedphoton_perigee_momentum() const
double EMtrack_comb_Covd0eta() const
double EMconvertedphoton_perigee_Covd0d0() const
std::vector< std::pair< egammaParameters::ParamDef, int > > m_parametersInt
double EMconvertedphoton_perigee_phi0() const
double EMphoton_CovetaEclus() const
Covariance matrix item (Eta,Eclus)
double EMtrack_comb_Covz0phi() const
double EMtrack_comb_CovetaP() const
double EMtrack_perigee_phi0() const
azimuth angle of the momentum at the point of closest approach
double EMtrack_perigee_Covphiphi() const
Covariance matrix item (z0,Eclus)
Base class for detailed egamma information.
Definition egDetail.h:29
egDetail()=default
Default constructor.
elec/gamma data class.
Definition egamma.h:58
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
@ EMConvertedPhoton_Covd0z0
converted photon covariance matrix item ( )
@ EMPhoton_CovEclusEclus
covariance matrix photon (E, E)
@ EMTrack_Combined_Covd0d0
track combined covariance matrix item (do,d0)
@ EMConvertedPhoton_eta
the eta of the converted photon
@ EMTrack_Covphitheta
track perigee covariance matrix item (phi,theta)
@ etap
pointing eta reconstructed from the cluster (first and second sampling)
@ EMConvertedPhoton_Covthetatheta
converted photon covariance matrix item (theta,theta)
@ EMPhoton_phi0
photon phi
@ EMTrack_Covd0Eclus
fitted track perigee covariance matrix item (d0,E)
@ EMTrack_CovEclusEclus
track perigee covariance matrix item (E,E)
@ EMPhoton_CovetaEclus
covariance matrix photon (eta, E)
@ EMPhoton_Covetaphi
covariance matrix photon (eta, phi)
@ EMTrack_Covz0Eclus
track perigee covariance matrix item (z0,E)
@ EMConvertedPhoton_momentum
momentum of the converted photon
@ EMConvertedPhoton_Covd0phi
converted photon covariance matrix item ( )
@ EMConvertedPhoton_Covz0z0
converted photon covariance matrix item (z0,z0)
@ EMTrack_Combined_Covz0phi
track combined covariance matrix item (z0,phi)
@ EMTrack_Covd0theta
track perigee covariance matrix item (d0,theta)
@ EMConvertedPhoton_Eclus
E estimate.
@ EMTrack_Combined_CovetaP
track combined covariance matrix item (eta,P)
@ EMTrack_Combined_Covz0P
track combined covariance matrix item (z0,P)
@ EMConvertedPhoton_Covphitheta
converted photon covariance matrix item (phi,theta)
@ EMTrack_Covphiphi
track perigee covariance matrix item (phi,phi)
@ EMTrack_Combined_Covd0phi
track combined covariance matrix item (d0,phi)
@ EMTrack_Combined_Covz0eta
track combined covariance matrix item (z0,eta)
@ EMTrack_CovthetaEclus
track perigee covariance matrix item (theta,E)
@ EMConvertedPhoton_z0
the z value of the converted photon
@ EMTrack_Eclus
Cluster energy.
@ EMTrack_Combined_CovphiP
track combined covariance matrix item (phi,P)
@ EMTrack_theta
theta of the track
@ EMConvertedPhoton_theta
theta of the converted photon
@ EMTrack_Combined_Covd0eta
track combined covariance matrix item (d0,eta)
@ EMTrack_Combined_Covphieta
track combined covariance matrix item (phi,eta)
@ EMPhoton_CovphiEclus
covariance matrix photon (phi, E)
@ EMPhoton_Covphiphi
covariance matrix photon (phi, phi)
@ EMTrack_d0
transverse impact parameter (distance of closest approach)
@ EMTrack_Covz0theta
track perigee covariance matrix item (z0,theta)
@ EMTrack_momentum
track momentum
@ EMTrack_Combined_Covphiphi
track combined covariance matrix item (phi,phi)
@ EMConvertedPhoton_Covphiphi
converted photon covariance matrix item (phi,phi)
@ EMPhoton_eta
photon eta
@ EMTrack_Combined_Covetaeta
track combined covariance matrix item (eta,eta)
@ EMPhoton_Covetaeta
covariance matrix photon (eta, eta)
@ EMTrack_phi0
azimuth angle of the momentum at the point of closest approach
@ EMConvertedPhoton_CovthetaEclus
converted photon covariance matrix item (theta,E)
@ EMConvertedPhoton_phi0
azimuth angle of the momentum at the point of closest approach
@ EMTrack_Covz0phi
track perigee covariance matrix item (z0,phi)
@ EMConvertedPhoton_Covz0theta
converted photon covariance matrix item (z0,theta)
@ EMPhoton_Eclus
photon energy
@ EMTrack_z0
the z value at the point of closest approach
@ EMTrack_Combined_Covz0z0
track combined covariance matrix item (z0,z0)
@ EMConvertedPhoton_Covd0d0
converted photon covariance matrix item ( )
@ linkIndex
link index for multiple track and vertex matches
@ EMConvertedPhoton_CovphiEclus
converted photon covariance matrix item (phi,E)
@ EMTrack_Covd0phi
track perigee covariance matrix item ( )
@ EMTrack_Combined_Covd0z0
track combined covariance matrix item (d0,z0)
@ EMTrack_Combined_CovPP
track combined covariance matrix item (P,P)
@ EMTrack_Covd0z0
track perigee covariance matrix item ( )
@ EMConvertedPhoton_d0
From EMErrorDetail.
@ EMConvertedPhoton_CovEclusEclus
converted photon covariance matrix item (E,E)
@ EMTrack_Covz0z0
track perigee covariance matrix item (z0,z0)
@ EMTrack_eta
the eta of the track
@ EMConvertedPhoton_Covd0Eclus
converted photon covariance matrix item (d0,E)
@ EMTrack_CovphiEclus
track perigee covariance matrix item (phi,E)
@ EMConvertedPhoton_Covz0phi
converted photon covariance matrix item (z0,phi)
@ EMConvertedPhoton_Covd0theta
converted photon covariance matrix item (d0,theta)
@ EMConvertedPhoton_Covz0Eclus
converted photon covariance matrix item (z0,E)
@ EMTrack_Combined_Covd0P
fitted track combined covariance matrix item (d0,P)
@ EMTrack_Covthetatheta
track perigee covariance matrix item (theta,theta)
@ EMTrack_Covd0d0
track perigee covariance matrix item ( )
const double EgParamUndefined