ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::free_parameters_vector< algebra_t > Struct Template Reference

Six-component parameter vector expressed in global Cartesian coordinates. More...

#include <detray/tracks/free_track_parameters.hpp>

Public Types

Type definitions for the struct
using algebra_type = algebra_t
 Algebra backend used for the vector operations.
using scalar_type = dscalar<algebra_t>
 Scalar type used by the stored parameters.
using point3_type = dpoint3D<algebra_t>
 Three-dimensional type for global positions.
using vector3_type = dvector3D<algebra_t>
 Three-dimensional type for directions and momentum.
using vector_type = free_vector<algebra_t>
 Fixed-size vector storing the free parameters.

Public Member Functions

 free_parameters_vector ()=default
 Default constructor.
 free_parameters_vector (const point3_type &pos, const scalar_type time, const vector3_type &mom, const scalar_type q)
 Construct from single parameters.
 free_parameters_vector (const vector_type &vec)
 Construct from a 6-dim vector of parameters.
vector3_type dir () const
constexpr bool is_invalid () const
vector3_type mom (const scalar_type q) const
bool operator== (const free_parameters_vector &rhs) const
 Compare all free parameters within scalar precision.
decltype(auto) operator[] (std::size_t i)
 Convenience access to the track parameters - non-const.
scalar_type operator[] (std::size_t i) const
 Convenience access to the track parameters - const.
scalar_type p (const scalar_type q) const
point3_type pos () const
scalar_type pT (const scalar_type q) const
scalar_type pz (const scalar_type q) const
scalar_type qop () const
scalar_type qopT () const
scalar_type qopz () const
void set_dir (const vector3_type &dir)
 Set the global track direction.
void set_pos (const vector3_type &pos)
 Set the global track position.
void set_qop (const scalar_type qop)
 Set the q/p value.
void set_time (const scalar_type t)
 Set the time.
scalar_type time () const
const vector_type & vector () const

Detailed Description

template<concepts::algebra algebra_t>
struct detray::free_parameters_vector< algebra_t >

Six-component parameter vector expressed in global Cartesian coordinates.

Constructor & Destructor Documentation

◆ free_parameters_vector() [1/2]

template<concepts::algebra algebra_t>
detray::free_parameters_vector< algebra_t >::free_parameters_vector ( const vector_type & vec)
explicit

Construct from a 6-dim vector of parameters.

Parameters
vecvector containing the free parameters in canonical order

◆ free_parameters_vector() [2/2]

template<concepts::algebra algebra_t>
detray::free_parameters_vector< algebra_t >::free_parameters_vector ( const point3_type & pos,
const scalar_type time,
const vector3_type & mom,
const scalar_type q )

Construct from single parameters.

Parameters
posthe global position
timethe time
momthe global track momentum 3-vector
qthe particle charge

Member Function Documentation

◆ dir()

template<concepts::algebra algebra_t>
vector3_type detray::free_parameters_vector< algebra_t >::dir ( ) const
Returns
the normalized, global track direction

◆ is_invalid()

template<concepts::algebra algebra_t>
bool detray::free_parameters_vector< algebra_t >::is_invalid ( ) const
constexpr
Returns
true if the parameter vector contains invalid elements or the direction is not normalized

◆ mom()

template<concepts::algebra algebra_t>
vector3_type detray::free_parameters_vector< algebra_t >::mom ( const scalar_type q) const
Parameters
qparticle charge
Returns
the global momentum 3-vector

◆ operator==()

template<concepts::algebra algebra_t>
bool detray::free_parameters_vector< algebra_t >::operator== ( const free_parameters_vector< algebra_t > & rhs) const

Compare all free parameters within scalar precision.

Parameters
rhsparameter vector to compare with this vector
Returns
whether every component agrees within machine precision

◆ operator[]() [1/2]

template<concepts::algebra algebra_t>
decltype(auto) detray::free_parameters_vector< algebra_t >::operator[] ( std::size_t i)

Convenience access to the track parameters - non-const.

Parameters
iindex in the free parameter vector
Returns
a reference to the selected parameter

◆ operator[]() [2/2]

template<concepts::algebra algebra_t>
scalar_type detray::free_parameters_vector< algebra_t >::operator[] ( std::size_t i) const

Convenience access to the track parameters - const.

Parameters
iindex in the free parameter vector
Returns
the selected parameter value

◆ p()

template<concepts::algebra algebra_t>
scalar_type detray::free_parameters_vector< algebra_t >::p ( const scalar_type q) const
Parameters
qparticle charge
Returns
the absolute momentum

◆ pos()

template<concepts::algebra algebra_t>
point3_type detray::free_parameters_vector< algebra_t >::pos ( ) const
Returns
the global track position

◆ pT()

template<concepts::algebra algebra_t>
scalar_type detray::free_parameters_vector< algebra_t >::pT ( const scalar_type q) const
Parameters
qparticle charge
Returns
the transverse momentum

◆ pz()

template<concepts::algebra algebra_t>
scalar_type detray::free_parameters_vector< algebra_t >::pz ( const scalar_type q) const
Parameters
qparticle charge
Returns
the absolute momentum z-component

◆ qop()

template<concepts::algebra algebra_t>
scalar_type detray::free_parameters_vector< algebra_t >::qop ( ) const
Returns
the q/p value

◆ qopT()

template<concepts::algebra algebra_t>
scalar_type detray::free_parameters_vector< algebra_t >::qopT ( ) const
Returns
the q/p_T value

◆ qopz()

template<concepts::algebra algebra_t>
scalar_type detray::free_parameters_vector< algebra_t >::qopz ( ) const
Returns
the q/p_z value

◆ set_dir()

template<concepts::algebra algebra_t>
void detray::free_parameters_vector< algebra_t >::set_dir ( const vector3_type & dir)

Set the global track direction.

Parameters
dirnew unit direction vector
Note
Must be normalized!

◆ set_pos()

template<concepts::algebra algebra_t>
void detray::free_parameters_vector< algebra_t >::set_pos ( const vector3_type & pos)

Set the global track position.

Parameters
posnew global position

◆ set_qop()

template<concepts::algebra algebra_t>
void detray::free_parameters_vector< algebra_t >::set_qop ( const scalar_type qop)

Set the q/p value.

Parameters
qopsigned charge divided by momentum

◆ set_time()

template<concepts::algebra algebra_t>
void detray::free_parameters_vector< algebra_t >::set_time ( const scalar_type t)

Set the time.

Parameters
ttime value

◆ time()

template<concepts::algebra algebra_t>
scalar_type detray::free_parameters_vector< algebra_t >::time ( ) const
Returns
the time

◆ vector()

template<concepts::algebra algebra_t>
const vector_type & detray::free_parameters_vector< algebra_t >::vector ( ) const
Returns
the track parameters as an algebra vector