|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #include "Identifier/Identifier.h"
28 unsigned int modIndex,
30 unsigned int strawLayIndex,
34 idHelper->layer_id((isPositive ? 1 : -1),
40 , m_code(isPositive, modIndex,
phiIndex, strawLayIndex)
41 , m_descriptor(descriptor)
42 , m_nextInPhi(nullptr)
43 , m_previousInPhi(nullptr)
45 , m_previousInR(nullptr)
55 , m_code(right.m_code)
56 , m_descriptor(right.m_descriptor)
57 , m_nextInPhi(right.m_nextInPhi)
58 , m_previousInPhi(right.m_previousInPhi)
59 , m_nextInR(right.m_nextInR)
60 , m_previousInR(right.m_previousInR)
114 * HepGeom::RotateY3D(zAng)*HepGeom::TranslateZ3D(zPos)
121 std::cout <<
"calculateStrawTransform: f is 0 !!!!" << std::endl;
144 double dx1 = container->
getDx1(
id);
145 double dx2 = container->
getDx2(
id);
147 double dx = (dx2+dx1)/2.;
148 rc = HepGeom::TranslateX3D(
dx)*HepGeom::RotateY3D(ang) ;
161 m_surface.set(std::make_unique<Trk::PlaneSurface>(*
this));
194 double width = phiAxis.mag();
195 phiAxis = phiAxis.normalized();
196 double elementWidth =
203 etaAxis = etaAxis.normalized();
225 auto elementBounds = std::make_unique<Trk::RectangleBounds>(
const TRT_BarrelElement * m_nextInPhi
void setPreviousInR(const TRT_BarrelElement *element)
Sets the previous-in-r detector.
virtual void createSurfaceCache() const override
create the cache for the element
size_t getStrawTransformOffset() const
Get the offset into the transformation field:
unsigned int nStraws() const
Number of straws in the element.
virtual HepGeom::Transform3D calculateStrawTransform(int straw) const override
These transforms are effectively to the local coord system of a straw derived from GeoModel -> hence ...
Amg::Vector3D strawAxis(int straw) const
Straw axis.
const TRT_BarrelElement * m_nextInR
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
virtual const Trk::SurfaceBounds & strawBounds() const override final
Surface bounds.
const TRT_BarrelDescriptor * m_descriptor
double innerTubeRadius() const
Get inner tube radius of the straw.
void setNextInPhi(const TRT_BarrelElement *element)
Sets the next-in-phi detector.
const double & strawZPos() const
Position of center of active region.
void setNextInR(const TRT_BarrelElement *element)
Sets the next-in-r detector.
const TRT_BarrelElement * m_previousInPhi
std::vector< CxxUtils::CachedUniquePtr< Trk::StraightLineSurface > > m_strawSurfaces
static const TRT_BarrelConditions * getConditionsData()
Returns a pointer to conditions data.
CxxUtils::CachedValue< SurfaceCache > m_surfaceCache
SurfaceCache createSurfaceCacheHelper() const
const TRT_BarrelDescriptor * getDescriptor() const
Returns a pointer to a descriptor, giving common information on module construction:
virtual const double & strawLength() const override final
Get the length of the straws (active length):
Eigen::Affine3d Transform3D
const TRT_ID * m_idHelper
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:
unsigned int getStrawLayerIndex() const
const GeoXF::Function * getStrawTransform() const
Get the tranformation field, which we do not own: Does not include the z shift which is different for...
const TRT_Conditions * conditions() const
Return the TRT_Conditions object associated to this Detector element.
const HepGeom::Transform3D getAbsoluteTransform(int straw) const
This is an alias to strawTransform(int straw)
const TRT_BarrelElement * m_previousInR
virtual Identifier identify() const override final
identifier of this detector element:
HepGeom::Transform3D calculateLocalStrawTransform(int straw) const
unsigned int isPosZ() const
const TRT_BarrelCode & getCode() const
Doomed (?):
const Trk::SurfaceBounds & strawBounds() const
Get Bounds.
unsigned int getModuleIndex() const
std::vector< CxxUtils::CachedUniquePtr< SurfaceCacheBase > > m_strawSurfacesCache
helper element surface for the cache
virtual int strawDirection() const override final
StrawDirection.
float getDx1(const ExpandedIdentifier &id) const
access to unpacked dx
Eigen::Matrix< double, 3, 1 > Vector3D
unsigned int phiIndex(float phi, float binsize)
calculate phi index for a given phi
virtual const Trk::Surface & elementSurface() const override
return the surface of the element
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
const TRTCond::StrawDxContainer * dxContainer() const
Eigen::Translation< double, 3 > Translation3D
virtual const Amg::Vector3D & center() const override final
Element Surface: center of a straw layer.
HepGeom::Transform3D EigenTransformToCLHEP(const Amg::Transform3D &eigenTransf)
Converts an Eigen-based Amg::Transform3D into a CLHEP-based HepGeom::Transform3D.
void setPreviousInPhi(const TRT_BarrelElement *element)
Sets the previous-in-phi detector.
virtual const Amg::Vector3D & normal() const override final
Element Surface: normal of a straw layer.
Identifier for TRT detector elements in the conditions code.
unsigned int getPhiIndex() const
Class for storing/accessing trt endpoint corrections data.
float getDx2(const ExpandedIdentifier &id) const
unsigned int nStraws() const
Get the number of straws:
CxxUtils::CachedUniquePtr< Trk::Surface > m_surface
Identifier straw_id(int barrel_ec, int phi_module, int layer_or_wheel, int straw_layer, int straw) const
Three ways of getting id for a single straw:
virtual const Amg::Transform3D & transform() const override final
Element Surface: Get Transform of element in Tracking frame: Amg.