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