9#ifndef TRKGEOMETRY_PLANELAYER_H
10#define TRKGEOMETRY_PLANELAYER_H
49 std::shared_ptr<const SurfaceBounds> rbounds,
52 std::unique_ptr<OverlapDescriptor> od =
nullptr,
58 std::unique_ptr<OverlapDescriptor> od =
nullptr,
66 std::shared_ptr<const Trk::SurfaceBounds> tbounds,
69 std::unique_ptr<OverlapDescriptor> od =
nullptr,
110 double)
override final {}
122 return (
one->center().x() <
two->center().x());
135 return (
one->center().y() <
two->center().y());
148 return (
one->center().z() <
two->center().z());
Eigen::Affine3d Transform3D
Bounds for a double trapezoidal ("diamond"), planar Surface.
Class to describe the bounds for a planar EllipseSurface, i.e.
This virtual base class encapsulates the logics to build pre/post/full update material for Layer stru...
Layer()=default
Default Constructor.
const SurfaceArray * surfaceArray() const
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
double thickness() const
Return the Thickness of the Layer.
PlaneLayerSorterX()
Default Constructor.
bool operator()(const PlaneLayer *one, const PlaneLayer *two) const
PlaneLayerSorterY()
Default Constructor.
bool operator()(const PlaneLayer *one, const PlaneLayer *two) const
bool operator()(const PlaneLayer *one, const PlaneLayer *two) const
PlaneLayerSorterZ()
Default Constructor.
Class to describe a planar detector layer for tracking, it inhertis from both, Layer base class and P...
virtual const PlaneSurface & surfaceRepresentation() const override final
Transforms the layer into a Surface representation for extrapolation.
virtual double postUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for post-update
virtual void resizeAndRepositionLayer(const VolumeBounds &, const Amg::Vector3D &, double) override final
Resize the layer to the tracking volume - not implemented.
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
PlaneLayer & operator=(const PlaneLayer &)
Assignment operator for PlaneLayers.
PlaneLayer(const Amg::Transform3D &transform, std::shared_ptr< const Trk::SurfaceBounds > tbounds, std::unique_ptr< SurfaceArray > surfaceArray, double thickness=0., std::unique_ptr< OverlapDescriptor > od=nullptr, int laytyp=int(Trk::active))
Constructor with PlaneSurface components and pointer to SurfaceArray (passing ownership),...
virtual ~PlaneLayer() override
Destructor.
virtual void resizeLayer(const VolumeBounds &, double) override final
Resize the layer to the tracking volume - not implemented.
PlaneLayer(const PlaneLayer &pla)
Copy constructor of PlaneLayer.
PlaneLayer()
Default Constructor.
virtual double preUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for pre-update
Class for a planaer rectangular or trapezoidal surface in the ATLAS detector.
PlaneSurface()
Default Constructor - needed for persistency.
Bounds for a rectangular, planar surface.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
Bounds for a trapezoidal, planar Surface.
Pure Absract Base Class for Volume bounds.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
ParametersBase< TrackParametersDim, Charged > TrackParameters