|
Gaudi Framework, version v22r0 |
| Home | Generated: 9 Feb 2011 |
#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 | |||
| ) | [inline] |
Standard Constructor.
Definition at line 58 of file HepRndmEngines.cpp.
00059 : BaseEngine (nam, loc) { 00060 declareProperty("Seeds", m_seeds); 00061 declareProperty("Column", m_col = 0); 00062 declareProperty("Row", m_row = 1); 00063 declareProperty("Luxury", m_lux = 3); 00064 declareProperty("UseTable", m_useTable = false); 00065 declareProperty("SetSingleton",m_setSingleton = false); 00066 }
| HepRndm::Engine< TYPE >::~Engine | ( | ) | [inline, virtual] |
| StatusCode HepRndm::Engine< TYPE >::finalize | ( | ) | [inline, virtual] |
Finalize the Engine.
Definition at line 118 of file HepRndmEngines.cpp.
00118 { 00119 if ( m_hepEngine ) { 00120 HepRandom::setTheEngine(0); 00121 delete m_hepEngine; 00122 } 00123 m_seeds.clear(); 00124 m_hepEngine = 0; 00125 return RndmEngine::finalize(); 00126 }
| StatusCode HepRndm::Engine< TYPE >::initialize | ( | ) | [inline, virtual] |
Initialize the Engine.
Definition at line 73 of file HepRndmEngines.cpp.
00073 { 00074 m_seeds.erase(m_seeds.begin(), m_seeds.end()); 00075 StatusCode status = RndmEngine::initialize(); 00076 if ( m_seeds.size() == 0 ) { 00077 // Default seeds 00078 long theSeed = 1234567; 00079 m_seeds.push_back(theSeed); 00080 m_seeds.push_back(0); 00081 } 00082 MsgStream log(msgSvc(), name()); 00083 if ( status.isSuccess() ) { 00084 status = initializeEngine(); 00085 if ( status.isSuccess() ) { 00086 log << MSG::INFO << "Generator engine type:" 00087 << System::typeinfoName(typeid(TYPE)) 00088 << endmsg; 00089 if ( m_useTable ) { 00090 if ( m_row > 214 || m_col > 1 ) { 00091 log << MSG::ERROR << "Generator engine seed table has dimension [215][2], you gave:" 00092 << " Row=" << m_row << " Column:" << m_col << endmsg; 00093 status = StatusCode::FAILURE; 00094 } 00095 else { 00096 log << MSG::INFO << "Generator engine seeds from table." 00097 << " Row=" << m_row << " Column:" << m_col << endmsg; 00098 } 00099 } 00100 log << "Current Seed:" << m_hepEngine->getSeed(); 00101 log << " Luxury:" << m_lux; 00102 log << endmsg; 00103 // Use the default static engine if required (e.g. for GEANT4) 00104 if ( m_setSingleton ) { 00105 HepRandom::setTheEngine(m_hepEngine); 00106 log << "This is the GEANT4 engine!" << endmsg; 00107 } 00108 return status; 00109 } 00110 } 00111 log << MSG::ERROR << "Cannot initialze random engine of type:" 00112 << System::typeinfoName(typeid(TYPE)) 00113 << endmsg; 00114 return status; 00115 }
| StatusCode HepRndm::Engine< HepJamesRandom >::initializeEngine | ( | ) | [inline] |
Definition at line 217 of file HepRndmEngines.cpp.
00217 { 00218 m_hepEngine = (m_useTable) ? new HepJamesRandom(m_row, m_col) : new HepJamesRandom(m_seeds[0]); 00219 return StatusCode::SUCCESS; 00220 }
| StatusCode HepRndm::Engine< MTwistEngine >::initializeEngine | ( | ) | [inline] |
Definition at line 212 of file HepRndmEngines.cpp.
00212 { 00213 m_hepEngine = (m_useTable) ? new MTwistEngine(m_row, m_col) : new MTwistEngine(m_seeds[0]); 00214 return StatusCode::SUCCESS; 00215 }
| StatusCode HepRndm::Engine< Ranlux64Engine >::initializeEngine | ( | ) | [inline] |
Definition at line 207 of file HepRndmEngines.cpp.
00207 { 00208 m_hepEngine = (m_useTable) ? new Ranlux64Engine(m_row, m_col, m_lux) : new Ranlux64Engine(m_seeds[0], m_lux); 00209 return StatusCode::SUCCESS; 00210 }
| StatusCode HepRndm::Engine< RanluxEngine >::initializeEngine | ( | ) | [inline] |
Definition at line 202 of file HepRndmEngines.cpp.
00202 { 00203 m_hepEngine = (m_useTable) ? new RanluxEngine(m_row, m_col, m_lux) : new RanluxEngine(m_seeds[0], m_lux); 00204 return StatusCode::SUCCESS; 00205 }
| StatusCode HepRndm::Engine< RanshiEngine >::initializeEngine | ( | ) | [inline] |
Definition at line 197 of file HepRndmEngines.cpp.
00197 { 00198 m_hepEngine = (m_useTable) ? new RanshiEngine(m_row, m_col) : new RanshiEngine(m_seeds[0]); 00199 return StatusCode::SUCCESS; 00200 }
| StatusCode HepRndm::Engine< RanecuEngine >::initializeEngine | ( | ) | [inline] |
Definition at line 192 of file HepRndmEngines.cpp.
00192 { 00193 m_hepEngine = (m_useTable) ? new RanecuEngine(m_row) : new RanecuEngine(m_seeds[0]); 00194 return StatusCode::SUCCESS; 00195 }
| StatusCode HepRndm::Engine< Hurd288Engine >::initializeEngine | ( | ) | [inline] |
Definition at line 187 of file HepRndmEngines.cpp.
00187 { 00188 m_hepEngine = (m_useTable) ? new Hurd288Engine(m_row, m_col) : new Hurd288Engine(m_seeds[0]); 00189 return StatusCode::SUCCESS; 00190 }
| StatusCode HepRndm::Engine< Hurd160Engine >::initializeEngine | ( | ) | [inline] |
Definition at line 182 of file HepRndmEngines.cpp.
00182 { 00183 m_hepEngine = (m_useTable) ? new Hurd160Engine(m_row, m_col) : new Hurd160Engine(m_seeds[0]); 00184 return StatusCode::SUCCESS; 00185 }
| StatusCode HepRndm::Engine< DRand48Engine >::initializeEngine | ( | ) | [inline] |
Definition at line 177 of file HepRndmEngines.cpp.
00177 { 00178 m_hepEngine = (m_useTable) ? new DRand48Engine(m_row, m_col) : new DRand48Engine(m_seeds[0]); 00179 return StatusCode::SUCCESS; 00180 }
| StatusCode HepRndm::Engine< TripleRand >::initializeEngine | ( | ) | [inline] |
Definition at line 172 of file HepRndmEngines.cpp.
00172 { 00173 m_hepEngine = (m_useTable) ? new TripleRand(m_row, m_col) : new TripleRand(m_seeds[0]); 00174 return StatusCode::SUCCESS; 00175 }
| StatusCode HepRndm::Engine< DualRand >::initializeEngine | ( | ) | [inline] |
Definition at line 167 of file HepRndmEngines.cpp.
00167 { 00168 m_hepEngine = (m_useTable) ? new DualRand(m_row, m_col) : new DualRand(m_seeds[0]); 00169 return StatusCode::SUCCESS; 00170 }
| virtual StatusCode HepRndm::Engine< TYPE >::initializeEngine | ( | ) | [virtual] |
Create/Initialize new HepEngine....
| double HepRndm::Engine< TYPE >::rndm | ( | ) | const [inline, 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.
Definition at line 129 of file HepRndmEngines.cpp.
00129 { 00130 return m_hepEngine->flat(); 00131 }
| StatusCode HepRndm::Engine< TYPE >::seeds | ( | std::vector< long > & | seed | ) | const [inline] |
Retrieve seeds.
Definition at line 151 of file HepRndmEngines.cpp.
00151 { 00152 /* 00153 const long *s = m_hepEngine->getSeeds(); 00154 for ( size_t i = 0; i < NUMBER_OF_SEEDS; i++ ) { 00155 seed.push_back(s[i]); 00156 if ( m_seeds.size() > i ) 00157 m_seeds[i] = s[i]; 00158 else 00159 m_seeds.push_back(s[i]); 00160 } 00161 */ 00162 seed.push_back(m_hepEngine->getSeed()); 00163 return StatusCode::SUCCESS; 00164 }
| StatusCode HepRndm::Engine< TYPE >::setSeeds | ( | const std::vector< long > & | seed | ) | [inline] |
virtual double rndm() const { return BaseEngine::rndm( ); }
Set seeds
Definition at line 134 of file HepRndmEngines.cpp.
00134 { 00135 typedef std::vector<long> seed_t; 00136 m_seeds.clear(); 00137 for ( seed_t::const_iterator i = seed.begin(); i < seed.end(); i++ ) { 00138 m_seeds.push_back(*i); 00139 } 00140 if ( m_seeds.size() > 0 ) { 00141 if ( m_seeds.back() != 0 ) { 00142 m_seeds.push_back(0); 00143 } 00144 m_hepEngine->setSeeds(&m_seeds[0], m_lux); 00145 return StatusCode::SUCCESS; 00146 } 00147 return StatusCode::FAILURE; 00148 }
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.