Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::InterpolatedMaterialMap< Mapper_t > Class Template Reference

Interpolate material classification values from material values on a given grid. More...

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

+ Inheritance diagram for Acts::InterpolatedMaterialMap< Mapper_t >:
+ Collaboration diagram for Acts::InterpolatedMaterialMap< Mapper_t >:

Classes

struct  Cache
 Temporary storage of a certain cell to improve material access. More...
 

Public Member Functions

 InterpolatedMaterialMap (Mapper_t &&mapper)
 Create interpolated map.
 
 InterpolatedMaterialMap (Mapper_t &&mapper, BinUtility bu)
 Create interpolated map.
 
const Material material (const Vector3 &position) const override
 Retrieve the binned material.
 
Material getMaterial (const Vector3 &position) const
 Retrieve the interpolated material.
 
Material getMaterial (const Vector3 &position, Cache &cache) const
 Retrieve material.
 
Material getMaterialGradient (const Vector3 &position, ActsMatrix< 5, 5 > &derivative) const
 Retrieve material value & its "gradient".
 
Material getMaterialGradient (const Vector3 &position, ActsMatrix< 5, 5 > &derivative, Cache &cache) const
 Retrieve material value & its "gradient".
 
const Mapper_t & getMapper () const
 Convenience method to access underlying material mapper.
 
bool isInside (const Vector3 &position) const
 Check whether given 3D position is inside look-up domain.
 
const BinUtilitybinUtility () const
 Return the BinUtility.
 
std::ostream & toStream (std::ostream &sl) const override
 
- Public Member Functions inherited from Acts::IVolumeMaterial
virtual ~IVolumeMaterial ()=default
 Virtual Destructor.
 

Private Member Functions

Mapper_t::MaterialCell getMaterialCell (const Vector3 &position) const
 Retrieve cell for given position.
 

Private Attributes

Mapper_t m_mapper
 object for global coordinate transformation and interpolation
 
BinUtility m_binUtility {}
 

Detailed Description

template<typename Mapper_t>
class Acts::InterpolatedMaterialMap< Mapper_t >

Interpolate material classification values from material values on a given grid.

This class implements a material service which is initialized by a material map defined by:

  • a list of material values on a regular grid in some n-Dimensional space,
  • a transformation of global 3D coordinates onto this n-Dimensional space.
  • a transformation of local n-Dimensional material coordinates into global (cartesian) 3D coordinates

The material value for a given global position is then determined by:

  • mapping the position onto the grid,
  • looking up the material classification values on the closest grid points,
  • doing a linear interpolation of these values.
    Warning
    Each classification number of the material is interpolated independently and thus does not consider any correlations that exists between these values. This might work out since the used material is already a mean of the materials in a certain bin and can therewith be treated as a collection of numbers.
    Template Parameters
    GType of the grid

Definition at line 237 of file InterpolatedMaterialMap.hpp.

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

Constructor & Destructor Documentation

template<typename Mapper_t>
Acts::InterpolatedMaterialMap< Mapper_t >::InterpolatedMaterialMap ( Mapper_t &&  mapper)
inline

Create interpolated map.

Parameters
[in]mapperMaterial map

Definition at line 250 of file InterpolatedMaterialMap.hpp.

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

template<typename Mapper_t>
Acts::InterpolatedMaterialMap< Mapper_t >::InterpolatedMaterialMap ( Mapper_t &&  mapper,
BinUtility  bu 
)
inline

Create interpolated map.

Parameters
[in]mapperMaterial map
[in]buBinUtility for build from

Definition at line 256 of file InterpolatedMaterialMap.hpp.

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

Member Function Documentation

template<typename Mapper_t>
const BinUtility& Acts::InterpolatedMaterialMap< Mapper_t >::binUtility ( ) const
inline

Return the BinUtility.

Definition at line 338 of file InterpolatedMaterialMap.hpp.

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

References Acts::InterpolatedMaterialMap< Mapper_t >::m_binUtility.

template<typename Mapper_t>
const Mapper_t& Acts::InterpolatedMaterialMap< Mapper_t >::getMapper ( ) const
inline

Convenience method to access underlying material mapper.

Returns
The material mapper

Definition at line 327 of file InterpolatedMaterialMap.hpp.

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

References Acts::InterpolatedMaterialMap< Mapper_t >::m_mapper.

template<typename Mapper_t>
Material Acts::InterpolatedMaterialMap< Mapper_t >::getMaterial ( const Vector3 position) const
inline

Retrieve the interpolated material.

Parameters
[in]positionGlobal 3D position
Returns
material at given position

Definition at line 273 of file InterpolatedMaterialMap.hpp.

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

References Acts::InterpolatedMaterialMap< Mapper_t >::m_mapper.

template<typename Mapper_t>
Material Acts::InterpolatedMaterialMap< Mapper_t >::getMaterial ( const Vector3 position,
Cache cache 
) const
inline

Retrieve material.

Parameters
[in]positionGlobal 3D position
[in,out]cacheCache object. Contains material cell used for interpolation
Returns
material at given position

Definition at line 284 of file InterpolatedMaterialMap.hpp.

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

References Acts::InterpolatedMaterialMap< Mapper_t >::getMaterialCell(), Acts::InterpolatedMaterialMap< Mapper_t >::Cache::initialized, and Acts::InterpolatedMaterialMap< Mapper_t >::Cache::matCell.

+ Here is the call graph for this function:

template<typename Mapper_t>
Mapper_t::MaterialCell Acts::InterpolatedMaterialMap< Mapper_t >::getMaterialCell ( const Vector3 position) const
inlineprivate

Retrieve cell for given position.

Parameters
[in]positionGlobal 3D position
Returns
Material cell containing the given global position
Precondition
The given position must lie within the range of the underlying map.

Definition at line 359 of file InterpolatedMaterialMap.hpp.

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

References Acts::InterpolatedMaterialMap< Mapper_t >::m_mapper.

Referenced by Acts::InterpolatedMaterialMap< Mapper_t >::getMaterial().

+ Here is the caller graph for this function:

template<typename Mapper_t>
Material Acts::InterpolatedMaterialMap< Mapper_t >::getMaterialGradient ( const Vector3 position,
ActsMatrix< 5, 5 > &  derivative 
) const
inline

Retrieve material value & its "gradient".

Parameters
[in]positionGlobal 3D position
[out]derivative"Gradient" of material as (5x5) matrix
Returns
Material
Note
Currently the derivative is not calculated

Definition at line 300 of file InterpolatedMaterialMap.hpp.

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

References Acts::InterpolatedMaterialMap< Mapper_t >::m_mapper.

template<typename Mapper_t>
Material Acts::InterpolatedMaterialMap< Mapper_t >::getMaterialGradient ( const Vector3 position,
ActsMatrix< 5, 5 > &  derivative,
Cache cache 
) const
inline

Retrieve material value & its "gradient".

Parameters
[in]positionGlobal 3D position
[out]derivative"Gradient" of material as (5x5) matrix
[in,out]cacheCache object. Contains cell used for
Returns
Material
Note
Currently the derivative is not calculated
Cache is not used currently

Definition at line 316 of file InterpolatedMaterialMap.hpp.

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

References Acts::InterpolatedMaterialMap< Mapper_t >::m_mapper.

template<typename Mapper_t>
bool Acts::InterpolatedMaterialMap< Mapper_t >::isInside ( const Vector3 position) const
inline

Check whether given 3D position is inside look-up domain.

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

Definition at line 333 of file InterpolatedMaterialMap.hpp.

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

References Acts::InterpolatedMaterialMap< Mapper_t >::m_mapper.

template<typename Mapper_t>
const Material Acts::InterpolatedMaterialMap< Mapper_t >::material ( const Vector3 position) const
inlineoverridevirtual

Retrieve the binned material.

Parameters
[in]positionGlobal 3D position
Returns
Material at given position

Implements Acts::IVolumeMaterial.

Definition at line 264 of file InterpolatedMaterialMap.hpp.

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

References Acts::InterpolatedMaterialMap< Mapper_t >::m_mapper.

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

+ Here is the caller graph for this function:

template<typename Mapper_t>
std::ostream& Acts::InterpolatedMaterialMap< Mapper_t >::toStream ( std::ostream &  sl) const
inlineoverridevirtual

Output Method for std::ostream

Parameters
slThe outoput stream

Implements Acts::IVolumeMaterial.

Definition at line 343 of file InterpolatedMaterialMap.hpp.

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

References Acts::InterpolatedMaterialMap< Mapper_t >::m_binUtility, and Acts::BinUtility::max().

+ Here is the call graph for this function:

Member Data Documentation

template<typename Mapper_t>
BinUtility Acts::InterpolatedMaterialMap< Mapper_t >::m_binUtility {}
private
template<typename Mapper_t>
Mapper_t Acts::InterpolatedMaterialMap< Mapper_t >::m_mapper
private

object for global coordinate transformation and interpolation

This object performs the mapping of the global 3D coordinates onto the material grid and the interpolation of the material component values on close-by grid points.

Definition at line 369 of file InterpolatedMaterialMap.hpp.

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

Referenced by Acts::InterpolatedMaterialMap< Mapper_t >::getMapper(), Acts::InterpolatedMaterialMap< Mapper_t >::getMaterial(), Acts::InterpolatedMaterialMap< Mapper_t >::getMaterialCell(), Acts::InterpolatedMaterialMap< Mapper_t >::getMaterialGradient(), Acts::InterpolatedMaterialMap< Mapper_t >::isInside(), and Acts::InterpolatedMaterialMap< Mapper_t >::material().


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