CMS 3D CMS Logo

BowedSurfaceDeformation.h
Go to the documentation of this file.
1 #ifndef Geometry_CommonTopologies_BowedSurfaceDeformation_H
2 #define Geometry_CommonTopologies_BowedSurfaceDeformation_H
3 
14 
16 
17 // already included in the above:
18 // #include <vector>
19 
21 {
22  public:
24  BowedSurfaceDeformation(double sagittaX, double sagittaXY, double sagittaY) :
25  theSagittaX(sagittaX),theSagittaY(sagittaY), theSagittaXY(sagittaXY) { }
28  BowedSurfaceDeformation(const std::vector<double> &parameters);
29 
30  virtual BowedSurfaceDeformation* clone() const;
31 
33  virtual int type() const;
34 
41  virtual Local2DVector positionCorrection(const Local2DPoint &localPos,
42  const LocalTrackAngles &localAngles,
43  double length, double width) const;
44 
49  virtual bool add(const SurfaceDeformation &other);
50 
52  virtual std::vector<double> parameters() const;
53 
55  static unsigned int minParameterSize() { return 3;}
57  static unsigned int maxParameterSize() { return 3;}
58 
59  private:
60  double theSagittaX;
61  double theSagittaY;
62  double theSagittaXY;
63  // double theRelWidthLowY; // could be used for non-rectangular modules
64 };
65 
66 #endif
virtual BowedSurfaceDeformation * clone() const
static unsigned int minParameterSize()
minimum size of vector that is accepted by constructor from vector
virtual int type() const
specific type, i.e. SurfaceDeformationFactory::kBowedSurface
static unsigned int maxParameterSize()
maximum size of vector that is accepted by constructor from vector
virtual std::vector< double > parameters() const
parameters, i.e. sagittae as given in the constructor
virtual Local2DVector positionCorrection(const Local2DPoint &localPos, const LocalTrackAngles &localAngles, double length, double width) const
virtual bool add(const SurfaceDeformation &other)
BowedSurfaceDeformation(double sagittaX, double sagittaXY, double sagittaY)
constructor from sagittae, i.e. coefficients of Legendre polynomials