|
ATLAS Offline Software
|
Go to the documentation of this file.
6 #include "GaudiKernel/GaudiException.h"
9 #include "AthLinks/ElementLink.h"
38 using elParams = std::pair<egammaParameters::ParamDef, int>;
44 if ( (*p).first ==
key ){
59 using elParams = std::pair<egammaParameters::ParamDef, double>;
62 std::vector<elParams>::const_iterator
p =
m_parameters.begin();
65 if ( (*p).first ==
key ) {
77 using elParams = std::pair<egammaParameters::ParamDef, int>;
82 if ( (*p).first ==
key )
break;
93 throw GaudiException(
"parameter not saved",
"EMErrorDetail::set_parameter(...)", StatusCode::FAILURE);
105 using elParams = std::pair<egammaParameters::ParamDef, double>;
109 if ( (*p).first ==
key )
break;
120 throw GaudiException(
"parameter not saved",
"EMErrorDetail::set_parameter(...)", StatusCode::FAILURE);
129 return (!forcePhoton && ((
eg->conversion() !=
nullptr) || (
eg->trackParticle() !=
nullptr)));
146 clusterE =
eg->cluster()->e();
147 if (clusterE < 1) clusterE = 1;
151 return 0.30e-3*sqrt(100./(clusterE*0.001));
154 const double err =
mat.getError(
eta, clusterE);
160 return 0.30e-3*sqrt(100./(clusterE*0.001));
177 if (aCluster ==
nullptr ||
pars ==
nullptr)
return 1
e-3;
180 return pars->getEnergyMatrix(
tp).getError(aCluster->
eta(), aCluster->
energy());
195 if (fabs(
eta) > 8)
eta = 8.0;
196 if (
pars ==
nullptr) {
199 const double clusterEnergyGeV = 100.0;
200 const double sigma_theta = 0.07 /sqrt(clusterEnergyGeV);
202 return ( fabs(sigma_theta/
sin(
theta)) );
206 return pars->getEtaMatrix(
tp).getError(
eta,
207 aCluster ? aCluster->
energy(): 0);
221 if (aCluster ==
nullptr ||
pars ==
nullptr)
return 1e10;
232 if ( fabs(etaPointing - clusterEta ) < 0.15 ) {
246 hepSymMatrix.setZero();
248 hepSymMatrix(1,1) = EMphoton_CovEclusEclus();
249 hepSymMatrix(2,2) = EMphoton_Covetaeta();
250 hepSymMatrix(3,3) = EMphoton_Covphiphi();
252 hepSymMatrix.fillSymmetric(1,2,EMphoton_CovetaEclus());
253 hepSymMatrix.fillSymmetric(1,3,EMphoton_CovphiEclus());
254 hepSymMatrix.fillSymmetric(2,3, EMphoton_Covetaphi());
267 return getEMPhotonErrorMatrix();
269 return getEMTrackCombinedErrorMatrix();
278 return getEMPhotonErrorMatrix();
280 return getEMTrackUncombinedErrorMatrix();
291 return get4x4EMPhotonErrorMatrix();
293 return get4x4EMTrackCombinedErrorMatrix();
302 return get4x4EMPhotonErrorMatrix();
304 return get4x4EMTrackUncombinedErrorMatrix();
314 hepSymMatrix.setZero();
316 hepSymMatrix(0,0) = EMtrack_comb_Covd0d0();
317 hepSymMatrix(1,1) = EMtrack_comb_Covz0z0();
318 hepSymMatrix(2,2) = EMtrack_comb_Covphiphi();
319 hepSymMatrix(3,3) = EMtrack_comb_Covetaeta();
320 hepSymMatrix(4,4) = EMtrack_comb_CovPP();
345 hepSymMatrix.setZero();
347 hepSymMatrix(0,0) = EMtrack_perigee_Covd0d0();
348 hepSymMatrix(1,1) = EMtrack_perigee_Covz0z0();
349 hepSymMatrix(2,2) = EMtrack_perigee_Covphiphi();
350 hepSymMatrix(3,3) = EMtrack_perigee_Covthetatheta();
351 hepSymMatrix(4,4) = EMphoton_CovEclusEclus();
355 hepSymMatrix.
fillSymmetric(0,3,EMtrack_perigee_Covd0theta());
358 hepSymMatrix.
fillSymmetric(1,3,EMtrack_perigee_Covz0theta());
360 hepSymMatrix.
fillSymmetric(2,3,EMtrack_perigee_Covphitheta());
367 jacob(3,3) = (-1./
sin(EMtrack_perigee_theta()));
369 return jacob*hepSymMatrix*jacob.transpose();
373 hepSymMatrix.setIdentity();
375 hepSymMatrix(0,0) = EMtrack_perigee_Covd0d0();
376 hepSymMatrix(1,1) = EMtrack_perigee_Covz0z0();
377 hepSymMatrix(2,2) = EMtrack_perigee_Covphiphi();
378 hepSymMatrix(3,3) = EMphoton_Covetaeta();
379 hepSymMatrix(4,4) = EMphoton_CovEclusEclus();
402 hepSymMatrix.setZero();
404 hepSymMatrix(0,0) = EMtrack_comb_CovPP();
405 hepSymMatrix(1,1) = EMtrack_comb_Covetaeta();
406 hepSymMatrix(2,2) = EMtrack_comb_Covphiphi();
421 hepSymMatrix.setZero();
423 hepSymMatrix(0,0) = EMphoton_CovEclusEclus();
424 hepSymMatrix(1,1) = EMtrack_perigee_Covthetatheta();
425 hepSymMatrix(2,2) = EMtrack_perigee_Covphiphi();
427 hepSymMatrix.
fillSymmetric(1,2, EMtrack_perigee_Covphitheta());
432 jacob(1,1) = (-1./
sin(EMtrack_perigee_theta()));
434 return jacob*hepSymMatrix*jacob.transpose();
438 hepSymMatrix.setZero();
440 hepSymMatrix(0,0) = EMphoton_CovEclusEclus();
441 hepSymMatrix(1,1) = EMphoton_Covetaeta();
442 hepSymMatrix(2,2) = EMtrack_perigee_Covphiphi();
456 hepSymMatrix.setZero();
459 hepSymMatrix(0,0) = EMphoton_CovEclusEclus();
460 hepSymMatrix(1,1) = EMphoton_Covetaeta();
461 hepSymMatrix(1,2) = EMphoton_Covetaphi();
462 hepSymMatrix(2,2) = EMphoton_Covphiphi();
JetConstituentVector::iterator iterator
@ EMConvertedPhoton_z0
the z value of the converted photon
@ EMConvertedPhoton_Covd0phi
converted photon covariance matrix item ( )
double EMtrack_comb_CovPP() const
double EMconvertedphoton_perigee_Covd0z0() const
@ EMPhoton_Covphiphi
covariance matrix photon (phi, phi)
@ EMTrack_CovthetaEclus
track perigee covariance matrix item (theta,E)
@ EMTrack_Combined_CovetaP
track combined covariance matrix item (eta,P)
static double getClusterEtaError(const egamma *, const EMClusterErrorsParametrizations *, bool forcePhoton=false)
@ EMTrack_Covthetatheta
track perigee covariance matrix item (theta,theta)
virtual int intParameter(egammaParameters::ParamDef) const
double EMconvertedphoton_perigee_d0() const
@ EMPhoton_CovphiEclus
covariance matrix photon (phi, E)
double EMconvertedphoton_perigee_theta() const
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
double EMtrack_perigee_d0() const
transverse impact parameter (distance of closest approach)
double EMtrack_perigee_eta() const
eta of the track fit
int linkIndex() const
link index
@ EMConvertedPhoton_d0
From EMErrorDetail
@ EMConvertedPhoton_Covz0theta
converted photon covariance matrix item (z0,theta)
@ EMTrack_Covd0phi
track perigee covariance matrix item ( )
double EMtrack_perigee_theta() const
theta of the track fit
double EMconvertedphoton_perigee_Covd0d0() const
double EMtrack_perigee_Covz0phi() const
Covariance matrix item (z0,phi)
@ EMTrack_theta
theta of the track
double EMtrack_perigee_z0() const
the z value at the point of closest approach
double EMtrack_comb_Covd0phi() const
Scalar eta() const
pseudorapidity method
int hasSiliconHits() const
Does the track of vertex have silicon hits.
@ EMTrack_Combined_Covd0z0
track combined covariance matrix item (d0,z0)
@ EMTrack_Combined_CovPP
track combined covariance matrix item (P,P)
Scalar theta() const
theta method
void set_hasSiliconHits(int x)
set whether the track of vertex have silicon hits
@ EMTrack_Eclus
Cluster energy
double EMconvertedphoton_perigee_Covphiphi() const
double EMtrack_comb_Covd0P() const
@ EMPhoton_CovetaEclus
covariance matrix photon (eta, E)
@ EMConvertedPhoton_Covd0z0
converted photon covariance matrix item ( )
double EMtrack_comb_Covd0d0() const
double EMtrack_perigee_Covphiphi() const
Covariance matrix item (phi,phi)
@ EMTrack_z0
the z value at the point of closest approach
static double getClusterEnergyError(const egamma *, const EMClusterErrorsParametrizations *, bool forcePhoton=false)
virtual bool hasParameter(egammaParameters::ParamDef) const
@ EMPhoton_Covetaeta
covariance matrix photon (eta, eta)
@ EMTrack_eta
the eta of the track
@ EMPhoton_Covetaphi
covariance matrix photon (eta, phi)
bool const RAWDATA *ch2 const
const double EgParamUndefined
double EMtrack_perigee_Covz0z0() const
Covariance matrix item (z0,z0)
@ EMConvertedPhoton_eta
the eta of the converted photon
void set_parameter(egammaParameters::ParamDef, double, bool overwrite=false)
general set method for parameters
double EMtrack_comb_Covz0phi() const
EMErrorDetail()
Default constructor.
@ EMConvertedPhoton_CovthetaEclus
converted photon covariance matrix item (theta,E)
@ EMConvertedPhoton_Covphitheta
converted photon covariance matrix item (phi,theta)
AmgSymMatrix(3) EMErrorDetail
@ EMTrack_Combined_Covphieta
track combined covariance matrix item (phi,eta)
@ EMTrack_Combined_CovphiP
track combined covariance matrix item (phi,P)
@ EMConvertedPhoton_phi0
azimuth angle of the momentum at the point of closest approach
double EMtrack_comb_Covz0z0() const
virtual bool hasIntParameter(egammaParameters::ParamDef) const
virtual double energy() const
Return energy.
@ EMTrack_Combined_Covz0phi
track combined covariance matrix item (z0,phi)
@ etap
pointing eta reconstructed from the cluster (first and second sampling)
@ EMConvertedPhoton_Covd0theta
converted photon covariance matrix item (d0,theta)
@ EMTrack_CovEclusEclus
track perigee covariance matrix item (E,E)
double EMtrack_comb_Covd0eta() const
double EMtrack_comb_Covd0z0() const
double EMtrack_perigee_Covphitheta() const
Covariance matrix item (phi,theta)
@ EMTrack_Covd0d0
track perigee covariance matrix item ( )
double EMphoton_CovphiEclus() const
Covariance matrix item (phi,Eclus)
virtual double parameter(egammaParameters::ParamDef) const
@ EMTrack_Covd0theta
track perigee covariance matrix item (d0,theta)
@ EMTrack_Covz0theta
track perigee covariance matrix item (z0,theta)
@ EMTrack_Covphitheta
track perigee covariance matrix item (phi,theta)
@ EMConvertedPhoton_Covd0d0
converted photon covariance matrix item ( )
@ EMTrack_d0
transverse impact parameter (distance of closest approach)
@ EMTrack_Combined_Covz0z0
track combined covariance matrix item (z0,z0)
@ EMTrack_Covphiphi
track perigee covariance matrix item (phi,phi)
void set_parameterInt(egammaParameters::ParamDef, int, bool overwrite=false)
double EMconvertedphoton_perigee_Covz0z0() const
double EMconvertedphoton_perigee_Covphitheta() const
double EMtrack_perigee_Covz0theta() const
Covariance matrix item (z0,theta)
Amg::MatrixX getCombinedErrorMatrix() const
E/P combined error matrix, natural size.
An interface for getting the name of a class as a string.
double EMtrack_comb_Covetaeta() const
Provide an interface for finding inheritance information at run time.
@ EMTrack_Combined_Covphiphi
track combined covariance matrix item (phi,phi)
@ EMTrack_phi0
azimuth angle of the momentum at the point of closest approach
double EMtrack_comb_Covphieta() const
double EMconvertedphoton_perigee_Covz0theta() const
double EMphoton_Covetaphi() const
Covariance matrix item (Eta,Phi)
double EMphoton_Eclus() const
cluster energy
@ EMPhoton_phi0
photon phi
static std::string name()
Return the name of class T as a string.
@ EMConvertedPhoton_Covd0Eclus
converted photon covariance matrix item (d0,E)
@ EMConvertedPhoton_Covz0z0
converted photon covariance matrix item (z0,z0)
@ EMConvertedPhoton_Eclus
E estimate
double EMtrack_perigee_Covd0phi() const
Covariance matrix item (d0,phi)
@ EMConvertedPhoton_Covphiphi
converted photon covariance matrix item (phi,phi)
@ EMTrack_Combined_Covd0P
fitted track combined covariance matrix item (d0,P)
double EMphoton_Covphiphi() const
Covariance matrix item (phi,phi)
Principal data class for CaloCell clusters.
std::vector< std::pair< egammaParameters::ParamDef, double > > m_parameters
@ EMConvertedPhoton_momentum
momentum of the converted photon
static double getClusterEtaPosError(const egamma *, const EMClusterErrorsParametrizations *, bool forcePhoton=false)
get the position eta error; since this is used by the EMExtrapolCaloConversion tool,...
static double getClusterPhiError(const egamma *, const EMClusterErrorsParametrizations *, bool forcePhoton=false)
double EMtrack_perigee_Covthetatheta() const
Covariance matrix item (theta,theta)
@ EMPhoton_Eclus
photon energy
double EMphoton_Covetaeta() const
Covariance matrix item (Eta,Eta)
@ EMTrack_Combined_Covd0eta
track combined covariance matrix item (d0,eta)
double EMconvertedphoton_perigee_Covthetatheta() const
@ EMConvertedPhoton_Covz0Eclus
converted photon covariance matrix item (z0,E)
double EMtrack_comb_Covz0eta() const
double EMtrack_perigee_phi0() const
azimuth angle of the momentum at the point of closest approach
double EMconvertedphoton_perigee_z0() const
@ EMTrack_Covz0z0
track perigee covariance matrix item (z0,z0)
@ EMConvertedPhoton_CovEclusEclus
converted photon covariance matrix item (E,E)
static bool isElectron(const egamma *, bool forcePhoton)
Obsolete Fill the perigree parameter for converted photon.
@ EMTrack_CovphiEclus
track perigee covariance matrix item (phi,E)
@ EMConvertedPhoton_Covz0phi
converted photon covariance matrix item (z0,phi)
double EMtrack_comb_Covphiphi() const
static double caloEta(const egamma *, double clusterEta)
Get the error on cluster energy, eta and phi.
double EMphoton_eta() const
cluster eta
SG_ADD_BASE(EMErrorDetail, egDetail)
double EMtrack_perigee_momentum() const
momentum of the track fit
@ EMTrack_Combined_Covd0phi
track combined covariance matrix item (d0,phi)
double EMconvertedphoton_perigee_Covd0theta() const
double EMconvertedphoton_perigee_eta() const
@ EMTrack_Combined_Covetaeta
track combined covariance matrix item (eta,eta)
@ EMTrack_Covd0z0
track perigee covariance matrix item ( )
virtual double eta() const
Retrieve eta independent of signal state.
double EMtrack_perigee_Covd0d0() const
Covariance matrix item (d0,d0)
Amg::MatrixX getUncombinedErrorMatrix() const
E/P combined error matrix, natural size.
std::vector< std::pair< egammaParameters::ParamDef, int > > m_parametersInt
double EMconvertedphoton_perigee_Covz0phi() const
double EMtrack_perigee_Covd0theta() const
Covariance matrix item (d0,theta)
@ EMTrack_momentum
track momentum
virtual const std::string & className() const
double EMtrack_perigee_Covd0z0() const
Covariance matrix item (d0,z0)
double EMconvertedphoton_perigee_phi0() const
double EMconvertedphoton_perigee_Covd0phi() const
double EMphoton_CovetaEclus() const
Covariance matrix item (Eta,Eclus)
void fillSymmetric(size_t i, size_t j, Scalar value)
method to fill elements for a symmetric matrix
@ linkIndex
link index for multiple track and vertex matches
@ EMTrack_Combined_Covz0eta
track combined covariance matrix item (z0,eta)
@ EMConvertedPhoton_CovphiEclus
converted photon covariance matrix item (phi,E)
void set_linkIndex(int)
Set link index.
@ EMTrack_Combined_Covz0P
track combined covariance matrix item (z0,P)
double EMphoton_CovEclusEclus() const
Covariance matrix item (theta,theta)
double EMtrack_comb_CovphiP() const
@ EMConvertedPhoton_Covthetatheta
converted photon covariance matrix item (theta,theta)
double EMtrack_comb_CovetaP() const
@ EMTrack_Covz0phi
track perigee covariance matrix item (z0,phi)
double EMtrack_comb_Covz0P() const
@ EMConvertedPhoton_theta
theta of the converted photon
@ EMTrack_Covd0Eclus
fitted track perigee covariance matrix item (d0,E)
static const std::string s_className
interfaces
@ EMTrack_Covz0Eclus
track perigee covariance matrix item (z0,E)
double EMphoton_phi0() const
cluster phi
double EMconvertedphoton_perigee_momentum() const
@ EMPhoton_CovEclusEclus
covariance matrix photon (E, E)
@ EMTrack_Combined_Covd0d0
track combined covariance matrix item (do,d0)