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
Point2DBase
Definition: Point2DBase.h:9
GEMStripTopology::~GEMStripTopology
~GEMStripTopology() override
Definition: GEMStripTopology.h:15
DDAxes::y
GEMStripTopology::phiPitch
float phiPitch(void) const
Definition: GEMStripTopology.h:36
GEMStripTopology::yCentre_
float yCentre_
Definition: GEMStripTopology.h:70
GEMStripTopology::localPosition
LocalPoint localPosition(float strip) const override
Definition: GEMStripTopology.cc:34
StripTopology::localPosition
virtual LocalPoint localPosition(float strip) const =0
GEMStripTopology::centreToIntersection
float centreToIntersection() const
Definition: GEMStripTopology.h:53
GEMStripTopology::originToIntersection
float originToIntersection() const
Definition: GEMStripTopology.h:55
GEMStripTopology::stripLength
float stripLength() const override
Definition: GEMStripTopology.h:46
GEMStripTopology::phiOfOneEdge_
float phiOfOneEdge_
Definition: GEMStripTopology.h:68
StripTopology.h
GEMStripTopology
Definition: GEMStripTopology.h:11
GEMStripTopology::angularWidth
float angularWidth() const
Definition: GEMStripTopology.h:50
GEMStripTopology::channel
int channel(const LocalPoint &) const override
Definition: GEMStripTopology.cc:107
GEMStripTopology::nearestStrip
int nearestStrip(const LocalPoint &) const
Definition: GEMStripTopology.cc:80
GEMStripTopology::xOfStrip
float xOfStrip(int strip, float y) const
Definition: GEMStripTopology.cc:132
GEMStripTopology::localPitch
float localPitch(const LocalPoint &) const override
Definition: GEMStripTopology.cc:111
GEMStripTopology::yCentreOfStripPlane
float yCentreOfStripPlane() const
Definition: GEMStripTopology.h:61
MeasurementError
Definition: MeasurementError.h:8
GEMStripTopology::numberOfStrips_
int numberOfStrips_
Definition: GEMStripTopology.h:64
GEMStripTopology::yExtentOfStripPlane
float yExtentOfStripPlane() const
Definition: GEMStripTopology.h:52
GEMStripTopology::localError
LocalError localError(float strip, float stripErr2) const override
Definition: GEMStripTopology.cc:45
Point3DBase< float, LocalTag >
GEMStripTopology::yAxisOrientation
float yAxisOrientation() const
Definition: GEMStripTopology.h:59
GEMStripTopology::strip
float strip(const LocalPoint &) const override
Definition: GEMStripTopology.cc:73
GEMStripTopology::yDistanceToIntersection
float yDistanceToIntersection(float y) const
Definition: GEMStripTopology.cc:128
GEMStripTopology::angularWidth_
float angularWidth_
Definition: GEMStripTopology.h:65
LocalError
Definition: LocalError.h:12
GEMStripTopology::measurementError
MeasurementError measurementError(const LocalPoint &, const LocalError &) const override
Definition: GEMStripTopology.cc:91
GEMStripTopology::nstrips
int nstrips() const override
Definition: GEMStripTopology.h:44
GEMStripTopology::radius
float radius() const
Definition: GEMStripTopology.h:54
GEMStripTopology::yAxisOrientation_
float yAxisOrientation_
Definition: GEMStripTopology.h:69
GEMStripTopology::measurementPosition
MeasurementPoint measurementPosition(const LocalPoint &) const override
Definition: GEMStripTopology.cc:84
GEMStripTopology::stripAngle
float stripAngle(float strip) const override
Definition: GEMStripTopology.cc:119
GEMStripTopology::centreToIntersection_
float centreToIntersection_
Definition: GEMStripTopology.h:67
GEMStripTopology::phiOfOneEdge
float phiOfOneEdge() const
Definition: GEMStripTopology.h:60
GEMStripTopology::detHeight
float detHeight() const
Definition: GEMStripTopology.h:51
GEMStripTopology::GEMStripTopology
GEMStripTopology(int ns, float aw, float dh, float r0)
Definition: GEMStripTopology.cc:11
GEMStripTopology::detHeight_
float detHeight_
Definition: GEMStripTopology.h:66
StripTopology::localError
virtual LocalError localError(float strip, float stripErr2) const =0
GEMStripTopology::localStripLength
float localStripLength(const LocalPoint &) const override
Definition: GEMStripTopology.cc:123
StripTopology
Definition: StripTopology.h:11
cuy.dh
dh
Definition: cuy.py:354
GEMStripTopology::pitch
float pitch() const override
Definition: GEMStripTopology.cc:109