00001 #ifndef RPCGeometry_RPCChamber_h 00002 #define RPCGeometry_RPCChamber_h 00003 00016 #include "Geometry/CommonDetUnit/interface/GeomDet.h" 00017 #include "DataFormats/MuonDetId/interface/RPCDetId.h" 00018 00019 class RPCRoll; 00020 00021 class RPCChamber : public GeomDet { 00022 public: 00024 RPCChamber(RPCDetId id, const ReferenceCountingPointer<BoundPlane>& plane); 00026 virtual ~RPCChamber(); 00027 00029 RPCDetId id() const; 00030 00031 // Which subdetector 00032 virtual SubDetector subDetector() const {return GeomDetEnumerators::RPCBarrel;} 00033 00035 bool operator==(const RPCChamber& ch) const; 00036 00038 void add(RPCRoll* rl); 00039 00041 virtual std::vector< const GeomDet*> components() const; 00042 00044 virtual const GeomDet* component(DetId id) const; 00045 00047 const RPCRoll* roll(RPCDetId id) const; 00048 00049 const RPCRoll* roll(int isl) const; 00050 00052 const std::vector<const RPCRoll*>& rolls() const; 00053 00055 int nrolls() const; 00056 00057 private: 00058 00059 RPCDetId theId; 00060 00061 // The chamber owns its Rolls 00062 std::vector<const RPCRoll*> theRolls; 00063 00064 }; 00065 #endif