ATLAS Offline Software
Loading...
Searching...
No Matches
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
17namespace InDetDD {
18
28
30
32 // Public methods:
34 public:
35
44
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;
138 double m_radius2;
141 double m_step;
143 double m_leftSide;
144 double m_rightSide;
149
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
double deadAreaLength() const
give length of dead area
double m_step
strip step in angle (same for both crystals)
double m_radius2
r from outer crystal (if present) center to beam
double maxWidth() const
Method to calculate maximum width of a module.
bool nearBondGap(const SiLocalPosition &localPosition, double etaTol) const
Test if near bond gap within tolerances.
double m_halfHeight2
outer crystal (if present) half height
double halfHeight1() const
inner crystal half height:
double minWidth() const
Method to calculate minimum width of a module.
double length() const
Method to calculate length of a module.
double step() const
strip step in angle (same for both crystals):
bool inActiveArea(const SiLocalPosition &chargePosition, bool checkBondGap=true) const
check if position is in active area
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 ...
double m_tangent
tan(theta) at edge = (halfWidth) / (radius)
double m_leftSide
left border of module in angle
double m_halfLength
top = +halfLength, bot = -halfLength
double radius2() const
r from outer crystal (if present) center to beam:
double m_deadRegionUpper
relative to center of detector.
double deadAreaUpperBoundary() const
give upper boundary of dead area
int strips() const
number of strips (same for both crystals):
double radius() const
Nominal center radius of double wafer.
double width() const
Method to calculate average width of a module.
virtual ~SCT_ForwardModuleSideGeometry()=default
Destructor:
double radius1() const
r from inner crystal center to beam:
int nCrystals() const
number of crystals per module side
double halfHeight2() const
outer crystal (if present) half height:
SCT_ForwardModuleSideGeometry(const double radius1, const double halfHeight1, const double radius2, const double halfHeight2, const int strips, const double step, const int nCrystals)
Constructor with parameters: r from inner crystal center to beam inner crystal half height r from out...
double m_radius1
r from inner crystal center to beam
double deadAreaLowerBoundary() const
give lower boundary of dead area
double m_deadRegionLower
relative to center of detector.
double m_rightSide
right border of module in angle
double m_radius
r from nominal element center to beam
double stripPitch(const SCT_ForwardPolarPosition &polarPos) const
give the strip pitch (dependence on position needed for forward)
void distanceToDetectorEdge(const SiLocalPosition &localPosition, const SCT_ForwardPolarPosition &polarPos, double &etaDist, double &phiDist) const
int m_strips
number of strips (same for both crystals)
int m_nCrystals
number of crystals per module side
2D position in polar coordinates for the polar frame in the SCT endcaps.
Class to represent a position in the natural frame of a silicon sensor, for Pixel and SCT For Pixel: ...
Message Stream Member.