ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t > Class Template Reference

A navigation state object used to cache the information of the current navigation stream. More...

#include <detray/navigation/navigation_state.hpp>

Inheritance diagram for detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >:
[legend]
Collaboration diagram for detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >:
[legend]

Public Types

using detector_type = detector_t
 Detector type associated with this navigation state.

Public Member Functions

 base_state ()=delete
 Default constructor (needs a detector).
constexpr base_state (const detector_t &det)
 Constructor using a given detector.
template<concepts::device_view view_t>
constexpr base_state (const detector_t &det, view_t view)
 Construct from detector.
constexpr void abort (const char *custom_msg="Navigator (unknown reason)")
 Navigation state that cannot be recovered from.
template<typename debug_msg_generator_t>
requires (!std::same_as<char *, debug_msg_generator_t>)
constexpr void abort (const debug_msg_generator_t &debug_msg_generator)
 Navigation state that cannot be recovered from.
constexpr auto begin () const -> candidate_const_itr_t
constexpr bool cache_exhausted () const
constexpr auto candidates () const -> const candidate_cache_t &
constexpr auto cbegin () const -> candidate_const_itr_t
constexpr auto cend () const -> candidate_const_itr_t
constexpr auto current () const -> const candidate_t &
template<template< typename > class surface_t = tracking_surface>
constexpr auto current_surface () const
template<template< typename > class volume_t = tracking_volume>
constexpr auto current_volume () const
constexpr auto detector () const -> const detector_t &
constexpr auto direction () const -> navigation::direction
constexpr auto encountered_sf_material () const -> bool
 Helper method to check the track has encountered material.
constexpr auto end () const -> candidate_const_itr_t
constexpr void exit ()
 Navigation reaches final target or leaves detector world.
constexpr scalar_t external_tol () const
constexpr bool finished () const
constexpr auto geometry_identifier () const -> geometry::identifier
constexpr auto & inspector ()
constexpr const auto & inspector () const
constexpr bool is_alive () const
constexpr bool is_edge_candidate () const
constexpr bool is_good_candidate () const
constexpr auto is_on_passive () const -> bool
 Helper method to check the track has reached a passive surface.
constexpr auto is_on_portal () const -> bool
 Helper method to check the track has reached a portal surface.
constexpr auto is_on_sensitive () const -> bool
 Helper method to check the track has reached a sensitive surface.
constexpr auto is_on_surface () const -> bool
 Helper method to check the track has reached a module surface.
constexpr bool is_probably_candidate () const
constexpr auto last () const -> const candidate_t &
constexpr auto n_candidates () const -> dindex
template<template< typename > class surface_t = tracking_surface>
constexpr auto next_surface () const
template<template< typename > class volume_t = tracking_volume>
constexpr auto next_volume () const
constexpr scalar_t operator() () const
 Scalar representation of the navigation state,.
constexpr void pause ()
 Navigation is being paused by actor: Maintain the navigation state and resume later.
constexpr void set_direction (const navigation::direction dir)
 Set direction in which the navigator should search for candidates.
constexpr void set_external_tol (const scalar_t tol)
 Set externally provided mask tolerance according to noise prediction.
constexpr void set_volume (dindex v)
 Set start/new volume from volume index.
constexpr auto status () const -> navigation::status
constexpr auto target () const -> const candidate_t &
constexpr auto trust_level () const -> navigation::trust_level
constexpr auto volume () const -> nav_link_t
constexpr void set_no_trust ()
 Update navigation trust level to 'no trust'.
constexpr void set_high_trust ()
constexpr void set_fair_trust ()
Public Member Functions inherited from detray::ranges::view_interface< base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t > >
constexpr decltype(auto) back () const
 Return a reference to the last element.
constexpr auto data () const
 Return a pointer to the first element, or null for an empty view.
constexpr auto empty () const -> bool
 Check whether the view contains no elements.
constexpr decltype(auto) front () const
 Return a reference to the first element.
constexpr operator bool () const
 Test whether the view contains at least one element.
constexpr decltype(auto) operator[] (const dindex i) const
 Subscript operator that takes detray dindex.
constexpr auto size () const
 Return the number of elements in the view.

Static Public Member Functions

static consteval std::size_t capacity ()

Protected Types

using algebra_t = typename detector_t::algebra_type
 Detector algebra type.
using candidate_cache_t = darray<candidate_t, k_cache_capacity>
 Fixed-capacity cache of intersection candidates.
using candidate_const_itr_t = typename candidate_cache_t::const_iterator
 Const iterator into the candidate cache.
using candidate_itr_t = typename candidate_cache_t::iterator
 Mutable iterator into the candidate cache.
using candidate_t = intersection_t
 Intersection result stored as a navigation candidate.
using dist_t = std::int_least8_t
 Signed type used for candidate cache positions.
using nav_link_t = typename detector_t::surface_type::navigation_link
 Type used to link to a detector volume during navigation.
using point3_t = dpoint3D<algebra_t>
 Three-dimensional point type associated with the detector algebra.
using scalar_t = dscalar<algebra_t>
 Scalar type associated with the detector algebra.
using vector3_t = dvector3D<algebra_t>
 Three-dimensional vector type associated with the detector algebra.

Protected Member Functions

constexpr auto advance () -> void
 Set the next surface that we want to reach (update target).
constexpr auto begin () -> candidate_itr_t
constexpr auto candidates () -> candidate_cache_t &
constexpr void clear_cache ()
 Clear the state.
constexpr auto current () -> candidate_t &
constexpr auto end () -> candidate_itr_t
constexpr auto last () -> candidate_t &
constexpr dist_t last_index () const
constexpr void last_index (dist_t pos)
 Set the next surface that we want to reach (update target).
constexpr dist_t next_index () const
constexpr void next_index (dist_t pos)
 Set the next surface that we want to reach (update target).
constexpr void run_inspector (const navigation::config &cfg, const point3_t &track_pos, const vector3_t &track_dir, const char *message)
 Call the navigation inspector.
template<typename debug_msg_generator_t>
constexpr void run_inspector (const navigation::config &cfg, const point3_t &track_pos, const vector3_t &track_dir, const char *message, const debug_msg_generator_t &msg_gen)
 Call the navigation inspector.
constexpr void set_last (candidate_const_itr_t new_last)
 Updates the position of the last valid candidate.
constexpr void set_next (candidate_const_itr_t new_next)
 Set the next surface that we want to reach (update target).
constexpr void status (navigation::status s)
 Set the status to.
constexpr auto target () -> candidate_t &
constexpr void trust_level (navigation::trust_level t)
 Reset the trustlevel to.

Detailed Description

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
class detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >

A navigation state object used to cache the information of the current navigation stream.

The state is passed between navigation calls and is accessible to the actors in the propagation, for which it defines the public interface towards the navigation. The navigator class is responsible for updating the elements in the navigation state with every navigation call, establishing 'full trust' after changes to the track state reduced the trust level.

Template Parameters
detector_tthe type of the detector that is being navigated
k_cache_capacitynumber of object candidates the state can hold
inspector_tis a validation inspector that can record information about the navigation state at different points of the nav. flow.
intersection_tresult of an intersection operation

Constructor & Destructor Documentation

◆ base_state() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::base_state ( const detector_t & det)
explicitconstexpr

Constructor using a given detector.

Parameters
det

◆ base_state() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
template<concepts::device_view view_t>
detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::base_state ( const detector_t & det,
view_t view )
constexpr

Construct from detector.

Parameters
detand inspector view
view

Member Function Documentation

◆ abort() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::abort ( const char * custom_msg = "Navigator (unknown reason)")
constexpr

Navigation state that cannot be recovered from.

Leave the other data for inspection.

Parameters
custom_msgadditional information on the reason for the error

◆ abort() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
template<typename debug_msg_generator_t>
requires (!std::same_as<char *, debug_msg_generator_t>)
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::abort ( const debug_msg_generator_t & debug_msg_generator)
constexpr

Navigation state that cannot be recovered from.

Leave the other data for inspection.

Parameters
debug_msg_generatorfunctor that returns additional information on the reason for the error

◆ begin() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::begin ( ) ->candidate_itr_t
constexprprotected
Returns
start position of valid candidate range.

◆ begin() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::begin ( ) const->candidate_const_itr_t
constexpr
Returns
start position of the valid candidate range - const

◆ cache_exhausted()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
bool detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::cache_exhausted ( ) const
constexpr
Returns
true if there are no cached candidates left - const

◆ candidates() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::candidates ( ) ->candidate_cache_t &
constexprprotected
Returns
currently cached candidates

◆ candidates() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::candidates ( ) const->constcandidate_cache_t &
constexpr
Returns
currently cached candidates - const

◆ capacity()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
consteval std::size_t detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::capacity ( )
staticconsteval
Returns
the capacity of the internal candidate storage

◆ cbegin()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::cbegin ( ) const->candidate_const_itr_t
constexpr
Returns
beginning of the valid candidate range

◆ cend()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::cend ( ) const->candidate_const_itr_t
constexpr
Returns
end of the valid candidate range

◆ current() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::current ( ) ->candidate_t &
constexprprotected
Returns
current/previous object that was reached

◆ current() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::current ( ) const->constcandidate_t &
constexpr
Returns
current/previous object that was reached - const

◆ current_surface()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
template<template< typename > class surface_t = tracking_surface>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::current_surface ( ) const
constexpr
Template Parameters
surface_tthe surface interface type that is required
Returns
current detector surface the navigator is on - const

◆ current_volume()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
template<template< typename > class volume_t = tracking_volume>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::current_volume ( ) const
constexpr
Template Parameters
volume_tthe volume interface type that is required
Returns
current detector volume of the navigation stream

◆ detector()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::detector ( ) const->constdetector_t &
constexpr
Returns
a reference to the detector

◆ direction()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::direction ( ) const->navigation::direction
constexpr
Returns
current navigation direction - const

◆ encountered_sf_material()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::encountered_sf_material ( ) const->bool
constexpr

Helper method to check the track has encountered material.

Returns
true when the current surface has material

◆ end() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::end ( ) ->candidate_itr_t
constexprprotected
Returns
sentinel of the valid candidate range.

◆ end() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::end ( ) const->candidate_const_itr_t
constexpr
Returns
sentinel of the valid candidate range.

◆ exit()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::exit ( )
constexpr

Navigation reaches final target or leaves detector world.

Stop navigation.

◆ external_tol()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
scalar_t detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::external_tol ( ) const
constexpr
Returns
the externally provided mask tolerance - const

◆ finished()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
bool detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::finished ( ) const
constexpr
Returns
flag that indicates whether navigation was successful

◆ geometry_identifier()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::geometry_identifier ( ) const->geometry::identifier
constexpr
Returns
identifier of the detector surface the navigator is on (invalid when not on surface) - const

◆ inspector() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto & detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::inspector ( )
constexpr
Returns
the navigation inspector

◆ inspector() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
const auto & detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::inspector ( ) const
constexpr
Returns
the navigation inspector - const

◆ is_alive()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
bool detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::is_alive ( ) const
constexpr
Returns
the navigation heartbeat (is this stream still being updated?)

◆ is_edge_candidate()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
bool detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::is_edge_candidate ( ) const
constexpr
Returns
true if the current candidate lies on the surface edge

◆ is_good_candidate()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
bool detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::is_good_candidate ( ) const
constexpr
Returns
true if the current candidate lies on the surface

◆ is_on_passive()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::is_on_passive ( ) const->bool
constexpr

Helper method to check the track has reached a passive surface.

Returns
true when the current object is a passive surface

◆ is_on_portal()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::is_on_portal ( ) const->bool
constexpr

Helper method to check the track has reached a portal surface.

Returns
true when navigation is on a portal

◆ is_on_sensitive()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::is_on_sensitive ( ) const->bool
constexpr

Helper method to check the track has reached a sensitive surface.

Returns
true when the current object is a sensitive surface

◆ is_on_surface()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::is_on_surface ( ) const->bool
constexpr

Helper method to check the track has reached a module surface.

Returns
true when navigation is on an object or portal surface

◆ is_probably_candidate()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
bool detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::is_probably_candidate ( ) const
constexpr
Returns
true if the current candidate lies on the surface, including its edge

◆ last() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::last ( ) ->candidate_t &
constexprprotected
Returns
last valid candidate (by position in the cache)

◆ last() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::last ( ) const->constcandidate_t &
constexpr
Returns
last valid candidate (by position in the cache) - const

◆ last_index() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
dist_t detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::last_index ( ) const
constexprprotected
Returns
the index to the target surface

◆ last_index() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::last_index ( dist_t pos)
constexprprotected

Set the next surface that we want to reach (update target).

Parameters
poscandidate cache position

◆ n_candidates()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::n_candidates ( ) const->dindex
constexpr
Returns
number of currently cached (reachable) candidates - const

◆ next_index() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
dist_t detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::next_index ( ) const
constexprprotected
Returns
the index to the target surface

◆ next_index() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::next_index ( dist_t pos)
constexprprotected

Set the next surface that we want to reach (update target).

Parameters
poscandidate cache position

◆ next_surface()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
template<template< typename > class surface_t = tracking_surface>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::next_surface ( ) const
constexpr
Template Parameters
surface_tthe surface interface type that is required
Returns
the next surface the navigator intends to reach

◆ next_volume()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
template<template< typename > class volume_t = tracking_volume>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::next_volume ( ) const
constexpr
Template Parameters
volume_tthe volume interface type that is required
Returns
the next volume the navigator intends to reach

◆ operator()()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
scalar_t detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::operator() ( ) const
constexpr

Scalar representation of the navigation state,.

Returns
distance to next target

◆ run_inspector() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::run_inspector ( const navigation::config & cfg,
const point3_t & track_pos,
const vector3_t & track_dir,
const char * message )
constexprprotected

Call the navigation inspector.

Parameters
cfgnavigation configuration
track_poscurrent track position
track_dircurrent track direction
messagediagnostic message

◆ run_inspector() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
template<typename debug_msg_generator_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::run_inspector ( const navigation::config & cfg,
const point3_t & track_pos,
const vector3_t & track_dir,
const char * message,
const debug_msg_generator_t & msg_gen )
constexprprotected

Call the navigation inspector.

Template Parameters
debug_msg_generator_tcallable type that produces diagnostic text
Parameters
cfgnavigation configuration
track_poscurrent track position
track_dircurrent track direction
messagediagnostic message prefix
msg_gencallable that produces additional diagnostic text

◆ set_direction()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::set_direction ( const navigation::direction dir)
constexpr

Set direction in which the navigator should search for candidates.

Parameters
dirdirection in which to search

◆ set_external_tol()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::set_external_tol ( const scalar_t tol)
constexpr

Set externally provided mask tolerance according to noise prediction.

Parameters
toltolerance applied to mask checks

◆ set_fair_trust()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::set_fair_trust ( )
constexpr
Note
only two trust levels for basic navigation implementation

◆ set_high_trust()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::set_high_trust ( )
constexpr
Note
only two trust levels for basic navigation implementation

◆ set_last()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::set_last ( candidate_const_itr_t new_last)
constexprprotected

Updates the position of the last valid candidate.

Parameters
new_lastiterator to the position after the last valid candidate

◆ set_next()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::set_next ( candidate_const_itr_t new_next)
constexprprotected

Set the next surface that we want to reach (update target).

Parameters
new_nextiterator to the next candidate

◆ set_volume()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::set_volume ( dindex v)
constexpr

Set start/new volume from volume index.

Parameters
v

◆ status() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::status ( ) const->navigation::status
constexpr
Returns
current navigation status - const

◆ status() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::status ( navigation::status s)
constexprprotected

Set the status to.

Parameters
s

◆ target() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::target ( ) ->candidate_t &
constexprprotected
Returns
next object that we want to reach (current target)

◆ target() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::target ( ) const->constcandidate_t &
constexpr
Returns
next object that we want to reach (current target) - const

◆ trust_level() [1/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::trust_level ( ) const->navigation::trust_level
constexpr
Returns
navigation trust level - const

◆ trust_level() [2/2]

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
void detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::trust_level ( navigation::trust_level t)
constexprprotected

Reset the trustlevel to.

Parameters
t

◆ volume()

template<typename derived_t, concepts::detector detector_t, std::size_t k_cache_capacity, typename inspector_t, typename intersection_t>
auto detray::navigation::base_state< derived_t, detector_t, k_cache_capacity, inspector_t, intersection_t >::volume ( ) const->nav_link_t
constexpr
Returns
current volume index - const