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  virtual TwoBowedSurfacesDeformation* clone() const;
41 
43  virtual int type() const;
44 
51  virtual Local2DVector positionCorrection(const Local2DPoint &localPos,
52  const LocalTrackAngles &localAngles,
53  double length, double width) const;
54 
59  virtual bool add(const SurfaceDeformation &other);
60 
62  virtual std::vector<double> parameters() const;
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
virtual Local2DVector positionCorrection(const Local2DPoint &localPos, const LocalTrackAngles &localAngles, double length, double width) const
#define constexpr
virtual int type() const
specific type, i.e. SurfaceDeformationFactory::kTwoBowedSurfaces
TwoBowedSurfacesDeformation(const std::vector< double > &parameters)
virtual std::vector< double > parameters() const
parameters - see constructor for meaning
static unsigned int minParameterSize()
minimum size of vector that is accepted by constructor from vector
virtual bool add(const SurfaceDeformation &other)
static unsigned int maxParameterSize()
maximum size of vector that is accepted by constructor from vector
virtual TwoBowedSurfacesDeformation * clone() const