#ifndef MATERIALGEOMETRY_HH #define MATERIALGEOMETRY_HH // // $Id: MaterialGeometry.hpp,v 1.6 2004/03/25 21:57:43 snyder Exp $ // // File: MaterialGeometry.hh // Purpose: To initialize all detector material geometries // Created: 17-SEP-1998 Harry Melanson // // $Revision: 1.6 $ // // // Include files #include #include namespace edm { class RCP; } /** The D0 Material Geometry. The D0 {\bf MaterialGeometry} class is used to initialize each of the individual sub-detector {\bf MaterialGeometry}'s. It is used, for example, by the {\em geometry\_management} CVS package, within the D0 {\bf Framework} context. */ class MaterialGeometry { public: /// Default constructor MaterialGeometry(); /** Build the sub-detector {\bf MaterialGeometry}'s. This method builds the individual sub-detector {\bf MaterialGeometry}'s. The RCP passed to this method must contain RCP's for each individual sub-detector, which are then passed to the corresponding sub-detector methods. @param rcp Pointer to RCP containing default MaterialGeometry information */ void build(edm::RCP* mainrcp); private: }; class XMGNotImplemented: public std::runtime_error { public: XMGNotImplemented(const std::string& whose): // Static is dumb way to do initializaton forced by MS VC++ not recognizing // original, legal code. std::runtime_error(_mystring+whose) {} private: static std::string _mystring; }; #endif //MATERIALGEOMETRY_HH