|
ATLAS Offline Software
|
Go to the documentation of this file.
10 #include "Identifier/Identifier.h"
17 const double &thickness,
18 const int &readoutSide,
22 const double &stripStartRadius,
23 const double &stripEndRadius) :
24 SCT_ModuleSideDesign(thickness, true, true, true, 1, 0, 0, 0, false, carrier, readoutSide, stripDirection, thicknessDirection) {
36 std::unique_ptr<Trk::SurfaceBounds>
m_bounds = std::make_unique<Trk::RectangleBounds>(
width / 2.0,
length / 2.0);
53 int stripM =
strip - 1;
54 int stripP =
strip + 1;
57 neighbours.emplace_back(stripM);
60 neighbours.emplace_back(stripP);
71 double phi =
pos.phi();
93 if (clusterSize <= 1) {
97 double clusterWidth = clusterSize *
m_pitch;
98 double phi =
pos.phi() + clusterWidth *0.5;
121 return std::pair<SiLocalPosition, SiLocalPosition>(end1, end2);
143 throw std::runtime_error(
"Call to StripAnnulusDesign::parameters; not yet implemented");
bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap=false) const
check if the position is in active area
std::unique_ptr< Trk::RectangleBounds > m_bounds
StripAnnulusDesign(const SiDetectorDesign::Axis &stripDirection, const SiDetectorDesign::Axis &thicknessDirection, const double &thickness, const int &readoutSide, const InDetDD::CarrierType &carrier, const int &nStrips, const double &pitch, const double &stripStart, const double &stripEnd)
double length() const
Method to calculate length of a module.
virtual int strip(int stripId1Dim) const
bool isValid() const
Test if its in a valid state.
SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
int strip() const
Get strip number. Equivalent to phiIndex().
SiCellId cellIdInRange(const SiCellId &) const
Check if cell is in range.
double xPhi() const
position along phi direction:
Amg::Vector3D sensorCenter() const
Return the centre of a sensor in the local reference frame.
SiLocalPosition localPositionOfCluster(const SiCellId &cellId, int clusterSize) const
double m_stripStartRadius
double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const
give distance to the nearest diode in units of pitch, from 0.0 to 0.5, this method should be fast as ...
Eigen::Affine3d Transform3D
SCT_ReadoutScheme m_scheme
double minWidth() const
Method to calculate minimum width of a module.
SiDiodesParameters parameters(const SiCellId &cellId) const
Return strip width, centre, length etc. Hard to find if this is used or not.
double width() const
Method to calculate average width of a module.
void neighboursOfCell(const SiCellId &cellId, std::vector< SiCellId > &neighbours) const
Get the neighbouring diodes of a given diode: Cell for which the neighbours must be found List of cel...
int nStrips(const MuonGM::TgcReadoutElement &readoutEle, int layer)
Amg::Transform3D getRotateY3D(double angle)
get a rotation transformation around Y-axis
SiLocalPosition positionFromStrip(const SiCellId &cellId) const
Eigen::Matrix< double, 3, 1 > Vector3D
void setCells(int numReadoutCells)
double pitch(const SiCellId &cellId) const
std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const
Give end points of the strip that covers the given position.
static const Amg::Transform3D SiHitToGeoModel()
const Trk::SurfaceBounds & bounds() const
Element boundary.
void setDiodes(int numDiodes)
double maxWidth() const
Method to calculate maximum width of a module.
SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
id -> position