File indexing completed on 2024-04-06 12:14:27
0001 #ifndef DTGeometryBuilder_DTGeometryParsFromDD_h
0002 #define DTGeometryBuilder_DTGeometryParsFromDD_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "DataFormats/GeometrySurface/interface/BoundPlane.h"
0013 #include <vector>
0014
0015 class DTGeometry;
0016 class DDCompactView;
0017 class DDFilteredView;
0018 namespace cms {
0019 class DDFilteredView;
0020 class DDCompactView;
0021 }
0022 class DTChamber;
0023 class DTSuperLayer;
0024 class DTLayer;
0025 class Bounds;
0026 class MuonGeometryConstants;
0027 class RecoIdealGeometry;
0028
0029 class DTGeometryParsFromDD {
0030 public:
0031
0032 DTGeometryParsFromDD();
0033
0034
0035 virtual ~DTGeometryParsFromDD();
0036
0037
0038 void build(const DDCompactView* cview, const MuonGeometryConstants& muonConstants, RecoIdealGeometry& rig);
0039
0040
0041 void build(const cms::DDCompactView* cview, const MuonGeometryConstants& muonConstants, RecoIdealGeometry& rgeo);
0042
0043 enum DTDetTag { DTChamberTag, DTSuperLayerTag, DTLayerTag };
0044
0045 private:
0046
0047
0048 void insertChamber(DDFilteredView& fv,
0049 const std::string& type,
0050 const MuonGeometryConstants& muonConstants,
0051 RecoIdealGeometry& rig) const;
0052
0053
0054 void insertSuperLayer(DDFilteredView& fv,
0055 const std::string& type,
0056 const MuonGeometryConstants& muonConstants,
0057 RecoIdealGeometry& rig) const;
0058
0059
0060 void insertLayer(DDFilteredView& fv,
0061 const std::string& type,
0062 const MuonGeometryConstants& muonConstants,
0063 RecoIdealGeometry& rig) const;
0064
0065
0066 std::vector<double> extractParameters(DDFilteredView& fv) const;
0067
0068 typedef std::pair<std::vector<double>, std::vector<double> > PosRotPair;
0069
0070 PosRotPair plane(const DDFilteredView& fv) const;
0071
0072 void buildGeometry(DDFilteredView& fv, const MuonGeometryConstants& muonConstants, RecoIdealGeometry& rig) const;
0073
0074
0075
0076 void buildGeometry(cms::DDFilteredView& fv, const MuonGeometryConstants& muonConstants, RecoIdealGeometry& rig) const;
0077
0078
0079 void insertChamber(cms::DDFilteredView& fv, const MuonGeometryConstants& muonConstants, RecoIdealGeometry& rig) const;
0080
0081
0082 void insertSuperLayer(cms::DDFilteredView& fv,
0083 const MuonGeometryConstants& muonConstants,
0084 RecoIdealGeometry& rig) const;
0085
0086
0087 void insertLayer(cms::DDFilteredView& fv, const MuonGeometryConstants& muonConstants, RecoIdealGeometry& rig) const;
0088
0089 PosRotPair plane(const cms::DDFilteredView& fv) const;
0090 };
0091 #endif