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;
123 
127  int nstrips() const { return theNumberOfStrips; }
128 
132  float stripLength() const { return theDetHeight; }
133 
137  float localStripLength(const LocalPoint& ) const;
138 
139 
140  // =========================================================
141  // Topology interface (not already implemented for
142  // StripTopology interface)
143  // =========================================================
144 
145  MeasurementPoint measurementPosition( const LocalPoint& ) const;
146 
147  MeasurementError measurementError( const LocalPoint&, const LocalError& ) const;
148 
156  int channel( const LocalPoint& ) const;
157 
158 
159  // =========================================================
160  // RadialStripTopology interface itself
161  // =========================================================
162 
166  float angularWidth() const { return theAngularWidth;}
167 
171  float phiPitch(void) const { return angularWidth(); }
172 
176  float detHeight() const { return theDetHeight;}
177 
181  float yExtentOfStripPlane() const { return theDetHeight; } // same as detHeight()
182 
188  float centreToIntersection() const { return theCentreToIntersection; }
189 
195  float originToIntersection() const { return (theCentreToIntersection - yCentre); }
196 
209  float phiOfOneEdge() const { return thePhiOfOneEdge; }
210 
215  float xOfStrip(int strip, float y) const;
216 
220  int nearestStrip(const LocalPoint&) const;
221 
225  float yAxisOrientation() const { return theYAxisOrientation; }
226 
230  float yCentreOfStripPlane() const { return yCentre; }
231 
235  float yDistanceToIntersection( float y ) const;
236 
237  private:
238 
239  int theNumberOfStrips; // total no. of strips in plane of strips
240  float theAngularWidth; // angle subtended by each strip = phi pitch
241  float theAWidthInverse; // inverse of above
242  float theTanAW; // its tangent
243  float theDetHeight; // length of long symmetry axis = twice the apothem of the enclosing trapezoid
244  float theCentreToIntersection; // distance centre of detector face to intersection of edge strips (projected)
245  float thePhiOfOneEdge; // local 'phi' of one edge of plane of strips (I choose it negative!)
246  float theTanOfOneEdge; // the positive tangent of the above...
247  float theYAxisOrientation; // 1 means y axis going from smaller to larger side, -1 means opposite direction
248  float yCentre; // Non-zero if offset in local y between midpoint of detector (strip plane) extent and local origin.
249 };
250 
251 #endif
252 
253 
float yAxisOrientation() const
float stripLength() const
int nstrips() const
float phiOfOneEdge() const
float detHeight() 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.