EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::InterpolatedBFieldMapper< G >::FieldCell Struct Reference

struct representing smallest grid unit in magnetic field grid More...

#include <acts/blob/sPHENIX/Core/include/Acts/MagneticField/InterpolatedBFieldMap.hpp>

+ Collaboration diagram for Acts::InterpolatedBFieldMapper< G >::FieldCell:

Public Member 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
 
Vector3D getField (const Vector3D &position) const
 retrieve field at given position
 
bool isInside (const Vector3D &position) const
 check whether given 3D position is inside this field cell
 

Static Public Attributes

static constexpr unsigned int N = 1 << DIM_POS
 number of corner points defining the confining hyper-box
 

Private Attributes

std::function< ActsVectorD
< DIM_POS >const Vector3D &)> 
m_transformPos
 geometric transformation applied to global 3D positions
 
std::array< double, DIM_POSm_lowerLeft
 generalized lower-left corner of the confining hyper-box
 
std::array< double, DIM_POSm_upperRight
 generalized upper-right corner of the confining hyper-box
 
std::array< Vector3D, Nm_fieldValues
 magnetic field vectors at the hyper-box corners
 

Detailed Description

template<typename G>
struct Acts::InterpolatedBFieldMapper< G >::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.

Definition at line 41 of file InterpolatedBFieldMap.hpp.

View newest version in sPHENIX GitHub at line 41 of file InterpolatedBFieldMap.hpp

Constructor & Destructor Documentation

template<typename G>
Acts::InterpolatedBFieldMapper< G >::FieldCell::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 
)
inline

default constructor

Parameters
[in]transformmapping of global 3D coordinates onto grid space
[in]lowerLeftgeneralized lower-left corner of hyper box (containing the minima of the hyper box along each Dimension)
[in]upperRightgeneralized upper-right corner of hyper box (containing the maxima of the hyper box along each Dimension)
[in]fieldValuesfield values at the hyper box corners sorted in the canonical order defined in Acts::interpolate

Definition at line 57 of file InterpolatedBFieldMap.hpp.

View newest version in sPHENIX GitHub at line 57 of file InterpolatedBFieldMap.hpp

Member Function Documentation

template<typename G>
Vector3D Acts::InterpolatedBFieldMapper< G >::FieldCell::getField ( const Vector3D position) const
inline

retrieve field at given position

Parameters
[in]positionglobal 3D position
Returns
magnetic field value at the given position
Precondition
The given position must lie within the current field cell.

Definition at line 72 of file InterpolatedBFieldMap.hpp.

View newest version in sPHENIX GitHub at line 72 of file InterpolatedBFieldMap.hpp

References Acts::interpolate(), Acts::InterpolatedBFieldMapper< G >::FieldCell::m_fieldValues, Acts::InterpolatedBFieldMapper< G >::FieldCell::m_lowerLeft, Acts::InterpolatedBFieldMapper< G >::FieldCell::m_transformPos, and Acts::InterpolatedBFieldMapper< G >::FieldCell::m_upperRight.

+ Here is the call graph for this function:

template<typename G>
bool Acts::InterpolatedBFieldMapper< G >::FieldCell::isInside ( const Vector3D position) const
inline

check whether given 3D position is inside this field cell

Parameters
[in]positionglobal 3D position
Returns
true if position is inside the current field cell, otherwise false

Definition at line 83 of file InterpolatedBFieldMap.hpp.

View newest version in sPHENIX GitHub at line 83 of file InterpolatedBFieldMap.hpp

References Acts::InterpolatedBFieldMapper< G >::DIM_POS, Acts::InterpolatedBFieldMapper< G >::FieldCell::m_lowerLeft, Acts::InterpolatedBFieldMapper< G >::FieldCell::m_transformPos, and Acts::InterpolatedBFieldMapper< G >::FieldCell::m_upperRight.

Member Data Documentation

template<typename G>
std::array<Vector3D, N> Acts::InterpolatedBFieldMapper< G >::FieldCell::m_fieldValues
private

magnetic field vectors at the hyper-box corners

Note
These values must be order according to the prescription detailed in Acts::interpolate.

Definition at line 108 of file InterpolatedBFieldMap.hpp.

View newest version in sPHENIX GitHub at line 108 of file InterpolatedBFieldMap.hpp

Referenced by Acts::InterpolatedBFieldMapper< G >::FieldCell::getField().

template<typename G>
std::array<double, DIM_POS> Acts::InterpolatedBFieldMapper< G >::FieldCell::m_lowerLeft
private

generalized lower-left corner of the confining hyper-box

Definition at line 99 of file InterpolatedBFieldMap.hpp.

View newest version in sPHENIX GitHub at line 99 of file InterpolatedBFieldMap.hpp

Referenced by Acts::InterpolatedBFieldMapper< G >::FieldCell::getField(), and Acts::InterpolatedBFieldMapper< G >::FieldCell::isInside().

template<typename G>
std::function<ActsVectorD<DIM_POS>const Vector3D&)> Acts::InterpolatedBFieldMapper< G >::FieldCell::m_transformPos
private

geometric transformation applied to global 3D positions

Definition at line 96 of file InterpolatedBFieldMap.hpp.

View newest version in sPHENIX GitHub at line 96 of file InterpolatedBFieldMap.hpp

Referenced by Acts::InterpolatedBFieldMapper< G >::FieldCell::getField(), and Acts::InterpolatedBFieldMapper< G >::FieldCell::isInside().

template<typename G>
std::array<double, DIM_POS> Acts::InterpolatedBFieldMapper< G >::FieldCell::m_upperRight
private

generalized upper-right corner of the confining hyper-box

Definition at line 102 of file InterpolatedBFieldMap.hpp.

View newest version in sPHENIX GitHub at line 102 of file InterpolatedBFieldMap.hpp

Referenced by Acts::InterpolatedBFieldMapper< G >::FieldCell::getField(), and Acts::InterpolatedBFieldMapper< G >::FieldCell::isInside().

template<typename G>
constexpr unsigned int Acts::InterpolatedBFieldMapper< G >::FieldCell::N = 1 << DIM_POS
static

number of corner points defining the confining hyper-box

Definition at line 43 of file InterpolatedBFieldMap.hpp.

View newest version in sPHENIX GitHub at line 43 of file InterpolatedBFieldMap.hpp


The documentation for this struct was generated from the following file: