|
ATLAS Offline Software
|
Go to the documentation of this file.
23 m_measurement(rhs.m_measurement != nullptr ? std::unique_ptr<
const MeasurementBase>(rhs.m_measurement->
clone()) : nullptr),
24 m_tsType(rhs.m_tsType),
27 m_derivs(rhs.m_derivs),
28 m_covariancematrix(rhs.m_covariancematrix),
29 m_covariance_set(rhs.m_covariance_set),
30 m_fitqual(rhs.m_fitqual),
31 m_sinstereo(rhs.m_sinstereo),
33 m_recalib(rhs.m_recalib),
34 m_measphi(rhs.m_measphi)
36 for (
int i = 0;
i < 5;
i++) {
38 for (
int j = 0; j < 5; j++) {
45 std::unique_ptr<const MeasurementBase> measurement,
46 std::unique_ptr<const TrackParameters> trackpar
48 m_measurement(std::move(measurement)),
49 m_trackpar(std::move(trackpar)),
50 m_materialEffects(nullptr),
54 m_covariance_set(
false),
61 m_measerror[0] = m_measerror[1] = m_measerror[2] = m_measerror[3] = m_measerror[4] = -1;
65 std::unique_ptr<const TrackParameters> trackpar,
68 m_measurement(nullptr),
69 m_trackpar(std::move(trackpar)),
70 m_materialEffects(nullptr),
74 m_covariance_set(
false),
82 m_measerror[0] = m_measerror[1] = m_measerror[2] = m_measerror[3] = m_measerror[4] = -1;
86 std::unique_ptr<GXFMaterialEffects> mef,
87 std::unique_ptr<const TrackParameters> trackpar
89 m_measurement(nullptr),
90 m_trackpar(std::move(trackpar)),
91 m_materialEffects(std::move(mef)),
95 m_covariance_set(
false),
102 m_measerror[0] = m_measerror[1] = m_measerror[2] = m_measerror[3] = m_measerror[4] = -1;
104 if (m_materialEffects->sigmaDeltaTheta() == 0) {
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");
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>(
@ CaloDeposit
This TSOS contains a CaloEnergy object.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
const FitQualityOnSurface fitQuality(void)
std::unique_ptr< const TrackStateOnSurface > trackStateOnSurface() const
int numberOfMeasuredParameters()
void setStateType(TrackStateOnSurface::TrackStateOnSurfaceType type, bool value=true)
Set a specific type bit.
const MeasurementBase * measurement(void)
bool getStateType(TrackStateOnSurface::TrackStateOnSurfaceType type) const
Retrieve the value of a specific type bit.
void setMeasuresPhi(bool)
void setPosition(Amg::Vector3D &)
void setRecalibrated(bool)
bool const RAWDATA *ch2 const
void setMeasurementErrors(const double *)
FitQualityOnSurface m_fitqual
void resetStateType(TrackStateOnSurface::TrackStateOnSurfaceType type, bool value=true)
Set a specific type, wiping all others.
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
AmgSymMatrix(5) &GXFTrackState
double m_measerror[5]
Measurement errors (corrected for stereo angle)
const Surface & associatedSurface() const
std::optional< std::vector< std::unique_ptr< TrackParameters > > > m_holes
void setHoles(std::vector< std::unique_ptr< TrackParameters >> &&)
void setTrackCovariance(AmgSymMatrix(5) *)
std::bitset< TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes > m_tsType
type of track state, eg Fittable, Outlier, Scatterer, Brem, Hole
void setMeasurement(std::unique_ptr< const MeasurementBase >)
void setDerivatives(Amg::MatrixX &)
std::unique_ptr< const TrackParameters > m_trackpar
track parameters
class that is similar to MaterialEffectsOnTrack, but has 'set' methods for more flexibility during tr...
std::unique_ptr< GXFMaterialEffects > m_materialEffects
Material effects on track (ie scatterer, brem)
std::unique_ptr< const MeasurementBase > m_measurement
The measurement defining the track state.
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
double * measurementErrors()
@ BremPoint
This represents a brem point on the track, and so will contain TrackParameters and MaterialEffectsBas...
Ensure that the ATLAS eigen extensions are properly loaded.
bool m_recalib
Has this measurement already been recalibrated?
std::optional< std::vector< std::unique_ptr< TrackParameters > > > & getHoles(void)
Amg::MatrixX m_derivs
Derivatives of local parameters wrt fit parameters.
Eigen::Matrix< double, 3, 1 > Vector3D
void zeroTrackCovariance(void)
void resetTrackCovariance()
reset covariance to nullptr
void setTrackParameters(std::unique_ptr< const TrackParameters >)
void setFitQuality(FitQualityOnSurface)
bool hasTrackCovariance(void) const
std::unique_ptr< T > unique_clone(const T *v)
@ Scatterer
This represents a scattering point on the track, and so will contain TrackParameters and MaterialEffe...
Eigen::Matrix< double, 5, 5 > m_jacobian
Transport jacobian wrt previous state.
void setJacobian(TransportJacobian &)
double m_sinstereo
stereo angle
bool consistentSurfaces(U)
double chiSquared() const
returns the of the overall track fit
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
void setSinStereo(double)