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 
76 
83  LocalError localError(float strip, float stripErr2) const;
84 
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 
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 
190 
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 stripAngle(float strip) const
float originToIntersection() const
float centreToIntersection() const
float strip(const LocalPoint &) const
float phiPitch(void) const
#define GCC11_FINAL
float localStripLength(const LocalPoint &) const
TkRadialStripTopology(int ns, float aw, float dh, float r, int yAx=1, float yMid=0.)
float yDistanceToIntersection(float y) const
int channel(const LocalPoint &) const
float yExtentOfStripPlane() const
MeasurementPoint measurementPosition(const LocalPoint &) const
float xOfStrip(int strip, float y) const
int nearestStrip(const LocalPoint &) const
float localPitch(const LocalPoint &) const
LocalError localError(float strip, float stripErr2) const
LocalPoint localPosition(float strip) const
MeasurementError measurementError(const LocalPoint &, const LocalError &) const
float yCentreOfStripPlane() const
float coveredStrips(const LocalPoint &lp1, const LocalPoint &lp2) const
tuple dh
Definition: cuy.py:353