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:
30 
45  TkRadialStripTopology( int ns, float aw, float dh, float r, int yAx = 1, float yMid = 0.);
46 
51 
52  // =========================================================
53  // StripTopology interface - implement pure methods
54  // =========================================================
55 
60  LocalPoint localPosition(float strip) const override;
61 
75  LocalPoint localPosition(const MeasurementPoint&) const override;
76 
83  LocalError localError(float strip, float stripErr2) const override;
84 
90  LocalError localError(const MeasurementPoint&, const MeasurementError&) const override;
91 
99  float strip(const LocalPoint&) const override;
100 
101  // the number of strip span by the segment between the two points..
102  float coveredStrips(const LocalPoint& lp1, const LocalPoint& lp2) const override ;
103 
104 
109  float localPitch(const LocalPoint&) const override;
110 
122  float stripAngle(float strip) const override { return yAxisOrientation() * (phiOfOneEdge() + strip * angularWidth()) ;}
123 
124 
128  int nstrips() const override { return theNumberOfStrips; }
129 
133  float stripLength() const override { return theDetHeight; }
134 
138  float localStripLength(const LocalPoint& ) const override;
139 
140 
141  // =========================================================
142  // Topology interface (not already implemented for
143  // StripTopology interface)
144  // =========================================================
145 
146  MeasurementPoint measurementPosition( const LocalPoint& ) const override;
147 
148  MeasurementError measurementError( const LocalPoint&, const LocalError& ) const override;
149 
157  int channel( const LocalPoint& ) const override;
158 
159 
160  // =========================================================
161  // RadialStripTopology interface itself
162  // =========================================================
163 
167  float angularWidth() const override { return theAngularWidth;}
168 
172  float phiPitch(void) const override { return angularWidth(); }
173 
177  float detHeight() const override { return theDetHeight;}
178 
182  float yExtentOfStripPlane() const override { return theDetHeight; } // same as detHeight()
183 
189  float centreToIntersection() const override { return theCentreToIntersection; }
190 
196  float originToIntersection() const override { return (theCentreToIntersection - yCentre); }
197 
210  float phiOfOneEdge() const override { return thePhiOfOneEdge; }
211 
216  float xOfStrip(int strip, float y) const override;
217 
221  int nearestStrip(const LocalPoint&) const override;
222 
226  float yAxisOrientation() const override { return theYAxisOrientation; }
227 
231  float yCentreOfStripPlane() const override { return yCentre; }
232 
236  float yDistanceToIntersection( float y ) const override;
237 
238  private:
239 
240  int theNumberOfStrips; // total no. of strips in plane of strips
241  float theAngularWidth; // angle subtended by each strip = phi pitch
242  float theAWidthInverse; // inverse of above
243  float theTanAW; // its tangent
244  float theDetHeight; // length of long symmetry axis = twice the apothem of the enclosing trapezoid
245  float theCentreToIntersection; // distance centre of detector face to intersection of edge strips (projected)
246  float thePhiOfOneEdge; // local 'phi' of one edge of plane of strips (I choose it negative!)
247  float theTanOfOneEdge; // the positive tangent of the above...
248  float theYAxisOrientation; // 1 means y axis going from smaller to larger side, -1 means opposite direction
249  float yCentre; // Non-zero if offset in local y between midpoint of detector (strip plane) extent and local origin.
250  double theRadialSigma; // radial sigma^2( uniform prob density along strip)
251 
252 };
253 
254 #endif
255 
256 
int nstrips() const override
float yAxisOrientation() const override
float strip(const LocalPoint &) const override
float yDistanceToIntersection(float y) const override
TkRadialStripTopology(int ns, float aw, float dh, float r, int yAx=1, float yMid=0.)
float localStripLength(const LocalPoint &) const override
float localPitch(const LocalPoint &) const override
float stripAngle(float strip) const override
float angularWidth() const override
float coveredStrips(const LocalPoint &lp1, const LocalPoint &lp2) const override
LocalPoint localPosition(float strip) const override
int nearestStrip(const LocalPoint &) const override
LocalError localError(float strip, float stripErr2) const override
float centreToIntersection() const override
float phiPitch(void) const override
float yCentreOfStripPlane() const override
float stripLength() const override
MeasurementPoint measurementPosition(const LocalPoint &) const override
float phiOfOneEdge() const override
float yExtentOfStripPlane() const override
float originToIntersection() const override
float xOfStrip(int strip, float y) const override
MeasurementError measurementError(const LocalPoint &, const LocalError &) const override
float detHeight() const override
int channel(const LocalPoint &) const override
dh
Definition: cuy.py:354