9#ifndef TRKGEOMETY_LAYERMATERIALPROPERTIES_H
10#define TRKGEOMETY_LAYERMATERIALPROPERTIES_H
19#include "GaudiKernel/MsgStream.h"
119 virtual MsgStream&
dump(MsgStream& sl)
const = 0;
122 virtual std::ostream&
dump(std::ostream& sl)
const = 0;
125 friend class ::BinnedLayerMaterialCnv_p1;
133 return (
static_cast<int>(pDir) *
static_cast<int>(mStage) > 0 ?
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
This virtual base class encapsulates the logics to build pre/post/full update material for Layer stru...
virtual MsgStream & dump(MsgStream &sl) const =0
Output Method for MsgStream, to be overloaded by child classes.
virtual const MaterialProperties * fullMaterial(const Amg::Vector3D &gp) const =0
Return method for full material description of the Layer.
virtual ~LayerMaterialProperties()
Destructor.
virtual LayerMaterialProperties & operator*=(double scale)=0
Scale operator.
LayerMaterialProperties(double splitFactor)
Constructor.
virtual LayerMaterialProperties * clone() const =0
Pseudo-Constructor clone()
void updateElementTable(const std::shared_ptr< const ElementTable > &) const
Update the ElementTable.
virtual const BinUtility * binUtility() const =0
Return the BinUtility.
double oppositePostFactor() const
Return method for post update material description of the Layer along normalvector.
const ElementTable * elementTable() const
Get the ElementTable.
double alongPreFactor() const
Return method for pre update material description of the Layer along normalvector.
virtual void updateBinning(BinUtility *bu)=0
Update the BinUtility if necessary - passing ownership of the utility class.
double alongPostFactor() const
Return method for post update material description of the Layer along normalvector.
LayerMaterialProperties()
Constructor.
double m_splitFactor
the split factor in favour of oppositePre
virtual const MaterialProperties * material(size_t ib0, size_t ib1) const =0
Direct access via bins to the MaterialProperties.
virtual std::ostream & dump(std::ostream &sl) const =0
Output Method for std::ostream, to be overloaded by child classes.
double oppositePreFactor() const
Return method for pre update material description of the Layer along normalvector.
double factor(PropDirection pDir, MaterialUpdateStage mStage) const
Update pre factor.
Material with information about thickness of material.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
MaterialUpdateStage
This is a steering enum to tell which material update stage:
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
MaterialConcentration
Simple enum to identify when a material update on a non-structured layer should be done,...