ATLAS Offline Software
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
Trk::CurvilinearParametersT< DIM, T, S > Class Template Referencefinal

#include <CurvilinearParametersT.h>

Inheritance diagram for Trk::CurvilinearParametersT< DIM, T, S >:
Collaboration diagram for Trk::CurvilinearParametersT< DIM, T, S >:

Public Member Functions

 CurvilinearParametersT ()=default
 default constructor only for POOL More...
 
 CurvilinearParametersT (const AmgVector(DIM+2) &parameters, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt, unsigned int cIdenfier=0)
 Create CurvilinearParametersT from DIM+2 parameters. More...
 
 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. More...
 
 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. More...
 
 CurvilinearParametersT (const CurvilinearParametersT< DIM, T, S > &)=default
 Copy Constructor. More...
 
 CurvilinearParametersT (CurvilinearParametersT< DIM, T, S > &&) noexcept=default
 Move Constructor. More...
 
CurvilinearParametersT< DIM, T, S > & operator= (const CurvilinearParametersT< DIM, T, S > &)=default
 Assignment operator. More...
 
CurvilinearParametersT< DIM, T, S > & operator= (CurvilinearParametersT< DIM, T, S > &&) noexcept=default
 Move assignment operator. More...
 
virtual ~CurvilinearParametersT ()=default
 Destructor. More...
 
unsigned int cIdentifier () const
 the curvilinear parameters identifier More...
 
void setcIdentifier (unsigned int cIdentifier)
 
virtual bool hasSurface () const override final
 Test to see if there's a surface there. More...
 
virtual const S & associatedSurface () const override final
 Access to the Surface method. More...
 
virtual bool operator== (const ParametersBase< DIM, T > &rhs) const override final
 equality operator More...
 
virtual CurvilinearParametersT< DIM, T, S > * clone () const override final
 Virtual clone. More...
 
constexpr virtual ParametersType type () const override final
 Return the ParametersType enum. More...
 
constexpr virtual SurfaceType surfaceType () const override final
 Return the Surface Type enum. More...
 
virtual Amg::RotationMatrix3D measurementFrame () const override final
 Return the measurementFrame of the parameters. More...
 
virtual MsgStream & dump (MsgStream &out) const override final
 Dumps relevant information about the track parameters into the ostream. More...
 
virtual std::ostream & dump (std::ostream &out) const override final
 
double charge () const
 Returns the charge. More...
 
const Amg::Vector3Dposition () const
 Access method for the position. More...
 
const Amg::Vector3Dmomentum () const
 Access method for the momentum. More...
 
double pT () const
 Access method for transverse momentum. More...
 
double eta () const
 Access method for pseudorapidity - from momentum. More...
 
std::unique_ptr< ParametersBase< DIM, T > > uniqueClone () const
 clone method for polymorphic deep copy returning unique_ptr; it is not overriden, but uses the existing clone method. More...
 
const AmgVector (DIM) &parameters() const
 Access methods for the parameters. More...
 
 AmgVector (DIM) &parameters()
 
const AmgSymMatrix (DIM) *covariance() const
 Access method for the covariance matrix - returns nullptr if no covariance matrix is given. More...
 
 AmgSymMatrix (DIM) *covariance()
 
constexpr bool isCharged () const
 Returns true if Charged or false if Neutral. More...
 
Amg::Vector2D localPosition () const
 Access method for the local coordinates, \((loc1,loc2)\) local parameter definitions differ for each surface type. More...
 
void setParameters (const AmgVector(DIM) &param)
 set parameters More...
 
void setCovariance (const AmgSymMatrix(DIM) &cov)
 set covariance More...
 
void updateParameters (const AmgVector(DIM) &, const AmgSymMatrix(DIM) &)
 Update parameters and covariance , passing covariance by ref. More...
 
void updateParameters (const AmgVector(DIM) &)
 Update parameters. More...
 

Static Public Attributes

static constexpr int dim = DIM
 

Protected Member Functions

 AmgVector (DIM) m_parameters
 contains the n x n covariance matrix More...
 

Protected Attributes

m_surface
 surface template More...
 
unsigned int m_cIdentifier = 0
 the curvilinear parameters identifier More...
 
Amg::Vector3D m_position
 point on track More...
 
Amg::Vector3D m_momentum
 momentum at this point on track More...
 
std::optional< AmgSymMatrix(DIM)> m_covariance = std::nullopt
 charge definition for this track More...
 
m_chargeDef {}
 charge definition for this track More...
 

Private Member Functions

virtual void updateParametersHelper (const AmgVector(DIM) &) override final
 contains the n parameters More...
 
CurvilinearUVT curvilinearFrame () const
 return the curvilinear frame More...
 

Friends

template<typename pars >
class ::TrackParametersCovarianceCnv
 
class ::TrackParametersCnv_p2
 
class ::MeasuredPerigeeCnv_p1
 
class MaterialEffectsEngine
 DESIGN TO BE REVISITED. More...
 

Detailed Description

template<int DIM, class T, class S>
class Trk::CurvilinearParametersT< DIM, T, S >

The specialised class for charged and neutral track parameters in the curvilinear frame.

The method parameters() returns a vector of the track parameters, defined as: \(\left(\begin{array}{c} locX\\locY\\\phi\\\theta\\q/p \end{array}\right)\)

The following is true per definition:

Template Parameters
DIMnumber of track parameters (usually 5)
Tcharge of track (either Trk::Charged or Trk::Neutral)
Author
andre.nosp@m.as.s.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch
Christos Anastopoulos (Athena MT modifications)

Definition at line 47 of file CurvilinearParametersT.h.

Constructor & Destructor Documentation

◆ CurvilinearParametersT() [1/6]

template<int DIM, class T , class S >
Trk::CurvilinearParametersT< DIM, T, S >::CurvilinearParametersT ( )
default

default constructor only for POOL

◆ CurvilinearParametersT() [2/6]

template<int DIM, class T , class S >
Trk::CurvilinearParametersT< DIM, T, S >::CurvilinearParametersT ( const AmgVector(DIM+2) &  parameters,
std::optional< AmgSymMatrix(DIM)>  covariance = std::nullopt,
unsigned int  cIdenfier = 0 
)

Create CurvilinearParametersT from DIM+2 parameters.

  • these are: global position, momentum, charge, extension

◆ CurvilinearParametersT() [3/6]

template<int DIM, class T , class S >
Trk::CurvilinearParametersT< DIM, T, S >::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.

◆ CurvilinearParametersT() [4/6]

template<int DIM, class T , class S >
Trk::CurvilinearParametersT< DIM, T, S >::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.

– it will throw a GaudiException if the position is not on surface

◆ CurvilinearParametersT() [5/6]

template<int DIM, class T , class S >
Trk::CurvilinearParametersT< DIM, T, S >::CurvilinearParametersT ( const CurvilinearParametersT< DIM, T, S > &  )
default

Copy Constructor.

◆ CurvilinearParametersT() [6/6]

template<int DIM, class T , class S >
Trk::CurvilinearParametersT< DIM, T, S >::CurvilinearParametersT ( CurvilinearParametersT< DIM, T, S > &&  )
defaultnoexcept

Move Constructor.

◆ ~CurvilinearParametersT()

template<int DIM, class T , class S >
virtual Trk::CurvilinearParametersT< DIM, T, S >::~CurvilinearParametersT ( )
virtualdefault

Destructor.

Member Function Documentation

◆ AmgSymMatrix() [1/2]

template<int DIM, class T >
Trk::ParametersCommon< DIM, T >::AmgSymMatrix ( DIM  )
inherited

◆ AmgSymMatrix() [2/2]

template<int DIM, class T >
const Trk::ParametersCommon< DIM, T >::AmgSymMatrix ( DIM  ) const
inherited

Access method for the covariance matrix - returns nullptr if no covariance matrix is given.

◆ AmgVector() [1/3]

template<int DIM, class T >
Trk::ParametersCommon< DIM, T >::AmgVector ( DIM  ) &
inherited

◆ AmgVector() [2/3]

template<int DIM, class T >
const Trk::ParametersCommon< DIM, T >::AmgVector ( DIM  ) const &
inherited

Access methods for the parameters.

◆ AmgVector() [3/3]

template<int DIM, class T >
Trk::ParametersCommon< DIM, T >::AmgVector ( DIM  )
protectedinherited

contains the n x n covariance matrix

◆ associatedSurface()

template<int DIM, class T , class S >
virtual const S& Trk::CurvilinearParametersT< DIM, T, S >::associatedSurface ( ) const
finaloverridevirtual

Access to the Surface method.

Implements Trk::ParametersBase< DIM, T >.

◆ charge()

template<int DIM, class T >
double Trk::ParametersBase< DIM, T >::charge ( ) const
inherited

Returns the charge.

◆ cIdentifier()

template<int DIM, class T , class S >
unsigned int Trk::CurvilinearParametersT< DIM, T, S >::cIdentifier ( ) const

the curvilinear parameters identifier

◆ clone()

template<int DIM, class T , class S >
virtual CurvilinearParametersT<DIM, T, S>* Trk::CurvilinearParametersT< DIM, T, S >::clone ( ) const
finaloverridevirtual

Virtual clone.

Implements Trk::ParametersBase< DIM, T >.

◆ curvilinearFrame()

template<int DIM, class T , class S >
CurvilinearUVT Trk::CurvilinearParametersT< DIM, T, S >::curvilinearFrame ( ) const
private

return the curvilinear frame

◆ dump() [1/2]

template<int DIM, class T , class S >
virtual MsgStream& Trk::CurvilinearParametersT< DIM, T, S >::dump ( MsgStream &  out) const
finaloverridevirtual

Dumps relevant information about the track parameters into the ostream.

Reimplemented from Trk::ParametersBase< DIM, T >.

◆ dump() [2/2]

template<int DIM, class T , class S >
virtual std::ostream& Trk::CurvilinearParametersT< DIM, T, S >::dump ( std::ostream &  out) const
finaloverridevirtual

Reimplemented from Trk::ParametersBase< DIM, T >.

◆ eta()

template<int DIM, class T >
double Trk::ParametersBase< DIM, T >::eta ( ) const
inherited

Access method for pseudorapidity - from momentum.

◆ hasSurface()

template<int DIM, class T , class S >
virtual bool Trk::CurvilinearParametersT< DIM, T, S >::hasSurface ( ) const
finaloverridevirtual

Test to see if there's a surface there.

Implements Trk::ParametersBase< DIM, T >.

◆ isCharged()

template<int DIM, class T >
constexpr bool Trk::ParametersCommon< DIM, T >::isCharged ( ) const
constexprinherited

Returns true if Charged or false if Neutral.

◆ localPosition()

template<int DIM, class T >
Amg::Vector2D Trk::ParametersCommon< DIM, T >::localPosition ( ) const
inherited

Access method for the local coordinates, \((loc1,loc2)\) local parameter definitions differ for each surface type.

◆ measurementFrame()

template<int DIM, class T , class S >
virtual Amg::RotationMatrix3D Trk::CurvilinearParametersT< DIM, T, S >::measurementFrame ( ) const
finaloverridevirtual

Return the measurementFrame of the parameters.

Implements Trk::ParametersBase< DIM, T >.

◆ momentum()

template<int DIM, class T >
const Amg::Vector3D& Trk::ParametersBase< DIM, T >::momentum ( ) const
inherited

Access method for the momentum.

◆ operator=() [1/2]

template<int DIM, class T , class S >
CurvilinearParametersT<DIM, T, S>& Trk::CurvilinearParametersT< DIM, T, S >::operator= ( const CurvilinearParametersT< DIM, T, S > &  )
default

Assignment operator.

◆ operator=() [2/2]

template<int DIM, class T , class S >
CurvilinearParametersT<DIM, T, S>& Trk::CurvilinearParametersT< DIM, T, S >::operator= ( CurvilinearParametersT< DIM, T, S > &&  )
defaultnoexcept

Move assignment operator.

◆ operator==()

template<int DIM, class T , class S >
virtual bool Trk::CurvilinearParametersT< DIM, T, S >::operator== ( const ParametersBase< DIM, T > &  rhs) const
finaloverridevirtual

equality operator

Reimplemented from Trk::ParametersBase< DIM, T >.

◆ position()

template<int DIM, class T >
const Amg::Vector3D& Trk::ParametersBase< DIM, T >::position ( ) const
inherited

Access method for the position.

◆ pT()

template<int DIM, class T >
double Trk::ParametersBase< DIM, T >::pT ( ) const
inherited

Access method for transverse momentum.

◆ setcIdentifier()

template<int DIM, class T , class S >
void Trk::CurvilinearParametersT< DIM, T, S >::setcIdentifier ( unsigned int  cIdentifier)

◆ setCovariance()

template<int DIM, class T >
void Trk::ParametersCommon< DIM, T >::setCovariance ( const AmgSymMatrix(DIM) &  cov)
inherited

set covariance

◆ setParameters()

template<int DIM, class T >
void Trk::ParametersCommon< DIM, T >::setParameters ( const AmgVector(DIM) &  param)
inherited

set parameters

◆ surfaceType()

template<int DIM, class T , class S >
constexpr virtual SurfaceType Trk::CurvilinearParametersT< DIM, T, S >::surfaceType ( ) const
constexprfinaloverridevirtual

Return the Surface Type enum.

Implements Trk::ParametersBase< DIM, T >.

◆ type()

template<int DIM, class T , class S >
constexpr virtual ParametersType Trk::CurvilinearParametersT< DIM, T, S >::type ( ) const
constexprfinaloverridevirtual

Return the ParametersType enum.

Implements Trk::ParametersBase< DIM, T >.

◆ uniqueClone()

template<int DIM, class T >
std::unique_ptr<ParametersBase<DIM, T> > Trk::ParametersBase< DIM, T >::uniqueClone ( ) const
inlineinherited

clone method for polymorphic deep copy returning unique_ptr; it is not overriden, but uses the existing clone method.

Returns
new object copied from the concrete type of this object.

Definition at line 97 of file ParametersBase.h.

97  {
98  return std::unique_ptr<ParametersBase<DIM, T>>(this->clone());
99  }

◆ updateParameters() [1/2]

template<int DIM, class T >
void Trk::ParametersCommon< DIM, T >::updateParameters ( const AmgVector(DIM) &  )
inherited

Update parameters.

Derived classes override the implementation via updateParametersHelper as this could possibly lead to updating other data members

◆ updateParameters() [2/2]

template<int DIM, class T >
void Trk::ParametersCommon< DIM, T >::updateParameters ( const AmgVector(DIM) &  ,
const AmgSymMatrix(DIM) &   
)
inherited

Update parameters and covariance , passing covariance by ref.

A covariance is created if one does not exist. Otherwise in place update occurs via assignment.

Derived classes override the implementation via updateParametersHelper as this could possibly lead to updating other data members

◆ updateParametersHelper()

template<int DIM, class T , class S >
virtual void Trk::CurvilinearParametersT< DIM, T, S >::updateParametersHelper ( const AmgVector(DIM) &  )
finaloverrideprivatevirtual

contains the n parameters

Implements Trk::ParametersBase< DIM, T >.

Friends And Related Function Documentation

◆ ::MeasuredPerigeeCnv_p1

template<int DIM, class T , class S >
friend class ::MeasuredPerigeeCnv_p1
friend

Definition at line 151 of file CurvilinearParametersT.h.

◆ ::TrackParametersCnv_p2

template<int DIM, class T , class S >
friend class ::TrackParametersCnv_p2
friend

Definition at line 150 of file CurvilinearParametersT.h.

◆ ::TrackParametersCovarianceCnv

template<int DIM, class T , class S >
template<typename pars >
friend class ::TrackParametersCovarianceCnv
friend

Definition at line 149 of file CurvilinearParametersT.h.

◆ MaterialEffectsEngine

template<int DIM, class T , class S >
friend class MaterialEffectsEngine
friend

DESIGN TO BE REVISITED.

Definition at line 154 of file CurvilinearParametersT.h.

Member Data Documentation

◆ dim

template<int DIM, class T >
constexpr int Trk::ParametersCommon< DIM, T >::dim = DIM
staticconstexprinherited

Definition at line 50 of file ParametersCommon.h.

◆ m_chargeDef

template<int DIM, class T >
T Trk::ParametersCommon< DIM, T >::m_chargeDef {}
protectedinherited

charge definition for this track

Definition at line 149 of file ParametersCommon.h.

◆ m_cIdentifier

template<int DIM, class T , class S >
unsigned int Trk::CurvilinearParametersT< DIM, T, S >::m_cIdentifier = 0
protected

the curvilinear parameters identifier

Definition at line 144 of file CurvilinearParametersT.h.

◆ m_covariance

template<int DIM, class T >
std::optional<AmgSymMatrix(DIM)> Trk::ParametersCommon< DIM, T >::m_covariance = std::nullopt
protectedinherited

charge definition for this track

Definition at line 147 of file ParametersCommon.h.

◆ m_momentum

template<int DIM, class T >
Amg::Vector3D Trk::ParametersBase< DIM, T >::m_momentum
protectedinherited

momentum at this point on track

Definition at line 141 of file ParametersBase.h.

◆ m_position

template<int DIM, class T >
Amg::Vector3D Trk::ParametersBase< DIM, T >::m_position
protectedinherited

point on track

Definition at line 140 of file ParametersBase.h.

◆ m_surface

template<int DIM, class T , class S >
S Trk::CurvilinearParametersT< DIM, T, S >::m_surface
protected

surface template

Definition at line 142 of file CurvilinearParametersT.h.


The documentation for this class was generated from the following file:
Trk::ParametersBase::clone
virtual ParametersBase< DIM, T > * clone() const override=0
clone method for polymorphic deep copy