Belle II Software  release-05-02-19
RandomNumbers.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010-2015 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Thomas Kuhr, Martin Ritter *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <string>
14 #include <framework/core/RandomGenerator.h>
15 
16 namespace Belle2 {
25  class RandomNumbers {
26 
27  public:
31  static void initialize();
32 
38  static void initialize(const std::string& seed);
39 
43  static bool isInitialized();
44 
49  static void initializeBeginRun();
50 
55  static void initializeEndRun();
56 
66  static void initializeEvent(bool force = false);
67 
72  static void useEventDependent();
73 
75  static RandomGenerator& getEventRandomGenerator() { return *s_evtRng; }
76 
80  static void barrier();
81 
87  static void setSeed(const std::string& seed);
88 
94  static std::string getSeed() {return s_initialSeed;};
95 
96  //--------------------------------------------------
97  // Python API
98  //--------------------------------------------------
99 
103  static void exposePythonAPI();
104 
105 
106  private:
108  static RandomGenerator* s_evtRng;
110  static RandomGenerator* s_runRng;
113  static std::string s_initialSeed;
115  static int s_barrierOffset;
116  };
117 
119 } //end of namespace Belle2
Belle2::RandomNumbers::s_initialSeed
static std::string s_initialSeed
The random number generator seed set by the user.
Definition: RandomNumbers.h:121
Belle2::RandomNumbers::useEventDependent
static void useEventDependent()
Set Event dependent Random Generator as current one.
Definition: RandomNumbers.cc:130
Belle2::RandomNumbers::barrier
static void barrier()
Increase random barrier.
Definition: RandomNumbers.cc:71
Belle2::RandomNumbers::s_runRng
static RandomGenerator * s_runRng
event independent random generator to be used for begin/end run processing
Definition: RandomNumbers.h:118
Belle2::RandomNumbers::initializeEndRun
static void initializeEndRun()
Initialize run independent random generator for end run.
Definition: RandomNumbers.cc:99
Belle2::RandomNumbers::initialize
static void initialize()
Initialize the random number generator with a unique random seed;.
Definition: RandomNumbers.cc:34
Belle2::RandomNumbers::exposePythonAPI
static void exposePythonAPI()
Exposes methods of the RandomNumbers class to Python.
Definition: RandomNumbers.cc:152
Belle2::RandomNumbers::setSeed
static void setSeed(const std::string &seed)
Sets the seed for the random number generator.
Definition: RandomNumbers.cc:81
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::RandomNumbers::initializeEvent
static void initializeEvent(bool force=false)
Initialize event information.
Definition: RandomNumbers.cc:110
Belle2::RandomNumbers::s_evtRng
static RandomGenerator * s_evtRng
event dependent random generator to be used for event processing
Definition: RandomNumbers.h:116
Belle2::RandomNumbers::getEventRandomGenerator
static RandomGenerator & getEventRandomGenerator()
return reference to the event dependent random generator
Definition: RandomNumbers.h:83
Belle2::RandomNumbers::isInitialized
static bool isInitialized()
Truth that the random number generator has been initialized.
Definition: RandomNumbers.cc:66
Belle2::RandomNumbers::getSeed
static std::string getSeed()
Get the random number generator seed.
Definition: RandomNumbers.h:102
Belle2::RandomNumbers::s_barrierOffset
static int s_barrierOffset
barrier index offset to be used in begin/endRun.
Definition: RandomNumbers.h:123
Belle2::RandomNumbers::initializeBeginRun
static void initializeBeginRun()
Initialize run independent random generator for begin run.
Definition: RandomNumbers.cc:87