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  BowedSurfaceDeformation* clone() const override;
31 
33  int type() const override;
34 
42  const LocalTrackAngles &localAngles,
43  double length, double width) const override;
44 
49  bool add(const SurfaceDeformation &other) override;
50 
52  std::vector<double> parameters() const override;
53 
54  // the size
55  static constexpr unsigned int parSize = 3;
56  static constexpr unsigned int parameterSize() { return parSize; }
57 
59  static constexpr unsigned int minParameterSize() { return parameterSize(); }
61  static constexpr unsigned int maxParameterSize() { return parameterSize(); }
62 
63  private:
64  double theSagittaX;
65  double theSagittaY;
66  double theSagittaXY;
67  // double theRelWidthLowY; // could be used for non-rectangular modules
68 };
69 
70 #endif
Local2DVector positionCorrection(const Local2DPoint &localPos, const LocalTrackAngles &localAngles, double length, double width) const override
int type() const override
specific type, i.e. SurfaceDeformationFactory::kBowedSurface
BowedSurfaceDeformation * clone() const override
static unsigned int parameterSize()
#define constexpr
static unsigned int minParameterSize()
minimum size of vector that is accepted by constructor from vector
static unsigned int maxParameterSize()
maximum size of vector that is accepted by constructor from vector
bool add(const SurfaceDeformation &other) override
std::vector< double > parameters() const override
parameters, i.e. sagittae as given in the constructor
BowedSurfaceDeformation(double sagittaX, double sagittaXY, double sagittaY)
constructor from sagittae, i.e. coefficients of Legendre polynomials