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 virtual DetId geographicalId() const; 00051 00053 DTLayerId id() const; 00054 00057 const DTSuperLayer* superLayer() const ; 00058 00061 const DTChamber* chamber() const; 00062 00064 bool operator==(const DTLayer& l) const; 00065 00067 virtual std::vector< const GeomDet*> components() const; 00068 00069 private: 00070 DTLayerId theId; 00071 DTTopology theTopo; 00072 DTLayerType theType; 00073 00074 const DTSuperLayer* theSL; 00075 protected: 00076 00077 }; 00078 #endif // DTLAYER_H 00079