|
ATLAS Offline Software
|
Go to the documentation of this file.
9 #include "Identifier/Identifier.h"
15 #include "CLHEP/Geometry/Transform3D.h"
16 #include "GeoModelKernel/GeoDefinitions.h"
30 unsigned int wheelIndex,
31 unsigned int strawLayIndex,
38 idHelper->layer_id((isPositive ? 2 : -2),
44 , m_code(isPositive, wheelIndex, strawLayIndex,
phiIndex)
45 , m_descriptor(descriptor)
47 , m_previousInZ(nullptr)
56 , m_code(right.m_code)
57 , m_descriptor(right.m_descriptor)
58 , m_nextInZ(right.m_nextInZ)
59 , m_previousInZ(right.m_previousInZ)
75 const TRT_EndcapConditions*
116 ((*
f)(istraw + offsetInto))) *
124 std::cout <<
"ALTERNATIVE METHOD" << std::endl;
128 CLHEP::Hep3Vector
pos(
132 HepGeom::Point3D<double>())
134 CLHEP::HepRotation rot;
136 rot.rotateY(-0.5 *
M_PI);
167 double dx1 = container->
getDx1(
id);
168 double dx2 = container->
getDx2(
id);
170 double dy = -1 * (dx2 + dx1) / 2.;
179 rc = HepGeom::TranslateY3D(
dy) * HepGeom::RotateX3D(ang);
194 m_surface.set(std::make_unique<Trk::DiscSurface>(*
this));
239 GeoTrf::RotateZ3D(phiCenter)))
242 GeoTrf::RotateZ3D(phiCenter)));
246 auto bounds = std::make_unique<Trk::DiscBounds>(rMin, rMax, phiHalfWidth);
unsigned int getStrawLayerIndex() const
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.
void setNextInZ(const TRT_EndcapElement *element)
Set Next in Z.
double & innerRadius()
The inner radius:
virtual const Trk::SurfaceBounds & strawBounds() const override final
the straw bounds
unsigned int nStraws() const
Number of straws in the element.
const TRT_EndcapDescriptor * m_descriptor
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
const Trk::SurfaceBounds & strawBounds() const
Get Bounds.
unsigned int & nStraws()
The number of straws in a module:
class TRT_EndcapDescriptor
std::vector< CxxUtils::CachedUniquePtr< Trk::StraightLineSurface > > m_strawSurfaces
unsigned int getWheelIndex() const
const GeoXF::Function * getStrawTransform() const
Get the tranformation field, which we do not own:
CxxUtils::CachedValue< SurfaceCache > m_surfaceCache
const TRT_EndcapCode & getCode() const
Doomed (??)
virtual int strawDirection() const override final
StrawDirection.
const TRT_EndcapDescriptor * getDescriptor() const
Returns a pointer to a descriptor, giving common information on module construction.
Eigen::Affine3d Transform3D
virtual HepGeom::Transform3D calculateStrawTransform(int straw) const override
These transforms are effectively to the local coord system of a straw derived from GeoModel -> hence ...
virtual ~TRT_EndcapElement()
Destructor:
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)
virtual const Trk::Surface & elementSurface() const override
return the surface of the element
unsigned int isPosZ() const
const TRT_EndcapElement * m_nextInZ
void setPreviousInZ(const TRT_EndcapElement *element)
Set Previous in Z.
double & startPhi()
The starting phi (angular!!)
static const TRT_EndcapConditions * getConditionsData()
Returns a pointer to conditions data.
size_t getStrawTransformOffset() const
Get the offset into the transformation field:
std::vector< CxxUtils::CachedUniquePtr< SurfaceCacheBase > > m_strawSurfacesCache
helper element surface for the cache
float getDx1(const ExpandedIdentifier &id) const
access to unpacked dx
Eigen::Matrix< double, 3, 1 > Vector3D
virtual const Trk::SurfaceBounds & bounds() const override final
Straw layer bounds.
unsigned int getPhiIndex() const
unsigned int phiIndex(float phi, float binsize)
calculate phi index for a given phi
virtual const double & strawLength() const override
Active straw length.
double & strawPitch()
The straw pitch (angular!!)
HepGeom::Transform3D calculateLocalStrawTransform(int straw) const
const TRTCond::StrawDxContainer * dxContainer() const
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.
virtual const Amg::Vector3D & normal() const override final
Element Surface: normal of a straw layer.
Identifier for TRT detector elements in the conditions code.
const TRT_EndcapElement * m_previousInZ
Class for storing/accessing trt endpoint corrections data.
float getDx2(const ExpandedIdentifier &id) const
CxxUtils::CachedUniquePtr< Trk::Surface > m_surface
virtual void createSurfaceCache() const override
create the cache for the element
SurfaceCache createSurfaceCacheHelper() const
virtual const Amg::Transform3D & transform() const override final
Element Surface: Get Transform of element in Tracking frame: Amg.