WCSim
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
WCSimRandomParameters.hh
Go to the documentation of this file.
1 #ifndef WCSimRandomParameters_h
2 #define WCSimRandomParameters_h 1
4 #include "WCSimRootOptions.hh"
5 #include "CLHEP/Random/Random.h"
6 #include "CLHEP/Random/RanluxEngine.h"
7 #include "CLHEP/Random/JamesRandom.h"
8 #include "CLHEP/Random/RanecuEngine.h"
9 
11 {
12 
13 public:
15  {
16  seed=31415;
19  }
21 
24  {
25  switch (rng)
26  {
27  case RANDOM_E_RANLUX:
28  {
29  printf("Setting the random number generator to RANLUX\n");
30  CLHEP::RanluxEngine *newluxengine = new CLHEP::RanluxEngine(31415,4); // highest luxury level
31  CLHEP::HepRandom::setTheEngine(newluxengine);
32  }
33  break;
34  case RANDOM_E_RANECU:
35  {
36  printf("Setting the random number generator to RANECU\n");
37  CLHEP::RanecuEngine *newecuengine = new CLHEP::RanecuEngine();
38  CLHEP::HepRandom::setTheEngine(newecuengine);
39  }
40  break;
41 
42  case RANDOM_E_HEPJAMES:
43  {
44  printf("Setting the random number generator to HEPJAMES\n");
45  CLHEP::HepJamesRandom *newjamesengine = new CLHEP::HepJamesRandom();
46  CLHEP::HepRandom::setTheEngine(newjamesengine);
47  }
48  break;
49  default:
50  {
51  printf("Random number generator type not understood: %d\n",rng);
52  exit(0);
53  }
54  }
55  };
56  int GetSeed() {return CLHEP::HepRandom::getTheSeed();}
57  void SetSeed(int iseed)
58  {
59  CLHEP::HepRandom::setTheSeed(iseed);
60  printf("Setting the Random Seed to: %d\n",iseed);
61  seed = iseed;
62  }
63 
65  {
66  wcopt->SetRandomSeed(seed);
68  }
69 
70 private:
72  int seed;
74 };
75 
76 #endif
void SetGenerator(WCSimRandomGenerator_t rng)
void SetRandomSeed(int iRandomSeed)
enum ERandomGeneratorType WCSimRandomGenerator_t
void SaveOptionsToOutput(WCSimRootOptions *wcopt)
WCSimRandomGenerator_t generator
WCSimRandomMessenger * RandomMessenger
WCSimRandomGenerator_t GetGenerator()
void SetRandomGenerator(WCSimRandomGenerator_t iRandomGenerator)