ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_EndcapElement.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
8
9#ifndef TRT_READOUTGEOMETRY_TRT_ENDCAPELEMENT_H
10#define TRT_READOUTGEOMETRY_TRT_ENDCAPELEMENT_H
11
15#include <atomic>
16
17class TRT_ID;
18
19namespace Trk{
20 class SurfaceBounds;
21}
22
23namespace InDetDD {
24
25 class TRT_EndcapConditions;
26
41
42
43 class TRT_EndcapElement final : public TRT_BaseElement {
44
45 public:
47 TRT_EndcapElement(const GeoVFullPhysVol* volume,
48 const TRT_EndcapDescriptor* descriptor,
49 bool isPositive,
50 unsigned int wheelIndex,
51 unsigned int strawLayIndex,
52 unsigned int phiIndex,
53 const TRT_ID* idHelper,
55
57
60
62 virtual TRT_BaseElement::Type type() const override final;
63
65 virtual const double & strawLength() const override;
66
68 virtual int strawDirection() const override final;
69
73 static const TRT_EndcapConditions * getConditionsData() ;
74
78
81
84
86 void setNextInZ(const TRT_EndcapElement *element);
87
90
93
94 // Surface bounds
95 virtual const Trk::SurfaceBounds & strawBounds() const override final;
96
97
98 private:
101 virtual HepGeom::Transform3D calculateStrawTransform(int straw, GeoAlignmentStore* alignStore) const override;
103
105 virtual const Trk::Surface & elementSurface() const override;
106
108 virtual void createSurfaceCache(GeoAlignmentStore* alignStore) const override;
112
113 // Illegal Operations:
115 delete;
116
117 // Private Member Data:
122 };
123
124}
125
126#include "TRT_EndcapElement.icc"
127#endif
128
129
Eigen::Affine3d Transform3D
Ensure that the extensions for the Vector3D are properly loaded.
TRT_BaseElement(const GeoVFullPhysVol *volume, const Identifier &id, const TRT_ID *idHelper, const TRT_Conditions *conditions)
Constructor:
const TRT_Conditions * conditions() const
Return the TRT_Conditions object associated to this Detector element.
This class is an interface to conditions objects.
bit definitions to decode TRT straws in endcap
class TRT_EndcapDescriptor
virtual const double & strawLength() const override
Active straw length.
TRT_EndcapElement(const GeoVFullPhysVol *volume, const TRT_EndcapDescriptor *descriptor, bool isPositive, unsigned int wheelIndex, unsigned int strawLayIndex, unsigned int phiIndex, const TRT_ID *idHelper, const TRT_Conditions *conditions)
Constructor.
const TRT_EndcapCode & getCode() const
Doomed (?
virtual TRT_BaseElement::Type type() const override final
Type information:
const TRT_EndcapDescriptor * m_descriptor
void setNextInZ(const TRT_EndcapElement *element)
Set Next in Z.
virtual HepGeom::Transform3D calculateStrawTransform(int straw, GeoAlignmentStore *alignStore) const override
These transforms are effectively to the local coord system of a straw derived from GeoModel -> hence ...
virtual const Trk::Surface & elementSurface() const override
return the surface of the element
virtual ~TRT_EndcapElement()
Destructor:
virtual const Trk::SurfaceBounds & strawBounds() const override final
the straw bounds
const TRT_EndcapElement * m_nextInZ
const TRT_EndcapDescriptor * getDescriptor() const
Returns a pointer to a descriptor, giving common information on module construction.
const TRT_EndcapElement * previousInZ() const
Prev in Z:
virtual int strawDirection() const override final
StrawDirection.
SurfaceCache createSurfaceCacheHelper(GeoAlignmentStore *alignStore) const
void setPreviousInZ(const TRT_EndcapElement *element)
Set Previous in Z.
const TRT_EndcapElement * m_previousInZ
HepGeom::Transform3D calculateLocalStrawTransform(int straw) const
const TRT_EndcapElement * nextInZ() const
Next in Z:
static const TRT_EndcapConditions * getConditionsData()
Returns a pointer to conditions data.
virtual void createSurfaceCache(GeoAlignmentStore *alignStore) const override
create the cache for the element
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:82
Abstract base class for surface bounds to be specified.
Message Stream Member.
Ensure that the ATLAS eigen extensions are properly loaded.
#define private