Struct InterpolatedBFieldMapper::FieldCell

Nested Relationships

This struct is a nested type of Template Struct InterpolatedBFieldMapper.

Struct Documentation

struct Acts::InterpolatedBFieldMapper::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