00001 #ifndef Geometry_TrackerGeometryBuilder_StripGeomDetUnit_H 00002 #define Geometry_TrackerGeometryBuilder_StripGeomDetUnit_H 00003 00004 #include <boost/shared_ptr.hpp> 00005 00006 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" 00007 #include "DataFormats/DetId/interface/DetId.h" 00008 #include "Geometry/TrackerGeometryBuilder/interface/ProxyStripTopology.h" 00009 00010 class StripGeomDetType; 00011 class StripTopology; 00012 class GeometricDet; 00013 class SurfaceDeformation; 00018 class StripGeomDetUnit : public GeomDetUnit { 00019 public: 00020 00021 StripGeomDetUnit( BoundPlane* sp, StripGeomDetType* type, const GeometricDet* gd); 00022 00023 // Det interface 00024 00031 virtual const GeomDetType& type() const; 00032 00034 virtual const Topology& topology() const; 00035 00042 virtual StripGeomDetType& specificType() const; 00043 00045 virtual const StripTopology& specificTopology() const; 00046 00048 virtual const SurfaceDeformation * surfaceDeformation() const { 00049 return theTopology->surfaceDeformation(); 00050 } 00051 00052 private: 00053 00055 virtual void setSurfaceDeformation(const SurfaceDeformation * deformation); 00056 00057 boost::shared_ptr<ProxyStripTopology> theTopology; 00058 const GeometricDet* theGD; 00059 }; 00060 00061 #endif // Tracker_StripGeomDetUnit_H