00001 #ifndef Geometry_TrackerGeometryBuilder_TrackerGeomBuilderFromGeometricDet_H 00002 #define Geometry_TrackerGeometryBuilder_TrackerGeomBuilderFromGeometricDet_H 00003 00004 #include<string> 00005 #include<vector> 00006 #include <map> 00007 #include <string> 00008 #include "Geometry/TrackerGeometryBuilder/interface/PlaneBuilderFromGeometricDet.h" 00009 #include "Geometry/TrackerGeometryBuilder/interface/GeomDetTypeIdToEnum.h" 00010 #include "Geometry/TrackerGeometryBuilder/interface/GeomTopologyBuilder.h" 00011 #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" 00012 00013 class TrackerGeometry; 00014 class PixelGeomDetType; 00015 class StripGeomDetType; 00016 00017 class TrackerGeomBuilderFromGeometricDet { 00018 public: 00019 00020 TrackerGeometry* build(const GeometricDet* gd); 00021 00022 private: 00023 00024 void buildPixel(std::vector<const GeometricDet*> const &, 00025 TrackerGeometry*,GeomDetType::SubDetector det, const std::string& part); 00026 void buildSilicon(std::vector<const GeometricDet*> const &, 00027 TrackerGeometry*,GeomDetType::SubDetector det, const std::string& part); 00028 void buildGeomDet(TrackerGeometry*); 00029 00030 /* std::string getString(std::string const &, DDExpandedView*) const; */ 00031 /* double getDouble(std::string const &, DDExpandedView*) const; */ 00032 00033 PlaneBuilderFromGeometricDet::ResultType 00034 buildPlaneWithMaterial(const GeometricDet* gd,double scaleFactor=1.) const; 00035 00036 GeomDetTypeIdToEnum theDetIdToEnum; 00037 GeomTopologyBuilder* theTopologyBuilder; 00038 00039 std::map<std::string,PixelGeomDetType*> thePixelDetTypeMap; 00040 std::map<std::string,StripGeomDetType*> theStripDetTypeMap; 00041 }; 00042 00043 #endif