00001 #ifndef GEOMETRY_ECALTBHODOSCOPEGEOMETRYLOADERFROMDDD_H 00002 #define GEOMETRY_ECALTBHODOSCOPEGEOMETRYLOADERFROMDDD_H 1 00003 00004 #include "Geometry/CaloGeometry/interface/CaloVGeometryLoader.h" 00005 00006 #include "Geometry/EcalTestBeam/interface/EcalHodoscopeNumberingScheme.h" 00007 00008 00017 class DDCompactView; 00018 class DDFilteredView; 00019 class DDFilter; 00020 class CaloSubdetectorGeometry; 00021 #include <memory> 00022 #include <string> 00023 00024 class EcalTBHodoscopeGeometryLoaderFromDDD 00025 { 00026 public: 00027 EcalTBHodoscopeGeometryLoaderFromDDD(); 00028 00029 virtual ~EcalTBHodoscopeGeometryLoaderFromDDD() 00030 { 00031 if (_scheme) 00032 delete _scheme; 00033 }; 00034 00035 std::auto_ptr<CaloSubdetectorGeometry> load(const DDCompactView* cpv); 00036 00037 private: 00038 void makeGeometry(const DDCompactView* cpv,CaloSubdetectorGeometry* ebg); 00039 unsigned int getDetIdForDDDNode(const DDFilteredView &fv); 00040 std::string getDDDString(std::string s,DDFilteredView* fv); 00041 DDFilter* getDDFilter(); 00042 EcalHodoscopeNumberingScheme* _scheme; 00043 }; 00044 00045 #endif