| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
HepRndm::Engine< TYPE > Class Template Reference

`#include <HepRndmEngine.h>`

Inheritance diagram for HepRndm::Engine< TYPE >:
[legend]
Collaboration diagram for HepRndm::Engine< TYPE >:
[legend]

## Public Member Functions
| Engine (const std::string &name, ISvcLocator *loc)
| Standard Constructor.
virtual | ~Engine ()
| Standard Destructor.
virtual StatusCode | initialize ()
| Initialize the Engine.
virtual StatusCode | finalize ()
| Finalize the Engine.
virtual StatusCode | initializeEngine ()
| Create/Initialize new HepEngine....
virtual double | rndm () const
| Single shot / This was declared "virtual double rndm()" which causes / compiler warnings since the signature if different than / that for RndmEngine::rndm(). I've assumed that the difference / is an error. If it is in fact a deliberate addition of a / new function, remove the "const" below and uncomment the / subsequent lines.
StatusCode | setSeeds (const std::vector< long > &seed)
| virtual double rndm() const { return BaseEngine::rndm( ); }
StatusCode | seeds (std::vector< long > &seed) const
| Retrieve seeds.
template<>
StatusCode | initializeEngine ()
template<>
StatusCode | initializeEngine ()
template<>
StatusCode | initializeEngine ()
template<>
StatusCode | initializeEngine ()
template<>
StatusCode | initializeEngine ()
template<>
StatusCode | initializeEngine ()
template<>
StatusCode | initializeEngine ()
template<>
StatusCode | initializeEngine ()
template<>
StatusCode | initializeEngine ()
template<>
StatusCode | initializeEngine ()
template<>
StatusCode | initializeEngine ()
Public Member Functions inherited from HepRndm::BaseEngine
| BaseEngine (const std::string &name, ISvcLocator *loc)
virtual | ~BaseEngine ()
CLHEP::HepRandomEngine * | hepEngine ()
Public Member Functions inherited from RndmEngine
virtual StatusCode | rndmArray (std::vector< double > &array, long howmany, long start=0) const
| Multiple shots returning vector with flat random numbers.
virtual StreamBuffer & | serialize (StreamBuffer &str)
| Input serialization from stream buffer.
virtual StreamBuffer & | serialize (StreamBuffer &str) const
| Output serialization to stream buffer.
virtual void | handle (const Incident &inc)
| Inform that a new incident has occurred.
Public Member Functions inherited from extends3< Service, IRndmEngine, ISerialize, IIncidentListener >
| extends3 (A1 a1, A2 a2, A3 a3)
| Templated constructor with 3 arguments.
| extends3 (A1 a1, A2 a2)
| Templated constructor with 2 arguments.
| extends3 (A1 a1)
| Templated constructor with 1 argument.
| extends3 ()
| Default constructor.
virtual void * | i_cast (const InterfaceID &tid) const
| Implementation of IInterface::i_cast.
virtual StatusCode | queryInterface (const InterfaceID &ti, void **pp)
| Implementation of IInterface::queryInterface.
virtual std::vector< std::string > | getInterfaceNames () const
| Implementation of IInterface::getInterfaceNames.
virtual | ~extends3 ()
| Virtual destructor.
Public Member Functions inherited from Service
virtual unsigned long | release ()
| Release Interface instance.
virtual const std::string & | name () const
| Retrieve name of the service.
virtual StatusCode | configure ()
virtual StatusCode | start ()
virtual StatusCode | stop ()
virtual StatusCode | terminate ()
virtual Gaudi::StateMachine::State | FSMState () const
virtual Gaudi::StateMachine::State | targetFSMState () const
virtual StatusCode | reinitialize ()
virtual StatusCode | restart ()
virtual StatusCode | sysInitialize ()
| Initialize Service.
virtual StatusCode | sysStart ()
| Initialize Service.
virtual StatusCode | sysStop ()
| Initialize Service.
virtual StatusCode | sysFinalize ()
| Finalize Service.
virtual StatusCode | sysReinitialize ()
| Re-initialize the Service.
virtual StatusCode | sysRestart ()
| Re-initialize the Service.
virtual StatusCode | setProperty (const Property &p)
virtual StatusCode | setProperty (const std::string &s)
virtual StatusCode | setProperty (const std::string &n, const std::string &v)
virtual StatusCode | getProperty (Property *p) const
virtual const Property & | getProperty (const std::string &name) const
virtual StatusCode | getProperty (const std::string &n, std::string &v) const
virtual const std::vector < Property * > & | getProperties () const
template<class TYPE >
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value
| Service (const std::string &name, ISvcLocator *svcloc)
| Standard Constructor.
SmartIF< ISvcLocator > & | serviceLocator () const
| Retrieve pointer to service locator.
StatusCode | setProperties ()
| Method for setting declared properties to the values specified for the job.
template<class T >
StatusCode | service (const std::string &name, const T *&psvc, bool createIf=true) const
| Access a service by name, creating it if it doesn't already exist.
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=true) const
template<class T >
StatusCode | service (const std::string &svcType, const std::string &svcName, T *&psvc) const
| Access a service by name and type, creating it if it doesn't already exist.
template<class T >
Property * | declareProperty (const std::string &name, T &property, const std::string &doc="none") const
| Declare the named property.
Property * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
| Declare remote named properties.
SmartIF< IAuditorSvc > & | auditorSvc () const
| The standard auditor service.May not be invoked before sysInitialize() has been invoked.
Public Member Functions inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
| CommonMessaging (const A1 &a1, const A2 &a2, const A3 &a3)
| Templated constructor with 3 arguments.
| CommonMessaging (const A1 &a1, const A2 &a2)
| Templated constructor with 2 arguments.
| CommonMessaging (const A1 &a1)
| Templated constructor with 1 argument.
| CommonMessaging ()
| Default constructor.
virtual | ~CommonMessaging ()
| Virtual destructor.
SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service.
MsgStream & | msgStream () const
| Return an uninitialized MsgStream.
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts.
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS)
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL)
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR)
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR)
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING)
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO)
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG)
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE)
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO)
MSG::Level | msgLevel () const
| get the output level from the embedded MsgStream
bool | msgLevel (MSG::Level lvl) const
| get the output level from the embedded MsgStream
Public Member Functions inherited from extend_interfaces3< I1, I2, I3 >
virtual | ~extend_interfaces3 ()
| Virtual destructor.

## Protected Attributes
std::vector< long > | m_seeds
int | m_row
int | m_col
int | m_lux
bool | m_useTable
bool | m_setSingleton
Protected Attributes inherited from HepRndm::BaseEngine
CLHEP::HepRandomEngine * | m_hepEngine
Protected Attributes inherited from RndmEngine
SmartIF< IIncidentSvc > | m_pIncidentSvc
| Reference to the incident service.

## Additional Inherited Members
Public Types inherited from extends3< Service, IRndmEngine, ISerialize, IIncidentListener >
typedef extends3 | base_class
| Typedef to this class.
typedef extend_interfaces3 < IRndmEngine, ISerialize, IIncidentListener > | extend_interfaces_base
| Typedef to the base of this class.
typedef extend_interfaces_base::ext_iids | interfaces
| MPL set of all the implemented interfaces.
Protected Member Functions inherited from RndmEngine
| RndmEngine (const std::string &name, ISvcLocator *loc)
| Standard Constructor.
virtual | ~RndmEngine ()
| Standard Destructor.

## Detailed Description

### template<class TYPE>
class HepRndm::Engine< TYPE >

Definition at line 25 of file HepRndmEngine.h.

## Constructor & Destructor Documentation

template<class TYPE >

HepRndm::Engine< TYPE >::Engine | ( | const std::string & | name,
|  | ISvcLocator * | loc
| ) |  |

Standard Constructor.

Definition at line 57 of file HepRndmEngines.cpp.

: BaseEngine (nam, loc) {
declareProperty("Seeds", m_seeds);
declareProperty("Column", m_col = 0);
declareProperty("Row", m_row = 1);
declareProperty("Luxury", m_lux = 3);
declareProperty("UseTable", m_useTable = false);
declareProperty("SetSingleton",m_setSingleton = false);
}
template<class TYPE >

HepRndm::Engine< TYPE >::~Engine | ( |  | ) |
| virtual

Standard Destructor.

Definition at line 68 of file HepRndmEngines.cpp.

{
}

## Member Function Documentation

template<class TYPE >

StatusCode HepRndm::Engine< TYPE >::finalize | ( |  | ) |
| virtual

Finalize the Engine.

Reimplemented from RndmEngine.

Definition at line 117 of file HepRndmEngines.cpp.

{
if ( m_hepEngine ) {
HepRandom::setTheEngine(0);
delete m_hepEngine;
}
m_seeds.clear();
m_hepEngine = 0;
return RndmEngine::finalize();
}
template<class TYPE >

StatusCode HepRndm::Engine< TYPE >::initialize | ( |  | ) |
| virtual

Initialize the Engine.

Reimplemented from RndmEngine.

Definition at line 72 of file HepRndmEngines.cpp.

{
m_seeds.erase(m_seeds.begin(), m_seeds.end());
StatusCode status = RndmEngine::initialize();
if ( m_seeds.size() == 0 ) {
// Default seeds
long theSeed = 1234567;
m_seeds.push_back(theSeed);
m_seeds.push_back(0);
}
MsgStream log(msgSvc(), name());
if ( status.isSuccess() ) {
status = initializeEngine();
if ( status.isSuccess() ) {
log << MSG::INFO << "Generator engine type:"
<< System::typeinfoName(typeid(TYPE))
<< endmsg;
if ( m_useTable ) {
if ( m_row > 214 || m_col > 1 ) {
log << MSG::ERROR << "Generator engine seed table has dimension [215][2], you gave:"
<< " Row=" << m_row << " Column:" << m_col << endmsg;
status = StatusCode::FAILURE;
}
else {
log << MSG::INFO << "Generator engine seeds from table."
<< " Row=" << m_row << " Column:" << m_col << endmsg;
}
}
log << "Current Seed:" << m_hepEngine->getSeed();
log << " Luxury:" << m_lux;
log << endmsg;
// Use the default static engine if required (e.g. for GEANT4)
if ( m_setSingleton ) {
HepRandom::setTheEngine(m_hepEngine);
log << "This is the GEANT4 engine!" << endmsg;
}
return status;
}
}
log << MSG::ERROR << "Cannot initialze random engine of type:"
<< System::typeinfoName(typeid(TYPE))
<< endmsg;
return status;
}
template<class TYPE >

virtual StatusCode HepRndm::Engine< TYPE >::initializeEngine | ( |  | ) |
| virtual

Create/Initialize new HepEngine....

template<>

StatusCode HepRndm::Engine< DualRand >::initializeEngine | ( |  | ) |

Definition at line 166 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new DualRand(m_row, m_col) : new DualRand(m_seeds[0]);
return StatusCode::SUCCESS;
}
template<>

StatusCode HepRndm::Engine< TripleRand >::initializeEngine | ( |  | ) |

Definition at line 171 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new TripleRand(m_row, m_col) : new TripleRand(m_seeds[0]);
return StatusCode::SUCCESS;
}
template<>

StatusCode HepRndm::Engine< DRand48Engine >::initializeEngine | ( |  | ) |

Definition at line 176 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new DRand48Engine(m_row, m_col) : new DRand48Engine(m_seeds[0]);
return StatusCode::SUCCESS;
}
template<>

StatusCode HepRndm::Engine< Hurd160Engine >::initializeEngine | ( |  | ) |

Definition at line 181 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new Hurd160Engine(m_row, m_col) : new Hurd160Engine(m_seeds[0]);
return StatusCode::SUCCESS;
}
template<>

StatusCode HepRndm::Engine< Hurd288Engine >::initializeEngine | ( |  | ) |

Definition at line 186 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new Hurd288Engine(m_row, m_col) : new Hurd288Engine(m_seeds[0]);
return StatusCode::SUCCESS;
}
template<>

StatusCode HepRndm::Engine< RanecuEngine >::initializeEngine | ( |  | ) |

Definition at line 191 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new RanecuEngine(m_row) : new RanecuEngine(m_seeds[0]);
return StatusCode::SUCCESS;
}
template<>

StatusCode HepRndm::Engine< RanshiEngine >::initializeEngine | ( |  | ) |

Definition at line 196 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new RanshiEngine(m_row, m_col) : new RanshiEngine(m_seeds[0]);
return StatusCode::SUCCESS;
}
template<>

StatusCode HepRndm::Engine< RanluxEngine >::initializeEngine | ( |  | ) |

Definition at line 201 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new RanluxEngine(m_row, m_col, m_lux) : new RanluxEngine(m_seeds[0], m_lux);
return StatusCode::SUCCESS;
}
template<>

StatusCode HepRndm::Engine< Ranlux64Engine >::initializeEngine | ( |  | ) |

Definition at line 206 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new Ranlux64Engine(m_row, m_col, m_lux) : new Ranlux64Engine(m_seeds[0], m_lux);
return StatusCode::SUCCESS;
}
template<>

StatusCode HepRndm::Engine< MTwistEngine >::initializeEngine | ( |  | ) |

Definition at line 211 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new MTwistEngine(m_row, m_col) : new MTwistEngine(m_seeds[0]);
return StatusCode::SUCCESS;
}
template<>

StatusCode HepRndm::Engine< HepJamesRandom >::initializeEngine | ( |  | ) |

Definition at line 216 of file HepRndmEngines.cpp.

{
m_hepEngine = (m_useTable) ? new HepJamesRandom(m_row, m_col) : new HepJamesRandom(m_seeds[0]);
return StatusCode::SUCCESS;
}
template<class TYPE >

double HepRndm::Engine< TYPE >::rndm | ( |  | ) | const
| virtual

Single shot / This was declared "virtual double rndm()" which causes / compiler warnings since the signature if different than / that for RndmEngine::rndm(). I've assumed that the difference / is an error. If it is in fact a deliberate addition of a / new function, remove the "const" below and uncomment the / subsequent lines.

Reimplemented from RndmEngine.

Definition at line 128 of file HepRndmEngines.cpp.

{
return m_hepEngine->flat();
}
template<class TYPE >

StatusCode HepRndm::Engine< TYPE >::seeds | ( | std::vector< long > & | seed | ) | const

Retrieve seeds.

Definition at line 150 of file HepRndmEngines.cpp.

{
/*
const long *s = m_hepEngine->getSeeds();
for ( size_t i = 0; i < NUMBER_OF_SEEDS; i++ ) {
seed.push_back(s[i]);
if ( m_seeds.size() > i )
m_seeds[i] = s[i];
else
m_seeds.push_back(s[i]);
}
*/
seed.push_back(m_hepEngine->getSeed());
return StatusCode::SUCCESS;
}
template<class TYPE >

StatusCode HepRndm::Engine< TYPE >::setSeeds | ( | const std::vector< long > & | seed | ) |

virtual double rndm() const { return BaseEngine::rndm( ); }

Set seeds

Definition at line 133 of file HepRndmEngines.cpp.

{
typedef std::vector<long> seed_t;
m_seeds.clear();
for ( seed_t::const_iterator i = seed.begin(); i < seed.end(); i++ ) {
m_seeds.push_back(*i);
}
if ( m_seeds.size() > 0 ) {
if ( m_seeds.back() != 0 ) {
m_seeds.push_back(0);
}
m_hepEngine->setSeeds(&m_seeds[0], m_lux);
return StatusCode::SUCCESS;
}
return StatusCode::FAILURE;
}

## Member Data Documentation

template<class TYPE >

int HepRndm::Engine< TYPE >::m_col
| protected

Definition at line 30 of file HepRndmEngine.h.

template<class TYPE >

int HepRndm::Engine< TYPE >::m_lux
| protected

Definition at line 30 of file HepRndmEngine.h.

template<class TYPE >

int HepRndm::Engine< TYPE >::m_row
| protected

Definition at line 30 of file HepRndmEngine.h.

template<class TYPE >

std::vector<long> HepRndm::Engine< TYPE >::m_seeds
| mutable protected

Definition at line 28 of file HepRndmEngine.h.

template<class TYPE >

bool HepRndm::Engine< TYPE >::m_setSingleton
| protected

Definition at line 31 of file HepRndmEngine.h.

template<class TYPE >

bool HepRndm::Engine< TYPE >::m_useTable
| protected

Definition at line 31 of file HepRndmEngine.h.

The documentation for this class was generated from the following files:

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiSvc/src/RndmGenSvc/HepRndmEngine.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/GaudiSvc/src/RndmGenSvc/HepRndmEngines.cpp