00001
00002 #ifndef LHCBEVENT_RANDOMNUMBERSEED_H
00003 #define LHCBEVENT_RANDOMNUMBERSEED_H 1
00004
00005
00006
00007 #include <iostream>
00008 #include "GaudiKernel/StreamBuffer.h"
00009 #include "GlastEvent/TopLevel/Definitions.h"
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 class RandomNumberSeed {
00025
00026 public:
00027
00029 RandomNumberSeed()
00030 : m_seed1(0),
00031 m_seed2(0) { }
00032 RandomNumberSeed (unsigned long seed1, unsigned long seed2)
00033 : m_seed1(seed1),
00034 m_seed2(seed2) { }
00036 ~RandomNumberSeed() { }
00037
00039 bool operator == (const RandomNumberSeed& t) const {
00040 return (m_seed1 == t.m_seed1) && (m_seed2 == t.m_seed2);
00041 }
00043 unsigned long seed1() const {
00044 return m_seed1;
00045 }
00047 void setSeed1( unsigned long value ) {
00048 m_seed1 = value;
00049 }
00051 unsigned long seed2() const {
00052 return m_seed2;
00053 }
00055 void setSeed2( unsigned long value ) {
00056 m_seed2 = value;
00057 }
00058
00060 friend StreamBuffer& operator<< ( StreamBuffer& s,
00061 const RandomNumberSeed& obj ) {
00062 return s << obj.m_seed1 << obj.m_seed2;
00063 }
00065 friend StreamBuffer& operator>> ( StreamBuffer& s,
00066 RandomNumberSeed& obj ) {
00067 return s >> obj.m_seed1 >> obj.m_seed2;
00068 }
00069
00071 friend std::ostream& operator<< ( std::ostream& s,
00072 const RandomNumberSeed& obj ) {
00073 return obj.fillStream(s);
00074 }
00076 std::ostream& fillStream( std::ostream& s ) const {
00077 return s << "class RandomNumberSeed ( seed1, seed2 ) : ( "
00078 << GlastEventField( GlastEvent::field12 )
00079 << m_seed1 << ", "
00080 << GlastEventField( GlastEvent::field12 )
00081 << m_seed2 << " )";
00082 }
00083
00084 private:
00085
00087 unsigned long m_seed1;
00089 unsigned long m_seed2;
00090
00091 };
00092
00093
00094 #endif // LHCBEVENT_RANDOMNUMBERSEED_H