![]() |
ATLAS Offline Software
|
Class to hold geometrical description of an HGTD detector element. More...
#include <HGTD_DetectorElement.h>
Public Member Functions | |
| HGTD_DetectorElement (const Identifier &id, const HGTD_ModuleDesign *design, const GeoVFullPhysVol *geophysvol, const SiCommonItems *commonItems, const GeoAlignmentStore *geoAlignStore=nullptr) | |
| Constructor: | |
| virtual | ~HGTD_DetectorElement () |
| Destructor: | |
| std::string | detectorTypeString () const |
| Returns a string of the Detector element type. | |
Identification | |
Methods to identify the element and identifier manipulation. | |
| Identifier | identifierFromCellId (const SiCellId &cellId) const override final |
| Identifier from SiCellId (ie pixel eta_index,phi_index) | |
| SiCellId | cellIdFromIdentifier (const Identifier &identifier) const override final |
| SiCellId from Identifier. | |
Transformation/Orientation | |
| virtual const std::vector< const Trk::Surface * > & | surfaces () const |
| Returns the full list of surfaces associated to this detector element. | |
Element Extent | |
Methods to get extent of element in r,phi and z. | |
| double | get_rz () const override final |
Design methods | |
| const HGTD_ModuleDesign & | design () const override final |
| access to the local description: | |
| InDetDD::CarrierType | carrierType () const |
Cache handling | |
Methods to handle invalidating and updating caches. The cached values include values that are affected by alignment | |
| void | invalidate () |
| Signal that cached values are no longer valid. | |
Common items | |
Inline method | |
| const SiCommonItems * | getCommonItems () const |
Identification | |
Methods to identify the element and identifier manipulation. | |
| virtual Identifier | identify () const override final |
| identifier of this detector element (inline) | |
| virtual IdentifierHash | identifyHash () const override final |
| identifier hash (inline) | |
| const AtlasDetectorID * | getIdHelper () const |
| Returns the id helper (inline) | |
Surface | |
| Trk::Surface & | surface () |
| Element Surface. | |
| virtual const Trk::Surface & | surface () const override final |
| Return surface associated with this detector element. | |
| virtual const Trk::Surface & | surface (const Identifier &) const override final |
| TrkDetElementBase interface (inline) | |
Transformation | |
| const GeoTrf::Transform3D & | transformHit () const |
| Local (simulation/hit frame) to global transform. | |
| const HepGeom::Transform3D & | transformCLHEP () const |
| Local (reconstruction frame) to global transform. | |
| virtual const Amg::Transform3D & | transform () const override final |
| Return local to global transform. | |
| virtual const Amg::Transform3D & | transform (const Identifier &) const override final |
| TrkDetElementBase interface (inline) | |
| const HepGeom::Transform3D | defTransformCLHEP () const |
| Default Local (reconstruction frame) to global transform ie with no misalignment. | |
| const Amg::Transform3D | defTransform () const |
| const HepGeom::Transform3D | recoToHitTransform () const |
| Transform to go from local reconstruction frame to local hit frame. | |
Orientation | |
| double | hitDepthDirection () const |
| Directions of hit depth,phi,eta axes relative to reconstruction local position axes (LocalPosition). | |
| double | hitPhiDirection () const |
| See previous method. | |
| double | hitEtaDirection () const |
| See previous method. | |
| const HepGeom::Vector3D< double > & | phiAxisCLHEP () const |
| To determine if readout direction between online and offline needs swapping, see methods swapPhiReadoutDirection() and swapEtaReadoutDirection() below in "Readout Cell id" section. | |
| const Amg::Vector3D & | phiAxis () const |
| const HepGeom::Vector3D< double > & | etaAxisCLHEP () const |
| Get reconstruction local eta axes in global frame. | |
| const Amg::Vector3D & | etaAxis () const |
| virtual const Amg::Vector3D & | normal () const override final |
| Get reconstruction local normal axes in global frame. | |
| virtual const Amg::Vector3D & | normal (const Identifier &) const override final |
| TrkDetElementBase interface (inline) | |
Position | |
| virtual const Amg::Vector3D & | center () const override final |
| Center in global coordinates. | |
| virtual const Amg::Vector3D & | center (const Identifier &) const override final |
| TrkDetElementBase interface (inline) | |
| virtual Trk::DetectorElemType | detectorType () const override |
| TrkDetElementBase interface detectorType. | |
| HepGeom::Point3D< double > | globalPositionHit (const HepGeom::Point3D< double > &simulationLocalPos) const |
| transform a hit local position into a global position (inline): | |
| Amg::Vector3D | globalPositionHit (const Amg::Vector3D &simulationLocalPos) const |
| HepGeom::Point3D< double > | globalPosition (const HepGeom::Point3D< double > &localPos) const |
| transform a reconstruction local position into a global position (inline): | |
| Amg::Vector3D | globalPosition (const Amg::Vector3D &localPos) const |
| Amg::Vector3D | globalPosition (const Amg::Vector2D &localPos) const |
| as in previous method but for 2D local position (inline) | |
| Amg::Vector2D | hitLocalToLocal (double xEta, double xPhi) const |
| Simulation/Hit local frame to reconstruction local frame. | |
| HepGeom::Point3D< double > | hitLocalToLocal3D (const HepGeom::Point3D< double > &hitPosition) const |
| Same as previuos method but 3D. | |
| Amg::Vector2D | localPosition (const HepGeom::Point3D< double > &globalPosition) const |
| transform a global position into a 2D local position (reconstruction frame) (inline) | |
| Amg::Vector2D | localPosition (const Amg::Vector3D &globalPosition) const |
Element Extent | |
Inline methods to get extent of element in r,phi and z. | |
| double | rMin () const |
| double | rMax () const |
| double | zMin () const |
| double | zMax () const |
| double | phiMin () const |
| double | phiMax () const |
| void | getEtaPhiRegion (double deltaZ, double &etaMin, double &etaMax, double &phiMin, double &phiMax, double &rz) const |
| Method for building up region of interest table. | |
Design methods | |
| virtual const Trk::SurfaceBounds & | bounds () const override final |
| Return the boundaries of the element. | |
| virtual const Trk::SurfaceBounds & | bounds (const Identifier &) const override final |
| TrkDetElementBase interface (inline) | |
| double | width () const |
| Methods from design (inline) | |
| double | minWidth () const |
| Min width. | |
| double | maxWidth () const |
| Max width. | |
| double | length () const |
| Length in eta direction (z - barrel, r - endcap) | |
| double | thickness () const |
| double | etaPitch () const |
| Pitch (inline methods) | |
| double | phiPitch () const |
| bool | swapPhiReadoutDirection () const |
| Determine if readout direction between online and offline needs swapping. | |
| bool | swapEtaReadoutDirection () const |
| For eta_index (only relevant for pixel) (inline) | |
Intersection Tests | |
| SiIntersect | inDetector (const Amg::Vector2D &localPosition, double phiTol, double etaTol) const |
| Test that it is in the active region. | |
| SiIntersect | inDetector (const Amg::Vector3D &globalPosition, double phiTol, double etaTol) const |
Readout cell id | |
Cell id's are the strip number in SCT and phi_index,eta_index in the pixel as defined in the offline identifier. Their direction runs in the distPhi, distEta direction in the Reconstruction local frame. For methods taking a SiCellId (basically phi,eta index for pixel or strip for SCT) you can do the following fro example:
| |
| Identifier | identifierOfPosition (const Amg::Vector2D &localPos) const |
| Full identifier of the cell for a given position: assumes a raw local position (no Lorentz shift) | |
| SiCellId | cellIdOfPosition (const Amg::Vector2D &localPos) const |
| As in previous method but returns SiCellId. | |
| Amg::Vector2D | rawLocalPositionOfCell (const SiCellId &cellId) const |
| Returns position (center) of cell. | |
| Amg::Vector2D | rawLocalPositionOfCell (const Identifier &id) const |
| As above. | |
| int | numberOfConnectedCells (const SiCellId cellId) const |
| Test if readout cell has more than one diode associated with it. | |
| SiCellId | connectedCell (const SiCellId cellId, int number) const |
| Get the cell ids sharing the readout for this cell. | |
| virtual void | updateCache () const |
| Recalculate cached values. | |
| bool | depthDirection () const |
| Return information on orientation. | |
| bool | etaDirection () const |
| bool | phiDirection () const |
| double | depthAngle () const |
| double | etaAngle () const |
| double | phiAngle () const |
Protected Attributes | |
Cache vector of surfaces. | |
| CxxUtils::CachedValue< std::vector< const Trk::Surface * > > | m_surfaces |
Variables set by constructor | |
Protected data: | |
| Identifier | m_id {} |
| identifier of this detector element | |
| const DetectorDesign * | m_design {nullptr} |
| local description of this detector element | |
| const SiCommonItems * | m_commonItems {nullptr} |
| std::unique_ptr< Trk::Surface > | m_surface |
| const GeoAlignmentStore * | m_geoAlignStore {} |
| DetectorDesign::Axis | m_hitEta |
| Axes. | |
| DetectorDesign::Axis | m_hitPhi |
| DetectorDesign::Axis | m_hitDepth |
Variables set by commonConstructor | |
| IdentifierHash | m_idHash {} |
| hash id of this detector element | |
Variables set by updateCache and not invalidated. | |
Directions of axes. These are true if the hit/simulation and reconstruction local frames are in the same direction and false if they are opposite. | |
| CxxUtils::CachedValue< AxisDir > | m_axisDir |
Variables set by updateCache | |
| CxxUtils::CachedValue< CachedVals > | m_cache |
Private Member Functions | |
Private Methods | |
Do not use locks. | |
| void | commonConstructor () |
| Common code for constructors. | |
| void | getExtent (CachedVals &cache) const |
| Calculate extent in r,z and phi. | |
| void | getCorners (HepGeom::Point3D< double > *corners) const |
| Return the four corners of an element in local coordinates. | |
| void | getEtaPhiPoint (const HepGeom::Point3D< double > &point, double deltaZ, double &etaMin, double &etaMax, double &phi) const |
| Get eta and phi coresponding to a point in local coordinates. | |
| MsgStream & | msg (MSG::Level lvl) const |
| Declaring the Message method for further use (inline) | |
| bool | msgLvl (MSG::Level lvl) const |
| Declaring the Method providing Verbosity Level (inline) | |
Class to hold geometrical description of an HGTD detector element.
A detector element in this case is a single module in the HGTD.
Definition at line 40 of file HGTD_DetectorElement.h.
| InDetDD::HGTD_DetectorElement::HGTD_DetectorElement | ( | const Identifier & | id, |
| const HGTD_ModuleDesign * | design, | ||
| const GeoVFullPhysVol * | geophysvol, | ||
| const SiCommonItems * | commonItems, | ||
| const GeoAlignmentStore * | geoAlignStore = nullptr ) |
Constructor:
Definition at line 17 of file HGTD_DetectorElement.cxx.
|
virtual |
|
finaloverridevirtualinherited |
Return the boundaries of the element.
Implements Trk::TrkDetElementBase.
Definition at line 198 of file SolidStateDetectorElementBase.cxx.
|
finaloverridevirtualinherited |
TrkDetElementBase interface (inline)
Implements Trk::TrkDetElementBase.
|
inline |
Definition at line 126 of file HGTD_DetectorElement.h.
|
finaloverridevirtual |
SiCellId from Identifier.
Implements InDetDD::SolidStateDetectorElementBase.
Definition at line 51 of file HGTD_DetectorElement.cxx.
|
inherited |
As in previous method but returns SiCellId.
Definition at line 224 of file SolidStateDetectorElementBase.cxx.
|
finaloverridevirtualinherited |
Center in global coordinates.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtualinherited |
TrkDetElementBase interface (inline)
Implements Trk::TrkDetElementBase.
|
privateinherited |
Common code for constructors.
Definition at line 257 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Get the cell ids sharing the readout for this cell.
number = 0 will return the primary readout cell id.
Definition at line 250 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Definition at line 60 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Default Local (reconstruction frame) to global transform ie with no misalignment.
Definition at line 50 of file SolidStateDetectorElementBase.cxx.
|
inherited |
|
inherited |
Return information on orientation.
|
inlinefinaloverridevirtual |
access to the local description:
Reimplemented from InDetDD::SolidStateDetectorElementBase.
Definition at line 121 of file HGTD_DetectorElement.h.
|
overridevirtualinherited |
TrkDetElementBase interface detectorType.
Implements Trk::TrkDetElementBase.
Reimplemented in InDetDD::SiDetectorElement, and SiDetectorElement.
|
inherited |
Returns a string of the Detector element type.
Definition at line 10 of file TrkDetElementBase.cxx.
|
inherited |
|
inherited |
Definition at line 88 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Get reconstruction local eta axes in global frame.
In direction of increasing z in the barrel and increasing r in the endcap.
Definition at line 81 of file SolidStateDetectorElementBase.cxx.
|
inherited |
|
inherited |
Pitch (inline methods)
NOTE: phiPitch is ambiguous for the Forward SCT where it varies along the strip.
etaPitch is ambiguous for the pixel which has long pixels between FE chips.
For these cases:
phiPitch: For SCT Forward returns pitch at center.
etaPitch: For pixel returns average pitch. (Active_length/number_of_cells)
All return pitch in distance units.
|
finaloverridevirtual |
Implements InDetDD::SolidStateDetectorElementBase.
Definition at line 80 of file HGTD_DetectorElement.cxx.
|
inherited |
|
privateinherited |
Return the four corners of an element in local coordinates.
Pass it an array of length 4. This function is used by getEtaPhiRegion()
Definition at line 551 of file SolidStateDetectorElementBase.cxx.
|
privateinherited |
Get eta and phi coresponding to a point in local coordinates.
Requires as input the vertex spread. Returns etaMin, etaMax, and phi. This function is used by getEtaPhiRegion()
Definition at line 589 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Method for building up region of interest table.
Get eta/phi extent for the element. Returns min/max eta and phi and r (for barrel) or z (for endcap) Takes as input the vertex spread in z (-deltaZ to +deltaZ)
Definition at line 140 of file SolidStateDetectorElementBase.cxx.
|
privateinherited |
Calculate extent in r,z and phi.
The values are cached and there are rMin(), rMax etc methods. It is only used from updateCache
Definition at line 483 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Returns the id helper (inline)
|
inherited |
as in previous method but for 2D local position (inline)
|
inherited |
|
inherited |
transform a reconstruction local position into a global position (inline):
|
inherited |
|
inherited |
transform a hit local position into a global position (inline):
|
inherited |
Directions of hit depth,phi,eta axes relative to reconstruction local position axes (LocalPosition).
Returns +/-1. inline
|
inherited |
See previous method.
inline
|
inherited |
Simulation/Hit local frame to reconstruction local frame.
2D. TODO: Will change order of parameters at some point.
Definition at line 95 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Same as previuos method but 3D.
Definition at line 117 of file SolidStateDetectorElementBase.cxx.
|
inherited |
See previous method.
inline
|
finaloverridevirtual |
Identifier from SiCellId (ie pixel eta_index,phi_index)
Implements InDetDD::SolidStateDetectorElementBase.
Definition at line 36 of file HGTD_DetectorElement.cxx.
|
inherited |
Full identifier of the cell for a given position: assumes a raw local position (no Lorentz shift)
Definition at line 217 of file SolidStateDetectorElementBase.cxx.
|
finaloverridevirtualinherited |
identifier of this detector element (inline)
Implements Trk::TrkDetElementBase.
|
finaloverridevirtualinherited |
identifier hash (inline)
Implements Trk::TrkDetElementBase.
|
inherited |
Test that it is in the active region.
Intersect has 3 states bool SiIntersect::in() const // definitely in
bool SiIntersect::out() const // definitely out
bool SiIntersect::nearBoundary() const // near a boundary within the tolerances
bool SiIntersect::mayIntersect() const // in() OR nearBoundary()
Definition at line 204 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Definition at line 211 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Signal that cached values are no longer valid.
Invalidate general cache (inline)
|
inherited |
Length in eta direction (z - barrel, r - endcap)
|
inherited |
|
inherited |
transform a global position into a 2D local position (reconstruction frame) (inline)
|
inherited |
Max width.
Needed for the SCT endcap.
|
inherited |
Min width.
Needed for the SCT endcap.
|
privateinherited |
Declaring the Message method for further use (inline)
|
privateinherited |
Declaring the Method providing Verbosity Level (inline)
|
finaloverridevirtualinherited |
Get reconstruction local normal axes in global frame.
Choosen to give right-handed coordinate frame.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtualinherited |
TrkDetElementBase interface (inline)
Implements Trk::TrkDetElementBase.
|
inherited |
Test if readout cell has more than one diode associated with it.
Number of cells sharing the same readout as this cell. ie generally 1 except for ganged pixels which will be 2.
Definition at line 243 of file SolidStateDetectorElementBase.cxx.
|
inherited |
|
inherited |
Definition at line 74 of file SolidStateDetectorElementBase.cxx.
|
inherited |
To determine if readout direction between online and offline needs swapping, see methods swapPhiReadoutDirection() and swapEtaReadoutDirection() below in "Readout Cell id" section.
Orientation. Directions.
Get reconstruction local phi axes in global frame. In same direction as increasing phi and identifier phi_index/strip.
Definition at line 67 of file SolidStateDetectorElementBase.cxx.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
As above.
Definition at line 236 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Returns position (center) of cell.
These are the raw positions NOT corrected for the Lorentz shift
Definition at line 230 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Transform to go from local reconstruction frame to local hit frame.
Definition at line 607 of file SolidStateDetectorElementBase.cxx.
|
inherited |
|
inherited |
|
inherited |
Element Surface.
|
finaloverridevirtualinherited |
Return surface associated with this detector element.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtualinherited |
TrkDetElementBase interface (inline)
Implements Trk::TrkDetElementBase.
|
virtual |
Returns the full list of surfaces associated to this detector element.
Definition at line 65 of file HGTD_DetectorElement.cxx.
|
inherited |
For eta_index (only relevant for pixel) (inline)
|
inherited |
Determine if readout direction between online and offline needs swapping.
Returns true if online and offline numbers run in opposite directions. For strip/phi_index (inline)
|
inherited |
|
finaloverridevirtualinherited |
Return local to global transform.
Implements Trk::TrkDetElementBase.
|
finaloverridevirtualinherited |
TrkDetElementBase interface (inline)
Implements Trk::TrkDetElementBase.
|
inherited |
Local (reconstruction frame) to global transform.
Definition at line 43 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Local (simulation/hit frame) to global transform.
|
virtualinherited |
Recalculate cached values.
Definition at line 272 of file SolidStateDetectorElementBase.cxx.
|
inherited |
Methods from design (inline)
Width in phi direction. For the SCT endcap it returns the average width.
|
inherited |
|
inherited |
|
protectedinherited |
Definition at line 675 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 702 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 624 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
local description of this detector element
Definition at line 622 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 626 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 633 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Axes.
Definition at line 631 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 632 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
identifier of this detector element
Definition at line 617 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
hash id of this detector element
Definition at line 643 of file SolidStateDetectorElementBase.h.
|
protectedinherited |
Definition at line 625 of file SolidStateDetectorElementBase.h.
|
protected |
Definition at line 113 of file HGTD_DetectorElement.h.