CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch2/src/Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h

Go to the documentation of this file.
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