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* clone() const = 0;
28 
30  virtual int type() const = 0;
31 
38  virtual Local2DVector positionCorrection(const Local2DPoint &localPos,
39  const LocalTrackAngles &localAngles,
40  double length, double width) const = 0;
41 
46  virtual bool add(const SurfaceDeformation &other) = 0;
47 
48  // Seems like only GeometryAligner and derived classes need access
49  // to parameters, so we could make it a friend and protect parameters()...
50  // friend class GeometryAligner; // to be able to call parameters
51  // protected:
52 
54  virtual std::vector<double> parameters() const = 0;
55 
56 };
57 
58 #endif
Topology::Vector2D Vector2D
Topology::LocalTrackAngles LocalTrackAngles
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