File indexing completed on 2024-04-06 12:14:27
0001 #ifndef DTGeometryBuilder_DTGeometryBuilderFromDD4hep_h
0002 #define DTGeometryBuilder_DTGeometryBuilderFromDD4hep_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h"
0024 #include "DataFormats/GeometrySurface/interface/Plane.h"
0025 #include "DetectorDescription/DDCMS/interface/DDDetector.h"
0026 #include "DetectorDescription/DDCMS/interface/DDFilteredView.h"
0027 #include "Geometry/MuonNumbering/interface/DTNumberingScheme.h"
0028
0029 #include <DD4hep/SpecParRegistry.h>
0030
0031 namespace dd4hep {
0032 class Detector;
0033 }
0034
0035 class DTGeometry;
0036 class DTChamber;
0037 class DTSuperLayer;
0038 class DTLayer;
0039 class MuonGeometryConstants;
0040 class MuonGeometryNumbering;
0041
0042 class DTGeometryBuilderFromDD4hep {
0043 public:
0044 DTGeometryBuilderFromDD4hep() {}
0045
0046 void build(DTGeometry&, const cms::DDDetector*, const MuonGeometryConstants&, const dd4hep::SpecParRefs&);
0047
0048 private:
0049 void buildGeometry(cms::DDFilteredView&, DTGeometry&, const MuonGeometryConstants&) const;
0050
0051 DTChamber* buildChamber(cms::DDFilteredView&, const MuonGeometryConstants&) const;
0052
0053 DTSuperLayer* buildSuperLayer(cms::DDFilteredView&, DTChamber*, const MuonGeometryConstants&) const;
0054
0055 DTLayer* buildLayer(cms::DDFilteredView&, DTSuperLayer*, const MuonGeometryConstants&) const;
0056
0057 using RCPPlane = ReferenceCountingPointer<Plane>;
0058
0059 RCPPlane plane(const cms::DDFilteredView&, Bounds* bounds) const;
0060 };
0061
0062 #endif