13#ifndef TRK_GXFTRACKSTATE_H
14#define TRK_GXFTRACKSTATE_H
39 GXFTrackState(std::unique_ptr<const MeasurementBase>, std::unique_ptr<const TrackParameters>);
41 GXFTrackState(std::unique_ptr<GXFMaterialEffects>, std::unique_ptr<const TrackParameters>);
55 Eigen::Matrix<double, 5, 5> &
jacobian();
118 std::optional<std::vector<std::unique_ptr<TrackParameters>>> &
getHoles(
void);
119 void setHoles(std::vector<std::unique_ptr<TrackParameters>> &&);
121 std::unique_ptr<const TrackStateOnSurface>
126 std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>
m_tsType;
142 std::optional<std::vector<std::unique_ptr<TrackParameters>>>
m_holes;
145 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
157 return m_covariancematrix;
#define AmgSymMatrix(dim)
class that is similar to MaterialEffectsOnTrack, but has 'set' methods for more flexibility during tr...
bool getStateType(TrackStateOnSurface::TrackStateOnSurfaceType type) const
Retrieve the value of a specific type bit.
GXFTrackState & operator=(GXFTrackState &)=delete
double m_measerror[5]
Measurement errors (corrected for stereo angle)
bool m_recalib
Has this measurement already been recalibrated?
std::optional< std::vector< std::unique_ptr< TrackParameters > > > & getHoles(void)
std::optional< std::vector< std::unique_ptr< TrackParameters > > > m_holes
std::bitset< TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes > m_tsType
type of track state, eg Fittable, Outlier, Scatterer, Brem, Hole
void zeroTrackCovariance(void)
Amg::MatrixX & derivatives()
void setMeasurementType(TrackState::MeasurementType)
Eigen::Matrix< double, 5, 5 > & jacobian()
TrackState::MeasurementType m_mType
Measurement type, eg pixel, SCT, ...
void setTrackCovariance(AmgSymMatrix(5) *)
void setSinStereo(double)
void setStateType(TrackStateOnSurface::TrackStateOnSurfaceType type, bool value=true)
Set a specific type bit.
GXFTrackState & operator=(const GXFTrackState &)=delete
Amg::MatrixX m_derivs
Derivatives of local parameters wrt fit parameters.
void setPosition(Amg::Vector3D &)
const FitQualityOnSurface fitQuality(void)
std::unique_ptr< GXFMaterialEffects > m_materialEffects
Material effects on track (ie scatterer, brem)
const MeasurementBase * measurement(void)
void setMeasuresPhi(bool)
TrackState::MeasurementType measurementType()
void setHoles(std::vector< std::unique_ptr< TrackParameters > > &&)
std::unique_ptr< const TrackParameters > m_trackpar
track parameters
FitQualityOnSurface m_fitqual
bool hasTrackCovariance(void) const
void resetTrackCovariance()
reset covariance to nullptr
std::unique_ptr< const TrackStateOnSurface > trackStateOnSurface() const
void resetStateType(TrackStateOnSurface::TrackStateOnSurfaceType type, bool value=true)
Set a specific type, wiping all others.
void setFitQuality(FitQualityOnSurface)
GXFTrackState & operator=(GXFTrackState &&)=default
void setMeasurement(std::unique_ptr< const MeasurementBase >)
std::unique_ptr< const MeasurementBase > m_measurement
The measurement defining the track state.
AmgSymMatrix(5) m_covariancematrix
Covariance matrix of track parameters at this surface.
void setRecalibrated(bool)
void setMeasurementErrors(const double *)
const TrackParameters * trackParameters(void) const
double * measurementErrors()
GXFTrackState(GXFTrackState &&)=default
GXFMaterialEffects * materialEffects()
double m_sinstereo
stereo angle
void setDerivatives(Amg::MatrixX &)
void setTrackParameters(std::unique_ptr< const TrackParameters >)
void setJacobian(TransportJacobian &)
int numberOfMeasuredParameters()
Eigen::Matrix< double, 5, 5 > m_jacobian
Transport jacobian wrt previous state.
AmgSymMatrix(5) &trackCovariance(void)
const Surface & associatedSurface() const
This class is the pure abstract base class for all fittable tracking measurements.
Abstract Base Class for tracking surfaces.
This class represents the jacobian for transforming initial track parameters to new track parameters ...
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 3, 1 > Vector3D
MeasurementType
enum describing the flavour of MeasurementBase
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters