ATLAS Offline Software
|
#include <TRT_BaseElement.h>
Public Types | |
enum | Type { BARREL, ENDCAP } |
Public Member Functions | |
TRT_BaseElement (const GeoVFullPhysVol *volume, const Identifier &id, const TRT_ID *idHelper, const TRT_Conditions *conditions) | |
Constructor: More... | |
TRT_BaseElement (const TRT_BaseElement &right) | |
virtual | ~TRT_BaseElement ()=default |
Destructor: More... | |
virtual TRT_BaseElement::Type | type () const =0 |
Type information: returns BARREL or ENDCAP. More... | |
virtual Identifier | identify () const override final |
identifier of this detector element: More... | |
virtual IdentifierHash | identifyHash () const override final |
identifier hash More... | |
const GeoTrf::Transform3D & | defTransform () const |
Get Default Transform (of module in barrel, layer in endcap) from GeoModel before alignment corrections. More... | |
const HepGeom::Transform3D | getAbsoluteTransform (int straw) const |
This is an alias to strawTransform(int straw) More... | |
virtual const Trk::Surface & | surface () const override final |
Element Surface: access to the Surface (straw layer) More... | |
virtual const Trk::SurfaceBounds & | bounds () const override final |
Straw layer bounds. More... | |
virtual const Amg::Transform3D & | transform () const override final |
Element Surface: Get Transform of element in Tracking frame: Amg. More... | |
virtual const Amg::Vector3D & | center () const override final |
Element Surface: center of a straw layer. More... | |
virtual const Amg::Vector3D & | normal () const override final |
Element Surface: normal of a straw layer. More... | |
virtual Trk::DetectorElemType | detectorType () const override final |
TrkDetElementBase interface detectorTyoe. More... | |
virtual const Trk::Surface & | surface (const Identifier &id) const override final |
Straw Surface: access to the surface via identifier. More... | |
const std::vector< const Trk::Surface * > & | surfaces () const |
Returns the full list of all detection surfaces associated to this detector element. More... | |
virtual const Trk::SurfaceBounds & | bounds (const Identifier &id) const override final |
Straw Surface: access to the bounds via Identifier. More... | |
virtual const Amg::Transform3D & | transform (const Identifier &id) const override final |
Straw Surface: access to the transform of individual straw in Tracking frame: Amg. More... | |
const Amg::Transform3D & | strawTransform (unsigned int straw) const |
Straw transform - fast access in array, in Tracking frame: Amg. More... | |
virtual const Amg::Vector3D & | center (const Identifier &id) const override final |
Straw Surface: Center of a straw using Identifier Straw center and straw axis can be obtained by the following: (The straw center is the center of the active region) Amg::Transform3D& transform = element->strawTransform(straw); Amb::Vector3D& center = element->strawCenter(); double r = element->strawCenter()->perp(); double phi = element->strawCenter()->phi(); Amg::Vector3D strawAxis = element->strawTransform(straw)* Vector3D(0,0,1) * strawDirection() More... | |
virtual const Amg::Vector3D & | normal (const Identifier &id) const override final |
Normal of a straw. More... | |
const Trk::StraightLineSurface & | strawSurface (int straw) const |
Straw Surface: access to the surface via integer. More... | |
const Amg::Transform3D & | strawTransform (int straw) const |
Straw Surface: Local -> global transform of the straw via integer. More... | |
const Amg::Vector3D & | strawCenter (int straw) const |
Straw Surface: Local -> global transform of the straw via integer. More... | |
Amg::Vector3D | strawAxis (int straw) const |
Straw axis. More... | |
unsigned int | nStraws () const |
Number of straws in the element. More... | |
virtual const double & | strawLength () const =0 |
Active straw length. More... | |
virtual int | strawDirection () const =0 |
StrawDirection. More... | |
void | invalidate () |
Invalidate cache. More... | |
void | updateAllCaches () |
Update all caches. More... | |
const TRT_Conditions * | conditions () const |
Return the TRT_Conditions object associated to this Detector element. More... | |
virtual HepGeom::Transform3D | calculateStrawTransform (int straw) const =0 |
to be overloaded by the extended classes More... | |
virtual const Trk::SurfaceBounds & | strawBounds () const =0 |
the straw bounds More... | |
virtual const Trk::Surface & | elementSurface () const =0 |
creates surface for detector element, to be implemented in derived class More... | |
virtual void | createSurfaceCache () const =0 |
create the surface cache of the detector element, to be implementd in the deried class More... | |
void | createSurfaceCache (Identifier id) const |
create the surface & surface cache for the straw More... | |
void | invalidateOther () const |
invalidate action on the cache More... | |
std::string | detectorTypeString () const |
Returns a string of the Detector element type. More... | |
Protected Attributes | |
Identifier | m_id |
IdentifierHash | m_idHash |
unsigned int | m_nstraws = 0 |
const TRT_ID * | m_idHelper =nullptr |
const TRT_Conditions * | m_conditions =nullptr |
CxxUtils::CachedUniquePtr< Trk::Surface > | m_surface |
std::vector< CxxUtils::CachedUniquePtr< Trk::StraightLineSurface > > | m_strawSurfaces {} |
std::vector< CxxUtils::CachedUniquePtr< SurfaceCacheBase > > | m_strawSurfacesCache {} |
helper element surface for the cache More... | |
CxxUtils::CachedValue< std::vector< const Trk::Surface * > > | m_surfaces |
CxxUtils::CachedValue< SurfaceCache > | m_surfaceCache |
Private Member Functions | |
const TRT_BaseElement & | operator= (const TRT_BaseElement &right) |
Illegal operations: More... | |
void | deleteCache () |
Helper method for cache dealing. More... | |
std::unique_ptr< SurfaceCacheBase > | createSurfaceCacheHelper (int straw) const |
Virtual base class of TRT readout elements. Differently to the Silicon readout elements, the TRT readoutelements describe multiple readout surfaces, i.e. several straws that are described by a surface, such as e.g. a planar sector surface in the barrel, or a disc surface in the endcap.
Definition at line 57 of file TRT_BaseElement.h.
InDetDD::TRT_BaseElement::TRT_BaseElement | ( | const GeoVFullPhysVol * | volume, |
const Identifier & | id, | ||
const TRT_ID * | idHelper, | ||
const TRT_Conditions * | conditions | ||
) |
InDetDD::TRT_BaseElement::TRT_BaseElement | ( | const TRT_BaseElement & | right | ) |
Definition at line 32 of file TRT_BaseElement.cxx.
|
virtualdefault |
Destructor:
|
finaloverridevirtual |
Straw layer bounds.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtual |
Straw Surface: access to the bounds via Identifier.
Implements Trk::TrkDetElementBase.
Definition at line 72 of file TRT_BaseElement.cxx.
|
pure virtual |
to be overloaded by the extended classes
Implemented in InDetDD::TRT_BarrelElement, and InDetDD::TRT_EndcapElement.
|
finaloverridevirtual |
Element Surface: center of a straw layer.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtual |
Straw Surface: Center of a straw using Identifier Straw center and straw axis can be obtained by the following: (The straw center is the center of the active region) Amg::Transform3D& transform = element->strawTransform(straw); Amb::Vector3D& center = element->strawCenter(); double r = element->strawCenter()->perp(); double phi = element->strawCenter()->phi(); Amg::Vector3D strawAxis = element->strawTransform(straw)* Vector3D(0,0,1) * strawDirection()
Implements Trk::TrkDetElementBase.
Definition at line 110 of file TRT_BaseElement.cxx.
const TRT_Conditions* InDetDD::TRT_BaseElement::conditions | ( | ) | const |
Return the TRT_Conditions object associated to this Detector element.
|
pure virtual |
create the surface cache of the detector element, to be implementd in the deried class
Implemented in InDetDD::TRT_BarrelElement, and InDetDD::TRT_EndcapElement.
void InDetDD::TRT_BaseElement::createSurfaceCache | ( | Identifier | id | ) | const |
create the surface & surface cache for the straw
Definition at line 161 of file TRT_BaseElement.cxx.
|
private |
Definition at line 178 of file TRT_BaseElement.cxx.
const GeoTrf::Transform3D& InDetDD::TRT_BaseElement::defTransform | ( | ) | const |
|
private |
|
finaloverridevirtual |
TrkDetElementBase interface detectorTyoe.
Implements Trk::TrkDetElementBase.
|
inherited |
|
pure virtual |
creates surface for detector element, to be implemented in derived class
Implemented in InDetDD::TRT_BarrelElement, and InDetDD::TRT_EndcapElement.
const HepGeom::Transform3D InDetDD::TRT_BaseElement::getAbsoluteTransform | ( | int | straw | ) | const |
This is an alias to strawTransform(int straw)
Definition at line 42 of file TRT_BaseElement.cxx.
|
finaloverridevirtual |
identifier of this detector element:
Implements Trk::TrkDetElementBase.
|
finaloverridevirtual |
identifier hash
Implements Trk::TrkDetElementBase.
void InDetDD::TRT_BaseElement::invalidate | ( | ) |
|
inline |
|
finaloverridevirtual |
Element Surface: normal of a straw layer.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtual |
Normal of a straw.
(Not very meaningful).
Implements Trk::TrkDetElementBase.
Definition at line 100 of file TRT_BaseElement.cxx.
unsigned int InDetDD::TRT_BaseElement::nStraws | ( | ) | const |
Number of straws in the element.
|
private |
Illegal operations:
Amg::Vector3D InDetDD::TRT_BaseElement::strawAxis | ( | int | straw | ) | const |
Straw axis.
Always in direction of increasing eta. +ve z direction in barrel (for both +ve and -ve half) Away from beam pipe in -ve z endcap, Towards beam pipe in +ve endcap.
Definition at line 154 of file TRT_BaseElement.cxx.
|
pure virtual |
the straw bounds
Implemented in InDetDD::TRT_BarrelElement, and InDetDD::TRT_EndcapElement.
const Amg::Vector3D & InDetDD::TRT_BaseElement::strawCenter | ( | int | straw | ) | const |
Straw Surface: Local -> global transform of the straw via integer.
Definition at line 143 of file TRT_BaseElement.cxx.
|
pure virtual |
StrawDirection.
+1 if axis is in same direction as local z axis, -1 otherwise.
Implemented in InDetDD::TRT_BarrelElement, and InDetDD::TRT_EndcapElement.
|
pure virtual |
Active straw length.
Implemented in InDetDD::TRT_BarrelElement, and InDetDD::TRT_EndcapElement.
const Trk::StraightLineSurface & InDetDD::TRT_BaseElement::strawSurface | ( | int | straw | ) | const |
Straw Surface: access to the surface via integer.
Definition at line 121 of file TRT_BaseElement.cxx.
const Amg::Transform3D & InDetDD::TRT_BaseElement::strawTransform | ( | int | straw | ) | const |
Straw Surface: Local -> global transform of the straw via integer.
Definition at line 132 of file TRT_BaseElement.cxx.
const Amg::Transform3D & InDetDD::TRT_BaseElement::strawTransform | ( | unsigned int | straw | ) | const |
|
finaloverridevirtual |
Element Surface: access to the Surface (straw layer)
Implements Trk::TrkDetElementBase.
|
finaloverridevirtual |
Straw Surface: access to the surface via identifier.
Implements Trk::TrkDetElementBase.
Definition at line 48 of file TRT_BaseElement.cxx.
const std::vector< const Trk::Surface * > & InDetDD::TRT_BaseElement::surfaces | ( | ) | const |
Returns the full list of all detection surfaces associated to this detector element.
Definition at line 58 of file TRT_BaseElement.cxx.
|
finaloverridevirtual |
Element Surface: Get Transform of element in Tracking frame: Amg.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtual |
Straw Surface: access to the transform of individual straw in Tracking frame: Amg.
Implements Trk::TrkDetElementBase.
Definition at line 78 of file TRT_BaseElement.cxx.
|
pure virtual |
Type information: returns BARREL or ENDCAP.
Implemented in InDetDD::TRT_BarrelElement, and InDetDD::TRT_EndcapElement.
void InDetDD::TRT_BaseElement::updateAllCaches | ( | ) |
|
protected |
Definition at line 213 of file TRT_BaseElement.h.
|
protected |
Definition at line 204 of file TRT_BaseElement.h.
|
protected |
Definition at line 205 of file TRT_BaseElement.h.
Definition at line 212 of file TRT_BaseElement.h.
|
protected |
Definition at line 211 of file TRT_BaseElement.h.
|
protected |
Definition at line 216 of file TRT_BaseElement.h.
|
protected |
helper element surface for the cache
Definition at line 217 of file TRT_BaseElement.h.
|
protected |
Definition at line 214 of file TRT_BaseElement.h.
|
protected |
Definition at line 220 of file TRT_BaseElement.h.
|
protected |
Definition at line 219 of file TRT_BaseElement.h.