00001 #ifndef CommonDet_GeomDetUnit_H 00002 #define CommonDet_GeomDetUnit_H 00003 00004 #include "DataFormats/GeometrySurface/interface/BoundPlane.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 00012 class GeomDetUnit : public GeomDet { 00013 public: 00014 00015 explicit GeomDetUnit( BoundPlane* sp); 00016 explicit GeomDetUnit( const ReferenceCountingPointer<BoundPlane>& plane); 00017 00018 virtual ~GeomDetUnit(); 00019 00020 virtual const Topology& topology() const = 0; 00021 00022 virtual const GeomDetType& type() const = 0; 00023 00025 virtual std::vector< const GeomDet*> components() const { 00026 return std::vector< const GeomDet*>(); 00027 } 00028 00029 virtual const GeomDet* component(DetId id) const {return 0;} 00030 00031 // Which subdetector 00032 virtual SubDetector subDetector() const; 00033 00034 }; 00035 00036 #endif 00037 00038 00039 00040