CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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;
61 
75  LocalPoint localPosition(const MeasurementPoint&) const;
76 
83  LocalError localError(float strip, float stripErr2) const;
84 
90  LocalError localError(const MeasurementPoint&, const MeasurementError&) const;
91 
99  float strip(const LocalPoint&) const;
100 
101  // the number of strip span by the segment between the two points..
102  float coveredStrips(const LocalPoint& lp1, const LocalPoint& lp2) const ;
103 
104 
109  float localPitch(const LocalPoint&) const;
110 
122  float stripAngle(float strip) const { return yAxisOrientation() * (phiOfOneEdge() + strip * angularWidth()) ;}
123 
124 
128  int nstrips() const { return theNumberOfStrips; }
129 
133  float stripLength() const { return theDetHeight; }
134 
138  float localStripLength(const LocalPoint& ) const;
139 
140 
141  // =========================================================
142  // Topology interface (not already implemented for
143  // StripTopology interface)
144  // =========================================================
145 
146  MeasurementPoint measurementPosition( const LocalPoint& ) const;
147 
148  MeasurementError measurementError( const LocalPoint&, const LocalError& ) const;
149 
157  int channel( const LocalPoint& ) const;
158 
159 
160  // =========================================================
161  // RadialStripTopology interface itself
162  // =========================================================
163 
167  float angularWidth() const { return theAngularWidth;}
168 
172  float phiPitch(void) const { return angularWidth(); }
173 
177  float detHeight() const { return theDetHeight;}
178 
182  float yExtentOfStripPlane() const { return theDetHeight; } // same as detHeight()
183 
189  float centreToIntersection() const { return theCentreToIntersection; }
190 
196  float originToIntersection() const { return (theCentreToIntersection - yCentre); }
197 
210  float phiOfOneEdge() const { return thePhiOfOneEdge; }
211 
216  float xOfStrip(int strip, float y) const;
217 
221  int nearestStrip(const LocalPoint&) const;
222 
226  float yAxisOrientation() const { return theYAxisOrientation; }
227 
231  float yCentreOfStripPlane() const { return yCentre; }
232 
236  float yDistanceToIntersection( float y ) const;
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 
float yAxisOrientation() const
float stripLength() const
int nstrips() const
float phiOfOneEdge() const
float detHeight() const
float stripAngle(float strip) const
float angularWidth() const
float originToIntersection() const
float yCentreOfStripPlane() const
float centreToIntersection() const
float phiPitch(void) const
float yExtentOfStripPlane() const
tuple dh
Definition: cuy.py:353
Unlimited (trivial) bounds.