|
ACTS
Experiment-independent tracking
|
Specification of a multi-dimensional binning that builds the axes of a grid. More...
#include <Acts/Utilities/MultiAxisSpec.hpp>
Public Types | |
| using | Options = std::vector<AxisSpec::Options> |
Consumer supplied inputs, one AxisSpec::Options per axis, in axis order. | |
Public Member Functions | |
| MultiAxisSpec (const MultiAxisSpec &other)=default | |
| Copy constructor. | |
| MultiAxisSpec (MultiAxisSpec &&other) noexcept=default | |
| Move constructor. | |
| MultiAxisSpec (std::vector< AxisSpec > axisSpecs) | |
| Construct from one axis spec per dimension. | |
| const AxisSpec & | axisSpec (std::size_t i) const |
| Get the axis spec at the given dimension. | |
| std::span< const AxisSpec > | axisSpecs () const |
| Get all axis specs. | |
| std::unique_ptr< IMultiAxis > | buildMultiAxis (const Options &options={}) const |
| Build a multi-axis, one option set per axis or none at all. | |
| bool | isDeferred () const |
| Check if any of the contained specs is deferred, i.e. | |
| MultiAxisSpec & | operator= (const MultiAxisSpec &other)=default |
| Copy assignment. | |
| MultiAxisSpec & | operator= (MultiAxisSpec &&other) noexcept=default |
| Move assignment. | |
| std::size_t | size () const |
| Get the number of axes spanning the grid. | |
| std::string | toString () const |
| Get a string representation of this spec. | |
Protected Member Functions | |
| std::unique_ptr< IMultiAxis > | buildMultiAxisImpl (std::span< const AxisSpec::Options > options) const |
| Build a multi-axis from a view onto the option sets. | |
Specification of a multi-dimensional binning that builds the axes of a grid.
Bundles one AxisSpec per grid dimension, mirroring the IMultiAxis / IMultiAxisXD split: the dimension is known at runtime here and at compile time in the derived MultiAxisSpecXD . Unlike IMultiAxis this is a value type and can be held by configuration objects.
The build API mirrors AxisSpec : fully specified specs build without input, deferred ones need one AxisSpec::Options per axis, in storage order.
|
explicit |
Construct from one axis spec per dimension.
| axisSpecs | the axis specs, in axis order |
| std::invalid_argument | if no axis spec is given |
|
default |
Copy constructor.
| other | the spec to copy from |
|
defaultnoexcept |
Move constructor.
| other | the spec to move from |
| const AxisSpec & Acts::MultiAxisSpec::axisSpec | ( | std::size_t | i | ) | const |
Get the axis spec at the given dimension.
| i | index of the axis |
| std::span< const AxisSpec > Acts::MultiAxisSpec::axisSpecs | ( | ) | const |
Get all axis specs.
| std::unique_ptr< IMultiAxis > Acts::MultiAxisSpec::buildMultiAxis | ( | const Options & | options = {} | ) | const |
Build a multi-axis, one option set per axis or none at all.
| options | one option set per axis, in axis order, or empty |
| std::domain_error | if a property is given by neither side, or the dimension exceeds the supported maximum of 3 |
| std::invalid_argument | if the number of option sets is neither zero nor the number of axes, or a property mismatches |
|
protected |
Build a multi-axis from a view onto the option sets.
| options | one option set per axis, in axis order, or empty |
| bool Acts::MultiAxisSpec::isDeferred | ( | ) | const |
Check if any of the contained specs is deferred, i.e.
requires consumer supplied options to produce axes
|
default |
Copy assignment.
| other | the spec to copy from |
|
defaultnoexcept |
Move assignment.
| other | the spec to move from |
| std::size_t Acts::MultiAxisSpec::size | ( | ) | const |
Get the number of axes spanning the grid.
| std::string Acts::MultiAxisSpec::toString | ( | ) | const |
Get a string representation of this spec.