Class ISurfaceMaterial

Inheritance Relationships

Derived Types

Class Documentation

class Acts::ISurfaceMaterial

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.

ISurfaceMaterial(double splitFactor)

Constructor.

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

~ISurfaceMaterial() = default

Destructor.

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)

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

Return method for full material description of the Surface.

  • from local coordinate on the surface

Return

const MaterialSlab

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

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

Return method for full material description of the Surface.

  • from the global coordinates

Return

const MaterialSlab

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

const MaterialSlab &materialSlab(size_t ib0, size_t ib1) const = 0

Direct access via bins to the MaterialSlab.

Parameters
  • ib0: is the material bin in dimension 0

  • ib1: is the material bin in dimension 1

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

Return

MaterialSlab

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)

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

Return method for full material description of the Surface.

  • from the global coordinates

Return

MaterialSlab

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)

ISurfaceMaterial &operator*=(double scale) = 0

Scale operator.

Parameters
  • scale: is the scale factor applied

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

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

Protected Attributes

double m_splitFactor = {1.}

the split factor in favour of oppositePre

Friends

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

Return

modified output stream object