Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
7 #include "GeoModelKernel/Units.h"
8 #include "Identifier/Identifier.h"
16 const double thickness,
17 const int readoutSide,
24 const double zShift) :
25 SCT_ModuleSideDesign(thickness, true, true, true, 1,
nRows *
nStrips,
nRows *
nStrips, 0, false, carrier,readoutSide, stripDirection, thicknessDirection) {
27 throw std::runtime_error(
28 "ERROR: StripBoxDesign called with non-positive number of rows");
63 std::vector<SiCellId> &neighbours)
const {
73 int stripM =
strip - 1;
74 int stripP =
strip + 1;
77 neighbours.emplace_back(stripM);
80 neighbours.emplace_back(stripP);
103 if (row < 0 || row >=
m_nRows) {
125 int clusterSize)
const {
129 if (clusterSize <= 1) {
133 double clusterWidth = clusterSize *
m_pitch;
134 pos.xPhi(
pos.xPhi() + clusterWidth / 2.);
148 double etaEnd = etaStart +
m_length;
156 return std::pair<SiLocalPosition, SiLocalPosition>(end1, end2);
180 throw std::runtime_error(
"Call to StripBoxDesign::parameters; not yet implemented");
231 throw std::runtime_error(
"Call to phiMeasureSegment, DEPRECATED, not implemented.");
237 double & phiDist)
const {
240 double xEta = std::abs(
pos.xEta());
241 double xPhi = std::abs(
pos.xPhi());
243 double xEtaEdge = 0.5 *
length();
244 double xPhiEdge = 0.5 *
width();
247 etaDist = xEtaEdge - xEta;
250 phiDist = xPhiEdge - xPhi;
SiLocalPosition positionFromStrip(const SiCellId &cellId) const
Trk::RectangleBounds m_bounds
virtual double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const override
give distance to the nearest diode in units of pitch, from 0.0 to 0.5, this method should be fast as ...
virtual SiDiodesParameters parameters(const SiCellId &cellId) const override
Return strip width, centre, length etc. Hard to find if this is used or not.
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const override
position -> id
virtual double length() const override
Method to calculate length of a module.
virtual double minWidth() const override
Method to calculate minimum width of a module.
bool isValid() const
Test if its in a valid state.
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const override
id -> position
int phiIndex() const
Get phi index. Equivalent to strip().
virtual double width() const override
Method to calculate average width of a module.
double xPhi() const
position along phi direction:
virtual double etaPitch() const override
InDetDD::DetectorType m_detectorType
virtual HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &position) const override
Helper method for stereo angle computation, DEPRECATED.
Eigen::Affine3d Transform3D
std::pair< int, int > getStripRow(SiCellId id) const final
Get the strip and row number of the cell.
virtual int row(int stripId1Dim) const override
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const override
DEPRECATED: Unused (2014)
int nStrips(const MuonGM::TgcReadoutElement &readoutEle, int layer)
virtual const Trk::SurfaceBounds & bounds() const override
Element boundary.
virtual SiLocalPosition localPositionOfCluster(const SiCellId &cellId, int clusterSize) const override
virtual SiCellId cellIdInRange(const SiCellId &) const override
DEPRECATED: only used in a stupid example (2014) Check if cell is in range.
double pitch(const SiCellId &cellId) const
virtual void neighboursOfCell(const SiCellId &cellId, std::vector< SiCellId > &neighbours) const override
Get the neighbouring diodes of a given diode: Cell for which the neighbours must be found List of cel...
virtual double maxWidth() const override
Method to calculate maximum width of a module.
virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap=true) const override
check if the position is in active area
Eigen::Translation< double, 3 > Translation3D
virtual int strip(int stripId1Dim) const override
virtual const Amg::Transform3D moduleShift() const override final
unsigned constexpr int nRows
virtual int strip1Dim(int strip, int row) const override
only relevant for SCT.
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const override
Give end points of the strip that covers the given position.