CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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:
44  CSCRadialStripTopology(int ns, float aw, float dh, float r, float yAx = 1.f, float yMid = 0.);
45 
50 
51  // =========================================================
52  // StripTopology interface - implement pure virtual methods
53  // =========================================================
54 
59  LocalPoint localPosition(float strip) const override;
60 
74  LocalPoint localPosition(const MeasurementPoint&) const override;
75 
82  LocalError localError(float strip, float stripErr2) const override;
83 
89  LocalError localError(const MeasurementPoint&, const MeasurementError&) const override;
90 
98  float strip(const LocalPoint&) const override;
99 
104  float localPitch(const LocalPoint&) const override;
105 
117  float stripAngle(float strip) const override;
118 
122  int nstrips() const override { return theNumberOfStrips; }
123 
127  float stripLength() const override { return theDetHeight; }
128 
132  float localStripLength(const LocalPoint&) const override;
133 
134  // =========================================================
135  // Topology interface (not already implemented for
136  // StripTopology interface)
137  // =========================================================
138 
139  MeasurementPoint measurementPosition(const LocalPoint&) const override;
140 
141  MeasurementError measurementError(const LocalPoint&, const LocalError&) const override;
142 
150  int channel(const LocalPoint&) const override;
151 
152  // =========================================================
153  // RadialStripTopology interface itself
154  // =========================================================
155 
159  float angularWidth() const override { return theAngularWidth; }
160 
164  float phiPitch(void) const override { return angularWidth(); }
165 
169  float detHeight() const override { return theDetHeight; }
170 
174  float yExtentOfStripPlane() const override { return theDetHeight; } // same as detHeight()
175 
181  float centreToIntersection() const override { return theCentreToIntersection; }
182 
188  float originToIntersection() const override { return (theCentreToIntersection - yCentre); }
189 
202  float phiOfOneEdge() const override { return thePhiOfOneEdge; }
203 
208  float xOfStrip(int strip, float y) const override;
209 
213  int nearestStrip(const LocalPoint&) const override;
214 
218  float yAxisOrientation() const override { return theYAxisOrientation; }
219 
223  float yCentreOfStripPlane() const override { return yCentre; }
224 
228  float yDistanceToIntersection(float y) const override;
229 
230  friend std::ostream& operator<<(std::ostream&, const RadialStripTopology&);
231 
232 private:
233  int theNumberOfStrips; // total no. of strips in plane of strips
234  float theAngularWidth; // angle subtended by each strip = phi pitch
235  float theDetHeight; // length of long symmetry axis = twice the apothem of the enclosing trapezoid
236  float theCentreToIntersection; // distance centre of detector face to intersection of edge strips (projected)
237  float thePhiOfOneEdge; // local 'phi' of one edge of plane of strips (I choose it negative!)
238  float theYAxisOrientation; // 1 means y axis going from smaller to larger side, -1 means opposite direction
239  float yCentre; // Non-zero if offset in local y between midpoint of detector (strip plane) extent and local origin.
240 };
241 
242 #endif
float centreToIntersection() const override
int nearestStrip(const LocalPoint &) const override
float phiOfOneEdge() const override
float strip(const LocalPoint &) const override
float stripLength() const override
LocalPoint localPosition(float strip) const override
float yAxisOrientation() const override
MeasurementError measurementError(const LocalPoint &, const LocalError &) const override
float detHeight() const override
CSCRadialStripTopology(int ns, float aw, float dh, float r, float yAx=1.f, float yMid=0.)
float phiPitch(void) const override
float angularWidth() const override
MeasurementPoint measurementPosition(const LocalPoint &) const override
float stripAngle(float strip) const override
int channel(const LocalPoint &) const override
float originToIntersection() const override
float yCentreOfStripPlane() const override
float xOfStrip(int strip, float y) const override
LocalError localError(float strip, float stripErr2) const override
float yDistanceToIntersection(float y) const override
friend std::ostream & operator<<(std::ostream &, const RadialStripTopology &)
float yExtentOfStripPlane() const override
int nstrips() const override
tuple dh
Definition: cuy.py:354
float localPitch(const LocalPoint &) const override
float localStripLength(const LocalPoint &) const override