File ISurfaceMaterial.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

Note

this is foreseen for the ‘Geometry’ module

Enums

enum MappingType

This enum describes the type of surface material mapping.

Values:

enumerator PreMapping
enumerator Default
enumerator PostMapping
enumerator Sensor
class ISurfaceMaterial
#include <Acts/Material/ISurfaceMaterial.hpp>

Virtual base class of surface based material description.

MaterialSlab that are associated to a surface, extended by certain special representations (binned, homogenous)

Subclassed by Acts::BinnedSurfaceMaterial, Acts::HomogeneousSurfaceMaterial, Acts::ProtoSurfaceMaterial

Public Functions

ISurfaceMaterial() = default

Constructor.

inline ISurfaceMaterial(double splitFactor)

Constructor.

Parameters

splitFactor – is the splitting ratio between pre/post update

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

Constructor.

Parameters
  • splitFactor – is the splitting ratio between pre/post update

  • mappingType – is the type of surface mapping associated to the surface

virtual ~ISurfaceMaterial() = default

Destructor.

inline double factor(NavigationDirection pDir, MaterialUpdateStage mStage) const

Update pre factor.

Parameters
  • pDir – is the navigation direction through the surface

  • mStage – is the material update directive (onapproach, full, onleave)

inline MappingType mappingType() const

Return the type of surface material mapping.

virtual const MaterialSlab &materialSlab(const Vector2 &lp) const = 0

Return method for full material description of the Surface.

  • from local coordinate on the surface

Parameters

lp – is the local position used for the (eventual) lookup

Returns

const MaterialSlab

virtual const MaterialSlab &materialSlab(const Vector3 &gp) const = 0

Return method for full material description of the Surface.

  • from the global coordinates

Parameters

gp – is the global position used for the (eventual) lookup

Returns

const MaterialSlab

virtual const MaterialSlab &materialSlab(size_t bin0, size_t bin1) const = 0

Direct access via bins to the MaterialSlab.

Parameters
  • bin0 – is the material bin in dimension 0

  • bin1 – is the material bin in dimension 1

inline MaterialSlab materialSlab(const Vector2 &lp, NavigationDirection pDir, MaterialUpdateStage mStage) const

Return method for fully scaled material description of the Surface.

  • from local coordinate on the surface

Parameters
  • lp – is the local position used for the (eventual) lookup

  • pDir – is the navigation direction through the surface

  • mStage – is the material update directive (onapproach, full, onleave)

Returns

MaterialSlab

inline MaterialSlab materialSlab(const Vector3 &gp, NavigationDirection pDir, MaterialUpdateStage mStage) const

Return method for full material description of the Surface.

  • from the global coordinates

Parameters
  • gp – is the global position used for the (eventual) lookup

  • pDir – is the navigation direction through the surface

  • mStage – is the material update directive (onapproach, full, onleave)

Returns

MaterialSlab

virtual ISurfaceMaterial &operator*=(double scale) = 0

Scale operator.

Parameters

scale – is the scale factor applied

virtual std::ostream &toStream(std::ostream &sl) const = 0

Output Method for std::ostream, to be overloaded by child classes.

Protected Attributes

MappingType m_mappingType{Acts::MappingType::Default}

Use the default mapping type by default.

double m_splitFactor = {1.}

the split factor in favour of oppositePre

Friends

inline friend std::ostream &operator<<(std::ostream &out, const ISurfaceMaterial &sm)

output stream operator

Prints information about this object to the output stream using the virtual ISurfaceMaterial::toStream method

Returns

modified output stream object