|
ATLAS Offline Software
|
Go to the documentation of this file.
25 #include "GaudiKernel/GaudiException.h"
60 using elParams = std::pair<egammaParameters::ParamDef, double>;
63 std::vector<elParams>::const_iterator
p =
m_parameters.begin();
66 if ( (*p).first ==
key ) {
82 using elParams = std::pair<egammaParameters::ParamDef, double>;
87 if ( (*p).first ==
key )
break;
98 throw GaudiException(
"parameter not saved",
"EMTrackFit::set_parameter(...)", StatusCode::FAILURE);
107 using elParams = std::pair<egammaParameters::ParamDef, int>;
113 if ( (*p).first ==
key ){
125 using elParams = std::pair<egammaParameters::ParamDef, int>;
130 if ( (*p).first ==
key )
break;
141 throw GaudiException(
"parameter not saved",
"EMTrackFit::set_parameter(...)", StatusCode::FAILURE);
155 throw GaudiException(
"Parameters not saved, no track",
"EMTrackFit::fillDetails(...)", StatusCode::FAILURE);
163 std::vector<const Trk::EstimatedBremOnTrack*> estimatedBremOnTrack;
164 std::vector<const Trk::TrackStateOnSurface* > trkStateOnSurfaceWithBrem;
168 for (;trackStateOnSurface <
track->trackStateOnSurfaces()->
end(); ++trackStateOnSurface){
171 estimatedBremOnTrack.push_back ( brem );
172 trkStateOnSurfaceWithBrem.push_back( (*trackStateOnSurface) );
176 if (estimatedBremOnTrack.empty()){
188 double fractionELost(0.);
189 double sigmaRetainedEnFraction(0);
190 for (; brems!=estimatedBremOnTrack.end(); ++brems, ++tsos) {
192 fractionELost += 1-(*brems)->retainedEnFraction();
194 Z *= (*brems)->retainedEnFraction();
196 R += (1-(*brems)->retainedEnFraction()) * (*tsos)->trackParameters()->position().perp();
197 sigmaRetainedEnFraction += (1-(*brems)->retainedEnFraction()) * (*brems)->sigmaRetainedEnFraction();
199 if (
Z>0 && fractionELost>0.){
201 sigmaRetainedEnFraction/=fractionELost;
203 hasBrem(estimatedBremOnTrack.size());
214 if (
track ==
nullptr ){
241 if (oldTrackStates ==
nullptr)
264 if (trackParameters){
312 hepSymMatrix.setIdentity();
314 hepSymMatrix.fillSymmetric(0,0, track_perigee_Covd0d0());
315 hepSymMatrix.fillSymmetric(0,1, track_perigee_Covd0z0());
316 hepSymMatrix.fillSymmetric(0,2, track_perigee_Covd0phi());
317 hepSymMatrix.fillSymmetric(0,3, track_perigee_Covd0theta());
318 hepSymMatrix.fillSymmetric(0,4, track_perigee_Covd0qOverP());
319 hepSymMatrix.fillSymmetric(1,1, track_perigee_Covz0z0());
320 hepSymMatrix.fillSymmetric(1,2, track_perigee_Covz0phi());
321 hepSymMatrix.fillSymmetric(1,3, track_perigee_Covz0theta());
322 hepSymMatrix.fillSymmetric(1,4, track_perigee_Covz0qOverP());
323 hepSymMatrix.fillSymmetric(2,2, track_perigee_Covphiphi());
324 hepSymMatrix.fillSymmetric(2,3, track_perigee_Covphitheta());
325 hepSymMatrix.fillSymmetric(2,4, track_perigee_CovphiqOverP());
326 hepSymMatrix.fillSymmetric(3,3, track_perigee_Covthetatheta());
327 hepSymMatrix.fillSymmetric(3,4, track_perigee_CovthetaqOverP());
328 hepSymMatrix.fillSymmetric(4,4, track_perigee_CovqOverPqOverP());
352 return measuredPerigee;
JetConstituentVector::iterator iterator
@ bremRadius
estimated brem radius from EMBremFit (mm) [x-y plane]
SG_ADD_BASE(EMTrackFit, egDetail)
double track_perigee_Covphiphi() const
Covariance matrix item (phi,phi)
@ refittedTrack_z0
the z value at the point of closest approach after Track Refit
double track_perigee_Covz0theta() const
Covariance matrix item (z0,theta)
@ refittedTrackLastM_loc2
Last Measurment Surface Local Position 2 after Track Refit.
@ refittedTrack_CovqOverPqOverP
Refitted track perigee covariance matrix item (q/P,q/P)
Const iterator class for DataVector/DataList.
double track_perigee_Covthetatheta() const
Covariance matrix item (theta,theta)
@ hasBrem
The Number of brems identified by the track fitter.
@ bremTrackAuthor
The author of the Refitted track.
double track_perigee_Covd0z0() const
Covariance matrix item ( )
const_reverse_iterator rend() const noexcept
Return a const_reverse_iterator pointing at the beginning of the collection.
EMTrackFit()
Default constructor.
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
std::vector< std::pair< egammaParameters::ParamDef, double > > m_parameters
double track_perigee_Covd0phi() const
Covariance matrix item ( )
double track_perigee_Covd0theta() const
Covariance matrix item (d0,theta)
double track_perigee_Covd0qOverP() const
Covariance matrix item (d0,q/p)
double track_LastM_loc2() const
Last Measurment Surface Local Position 2 after Track Refit.
double track_perigee_CovthetaqOverP() const
Covariance matrix item (theta,q/P)
double bremFitChi2() const
Fit Chi2/nDoF.
std::unique_ptr< ParametersT< DIM, T, PerigeeSurface > > createUniqueParameters(double l1, double l2, double phi, double theta, double qop, std::optional< AmgSymMatrix(DIM)> cov=std::nullopt) const
Use the Surface as a ParametersBase constructor, from local parameters.
std::vector< std::pair< egammaParameters::ParamDef, int > > m_parametersInt
double track_perigee_theta() const
theta of the track after EMTrackFit
@ loc2
generic first and second local coordinate
@ refittedTrack_Covphiphi
Refitted track perigee covariance matrix item (phi,phi)
static const std::string s_className
void fillDetails(Trk::Track *track)
Fill the details of the object from a Trk::Track.
const double EgParamUndefined
int bremTrackAuthor() const
Track Author enum as Defined in Track/Track.h.
double track_LastM_qOverP() const
Last Measurment Surface q/pT estimate according to Track Refit.
double track_perigee_z0() const
the z value at the point of closest approach after Track Refit
@ refittedTrack_Covz0theta
Refitted track perigee covariance matrix item (z0,theta)
virtual bool hasParameter(egammaParameters::ParamDef) const
@ refittedTrack_Covd0phi
Refitted track perigee covariance matrix item ( )
@ refittedTrack_CovphiqOverP
Refitted track perigee covariance matrix item (phi,q/P)
@ refittedTrack_CovthetaqOverP
Refitted track perigee covariance matrix item (theta,q/P)
int hasBrem() const
The Number of brems identified by the track fitter.
double track_perigee_CovphiqOverP() const
Covariance matrix item (phi,q/P)
@ refittedTrack_Covz0phi
Refitted track perigee covariance matrix item (z0,phi)
@ bremFitChi2
chi2 of EMBremFit
double track_perigee_Covz0z0() const
Covariance matrix item (z0,z0)
double bremRadius() const
estimated brem radius from EMTrackFit (mm) [x-y plane] (weighted average if more than one brem)
An interface for getting the name of a class as a string.
Provide an interface for finding inheritance information at run time.
double track_perigee_Covz0qOverP() const
Covariance matrix item (z0,q/p)
double track_perigee_d0() const
transverse impact parameter (distance of closest approach) after Track Refit
double bremRadiusErr() const
estimated brem radius uncertainty
@ refittedTrack_phi0
azimuth angle of the momentum at the point of closest approach after Track Refit
double bremDeltaZerr() const
Error on the fraction of the energy lost after the brem.
double track_LastM_theta() const
Last Measurment Surface theta after Track Refit.
static std::string name()
Return the name of class T as a string.
void set_parameterInt(egammaParameters::ParamDef, int, bool overwrite=false)
@ refittedTrackLastM_qOverP
Last Measurment Surface q/pT estimate according to Track Refit.
void fillLastMeasurement(Trk::Track *track)
Obtains the last measurment on the Track and fills details into the object.
void set_linkIndex(int)
Index of track this EMTrackFit is associated with.
@ bremClusterRadius
cluster radius (mm) [x-y plane] from EMBremFit (depth)
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
double track_perigee_CovqOverPqOverP() const
Covariance matrix item (q/P,q/P)
@ bremMaterialTraversed
The amount of material traversed as seen by the track (in X0)
const_reverse_iterator rbegin() const noexcept
Return a const_reverse_iterator pointing past the end of the collection.
@ refittedTrack_Covd0qOverP
Refitted track perigee covariance matrix item (d0,q/p)
int linkIndex() const
Index of track this EMTrackFit is associated with.
@ refittedTrack_Covz0z0
Refitted track perigee covariance matrix item (z0,z0)
double track_perigee_qOverP() const
1/pT estimate according to Track Refit
@ refittedTrack_Covthetatheta
Refitted track perigee covariance matrix item (theta,theta)
bool fillPerigeeErrors(const AmgSymMatrix(5) *)
Fill the perigree error details.
virtual const std::string & className() const
virtual double parameter(egammaParameters::ParamDef) const
int bremFitStatus() const
Bremfit Status 1 Reached Iteration Limit, 0 Converged, -1 recheached iteration limit,...
std::reverse_iterator< const_iterator > const_reverse_iterator
Standard const_reverse_iterator.
@ refittedTrack_d0
transverse impact parameter (distance of closest approach) after Track Refit
@ bremFitStatus
Minuit EMBremFit fit status.
void set_parameter(egammaParameters::ParamDef, double, bool overwrite=false)
general set method for parameters
double track_perigee_Covphitheta() const
Covariance matrix item (phi,theta)
void fillBrems(Trk::Track *track)
Fill in brem information from a Trk::Track.
class holding information about momentum reduction and an additional noise term due to significant en...
@ refittedTrack_qOverP
1/pT estimate according to Track Refit
double track_LastM_phi() const
Last Measurment Surface azimuth angle after Track Refit.
@ bremDeltaQoverPErr
Error on the fraction of energy lost.
double track_perigee_Covz0phi() const
Covariance matrix item (z0,phi)
double track_perigee_Covd0d0() const
Covariance matrix item ( )
@ refittedTrackLastM_theta
Last Measurment Surface theta after Track Refit.
@ refittedTrack_Covd0d0
Refitted track perigee covariance matrix item ( )
@ refittedTrack_theta
theta of the track after EMTrackFit
const Trk::Perigee * getMeasuredPerigee() const
returns the MeasuredPerigee from the stored egammaParameters
@ bremDeltaQoverP
Fraction of the measured perigee momentum lost.
@ linkIndex
link index for multiple track and vertex matches
@ refittedTrackLastM_loc1
Last Measurment Surface Local Position 1 after Track Refit.
@ refittedTrack_Covz0qOverP
Refitted track perigee covariance matrix item (z0,q/p)
@ refittedTrack_Covd0theta
Refitted track perigee covariance matrix item (d0,theta)
bool fillPerigeeParamters(const Trk::Perigee *trackParameters)
Fill the perigree parameter details.
@ refittedTrack_Covphitheta
Refitted track perigee covariance matrix item (phi,theta)
AmgSymMatrix(5) EMTrackFit
double track_LastM_loc1() const
Last Measurment Surface Local Position 1 after Track Refit.
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
double bremDeltaZ() const
Fraction of the measured perigee momentum retained after brem.
virtual int intParameter(egammaParameters::ParamDef) const
virtual bool hasIntParameter(egammaParameters::ParamDef) const
checks if the parameter is integer
double track_perigee_phi0() const
azimuth angle of the momentum at the point of closest approach after Track Refit
@ refittedTrack_Covd0z0
Refitted track perigee covariance matrix item ( )
double bremMaterialTraversed() const
Amount of Material seen by the particle according to the track fitter (in X0)
@ refittedTrackLastM_phi
Last Measurment Surface azimuth angle after Track Refit.