|
ACTS
Experiment-independent tracking
|
Store values mapped into the geometry hierarchy. More...
#include <Acts/Geometry/GeometryHierarchyMap.hpp>
Public Types | |
| using | InputElement = typename std::pair<GeometryIdentifier, value_t> |
| Combined geometry identifier and value element. Only used for input. | |
| using | Iterator = typename std::vector<value_t>::const_iterator |
| Type alias for const iterator over stored values. | |
| using | Value = value_t |
| Type alias for stored value type. | |
Public Member Functions | |
| GeometryHierarchyMap ()=default | |
| GeometryHierarchyMap (const GeometryHierarchyMap &)=default | |
| Copy constructor. | |
| GeometryHierarchyMap (GeometryHierarchyMap &&) noexcept=default | |
| Move constructor. | |
| GeometryHierarchyMap (std::initializer_list< InputElement > elements) | |
| Construct the container from an initializer list. | |
| GeometryHierarchyMap (std::vector< InputElement > elements) | |
| Construct the container from the given elements. | |
| ~GeometryHierarchyMap ()=default | |
| Iterator | begin () const |
| Return an iterator pointing to the beginning of the stored values. | |
| bool | contains (const GeometryIdentifier &id) const |
| Check if the most specific value exists for a given geometry identifier. | |
| bool | empty () const |
| Check if any elements are stored. | |
| Iterator | end () const |
| Return an iterator pointing to the end of the stored values. | |
| Iterator | find (const GeometryIdentifier &id) const |
| Find the most specific value for a given geometry identifier. | |
| GeometryIdentifier | idAt (std::size_t index) const |
| Access the geometry identifier for the i-th element with bounds check. | |
| GeometryHierarchyMap & | operator= (const GeometryHierarchyMap &)=default |
| Copy assignment operator. | |
| GeometryHierarchyMap & | operator= (GeometryHierarchyMap &&) noexcept=default |
| Move assignment operator. | |
| std::size_t | size () const |
| Return the number of stored elements. | |
| const Value & | valueAt (std::size_t index) const |
| Access the value of the i-th element in the container with bounds check. | |
Store values mapped into the geometry hierarchy.
| value_t | stored value type |
The core functionality is to find an equivalent element, i.e. an identifier-value pair, for a given geometry identifier via
auto it = container.find(GeometryIdentifier(...));
if (it != container.end()) {
...
}
Trailing zero levels of stored geometry identifiers are used as broadcast values to refer to higher-level objects within the geometry, e.g. a geometry identifier with vanishing approach and sensitive index identifies a layer. An entry will all geometry identifier levels set to zero acts as the global default value.
The container also supports range-based iteration over all stored elements
for (const auto& element : container) {
...
}
and index-based access to stored elements and associated geometry identifiers
GeometryIdentifier id3 = container.idAt(3); const auto& element4 = container.valueAt(4);
Adding elements is potentially expensive as the internal lookup structure must be updated. In addition, modifying an element in-place could change its identifier which would also break the lookup. Thus, the container can not be modified after construction to prevent misuse.
| using Acts::GeometryHierarchyMap< value_t >::InputElement = typename std::pair<GeometryIdentifier, value_t> |
Combined geometry identifier and value element. Only used for input.
| using Acts::GeometryHierarchyMap< value_t >::Iterator = typename std::vector<value_t>::const_iterator |
Type alias for const iterator over stored values.
| using Acts::GeometryHierarchyMap< value_t >::Value = value_t |
Type alias for stored value type.
|
explicit |
Construct the container from the given elements.
| elements | input elements (must be unique with respect to identifier) |
| Acts::GeometryHierarchyMap< value_t >::GeometryHierarchyMap | ( | std::initializer_list< InputElement > | elements | ) |
Construct the container from an initializer list.
| elements | input initializer list |
|
default |
|
default |
Copy constructor.
|
defaultnoexcept |
Move constructor.
|
default |
| Iterator Acts::GeometryHierarchyMap< value_t >::begin | ( | ) | const |
Return an iterator pointing to the beginning of the stored values.
| auto Acts::GeometryHierarchyMap< value_t >::contains | ( | const GeometryIdentifier & | id | ) | const |
Check if the most specific value exists for a given geometry identifier.
This function checks if there is an element matching exactly the given geometry id, or from the element for the next available higher level within the geometry hierarchy.
| id | geometry identifier for which existence is being checked |
| `true` | if a matching element exists |
| `false` | if no matching element exists |
| bool Acts::GeometryHierarchyMap< value_t >::empty | ( | ) | const |
Check if any elements are stored.
| Iterator Acts::GeometryHierarchyMap< value_t >::end | ( | ) | const |
Return an iterator pointing to the end of the stored values.
| auto Acts::GeometryHierarchyMap< value_t >::find | ( | const GeometryIdentifier & | id | ) | const |
Find the most specific value for a given geometry identifier.
This can be either from the element matching exactly to the given geometry id, if it exists, or from the element for the next available higher level within the geometry hierarchy.
| id | geometry identifier for which information is requested |
| iterator | to an existing value |
| `.end()` | iterator if no matching element exists |
| GeometryIdentifier Acts::GeometryHierarchyMap< value_t >::idAt | ( | std::size_t | index | ) | const |
Access the geometry identifier for the i-th element with bounds check.
| index | The index of the element to access |
| std::out_of_range | for invalid indices |
|
default |
Copy assignment operator.
|
defaultnoexcept |
Move assignment operator.
| std::size_t Acts::GeometryHierarchyMap< value_t >::size | ( | ) | const |
Return the number of stored elements.
| const Value & Acts::GeometryHierarchyMap< value_t >::valueAt | ( | std::size_t | index | ) | const |
Access the value of the i-th element in the container with bounds check.
| index | The index of the element to access |
| std::out_of_range | for invalid indices |