ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::uniform_track_generator< track_t, generator_t > Class Template Reference

Generates track states with momentum directions in a uniform angle space. More...

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

Inheritance diagram for detray::uniform_track_generator< track_t, generator_t >:
[legend]
Collaboration diagram for detray::uniform_track_generator< track_t, generator_t >:
[legend]

Public Types

using configuration = uniform_track_generator_config<scalar_t>
 Configure how tracks are generated.
using iterator_t = iterator
 Iterator type used to enumerate generated tracks.
using track_type = track_t
 Track type produced by the generator.

Public Member Functions

constexpr uniform_track_generator ()=default
 Default constructor.
constexpr uniform_track_generator (configuration cfg)
 Construct from external configuration cfg.
 uniform_track_generator (std::size_t n_phi, std::size_t n_theta, scalar_t p_mag=1.f *unit< scalar_t >::GeV, bool uniform_eta=false, scalar_t charge=-1.f *unit< scalar_t >::e)
 Paramtetrized constructor for quick construction of simple tasks.
 uniform_track_generator (uniform_track_generator &&other) noexcept
 Move constructor.
constexpr auto begin () noexcept -> iterator
constexpr configuration & config ()
 Access the configuration.
constexpr auto end () noexcept -> iterator
constexpr uniform_track_generator & operator= (const uniform_track_generator &other)
 Copy assignment operator.
constexpr auto size () const noexcept -> std::size_t

Detailed Description

template<typename track_t, typename generator_t = detail::random_numbers<dscalar<typename track_t::algebra_type>>>
class detray::uniform_track_generator< track_t, generator_t >

Generates track states with momentum directions in a uniform angle space.

It generates the track instances on the fly according to given parameters and with the momentum direction determined by phi and theta angles, which are advanced as the iteration proceeds. The angle space spans theta [0, pi) x phi [-pi, pi), while the step sizes (and with them the number of generated tracks) are configurable.

Template Parameters
track_tthe type of track parametrization that should be used.

Constructor & Destructor Documentation

◆ uniform_track_generator() [1/3]

template<typename track_t, typename generator_t = detail::random_numbers<dscalar<typename track_t::algebra_type>>>
detray::uniform_track_generator< track_t, generator_t >::uniform_track_generator ( configuration cfg)
explicitconstexpr

Construct from external configuration cfg.

Parameters
cfgTrack generation configuration.

◆ uniform_track_generator() [2/3]

template<typename track_t, typename generator_t = detail::random_numbers<dscalar<typename track_t::algebra_type>>>
detray::uniform_track_generator< track_t, generator_t >::uniform_track_generator ( std::size_t n_phi,
std::size_t n_theta,
scalar_t p_mag = 1.f * unit<scalar_t>::GeV,
bool uniform_eta = false,
scalar_t charge = -1.f * unit<scalar_t>::e )

Paramtetrized constructor for quick construction of simple tasks.

Note
For more complex tasks, use the configuration type
Parameters
n_thetathe number of steps in the theta space
n_phithe number of steps in the phi space
p_magmagnitude of the track momentum (in GeV)
uniform_etauniformly step through eta space instead of theta
chargecharge of particle (e)

◆ uniform_track_generator() [3/3]

template<typename track_t, typename generator_t = detail::random_numbers<dscalar<typename track_t::algebra_type>>>
detray::uniform_track_generator< track_t, generator_t >::uniform_track_generator ( uniform_track_generator< track_t, generator_t > && other)
noexcept

Move constructor.

Parameters
otherGenerator to move from.

Member Function Documentation

◆ begin()

template<typename track_t, typename generator_t = detail::random_numbers<dscalar<typename track_t::algebra_type>>>
auto detray::uniform_track_generator< track_t, generator_t >::begin ( ) ->iterator
constexprnoexcept
Returns
the generator in initial state: Default values reflect the first phi angle iteration.
Iterator at the beginning of the generated tracks.

◆ config()

template<typename track_t, typename generator_t = detail::random_numbers<dscalar<typename track_t::algebra_type>>>
configuration & detray::uniform_track_generator< track_t, generator_t >::config ( )
constexpr

Access the configuration.

Returns
Mutable track generation configuration.

◆ end()

template<typename track_t, typename generator_t = detail::random_numbers<dscalar<typename track_t::algebra_type>>>
auto detray::uniform_track_generator< track_t, generator_t >::end ( ) ->iterator
constexprnoexcept
Returns
the generator in end state
Iterator past the final generated track.

◆ operator=()

template<typename track_t, typename generator_t = detail::random_numbers<dscalar<typename track_t::algebra_type>>>
uniform_track_generator & detray::uniform_track_generator< track_t, generator_t >::operator= ( const uniform_track_generator< track_t, generator_t > & other)
constexpr

Copy assignment operator.

Parameters
otherGenerator to copy from.
Returns
This generator after assignment.

◆ size()

template<typename track_t, typename generator_t = detail::random_numbers<dscalar<typename track_t::algebra_type>>>
auto detray::uniform_track_generator< track_t, generator_t >::size ( ) const->std::size_t
constexprnoexcept
Returns
the number of tracks that will be generated
Number of tracks configured for generation.