Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef ETLDetLayerGeometryBuilder_h
0002 #define ETLDetLayerGeometryBuilder_h
0003 
0004 /** \class ETLDetLayerGeometryBuilder
0005  *
0006  *  Build the ETL DetLayers.
0007  *
0008  *  \author L. Gray - FNAL
0009  */
0010 
0011 #include <Geometry/MTDGeometryBuilder/interface/MTDGeometry.h>
0012 #include <Geometry/MTDNumberingBuilder/interface/MTDTopology.h>
0013 #include <vector>
0014 
0015 class DetLayer;
0016 class MTDSectorForwardDoubleLayer;
0017 class MTDDetSector;
0018 
0019 class ETLDetLayerGeometryBuilder {
0020 public:
0021   /// return.first=forward (+Z), return.second=backward (-Z)
0022   /// both vectors are sorted inside-out
0023   static std::pair<std::vector<DetLayer*>, std::vector<DetLayer*> > buildLayers(const MTDGeometry& geo,
0024                                                                                 const MTDTopology& topo);
0025 
0026 private:
0027   // Disable constructor - only static access is allowed.
0028   ETLDetLayerGeometryBuilder() {}
0029 
0030   static MTDSectorForwardDoubleLayer* buildLayer(
0031       int endcap, int layer, std::vector<unsigned>& sectors, const MTDGeometry& geo, const MTDTopology& topo);
0032 
0033   static bool isFront(int layer, int ring, int module);
0034   static MTDDetSector* makeDetSector(std::vector<const GeomDet*>& geomDets, const MTDTopology& topo);
0035 };
0036 #endif