00001 #ifndef Geometry_TrackerGeometryBuilder_PixelGeomDetUnit_H 00002 #define Geometry_TrackerGeometryBuilder_PixelGeomDetUnit_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/ProxyPixelTopology.h" 00009 00010 class PixelGeomDetType; 00011 class PixelTopology; 00012 class GeometricDet; 00013 class SurfaceDeformation; 00018 class PixelGeomDetUnit : public GeomDetUnit { 00019 public: 00020 00021 PixelGeomDetUnit(BoundPlane* sp, PixelGeomDetType* type, const GeometricDet* gd); 00022 00023 // DetUnit interface 00024 00031 virtual const GeomDetType& type() const; 00032 00034 virtual const Topology& topology() const; 00035 00042 virtual PixelGeomDetType& specificType() const; 00043 00045 virtual const PixelTopology& 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<ProxyPixelTopology> theTopology; 00058 const GeometricDet* theGD; 00059 }; 00060 00061 #endif // Tracker_PixelGeomDetUnit_H