Template Struct InterpolatedBFieldMapper

Nested Relationships

Struct Documentation

template<typename G>
struct Acts::InterpolatedBFieldMapper

struct for mapping global 3D positions to field values

Global 3D positions are transformed into a

DIM_POS Dimensional vector which is used to look up the magnetic field value in the underlying field map.
Template Parameters
  • DIM_POS: Dimensionality of position in magnetic field map

  • DIM_BFIELD: Dimensionality of BField in magnetic field map

Public Types

using FieldType = typename Grid_t::value_type
using Grid_t = G

Public Functions

InterpolatedBFieldMapper(std::function<ActsVectorD<DIM_POS>(const Vector3D&)> transformPos, std::function<Vector3D(const FieldType&, const Vector3D&)> transformBField, Grid_t grid, )

default constructor

Parameters
  • [in] transformPos: mapping of global 3D coordinates (cartesian) onto grid space

  • [in] transformBField: calculating the global 3D coordinates (cartesian) of the magnetic field with the local n dimensional field and the global 3D position as input

  • [in] grid: grid storing magnetic field values

Vector3D getField(const Vector3D &position) const

retrieve field at given position

Return

magnetic field value at the given position

Pre

The given position must lie within the range of the underlying magnetic field map.

Parameters
  • [in] position: global 3D position

FieldCell getFieldCell(const Vector3D &position) const

retrieve field cell for given position

Return

field cell containing the given global position

Pre

The given position must lie within the range of the underlying magnetic field map.

Parameters
  • [in] position: global 3D position

const Grid_t &getGrid() const

Get a const reference on the underlying grid structure.

Return

grid reference

std::vector<double> getMax() const

get the maximum value of all axes of the field map

Return

vector returning the maxima of all field map axes

std::vector<double> getMin() const

get the minimum value of all axes of the field map

Return

vector returning the minima of all field map axes

std::vector<size_t> getNBins() const

get the number of bins for all axes of the field map

Return

vector returning number of bins for all field map axes

bool isInside(const Vector3D &position) const

check whether given 3D position is inside look-up domain

Return

true if position is inside the defined look-up grid, otherwise false

Parameters
  • [in] position: global 3D position

Public Static Attributes

constexpr size_t DIM_POS = Grid_t::DIM
struct FieldCell

struct representing smallest grid unit in magnetic field grid

This type encapsulate all required information to perform linear interpolation of magnetic field values within a confined 3D volume.

Public Functions

FieldCell(std::function<ActsVectorD<DIM_POS>(const Vector3D&)> transformPos, std::array<double, DIM_POS> lowerLeft, std::array<double, DIM_POS> upperRight, std::array<Vector3D, N> fieldValues, )

default constructor

Parameters
  • [in] transform: mapping of global 3D coordinates onto grid space

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

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

  • [in] fieldValues: field values at the hyper box corners sorted in the canonical order defined in Acts::interpolate

Vector3D getField(const Vector3D &position) const

retrieve field at given position

Return

magnetic field value at the given position

Pre

The given position must lie within the current field cell.

Parameters
  • [in] position: global 3D position

bool isInside(const Vector3D &position) const

check whether given 3D position is inside this field cell

Return

true if position is inside the current field cell, otherwise false

Parameters
  • [in] position: global 3D position

Public Static Attributes

constexpr unsigned int N = 1 << DIM_POS

number of corner points defining the confining hyper-box