Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::InterpolatedBFieldMap< grid_t >::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::InterpolatedBFieldMap< grid_t >::FieldCell:

Public Member Functions

 FieldCell (std::array< double, DIM_POS > lowerLeft, std::array< double, DIM_POS > upperRight, std::array< Vector3, N > fieldValues)
 default constructor
 
Vector3 getField (const ActsVector< DIM_POS > &position) const
 retrieve field at given position
 
bool isInside (const ActsVector< DIM_POS > &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::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< Vector3, Nm_fieldValues
 magnetic field vectors at the hyper-box corners
 

Detailed Description

template<typename grid_t>
struct Acts::InterpolatedBFieldMap< grid_t >::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 86 of file InterpolatedBFieldMap.hpp.

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

Constructor & Destructor Documentation

template<typename grid_t>
Acts::InterpolatedBFieldMap< grid_t >::FieldCell::FieldCell ( std::array< double, DIM_POS lowerLeft,
std::array< double, DIM_POS upperRight,
std::array< Vector3, N fieldValues 
)
inline

default constructor

Parameters
[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 101 of file InterpolatedBFieldMap.hpp.

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

Member Function Documentation

template<typename grid_t>
Vector3 Acts::InterpolatedBFieldMap< grid_t >::FieldCell::getField ( const ActsVector< DIM_POS > &  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 114 of file InterpolatedBFieldMap.hpp.

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

References Acts::interpolate(), Acts::InterpolatedBFieldMap< grid_t >::FieldCell::m_fieldValues, Acts::InterpolatedBFieldMap< grid_t >::FieldCell::m_lowerLeft, and Acts::InterpolatedBFieldMap< grid_t >::FieldCell::m_upperRight.

+ Here is the call graph for this function:

template<typename grid_t>
bool Acts::InterpolatedBFieldMap< grid_t >::FieldCell::isInside ( const ActsVector< DIM_POS > &  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 124 of file InterpolatedBFieldMap.hpp.

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

References Acts::InterpolatedBFieldMap< grid_t >::DIM_POS, i, Acts::InterpolatedBFieldMap< grid_t >::FieldCell::m_lowerLeft, and Acts::InterpolatedBFieldMap< grid_t >::FieldCell::m_upperRight.

Member Data Documentation

template<typename grid_t>
std::array<Vector3, N> Acts::InterpolatedBFieldMap< grid_t >::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 144 of file InterpolatedBFieldMap.hpp.

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

Referenced by Acts::InterpolatedBFieldMap< grid_t >::FieldCell::getField().

template<typename grid_t>
std::array<double, DIM_POS> Acts::InterpolatedBFieldMap< grid_t >::FieldCell::m_lowerLeft
private

generalized lower-left corner of the confining hyper-box

Definition at line 135 of file InterpolatedBFieldMap.hpp.

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

Referenced by Acts::InterpolatedBFieldMap< grid_t >::FieldCell::getField(), and Acts::InterpolatedBFieldMap< grid_t >::FieldCell::isInside().

template<typename grid_t>
std::array<double, DIM_POS> Acts::InterpolatedBFieldMap< grid_t >::FieldCell::m_upperRight
private

generalized upper-right corner of the confining hyper-box

Definition at line 138 of file InterpolatedBFieldMap.hpp.

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

Referenced by Acts::InterpolatedBFieldMap< grid_t >::FieldCell::getField(), and Acts::InterpolatedBFieldMap< grid_t >::FieldCell::isInside().

template<typename grid_t>
constexpr unsigned int Acts::InterpolatedBFieldMap< grid_t >::FieldCell::N = 1 << DIM_POS
static

number of corner points defining the confining hyper-box

Definition at line 88 of file InterpolatedBFieldMap.hpp.

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


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