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

Combine the bound track parameter vector with the covariance and associated surface. More...

#include <detray/tracks/bound_track_parameters.hpp>

Inheritance diagram for detray::bound_track_parameters< algebra_t >:
[legend]
Collaboration diagram for detray::bound_track_parameters< algebra_t >:
[legend]

Public Types

using base_type = bound_parameters_vector<algebra_t>
 Base parameter-vector type inherited by this track state.
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 point2_type = dpoint2D<algebra_t>
 Two-dimensional type for local surface coordinates.
using vector3_type = dvector3D<algebra_t>
 Three-dimensional type for directions and momentum.
using parameter_vector_type = bound_parameters_vector<algebra_t>
 Type of the bound track parameter vector.
using covariance_type = bound_matrix<algebra_t>
 Matrix type storing covariance between bound parameters.
Public Types inherited from detray::bound_parameters_vector< algebra_t >
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 point2_type = dpoint2D<algebra_t>
 Two-dimensional type for local surface coordinates.
using vector3_type = dvector3D<algebra_t>
 Three-dimensional type for directions and momentum.
using vector_type = bound_vector<algebra_t>
 Fixed-size vector storing the six bound parameters.

Public Member Functions

 bound_track_parameters ()=default
 Default constructor sets the covaraicne to zero.
 bound_track_parameters (const geometry::identifier sf_idx, const parameter_vector_type &vec, const covariance_type &cov)
 Construct a bound state on a surface with a parameter vector and covariance.
covariance_type & covariance ()
const covariance_type & covariance () const
constexpr bool is_invalid (const bool do_check=true) const
bool operator== (const bound_track_parameters &rhs) const
 Compare all six bound parameters within scalar precision.
void set_covariance (const covariance_type &c)
 Set the track parameter covariance.
void set_parameter_vector (const parameter_vector_type &v, const bool skip_check=false)
 Set the track parameter vector.
void set_surface_link (geometry::identifier link)
 Set the identifier of the associated surface.
const geometry::identifier & surface_link () const
Public Member Functions inherited from detray::bound_parameters_vector< algebra_t >
 bound_parameters_vector ()=default
 Default constructor.
 bound_parameters_vector (const point2_type &loc_p, const scalar_type phi, const scalar_type theta, const scalar_type qop, const scalar_type t)
 Construct from single parameters.
 bound_parameters_vector (const vector_type &vec)
 Construct from a 6-dim vector of parameters.
point2_type bound_local () const
vector3_type dir () const
constexpr bool is_invalid (const bool do_check=true) const
vector3_type mom (const scalar_type q) const
bool operator== (const bound_parameters_vector &rhs) const
 Compare all six bound parameters within scalar precision.
decltype(auto) operator[] (const std::size_t i)
 Convenience access to the track parameters - non-const.
scalar_type operator[] (const std::size_t i) const
 Convenience access to the track parameters - const.
scalar_type p (const scalar_type q) const
scalar_type phi () 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_bound_local (const point2_type &pos)
 Set the bound local position.
void set_phi (const scalar_type phi)
 Set the global phi angle.
void set_qop (const scalar_type qop)
 Set the q/p value.
void set_theta (const scalar_type theta)
 Set the global theta angle.
void set_time (const scalar_type t)
 Set the time.
void set_vector (const vector_type &v, const bool skip_check=false)
 Set the underlying vector.
scalar_type theta () const
scalar_type time () const
vector_type & vector ()
 Access the track parameters as a 6-dim vector - non-const.
const vector_type & vector () const
 Access the track parameters as a 6-dim vector - const.

Detailed Description

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

Combine the bound track parameter vector with the covariance and associated surface.

Constructor & Destructor Documentation

◆ bound_track_parameters()

template<concepts::algebra algebra_t>
detray::bound_track_parameters< algebra_t >::bound_track_parameters ( const geometry::identifier sf_idx,
const parameter_vector_type & vec,
const covariance_type & cov )

Construct a bound state on a surface with a parameter vector and covariance.

Parameters
sf_idxidentifier of the surface carrying the state
vecbound parameter values
covcovariance matrix in the bound parameter basis

Member Function Documentation

◆ covariance() [1/2]

template<concepts::algebra algebra_t>
covariance_type & detray::bound_track_parameters< algebra_t >::covariance ( )
Returns
the track parameter covariance - non-const

◆ covariance() [2/2]

template<concepts::algebra algebra_t>
const covariance_type & detray::bound_track_parameters< algebra_t >::covariance ( ) const
Returns
the track parameter covariance - const

◆ is_invalid()

template<concepts::algebra algebra_t>
bool detray::bound_track_parameters< algebra_t >::is_invalid ( const bool do_check = true) const
constexpr
Parameters
do_checktoggle checking (e.g. don't trigger assertions for documented errors)
Returns
true if the parameter vector contains invalid elements

◆ operator==()

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

Compare all six bound parameters within scalar precision.

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

◆ set_covariance()

template<concepts::algebra algebra_t>
void detray::bound_track_parameters< algebra_t >::set_covariance ( const covariance_type & c)

Set the track parameter covariance.

Parameters
ccovariance in the bound parameter basis

◆ set_parameter_vector()

template<concepts::algebra algebra_t>
void detray::bound_track_parameters< algebra_t >::set_parameter_vector ( const parameter_vector_type & v,
const bool skip_check = false )

Set the track parameter vector.

Parameters
vnew bound parameter vector
skip_checkbypass the validity assertion when true

◆ set_surface_link()

template<concepts::algebra algebra_t>
void detray::bound_track_parameters< algebra_t >::set_surface_link ( geometry::identifier link)

Set the identifier of the associated surface.

Parameters
linkidentifier of the new associated surface

◆ surface_link()

template<concepts::algebra algebra_t>
const geometry::identifier & detray::bound_track_parameters< algebra_t >::surface_link ( ) const
Returns
the identifier of the associated surface