9#ifndef TRKPARAMETERSBASE_PARAMETERSBASE_H
10#define TRKPARAMETERSBASE_PARAMETERSBASE_H
25template<
class SURFACE_CNV,
class ATA_SURFACE>
53template<
int DIM,
class T>
98 return std::unique_ptr<ParametersBase<DIM, T>>(this->
clone());
109 virtual MsgStream&
dump(MsgStream& out)
const;
110 virtual std::ostream&
dump(std::ostream& out)
const;
146template<
int DIM, class T>
150template<
int DIM, class T>
156#include "TrkParametersBase/ParametersBase.icc"
New convertor which handles all track parameters in one go - i.e.
Material effects engine interface for charged and neutral (fast track simulation) ,...
The base class for neutral and charged Track parameters.
virtual MsgStream & dump(MsgStream &out) const
Dumps relevant information about the track parameters into the ostream.
double eta() const
Access method for pseudorapidity - from momentum.
const Amg::Vector3D & momentum() const
Access method for the momentum.
virtual bool operator==(const ParametersBase< DIM, T > &) const
equality operator
ParametersBase(ParametersBase &&) noexcept=default
virtual constexpr SurfaceType surfaceType() const override=0
Returns the Surface Type enum for the surface used to define the derived class.
virtual ~ParametersBase()=default
virtual Destructor
virtual ParametersBase< DIM, T > * clone() const override=0
clone method for polymorphic deep copy
virtual Amg::RotationMatrix3D measurementFrame() const override=0
Return the measurement frame - this is needed for alignment, in particular for StraightLine and Perig...
virtual std::ostream & dump(std::ostream &out) const
const Amg::Vector3D & position() const
Access method for the position.
double charge() const
Returns the charge.
virtual constexpr ParametersType type() const override=0
Return the ParametersType enum.
virtual bool hasSurface() const override=0
Test to see if there's a not null surface ptr.
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
double pT() const
Access method for transverse momentum.
virtual void updateParametersHelper(const AmgVector(DIM) &) override=0
std::unique_ptr< ParametersBase< DIM, T > > uniqueClone() const
clone method for polymorphic deep copy returning unique_ptr; it is not overriden, but uses the existi...
std::optional< AmgSymMatrix(DIM)> m_covariance
const AmgSymMatrix(DIM) *covariance() const
ParametersCommon()=default
const AmgVector(DIM) ¶meters() const
Abstract Base Class for tracking surfaces.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
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.