00001 #ifndef MuonCSCDetLayerGeometryBuilder_h 00002 #define MuonCSCDetLayerGeometryBuilder_h 00003 00013 #include <Geometry/CSCGeometry/interface/CSCGeometry.h> 00014 #include <vector> 00015 00016 class DetLayer; 00017 class MuRingForwardDoubleLayer; 00018 class MuDetRing; 00019 00020 class MuonCSCDetLayerGeometryBuilder { 00021 public: 00022 00025 static std::pair<std::vector<DetLayer*>, std::vector<DetLayer*> > buildLayers(const CSCGeometry& geo); 00026 private: 00027 // Disable constructor - only static access is allowed. 00028 MuonCSCDetLayerGeometryBuilder(){} 00029 00030 static MuRingForwardDoubleLayer* buildLayer(int endcap, 00031 int station, 00032 std::vector<int>& rings, 00033 const CSCGeometry& geo); 00034 00035 static MuDetRing * makeDetRing(std::vector<const GeomDet*> & geomDets); 00036 static bool isFront(int station, int ring, int chamber); 00037 }; 00038 #endif 00039