CMS 3D CMS Logo

TkRadialStripTopology.h
Go to the documentation of this file.
1 #ifndef _TkRADIAL_STRIP_TOPOLOGY_H_
2 #define _TkRADIAL_STRIP_TOPOLOGY_H_
3 
5 
29 public:
44  TkRadialStripTopology(int ns, float aw, float dh, float r, int yAx = 1, float yMid = 0.);
45 
49  ~TkRadialStripTopology() override {}
50 
51  // =========================================================
52  // StripTopology interface - implement pure methods
53  // =========================================================
54 
59  LocalPoint localPosition(float strip) const override;
60 
74  LocalPoint localPosition(const MeasurementPoint&) const override;
75 
82  LocalError localError(float strip, float stripErr2) const override;
83 
89  LocalError localError(const MeasurementPoint&, const MeasurementError&) const override;
90 
98  float strip(const LocalPoint&) const override;
99 
100  // the number of strip span by the segment between the two points..
101  float coveredStrips(const LocalPoint& lp1, const LocalPoint& lp2) const override;
102 
107  float localPitch(const LocalPoint&) const override;
108 
120  float stripAngle(float strip) const override {
121  return yAxisOrientation() * (phiOfOneEdge() + strip * angularWidth());
122  }
123 
127  int nstrips() const override { return theNumberOfStrips; }
128 
132  float stripLength() const override { return theDetHeight; }
133 
137  float localStripLength(const LocalPoint&) const override;
138 
139  // =========================================================
140  // Topology interface (not already implemented for
141  // StripTopology interface)
142  // =========================================================
143 
144  MeasurementPoint measurementPosition(const LocalPoint&) const override;
145 
146  MeasurementError measurementError(const LocalPoint&, const LocalError&) const override;
147 
155  int channel(const LocalPoint&) const override;
156 
157  // =========================================================
158  // RadialStripTopology interface itself
159  // =========================================================
160 
164  float angularWidth() const override { return theAngularWidth; }
165 
169  float phiPitch(void) const override { return angularWidth(); }
170 
174  float detHeight() const override { return theDetHeight; }
175 
179  float yExtentOfStripPlane() const override { return theDetHeight; } // same as detHeight()
180 
186  float centreToIntersection() const override { return theCentreToIntersection; }
187 
193  float originToIntersection() const override { return (theCentreToIntersection - yCentre); }
194 
207  float phiOfOneEdge() const override { return thePhiOfOneEdge; }
208 
213  float xOfStrip(int strip, float y) const override;
214 
218  int nearestStrip(const LocalPoint&) const override;
219 
223  float yAxisOrientation() const override { return theYAxisOrientation; }
224 
228  float yCentreOfStripPlane() const override { return yCentre; }
229 
233  float yDistanceToIntersection(float y) const override;
234 
235 private:
236  int theNumberOfStrips; // total no. of strips in plane of strips
237  float theAngularWidth; // angle subtended by each strip = phi pitch
238  float theAWidthInverse; // inverse of above
239  float theTanAW; // its tangent
240  float theDetHeight; // length of long symmetry axis = twice the apothem of the enclosing trapezoid
241  float theCentreToIntersection; // distance centre of detector face to intersection of edge strips (projected)
242  float thePhiOfOneEdge; // local 'phi' of one edge of plane of strips (I choose it negative!)
243  float theTanOfOneEdge; // the positive tangent of the above...
244  float theYAxisOrientation; // 1 means y axis going from smaller to larger side, -1 means opposite direction
245  float yCentre; // Non-zero if offset in local y between midpoint of detector (strip plane) extent and local origin.
246  double theRadialSigma; // radial sigma^2( uniform prob density along strip)
247 };
248 
249 #endif
RadialStripTopology
Definition: RadialStripTopology.h:28
TkRadialStripTopology::yExtentOfStripPlane
float yExtentOfStripPlane() const override
Definition: TkRadialStripTopology.h:179
Point2DBase
Definition: Point2DBase.h:9
DDAxes::y
TkRadialStripTopology::theNumberOfStrips
int theNumberOfStrips
Definition: TkRadialStripTopology.h:236
TkRadialStripTopology::localError
LocalError localError(float strip, float stripErr2) const override
Definition: TkRadialStripTopology.cc:166
TkRadialStripTopology::localPitch
float localPitch(const LocalPoint &) const override
Definition: TkRadialStripTopology.cc:214
TkRadialStripTopology::measurementError
MeasurementError measurementError(const LocalPoint &, const LocalError &) const override
Definition: TkRadialStripTopology.cc:198
TkRadialStripTopology::coveredStrips
float coveredStrips(const LocalPoint &lp1, const LocalPoint &lp2) const override
Definition: TkRadialStripTopology.cc:119
RadialStripTopology.h
TkRadialStripTopology
Definition: TkRadialStripTopology.h:28
TkRadialStripTopology::phiPitch
float phiPitch(void) const override
Definition: TkRadialStripTopology.h:169
TkRadialStripTopology::yCentreOfStripPlane
float yCentreOfStripPlane() const override
Definition: TkRadialStripTopology.h:228
TkRadialStripTopology::theCentreToIntersection
float theCentreToIntersection
Definition: TkRadialStripTopology.h:241
TkRadialStripTopology::thePhiOfOneEdge
float thePhiOfOneEdge
Definition: TkRadialStripTopology.h:242
TkRadialStripTopology::detHeight
float detHeight() const override
Definition: TkRadialStripTopology.h:174
TkRadialStripTopology::nearestStrip
int nearestStrip(const LocalPoint &) const override
Definition: TkRadialStripTopology.cc:96
TkRadialStripTopology::centreToIntersection
float centreToIntersection() const override
Definition: TkRadialStripTopology.h:186
TkRadialStripTopology::theTanOfOneEdge
float theTanOfOneEdge
Definition: TkRadialStripTopology.h:243
TkRadialStripTopology::localStripLength
float localStripLength(const LocalPoint &) const override
Definition: TkRadialStripTopology.cc:104
MeasurementError
Definition: MeasurementError.h:8
TkRadialStripTopology::theAWidthInverse
float theAWidthInverse
Definition: TkRadialStripTopology.h:238
Point3DBase< float, LocalTag >
TkRadialStripTopology::measurementPosition
MeasurementPoint measurementPosition(const LocalPoint &) const override
Definition: TkRadialStripTopology.cc:155
TkRadialStripTopology::theYAxisOrientation
float theYAxisOrientation
Definition: TkRadialStripTopology.h:244
LocalError
Definition: LocalError.h:12
TkRadialStripTopology::yAxisOrientation
float yAxisOrientation() const override
Definition: TkRadialStripTopology.h:223
TkRadialStripTopology::yDistanceToIntersection
float yDistanceToIntersection(float y) const override
Definition: TkRadialStripTopology.cc:100
TkRadialStripTopology::stripAngle
float stripAngle(float strip) const override
Definition: TkRadialStripTopology.h:120
alignCSCRings.r
r
Definition: alignCSCRings.py:93
TkRadialStripTopology::theDetHeight
float theDetHeight
Definition: TkRadialStripTopology.h:240
TkRadialStripTopology::TkRadialStripTopology
TkRadialStripTopology(int ns, float aw, float dh, float r, int yAx=1, float yMid=0.)
Definition: TkRadialStripTopology.cc:69
TkRadialStripTopology::theTanAW
float theTanAW
Definition: TkRadialStripTopology.h:239
TkRadialStripTopology::channel
int channel(const LocalPoint &) const override
Definition: TkRadialStripTopology.cc:92
TkRadialStripTopology::phiOfOneEdge
float phiOfOneEdge() const override
Definition: TkRadialStripTopology.h:207
TkRadialStripTopology::nstrips
int nstrips() const override
Definition: TkRadialStripTopology.h:127
TkRadialStripTopology::xOfStrip
float xOfStrip(int strip, float y) const override
Definition: TkRadialStripTopology.cc:108
TkRadialStripTopology::yCentre
float yCentre
Definition: TkRadialStripTopology.h:245
TkRadialStripTopology::localPosition
LocalPoint localPosition(float strip) const override
Definition: TkRadialStripTopology.cc:144
TkRadialStripTopology::theAngularWidth
float theAngularWidth
Definition: TkRadialStripTopology.h:237
TkRadialStripTopology::stripLength
float stripLength() const override
Definition: TkRadialStripTopology.h:132
TkRadialStripTopology::angularWidth
float angularWidth() const override
Definition: TkRadialStripTopology.h:164
cuy.dh
dh
Definition: cuy.py:354
TkRadialStripTopology::theRadialSigma
double theRadialSigma
Definition: TkRadialStripTopology.h:246
TkRadialStripTopology::originToIntersection
float originToIntersection() const override
Definition: TkRadialStripTopology.h:193
TkRadialStripTopology::strip
float strip(const LocalPoint &) const override
Definition: TkRadialStripTopology.cc:112
TkRadialStripTopology::~TkRadialStripTopology
~TkRadialStripTopology() override
Definition: TkRadialStripTopology.h:49