ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::CurvilinearParametersT< DIM, T, S > Class Template Referencefinal

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

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

Static Public Attributes

static constexpr int dim = DIM

Protected Member Functions

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

Protected Attributes

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

Private Member Functions

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

Friends

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

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:

  • the local position is per definition (0.,0.)
  • the surface is per definition a plane surface normal to the track (UVT frame)
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>
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>
virtual constexpr 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>
virtual constexpr 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 {
99 }
The base class for neutral and charged Track parameters.
virtual ParametersBase< DIM, T > * clone() const override=0
clone method for polymorphic deep copy

◆ 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 >.

◆ ::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>
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.

149{};

◆ 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: