Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

RandomNumberSeed.h

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/GlastEvent/GlastEvent/Utilities/RandomNumberSeed.h,v 1.2 2001/04/18 19:07:26 igable Exp $
00002 #ifndef LHCBEVENT_RANDOMNUMBERSEED_H
00003 #define LHCBEVENT_RANDOMNUMBERSEED_H 1
00004 
00005 
00006 // Include files
00007 #include <iostream>
00008 #include "GaudiKernel/StreamBuffer.h"
00009 #include "GlastEvent/TopLevel/Definitions.h"
00010 
00011 
00012 //------------------------------------------------------------------------------
00013 //
00014 // ClassName:   RandomNumberSeed
00015 //  
00016 // Description: Random number seed for Monte Carlo
00017 //
00018 // Author:      Pavel Binko
00019 // Changes:     P.Binko 19/10/1999 : Formating of ASCII output
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

Generated at Wed Nov 21 12:22:49 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000