CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 {
20  public:
26 
27  virtual ~SurfaceDeformation() {}
28 
29  virtual SurfaceDeformation* clone() const = 0;
30 
32  virtual int type() const = 0;
33 
40  virtual Local2DVector positionCorrection(const Local2DPoint &localPos,
41  const LocalTrackAngles &localAngles,
42  double length, 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 
60 #endif
Topology::Vector2D Vector2D
Topology::LocalTrackAngles LocalTrackAngles
Vector2D::MathVector MathVector2D
Definition: Topology.h:45
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