File ISurfaceMaterial.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

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