CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
myEvtRandomEngine.cc
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 //
3 // Module: myEvtRandomEngine.cpp
4 //
5 // Description:
6 // this is an EvtRandomEngine
7 // It is used as an interface of the random number engine provided
8 // by the CMSSW Random Number Generator Service and EvtGen
9 // Its "random()" method uses the "Flat()" method of the CLHEP::HepRandomEngine
10 // provided by the Random Number Generator Service
11 //
12 // Modification history:
13 //
14 // Nello Nappi May 9, 2007 Module created
15 //
16 //------------------------------------------------------------------------
17 //
19 #include "CLHEP/Random/RandomEngine.h"
21 
22 myEvtRandomEngine::myEvtRandomEngine(CLHEP::HepRandomEngine *xx) { the_engine = xx; }
23 
25 
27  if (the_engine == nullptr) {
28  throwNullPtr();
29  }
30  return the_engine->flat();
31 }
32 
34  throw edm::Exception(edm::errors::LogicError) << "The EvtGen code attempted to a generate random number while\n"
35  << "the engine pointer was null. This might mean that the code\n"
36  << "was modified to generate a random number outside the event and\n"
37  << "beginLuminosityBlock methods, which is not allowed.\n";
38 }
myEvtRandomEngine(CLHEP::HepRandomEngine *xx)
~myEvtRandomEngine() override
double random() override
CLHEP::HepRandomEngine * the_engine
void throwNullPtr() const