9#ifndef TRKGEOMETRY_MATERIALLAYER_H
10#define TRKGEOMETRY_MATERIALLAYER_H
62 double)
override final {}
70 std::unique_ptr<LayerMaterialProperties> mlprop)
100 std::unique_ptr<LayerMaterialProperties> mlprop)
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Layer()=default
Default Constructor.
double m_layerThickness
descriptor for overlap/next surface (owning ptr)
std::unique_ptr< LayerMaterialProperties > m_layerMaterialProperties
thickness of the Layer
virtual const Surface & surfaceRepresentation() const override final
Transforms the layer into a Surface representation for extrapolation.
MaterialLayerNoOwnSurf(Surface *surfaceRepresentation, std::unique_ptr< LayerMaterialProperties > mlprop)
Constructor allowing the Material to be attached to an existing surface It does NOT own the represent...
virtual Surface & surfaceRepresentation() override final
virtual ~MaterialLayerNoOwnSurf()=default
Surface * m_surfaceRepresentation
virtual bool isOnLayer(const Amg::Vector3D &gp, const BoundaryCheck &bcheck=BoundaryCheck(true)) const override final
isOnLayer() method, using isOnSurface() with Layer specific tolerance
MaterialLayerOwnSurf(std::unique_ptr< Surface > surfaceRepresentation, std::unique_ptr< LayerMaterialProperties > mlprop)
Constructor with a surface representation.
virtual bool isOnLayer(const Amg::Vector3D &gp, const BoundaryCheck &bcheck=BoundaryCheck(true)) const override final
isOnLayer() method, using isOnSurface() with Layer specific tolerance
virtual Surface & surfaceRepresentation() override final
virtual const Surface & surfaceRepresentation() const override final
Transforms the layer into a Surface representation for extrapolation.
virtual ~MaterialLayerOwnSurf()=default
std::unique_ptr< Surface > m_surfaceRepresentation
virtual Surface & surfaceRepresentation() override=0
virtual void resizeAndRepositionLayer(const VolumeBounds &, const Amg::Vector3D &, double) override final
Resize the layer to the tracking volume - not implemented.
virtual const Surface & surfaceRepresentation() const override=0
Transforms the layer into a Surface representation for extrapolation.
virtual void resizeLayer(const VolumeBounds &, double) override final
Resize the layer to the tracking volume - not implemented.
virtual ~MaterialLayer()=default
virtual void moveLayer(Amg::Transform3D &) override final
Move the layer - not implemented.
virtual bool isOnLayer(const Amg::Vector3D &gp, const BoundaryCheck &bcheck=BoundaryCheck(true)) const override=0
isOnLayer() method, using isOnSurface() with Layer specific tolerance
Abstract Base Class for tracking surfaces.
Pure Absract Base Class for Volume bounds.
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.