trout
Phlex-based reconstruction framework for the SHiP experiment.
Loading...
Searching...
No Matches
ActsExamples Namespace Reference

Namespaces

namespace  detail

Classes

struct  GeometryIdMultisetAccessor
 The accessor for the GeometryIdMultiset container. More...
class  Range
 A wrapper around a pair of iterators to simplify range-based loops. More...

Typedefs

template<typename T>
using GeometryIdMultiset = boost::container::flat_multiset<T, detail::CompareGeometryId>
 Store elements that know their detector geometry id, e.g.
using Index = std::uint32_t
 Index type to reference elements in a container.

Functions

template<typename T>
Range< typename GeometryIdMultiset< T >::const_iterator > selectModule (const GeometryIdMultiset< T > &container, Acts::GeometryIdentifier geoId)
 Select all elements for the given module / sensitive surface.
template<typename T>
auto selectModule (const GeometryIdMultiset< T > &container, Acts::GeometryIdentifier::Value volume, Acts::GeometryIdentifier::Value layer, Acts::GeometryIdentifier::Value sensitive)
 Select all elements for the given module / sensitive surface.
template<typename Iterator>
Range< Iterator > makeRange (const Iterator &begin, const Iterator &end)
template<typename Iterator>
Range< Iterator > makeRange (const std::pair< Iterator, Iterator > &range)

Typedef Documentation

◆ GeometryIdMultiset

template<typename T>
using ActsExamples::GeometryIdMultiset = boost::container::flat_multiset<T, detail::CompareGeometryId>

Store elements that know their detector geometry id, e.g.

simulation hits.

Template Parameters
Ttype to be stored, must be compatible with CompareGeometryId

The container stores an arbitrary number of elements for any geometry id. Elements can be retrieved via the geometry id; elements can be selected for a specific geometry id or for a larger range, e.g. a volume or a layer within the geometry hierarchy using the helper functions below. Elements can also be accessed by index that uniquely identifies each element regardless of geometry id.

◆ Index

using ActsExamples::Index = std::uint32_t

Index type to reference elements in a container.

We do not expect to have more than 2^32 elements in any given container so a fixed sized integer type is sufficient.

Function Documentation

◆ makeRange() [1/2]

template<typename Iterator>
Range< Iterator > ActsExamples::makeRange ( const Iterator & begin,
const Iterator & end )

◆ makeRange() [2/2]

template<typename Iterator>
Range< Iterator > ActsExamples::makeRange ( const std::pair< Iterator, Iterator > & range)

◆ selectModule() [1/2]

template<typename T>
Range< typename GeometryIdMultiset< T >::const_iterator > ActsExamples::selectModule ( const GeometryIdMultiset< T > & container,
Acts::GeometryIdentifier geoId )
inline

Select all elements for the given module / sensitive surface.

◆ selectModule() [2/2]

template<typename T>
auto ActsExamples::selectModule ( const GeometryIdMultiset< T > & container,
Acts::GeometryIdentifier::Value volume,
Acts::GeometryIdentifier::Value layer,
Acts::GeometryIdentifier::Value sensitive )
inline

Select all elements for the given module / sensitive surface.