ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::MultiAxisSpecXD< DIM > Class Template Reference

Multi-dimensional binning spec of a compile-time dimension. More...

#include <Acts/Utilities/MultiAxisSpec.hpp>

Inheritance diagram for Acts::MultiAxisSpecXD< DIM >:
[legend]
Collaboration diagram for Acts::MultiAxisSpecXD< DIM >:
[legend]

Public Types

using Options = std::array<AxisSpec::Options, DIM>
 Consumer supplied inputs, one AxisSpec::Options per axis, in axis order; an all-default set leaves every property to the spec.
Public Types inherited from Acts::MultiAxisSpec
using Options = std::vector<AxisSpec::Options>
 Consumer supplied inputs, one AxisSpec::Options per axis, in axis order.

Public Member Functions

 MultiAxisSpecXD (std::array< AxisSpec, DIM > axisSpecs)
 Construct from one axis spec per dimension.
std::unique_ptr< IMultiAxisXD< DIM > > buildMultiAxis (const Options &options={}) const
 Build a multi-axis, one option set per axis.
Public Member Functions inherited from Acts::MultiAxisSpec
 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 AxisSpecaxisSpec (std::size_t i) const
 Get the axis spec at the given dimension.
std::span< const AxisSpecaxisSpecs () const
 Get all axis specs.
std::unique_ptr< IMultiAxisbuildMultiAxis (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.
MultiAxisSpecoperator= (const MultiAxisSpec &other)=default
 Copy assignment.
MultiAxisSpecoperator= (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.

Additional Inherited Members

Protected Member Functions inherited from Acts::MultiAxisSpec
std::unique_ptr< IMultiAxisbuildMultiAxisImpl (std::span< const AxisSpec::Options > options) const
 Build a multi-axis from a view onto the option sets.

Detailed Description

template<std::size_t DIM>
class Acts::MultiAxisSpecXD< DIM >

Multi-dimensional binning spec of a compile-time dimension.

Adds a statically sized construction and build API on top of MultiAxisSpec , mirroring IMultiAxis and IMultiAxisXD .

Template Parameters
DIMnumber of axes (dimension of the grid)

Constructor & Destructor Documentation

◆ MultiAxisSpecXD()

template<std::size_t DIM>
Acts::MultiAxisSpecXD< DIM >::MultiAxisSpecXD ( std::array< AxisSpec, DIM > axisSpecs)
explicit

Construct from one axis spec per dimension.

Parameters
axisSpecsthe axis specs, in axis order

Member Function Documentation

◆ buildMultiAxis()

template<std::size_t DIM>
std::unique_ptr< IMultiAxisXD< DIM > > Acts::MultiAxisSpecXD< DIM >::buildMultiAxis ( const Options & options = {}) const

Build a multi-axis, one option set per axis.

Parameters
optionsone option set per axis, in axis order
Exceptions
std::domain_errorif a property is given by neither side
std::invalid_argumentif a property mismatches
Returns
the created multi-axis of dimension DIM