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 public:
37  TwoBowedSurfacesDeformation(const std::vector<double> &parameters);
38 
39  TwoBowedSurfacesDeformation *clone() const override;
40 
42  int type() const override;
43 
51  const LocalTrackAngles &localAngles,
52  double length,
53  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 
69  static constexpr unsigned int minParameterSize() { return parameterSize(); }
71  static constexpr unsigned int maxParameterSize() { return parameterSize(); }
72 
73  // location of ySplit
74  static constexpr unsigned int k_ySplit() { return parameterSize() - 1; }
75 
76 private:
78 };
79 
80 #endif
static constexpr unsigned int minParameterSize()
minimum size of vector that is accepted by constructor from vector
static constexpr unsigned int parSize
static constexpr unsigned int maxParameterSize()
maximum size of vector that is accepted by constructor from vector
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
static constexpr unsigned int k_ySplit()
TwoBowedSurfacesDeformation(const std::vector< double > &parameters)
static constexpr unsigned int parameterSize()
bool add(const SurfaceDeformation &other) override
std::vector< double > parameters() const override
parameters - see constructor for meaning