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 class string; 00022 00023 class EcalTBHodoscopeGeometryLoaderFromDDD 00024 { 00025 public: 00026 EcalTBHodoscopeGeometryLoaderFromDDD(); 00027 00028 virtual ~EcalTBHodoscopeGeometryLoaderFromDDD() 00029 { 00030 if (_scheme) 00031 delete _scheme; 00032 }; 00033 00034 std::auto_ptr<CaloSubdetectorGeometry> load(const DDCompactView* cpv); 00035 00036 private: 00037 void makeGeometry(const DDCompactView* cpv,CaloSubdetectorGeometry* ebg); 00038 unsigned int getDetIdForDDDNode(const DDFilteredView &fv); 00039 std::string getDDDString(std::string s,DDFilteredView* fv); 00040 DDFilter* getDDFilter(); 00041 EcalHodoscopeNumberingScheme* _scheme; 00042 }; 00043 00044 #endif