ATLAS Offline Software
Public Member Functions | Protected Attributes | Friends | List of all members
Trk::LayerMaterialProperties Class Referenceabstract

#include <LayerMaterialProperties.h>

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

Public Member Functions

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

Protected Attributes

double m_splitFactor
 the split factor in favour of oppositePre More...
 

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:

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 62 of file LayerMaterialProperties.h.

Constructor & Destructor Documentation

◆ LayerMaterialProperties() [1/2]

Trk::LayerMaterialProperties::LayerMaterialProperties ( )
inline

Constructor.

Definition at line 65 of file LayerMaterialProperties.h.

65 : m_splitFactor(1.) {}

◆ LayerMaterialProperties() [2/2]

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

Constructor.

Definition at line 68 of file LayerMaterialProperties.h.

68 : m_splitFactor(splitFactor) {}

◆ ~LayerMaterialProperties()

virtual Trk::LayerMaterialProperties::~LayerMaterialProperties ( )
inlinevirtual

Destructor.

Definition at line 71 of file LayerMaterialProperties.h.

71 {}

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 142 of file LayerMaterialProperties.h.

142  {
143  return m_splitFactor;
144 }

◆ 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 138 of file LayerMaterialProperties.h.

138  {
139  return (1. - m_splitFactor);
140 }

◆ 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::CompoundLayerMaterial, Trk::CompressedLayerMaterial, Trk::HomogeneousLayerMaterial, and Trk::BinnedLayerMaterial.

◆ 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::CompoundLayerMaterial, Trk::CompressedLayerMaterial, Trk::BinnedLayerMaterial, and Trk::HomogeneousLayerMaterial.

◆ elementTable()

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

Get the ElementTable.

Definition at line 90 of file LayerMaterialProperties.h.

90 { 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 130 of file LayerMaterialProperties.h.

131  {
132  if (mStage == Trk::fullUpdate) return 1.;
133  return (static_cast<int>(pDir) * static_cast<int>(mStage) > 0 ?
135 }

◆ 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::CompoundLayerMaterial, Trk::BinnedLayerMaterial, 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

◆ oppositePostFactor()

double Trk::LayerMaterialProperties::oppositePostFactor ( ) 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 (1. - m_splitFactor);
152 }

◆ oppositePreFactor()

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

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

Definition at line 146 of file LayerMaterialProperties.h.

146  {
147  return m_splitFactor;
148 }

◆ updateBinning()

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

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

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

◆ updateElementTable()

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

Update the ElementTable.

Definition at line 87 of file LayerMaterialProperties.h.

87 {}

Friends And Related Function Documentation

◆ ::BinnedLayerMaterialCnv_p1

friend class ::BinnedLayerMaterialCnv_p1
friend

Definition at line 125 of file LayerMaterialProperties.h.

Member Data Documentation

◆ m_splitFactor

double Trk::LayerMaterialProperties::m_splitFactor
protected

the split factor in favour of oppositePre

Definition at line 126 of file LayerMaterialProperties.h.


The documentation for this class was generated from the following file:
Trk::fullUpdate
@ fullUpdate
Definition: PropDirection.h:43
Trk::LayerMaterialProperties::m_splitFactor
double m_splitFactor
the split factor in favour of oppositePre
Definition: LayerMaterialProperties.h:126