ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::detail::helix< algebra_t > Class Template Reference

describes a helical trajectory in a given B-field. More...

#include <detray/tracks/helix.hpp>

Inheritance diagram for detray::detail::helix< algebra_t >:
[legend]

Public Types

using algebra_type = algebra_t
 Algebra backend used by the helix calculations.
using free_matrix_t = free_matrix<algebra_t>
 Matrix type for the free-parameter transport Jacobian.
using free_track_parameters_type = free_track_parameters<algebra_t>
 Free track parameters.
template<std::size_t ROWS, std::size_t COLS>
using matrix_type = dmatrix<algebra_t, ROWS, COLS>
 2D Matrix type
using point3_type = dpoint3D<algebra_t>
 Three-dimensional position type.
using scalar_type = dscalar<algebra_t>
 Scalar type used for path length and field values.
using transform3_type = dtransform3D<algebra_t>
 Three-dimensional transform type associated with the algebra.
using vector3_type = dvector3D<algebra_t>
 Three-dimensional direction and field type.

Public Member Functions

template<typename field_view_t>
requires (!concepts::vector3D<field_view_t>)
 helix (const free_track_parameters_type &track, const field_view_t mag_field)
 Build a helix using a field view sampled at the track position.
 helix (const free_track_parameters_type &track, const vector3_type &mag_field)
 Build a helix from a free track state and a uniform field vector.
 helix (const point3_type &pos, const scalar_type time, const vector3_type &dir, const scalar_type qop, const vector3_type &mag_field)
 Parametrized constructor.
scalar_type B () const
 Return the magnitude of the uniform magnetic field.
vector3_type b_field () const
 Return the uniform magnetic field vector.
point3_type dir () const
 Return the initial unit tangent direction.
vector3_type dir (const scalar_type s) const
 Evaluate the unit tangent direction at a path length.
free_matrix_t jacobian (const scalar_type s) const
 Compute the free-parameter transport Jacobian at a path length.
point3_type operator() (const scalar_type s) const
 Evaluate the helix at a path length.
point3_type pos () const
 Return the initial position of the helix.
point3_type pos (const scalar_type s) const
 Evaluate the helix position at a path length.
scalar_type qop () const
 Return the signed inverse momentum used to define the curvature.
scalar_type radius () const
scalar_type time () const
 Return the time at the initial state.

Detailed Description

template<concepts::algebra algebra_t>
class detray::detail::helix< algebra_t >

describes a helical trajectory in a given B-field.

Helix class for the analytical solution of track propagation in homogeneous B field. This Follows the notation of Eq (4.7) in DOI:10.1007/978-3-030-65771-0

Constructor & Destructor Documentation

◆ helix() [1/3]

template<concepts::algebra algebra_t>
detray::detail::helix< algebra_t >::helix ( const point3_type & pos,
const scalar_type time,
const vector3_type & dir,
const scalar_type qop,
const vector3_type & mag_field )

Parametrized constructor.

Parameters
posthe the origin of the helix
timethe time parameter
dirthe initial normalized direction for the helix
qopsigned inverse momentum of the particle
mag_fieldthe magnetic field vector

◆ helix() [2/3]

template<concepts::algebra algebra_t>
detray::detail::helix< algebra_t >::helix ( const free_track_parameters_type & track,
const vector3_type & mag_field )

Build a helix from a free track state and a uniform field vector.

Parameters
trackfree track state providing position, direction, time, and q/p
mag_fieldmagnetic field vector at the track position

◆ helix() [3/3]

template<concepts::algebra algebra_t>
template<typename field_view_t>
requires (!concepts::vector3D<field_view_t>)
detray::detail::helix< algebra_t >::helix ( const free_track_parameters_type & track,
const field_view_t mag_field )

Build a helix using a field view sampled at the track position.

Parameters
trackfree track state to propagate
mag_fieldfield view sampled at the initial position
Note
This overload accepts field views other than three-dimensional vectors.

Member Function Documentation

◆ B()

template<concepts::algebra algebra_t>
scalar_type detray::detail::helix< algebra_t >::B ( ) const

Return the magnitude of the uniform magnetic field.

Returns
field magnitude

◆ b_field()

template<concepts::algebra algebra_t>
vector3_type detray::detail::helix< algebra_t >::b_field ( ) const

Return the uniform magnetic field vector.

Returns
field vector used for this helix

◆ dir() [1/2]

template<concepts::algebra algebra_t>
point3_type detray::detail::helix< algebra_t >::dir ( ) const

Return the initial unit tangent direction.

Returns
direction at path length zero

◆ dir() [2/2]

template<concepts::algebra algebra_t>
vector3_type detray::detail::helix< algebra_t >::dir ( const scalar_type s) const

Evaluate the unit tangent direction at a path length.

Parameters
ssigned path length from the initial state
Returns
the tangential vector after propagating the path length of s

◆ jacobian()

template<concepts::algebra algebra_t>
free_matrix_t detray::detail::helix< algebra_t >::jacobian ( const scalar_type s) const

Compute the free-parameter transport Jacobian at a path length.

Parameters
ssigned path length from the initial state
Returns
the transport jacobian after propagating the path length of s

◆ operator()()

template<concepts::algebra algebra_t>
point3_type detray::detail::helix< algebra_t >::operator() ( const scalar_type s) const

Evaluate the helix at a path length.

Parameters
ssigned path length from the initial state
Returns
the position after propagating the path length of s

◆ pos() [1/2]

template<concepts::algebra algebra_t>
point3_type detray::detail::helix< algebra_t >::pos ( ) const

Return the initial position of the helix.

Returns
global position at path length zero

◆ pos() [2/2]

template<concepts::algebra algebra_t>
point3_type detray::detail::helix< algebra_t >::pos ( const scalar_type s) const

Evaluate the helix position at a path length.

Parameters
ssigned path length from the initial state
Returns
the position after propagating the path length of s

◆ qop()

template<concepts::algebra algebra_t>
scalar_type detray::detail::helix< algebra_t >::qop ( ) const

Return the signed inverse momentum used to define the curvature.

Returns
initial q/p value

◆ radius()

template<concepts::algebra algebra_t>
scalar_type detray::detail::helix< algebra_t >::radius ( ) const
Returns
the radius of helix

◆ time()

template<concepts::algebra algebra_t>
scalar_type detray::detail::helix< algebra_t >::time ( ) const

Return the time at the initial state.

Returns
initial particle time