ATLAS Offline Software
Loading...
Searching...
No Matches
TrkDetElementBase.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
6// TrkDetElementBase.h, (c) ATLAS Detector software
8
9#ifndef TRKDETELEMENTBASE_TRKDETELEMENTBASE_H
10#define TRKDETELEMENTBASE_TRKDETELEMENTBASE_H
11
12// Math & Geometry library
15
16#include "GeoModelKernel/GeoVDetectorElement.h"
17#include "Identifier/Identifier.h"
19
20namespace Trk {
21
22class Surface;
23class SurfaceBounds;
24
39{
42 TRT = 2,
43 Csc = 3,
44 Mdt = 4,
45 Rpc = 5,
46 Tgc = 6,
47 sTgc = 7,
48 MM = 8
49};
50
51class TrkDetElementBase : public GeoVDetectorElement
52{
53
54public:
56 TrkDetElementBase(const GeoVFullPhysVol* fullPhysVol);
57
59 virtual ~TrkDetElementBase() = default;
60
62 virtual Identifier identify() const = 0;
63
65 virtual IdentifierHash identifyHash() const = 0;
66
68 virtual const Amg::Transform3D& transform() const = 0;
69
71 virtual const Amg::Transform3D& transform(const Identifier& id) const = 0;
72
74 virtual const Surface& surface() const = 0;
75
83 virtual const Surface& surface(const Identifier& id) const = 0;
84
86 virtual const SurfaceBounds& bounds() const = 0;
87
91 virtual const SurfaceBounds& bounds(const Identifier& id) const = 0;
92
94 virtual const Amg::Vector3D& center() const = 0;
95
98 virtual const Amg::Vector3D& center(const Identifier& id) const = 0;
99
101 virtual const Amg::Vector3D& normal() const = 0;
102
105 virtual const Amg::Vector3D& normal(const Identifier& id) const = 0;
106
108 virtual DetectorElemType detectorType() const = 0;
109
111 std::string detectorTypeString() const;
112};
113
114} // end of ns
115
116#endif
117
This is a "hash" representation of an Identifier.
Abstract base class for surface bounds to be specified.
Abstract Base Class for tracking surfaces.
virtual ~TrkDetElementBase()=default
virtual Destructor
virtual const SurfaceBounds & bounds() const =0
Return the boundaries of the element.
virtual const Amg::Vector3D & center(const Identifier &id) const =0
Return the center of the surface associated with this identifier In the case of silicon it returns th...
virtual const Amg::Transform3D & transform() const =0
Return local to global transform.
virtual IdentifierHash identifyHash() const =0
Identifier hash.
TrkDetElementBase(const GeoVFullPhysVol *fullPhysVol)
Constructor from GeoVFullPhysVolume.
virtual const SurfaceBounds & bounds(const Identifier &id) const =0
Return the boundaries of the surface associated with this identifier.
virtual const Amg::Vector3D & center() const =0
Return the center of the element.
virtual Identifier identify() const =0
Identifier.
virtual DetectorElemType detectorType() const =0
Return the Detector element type.
std::string detectorTypeString() const
Returns a string of the Detector element type.
virtual const Amg::Vector3D & normal() const =0
Return the normal of the element.
virtual const Surface & surface() const =0
Return surface associated with this detector element.
virtual const Amg::Transform3D & transform(const Identifier &id) const =0
Return local to global transform associated with this identifier.
virtual const Surface & surface(const Identifier &id) const =0
Return surface associated with this identifier, which should come from the PrepRawData object (i....
virtual const Amg::Vector3D & normal(const Identifier &id) const =0
Return the normal of the surface associated with this identifier In the case of silicon it returns th...
Eigen::Affine3d Transform3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition HitInfo.h:33
Ensure that the ATLAS eigen extensions are properly loaded.