File indexing completed on 2024-04-06 12:15:19
0001 #ifndef RPCGeometry_RPCGeometry_h
0002 #define RPCGeometry_RPCGeometry_h
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "DataFormats/DetId/interface/DetId.h"
0012 #include "Geometry/CommonDetUnit/interface/TrackingGeometry.h"
0013 #include "Geometry/RPCGeometry/interface/RPCRoll.h"
0014 #include "Geometry/RPCGeometry/interface/RPCChamber.h"
0015 #include <vector>
0016 #include <map>
0017
0018 class GeomDetType;
0019
0020 class RPCGeometry : public TrackingGeometry {
0021 public:
0022
0023 RPCGeometry();
0024
0025
0026 ~RPCGeometry() override;
0027
0028
0029 const DetTypeContainer& detTypes() const override;
0030
0031
0032 const DetContainer& detUnits() const override;
0033
0034
0035 const DetContainer& dets() const override;
0036
0037
0038 const DetIdContainer& detUnitIds() const override;
0039
0040
0041 const DetIdContainer& detIds() const override;
0042
0043
0044 const GeomDet* idToDetUnit(DetId) const override;
0045
0046
0047 const GeomDet* idToDet(DetId) const override;
0048
0049
0050
0051
0052 const std::vector<const RPCChamber*>& chambers() const;
0053
0054
0055 const std::vector<const RPCRoll*>& rolls() const;
0056
0057
0058 const RPCChamber* chamber(RPCDetId id) const;
0059
0060
0061 const RPCRoll* roll(RPCDetId id) const;
0062
0063
0064 void add(RPCRoll* roll);
0065
0066
0067 void add(RPCChamber* ch);
0068
0069 private:
0070 DetContainer theRolls;
0071 DetContainer theDets;
0072 DetTypeContainer theRollTypes;
0073 DetIdContainer theRollIds;
0074 DetIdContainer theDetIds;
0075
0076
0077 mapIdToDet theMap;
0078
0079 std::vector<const RPCRoll*> allRolls;
0080 std::vector<const RPCChamber*> allChambers;
0081 };
0082
0083 #endif