Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/clhep/include/CLHEP/Random/Random.h

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/clhep/include/CLHEP/Random/Random.h (Version 11.3.0) and /externals/clhep/include/CLHEP/Random/Random.h (Version 5.2.p2)


  1 // -*- C++ -*-                                      1 
  2 //                                                
  3 // -------------------------------------------    
  4 //                             HEP Random         
  5 //                          --- HepRandom ---     
  6 //                          class header file     
  7 // -------------------------------------------    
  8 // This file is part of Geant4 (simulation too    
  9 //                                                
 10 // It's a singleton instantiated by default wi    
 11 // It uses an instantiated HepJamesRandom engi    
 12 // for pseudo-random number generation. HepRan    
 13 // data member theGenerator and a set of stati    
 14 // it. By means of theGenerator the user can c    
 15 // algorithm, get and set the seeds and use an    
 16 // distribution.                                  
 17 // Distribution classes inherit from HepRandom    
 18 // not-static interfaces.                         
 19 // A static table of uncorrelated seeds is ava    
 20 // A static method "getTheTableSeeds()" is def    
 21 // seeds at a given index in the table.           
 22                                                   
 23 // ===========================================    
 24 // Gabriele Cosmo - Created: 5th Sep 1995         
 25 //                - Minor update: 17th May 199    
 26 //                - Poisson now operates on do    
 27 //                - Added methods for engine s    
 28 //                - Fixed default values to se    
 29 //                  setTheSeeds() static metho    
 30 //                - Modified HepRandom to act     
 31 //                  are kept public for backwa    
 32 //                  of seeds from HepRandomEng    
 33 //                - Relocated Poisson and Gaus    
 34 //                  initialisation of static g    
 35 // ===========================================    
 36                                                   
 37 #ifndef HepRandom_h                               
 38 #define HepRandom_h 1                             
 39                                                   
 40 #include "CLHEP/Random/RandomEngine.h"            
 41                                                   
 42 namespace CLHEP {                                 
 43                                                   
 44 /**                                               
 45  * @author <Gabriele.Cosmo@cern.ch>               
 46  * @ingroup random                                
 47  */                                               
 48 class HepRandom {                                 
 49                                                   
 50 public:                                           
 51                                                   
 52   HepRandom();                                    
 53   HepRandom(long seed);                           
 54   // Contructors with and without a seed using    
 55   // (MixMax).                                    
 56                                                   
 57   HepRandom(HepRandomEngine & algorithm);         
 58   HepRandom(HepRandomEngine * algorithm);         
 59   // Constructor taking an alternative engine     
 60   // given the corresponding object will be de    
 61   // destructor.                                  
 62                                                   
 63   virtual ~HepRandom();                           
 64   // Destructor                                   
 65                                                   
 66   // implicitly allow compiler-generated copy     
 67                                                   
 68   double flat();                                  
 69   // Returns the flat value ( interval ]0...1[    
 70                                                   
 71   void flatArray(const int size, double* vect)    
 72   // Fills "vect" array of flat random values,    
 73                                                   
 74   inline double flat (HepRandomEngine* theNewE    
 75   // Returns a flat value, given a defined Ran    
 76                                                   
 77   inline void flatArray(HepRandomEngine* theNe    
 78                         const int size, double    
 79   // Fills "vect" array of flat random values,    
 80   // and a defined Random Engine.                 
 81                                                   
 82   virtual double operator()();                    
 83   // To get a flat random number using the ope    
 84                                                   
 85   virtual std::string name() const;               
 86   virtual HepRandomEngine & engine();             
 87                                                   
 88                                                   
 89   virtual std::ostream & put ( std::ostream &     
 90   virtual std::istream & get ( std::istream &     
 91   // Save and restore to/from streams             
 92                                                   
 93   // -----------------------------------------    
 94   // Static member functions using the static     
 95   // -----------------------------------------    
 96                                                   
 97   static void setTheSeed(long seed, int lxr=3)    
 98   // (Re)Initializes the generator with a seed    
 99                                                   
100   static long getTheSeed();                       
101   // Gets the current seed of the current gene    
102                                                   
103   static void setTheSeeds(const long* seeds, i    
104   // (Re)Initializes the generator with a zero    
105                                                   
106   static const long* getTheSeeds();               
107   // Gets the current array of seeds of the cu    
108                                                   
109   static void getTheTableSeeds (long* seeds, i    
110   // Gets the array of seeds in the static see    
111                                                   
112   static HepRandom * getTheGenerator();           
113   // Return the current static generator.         
114                                                   
115   static void setTheEngine (HepRandomEngine* t    
116   // To set the underlying algorithm object.      
117                                                   
118   static HepRandomEngine * getTheEngine();        
119   // Returns a pointer to the underlying algor    
120                                                   
121   static void saveEngineStatus( const char fil    
122   // Saves to file the current status of the c    
123                                                   
124   static void restoreEngineStatus( const char     
125   // Restores a saved status (if any) for the     
126                                                   
127   static std::ostream& saveFullState ( std::os    
128   // Saves to stream the state of the engine a    
129                                                   
130   static std::istream& restoreFullState ( std:    
131   // Restores from stream the state of the eng    
132                                                   
133   static std::ostream& saveDistState ( std::os    
134   // Saves to stream the state of the cached d    
135                                                   
136   static std::istream& restoreDistState ( std:    
137   // Restores from stream the state of the cac    
138                                                   
139   static std::ostream& saveStaticRandomStates     
140   // Saves to stream the engine and cached dat    
141                                                   
142   static std::istream& restoreStaticRandomStat    
143   // Restores from stream the engine and cache    
144                                                   
145   static void showEngineStatus();                 
146   // Dumps the current engine status on screen    
147                                                   
148   static int createInstance();                    
149   // used to initialise the default engine        
150                                                   
151   static std::string distributionName() {retur    
152   // Provides the name of this distribution cl    
153                                                   
154 protected:     // -------- Data members ------    
155                                                   
156   static const long seedTable[215][2];            
157   // Table of seeds                               
158                                                   
159 };                                                
160                                                   
161 std::ostream & operator<< (std::ostream & os,     
162 std::istream & operator>> (std::istream & is,     
163                                                   
164 }  // namespace CLHEP                             
165                                                   
166 #include "CLHEP/Random/Random.icc"                
167                                                   
168 #endif                                            
169