ATLAS Offline Software
Loading...
Searching...
No Matches
PlaneLayer.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6// PlaneLayer.cxx, (c) ATLAS Detector software
8
9// Trk
11
15// CLHEP
17
20 std::shared_ptr<const Trk::SurfaceBounds> tbounds,
21 const Trk::LayerMaterialProperties& laymatprop,
22 double thickness,
23 std::unique_ptr<Trk::OverlapDescriptor> olap,
24 int laytyp)
25 : PlaneSurface(transform, std::move(tbounds)),
26 Layer(laymatprop, thickness, std::move(olap), laytyp) {}
27
29 Trk::PlaneSurface* plane,
30 const Trk::LayerMaterialProperties& laymatprop,
31 double thickness,
32 std::unique_ptr<Trk::OverlapDescriptor> olap,
33 int laytyp)
34 : PlaneSurface(*plane), Layer(laymatprop, thickness, std::move(olap), laytyp) {}
35
36
37Trk::PlaneLayer::PlaneLayer(const Trk::PlaneLayer& play) = default;
38
40 const Amg::Transform3D& transf)
41 : PlaneSurface(play, transf), Layer(play) {}
42
44 if (this != &play) {
45 // call the assignments of the base classes
48 m_index = play.m_index;
49 }
50 return (*this);
51}
52
55{
56 return (*this);
57}
60{
61 return (*this);
62}
63
65 const Trk::TrackParameters& parm, Trk::PropDirection dir) const {
67 if (Trk::PlaneSurface::normal().dot(dir * parm.momentum().normalized()) > 0.)
68 return Trk::Layer::m_layerMaterialProperties->alongPreFactor();
69 return Trk::Layer::m_layerMaterialProperties->oppositePreFactor();
70}
71
73 const Trk::TrackParameters& parm, Trk::PropDirection dir) const {
75 if (Trk::PlaneSurface::normal().dot(dir * parm.momentum().normalized()) > 0.)
76 return Trk::Layer::m_layerMaterialProperties->alongPostFactor();
77 return Trk::Layer::m_layerMaterialProperties->oppositePostFactor();
78}
79
82 std::make_unique<Transforms>(shift * (m_transforms->transform));
83}
84
This virtual base class encapsulates the logics to build pre/post/full update material for Layer stru...
Layer()=default
Default Constructor.
LayerIndex m_index
LayerIndex.
Definition Layer.h:306
double thickness() const
Return the Thickness of the Layer.
Layer & operator=(const Layer &lay)
Assignment operator for Derived classes.
Definition Layer.cxx:84
std::unique_ptr< LayerMaterialProperties > m_layerMaterialProperties
thickness of the Layer
Definition Layer.h:288
const Amg::Vector3D & momentum() const
Access method for the momentum.
Class to describe a planar detector layer for tracking, it inhertis from both, Layer base class and P...
Definition PlaneLayer.h:40
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 moveLayer(Amg::Transform3D &shift) override final
move the Layer
PlaneLayer & operator=(const PlaneLayer &)
Assignment operator for PlaneLayers.
PlaneLayer()
Default Constructor.
Definition PlaneLayer.h:43
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 & operator=(const PlaneSurface &psf)=default
Assignment operator.
PlaneSurface()
Default Constructor - needed for persistency.
virtual const Amg::Vector3D & normal() const
Returns the normal vector of the Surface (i.e.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
std::unique_ptr< Transforms > m_transforms
Unique Pointer to the Transforms struct.
Eigen::Affine3d Transform3D
PropDirection
PropDirection, enum for direction of the propagation.
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition dot.py:1
STL namespace.