00001 #ifndef DTLAYER_H 00002 #define DTLAYER_H 00003 00017 /* Base Class Headers */ 00018 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" 00019 00020 /* Collaborating Class Declarations */ 00021 #include "DataFormats/MuonDetId/interface/DTLayerId.h" 00022 #include "Geometry/DTGeometry/interface/DTTopology.h" 00023 #include "Geometry/DTGeometry/interface/DTLayerType.h" 00024 class DTSuperLayer; 00025 class DTChamber; 00026 00027 00028 class DTLayer : public GeomDetUnit { 00029 00030 public: 00031 00032 /* Constructor */ 00033 DTLayer(DTLayerId id, 00034 ReferenceCountingPointer<BoundPlane>& plane, 00035 const DTTopology& topo, 00036 const DTLayerType& type, 00037 const DTSuperLayer* sl=0) ; 00038 00039 /* Destructor */ 00040 virtual ~DTLayer() ; 00041 00042 /* Operations */ 00043 const Topology& topology() const; 00044 00045 const GeomDetType& type() const; 00046 00047 const DTTopology& specificTopology() const; 00048 00050 DTLayerId id() const; 00051 00054 const DTSuperLayer* superLayer() const ; 00055 00058 const DTChamber* chamber() const; 00059 00061 bool operator==(const DTLayer& l) const; 00062 00064 virtual std::vector< const GeomDet*> components() const; 00065 00066 private: 00067 DTLayerId theId; 00068 DTTopology theTopo; 00069 DTLayerType theType; 00070 00071 const DTSuperLayer* theSL; 00072 protected: 00073 00074 }; 00075 #endif // DTLAYER_H 00076