Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <ActsDetectorElement.h>
Definition at line 42 of file ActsDetectorElement.h.
◆ AlignmentStore
◆ DetectorType
◆ ActsDetectorElement() [1/3]
Definition at line 51 of file ActsDetectorElement.cxx.
52 GeoVDetectorElement{detElem.getMaterialGeom()},
71 auto rectangleBounds = std::make_shared<const Acts::RectangleBounds>(hlX, hlY);
74 m_surface = Acts::Surface::makeShared<Acts::PlaneSurface>(rectangleBounds, *
this);
84 auto trapezoidBounds =
85 std::make_shared<const Acts::TrapezoidBounds>(minHlX, maxHlX, hlY);
89 m_surface = Acts::Surface::makeShared<Acts::PlaneSurface>(trapezoidBounds, *
this);
96 if (annulus ==
nullptr) {
97 throw std::domain_error(
"ActsDetectorElement got inconsistent surface");
100 double phi = annulus->phiWidth();
101 double phiS = annulus->stereo();
102 double R = annulus->waferCentreR();
103 double maxR = annulus->maxR();
104 double minR = annulus->minR();
109 double phiMax =
phi / 2.;
110 double phiMin = -phiMax;
116 auto annulusBounds = std::make_shared<Acts::AnnulusBounds>(
117 minR, maxR, phiMin, phiMax, originStripXYRotated, phiAvg);
120 m_surface = Acts::Surface::makeShared<Acts::DiscSurface>(annulusBounds, *
this);
123 std::cout << boundsType << std::endl;
124 throw std::domain_error(
"ActsDetectorElement does not support this surface type");
◆ ActsDetectorElement() [2/3]
Constructor for a straw surface.
- Parameters
-
transform | Transform to the straw system |
Definition at line 128 of file ActsDetectorElement.cxx.
131 GeoVDetectorElement{detElem.getMaterialGeom()},
133 m_type{DetectorType::Trt},
146 double innerTubeRadius{0.};
152 brlElem->getDescriptor()->innerTubeRadius() *
length_unit;
154 THROW_EXCEPTION(
"Cannot get tube radius for element in ActsDetectorElement c'tor");
159 std::make_shared<const Acts::LineBounds>(innerTubeRadius,
length);
162 m_surface = Acts::Surface::makeShared<Acts::StrawSurface>(lineBounds, *
this);
◆ ActsDetectorElement() [3/3]
Constructor for an HGTD surface.
Definition at line 165 of file ActsDetectorElement.cxx.
166 GeoVDetectorElement{detElem.getMaterialGeom()},
168 m_type{DetectorType::Hgtd},
182 auto rectangleBounds =
183 std::make_shared<const Acts::RectangleBounds>(hlX, hlY);
187 m_surface = Acts::Surface::makeShared<Acts::PlaneSurface>(rectangleBounds, *
this);
190 throw std::domain_error(
191 "ActsDetectorElement: the surface type of HGTD is not does not Rectangle, it is wrong");
◆ ~ActsDetectorElement()
virtual ActsDetectorElement::~ActsDetectorElement |
( |
| ) |
|
|
virtualdefault |
◆ atlasSurface()
Return a shared pointer on the ATLAS surface associated with this identifier,.
Definition at line 267 of file ActsDetectorElement.cxx.
268 if (
const auto *detElem =
270 detElem !=
nullptr) {
271 return detElem->surface();
273 throw std::domain_error(
"Cannot get surface for TRT element");
◆ detectorType()
◆ getDefaultTransform()
const Acts::Transform3 & ActsDetectorElement::getDefaultTransform |
( |
| ) |
const |
Returns default transform.
For TRT this is static and set in constructor. For silicon detectors it is calulated from GM, and stored. Thus the method is not const. The store is mutexed.
Definition at line 255 of file ActsDetectorElement.cxx.
◆ identify()
Identifier ActsDetectorElement::identify |
( |
| ) |
const |
|
finaloverridevirtual |
◆ identifyHash()
◆ identityHelper()
◆ storeAlignedTransforms()
◆ surface() [1/2]
const Acts::Surface & ActsDetectorElement::surface |
( |
| ) |
const |
|
finaloverridevirtual |
Return surface associated with this identifier, which should come from the.
Definition at line 259 of file ActsDetectorElement.cxx.
◆ surface() [2/2]
Acts::Surface & ActsDetectorElement::surface |
( |
| ) |
|
|
finaloverridevirtual |
◆ thickness()
double ActsDetectorElement::thickness |
( |
| ) |
const |
|
finaloverridevirtual |
◆ transform() [1/2]
const Acts::Transform3 & ActsDetectorElement::transform |
( |
const Acts::GeometryContext & |
gctx | ) |
const |
|
finaloverridevirtual |
◆ transform() [2/2]
Pixel or Sct
Definition at line 195 of file ActsDetectorElement.cxx.
200 case DetectorType::Hgtd:{
201 l2g=
m_detElement->getMaterialGeom()->getAbsoluteTransform(geoModelStore);
203 }
case DetectorType::Trt: {
217 extraTransform = design.
moduleShift() * extraTransform;
223 const Amg::Vector2D origin2D =
static_cast<const Acts::AnnulusBounds&
>(
m_surface->bounds()).moduleOrigin();
226 extraTransform = extraTransform * originTrf.inverse();
228 l2g =
m_detElement->getMaterialGeom()->getAbsoluteTransform(geoModelStore) * extraTransform;
◆ upstreamDetectorElement()
const GeoVDetectorElement * ActsDetectorElement::upstreamDetectorElement |
( |
| ) |
const |
◆ m_bounds
std::shared_ptr<const Acts::SurfaceBounds> ActsDetectorElement::m_bounds {} |
|
private |
◆ m_detElement
const GeoVDetectorElement* ActsDetectorElement::m_detElement {nullptr} |
|
private |
◆ m_explicitIdentifier
Identifier ActsDetectorElement::m_explicitIdentifier {} |
|
private |
◆ m_idHash
◆ m_surface
std::shared_ptr<Acts::Surface> ActsDetectorElement::m_surface {} |
|
private |
◆ m_surfaces
std::vector<std::shared_ptr<const Acts::Surface> > ActsDetectorElement::m_surfaces {} |
|
private |
◆ m_thickness
double ActsDetectorElement::m_thickness {0.} |
|
private |
◆ m_trfCache
◆ m_trtTrf
◆ m_type
DetectorType ActsDetectorElement::m_type {DetectorType::UnDefined} |
|
private |
The documentation for this class was generated from the following files:
Ensure that the extensions for the Vector3D are properly loaded.
virtual const double & strawLength() const =0
Active straw length.
virtual double width() const =0
Method to calculate average width of a module.
Scalar phi() const
phi method
virtual const Amg::Transform3D moduleShift() const
const GeoVDetectorElement * m_detElement
Detector element as variant.
Eigen::Matrix< double, 2, 1 > Vector2D
virtual double length() const =0
Method to calculate length of a module.
DetectorType detectorType() const override final
Detector type.
constexpr double length_unit
double innerTubeRadius() const
Get inner tube radius of the straw.
std::unique_ptr< const Amg::Transform3D > m_trtTrf
virtual double length() const
Method to calculate length of a module.
virtual IdentifierHash identifyHash() const override final
identifier hash (inline)
const HGTD_ModuleDesign & design() const override final
access to the local description:
Amg::Transform3D getRotateZ3D(double angle)
get a rotation transformation around Z-axis
std::shared_ptr< const Acts::SurfaceBounds > m_bounds
Boundaries of the detector element.
virtual BoundsType type() const =0
Return the bounds type - for persistency optimization.
@ Pixel
Inner detector legacy.
const TRT_BarrelDescriptor * getDescriptor() const
Returns a pointer to a descriptor, giving common information on module construction:
Eigen::Affine3d Transform3D
std::shared_ptr< Acts::Surface > m_surface
Corresponding Surface.
virtual const Trk::SurfaceBounds & bounds() const override final
Return the boundaries of the element.
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
virtual double maxWidth() const =0
Method to calculate maximum width of a module.
virtual IdentifierHash identifyHash() const override final
identifier hash
virtual const Trk::SurfaceBounds & bounds() const =0
Element boundary.
double m_thickness
Thickness of this detector element.
#define THROW_EXCEPTION(MESSAGE)
ActsTrk::TransformCacheDetEle< ActsDetectorElement > m_trfCache
virtual double minWidth() const =0
Method to calculate minimum width of a module.
Amg::Transform3D CLHEPTransformToEigen(const HepGeom::Transform3D &CLHEPtransf)
Converts a CLHEP-based HepGeom::Transform3D into an Eigen Amg::Transform3D.
Identifier m_explicitIdentifier
Eigen::Translation< double, 3 > Translation3D
virtual double width() const
Method to calculate average width of a module.
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
virtual Identifier identify() const override final
identifier of this detector element (inline)