CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/Geometry/DTGeometry/interface/DTChamber.h

Go to the documentation of this file.
00001 #ifndef DTGeometry_DTChamber_h
00002 #define DTGeometry_DTChamber_h
00003 
00018 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
00019 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00020 #include "DataFormats/MuonDetId/interface/DTSuperLayerId.h"
00021 #include "DataFormats/MuonDetId/interface/DTLayerId.h"
00022 
00023 class DTSuperLayer;
00024 class DTLayer;
00025 
00026 class DTChamber : public GeomDet {
00027 
00028   public:
00030     DTChamber(DTChamberId id, const ReferenceCountingPointer<BoundPlane>& plane);
00031 
00033     virtual ~DTChamber();
00034 
00036     DTChamberId id() const;
00037 
00038     // Which subdetector
00039     virtual SubDetector subDetector() const {return GeomDetEnumerators::DT;}
00040 
00042     bool operator==(const DTChamber& ch) const;
00043 
00045     void add(DTSuperLayer* sl);
00046 
00048     virtual std::vector< const GeomDet*> components() const;
00049 
00051     virtual const GeomDet* component(DetId id) const;
00052 
00054     const std::vector< const DTSuperLayer*>& superLayers() const;
00055 
00057     const DTSuperLayer* superLayer(DTSuperLayerId id) const;
00058   
00061     const DTSuperLayer* superLayer(int isl) const;
00062 
00064     const DTLayer* layer(DTLayerId id) const;
00065 
00066   private:
00067 
00068     DTChamberId theId;
00069 
00070     // The chamber owns its SL
00071     std::vector<const DTSuperLayer*> theSLs;
00072 
00073 };
00074 #endif