ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator Struct Reference

Builds a graph node from the detector collections on the fly. More...

#include <detray/navigation/volume_graph.hpp>

Inheritance diagram for detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator:
[legend]
Collaboration diagram for detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator:
[legend]

Classes

struct  iterator
 Iterator over the graph nodes. More...
struct  node
 A node in the graph has an index (volume index) and a collection of edges that belong to it (mask link of every surface in the volume). More...
struct  node_builder
 A functor to retrieve the half-edges of a node. More...

Public Types

using iterator_t = iterator
 Node iterator type.

Public Member Functions

 node_generator ()=delete
 No default constructor (holds member reference).
 node_generator (const volume_container_t &volumes, const detector_t &det)
 Constructor from a detector containers.
iterator begin () const
iterator end () const
dindex size () const
Public Member Functions inherited from detray::ranges::view_interface< node_generator >
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.

Public Attributes

const detector_t & m_det
 Detector used to access volume surfaces.
const volume_container_t & m_volumes
 Referenced detector volumes.

Detailed Description

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
struct detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator

Builds a graph node from the detector collections on the fly.

The node collection builds a graph node from a volume and the mask links in its surfaces, which are half edges of the graph. Every node has its index in the detector volume container and a vector of half edges.

Constructor & Destructor Documentation

◆ node_generator()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::node_generator ( const volume_container_t & volumes,
const detector_t & det )

Constructor from a detector containers.

Parameters
volumesdetector volume container
detdetector used to construct nodes

Member Function Documentation

◆ begin()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
iterator detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::begin ( ) const
Returns
beginning of collection

◆ end()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
iterator detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::end ( ) const
Returns
end of collection

◆ size()

template<concepts::detector detector_t, typename node_inspector = void_node_inspector<typename detector_t::volume_type>, template< typename... > class vector_t = dvector>
dindex detray::volume_graph< detector_t, node_inspector, vector_t >::node_generator::size ( ) const
Returns
the number of nodes