13#include "CLHEP/Units/SystemOfUnits.h"
14#include "CLHEP/Geometry/Vector3D.h"
26 const bool swapStripReadout,
30 const double xEtaStripPatternCentre,
31 const double xPhiStripPatternCentre,
32 const double totalDeadLength,
53 std::cout <<
"wrong number of crystals!\n";
66 double & etaDist,
double & phiDist)
const
72 double xEtaEdge = 0.5 *
length();
73 double xPhiEdge = 0.5 *
width();
76 etaDist = xEtaEdge - xEta;
79 phiDist = xPhiEdge - xPhi;
93 bool checkBondGap)
const
114 dstrip=dstrip-
static_cast<double>(int(dstrip))-0.5;
117 return std::abs(dstrip);
128 std::pair<SiLocalPosition,SiLocalPosition> two_ends(end1,end2);
158 HepGeom::Vector3D<double> segment;
191 double clusterCenter =
strip - 0.5*
cells() + 0.5;
207 if (clusterSize < 1) clusterSize = 1;
212 double clusterCenter =
strip - 0.5*
cells() + 0.5;
213 if (clusterSize>1) clusterCenter += 0.5 * (clusterSize-1);
240 double xPhi=localPosition.
xPhi();
242 if (dstrip < 0)
return {};
243 int strip =
static_cast<int>(dstrip);
Axis etaAxis() const
local axis corresponding to eta direction:
double thickness() const
Method which returns thickness of the silicon wafer.
InDetDD::CarrierType carrierType() const
Return carrier type (ie electrons or holes)
int readoutSide() const
ReadoutSide.
double m_xEtaStripPatternCentre
geom position on G4 volume, care needed
virtual double width() const
Method to calculate average width of a module.
virtual double stripPitch() const
strip pitch
double stripLength() const
strip length
virtual double deadAreaLength() const
give length of dead area
virtual HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &) const
method for stereo angle computation - returns a vector parallel to the strip being hit
virtual double length() const
Method to calculate length of a module.
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
id -> position
Trk::RectangleBounds m_bounds
surface bound description
virtual SiLocalPosition localPositionOfCluster(const SiCellId &cellId, int clusterSize) const
double m_xPhiAbsSize
size in xPhi/2 for active area
SCT_BarrelModuleSideDesign()
double m_stripLength
strip length
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const
Returns distance to nearest detector active edge +ve = inside -ve = outside.
virtual double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const
distance to the nearest diode in units of pitch, from 0.0 to 0.5, this method should be fast as it is...
virtual const Trk::SurfaceBounds & bounds() const
Return the surface bounds.
virtual bool nearBondGap(const SiLocalPosition &localPosition, double etaTol) const
Test if near bond gap within tolerances.
virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap=true) const
check if the position is in active area
double m_xPhiStripPatternCentre
geom position on G4 volume, care needed
double m_xEtaAbsSizeHigh
active area in xEta
virtual double deadAreaLowerBoundary() const
give lower boundary of dead area
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
virtual double minWidth() const
Method to calculate minimum width of a module.
double m_stripPitch
strip pitch, 80 um in barrel SCT
virtual SiDiodesParameters parameters(const SiCellId &cellId) const
readout or diode id -> position, size
virtual double deadAreaUpperBoundary() const
give upper boundary of dead area
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const
this method returns the ends of the strip
double m_totalDeadLength
includes detector edge and gap between decetors
virtual double maxWidth() const
Method to calculate maximum width of a module.
int diodes() const
number of strips within crystal:
int cells() const
number of readout stips within module side:
int crystals() const
number of crystals within module side:
virtual int strip(int stripId1Dim) const
int shift() const
number of edge strips before first readout strip.
SCT_ModuleSideDesign(const double thickness, const bool phiSymmetric, const bool etaSymmetric, const bool depthSymmetric, const int crystals, const int diodes, const int cells, const int shift, const bool swapStripReadout, InDetDD::CarrierType carrierType, int readoutSide)
Constructor with parameters: local axis corresponding to eta direction local axis corresponding to ph...
Identifier for the strip or pixel cell.
int strip() const
Get strip number. Equivalent to phiIndex().
Class to handle the position of the centre and the width of a diode or a cluster of diodes Version 1....
Class to represent a position in the natural frame of a silicon sensor, for Pixel and SCT For Pixel: ...
double xPhi() const
position along phi direction:
double xEta() const
position along eta direction:
Bounds for a rectangular, planar surface.
Abstract base class for surface bounds to be specified.