ATLAS Offline Software
Loading...
Searching...
No Matches
ConeLayer.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
6// ConeLayer.h, (c) ATLAS Detector software
8
9#ifndef TRKGEOMETRY_CONELAYER_H
10#define TRKGEOMETRY_CONELAYER_H
11
12class MsgStream;
13
14// Amg
16// Trk
19#include "TrkGeometry/Layer.h"
21// STL sorting
22#include <algorithm>
23
24namespace Trk {
25
26class ConeBounds;
29
38
39class ConeLayer final
40 : public ConeSurface
41 , public Layer
42{
43public:
46
49 std::shared_ptr<const ConeBounds> cbounds,
50 const LayerMaterialProperties& laymatprop,
51 double thickness = 0.,
52 std::unique_ptr<OverlapDescriptor> od = nullptr,
53 int laytyp = int(Trk::active));
54
57 const LayerMaterialProperties& laymatprop,
58 double thickness = 0.,
59 std::unique_ptr<OverlapDescriptor> od = nullptr,
60 int laytyp = int(Trk::active));
61
65 std::shared_ptr<const ConeBounds> cbounds,
66 std::unique_ptr<SurfaceArray> surfaceArray,
67 double thickness = 0.,
68 std::unique_ptr<OverlapDescriptor> od = nullptr,
69 int laytyp = int(Trk::active));
70
74 std::shared_ptr<const ConeBounds> cbounds,
75 std::unique_ptr<SurfaceArray> surfaceArray,
76 const LayerMaterialProperties& laymatprop,
77 double thickness = 0.,
78 std::unique_ptr<OverlapDescriptor> od = nullptr,
79 int laytyp = int(Trk::active));
80
82 ConeLayer(const ConeLayer& cla);
83
85 ConeLayer(const ConeLayer& cla, const Amg::Transform3D& tr);
86
89
91 virtual ~ConeLayer() override {}
92
94 virtual const ConeSurface& surfaceRepresentation() const override final;
95 virtual ConeSurface& surfaceRepresentation() override final;
96
98 virtual double preUpdateMaterialFactor(
100 Trk::PropDirection dir) const override final;
101
103 virtual double postUpdateMaterialFactor(
105 Trk::PropDirection dir) const override final;
106
108 virtual void moveLayer(Amg::Transform3D& shift) override final;
109
112 virtual void resizeLayer(const VolumeBounds&, double) override final{}
113
117 const Amg::Vector3D&,
118 double) override final
119 {}
120};
121
122} // namespace Trk
123
124#endif // TRKGEOMETY_CONELAYER_H
Eigen::Affine3d Transform3D
Bounds for a conical Surface, the opening angle is stored in and always positively defined.
Definition ConeBounds.h:44
virtual void resizeLayer(const VolumeBounds &, double) override final
Resize the layer to the tracking volume - not (yet) supported for ConeLayer.
Definition ConeLayer.h:112
virtual double preUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for pre-update
Definition ConeLayer.cxx:92
ConeLayer(const ConeLayer &cla)
Copy constructor of ConeLayer.
virtual double postUpdateMaterialFactor(const Trk::TrackParameters &par, Trk::PropDirection dir) const override final
getting the MaterialProperties back - for post-update
virtual const ConeSurface & surfaceRepresentation() const override final
Transforms the layer into a Surface representation for extrapolation.
Definition ConeLayer.cxx:79
ConeLayer & operator=(const ConeLayer &)
Assignment operator for ConeLayers.
Definition ConeLayer.cxx:68
virtual void resizeAndRepositionLayer(const VolumeBounds &, const Amg::Vector3D &, double) override final
Resize the layer to the tracking volume - not supported since this an entry layer method.
Definition ConeLayer.h:116
virtual ~ConeLayer() override
Destructor.
Definition ConeLayer.h:91
virtual void moveLayer(Amg::Transform3D &shift) override final
move the Layer
ConeLayer()
Default Constructor.
Definition ConeLayer.h:45
Class for a conical surface in the ATLAS detector.
Definition ConeSurface.h:51
ConeSurface()
Default Constructor.
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.
BaseClass to be overloaded for describing overlaps and next-by elements for the sub-detector implemen...
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
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
@ active
Definition Layer.h:47