Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:53

0001 #ifndef MuonGEMDetLayerGeometryBuilder_h
0002 #define MuonGEMDetLayerGeometryBuilder_h
0003 
0004 /** \class MuonGEMDetLayerGeometryBuilder
0005  *
0006  *  Build the GEM DetLayers.
0007  *
0008  *  \author R. Radogna
0009  */
0010 
0011 class DetLayer;
0012 class ForwardDetLayer;
0013 class MuRingForwardLayer;
0014 class MuRingForwardDoubleLayer;
0015 class MuDetRing;
0016 
0017 #include <Geometry/GEMGeometry/interface/GEMGeometry.h>
0018 #include "RecoMuon/DetLayers/interface/MuDetRod.h"
0019 #include <vector>
0020 
0021 class MuonGEMDetLayerGeometryBuilder {
0022 public:
0023   /// Constructor (disabled, only static access is allowed)
0024   MuonGEMDetLayerGeometryBuilder() {}
0025 
0026   /// Destructor
0027   virtual ~MuonGEMDetLayerGeometryBuilder();
0028 
0029   /// Builds the forward (+Z, return.first) and backward (-Z, return.second) layers.
0030   /// Both vectors are sorted inside-out
0031   static std::pair<std::vector<DetLayer*>, std::vector<DetLayer*> > buildEndcapLayers(const GEMGeometry& geo);
0032 
0033 private:
0034   static bool isFront(const GEMDetId& gemId);
0035   static MuDetRing* makeDetRing(std::vector<const GeomDet*>& geomDets);
0036 };
0037 #endif