Go to the documentation of this file.00001 #ifndef DTGeometryBuilder_DTGeometryBuilderFromDDD_h
00002 #define DTGeometryBuilder_DTGeometryBuilderFromDDD_h
00003
00014 #include "DataFormats/GeometrySurface/interface/BoundPlane.h"
00015 #include <vector>
00016 #include <boost/shared_ptr.hpp>
00017
00018 class DTGeometry;
00019 class DDCompactView;
00020 class DDFilteredView;
00021 class DTChamber;
00022 class DTSuperLayer;
00023 class DTLayer;
00024 class Bounds;
00025 class MuonDDDConstants;
00026
00027 class DTGeometryBuilderFromDDD {
00028 public:
00030 DTGeometryBuilderFromDDD();
00031
00033 virtual ~DTGeometryBuilderFromDDD();
00034
00035
00036 void build(boost::shared_ptr<DTGeometry> theGeometry,
00037 const DDCompactView* cview,
00038 const MuonDDDConstants& muonConstants);
00039
00040 private:
00042 DTChamber* buildChamber(DDFilteredView& fv,
00043 const std::string& type,
00044 const MuonDDDConstants& muonConstants) const;
00045
00047 DTSuperLayer* buildSuperLayer(DDFilteredView& fv,
00048 DTChamber* chamber,
00049 const std::string& type,
00050 const MuonDDDConstants& muonConstants) const;
00051
00053 DTLayer* buildLayer(DDFilteredView& fv,
00054 DTSuperLayer* sl,
00055 const std::string& type,
00056 const MuonDDDConstants& muonConstants) const;
00057
00059 std::vector<double> extractParameters(DDFilteredView& fv) const ;
00060
00061 typedef ReferenceCountingPointer<BoundPlane> RCPPlane;
00062
00063 RCPPlane plane(const DDFilteredView& fv,
00064 const Bounds& bounds) const ;
00065
00066 void buildGeometry(boost::shared_ptr<DTGeometry> theGeometry,
00067 DDFilteredView& fv,
00068 const MuonDDDConstants& muonConstants) const;
00069
00070 };
00071 #endif
00072