File indexing completed on 2024-04-06 12:26:53
0001 #ifndef MuonRPCDetLayerGeometryBuilder_h
0002 #define MuonRPCDetLayerGeometryBuilder_h
0003
0004
0005
0006
0007
0008
0009
0010
0011 class DetLayer;
0012 class MuRingForwardDoubleLayer;
0013 class MuRodBarrelLayer;
0014
0015 #include <Geometry/RPCGeometry/interface/RPCGeometry.h>
0016 #include "RecoMuon/DetLayers/interface/MuDetRod.h"
0017 #include <vector>
0018
0019 class MuonRPCDetLayerGeometryBuilder {
0020 public:
0021
0022 MuonRPCDetLayerGeometryBuilder() {}
0023
0024
0025 virtual ~MuonRPCDetLayerGeometryBuilder();
0026
0027
0028
0029 static std::pair<std::vector<DetLayer*>, std::vector<DetLayer*> > buildEndcapLayers(const RPCGeometry& geo);
0030
0031
0032 static std::vector<DetLayer*> buildBarrelLayers(const RPCGeometry& geo);
0033
0034 private:
0035 static void makeBarrelLayers(std::vector<const GeomDet*>& geomDets, std::vector<MuRodBarrelLayer*>& result);
0036 static void makeBarrelRods(std::vector<const GeomDet*>& geomDets, std::vector<const DetRod*>& result);
0037 static bool isFront(const RPCDetId& rpcId);
0038 static MuRingForwardDoubleLayer* buildLayer(int endcap,
0039 const std::vector<int>& rings,
0040 int station,
0041 int layer,
0042 std::vector<int>& rolls,
0043 const RPCGeometry& geo);
0044 };
0045 #endif