CMS 3D CMS Logo

TwoBowedSurfacesDeformation.h
Go to the documentation of this file.
1 #ifndef GeometryCommonTopologiesTwoBowedSurfacesDeformation_H
2 #define GeometryCommonTopologiesTwoBowedSurfacesDeformation_H
3 
14 
16 
17 #include<array>
18 
20 {
21  public:
38  TwoBowedSurfacesDeformation(const std::vector<double> &parameters);
39 
40  TwoBowedSurfacesDeformation* clone() const override;
41 
43  int type() const override;
44 
52  const LocalTrackAngles &localAngles,
53  double length, double width) const override;
54 
59  bool add(const SurfaceDeformation &other) override;
60 
62  std::vector<double> parameters() const override;
63 
64  // the size
65  static constexpr unsigned int parSize = 13;
66  static constexpr unsigned int parameterSize() { return parSize; }
67 
68 
70  static constexpr unsigned int minParameterSize() { return parameterSize(); }
72  static constexpr unsigned int maxParameterSize() { return parameterSize();}
73 
74  // location of ySplit
75  static constexpr unsigned int k_ySplit() { return parameterSize()-1;}
76 
77  private:
79 };
80 
81 #endif
#define constexpr
TwoBowedSurfacesDeformation * clone() const override
int type() const override
specific type, i.e. SurfaceDeformationFactory::kTwoBowedSurfaces
Local2DVector positionCorrection(const Local2DPoint &localPos, const LocalTrackAngles &localAngles, double length, double width) const override
TwoBowedSurfacesDeformation(const std::vector< double > &parameters)
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 - see constructor for meaning