28 m_covariancematrix(rhs.m_covariancematrix),
36 for (
int i = 0; i < 5; i++) {
38 for (
int j = 0; j < 5; j++) {
46 std::unique_ptr<const TrackParameters> trackpar
65 std::unique_ptr<const TrackParameters> trackpar,
86 std::unique_ptr<GXFMaterialEffects> mef,
87 std::unique_ptr<const TrackParameters> trackpar
105 setStateType(TrackStateOnSurface::BremPoint);
107 setStateType(TrackStateOnSurface::Scatterer);
115 std::cerr <<
"GXFTrackState::isSane. With :" <<
'\n';
116 std::cerr <<
"Types : " <<
m_tsType.to_string() <<
'\n';
117 std::cerr <<
"Surfaces differ! " << std::endl;
119 std::cerr <<
"ParamSurf: [" << &(
m_trackpar->associatedSurface())
120 <<
"] " <<
m_trackpar->associatedSurface() << std::endl;
123 std::cerr <<
"measSurf: [" << &(
m_measurement->associatedSurface())
128 std::cerr <<
"matSurf: ["
191 throw std::runtime_error(
"GXFTrackState::associatedSurface: None of measurement, track parameters or material effects are non-null pointers");
198 if (covmat ==
nullptr) {
202 m_covariancematrix = *covmat;
265 m_covariancematrix.setZero();
294 std::unique_ptr<const TrackStateOnSurface>
301 std::unique_ptr<MaterialEffectsBase> mateff =
nullptr;
302 std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
316 if (mateff ==
nullptr) {
340 return std::make_unique<const TrackStateOnSurface>(
#define AmgSymMatrix(dim)
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
double chiSquared() const
returns the of the overall track fit
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.
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)
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.
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)
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)
void setMeasurement(std::unique_ptr< const MeasurementBase >)
std::unique_ptr< const MeasurementBase > m_measurement
The measurement defining the track state.
void setRecalibrated(bool)
void setMeasurementErrors(const double *)
double * measurementErrors()
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.
const Surface & associatedSurface() const
This class is the pure abstract base class for all fittable tracking measurements.
Abstract Base Class for tracking surfaces.
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
@ BremPoint
This represents a brem point on the track, and so will contain TrackParameters and MaterialEffectsBas...
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
@ CaloDeposit
This TSOS contains a CaloEnergy object.
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
Ensure that the ATLAS eigen extensions are properly loaded.
bool consistentSurfaces(U)
std::unique_ptr< T > unique_clone(const T *v)
ParametersBase< TrackParametersDim, Charged > TrackParameters