ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_BarrelModuleSideDesign.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
6// SCT_BarrelModuleSideDesign.h
8// (c) ATLAS Detector software
10
11#ifndef INDETREADOUTGEOMETRY_SCT_BARRELMODULESIDEDESIGN_H
12#define INDETREADOUTGEOMETRY_SCT_BARRELMODULESIDEDESIGN_H
13
14// Base class
17
18namespace Trk{
19 class SurfaceBounds;
20}
21
22namespace InDetDD {
23
25
33
35
37 // Public methods:
39 public:
40
43
51 const int crystals,
52 const int diodes,
53 const int cells,
54 const int shift,
55 const bool swapStripReadout,
57 const double stripPitch,
58 const double stripLength,
59 const double xEtaStripPatternCentre,
60 const double xPhiStripPatternCentre,
61 const double totalDeadLength,
62 int readoutSide = -1);
63
65 virtual ~SCT_BarrelModuleSideDesign() = default;
66
69
71 // Const methods:
73
75 virtual double stripPitch() const;
76
78 double stripLength() const;
79
81 double etaStripPatternCentre() const;
82
84 double phiStripPatternCentre() const;
85
89 virtual void distanceToDetectorEdge(const SiLocalPosition & localPosition, double & etaDist, double & phiDist) const;
90
92 virtual bool nearBondGap(const SiLocalPosition & localPosition, double etaTol) const;
93
95 virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap = true) const;
96
101 virtual double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const;
102
104 virtual double stripPitch(const SiLocalPosition & chargePos) const;
105
107 virtual SiDiodesParameters parameters(const SiCellId & cellId) const;
108 virtual SiLocalPosition localPositionOfCell(const SiCellId & cellId) const;
109 virtual SiLocalPosition localPositionOfCluster(const SiCellId & cellId, int clusterSize) const;
110
112 virtual SiCellId cellIdOfPosition(const SiLocalPosition & localPos) const;
113
115 virtual std::pair<SiLocalPosition,SiLocalPosition> endsOfStrip(const SiLocalPosition &position) const;
116
118 virtual HepGeom::Vector3D<double> phiMeasureSegment(const SiLocalPosition & ) const;
119
121 virtual double length() const;
122
124 virtual double width() const;
125
127 virtual double minWidth() const;
128
130 virtual double maxWidth() const;
131
133 virtual double deadAreaLength() const;
134
136 virtual double deadAreaUpperBoundary() const;
137
139 virtual double deadAreaLowerBoundary() const;
140
142 virtual double phiPitch() const;
143
144 /* Pitch in phi direction */
145 virtual double phiPitch(const SiLocalPosition & localPosition) const;
146
148 virtual double etaPitch() const;
149
151 virtual const Trk::SurfaceBounds & bounds() const;
152
153 private:
154
156
158 // Private data:
160
161 private:
170 };
171
173 // Inline methods:
176 {
177 return m_stripPitch;
178 }
179
180 // this method is non trivial in forward, but in barrel it can
181 // be an inline function
183 {
184 return m_stripPitch;
185 }
186
187
189 {
190 return m_stripLength;
191 }
192
197
202
203 // Same as stripPitch
205 {
206 return m_stripPitch;
207 }
208
209 // Same as stripPitch
211 {
212 return m_stripPitch;
213 }
214
215 // Same as active length
217 {
218 return length();
219 }
220
221} // namespace InDetDD
222
223#endif // INDETREADOUTGEOMETRY_SCT_BARRELMODULESIDEDESIGN_H
224
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
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(const SCT_BarrelModuleSideDesign &design)
Copy constructor:
virtual double etaPitch() const
Pitch in eta direction.
SCT_BarrelModuleSideDesign & operator=(const SCT_BarrelModuleSideDesign &design)
Assignment operator:
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 ~SCT_BarrelModuleSideDesign()=default
Destructor:
double phiStripPatternCentre() const
centre of the strip pattern in phi
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
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 etaStripPatternCentre() const
centre of the strip pattern in eta
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
virtual double phiPitch() const
Pitch in phi direction.
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:
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.
Definition SiCellId.h:29
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: ...
Bounds for a rectangular, planar surface.
Abstract base class for surface bounds to be specified.
Message Stream Member.
Ensure that the ATLAS eigen extensions are properly loaded.