Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 10:01:09

0001 #ifndef MuonCSCDetLayerGeometryBuilder_h
0002 #define MuonCSCDetLayerGeometryBuilder_h
0003 
0004 /** \class MuonCSCDetLayerGeometryBuilder
0005  *
0006  *  Build the CSC DetLayers.
0007  *
0008  *  \author N. Amapane - CERN
0009  */
0010 
0011 #include <Geometry/CSCGeometry/interface/CSCGeometry.h>
0012 #include <vector>
0013 
0014 class DetLayer;
0015 class MuRingForwardDoubleLayer;
0016 class MuDetRing;
0017 
0018 class MuonCSCDetLayerGeometryBuilder {
0019 public:
0020   /// return.first=forward (+Z), return.second=backward (-Z)
0021   /// both vectors are sorted inside-out
0022   static std::pair<std::vector<DetLayer*>, std::vector<DetLayer*> > buildLayers(const CSCGeometry& geo);
0023 
0024 private:
0025   // Disable constructor - only static access is allowed.
0026   MuonCSCDetLayerGeometryBuilder() {}
0027 
0028   static MuRingForwardDoubleLayer* buildLayer(int endcap, int station, std::vector<int>& rings, const CSCGeometry& geo);
0029 
0030   static MuDetRing* makeDetRing(std::vector<const GeomDet*>& geomDets);
0031   static bool isFront(int station, int ring, int chamber);
0032 };
0033 #endif