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 virtual DetId geographicalId() const; 00030 00032 RPCDetId id() const; 00033 00034 // Which subdetector 00035 virtual SubDetector subDetector() const {return GeomDetEnumerators::RPCBarrel;} 00036 00038 bool operator==(const RPCChamber& ch) const; 00039 00041 void add(RPCRoll* rl); 00042 00044 virtual std::vector< const GeomDet*> components() const; 00045 00047 virtual const GeomDet* component(DetId id) const; 00048 00050 const RPCRoll* roll(RPCDetId id) const; 00051 00052 const RPCRoll* roll(int isl) const; 00053 00055 const std::vector<const RPCRoll*>& rolls() const; 00056 00058 const int nrolls() const; 00059 00060 private: 00061 00062 RPCDetId theId; 00063 00064 // The chamber owns its Rolls 00065 std::vector<const RPCRoll*> theRolls; 00066 00067 }; 00068 #endif