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

Struct representing smallest grid unit in material grid. More...

#include <acts/blob/sPHENIX/Core/include/Acts/Material/InterpolatedMaterialMap.hpp>

+ Collaboration diagram for Acts::MaterialMapper< G >::MaterialCell:

Public Member Functions

 MaterialCell (std::function< ActsVectorD< DIM_POS >(const Vector3D &)> transformPos, std::array< double, DIM_POS > lowerLeft, std::array< double, DIM_POS > upperRight, std::array< ActsVectorF< 5 >, N > materialValues)
 Default constructor.
 
Material getMaterial (const Vector3D &position) const
 Retrieve material at given position.
 
bool isInside (const Vector3D &position) const
 Check whether given 3D position is inside this 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< ActsVectorF< 5 >, Nm_materialValues
 Material component vectors at the hyper-box corners.
 

Detailed Description

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

Definition at line 37 of file InterpolatedMaterialMap.hpp.

View newest version in sPHENIX GitHub at line 37 of file InterpolatedMaterialMap.hpp

Constructor & Destructor Documentation

template<typename G>
Acts::MaterialMapper< G >::MaterialCell::MaterialCell ( std::function< ActsVectorD< DIM_POS >(const Vector3D &)>  transformPos,
std::array< double, DIM_POS lowerLeft,
std::array< double, DIM_POS upperRight,
std::array< ActsVectorF< 5 >, N materialValues 
)
inline

Default constructor.

Parameters
[in]transformPosMapping 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]materialValuesMaterial classification values at the hyper box corners sorted in the canonical order defined in Acts::interpolate

Definition at line 53 of file InterpolatedMaterialMap.hpp.

View newest version in sPHENIX GitHub at line 53 of file InterpolatedMaterialMap.hpp

Member Function Documentation

template<typename G>
Material Acts::MaterialMapper< G >::MaterialCell::getMaterial ( const Vector3D position) const
inline

Retrieve material at given position.

Parameters
[in]positionGlobal 3D position
Returns
Material at the given position
Precondition
The given position must lie within the current cell.

Definition at line 69 of file InterpolatedMaterialMap.hpp.

View newest version in sPHENIX GitHub at line 69 of file InterpolatedMaterialMap.hpp

References Acts::interpolate(), Acts::MaterialMapper< G >::MaterialCell::m_lowerLeft, Acts::MaterialMapper< G >::MaterialCell::m_materialValues, Acts::MaterialMapper< G >::MaterialCell::m_transformPos, and Acts::MaterialMapper< G >::MaterialCell::m_upperRight.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<typename G>
bool Acts::MaterialMapper< G >::MaterialCell::isInside ( const Vector3D position) const
inline

Check whether given 3D position is inside this cell.

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

Definition at line 80 of file InterpolatedMaterialMap.hpp.

View newest version in sPHENIX GitHub at line 80 of file InterpolatedMaterialMap.hpp

References Acts::MaterialMapper< G >::DIM_POS, Acts::MaterialMapper< G >::MaterialCell::m_lowerLeft, Acts::MaterialMapper< G >::MaterialCell::m_transformPos, and Acts::MaterialMapper< G >::MaterialCell::m_upperRight.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

Member Data Documentation

template<typename G>
std::array<double, DIM_POS> Acts::MaterialMapper< G >::MaterialCell::m_lowerLeft
private

Generalized lower-left corner of the confining hyper-box.

Definition at line 96 of file InterpolatedMaterialMap.hpp.

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

Referenced by Acts::MaterialMapper< G >::MaterialCell::getMaterial(), and Acts::MaterialMapper< G >::MaterialCell::isInside().

template<typename G>
std::array<ActsVectorF<5>, N> Acts::MaterialMapper< G >::MaterialCell::m_materialValues
private

Material component vectors at the hyper-box corners.

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

Definition at line 105 of file InterpolatedMaterialMap.hpp.

View newest version in sPHENIX GitHub at line 105 of file InterpolatedMaterialMap.hpp

Referenced by Acts::MaterialMapper< G >::MaterialCell::getMaterial().

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

Geometric transformation applied to global 3D positions.

Definition at line 93 of file InterpolatedMaterialMap.hpp.

View newest version in sPHENIX GitHub at line 93 of file InterpolatedMaterialMap.hpp

Referenced by Acts::MaterialMapper< G >::MaterialCell::getMaterial(), and Acts::MaterialMapper< G >::MaterialCell::isInside().

template<typename G>
std::array<double, DIM_POS> Acts::MaterialMapper< G >::MaterialCell::m_upperRight
private

Generalized upper-right corner of the confining hyper-box.

Definition at line 99 of file InterpolatedMaterialMap.hpp.

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

Referenced by Acts::MaterialMapper< G >::MaterialCell::getMaterial(), and Acts::MaterialMapper< G >::MaterialCell::isInside().

template<typename G>
constexpr unsigned int Acts::MaterialMapper< G >::MaterialCell::N = 1 << DIM_POS
static

Number of corner points defining the confining hyper-box.

Definition at line 39 of file InterpolatedMaterialMap.hpp.

View newest version in sPHENIX GitHub at line 39 of file InterpolatedMaterialMap.hpp


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