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

Configuration for the uniform track generator. More...

#include <detray/test/common/event_generator/uniform_track_generator_config.hpp>

Collaboration diagram for detray::uniform_track_generator_config< scalar_t >:
[legend]

Public Types

using seed_t = std::uint64_t
 Random engine seed type.

Public Member Functions

uniform_track_generator_config & seed (const seed_t s)
 Setters.
uniform_track_generator_config & phi_range (scalar_t low, scalar_t high)
template<typename o_scalar_t>
uniform_track_generator_config & phi_range (darray< o_scalar_t, 2 > r)
uniform_track_generator_config & theta_range (scalar_t low, scalar_t high)
template<typename o_scalar_t>
uniform_track_generator_config & theta_range (darray< o_scalar_t, 2 > r)
uniform_track_generator_config & eta_range (scalar_t low, scalar_t high)
template<typename o_scalar_t>
uniform_track_generator_config & eta_range (darray< o_scalar_t, 2 > r)
uniform_track_generator_config & phi_steps (std::size_t n)
uniform_track_generator_config & theta_steps (std::size_t n)
uniform_track_generator_config & eta_steps (std::size_t n)
uniform_track_generator_config & uniform_eta (bool b)
uniform_track_generator_config & origin (const scalar_t x, const scalar_t y, const scalar_t z)
template<concepts::point3D point3_t>
uniform_track_generator_config & origin (const point3_t &ori)
uniform_track_generator_config & p_tot (scalar_t p)
uniform_track_generator_config & p_T (scalar_t p)
uniform_track_generator_config & randomize_charge (bool rc)
uniform_track_generator_config & time (scalar_t t)
uniform_track_generator_config & charge (scalar_t q)
constexpr seed_t seed () const
 Getters.
constexpr std::size_t n_tracks () const
constexpr darray< scalar_t, 2 > phi_range () const
constexpr darray< scalar_t, 2 > theta_range () const
constexpr darray< scalar_t, 2 > eta_range () const
constexpr darray< scalar_t, 2 > mom_range () const
constexpr std::size_t phi_steps () const
constexpr std::size_t theta_steps () const
constexpr std::size_t eta_steps () const
constexpr bool uniform_eta () const
constexpr const auto & origin () const
constexpr bool is_pT () const
constexpr bool randomize_charge () const
constexpr scalar_t time () const
constexpr scalar_t charge () const

Public Attributes

scalar_t m_charge {-1.f * unit<scalar_t>::e}
 Track charge.
darray< scalar_t, 2 > m_eta_range {-5.f, 5.f}
 Pseudorapidity range.
bool m_is_pT {false}
 Whether to interpret the momentum m_p_mag as p_T.
darray< scalar_t, 3 > m_origin {0.f, 0.f, 0.f}
 Track origin.
scalar_t m_p_mag {1.f * unit<scalar_t>::GeV}
 Magnitude of momentum: Default is one to keep directions normalized if no momentum information is needed (e.g.
darray< scalar_t, 2 > m_phi_range {-constant<scalar_t>::pi, k_max_pi}
 Range for phi [-pi, pi) and theta [0, pi).
std::size_t m_phi_steps {50u}
 Angular step size.
bool m_randomize_charge {false}
 Randomly flip the charge sign?
seed_t m_seed {detail::random_numbers<scalar_t>::default_seed()}
 Monte-Carlo seed.
darray< scalar_t, 2 > m_theta_range {0.f, k_max_pi}
 Polar angle range.
std::size_t m_theta_steps {50u}
 Number of polar angle or pseudorapidity steps.
scalar_t m_time {0.f * unit<scalar_t>::us}
 Time parameter and charge of the track.
bool m_uniform_eta {false}
 Do uniform eta steps instead of uniform theta steps (use same number of steps and range).

Static Public Attributes

static constexpr scalar_t k_max_pi
 Ensure same angle space as random track generator.

Detailed Description

template<concepts::scalar scalar_t>
struct detray::uniform_track_generator_config< scalar_t >

Configuration for the uniform track generator.

Member Function Documentation

◆ charge() [1/2]

template<concepts::scalar scalar_t>
scalar_t detray::uniform_track_generator_config< scalar_t >::charge ( ) const
constexpr
Returns
track charge

◆ charge() [2/2]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::charge ( scalar_t q)
Parameters
qtrack charge
Returns
this configuration

◆ eta_range() [1/3]

template<concepts::scalar scalar_t>
darray< scalar_t, 2 > detray::uniform_track_generator_config< scalar_t >::eta_range ( ) const
constexpr
Returns
pseudorapidity range

◆ eta_range() [2/3]

template<concepts::scalar scalar_t>
template<typename o_scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::eta_range ( darray< o_scalar_t, 2 > r)
Parameters
rpseudorapidity range
Returns
this configuration

◆ eta_range() [3/3]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::eta_range ( scalar_t low,
scalar_t high )
Parameters
lowlower bound of the pseudorapidity range
highupper bound of the pseudorapidity range
Returns
this configuration

◆ eta_steps() [1/2]

template<concepts::scalar scalar_t>
std::size_t detray::uniform_track_generator_config< scalar_t >::eta_steps ( ) const
constexpr
Returns
number of pseudorapidity steps

◆ eta_steps() [2/2]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::eta_steps ( std::size_t n)
Parameters
nnumber of pseudorapidity steps
Returns
this configuration

◆ is_pT()

template<concepts::scalar scalar_t>
bool detray::uniform_track_generator_config< scalar_t >::is_pT ( ) const
constexpr
Returns
whether momentum is interpreted as transverse momentum

◆ mom_range()

template<concepts::scalar scalar_t>
darray< scalar_t, 2 > detray::uniform_track_generator_config< scalar_t >::mom_range ( ) const
constexpr
Returns
momentum range

◆ n_tracks()

template<concepts::scalar scalar_t>
std::size_t detray::uniform_track_generator_config< scalar_t >::n_tracks ( ) const
constexpr
Returns
number of tracks to generate

◆ origin() [1/3]

template<concepts::scalar scalar_t>
const auto & detray::uniform_track_generator_config< scalar_t >::origin ( ) const
constexpr
Returns
track origin

◆ origin() [2/3]

template<concepts::scalar scalar_t>
template<concepts::point3D point3_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::origin ( const point3_t & ori)
Parameters
oritrack origin
Returns
this configuration

◆ origin() [3/3]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::origin ( const scalar_t x,
const scalar_t y,
const scalar_t z )
Parameters
xx component of the track origin
yy component of the track origin
zz component of the track origin
Returns
this configuration

◆ p_T()

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::p_T ( scalar_t p)
Parameters
ptransverse momentum magnitude
Returns
this configuration

◆ p_tot()

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::p_tot ( scalar_t p)
Parameters
ptotal momentum magnitude
Returns
this configuration

◆ phi_range() [1/3]

template<concepts::scalar scalar_t>
darray< scalar_t, 2 > detray::uniform_track_generator_config< scalar_t >::phi_range ( ) const
constexpr
Returns
azimuthal angle range

◆ phi_range() [2/3]

template<concepts::scalar scalar_t>
template<typename o_scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::phi_range ( darray< o_scalar_t, 2 > r)
Parameters
razimuthal angle range
Returns
this configuration

◆ phi_range() [3/3]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::phi_range ( scalar_t low,
scalar_t high )
Parameters
lowlower bound of the azimuthal angle range
highupper bound of the azimuthal angle range
Returns
this configuration

◆ phi_steps() [1/2]

template<concepts::scalar scalar_t>
std::size_t detray::uniform_track_generator_config< scalar_t >::phi_steps ( ) const
constexpr
Returns
number of azimuthal steps

◆ phi_steps() [2/2]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::phi_steps ( std::size_t n)
Parameters
nnumber of azimuthal steps
Returns
this configuration

◆ randomize_charge() [1/2]

template<concepts::scalar scalar_t>
bool detray::uniform_track_generator_config< scalar_t >::randomize_charge ( ) const
constexpr
Returns
whether to randomize the charge sign

◆ randomize_charge() [2/2]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::randomize_charge ( bool rc)
Parameters
rcwhether to randomize the charge sign
Returns
this configuration

◆ seed() [1/2]

template<concepts::scalar scalar_t>
seed_t detray::uniform_track_generator_config< scalar_t >::seed ( ) const
constexpr

Getters.

Returns
random engine seed

◆ seed() [2/2]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::seed ( const seed_t s)

Setters.

Parameters
srandom engine seed
Returns
this configuration

◆ theta_range() [1/3]

template<concepts::scalar scalar_t>
darray< scalar_t, 2 > detray::uniform_track_generator_config< scalar_t >::theta_range ( ) const
constexpr
Returns
polar angle range

◆ theta_range() [2/3]

template<concepts::scalar scalar_t>
template<typename o_scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::theta_range ( darray< o_scalar_t, 2 > r)
Parameters
rpolar angle range
Returns
this configuration

◆ theta_range() [3/3]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::theta_range ( scalar_t low,
scalar_t high )
Parameters
lowlower bound of the polar angle range
highupper bound of the polar angle range
Returns
this configuration

◆ theta_steps() [1/2]

template<concepts::scalar scalar_t>
std::size_t detray::uniform_track_generator_config< scalar_t >::theta_steps ( ) const
constexpr
Returns
number of polar angle steps

◆ theta_steps() [2/2]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::theta_steps ( std::size_t n)
Parameters
nnumber of polar angle steps
Returns
this configuration

◆ time() [1/2]

template<concepts::scalar scalar_t>
scalar_t detray::uniform_track_generator_config< scalar_t >::time ( ) const
constexpr
Returns
track time

◆ time() [2/2]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::time ( scalar_t t)
Parameters
ttrack time
Returns
this configuration

◆ uniform_eta() [1/2]

template<concepts::scalar scalar_t>
bool detray::uniform_track_generator_config< scalar_t >::uniform_eta ( ) const
constexpr
Returns
whether to step uniformly in pseudorapidity

◆ uniform_eta() [2/2]

template<concepts::scalar scalar_t>
uniform_track_generator_config & detray::uniform_track_generator_config< scalar_t >::uniform_eta ( bool b)
Parameters
bwhether to step uniformly in pseudorapidity
Returns
this configuration

Member Data Documentation

◆ k_max_pi

template<concepts::scalar scalar_t>
scalar_t detray::uniform_track_generator_config< scalar_t >::k_max_pi
staticconstexpr
Initial value:
std::numeric_limits<scalar_t>::epsilon()}
static constexpr scalar_t pi
π
Definition units.hpp:136

Ensure same angle space as random track generator.

◆ m_p_mag

template<concepts::scalar scalar_t>
scalar_t detray::uniform_track_generator_config< scalar_t >::m_p_mag {1.f * unit<scalar_t>::GeV}

Magnitude of momentum: Default is one to keep directions normalized if no momentum information is needed (e.g.

for a ray)