CMS 3D CMS Logo

CSCRadialStripTopology.h
Go to the documentation of this file.
1 #ifndef _CSCRADIAL_STRIP_TOPOLOGY_H_
2 #define _CSCRADIAL_STRIP_TOPOLOGY_H_
3 
5 
29  public:
30 
45  CSCRadialStripTopology( int ns, float aw, float dh, float r, float yAx = 1.f, float yMid = 0.);
46 
51 
52  // =========================================================
53  // StripTopology interface - implement pure virtual 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 
106  float localPitch(const LocalPoint&) const override;
107 
119  float stripAngle(float strip) const override;
120 
124  int nstrips() const override { return theNumberOfStrips; }
125 
129  float stripLength() const override { return theDetHeight; }
130 
134  float localStripLength(const LocalPoint& ) const override;
135 
136 
137  // =========================================================
138  // Topology interface (not already implemented for
139  // StripTopology interface)
140  // =========================================================
141 
142  MeasurementPoint measurementPosition( const LocalPoint& ) const override;
143 
144  MeasurementError measurementError( const LocalPoint&, const LocalError& ) const override;
145 
153  int channel( const LocalPoint& ) const override;
154 
155 
156  // =========================================================
157  // RadialStripTopology interface itself
158  // =========================================================
159 
163  float angularWidth() const override { return theAngularWidth;}
164 
168  float phiPitch(void) const override { return angularWidth(); }
169 
173  float detHeight() const override { return theDetHeight;}
174 
178  float yExtentOfStripPlane() const override { return theDetHeight; } // same as detHeight()
179 
185  float centreToIntersection() const override { return theCentreToIntersection; }
186 
192  float originToIntersection() const override { return (theCentreToIntersection - yCentre); }
193 
206  float phiOfOneEdge() const override { return thePhiOfOneEdge; }
207 
212  float xOfStrip(int strip, float y) const override;
213 
217  int nearestStrip(const LocalPoint&) const override;
218 
222  float yAxisOrientation() const override { return theYAxisOrientation; }
223 
227  float yCentreOfStripPlane() const override { return yCentre; }
228 
232  float yDistanceToIntersection( float y ) const override;
233 
234  friend std::ostream & operator<<(std::ostream&, const RadialStripTopology& );
235 
236  private:
237 
238  int theNumberOfStrips; // total no. of strips in plane of strips
239  float theAngularWidth; // angle subtended by each strip = phi pitch
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 theYAxisOrientation; // 1 means y axis going from smaller to larger side, -1 means opposite direction
244  float yCentre; // Non-zero if offset in local y between midpoint of detector (strip plane) extent and local origin.
245 };
246 
247 #endif
248 
249 
float detHeight() const override
float centreToIntersection() const override
float stripLength() const override
float phiPitch(void) const override
CSCRadialStripTopology(int ns, float aw, float dh, float r, float yAx=1.f, float yMid=0.)
float yCentreOfStripPlane() const override
float stripAngle(float strip) const override
float phiOfOneEdge() const override
double f[11][100]
MeasurementPoint measurementPosition(const LocalPoint &) const override
float originToIntersection() const override
int nstrips() const override
float yExtentOfStripPlane() const override
int channel(const LocalPoint &) const override
MeasurementError measurementError(const LocalPoint &, const LocalError &) const override
float yAxisOrientation() const override
float localStripLength(const LocalPoint &) const override
float xOfStrip(int strip, float y) const override
friend std::ostream & operator<<(std::ostream &, const RadialStripTopology &)
float angularWidth() const override
float yDistanceToIntersection(float y) const override
float strip(const LocalPoint &) const override
float localPitch(const LocalPoint &) const override
dh
Definition: cuy.py:353
LocalError localError(float strip, float stripErr2) const override
int nearestStrip(const LocalPoint &) const override
LocalPoint localPosition(float strip) const override