Go to the documentation of this file.00001 #ifndef DTGeometryBuilder_DTGeometryParsFromDD_h
00002 #define DTGeometryBuilder_DTGeometryParsFromDD_h
00003
00013 #include "DataFormats/GeometrySurface/interface/BoundPlane.h"
00014 #include <vector>
00015 #include <boost/shared_ptr.hpp>
00016
00017 class DTGeometry;
00018 class DDCompactView;
00019 class DDFilteredView;
00020 class DTChamber;
00021 class DTSuperLayer;
00022 class DTLayer;
00023 class Bounds;
00024 class MuonDDDConstants;
00025 class RecoIdealGeometry;
00026
00027 class DTGeometryParsFromDD {
00028 public:
00030 DTGeometryParsFromDD();
00031
00033 virtual ~DTGeometryParsFromDD();
00034
00035
00036 void build(const DDCompactView* cview,
00037 const MuonDDDConstants& muonConstants,
00038 RecoIdealGeometry& rig) ;
00039
00040 enum DTDetTag { DTChamberTag, DTSuperLayerTag, DTLayerTag };
00041 private:
00043 void insertChamber(DDFilteredView& fv,
00044 const std::string& type,
00045 const MuonDDDConstants& muonConstants,
00046 RecoIdealGeometry& rig) const;
00047
00049 void insertSuperLayer(DDFilteredView& fv,
00050 const std::string& type,
00051 const MuonDDDConstants& muonConstants,
00052 RecoIdealGeometry& rig) const;
00053
00055 void insertLayer(DDFilteredView& fv,
00056 const std::string& type,
00057 const MuonDDDConstants& muonConstants,
00058 RecoIdealGeometry& rig) const;
00059
00061 std::vector<double> extractParameters(DDFilteredView& fv) const ;
00062
00063 typedef std::pair<std::vector<double>, std::vector<double> > PosRotPair;
00064
00065 PosRotPair plane(const DDFilteredView& fv) const ;
00066
00067 void buildGeometry(DDFilteredView& fv,
00068 const MuonDDDConstants& muonConstants,
00069 RecoIdealGeometry& rig) const;
00070
00071 };
00072 #endif
00073