Back to home page

Project CMSSW displayed by LXR

 
 

    


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  * Adds GeometricTimingDets representing final modules to the previous level
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  // Geometry_MTDNumberingBuilder_CmsMTDConstruction_H