Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:48:54

0001 #ifndef Geometry_MTDNumberingBuilder_CmsMTDConstruction_H
0002 #define Geometry_MTDNumberingBuilder_CmsMTDConstruction_H
0003 #include <string>
0004 #include <vector>
0005 #include "Geometry/MTDNumberingBuilder/interface/GeometricTimingDet.h"
0006 #include "Geometry/MTDNumberingBuilder/interface/CmsMTDStringToEnum.h"
0007 #include "Geometry/MTDCommonData/interface/ETLNumberingScheme.h"
0008 
0009 /**
0010  * Adds GeometricTimingDets representing final modules to the previous level
0011  */
0012 template <class FilteredView>
0013 class CmsMTDConstruction {
0014 public:
0015   CmsMTDConstruction();
0016   ~CmsMTDConstruction() = default;
0017 
0018   static bool mtdOrderZ(const GeometricTimingDet* a, const GeometricTimingDet* b);
0019   static bool mtdOrderRR(const GeometricTimingDet* a, const GeometricTimingDet* b);
0020   static bool mtdOrderPhi(const GeometricTimingDet* a, const GeometricTimingDet* b);
0021 
0022   void buildBTLModule(FilteredView&, GeometricTimingDet*);
0023   void buildETLModule(FilteredView&, GeometricTimingDet*);
0024 
0025   GeometricTimingDet* buildSubdet(FilteredView&);
0026   GeometricTimingDet* buildLayer(FilteredView&);
0027 
0028   void baseNumberFromHistory(const DDGeoHistory& gh);
0029 
0030   bool isETLtdr(FilteredView&);
0031 
0032 protected:
0033   CmsMTDStringToEnum theCmsMTDStringToEnum;
0034 
0035   ETLNumberingScheme etlScheme_;
0036   MTDBaseNumber baseNumber_;
0037 };
0038 
0039 #endif  // Geometry_MTDNumberingBuilder_CmsMTDConstruction_H