ATLAS Offline Software
SCT_ForwardModuleSideGeometry.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_ForwardModuleSideGeometry.h
8 // (c) ATLAS Detector software
10 
11 #ifndef INDETREADOUTGEOMETRY_SCT_FORWARDMODULESIDEGEOMETRY_H
12 #define INDETREADOUTGEOMETRY_SCT_FORWARDMODULESIDEGEOMETRY_H
13 
16 
17 namespace InDetDD {
18 
30 
32  // Public methods:
34  public:
35 
45  SCT_ForwardModuleSideGeometry(const double radius1, const double halfHeight1,
46  const double radius2, const double halfHeight2,
47  const int strips, const double step,
48  const int nCrystals);
49 
51  virtual ~SCT_ForwardModuleSideGeometry() = default;
52 
54  // Const methods:
56 
58  double radius() const;
59 
61  double radius1() const;
62 
64  double halfHeight1() const;
65 
67  double radius2() const;
68 
70  double halfHeight2() const;
71 
73  int strips() const;
74 
76  double step() const;
77  double angularPitch() const;
78 
80  int nCrystals() const;
81 
82  void distanceToDetectorEdge(const SiLocalPosition & localPosition,
83  const SCT_ForwardPolarPosition &polarPos,
84  double & etaDist, double & phiDist) const;
85 
87  bool nearBondGap(const SiLocalPosition & localPosition, double etaTol) const;
88 
90  bool inActiveArea(const SiLocalPosition & chargePosition, bool checkBondGap = true) const;
91 
93  bool inActiveArea(const SCT_ForwardPolarPosition &polarPos) const;
94 
96  double stripPitch(const SCT_ForwardPolarPosition &polarPos) const;
97 
101  double scaledDistanceToNearestDiode(const SCT_ForwardPolarPosition& polarPos) const;
102 
104  double length() const;
105 
107  double width() const;
108 
110  double minWidth() const;
111 
113  double maxWidth() const;
114 
116  double deadAreaLength() const;
117 
119  double deadAreaUpperBoundary() const;
120 
122  double deadAreaLowerBoundary() const;
123 
125  // Private methods:
127  private:
128 
130 
132  // Private data:
134  private:
135  double m_radius;
136  double m_radius1;
137  double m_halfHeight1;
138  double m_radius2;
139  double m_halfHeight2;
140  int m_strips;
141  double m_step;
143  double m_leftSide;
144  double m_rightSide;
145  double m_upperSide1;
146  double m_lowerSide1;
147  double m_upperSide2;
148  double m_lowerSide2;
149 
150  double m_halfLength;
153  double m_tangent;
154 
155 
156 };
157 
159 // Inline methods:
162 {
163  return m_radius1;
164 }
165 
167 {
168  return m_radius;
169 }
170 
172 {
173  return m_halfHeight1;
174 }
175 
177 {
178  return m_radius2;
179 }
180 
182 {
183  return m_halfHeight2;
184 }
185 
187 {
188  return m_strips;
189 }
190 
192 {
193  return m_step;
194 }
195 
197 {
198  return m_step;
199 }
200 
202 {
203  return m_nCrystals;
204 }
205 
206 } // namespace InDetDD
207 
208 #endif // INDETREADOUTGEOMETRY_SCT_FORWARDMODULESIDEGEOMETRY_H
209 
InDetDD::SCT_ForwardModuleSideGeometry::m_halfHeight2
double m_halfHeight2
outer crystal (if present) half height
Definition: SCT_ForwardModuleSideGeometry.h:139
InDetDD::SCT_ForwardModuleSideGeometry::m_upperSide1
double m_upperSide1
upper side of crystal 1
Definition: SCT_ForwardModuleSideGeometry.h:145
InDetDD::SCT_ForwardModuleSideGeometry::m_leftSide
double m_leftSide
left border of module in angle
Definition: SCT_ForwardModuleSideGeometry.h:143
InDetDD::SCT_ForwardModuleSideGeometry::SCT_ForwardModuleSideGeometry
SCT_ForwardModuleSideGeometry()
InDetDD::SCT_ForwardModuleSideGeometry::m_halfLength
double m_halfLength
top = +halfLength, bot = -halfLength
Definition: SCT_ForwardModuleSideGeometry.h:150
InDetDD::SCT_ForwardModuleSideGeometry::halfHeight1
double halfHeight1() const
inner crystal half height:
Definition: SCT_ForwardModuleSideGeometry.h:171
InDetDD::SCT_ForwardModuleSideGeometry::deadAreaUpperBoundary
double deadAreaUpperBoundary() const
give upper boundary of dead area
Definition: SCT_ForwardModuleSideGeometry.cxx:216
InDetDD::SCT_ForwardModuleSideGeometry::minWidth
double minWidth() const
Method to calculate minimum width of a module.
Definition: SCT_ForwardModuleSideGeometry.cxx:187
InDetDD::SCT_ForwardModuleSideGeometry::radius2
double radius2() const
r from outer crystal (if present) center to beam:
Definition: SCT_ForwardModuleSideGeometry.h:176
InDetDD::SCT_ForwardPolarPosition
Definition: SCT_ForwardPolarPosition.h:25
InDetDD::SCT_ForwardModuleSideGeometry::deadAreaLowerBoundary
double deadAreaLowerBoundary() const
give lower boundary of dead area
Definition: SCT_ForwardModuleSideGeometry.cxx:222
InDetDD::SCT_ForwardModuleSideGeometry::m_strips
int m_strips
number of strips (same for both crystals)
Definition: SCT_ForwardModuleSideGeometry.h:140
InDetDD::SCT_ForwardModuleSideGeometry::radius1
double radius1() const
r from inner crystal center to beam:
Definition: SCT_ForwardModuleSideGeometry.h:161
InDetDD::SCT_ForwardModuleSideGeometry::nCrystals
int nCrystals() const
number of crystals per module side
Definition: SCT_ForwardModuleSideGeometry.h:201
InDetDD::SCT_ForwardModuleSideGeometry::m_deadRegionLower
double m_deadRegionLower
relative to center of detector.
Definition: SCT_ForwardModuleSideGeometry.h:152
InDetDD::SCT_ForwardModuleSideGeometry::m_radius
double m_radius
r from nominal element center to beam
Definition: SCT_ForwardModuleSideGeometry.h:135
InDetDD::SCT_ForwardModuleSideGeometry::deadAreaLength
double deadAreaLength() const
give length of dead area
Definition: SCT_ForwardModuleSideGeometry.cxx:204
InDetDD::SiLocalPosition
Definition: SiLocalPosition.h:31
InDetDD::SCT_ForwardModuleSideGeometry::angularPitch
double angularPitch() const
Definition: SCT_ForwardModuleSideGeometry.h:196
InDetDD::SCT_ForwardModuleSideGeometry::distanceToDetectorEdge
void distanceToDetectorEdge(const SiLocalPosition &localPosition, const SCT_ForwardPolarPosition &polarPos, double &etaDist, double &phiDist) const
Definition: SCT_ForwardModuleSideGeometry.cxx:84
InDetDD::SCT_ForwardModuleSideGeometry::m_halfHeight1
double m_halfHeight1
inner crystal half height
Definition: SCT_ForwardModuleSideGeometry.h:137
InDetDD::SCT_ForwardModuleSideGeometry::inActiveArea
bool inActiveArea(const SiLocalPosition &chargePosition, bool checkBondGap=true) const
check if position is in active area
Definition: SCT_ForwardModuleSideGeometry.cxx:110
InDetDD::SCT_ForwardModuleSideGeometry::strips
int strips() const
number of strips (same for both crystals):
Definition: SCT_ForwardModuleSideGeometry.h:186
InDetDD::SCT_ForwardModuleSideGeometry::m_upperSide2
double m_upperSide2
upper side of crystal 2
Definition: SCT_ForwardModuleSideGeometry.h:147
InDetDD::SCT_ForwardModuleSideGeometry::stripPitch
double stripPitch(const SCT_ForwardPolarPosition &polarPos) const
give the strip pitch (dependence on position needed for forward)
Definition: SCT_ForwardModuleSideGeometry.cxx:154
InDetDD::SCT_ForwardModuleSideGeometry::length
double length() const
Method to calculate length of a module.
Definition: SCT_ForwardModuleSideGeometry.cxx:175
SiLocalPosition.h
InDetDD::SCT_ForwardModuleSideGeometry::halfHeight2
double halfHeight2() const
outer crystal (if present) half height:
Definition: SCT_ForwardModuleSideGeometry.h:181
InDetDD::SCT_ForwardModuleSideGeometry::m_lowerSide1
double m_lowerSide1
lower side of crystal 1
Definition: SCT_ForwardModuleSideGeometry.h:146
InDetDD::SCT_ForwardModuleSideGeometry::width
double width() const
Method to calculate average width of a module.
Definition: SCT_ForwardModuleSideGeometry.cxx:181
InDetDD::SCT_ForwardModuleSideGeometry
Definition: SCT_ForwardModuleSideGeometry.h:29
InDetDD::SCT_ForwardModuleSideGeometry::scaledDistanceToNearestDiode
double scaledDistanceToNearestDiode(const SCT_ForwardPolarPosition &polarPos) const
give distance to the nearest diode in units of pitch, from 0.0 to 0.5, this method should be fast as ...
Definition: SCT_ForwardModuleSideGeometry.cxx:163
InDetDD::SCT_ForwardModuleSideGeometry::radius
double radius() const
Nominal center radius of double wafer.
Definition: SCT_ForwardModuleSideGeometry.h:166
InDetDD::SCT_ForwardModuleSideGeometry::m_radius1
double m_radius1
r from inner crystal center to beam
Definition: SCT_ForwardModuleSideGeometry.h:136
InDetDD::SCT_ForwardModuleSideGeometry::m_deadRegionUpper
double m_deadRegionUpper
relative to center of detector.
Definition: SCT_ForwardModuleSideGeometry.h:151
InDetDD::SCT_ForwardModuleSideGeometry::step
double step() const
strip step in angle (same for both crystals):
Definition: SCT_ForwardModuleSideGeometry.h:191
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDetDD::SCT_ForwardModuleSideGeometry::nearBondGap
bool nearBondGap(const SiLocalPosition &localPosition, double etaTol) const
Test if near bond gap within tolerances.
Definition: SCT_ForwardModuleSideGeometry.cxx:99
InDetDD::SCT_ForwardModuleSideGeometry::m_nCrystals
int m_nCrystals
number of crystals per module side
Definition: SCT_ForwardModuleSideGeometry.h:142
InDetDD::SCT_ForwardModuleSideGeometry::m_step
double m_step
strip step in angle (same for both crystals)
Definition: SCT_ForwardModuleSideGeometry.h:141
InDetDD::SCT_ForwardModuleSideGeometry::m_tangent
double m_tangent
tan(theta) at edge = (halfWidth) / (radius)
Definition: SCT_ForwardModuleSideGeometry.h:153
InDetDD::SCT_ForwardModuleSideGeometry::m_lowerSide2
double m_lowerSide2
lower side of crystal 2
Definition: SCT_ForwardModuleSideGeometry.h:148
SCT_ForwardPolarPosition.h
InDetDD::SCT_ForwardModuleSideGeometry::maxWidth
double maxWidth() const
Method to calculate maximum width of a module.
Definition: SCT_ForwardModuleSideGeometry.cxx:193
InDetDD::SCT_ForwardModuleSideGeometry::m_rightSide
double m_rightSide
right border of module in angle
Definition: SCT_ForwardModuleSideGeometry.h:144
InDetDD::SCT_ForwardModuleSideGeometry::m_radius2
double m_radius2
r from outer crystal (if present) center to beam
Definition: SCT_ForwardModuleSideGeometry.h:138
InDetDD::SCT_ForwardModuleSideGeometry::~SCT_ForwardModuleSideGeometry
virtual ~SCT_ForwardModuleSideGeometry()=default
Destructor: