// // $Id: D0MaterialGeometry_t.cpp,v 1.12 2000/12/05 16:52:16 hobbs Exp $ // // File: test_material.cpp // Purpose: // Created: 08-JUN-1998 Harry Melanson // // $Revision: 1.12 $ // // // Include files #include "d0_geometry/base/BaseGeometry.hpp" #include "d0_geometry/material/MaterialGeometry.hpp" #include #include #include #include #include #include #include #include #include #include // RCP stuff #include #include #include using namespace std; using edm::RCPManager; using edm::RCP; int main(int argc, char **argv) // // Purpose: Test MaterialGeometry // { d0om_init("materialG_testing"); // Base Geometry RCPManager* rcpman = RCPManager::instance(); d0_Ref base; try { // Build the default base geometry RCP DefaultRCP = rcpman->extract("d0_geometry","BaseGeometry"); base = BaseGeometry::build_default(&DefaultRCP); // Update each of the geometers in turn. Some Material geometries // require a valid base geometry as part of initialization... SiGeometerDecoupler smt; d0_Ref smtgeom = base->get_silicon(); smt.refresh(smtgeom); CftGeometerDecoupler cft; d0_Ref cftgeom = base->get_cft(); cft.refresh(cftgeom); CpsGeometerDecoupler cps; d0_Ref cpsgeom = base->get_cps(); cps.refresh(cpsgeom); FPSGeometerDecoupler fps; d0_Ref fpsgeom = base->get_fps(); fps.refresh(fpsgeom); CalGeometerDecoupler cal; d0_Ref calgeom = base->get_calorimeter(); cal.refresh(calgeom); MuoGeometerDecoupler muo; d0_Ref muogeom = base->get_muon(); muo.refresh(muogeom); } catch(runtime_error mistake) { cerr << "Caught error: " << mistake.what() << endl; return(1); } catch(const edm::XRCP& x) { cerr << "Caught error: " << x.logMessage() << endl; return(1); } // Material Geometry MaterialGeometry* material_geom = new MaterialGeometry(); try { RCP mainrcp = rcpman->extract("d0_geometry","MaterialGeometry"); material_geom->build(&mainrcp); } catch(runtime_error mistake) { cerr << "Caught error: " << mistake.what() << endl; return(1); } catch(const edm::XRCP& x) { cerr << "Caught error: " << x.logMessage() << endl; return(1); } cout << "Get Material Geometer" << endl; CftMaterialGeometer* cft_mat = CftMaterialGeometer::get_instance(); cout << "CFT Material Geometry" << endl; cft_mat->print_geometry(); return 0; }