ATLAS Offline Software
Loading...
Searching...
No Matches
SCT_ForwardModuleSideDesign.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_ForwardModuleSideDesign.h
8// (c) ATLAS Detector software
10
11#ifndef INDETREADOUTGEOMETRY_SCT_FORWARDMODULESIDEDESIGN_H
12#define INDETREADOUTGEOMETRY_SCT_FORWARDMODULESIDEDESIGN_H
13
14// Base class
16
17//Data member classes
21
22namespace Trk{
23 class SurfaceBounds;
24}
25
26
27namespace InDetDD {
28
38
40
41 public:
42
60 const int crystals,const int diodes,
61 const int cells,const int shift,
62 const bool swapStripReadout,
64 const double radius1,const double halfHeight1,
65 const double radius2,const double halfHeight2,
66 const double step,
67 const double etaCenter,const double phiCenter,
68 int readoutSide = -1);
69
71 virtual ~SCT_ForwardModuleSideDesign() = default;
72
74 // Const methods:
76 double sinStripAngleReco(double phiCoord, double etaCoord) const;
77
81 virtual void distanceToDetectorEdge(const SiLocalPosition & localPosition,
82 double & etaDist, double & phiDist) const;
83
85 virtual bool nearBondGap(const SiLocalPosition & localPosition, double etaTol) const;
86
88 virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap = true) const;
89
93 virtual double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const;
94
96 virtual double stripPitch(const SiLocalPosition & chargePos) const;
97
99 virtual double stripPitch() const;
100
102 virtual SiDiodesParameters parameters(const SiCellId & cellId) const;
103 virtual SiLocalPosition localPositionOfCell(const SiCellId & cellId) const;
104 virtual SiLocalPosition localPositionOfCluster(const SiCellId & cellId, int clusterSize) const;
105
107 virtual SiCellId cellIdOfPosition(const SiLocalPosition & localPos) const;
108
110 virtual std::pair<SiLocalPosition,SiLocalPosition> endsOfStrip(const SiLocalPosition &position) const;
111
113 virtual HepGeom::Vector3D<double> phiMeasureSegment(const SiLocalPosition &position) const;
114
116 double radius() const;
117
119 virtual double length() const;
120
122 virtual double width() const;
123
125 virtual double minWidth() const;
126
128 virtual double maxWidth() const;
129
131 virtual double deadAreaLength() const;
132
134 virtual double deadAreaUpperBoundary() const;
135
137 virtual double deadAreaLowerBoundary() const;
138
140 virtual double phiPitch() const;
141
143 virtual double phiPitch(const SiLocalPosition & localPosition) const;
144
146 virtual double etaPitch() const;
147
149 double angularPitch() const;
150
152 virtual DetectorShape shape() const;
153
155 virtual const Trk::SurfaceBounds & bounds() const;
156
157 private:
158
161
164
167
169 // Private data:
171
172 private:
176 };
177
178
180 // Inline methods:
182
183
185 {
186 return m_geometry.radius();
187 }
188
189 // Same as stripPitch
190 inline double SCT_ForwardModuleSideDesign::phiPitch(const SiLocalPosition & localPosition) const
191 {
192 return stripPitch(localPosition);
193 }
194
195 // Same as stripPitch
197 {
198 return stripPitch();
199 }
200
201 // Same as active length
203 {
204 return length();
205 }
206
207 // Same as active length
209 {
210 return m_geometry.angularPitch();
211 }
212
213} // namespace InDetDD
214
215#endif // INDETREADOUTGEOMETRY_SCT_FORWARDMODULESIDEDESIGN_H
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.
Class that connect cartesian and pokar coordinates.
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
virtual SiDiodesParameters parameters(const SiCellId &cellId) const
readout or diode id -> position, size
virtual double stripPitch() const
give the strip pitch (For Forward returns pitch at center)
virtual double length() const
Method to calculate length of a module.
virtual double deadAreaLength() const
give length of dead area
virtual const Trk::SurfaceBounds & bounds() const
Element boundary.
virtual double deadAreaLowerBoundary() const
give lower boundary of dead area
SCT_ForwardModuleSideGeometry m_geometry
geometry of module side
virtual HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &position) const
method for stereo angle computation - returns a vector parallel to the strip being hit
virtual double etaPitch() const
Pitch in eta direction.
virtual DetectorShape shape() const
Shape of element.
SCT_ForwardModuleSideDesign()
Forbidden default constructor.
virtual double deadAreaUpperBoundary() const
give upper boundary of dead area
virtual SiLocalPosition localPositionOfCluster(const SiCellId &cellId, int clusterSize) const
SCT_ForwardFrameTransformation m_frame
polar / cartesian frame transformation
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const
Returns distance to nearest detector active edge +ve = inside -ve = outside.
virtual bool nearBondGap(const SiLocalPosition &localPosition, double etaTol) const
Test if near bond gap within tolerances.
SCT_ForwardModuleSideDesign & operator=(const SCT_ForwardModuleSideDesign &design)
Assignment operator:
double radius() const
Nominal center radius of double wafer.
SCT_ForwardModuleSideDesign(const SCT_ForwardModuleSideDesign &design)
Copy constructor:
virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap=true) const
check if the position is in active area
virtual ~SCT_ForwardModuleSideDesign()=default
Destructor:
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const
this method returns the ends of the strip
virtual double maxWidth() const
Method to calculate maximum width of a module.
SCT_ForwardModuleSideDesign(const double thickness, const int crystals, const int diodes, const int cells, const int shift, const bool swapStripReadout, InDetDD::CarrierType carrierType, const double radius1, const double halfHeight1, const double radius2, const double halfHeight2, const double step, const double etaCenter, const double phiCenter, int readoutSide=-1)
Constructor with parameters: local axis corresponding to eta direction local axis corresponding to ph...
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
id -> position
double sinStripAngleReco(double phiCoord, double etaCoord) const
Give strip angle in the reco frame.
virtual double minWidth() const
Method to calculate minimum width of a module.
virtual 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 ...
virtual double width() const
Method to calculate average width of a module.
virtual double phiPitch() const
Pitch in phi direction.
Geometry descriptor holding strig number, crystel inner and outer half length & radius.
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: ...
Abstract base class for surface bounds to be specified.
Bounds for a trapezoidal, planar Surface.
Message Stream Member.
Ensure that the ATLAS eigen extensions are properly loaded.