#include #include using namespace RAT; #include #include using namespace std; map< string, GeoSolid* > GeoSolid::fsSolids; void GeoSolid::Destruct() { for( map::iterator iTer = fsSolids.begin(); iTer != fsSolids.end(); ++iTer ) delete iTer->second; fsSolids.clear(); } G4VSolid* GeoSolid::ConstructSolid( const std::string& name, DBLinkPtr table ) { const string solid = table->GetS( "solid" ); if( fsSolids.count( solid ) == 0 ) Log::Die( "GeoSolid::ConstructSolid: No " + solid + " solid" ); else return fsSolids[solid]->Construct( name, table ); }