CMS 3D CMS Logo

CSCWireGeometry.h
Go to the documentation of this file.
1 #ifndef CSC_WIRE_GEOMETRY_H
2 #define CSC_WIRE_GEOMETRY_H
3 
14 #include <vector>
15 #include <utility> // for std::pair
16 
18 public:
19  virtual ~CSCWireGeometry() {}
20 
25  double wireSpacing, double yOfFirstWire, double narrowWidthOfPlane, double wideWidthOfPlane, double lengthOfPlane)
31 
35  double wireSpacing() const { return theWireSpacing; }
36 
40  double yOfFirstWire() const { return theYOfFirstWire; }
41 
45  double narrowWidthOfPlane() const { return theNarrowWidthOfPlane; }
46 
50  double wideWidthOfPlane() const { return theWideWidthOfPlane; }
51 
55  double lengthOfPlane() const { return theLengthOfPlane; }
56 
60  virtual float wireAngle() const = 0;
61 
66  virtual int nearestWire(const LocalPoint& lp) const = 0;
67 
71  virtual float yOfWire(float wire, float x = 0.) const = 0;
72 
76  virtual CSCWireGeometry* clone() const = 0;
77 
82  LocalPoint intersection(float m1, float c1, float m2, float c2) const;
83 
88  std::pair<LocalPoint, LocalPoint> wireEnds(float wire) const;
89 
93  std::vector<float> wireValues(float wire) const;
94 
100  std::pair<float, float> equationOfWire(float wire) const;
101 
109  std::pair<float, float> yLimitsOfWirePlane() const;
110 
111 private:
113  double theYOfFirstWire; // local y
117 };
118 
119 #endif
virtual CSCWireGeometry * clone() const =0
double narrowWidthOfPlane() const
double lengthOfPlane() const
std::vector< float > wireValues(float wire) const
std::pair< float, float > yLimitsOfWirePlane() const
LocalPoint intersection(float m1, float c1, float m2, float c2) const
virtual float yOfWire(float wire, float x=0.) const =0
virtual ~CSCWireGeometry()
double wideWidthOfPlane() const
virtual int nearestWire(const LocalPoint &lp) const =0
double theWideWidthOfPlane
double yOfFirstWire() const
CSCWireGeometry(double wireSpacing, double yOfFirstWire, double narrowWidthOfPlane, double wideWidthOfPlane, double lengthOfPlane)
std::pair< float, float > equationOfWire(float wire) const
double wireSpacing() const
std::pair< LocalPoint, LocalPoint > wireEnds(float wire) const
double theNarrowWidthOfPlane
virtual float wireAngle() const =0