|
ATLAS Offline Software
|
Go to the documentation of this file.
11 #ifndef READOUTGEOMETRYBASE_DETECTORDESIGN_H
12 #define READOUTGEOMETRYBASE_DETECTORDESIGN_H
17 #include "GeoModelKernel/RCBase.h"
21 #include "CLHEP/Geometry/Point3D.h"
22 #include "CLHEP/Geometry/Vector3D.h"
23 #include "CLHEP/Geometry/Transform3D.h"
34 class SiReadoutCellId;
38 class SiLocalPosition;
107 double etaTol)
const;
143 double &etaDist,
double &phiDist)
const = 0;
220 std::vector<SiCellId> &neighbours)
const = 0;
297 #endif // READOUTGEOMETRYBASE_DETECTORDESIGN_H
bool depthSymmetric() const
virtual void neighboursOfCell(const SiCellId &cellId, std::vector< SiCellId > &neighbours) const =0
Get the neighbouring diodes of a given diode: Cell for which the neighbours must be found List of cel...
virtual SiReadoutCellId readoutIdOfPosition(const SiLocalPosition &localPos) const =0
position -> id
virtual SiDiodesParameters parameters(const SiCellId &cellId) const =0
readout or diode id -> position, size
virtual double width() const =0
Method to calculate average width of a module.
double thickness() const
Method which returns thickness of the silicon wafer.
bool etaSymmetric() const
InDetDD::CarrierType m_carrierType
virtual const Amg::Transform3D moduleShift() const
virtual Amg::Vector3D sensorCenter() const
Return the centre of a sensor in the local reference frame.
virtual DetectorShape shape() const
Shape of element.
virtual double etaPitch() const =0
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const =0
readout or diode id -> position.
virtual double length() const =0
Method to calculate length of a module.
int readoutSide() const
ReadoutSide.
InDetDD::CarrierType carrierType() const
Return carrier type (ie electrons or holes)
virtual SiCellId connectedCell(const SiReadoutCellId &readoutId, int number) const =0
readout id -> id of connected diodes.
DetectorDesign(const DetectorDesign &design)
virtual int numberOfConnectedCells(const SiReadoutCellId &readoutId) const =0
number of connected cells.
Axis depthAxis() const
local axis corresponding to depth direction:
virtual SiReadoutCellId readoutIdOfCell(const SiCellId &cellId) const =0
diode id -> readout id NB assignment of a SiReadoutCellId to a SiCellId is allowed so you are can pas...
virtual bool swapHitPhiReadoutDirection() const =0
Return true if hit local direction is the same as readout direction.
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
virtual SiIntersect inDetector(const SiLocalPosition &localPosition, double phiTol, double etaTol) const
Test if point is in the active part of the detector with specified tolerances.
virtual double phiPitch(const SiLocalPosition &localPosition) const =0
Pitch in phi direction.
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration.
Eigen::Affine3d Transform3D
virtual DetectorType type() const
Type of element.
virtual double maxWidth() const =0
Method to calculate maximum width of a module.
Acts::Volume::BoundingBox Box
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const =0
Returns distance to nearest detector active edge +ve = inside -ve = outside.
void setSymmetry(bool phiSymmetric, bool etaSymmetric, bool depthSymmetric)
Override default symmetries to prevent swapping of axes.
Ensure that the ATLAS eigen extensions are properly loaded.
virtual const Trk::SurfaceBounds & bounds() const =0
Element boundary.
Axis phiAxis() const
local axis corresponding to phi direction:
DetectorDesign & operator=(const DetectorDesign &design)
Eigen::Matrix< double, 3, 1 > Vector3D
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const =0
position -> id
virtual double minWidth() const =0
Method to calculate minimum width of a module.
virtual bool swapHitEtaReadoutDirection() const =0
bool phiSymmetric() const
bool m_readoutSidePosDepth
virtual SiCellId cellIdInRange(const SiCellId &cellId) const =0
Check if cell is in range.
Axis etaAxis() const
local axis corresponding to eta direction:
virtual double phiPitch() const =0
Pitch in phi direction.