Struct Acts::MaterialMapper::MaterialCell

struct MaterialCell

Struct representing smallest grid unit in material grid.

This type encapsulate all required information to perform linear interpolation of material classification values within a 3D volume.

Public Functions

inline MaterialCell(std::function<ActsVector<DIM_POS>(const Vector3&)> transformPos, std::array<double, DIM_POS> lowerLeft, std::array<double, DIM_POS> upperRight, std::array<Material::ParametersVector, N> materialValues)

Default constructor.

Parameters
  • transformPos[in] Mapping of global 3D coordinates onto grid space

  • lowerLeft[in] Generalized lower-left corner of hyper box (containing the minima of the hyper box along each Dimension)

  • upperRight[in] Generalized upper-right corner of hyper box (containing the maxima of the hyper box along each Dimension)

  • materialValues[in] Material classification values at the hyper box corners sorted in the canonical order defined in Acts::interpolate

inline Material getMaterial(const Vector3 &position) const

Retrieve material at given position.

Parameters

position[in] Global 3D position

Returns

Material at the given position

Pre

The given position must lie within the current cell.

inline bool isInside(const Vector3 &position) const

Check whether given 3D position is inside this cell.

Parameters

position[in] Global 3D position

Returns

true if position is inside the current cell, otherwise false

Public Static Attributes

static constexpr unsigned int N = 1 << DIM_POS

Number of corner points defining the confining hyper-box.