CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/Geometry/CommonDetUnit/interface/GeomDetUnit.h

Go to the documentation of this file.
00001 #ifndef CommonDet_GeomDetUnit_H
00002 #define CommonDet_GeomDetUnit_H
00003 
00004 #include "DataFormats/GeometrySurface/interface/Plane.h"
00005 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
00006 #include "DataFormats/DetId/interface/DetId.h"
00007 
00008 class Topology;
00009 //class Readout;
00010 class GeomDetType;
00011 class SurfaceDeformation;
00012 
00013 class GeomDetUnit : public GeomDet {
00014 public:
00015 
00016   explicit GeomDetUnit( Plane* sp);
00017   explicit GeomDetUnit( const ReferenceCountingPointer<Plane>& plane);
00018 
00019   virtual ~GeomDetUnit();
00020   
00021   virtual const Topology& topology() const = 0;
00022 
00023   virtual const GeomDetType& type() const = 0;
00024 
00026   virtual std::vector< const GeomDet*> components() const {
00027     return std::vector< const GeomDet*>();
00028   }
00029 
00030   virtual const GeomDet* component(DetId /*id*/) const {return 0;}
00031 
00032   // Which subdetector
00033   virtual SubDetector subDetector() const;
00034 
00037   virtual const SurfaceDeformation* surfaceDeformation() const { return 0; }
00038   
00039 private:
00040 
00042   friend class DetPositioner;
00043 
00047   virtual void setSurfaceDeformation(const SurfaceDeformation * deformation);
00048 };
00049 
00050 #endif
00051 
00052 
00053 
00054