CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 public:
23  BowedSurfaceDeformation(double sagittaX, double sagittaXY, double sagittaY)
24  : theSagittaX(sagittaX), theSagittaY(sagittaY), theSagittaXY(sagittaXY) {}
27  BowedSurfaceDeformation(const std::vector<double> &parameters);
28 
29  BowedSurfaceDeformation *clone() const override;
30 
32  int type() const override;
33 
41  const LocalTrackAngles &localAngles,
42  double length,
43  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
static constexpr unsigned int minParameterSize()
minimum size of vector that is accepted by constructor from vector
BowedSurfaceDeformation * clone() const override
Topology::LocalTrackAngles LocalTrackAngles
static constexpr unsigned int maxParameterSize()
maximum size of vector that is accepted by constructor from vector
static constexpr unsigned int parSize
static constexpr unsigned int parameterSize()
int type() const override
specific type, i.e. SurfaceDeformationFactory::kBowedSurface
std::vector< double > parameters() const override
parameters, i.e. sagittae as given in the constructor
bool add(const SurfaceDeformation &other) override
Local2DVector positionCorrection(const Local2DPoint &localPos, const LocalTrackAngles &localAngles, double length, double width) const override
BowedSurfaceDeformation(double sagittaX, double sagittaXY, double sagittaY)
constructor from sagittae, i.e. coefficients of Legendre polynomials