|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #include "CLHEP/Units/SystemOfUnits.h"
14 #include "CLHEP/Geometry/Vector3D.h"
26 const bool swapStripReadout,
28 const double stripPitch,
29 const double stripLength,
30 const double xEtaStripPatternCentre,
31 const double xPhiStripPatternCentre,
32 const double totalDeadLength,
36 crystals,diodes,
cells,shift,swapStripReadout,carrierType,readoutSide),
37 m_stripPitch(stripPitch),
38 m_stripLength(stripLength),
39 m_xEtaStripPatternCentre(xEtaStripPatternCentre),
40 m_xPhiStripPatternCentre(xPhiStripPatternCentre),
41 m_totalDeadLength(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);
virtual SiDiodesParameters parameters(const SiCellId &cellId) const
readout or diode id -> position, size
Trk::RectangleBounds m_bounds
surface bound description
virtual double width() const
Method to calculate average width of a module.
virtual double maxWidth() const
Method to calculate maximum width of a module.
virtual int strip(int stripId1Dim) const
virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap=true) const
check if the position is in active area
virtual double minWidth() const
Method to calculate minimum width of a module.
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const
this method returns the ends of the strip
int crystals() const
number of crystals within module side:
int shift() const
number of edge strips before first readout strip.
int strip() const
Get strip number. Equivalent to phiIndex().
double m_stripLength
strip length
int cells() const
number of readout stips within module side:
virtual HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &) const
method for stereo angle computation - returns a vector parallel to the strip being hit
virtual double deadAreaLowerBoundary() const
give lower boundary of dead area
double xPhi() const
position along phi direction:
double m_xEtaStripPatternCentre
geom position on G4 volume, care needed
double m_xPhiStripPatternCentre
geom position on G4 volume, care needed
virtual double deadAreaLength() const
give length of dead area
double xEta() const
position along eta direction:
int diodes() const
number of strips within crystal:
double m_xEtaAbsSizeHigh
active area in xEta
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 SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const
Returns distance to nearest detector active edge +ve = inside -ve = outside.
virtual double deadAreaUpperBoundary() const
give upper boundary of dead area
virtual bool nearBondGap(const SiLocalPosition &localPosition, double etaTol) const
Test if near bond gap within tolerances.
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
id -> position
double m_xPhiAbsSize
size in xPhi/2 for active area
double m_totalDeadLength
includes detector edge and gap between decetors
virtual SiLocalPosition localPositionOfCluster(const SiCellId &cellId, int clusterSize) const
Axis etaAxis() const
local axis corresponding to eta direction:
virtual const Trk::SurfaceBounds & bounds() const
Return the surface bounds.
SCT_BarrelModuleSideDesign()
virtual double length() const
Method to calculate length of a module.
double m_stripPitch
strip pitch, 80 um in barrel SCT
Muon::NSW_PadTriggerSegment segment(const NSWL1::PadTrigger &data)