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
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