|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKPARAMETERSCOMMON_PARAMETERSCOMMON_H
10 #define TRKPARAMETERSCOMMON_PARAMETERSCOMMON_H
31 namespace InvalidParam {
32 constexpr
double INVALID = std::numeric_limits<double>::quiet_NaN();
44 template <
int DIM,
class T>
49 "Parameters must be Charged or Neutral");
50 static constexpr
int dim = DIM;
137 std::optional<
AmgSymMatrix(DIM)>&& covariance = std::nullopt);
const AmgVector(DIM) ¶meters() const
Access methods for the parameters.
std::optional< AmgSymMatrix(DIM)> m_covariance
charge definition for this track
void updateParameters(const AmgVector(DIM) &)
Update parameters.
ParametersCommon(ParametersCommon &&) noexcept=default
constexpr double INVALID_P(10e9)
Eigen::Matrix< double, 2, 1 > Vector2D
virtual ~ParametersCommon()=default
virtual Destructor
const AmgSymMatrix(DIM) *covariance() const
Access method for the covariance matrix - returns nullptr if no covariance matrix is given.
void setParameters(const AmgVector(DIM) ¶m)
set parameters
bool const RAWDATA *ch2 const
void updateParameters(const AmgVector(DIM) &, const AmgSymMatrix(DIM) &)
Update parameters and covariance , passing covariance by ref.
constexpr double INVALID_QOP(10e-9)
virtual bool hasSurface() const =0
Test to see if there's a not null surface ptr.
constexpr bool isCharged() const
Returns true if Charged or false if Neutral.
AmgVector(DIM) ¶meters()
constexpr virtual ParametersType type() const =0
Return the ParametersType enum.
T m_chargeDef
charge definition for this track
virtual SurfaceType surfaceType() const =0
Returns the Surface Type enum for the surface used to define the derived class.
Amg::Vector2D localPosition() const
Access method for the local coordinates, local parameter definitions differ for each surface type.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersCommon()=default
virtual Amg::RotationMatrix3D measurementFrame() const =0
Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perig...
AmgSymMatrix(DIM) *covariance()
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
virtual const Surface & associatedSurface() const =0
Access to the Surface associated to the Parameters.
virtual ParametersCommon< DIM, T > * clone() const =0
clone method for polymorphic deep copy
void setCovariance(const AmgSymMatrix(DIM) &cov)
set covariance
virtual void updateParametersHelper(const AmgVector(DIM) &)=0
contains the n parameters