Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
MaterialLayer.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // MaterialLayer.h, (c) ATLAS Detector software
8 
9 #ifndef TRKGEOMETRY_MATERIALLAYER_H
10 #define TRKGEOMETRY_MATERIALLAYER_H
11 
12 class MsgStream;
13 
16 #include "TrkGeometry/Layer.h"
19 #include "TrkSurfaces/Surface.h"
20 //
21 #include <memory>
22 namespace Trk {
23 
42 class MaterialLayer final : public Layer {
43  public:
44  MaterialLayer() = delete;
45  MaterialLayer(const MaterialLayer&) = default;
49  virtual ~MaterialLayer() = default;
50 
53  MaterialLayer(Surface& sf, std::unique_ptr<LayerMaterialProperties> mlprop);
54 
56  MaterialLayer(std::shared_ptr<Surface>&& sfso,
57  std::unique_ptr<LayerMaterialProperties> mlprop);
58 
60  virtual const Surface& surfaceRepresentation() const override final;
61  virtual Surface& surfaceRepresentation() override final;
62 
65  virtual bool isOnLayer(
66  const Amg::Vector3D& gp,
67  const BoundaryCheck& bcheck = BoundaryCheck(true)) const override final;
68 
70  virtual void moveLayer(Amg::Transform3D&) override final {};
71 
73  virtual void resizeLayer(const VolumeBounds&, double) override final {}
74 
77  const Amg::Vector3D&,
78  double) override final {}
79 
80  private:
81  //shared_ptr as we use the custom deleter.
82  //It should never be nullptr
83  std::shared_ptr<Surface> m_surfaceRepresentation;
84 };
85 
87  return (*(m_surfaceRepresentation.get()));
88 }
89 
91  return (*(m_surfaceRepresentation.get()));
92 }
93 
94 } // namespace Trk
95 
96 #endif // TRKGEOMETRY_NAVIGATIONLAYER_H
97 
TrackParameters.h
Surface.h
Trk::MaterialLayer::resizeLayer
virtual void resizeLayer(const VolumeBounds &, double) override final
Resize the layer to the tracking volume - not implemented.
Definition: MaterialLayer.h:73
PropDirection.h
Layer.h
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
GeoPrimitives.h
Trk::VolumeBounds
Definition: VolumeBounds.h:45
Trk::MaterialLayer::MaterialLayer
MaterialLayer(MaterialLayer &&)=default
Trk::MaterialLayer::operator=
MaterialLayer & operator=(const MaterialLayer &)=default
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::MaterialLayer::~MaterialLayer
virtual ~MaterialLayer()=default
Trk::MaterialLayer::moveLayer
virtual void moveLayer(Amg::Transform3D &) override final
Move the layer - not implemented.
Definition: MaterialLayer.h:70
Trk::MaterialLayer::resizeAndRepositionLayer
virtual void resizeAndRepositionLayer(const VolumeBounds &, const Amg::Vector3D &, double) override final
Resize the layer to the tracking volume - not implemented.
Definition: MaterialLayer.h:76
columnar::final
CM final
Definition: ColumnAccessor.h:106
Trk::MaterialLayer::MaterialLayer
MaterialLayer()=delete
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg
Definition of ATLAS Math & Geometry primitives (Amg)
Definition: AmgStringHelpers.h:19
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::MaterialLayer::MaterialLayer
MaterialLayer(const MaterialLayer &)=default
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
Trk::BoundaryCheck
Definition: BoundaryCheck.h:51
Trk::MaterialLayer::isOnLayer
virtual bool isOnLayer(const Amg::Vector3D &gp, const BoundaryCheck &bcheck=BoundaryCheck(true)) const override final
isOnLayer() method, using isOnSurface() with Layer specific tolerance
Definition: MaterialLayer.cxx:34
Trk::MaterialLayer::operator=
MaterialLayer & operator=(MaterialLayer &&)=default
Trk::MaterialLayer
Definition: MaterialLayer.h:42
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:79
Trk::MaterialLayer::surfaceRepresentation
virtual const Surface & surfaceRepresentation() const override final
Transforms the layer into a Surface representation for extrapolation.
Definition: MaterialLayer.h:86
Trk::MaterialLayer::m_surfaceRepresentation
std::shared_ptr< Surface > m_surfaceRepresentation
Definition: MaterialLayer.h:83
LayerMaterialProperties.h
Trk::Layer
Definition: Layer.h:73