CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SurfaceDeformation.h
Go to the documentation of this file.
1 #ifndef Geometry_CommonTopologies_SurfaceDeformation_H
2 #define Geometry_CommonTopologies_SurfaceDeformation_H
3 
10 
15 
16 #include <vector>
17 
19 public:
25 
26  virtual ~SurfaceDeformation() {}
27 
28  virtual SurfaceDeformation *clone() const = 0;
29 
31  virtual int type() const = 0;
32 
39  virtual Local2DVector positionCorrection(const Local2DPoint &localPos,
40  const LocalTrackAngles &localAngles,
41  double length,
42  double width) const = 0;
43 
48  virtual bool add(const SurfaceDeformation &other) = 0;
49 
50  // Seems like only GeometryAligner and derived classes need access
51  // to parameters, so we could make it a friend and protect parameters()...
52  // friend class GeometryAligner; // to be able to call parameters
53  // protected:
54 
56  virtual std::vector<double> parameters() const = 0;
57 };
58 
59 #endif
Topology::Vector2D Vector2D
Topology::LocalTrackAngles LocalTrackAngles
Vector2D::MathVector MathVector2D
Definition: Topology.h:42
virtual std::vector< double > parameters() const =0
parameters - interpretation left to the concrete implementation
Topology::MathVector2D MathVector2D
virtual Local2DVector positionCorrection(const Local2DPoint &localPos, const LocalTrackAngles &localAngles, double length, double width) const =0
virtual SurfaceDeformation * clone() const =0
virtual int type() const =0
specific type, i.e. SurfaceDeformationFactory::Type
Vector2DBase< double, LocalTag > Local2DVector
virtual bool add(const SurfaceDeformation &other)=0
Topology::Local2DPoint Local2DPoint