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

Dummy class used to allow special convertors to be called for surfaces owned by a detector element. More...

#include <ParametersT.h>

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

Public Member Functions

 ParametersT ()=default
 default constructor ONLY for POOL
 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 AmgVector(DIM) &parameters, const S &surface, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt)
 Constructor with parameters - extract position and momentum.
 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 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.
 ParametersT (const ParametersT< DIM, T, S > &rhs)=default
 Copy constructor.
 ParametersT (ParametersT< DIM, T, S > &&rhs) noexcept=default
 Move constructor.
ParametersT< DIM, T, S > & operator= (const ParametersT< DIM, T, S > &rhs)=default
 Assignment operator.
ParametersT< DIM, T, S > & operator= (ParametersT< DIM, T, S > &&rhs) noexcept=default
 Move assignment operator.
virtual ~ParametersT ()=default
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
bool operator== (const ParametersT &rhs) const
virtual ParametersT< 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.
const S * surfacePtr ()
 return the ptr we hold
void destroySurface () noexcept
 destroySurface deletes the ptr if not null and is free usefull also for testing
const S * release () noexcept
 release , release the unique_ptr we hold

Static Public Attributes

static constexpr int dim = DIM

Protected Member Functions

 ParametersT (const AmgVector(DIM) &parameters, const S *surface, std::optional< AmgSymMatrix(DIM)> covariance=std::nullopt)
 Constructor for persistency.
 AmgVector (DIM) m_parameters
 contains the n x n covariance matrix

Protected Attributes

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
SurfaceUniquePtrT< const S > m_associatedSurface = nullptr

Private Member Functions

virtual void updateParametersHelper (const AmgVector(DIM) &) override final
 contains the n parameters

Friends

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

Detailed Description

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

Dummy class used to allow special convertors to be called for surfaces owned by a detector element.

The class for charged and neutral track representations containing.

Only intended for use within the persistency framework.

  • the parameters vector
  • charge
  • position
  • momentum

Which can be returned by the parameters() method as a Amg::Vector(DIM): \(\left(\begin{array}{c} x\\y\\z\\p_{x}\\p_{y}\\p_{z}\end{array}\right) \)

Template Parameters
DIMnumber of track parameters (usually 5)
Tcharge of track (either Trk::Charged or Trk::Neutral)
Stype of surface
Author
edwar.nosp@m.d.mo.nosp@m.yse@c.nosp@m.ern..nosp@m.ch, 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 46 of file ParametersT.h.

Constructor & Destructor Documentation

◆ ParametersT() [1/8]

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

default constructor ONLY for POOL

◆ ParametersT() [2/8]

template<int DIM, class T, class S>
Trk::ParametersT< DIM, T, S >::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() [3/8]

template<int DIM, class T, class S>
Trk::ParametersT< DIM, T, S >::ParametersT ( const AmgVector(DIM) & parameters,
const S & surface,
std::optional< AmgSymMatrix(DIM)> covariance = std::nullopt )

Constructor with parameters - extract position and momentum.

◆ ParametersT() [4/8]

template<int DIM, class T, class S>
Trk::ParametersT< DIM, T, S >::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() [5/8]

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

◆ ParametersT() [6/8]

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

Copy constructor.

◆ ParametersT() [7/8]

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

Move constructor.

◆ ~ParametersT()

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

◆ ParametersT() [8/8]

template<int DIM, class T, class S>
Trk::ParametersT< DIM, T, S >::ParametersT ( const AmgVector(DIM) & parameters,
const S * surface,
std::optional< AmgSymMatrix(DIM)> covariance = std::nullopt )
protected

Constructor for persistency.

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

◆ clone()

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

Virtual clone.

Implements Trk::ParametersBase< DIM, T >.

◆ destroySurface()

template<typename S>
void Trk::SurfaceUniqHolderImpl< S >::destroySurface ( )
inlinenoexceptinherited

destroySurface deletes the ptr if not null and is free usefull also for testing

Definition at line 282 of file SurfaceHolderImpl.h.

282{ m_associatedSurface.reset(); }
SurfaceUniquePtrT< const S > m_associatedSurface

◆ dump() [1/2]

template<int DIM, class T, class S>
virtual MsgStream & Trk::ParametersT< 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::ParametersT< 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::ParametersT< 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::ParametersT< 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>
ParametersT< DIM, T, S > & Trk::ParametersT< DIM, T, S >::operator= ( const ParametersT< DIM, T, S > & rhs)
default

Assignment operator.

◆ operator=() [2/2]

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

Move assignment operator.

◆ operator==() [1/2]

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

equality operator

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

◆ operator==() [2/2]

template<int DIM, class T, class S>
bool Trk::ParametersT< DIM, T, S >::operator== ( const ParametersT< DIM, T, S > & rhs) const

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

◆ release()

template<typename S>
const S * Trk::SurfaceUniqHolderImpl< S >::release ( )
inlinenoexceptinherited

release , release the unique_ptr we hold

Definition at line 285 of file SurfaceHolderImpl.h.

285{ return m_associatedSurface.release(); }

◆ 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

◆ surfacePtr()

template<typename S>
const S * Trk::SurfaceUniqHolderImpl< S >::surfacePtr ( )
inlineinherited

return the ptr we hold

Definition at line 278 of file SurfaceHolderImpl.h.

278{ return m_associatedSurface.get(); }

◆ surfaceType()

template<int DIM, class T, class S>
virtual constexpr SurfaceType Trk::ParametersT< 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::ParametersT< 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::ParametersT< DIM, T, S >::updateParametersHelper ( const AmgVector(DIM) & )
finaloverrideprivatevirtual

contains the n parameters

Implements Trk::ParametersBase< DIM, T >.

◆ ::AtaSurfaceCnv_p1

template<int DIM, class T, class S>
template<class SURFACE_CNV, class ATA_SURFACE>
friend class ::AtaSurfaceCnv_p1
friend

Definition at line 159 of file ParametersT.h.

◆ ::MeasuredPerigeeCnv_p1

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

Definition at line 157 of file ParametersT.h.

◆ ::TrackParametersCnv_p2

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

Definition at line 156 of file ParametersT.h.

◆ ::TrackParametersCovarianceCnv

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

Definition at line 155 of file ParametersT.h.

◆ MaterialEffectsEngine

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

DESIGN TO BE REVISITED.

Definition at line 162 of file ParametersT.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_associatedSurface

template<typename S>
SurfaceUniquePtrT<const S> Trk::SurfaceUniqHolderImpl< S >::m_associatedSurface = nullptr
protectedinherited

Definition at line 288 of file SurfaceHolderImpl.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_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.


The documentation for this class was generated from the following files: