00001 #ifndef Geometry_CommonTopologies_Topology_H 00002 #define Geometry_CommonTopologies_Topology_H 00003 00004 #include "DataFormats/GeometryVector/interface/LocalPoint.h" 00005 #include "DataFormats/GeometryCommonDetAlgo/interface/LocalError.h" 00006 #include "DataFormats/GeometryCommonDetAlgo/interface/MeasurementPoint.h" 00007 #include "DataFormats/GeometryCommonDetAlgo/interface/MeasurementError.h" 00008 00009 class GeomDetType; 00010 00026 class Topology { 00027 public: 00028 00029 virtual ~Topology() {} 00030 00031 // Conversion between measurement (strip, pixel, ...) coordinates 00032 // and local cartesian coordinates 00033 00034 virtual LocalPoint localPosition( const MeasurementPoint& ) const = 0; 00035 00036 virtual LocalError 00037 localError( const MeasurementPoint&, const MeasurementError& ) const = 0; 00038 00039 virtual MeasurementPoint measurementPosition( const LocalPoint&) const = 0; 00040 00041 virtual MeasurementError 00042 measurementError( const LocalPoint&, const LocalError& ) const = 0; 00043 00044 virtual int channel( const LocalPoint& p) const = 0; 00045 00046 private: 00047 00048 }; 00049 00050 #endif