ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::LayerMaterialProperties Class Referenceabstract

This virtual base class encapsulates the logics to build pre/post/full update material for Layer structures, it hosts 5 different MaterialProperties in the following order: More...

#include <LayerMaterialProperties.h>

Inheritance diagram for Trk::LayerMaterialProperties:
Collaboration diagram for Trk::LayerMaterialProperties:

Public Member Functions

 LayerMaterialProperties ()=default
 Constructor.
 LayerMaterialProperties (const LayerMaterialProperties &)=default
 LayerMaterialProperties (LayerMaterialProperties &&) noexcept=default
LayerMaterialPropertiesoperator= (const LayerMaterialProperties &)=default
LayerMaterialPropertiesoperator= (LayerMaterialProperties &&) noexcept=default
 LayerMaterialProperties (double splitFactor)
 Constructor.
virtual ~LayerMaterialProperties ()=default
 Destructor.
virtual LayerMaterialPropertiesclone () const =0
 Pseudo-Constructor clone().
virtual LayerMaterialPropertiesoperator*= (double scale)=0
 Scale operator.
virtual const MaterialPropertiesfullMaterial (const Amg::Vector3D &gp) const =0
 Return method for full material description of the Layer.
virtual const MaterialPropertiesmaterial (size_t ib0, size_t ib1) const =0
 Direct access via bins to the MaterialProperties.
void updateElementTable (const std::shared_ptr< const ElementTable > &) const
 Update the ElementTable.
const ElementTableelementTable () const
 Get the ElementTable.
double factor (PropDirection pDir, MaterialUpdateStage mStage) const
 Update pre factor.
double alongPreFactor () const
 Return method for pre update material description of the Layer along normalvector.
double alongPostFactor () const
 Return method for post update material description of the Layer along normalvector.
double oppositePreFactor () const
 Return method for pre update material description of the Layer along normalvector.
double oppositePostFactor () const
 Return method for post update material description of the Layer along normalvector.
virtual const BinUtilitybinUtility () const =0
 Return the BinUtility.
virtual void updateBinning (BinUtility *bu)=0
 Update the BinUtility if necessary - passing ownership of the utility class.
virtual MsgStream & dump (MsgStream &sl) const =0
 Output Method for MsgStream, to be overloaded by child classes.
virtual std::ostream & dump (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

class ::BinnedLayerMaterialCnv_p1

Detailed Description

This virtual base class encapsulates the logics to build pre/post/full update material for Layer structures, it hosts 5 different MaterialProperties in the following order:

  • fullUpdate (crossing full Layer in both directions)
  • alongPreUpdate (passing material to sensitive part in direction of the normal vector)
  • alongPostUpdate (passing material after sensitive part in direction of the normal vector)
  • oppositePreUpdate (passing material to sensitive part in opposite direction to the normal vector)
  • poopsitePostUpdate (passing material after sensitive part in opposite direction to the normal vector)

for obvious reasons: alongPre == oppositePost && oppositePre == alongPost

Author
Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch

Definition at line 64 of file LayerMaterialProperties.h.

Constructor & Destructor Documentation

◆ LayerMaterialProperties() [1/4]

Trk::LayerMaterialProperties::LayerMaterialProperties ( )
default

Constructor.

◆ LayerMaterialProperties() [2/4]

Trk::LayerMaterialProperties::LayerMaterialProperties ( const LayerMaterialProperties & )
default

◆ LayerMaterialProperties() [3/4]

Trk::LayerMaterialProperties::LayerMaterialProperties ( LayerMaterialProperties && )
defaultnoexcept

◆ LayerMaterialProperties() [4/4]

Trk::LayerMaterialProperties::LayerMaterialProperties ( double splitFactor)
inline

Constructor.

Definition at line 76 of file LayerMaterialProperties.h.

76: m_splitFactor(splitFactor) {}
double m_splitFactor
the split factor in favour of oppositePre

◆ ~LayerMaterialProperties()

virtual Trk::LayerMaterialProperties::~LayerMaterialProperties ( )
virtualdefault

Destructor.

Member Function Documentation

◆ alongPostFactor()

double Trk::LayerMaterialProperties::alongPostFactor ( ) const
inline

Return method for post update material description of the Layer along normalvector.

Definition at line 150 of file LayerMaterialProperties.h.

150 {
151 return m_splitFactor;
152}

◆ alongPreFactor()

double Trk::LayerMaterialProperties::alongPreFactor ( ) const
inline

Return method for pre update material description of the Layer along normalvector.

inline return methods for the pre/post factors

Definition at line 146 of file LayerMaterialProperties.h.

146 {
147 return (1. - m_splitFactor);
148}

◆ binUtility()

virtual const BinUtility * Trk::LayerMaterialProperties::binUtility ( ) const
pure virtual

◆ clone()

virtual LayerMaterialProperties * Trk::LayerMaterialProperties::clone ( ) const
pure virtual

◆ dump() [1/2]

virtual MsgStream & Trk::LayerMaterialProperties::dump ( MsgStream & sl) const
pure virtual

Output Method for MsgStream, to be overloaded by child classes.

Implemented in Trk::BinnedLayerMaterial, Trk::CompoundLayerMaterial, Trk::CompressedLayerMaterial, and Trk::HomogeneousLayerMaterial.

◆ dump() [2/2]

virtual std::ostream & Trk::LayerMaterialProperties::dump ( std::ostream & sl) const
pure virtual

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

Implemented in Trk::BinnedLayerMaterial, Trk::CompoundLayerMaterial, Trk::CompressedLayerMaterial, and Trk::HomogeneousLayerMaterial.

◆ elementTable()

const ElementTable * Trk::LayerMaterialProperties::elementTable ( ) const
inline

Get the ElementTable.

Definition at line 98 of file LayerMaterialProperties.h.

98{ return nullptr; }

◆ factor()

double Trk::LayerMaterialProperties::factor ( PropDirection pDir,
MaterialUpdateStage mStage ) const
inline

Update pre factor.

inline return methods for the pre/post factors

Definition at line 138 of file LayerMaterialProperties.h.

139 {
140 if (mStage == Trk::fullUpdate) return 1.;
141 return (static_cast<int>(pDir) * static_cast<int>(mStage) > 0 ?
143}
@ fullUpdate

◆ fullMaterial()

virtual const MaterialProperties * Trk::LayerMaterialProperties::fullMaterial ( const Amg::Vector3D & gp) const
pure virtual

Return method for full material description of the Layer.

Implemented in Trk::BinnedLayerMaterial, Trk::CompoundLayerMaterial, Trk::CompressedLayerMaterial, and Trk::HomogeneousLayerMaterial.

◆ material()

virtual const MaterialProperties * Trk::LayerMaterialProperties::material ( size_t ib0,
size_t ib1 ) const
pure virtual

◆ operator*=()

virtual LayerMaterialProperties & Trk::LayerMaterialProperties::operator*= ( double scale)
pure virtual

◆ operator=() [1/2]

LayerMaterialProperties & Trk::LayerMaterialProperties::operator= ( const LayerMaterialProperties & )
default

◆ operator=() [2/2]

LayerMaterialProperties & Trk::LayerMaterialProperties::operator= ( LayerMaterialProperties && )
defaultnoexcept

◆ oppositePostFactor()

double Trk::LayerMaterialProperties::oppositePostFactor ( ) const
inline

Return method for post update material description of the Layer along normalvector.

Definition at line 158 of file LayerMaterialProperties.h.

158 {
159 return (1. - m_splitFactor);
160}

◆ oppositePreFactor()

double Trk::LayerMaterialProperties::oppositePreFactor ( ) const
inline

Return method for pre update material description of the Layer along normalvector.

Definition at line 154 of file LayerMaterialProperties.h.

154 {
155 return m_splitFactor;
156}

◆ updateBinning()

virtual void Trk::LayerMaterialProperties::updateBinning ( BinUtility * bu)
pure virtual

Update the BinUtility if necessary - passing ownership of the utility class.

Implemented in Trk::BinnedLayerMaterial, Trk::CompoundLayerMaterial, Trk::CompressedLayerMaterial, and Trk::HomogeneousLayerMaterial.

◆ updateElementTable()

void Trk::LayerMaterialProperties::updateElementTable ( const std::shared_ptr< const ElementTable > & ) const
inline

Update the ElementTable.

Definition at line 95 of file LayerMaterialProperties.h.

95{}

◆ ::BinnedLayerMaterialCnv_p1

friend class ::BinnedLayerMaterialCnv_p1
friend

Definition at line 133 of file LayerMaterialProperties.h.

Member Data Documentation

◆ m_splitFactor

double Trk::LayerMaterialProperties::m_splitFactor {1.}
protected

the split factor in favour of oppositePre

Definition at line 134 of file LayerMaterialProperties.h.

134{1.};

The documentation for this class was generated from the following file: