9#ifndef TRKPARAMETERSBASE_CURVILINEARPARAMETERS_T_H
10#define TRKPARAMETERSBASE_CURVILINEARPARAMETERS_T_H
46template<
int DIM,
class T,
class S>
51 "The surface type must be Plane");
60 std::optional<
AmgSymMatrix(DIM)> covariance = std::nullopt,
61 unsigned int cIdenfier = 0);
70 std::optional<
AmgSymMatrix(DIM)> covariance = std::nullopt,
71 unsigned int cIdenfier = 0);
79 std::optional<
AmgSymMatrix(DIM)> covariance = std::nullopt,
80 unsigned int cIdenfier = 0);
111 virtual
bool operator==(
128 virtual MsgStream&
dump(MsgStream& out)
const override final;
148 template<typename pars>
158#include "TrkParametersBase/CurvilinearParametersT.icc"
#define AmgSymMatrix(dim)
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
friend class ::TrackParametersCnv_p2
friend class MaterialEffectsEngine
virtual constexpr SurfaceType surfaceType() const override final
virtual bool hasSurface() const override final
virtual constexpr ParametersType type() const override final
CurvilinearParametersT(const CurvilinearParametersT< DIM, T, S > &)=default
Copy Constructor.
friend class ::MeasuredPerigeeCnv_p1
friend class ::TrackParametersCovarianceCnv
unsigned int cIdentifier() const
CurvilinearParametersT(const AmgVector(DIM+2) ¶meters, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt, unsigned int cIdenfier=0)
Create CurvilinearParametersT from DIM+2 parameters.
virtual Amg::RotationMatrix3D measurementFrame() const override final
virtual CurvilinearParametersT< DIM, Neutral, PlaneSurface > * clone() const override final
virtual void updateParametersHelper(const AmgVector(DIM) &) override final
CurvilinearUVT curvilinearFrame() const
CurvilinearParametersT(const Amg::Vector3D &pos, double phi, double theta, double qOverP, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt, unsigned int cIdenfier=0)
Create CurvilinearParametersT from mixed parameters: pos, local parameters.
unsigned int m_cIdentifier
virtual const PlaneSurface & associatedSurface() const override final
CurvilinearParametersT()=default
default constructor only for POOL
void setcIdentifier(unsigned int cIdentifier)
CurvilinearParametersT(const Amg::Vector3D &pos, const Amg::Vector3D &mom, double charge, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt, unsigned int cIdenfier=0)
Create CurvilinearParametersT from global parameters.
CurvilinearParametersT(CurvilinearParametersT< DIM, T, S > &&) noexcept=default
Move Constructor.
simple class that constructs the curvilinear vectors curvU and curvV from a given momentum direction ...
const AmgVector(DIM) ¶meters() const
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.