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