CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/Geometry/DTGeometryBuilder/src/DTGeometryParsFromDD.h

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     // Operations
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