00001 // $Id: Surface.h,v 1.4 2008/10/28 12:04:37 cattanem Exp $ 00002 #ifndef DETDESC_SURFACE_H 00003 #define DETDESC_SURFACE_H 1 00005 #include <string> 00007 #include "GaudiKernel/DataObject.h" 00008 #include "GaudiKernel/SmartRefVector.h" 00010 #include "DetDesc/CLIDSurface.h" 00012 class TabulatedProperty; 00013 class MsgStream; 00015 00029 class Surface: public DataObject 00030 { 00032 public: 00034 typedef SmartRefVector<TabulatedProperty> Tables; 00036 public: 00039 Surface( const std::string& Name = ""); 00040 virtual ~Surface(); 00042 virtual const CLID& clID () const { return Surface::classID() ; } 00043 static const CLID& classID () { return CLID_Surface ; } 00044 00046 virtual std::ostream& fillStream ( std::ostream& s ) const ; 00048 virtual MsgStream& fillStream ( MsgStream& s ) const ; 00052 inline unsigned int model () const ; 00053 inline Surface& setModel ( const unsigned int ); 00055 inline unsigned int finish () const ; 00056 inline Surface& setFinish ( const unsigned int ); 00058 inline unsigned int type () const ; 00059 inline Surface& setType ( const unsigned int ); 00061 inline double value () const ; 00062 inline Surface& setValue ( const double ); 00064 inline const std::string& firstVol () const ; 00065 inline Surface& setFirstVol ( const std::string& ); 00067 inline const std::string& secondVol () const ; 00068 inline Surface& setSecondVol ( const std::string& ); 00070 inline const Tables& tabulatedProperties () const ; 00071 inline Tables& tabulatedProperties () ; 00073 private: 00075 unsigned int m_model ; 00076 00077 unsigned int m_finish ; 00078 00079 unsigned int m_type ; 00080 00081 double m_value ; 00082 00083 std::string m_firstVol ; 00084 00085 std::string m_secondVol ; 00086 00087 Tables m_props ; 00088 00089 }; 00091 #include "DetDesc/Surface.icpp" 00093 00094 #endif // DETDESC_SURFACE_H 00095 00096 00097 00098 00099 00100 00101