// // $Id: convert_smt.cpp,v 1.1 2001/02/04 14:54:55 hobbs Exp $ // // File: convert_smt.cpp // Purpose: // Created: 3-FEB-2001 John D. Hobbs // // $Revision: 1.1 $ // // // Include files #include #include #include #include #include "silicon_geometry/base/SiBaseGeometry.hpp" #include "silicon_geometry/utils/smt_check_geometry.hpp" #include "d0_geometry/base/BaseGeometry.hpp" #include "d0_geometry/base/d0StandaloneGeometry.hpp" #include "d0stream/d0StreamFactory.hpp" #include "d0stream/d0Stream.hpp" // Global definitions // Constructors/Destructors using namespace std; // Accessors int main(int argc, char **argv) { // Read the geometry file d0StandaloneGeometry d0geom(argc,argv); d0_Ref d0 = d0geom.get_geometry(); vector rest; d0geom.get_modified_args(rest); // Get a pointer to silicon, and if necessary, modify it in situ. d0_Ref smt = d0->get_mutable_silicon(); bool modified = smt_check_geometry(*smt); // Write out the geometry if it's been modified if( modified ) { // Open the output file and write the requested subdetector d0StreamFactory *dsf = d0StreamFactory::locateStreamFactory(); d0Stream* os = dsf->make_d0Stream(rest[1],"EVPACK",ios::out); if( !os ) { cout << "Error opening output file " << rest[1] << endl; return 2; } os->write(*d0); os->close(); } else cout << "No modification needed. Will not write new geometry" << endl; return 0; }