File indexing completed on 2024-04-06 12:15:16
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/BTLNumberingScheme.h"
0008 #include "Geometry/MTDCommonData/interface/ETLNumberingScheme.h"
0009
0010
0011
0012
0013 template <class FilteredView>
0014 class CmsMTDConstruction {
0015 public:
0016 CmsMTDConstruction();
0017 ~CmsMTDConstruction() = default;
0018
0019 static bool mtdOrderZ(const GeometricTimingDet* a, const GeometricTimingDet* b);
0020 static bool mtdOrderRR(const GeometricTimingDet* a, const GeometricTimingDet* b);
0021 static bool mtdOrderPhi(const GeometricTimingDet* a, const GeometricTimingDet* b);
0022 static bool btlOrderPhi(const GeometricTimingDet* a, const GeometricTimingDet* b);
0023 static bool btlOrderZ(const GeometricTimingDet* a, const GeometricTimingDet* b);
0024
0025 void buildBTLModule(FilteredView&, GeometricTimingDet*);
0026 void buildETLModule(FilteredView&, GeometricTimingDet*);
0027
0028 GeometricTimingDet* buildSubdet(FilteredView&);
0029 GeometricTimingDet* buildLayer(FilteredView&);
0030
0031 void baseNumberFromHistory(const DDGeoHistory& gh);
0032
0033 bool isBTLV2(FilteredView&);
0034 bool isETLpreV8(FilteredView&);
0035
0036 protected:
0037 CmsMTDStringToEnum theCmsMTDStringToEnum;
0038
0039 BTLNumberingScheme btlScheme_;
0040 ETLNumberingScheme etlScheme_;
0041 MTDBaseNumber baseNumber_;
0042 };
0043
0044 #endif