CMS 3D CMS Logo

GEMStripTopology.h
Go to the documentation of this file.
1 #ifndef Geometry_CommonTopologies_GEMStripTopology_H
2 #define Geometry_CommonTopologies_GEMStripTopology_H
3 
10 
11 class GEMStripTopology final : public StripTopology {
12 public:
13  GEMStripTopology(int ns, float aw, float dh, float r0);
14  GEMStripTopology(int ns, float aw, float dh, float r0, float yAx);
15  ~GEMStripTopology() override {}
16 
18  LocalPoint localPosition(float strip) const override;
19 
20  LocalPoint localPosition(const MeasurementPoint&) const override;
21 
23  LocalError localError(float strip, float stripErr2) const override;
24  LocalError localError(const MeasurementPoint&, const MeasurementError&) const override;
25 
26  float strip(const LocalPoint&) const override;
27 
28  int nearestStrip(const LocalPoint&) const;
29 
30  MeasurementPoint measurementPosition(const LocalPoint&) const override;
31 
32  MeasurementError measurementError(const LocalPoint&, const LocalError&) const override;
33 
34  int channel(const LocalPoint&) const override;
35 
36  float phiPitch(void) const { return angularWidth(); }
37 
38  float pitch() const override;
39 
40  float localPitch(const LocalPoint&) const override;
41 
42  float stripAngle(float strip) const override;
43 
44  int nstrips() const override { return numberOfStrips_; }
45 
46  float stripLength() const override { return detHeight_; }
47 
48  float localStripLength(const LocalPoint&) const override;
49 
50  float angularWidth() const { return angularWidth_; }
51  float detHeight() const { return detHeight_; }
52  float yExtentOfStripPlane() const { return detHeight_; }
53  float centreToIntersection() const { return centreToIntersection_; }
54  float radius() const { return centreToIntersection_; }
55  float originToIntersection() const { return (centreToIntersection_ - yCentre_); }
56 
57  float yDistanceToIntersection(float y) const;
58  float xOfStrip(int strip, float y) const;
59  float yAxisOrientation() const { return yAxisOrientation_; }
60  float phiOfOneEdge() const { return phiOfOneEdge_; }
61  float yCentreOfStripPlane() const { return yCentre_; }
62 
63 private:
64  int numberOfStrips_; // total no. of strips in plane of strips
65  float angularWidth_; // angle subtended by each strip = phi pitch
66  float detHeight_; // length of long symmetry axis = twice the apothem of the enclosing trapezoid
67  float centreToIntersection_; // distance centre of detector face to intersection of edge strips (projected)
68  float phiOfOneEdge_; // local 'phi' of one edge of plane of strips (I choose it negative!)
69  float yAxisOrientation_; // 1 means y axis going from smaller to larger side, -1 means opposite direction
70  float yCentre_; // Non-zero if offset in local y between midpoint of detector (strip plane) extent and local origin.
71 };
72 
73 #endif
float centreToIntersection() const
float stripLength() const override
float strip(const LocalPoint &) const override
MeasurementError measurementError(const LocalPoint &, const LocalError &) const override
int nstrips() const override
float yDistanceToIntersection(float y) const
float radius() const
int channel(const LocalPoint &) const override
float phiPitch(void) const
~GEMStripTopology() override
int nearestStrip(const LocalPoint &) const
float angularWidth() const
float localPitch(const LocalPoint &) const override
float phiOfOneEdge() const
GEMStripTopology(int ns, float aw, float dh, float r0)
float stripAngle(float strip) const override
float yAxisOrientation() const
float localStripLength(const LocalPoint &) const override
float yExtentOfStripPlane() const
float yCentreOfStripPlane() const
MeasurementPoint measurementPosition(const LocalPoint &) const override
float xOfStrip(int strip, float y) const
virtual LocalError localError(float strip, float stripErr2) const =0
LocalPoint localPosition(float strip) const override
virtual LocalPoint localPosition(float strip) const =0
LocalError localError(float strip, float stripErr2) const override
float detHeight() const
dh
Definition: cuy.py:354
float originToIntersection() const
float pitch() const override