ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::ISurfaceMaterial Class Referenceabstract

Base class of all surface-based material description. More...

#include <Acts/Material/ISurfaceMaterial.hpp>

Inheritance diagram for Acts::ISurfaceMaterial:
[legend]

Public Member Functions

 ISurfaceMaterial ()=default
 Constructor.
 ISurfaceMaterial (double splitFactor)
 Constructor.
 ISurfaceMaterial (double splitFactor, MappingType mappingType)
 Constructor.
virtual ~ISurfaceMaterial ()=default
 Destructor.
double factor (Direction pDir, MaterialUpdateMode mode) const
 Update pre factor.
MappingType mappingType () const
 Return the type of surface material mapping.
virtual const MaterialSlabmaterialSlab (const Vector2 &lp) const =0
 Return method for full material description of the Surface.
virtual MaterialSlab materialSlab (const Vector2 &lp, Direction pDir, MaterialUpdateMode mode) const
 Return method for fully scaled material description of the Surface.
virtual const MaterialSlabmaterialSlab (const Vector3 &gp) const =0
 Return method for full material description of the Surface.
virtual MaterialSlab materialSlab (const Vector3 &gp, Direction pDir, MaterialUpdateMode mode) const
 Return method for full material description of the Surface.
virtual ISurfaceMaterialscale (double factor)=0
 Scale material.
virtual std::ostream & toStream (std::ostream &sl) const =0
 Output Method for std::ostream, to be overloaded by child classes.
std::string toString () const
 output into a string

Protected Attributes

MappingType m_mappingType {MappingType::Default}
 Use the default mapping type by default.
double m_splitFactor {1.}
 the split factor in favour of oppositePre

Detailed Description

Base class of all surface-based material description.

The class supplies references to MaterialSlab that are associated to a surface, extended by certain special representations (binned, homogeneous). The concrete MaterialSlab can depend on the local position on the surface.

Constructor & Destructor Documentation

◆ ISurfaceMaterial() [1/3]

Acts::ISurfaceMaterial::ISurfaceMaterial ( )
default

Constructor.

◆ ISurfaceMaterial() [2/3]

Acts::ISurfaceMaterial::ISurfaceMaterial ( double splitFactor)
explicit

Constructor.

Parameters
splitFactoris the splitting ratio between pre/post update

◆ ISurfaceMaterial() [3/3]

Acts::ISurfaceMaterial::ISurfaceMaterial ( double splitFactor,
MappingType mappingType )
explicit

Constructor.

Parameters
splitFactoris the splitting ratio between pre/post update
mappingTypeis the type of surface mapping associated to the surface

◆ ~ISurfaceMaterial()

virtual Acts::ISurfaceMaterial::~ISurfaceMaterial ( )
virtualdefault

Destructor.

Member Function Documentation

◆ factor()

double Acts::ISurfaceMaterial::factor ( Direction pDir,
MaterialUpdateMode mode ) const

Update pre factor.

Parameters
pDiris the positive direction through the surface
modeis the material update directive
Returns
Factor for material scaling based on direction and update mode

◆ mappingType()

MappingType Acts::ISurfaceMaterial::mappingType ( ) const

Return the type of surface material mapping.

Returns
The mapping type indicating how material is associated with the surface

◆ materialSlab() [1/4]

virtual const MaterialSlab & Acts::ISurfaceMaterial::materialSlab ( const Vector2 & lp) const
pure virtual

◆ materialSlab() [2/4]

virtual MaterialSlab Acts::ISurfaceMaterial::materialSlab ( const Vector2 & lp,
Direction pDir,
MaterialUpdateMode mode ) const
virtual

Return method for fully scaled material description of the Surface.

  • from local coordinate on the surface
Parameters
lpis the local position used for the (eventual) lookup
pDiris the positive direction through the surface
modeis the material update directive
Returns
MaterialSlab

Reimplemented in Acts::BinnedSurfaceMaterial, Acts::GridSurfaceMaterialT< grid_t, material_accessor_t >, Acts::GridSurfaceMaterialT< grid_type, GloballyIndexedMaterialAccessor >, Acts::GridSurfaceMaterialT< grid_type, GridMaterialAccessor >, Acts::GridSurfaceMaterialT< grid_type, IndexedMaterialAccessor >, Acts::HomogeneousSurfaceMaterial, Acts::ProtoSurfaceMaterialT< BinningType >, and Acts::ProtoSurfaceMaterialT< Acts::BinUtility >.

◆ materialSlab() [3/4]

virtual const MaterialSlab & Acts::ISurfaceMaterial::materialSlab ( const Vector3 & gp) const
pure virtual

◆ materialSlab() [4/4]

virtual MaterialSlab Acts::ISurfaceMaterial::materialSlab ( const Vector3 & gp,
Direction pDir,
MaterialUpdateMode mode ) const
virtual

Return method for full material description of the Surface.

  • from the global coordinates
Parameters
gpis the global position used for the (eventual) lookup
pDiris the positive direction through the surface
modeis the material update directive
Returns
MaterialSlab

Reimplemented in Acts::BinnedSurfaceMaterial, Acts::GridSurfaceMaterialT< grid_t, material_accessor_t >, Acts::GridSurfaceMaterialT< grid_type, GloballyIndexedMaterialAccessor >, Acts::GridSurfaceMaterialT< grid_type, GridMaterialAccessor >, Acts::GridSurfaceMaterialT< grid_type, IndexedMaterialAccessor >, Acts::HomogeneousSurfaceMaterial, Acts::ProtoSurfaceMaterialT< BinningType >, and Acts::ProtoSurfaceMaterialT< Acts::BinUtility >.

◆ scale()

◆ toStream()

virtual std::ostream & Acts::ISurfaceMaterial::toStream ( std::ostream & sl) const
pure virtual

◆ toString()

std::string Acts::ISurfaceMaterial::toString ( ) const

output into a string

Returns
the string representation

Member Data Documentation

◆ m_mappingType

MappingType Acts::ISurfaceMaterial::m_mappingType {MappingType::Default}
protected

Use the default mapping type by default.

◆ m_splitFactor

double Acts::ISurfaceMaterial::m_splitFactor {1.}
protected

the split factor in favour of oppositePre