9#ifndef TRKPARAMETERSBASE_PARAMETERS_T_H
10#define TRKPARAMETERSBASE_PARAMETERS_T_H
45template<
int DIM,
class T,
class S>
57 "The surface type must be one of Cone, Cylinder, Disc, Perigee, Plane, "
72 std::optional<
AmgSymMatrix(DIM)> covariance = std::nullopt);
77 std::optional<
AmgSymMatrix(DIM)> covariance = std::nullopt);
85 std::optional<
AmgSymMatrix(DIM)> covariance = std::nullopt);
94 std::optional<
AmgSymMatrix(DIM)> covariance = std::nullopt);
118 virtual
bool operator==(
137 virtual MsgStream&
dump(MsgStream& out)
const override final;
154 template<typename pars>
158 template<class SURFACE_CNV, class ATA_SURFACE>
166#include "TrkParametersBase/ParametersT.icc"
#define AmgSymMatrix(dim)
Handle conditional ownership of surfaces.
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
Material effects engine interface for charged and neutral (fast track simulation) ,...
const Amg::Vector3D & momentum() const
const Amg::Vector3D & position() const
const AmgSymMatrix(DIM) *covariance() const
const AmgVector(DIM) ¶meters() const
virtual ParametersT< DIM, Neutral, ConeSurface > * clone() const override final
ParametersT< DIM, T, S > & operator=(ParametersT< DIM, T, S > &&rhs) noexcept=default
Move assignment operator.
virtual Amg::RotationMatrix3D measurementFrame() const override final
virtual void updateParametersHelper(const AmgVector(DIM) &) override final
friend class ::TrackParametersCnv_p2
ParametersT()=default
default constructor ONLY for POOL
friend class MaterialEffectsEngine
virtual constexpr ParametersType type() const override final
virtual bool hasSurface() const override final
Test to see if there's a surface there.
ParametersT(ParametersT< DIM, T, S > &&rhs) noexcept=default
Move constructor.
friend class ::MeasuredPerigeeCnv_p1
ParametersT< DIM, T, S > & operator=(const ParametersT< DIM, T, S > &rhs)=default
Assignment operator.
friend class ::TrackParametersCovarianceCnv
virtual const ConeSurface & associatedSurface() const override final
ParametersT(double loc1, double loc2, double phi, double theta, double qop, const S &surface, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt)
Constructor with local arguments - uses global <-> local for parameters.
ParametersT(const Amg::Vector3D &position, double phi, double theta, double qop, const S &surface, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt)
Constructor with mixed arguments 1 - uses global <-> local for parameters.
virtual ~ParametersT()=default
friend class ::AtaSurfaceCnv_p1
ParametersT(const Amg::Vector3D &position, const Amg::Vector3D &momentum, double charge, const S &surface, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt)
Constructor with global arguments - uses global <-> local for parameters.
ParametersT(const ParametersT< DIM, T, S > &rhs)=default
Copy constructor.
virtual constexpr SurfaceType surfaceType() const override final
ParametersT(const AmgVector(DIM) ¶meters, const S &surface, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt)
Constructor with parameters - extract position and momentum.
SurfaceUniqHolderImpl()=default
default ctor
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
SurfaceType
This enumerator simplifies the persistency & calculations,.
ParametersType
Enum to avoid dynamic cast for different parameter types.
@ loc2
generic first and second local coordinate