CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h

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