Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
6 #ifndef RNGCOMPS_ATHRNGSVC_H
7 #define RNGCOMPS_ATHRNGSVC_H
9 #include <unordered_map>
22 class HepRandomEngine;
33 class AthRNGSvc :
public extends<AthService, IAthRNGSvc>
47 const std::string&
streamName=
"")
override final;
51 const std::string&
streamName =
"")
override final;
59 std::unordered_map<std::string, ATHRNG::RNGWrapper*>
m_wrappers;
62 typedef std::function<CLHEP::HepRandomEngine*(void)>
factoryFunc;
AthRNGSvc(const std::string &name, ISvcLocator *svc)
Standard constructor.
virtual ATHRNG::RNGWrapper * getEngine(const INamedInterface *client, const std::string &streamName="") override final
IAthRNGSvc method to retrieve the random number wrapper.
A service to manage multiple RNG streams in thread-safe way.
::StatusCode StatusCode
StatusCode definition for legacy code.
StatusCode initialize() override final
Initialize the service.
std::string m_rngType
Random number engine type (e.g. dSFMT, ranecu)
AthROOTErrorHandlerSvc * svc
std::function< CLHEP::HepRandomEngine *(void)> factoryFunc
Factory function which constructs a HepRandomEngine.
A wrapper class for event-slot-local random engines.
std::unordered_map< std::string, ATHRNG::RNGWrapper * > m_wrappers
The structure for storing the RNGWrappers.
std::mutex m_mutex
Mutex for protecting access to the wrapper structure.
virtual void printEngineState(const INamedInterface *client, const std::string &streamName="") override final
Print engine state.