|
Gaudi Framework, version v23r0 |
| Home | Generated: Mon Jan 30 2012 |
#include <HepRndmEngine.h>


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 () |
Protected Attributes | |
| std::vector< long > | m_seeds |
| int | m_row |
| int | m_col |
| int | m_lux |
| bool | m_useTable |
| bool | m_setSingleton |
Definition at line 24 of file HepRndmEngine.h.
| HepRndm::Engine< TYPE >::Engine | ( | const std::string & | name, |
| ISvcLocator * | loc | ||
| ) |
Standard Constructor.
Definition at line 58 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); }
| HepRndm::Engine< TYPE >::~Engine | ( | ) | [virtual] |
| StatusCode HepRndm::Engine< TYPE >::finalize | ( | ) | [virtual] |
Finalize the Engine.
Reimplemented from RndmEngine.
Definition at line 118 of file HepRndmEngines.cpp.
{
if ( m_hepEngine ) {
HepRandom::setTheEngine(0);
delete m_hepEngine;
}
m_seeds.clear();
m_hepEngine = 0;
return RndmEngine::finalize();
}
| StatusCode HepRndm::Engine< TYPE >::initialize | ( | ) | [virtual] |
Initialize the Engine.
Reimplemented from RndmEngine.
Definition at line 73 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;
}
| StatusCode HepRndm::Engine< HepJamesRandom >::initializeEngine | ( | ) |
Definition at line 217 of file HepRndmEngines.cpp.
{
m_hepEngine = (m_useTable) ? new HepJamesRandom(m_row, m_col) : new HepJamesRandom(m_seeds[0]);
return StatusCode::SUCCESS;
}
| StatusCode HepRndm::Engine< Ranlux64Engine >::initializeEngine | ( | ) |
Definition at line 207 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;
}
| StatusCode HepRndm::Engine< RanluxEngine >::initializeEngine | ( | ) |
Definition at line 202 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;
}
| StatusCode HepRndm::Engine< RanshiEngine >::initializeEngine | ( | ) |
Definition at line 197 of file HepRndmEngines.cpp.
{
m_hepEngine = (m_useTable) ? new RanshiEngine(m_row, m_col) : new RanshiEngine(m_seeds[0]);
return StatusCode::SUCCESS;
}
| StatusCode HepRndm::Engine< TripleRand >::initializeEngine | ( | ) |
Definition at line 172 of file HepRndmEngines.cpp.
{
m_hepEngine = (m_useTable) ? new TripleRand(m_row, m_col) : new TripleRand(m_seeds[0]);
return StatusCode::SUCCESS;
}
| StatusCode HepRndm::Engine< Hurd288Engine >::initializeEngine | ( | ) |
Definition at line 187 of file HepRndmEngines.cpp.
{
m_hepEngine = (m_useTable) ? new Hurd288Engine(m_row, m_col) : new Hurd288Engine(m_seeds[0]);
return StatusCode::SUCCESS;
}
| StatusCode HepRndm::Engine< MTwistEngine >::initializeEngine | ( | ) |
Definition at line 212 of file HepRndmEngines.cpp.
{
m_hepEngine = (m_useTable) ? new MTwistEngine(m_row, m_col) : new MTwistEngine(m_seeds[0]);
return StatusCode::SUCCESS;
}
| StatusCode HepRndm::Engine< DRand48Engine >::initializeEngine | ( | ) |
Definition at line 177 of file HepRndmEngines.cpp.
{
m_hepEngine = (m_useTable) ? new DRand48Engine(m_row, m_col) : new DRand48Engine(m_seeds[0]);
return StatusCode::SUCCESS;
}
| StatusCode HepRndm::Engine< Hurd160Engine >::initializeEngine | ( | ) |
Definition at line 182 of file HepRndmEngines.cpp.
{
m_hepEngine = (m_useTable) ? new Hurd160Engine(m_row, m_col) : new Hurd160Engine(m_seeds[0]);
return StatusCode::SUCCESS;
}
| StatusCode HepRndm::Engine< DualRand >::initializeEngine | ( | ) |
Definition at line 167 of file HepRndmEngines.cpp.
{
m_hepEngine = (m_useTable) ? new DualRand(m_row, m_col) : new DualRand(m_seeds[0]);
return StatusCode::SUCCESS;
}
| StatusCode HepRndm::Engine< RanecuEngine >::initializeEngine | ( | ) |
Definition at line 192 of file HepRndmEngines.cpp.
{
m_hepEngine = (m_useTable) ? new RanecuEngine(m_row) : new RanecuEngine(m_seeds[0]);
return StatusCode::SUCCESS;
}
| virtual StatusCode HepRndm::Engine< TYPE >::initializeEngine | ( | ) | [virtual] |
Create/Initialize new HepEngine....
| 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 129 of file HepRndmEngines.cpp.
{
return m_hepEngine->flat();
}
| StatusCode HepRndm::Engine< TYPE >::seeds | ( | std::vector< long > & | seed ) | const |
Retrieve seeds.
Definition at line 151 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;
}
| StatusCode HepRndm::Engine< TYPE >::setSeeds | ( | const std::vector< long > & | seed ) |
virtual double rndm() const { return BaseEngine::rndm( ); }
Set seeds
Definition at line 134 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;
}
int HepRndm::Engine< TYPE >::m_col [protected] |
Definition at line 26 of file HepRndmEngine.h.
int HepRndm::Engine< TYPE >::m_lux [protected] |
Definition at line 26 of file HepRndmEngine.h.
int HepRndm::Engine< TYPE >::m_row [protected] |
Definition at line 26 of file HepRndmEngine.h.
std::vector<long> HepRndm::Engine< TYPE >::m_seeds [mutable, protected] |
Definition at line 24 of file HepRndmEngine.h.
bool HepRndm::Engine< TYPE >::m_setSingleton [protected] |
Definition at line 27 of file HepRndmEngine.h.
bool HepRndm::Engine< TYPE >::m_useTable [protected] |
Definition at line 27 of file HepRndmEngine.h.