CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/RecoMuon/DetLayers/src/MuonRPCDetLayerGeometryBuilder.h

Go to the documentation of this file.
00001 #ifndef MuonRPCDetLayerGeometryBuilder_h
00002 #define MuonRPCDetLayerGeometryBuilder_h
00003 
00013 class DetLayer;
00014 class MuRingForwardDoubleLayer;
00015 class MuRodBarrelLayer;
00016 
00017 
00018 #include <Geometry/RPCGeometry/interface/RPCGeometry.h>
00019 #include "RecoMuon/DetLayers/interface/MuDetRod.h"
00020 #include <vector>
00021 
00022 class MuonRPCDetLayerGeometryBuilder {
00023  public:
00025   MuonRPCDetLayerGeometryBuilder(){}
00026 
00028   virtual ~MuonRPCDetLayerGeometryBuilder();
00029   
00032   static std::pair<std::vector<DetLayer*>, std::vector<DetLayer*> > buildEndcapLayers(const RPCGeometry& geo);
00033         
00035   static std::vector<DetLayer*> buildBarrelLayers(const RPCGeometry& geo);
00036     
00037  private:
00038   static void makeBarrelLayers(std::vector<const GeomDet *> & geomDets,
00039                                std::vector<MuRodBarrelLayer*> & result);
00040   static void makeBarrelRods(std::vector<const GeomDet *> & geomDets,
00041                              std::vector<const DetRod*> & result);
00042   static bool isFront(const RPCDetId & rpcId);
00043   static MuRingForwardDoubleLayer* buildLayer(int endcap,std::vector<int> rings, int station,int layer, std::vector<int>& rolls,const RPCGeometry& geo);          
00044     
00045 };
00046 #endif
00047