File GridAxisGenerators.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

namespace Experimental
namespace GridAxisGenerators

Axis generators are used to allow defining different grid types for indexed geometry objects.

Typedefs

using EqBound = Eq<detail::AxisBoundaryType::Bound>
using EqBoundEqBound = EqEq<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Bound>
using EqBoundEqClosed = EqEq<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Closed>
using EqBoundEqOpen = EqEq<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Open>
using EqBoundVarBound = EqVar<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Bound>
using EqBoundVarClosed = EqVar<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Closed>
using EqBoundVarOpen = EqVar<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Open>
using EqClosed = Eq<detail::AxisBoundaryType::Closed>
using EqClosedEqBound = EqEq<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Bound>
using EqClosedEqClosed = EqEq<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Closed>
using EqClosedEqOpen = EqEq<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Open>
using EqClosedVarBound = EqVar<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Bound>
using EqClosedVarClosed = EqVar<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Closed>
using EqClosedVarOpen = EqVar<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Open>
using EqOpen = Eq<detail::AxisBoundaryType::Open>
using EqOpenEqBound = EqEq<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Bound>
using EqOpenEqClosed = EqEq<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Closed>
using EqOpenEqOpen = EqEq<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Open>
using EqOpenVarBound = EqVar<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Bound>
using EqOpenVarClosed = EqVar<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Closed>
using EqOpenVarOpen = EqVar<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Open>
using VarBound = Var<detail::AxisBoundaryType::Bound>
using VarBoundEqBound = VarEq<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Bound>
using VarBoundEqClosed = VarEq<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Closed>
using VarBoundEqOpen = VarEq<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Open>
using VarBoundVarBound = VarVar<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Bound>
using VarBoundVarClosed = VarVar<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Closed>
using VarBoundVarOpen = VarVar<detail::AxisBoundaryType::Bound, detail::AxisBoundaryType::Open>
using VarClosed = Var<detail::AxisBoundaryType::Closed>
using VarClosedEqBound = VarEq<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Bound>
using VarClosedEqClosed = VarEq<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Closed>
using VarClosedEqOpen = VarEq<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Open>
using VarClosedVarBound = VarVar<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Bound>
using VarClosedVarClosed = VarVar<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Closed>
using VarClosedVarOpen = VarVar<detail::AxisBoundaryType::Closed, detail::AxisBoundaryType::Open>
using VarOpen = Var<detail::AxisBoundaryType::Open>
using VarOpenEqBound = VarEq<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Bound>
using VarOpenEqClosed = VarEq<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Closed>
using VarOpenEqOpen = VarEq<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Open>
using VarOpenVarBound = VarVar<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Bound>
using VarOpenVarClosed = VarVar<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Closed>
using VarOpenVarOpen = VarVar<detail::AxisBoundaryType::Open, detail::AxisBoundaryType::Open>
template<detail::AxisBoundaryType aType>
struct Eq
#include <Acts/Detector/GridAxisGenerators.hpp>

Templated base generator for equidistant axis as a tuple - 1D.

Template Parameters

aType – the type of the axis (Bound, Closed, Open)

Public Types

using grid_type = detail::Grid<T, detail::Axis<detail::AxisType::Equidistant, aType>>

Broadcast the grid type.

using return_type = std::tuple<detail::Axis<detail::AxisType::Equidistant, aType>>

Broadcast the return_type.

Public Functions

inline return_type operator()() const

Call operator that generates the Axis.

Public Members

std::size_t nBins = 0u
std::array<ActsScalar, 2u> range = {}
template<detail::AxisBoundaryType aType, detail::AxisBoundaryType bType>
struct EqEq
#include <Acts/Detector/GridAxisGenerators.hpp>

Templated base generator for two equidistant axes as a tuple - 2D.

Template Parameters
  • aType – the type of the first axis (Bound, Closed, Open)

  • bType – the type of the second axis (Bound, Closed, Open)

Public Types

using grid_type = detail::Grid<T, detail::Axis<detail::AxisType::Equidistant, aType>, detail::Axis<detail::AxisType::Equidistant, bType>>

Broadcast the grid type.

using return_type = std::tuple<detail::Axis<detail::AxisType::Equidistant, aType>, detail::Axis<detail::AxisType::Equidistant, bType>>

Broadcast the return_type.

Public Functions

inline return_type operator()() const

Call operator that generates the Axis.

Public Members

std::size_t nBins0 = 0u
std::size_t nBins1 = 1u
std::array<ActsScalar, 2u> range0 = {}
std::array<ActsScalar, 2u> range1 = {}
template<detail::AxisBoundaryType aType, detail::AxisBoundaryType bType>
struct EqVar
#include <Acts/Detector/GridAxisGenerators.hpp>

Templated base generator for equidistant / variable axes as a tuple - 2D.

Template Parameters
  • aType – the type of the first axis (Bound, Closed, Open)

  • bType – the type of the second axis (Bound, Closed, Open)

Public Types

using grid_type = detail::Grid<T, detail::Axis<detail::AxisType::Equidistant, aType>, detail::Axis<detail::AxisType::Variable, bType>>

Broadcast the grid type.

using return_type = std::tuple<detail::Axis<detail::AxisType::Equidistant, aType>, detail::Axis<detail::AxisType::Variable, bType>>

Broadcast the return_type.

Public Functions

inline return_type operator()() const

Call operator that generates the Axis.

Public Members

std::vector<ActsScalar> edges = {}
std::size_t nBins = 0u
std::array<ActsScalar, 2u> range = {}
template<detail::AxisBoundaryType aType>
struct Var
#include <Acts/Detector/GridAxisGenerators.hpp>

Templated base generator for vairable axis as a tuple - 1D.

Template Parameters

aType – the type of the axis (Bound, Closed, Open)

Public Types

using grid_type = detail::Grid<T, detail::Axis<detail::AxisType::Variable, aType>>

Broadcast the grid type.

using return_type = std::tuple<detail::Axis<detail::AxisType::Variable, aType>>

Broadcast the return_type.

Public Functions

inline return_type operator()() const

Call operator that generates the Axis.

Public Members

std::vector<ActsScalar> edges = {}
template<detail::AxisBoundaryType aType, detail::AxisBoundaryType bType>
struct VarEq
#include <Acts/Detector/GridAxisGenerators.hpp>

Templated base generator for a variable, equidistant axes tuple - 2D.

Template Parameters
  • aType – the type of the first axis (Bound, Closed, Open)

  • bType – the type of the second axis (Bound, Closed, Open)

Public Types

using grid_type = detail::Grid<T, detail::Axis<detail::AxisType::Variable, aType>, detail::Axis<detail::AxisType::Equidistant, bType>>

Broadcast the grid type.

using return_type = std::tuple<detail::Axis<detail::AxisType::Variable, aType>, detail::Axis<detail::AxisType::Equidistant, bType>>

Broadcast the return_type.

Public Functions

inline return_type operator()() const

Call operator that generates the Axis.

Public Members

std::vector<ActsScalar> edges = {}
std::size_t nBins = 0u
std::array<ActsScalar, 2u> range = {}
template<detail::AxisBoundaryType aType, detail::AxisBoundaryType bType>
struct VarVar
#include <Acts/Detector/GridAxisGenerators.hpp>

Templated base generator for a two variable axes tuple - 2D.

Template Parameters
  • aType – the type of the first axis (Bound, Closed, Open)

  • bType – the type of the second axis (Bound, Closed, Open)

Public Types

using grid_type = detail::Grid<T, detail::Axis<detail::AxisType::Variable, aType>, detail::Axis<detail::AxisType::Variable, bType>>

Broadcast the grid type.

using return_type = std::tuple<detail::Axis<detail::AxisType::Variable, aType>, detail::Axis<detail::AxisType::Variable, bType>>

Broadcast the return_type.

Public Functions

inline return_type operator()() const

Call operator that generates the Axis.

Public Members

std::vector<ActsScalar> edges0 = {}
std::vector<ActsScalar> edges1 = {}