ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::BinnedSurfaceMaterial Class Reference

It extends the ISurfaceMaterial base class and is an array pf MaterialSlab. More...

#include <Acts/Material/BinnedSurfaceMaterial.hpp>

Inheritance diagram for Acts::BinnedSurfaceMaterial:
[legend]
Collaboration diagram for Acts::BinnedSurfaceMaterial:
[legend]

Public Member Functions

 BinnedSurfaceMaterial (const BinUtility &binUtility, MaterialSlabMatrix materialMatrix, double splitFactor=0., MappingType mappingType=MappingType::Default)
 Explicit constructor with only full MaterialSlab, for two-dimensional binning.
 BinnedSurfaceMaterial (const BinUtility &binUtility, MaterialSlabVector materialVector, double splitFactor=0., MappingType mappingType=MappingType::Default)
 Explicit constructor with only full MaterialSlab, for one-dimensional binning.
const BinUtilitybinUtility () const
 Return the BinUtility.
const MaterialSlabMatrixfullMaterial () const
 Retrieve the entire material slab matrix.
std::vector< AxisDirectionlocalAxisDirections () const final
 Returns the axis directions for the local coordinate system.
const MaterialSlabmaterialSlab (const Vector2 &lp) const final
 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.
const MaterialSlabmaterialSlab (const Vector3 &gp) const final
 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.
BinnedSurfaceMaterialscale (double factor) final
 Scale operation.
std::ostream & toStream (std::ostream &sl) const final
 Output Method for std::ostream, to be overloaded by child classes.
Public Member Functions inherited from Acts::ISurfaceMaterial
 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.
std::string toString () const
 output into a string

Additional Inherited Members

Protected Attributes inherited from Acts::ISurfaceMaterial
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

It extends the ISurfaceMaterial base class and is an array pf MaterialSlab.

This is not memory optimised as every bin holds one material property object.

The split factors:

  • 1. : oppositePre
  • 0. : alongPre

Constructor & Destructor Documentation

◆ BinnedSurfaceMaterial() [1/2]

Acts::BinnedSurfaceMaterial::BinnedSurfaceMaterial ( const BinUtility & binUtility,
MaterialSlabVector materialVector,
double splitFactor = 0.,
MappingType mappingType = MappingType::Default )

Explicit constructor with only full MaterialSlab, for one-dimensional binning.

Parameters
binUtilitydefines the binning structure on the surface (copied)
materialVectoris the vector of material slabs as recorded (moved)
splitFactoris the pre/post splitting directive
mappingTypeis the type of surface mapping associated to the surface

◆ BinnedSurfaceMaterial() [2/2]

Acts::BinnedSurfaceMaterial::BinnedSurfaceMaterial ( const BinUtility & binUtility,
MaterialSlabMatrix materialMatrix,
double splitFactor = 0.,
MappingType mappingType = MappingType::Default )

Explicit constructor with only full MaterialSlab, for two-dimensional binning.

Parameters
binUtilitydefines the binning structure on the surface (copied)
materialMatrixis the matrix of material slabs as recorded (moved)
splitFactoris the pre/post splitting directive
mappingTypeis the type of surface mapping associated to the surface

Member Function Documentation

◆ binUtility()

const BinUtility & Acts::BinnedSurfaceMaterial::binUtility ( ) const

Return the BinUtility.

Returns
Reference to the bin utility used for material binning

◆ fullMaterial()

const MaterialSlabMatrix & Acts::BinnedSurfaceMaterial::fullMaterial ( ) const

Retrieve the entire material slab matrix.

Returns
Reference to the complete matrix of material slabs

◆ localAxisDirections()

std::vector< AxisDirection > Acts::BinnedSurfaceMaterial::localAxisDirections ( ) const
finalvirtual

Returns the axis directions for the local coordinate system.

Returns
Vector of axis directions defining the local coordinate system

Implements Acts::ISurfaceMaterial.

◆ materialSlab() [1/4]

const MaterialSlab & Acts::BinnedSurfaceMaterial::materialSlab ( const Vector2 & lp) const
finalvirtual

Return method for full material description of the Surface.

  • from local coordinate of the material grid
Parameters
lpis the local position used for the (eventual) lookup
Returns
const MaterialSlab

Implements Acts::ISurfaceMaterial.

◆ 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 of the material grid
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 from Acts::ISurfaceMaterial.

◆ materialSlab() [3/4]

const MaterialSlab & Acts::BinnedSurfaceMaterial::materialSlab ( const Vector3 & gp) const
finalvirtual

Return method for full material description of the Surface.

  • from the global coordinates
Parameters
gpis the global position used for the (eventual) lookup
Returns
const MaterialSlab
Deprecated
Use materialSlab(const Vector2&) with a prior Surface::globalToLocal() call to convert the global position.

Implements Acts::ISurfaceMaterial.

◆ 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
Deprecated
Use materialSlab(const Vector2&, Direction, MaterialUpdateMode) with a prior Surface::globalToLocal() call to convert gp.

Reimplemented from Acts::ISurfaceMaterial.

◆ scale()

BinnedSurfaceMaterial & Acts::BinnedSurfaceMaterial::scale ( double factor)
finalvirtual

Scale operation.

Parameters
factoris the scale factor for the full material
Returns
Reference to this object after scaling

Implements Acts::ISurfaceMaterial.

◆ toStream()

std::ostream & Acts::BinnedSurfaceMaterial::toStream ( std::ostream & sl) const
finalvirtual

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

Parameters
slThe output stream to write to
Returns
Reference to the output stream after writing

Implements Acts::ISurfaceMaterial.