00001 // $Header: /nfs/slac/g/glast/ground/cvs/GlastEvent/GlastEvent/Utilities/VolumeID.h,v 1.4 2001/04/18 19:07:26 igable Exp $ 00002 #ifndef GlastEvent_VolumeID_H 00003 #define GlastEvent_VolumeID_H 1 00004 00005 // If you wish to introduce the namespace `GlastEvent', uncomment 00006 // the lines commented as `NameSpace'. 00007 00008 00009 // Include files 00010 #include <iostream> 00011 #include "GaudiKernel/StreamBuffer.h" 00012 #include "GlastEvent/TopLevel/Definitions.h" 00013 00022 //namespace GlastEvent { // NameSpace 00023 00024 class VolumeID { 00025 public: 00026 typedef unsigned long ID; 00028 VolumeID(){}; 00029 VolumeID( ID value ){ m_volumeID = value; }; 00031 ~VolumeID(){}; 00032 00033 VolumeID operator= ( ID value ); 00034 00036 ID volumeID() const; 00038 void setVolumeID( unsigned long value ); 00039 00040 00042 friend StreamBuffer& operator<< ( StreamBuffer& s, const VolumeID& obj ){ 00043 return s << obj.m_volumeID; 00044 } 00046 friend StreamBuffer& operator>> ( StreamBuffer& s, VolumeID& obj ){ 00047 return s >> obj.m_volumeID; 00048 } 00049 00051 friend std::ostream& operator<< ( std::ostream& s, const VolumeID& obj ){ 00052 return obj.fillStream(s); 00053 } 00055 std::ostream& fillStream( std::ostream& s ) const{ 00056 return s << "class VolumeID : " 00057 << GlastEventField( GlastEvent::field4 ) 00058 << m_volumeID; 00059 } 00060 00061 00062 private: 00063 ID m_volumeID; 00064 }; 00065 00066 //} // NameSpace GlastEvent 00067 00068 00069 00070 // Inline codes 00071 00072 //namespace GlastEvent { // NameSpace 00073 00074 00075 inline VolumeID VolumeID::operator= ( VolumeID::ID value ){ 00076 return VolumeID(value); 00077 } 00078 00079 00081 inline VolumeID::ID VolumeID::volumeID() const 00082 { 00083 return m_volumeID; 00084 } 00085 00086 00088 inline void VolumeID::setVolumeID( VolumeID::ID value ) 00089 { 00090 m_volumeID = value; 00091 } 00092 00093 //} // NameSpace GlastEvent 00094 00095 #endif // GlastEvent_VolumeID_H
1.2.3 written by Dimitri van Heesch,
© 1997-2000