ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_BarrelElement.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_BARRELELEMENT_H
10#define TRT_READOUTGEOMETRY_TRT_BARRELELEMENT_H
11
15#include <atomic>
16
17class TRT_ID;
18
19namespace Trk{
20 class Surface;
21 class SurfaceBounds;
22}
23
24class SurfaceCache;
25
26namespace InDetDD {
27
28 class TRT_BarrelConditions;
29
42
43 class TRT_BarrelElement final: public TRT_BaseElement {
44
45 public:
46
48 TRT_BarrelElement(const GeoVFullPhysVol* volume,
49 const TRT_BarrelDescriptor* descriptor,
50 bool isPositive,
51 unsigned int modIndex,
52 unsigned int phiIndex,
53 unsigned int strawLayIndex,
54 const TRT_ID* idHelper,
56
58
60 virtual ~TRT_BarrelElement() = default;
61
63 virtual TRT_BaseElement::Type type() const override final;
64
68 static const TRT_BarrelConditions * getConditionsData() ;
69
73
76 inline double strawXPos (unsigned int i) const;
77
80 inline double strawYPos (unsigned int i) const;
81
84 inline double strawZPos (unsigned int i) const;
85
87 virtual const double & strawLength() const override final;
88
90 virtual int strawDirection() const override final;
91
94
97
100
103
105 void setNextInPhi(const TRT_BarrelElement *element);
106
109
111 void setNextInR(const TRT_BarrelElement *element);
112
115
118
120 virtual const Trk::SurfaceBounds & strawBounds() const override final;
121
122 private:
124 const TRT_BarrelElement& operator=(const TRT_BarrelElement& right) = delete;
127 virtual HepGeom::Transform3D calculateStrawTransform(int straw, GeoAlignmentStore* alignStore) const override;
130 virtual const Trk::Surface & elementSurface() const override;
132 virtual void createSurfaceCache(GeoAlignmentStore* alignStore) const override;
134
135 // Private Member data:
142 };
143}
144
145#include "TRT_BarrelElement.icc"
146#endif
147
148
Eigen::Affine3d Transform3D
Ensure that the extensions for the Vector3D are properly loaded.
bit definitions to decode TRT straws in barrel
Local Straw Positions (from the center of the module.)
virtual int strawDirection() const override final
StrawDirection.
virtual const Trk::Surface & elementSurface() const override
return the surface of the element
virtual TRT_BaseElement::Type type() const override final
Type information.
virtual ~TRT_BarrelElement()=default
Destructor:
const TRT_BarrelElement * nextInPhi() const
Returns the next-in-phi detector element, or zero if none (forseeing gaps, in other words).
HepGeom::Transform3D calculateLocalStrawTransform(int straw) const
virtual const Trk::SurfaceBounds & strawBounds() const override final
Surface bounds.
double strawXPos(unsigned int i) const
Get X Position: DEPRECATED.
virtual void createSurfaceCache(GeoAlignmentStore *alignStore) const override
create the cache for the element
const TRT_BarrelElement * previousInPhi() const
Returns the previous-in-phi detector element, or zero if none (forseeing gaps, in other words).
double strawZPos(unsigned int i) const
Get Z Position: (active center) DEPRECATED.
const TRT_BarrelElement * previousInR() const
Returns the next-in-R detector element, or zero if none.
void setPreviousInR(const TRT_BarrelElement *element)
Sets the previous-in-r detector.
const TRT_BarrelDescriptor * m_descriptor
static const TRT_BarrelConditions * getConditionsData()
Returns a pointer to conditions data.
const TRT_BarrelElement * m_nextInR
const TRT_BarrelElement * nextInR() const
Returns the next-in-R detector element, or zero if none.
const TRT_BarrelElement * m_previousInPhi
const TRT_BarrelElement * m_nextInPhi
void setNextInPhi(const TRT_BarrelElement *element)
Sets the next-in-phi detector.
const TRT_BarrelElement * m_previousInR
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 ...
SurfaceCache createSurfaceCacheHelper(GeoAlignmentStore *alignStore) const
virtual const double & strawLength() const override final
Get the length of the straws (active length):
const TRT_BarrelCode & getCode() const
Doomed (?):
const TRT_BarrelDescriptor * getDescriptor() const
Returns a pointer to a descriptor, giving common information on module construction:
TRT_BarrelElement(const GeoVFullPhysVol *volume, const TRT_BarrelDescriptor *descriptor, bool isPositive, unsigned int modIndex, unsigned int phiIndex, unsigned int strawLayIndex, const TRT_ID *idHelper, const TRT_Conditions *conditions)
Constructor:
void setNextInR(const TRT_BarrelElement *element)
Sets the next-in-r detector.
double strawYPos(unsigned int i) const
Get Y Position: DEPRECATED.
void setPreviousInPhi(const TRT_BarrelElement *element)
Sets the previous-in-phi detector.
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.
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:82
Abstract base class for surface bounds to be specified.
Abstract Base Class for tracking surfaces.
Message Stream Member.
Ensure that the ATLAS eigen extensions are properly loaded.
#define private