Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:16:38

0001 
0002 #ifndef RanSeed_h
0003 #define RanSeed_h
0004 
0005 extern "C" { void* ranseed_address_(void); }
0006 
0007 /**
0008 @class RanSeed
0009 @brief  Class definition for RanSeed, which is used
0010       to modify the Hijing RANSEED common.
0011 */
0012 class RanSeed
0013 {
0014 public:
0015     RanSeed();
0016     ~RanSeed();
0017     
0018     int&    nseed   (void);
0019     
0020 private: 
0021 
0022     struct RANSEED;
0023     friend struct RANSEED;
0024 
0025     struct RANSEED
0026     {
0027     int nseed;
0028     };
0029 
0030     static RANSEED* _ranseed;
0031 };
0032 
0033 // set pointer to zero at start
0034 RanSeed::RANSEED* RanSeed::_ranseed =0;
0035 
0036 inline
0037 RanSeed::RanSeed()
0038 {}
0039 
0040 inline
0041 RanSeed::~RanSeed()
0042 {}
0043 
0044 inline int&
0045 RanSeed::nseed  (void)
0046 {
0047     if (!_ranseed) _ranseed = static_cast<RANSEED*>(ranseed_address_());
0048     return _ranseed->nseed;
0049 }
0050 
0051 #endif