ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GeometryContainers.hpp File Reference
#include <algorithm>
#include <boost/container/flat_map.hpp>
#include <boost/container/flat_set.hpp>
#include <cstddef>
#include <utility>
#include "ACTFW/Utilities/GroupBy.hpp"
#include "ACTFW/Utilities/Range.hpp"
#include "Acts/Geometry/GeometryID.hpp"
+ Include dependency graph for GeometryContainers.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FW::detail::GeometryIdGetter
 
struct  FW::detail::CompareGeometryId
 

Namespaces

namespace  FW
 
namespace  FW::detail
 

Typedefs

template<typename T >
using FW::GeometryIdMultiset = boost::container::flat_multiset< T, detail::CompareGeometryId >
 
template<typename T >
using FW::GeometryIdMultimap = GeometryIdMultiset< std::pair< Acts::GeometryID, T >>
 

Functions

template<typename T >
Range< typename
GeometryIdMultiset< T >
::const_iterator > 
FW::selectVolume (const GeometryIdMultiset< T > &container, Acts::GeometryID::Value volume)
 Select all elements within the given volume.
 
template<typename T >
auto FW::selectVolume (const GeometryIdMultiset< T > &container, Acts::GeometryID id)
 
template<typename T >
Range< typename
GeometryIdMultiset< T >
::const_iterator > 
FW::selectLayer (const GeometryIdMultiset< T > &container, Acts::GeometryID::Value volume, Acts::GeometryID::Value layer)
 Select all elements within the given layer.
 
template<typename T >
auto FW::selectLayer (const GeometryIdMultiset< T > &container, Acts::GeometryID id)
 
template<typename T >
Range< typename
GeometryIdMultiset< T >
::const_iterator > 
FW::selectModule (const GeometryIdMultiset< T > &container, Acts::GeometryID geoId)
 Select all elements for the given module / sensitive surface.
 
template<typename T >
auto FW::selectModule (const GeometryIdMultiset< T > &container, Acts::GeometryID::Value volume, Acts::GeometryID::Value layer, Acts::GeometryID::Value module)
 
template<typename T >
GroupBy< typename
GeometryIdMultiset< T >
::const_iterator,
detail::GeometryIdGetter > 
FW::groupByModule (const GeometryIdMultiset< T > &container)
 Iterate over groups of elements belonging to each module/ sensitive surface.