LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
rndm::details::PerEventPolicy< SEED > Class Template Reference

Implementation of the "perEvent" policy. More...

#include "PerEventPolicy.h"

Inheritance diagram for rndm::details::PerEventPolicy< SEED >:
rndm::details::RandomSeedPolicyBase< SEED >

Public Types

enum  SeedAlgo_t { saEventTimestamp_v1, NAlgos, saUndefined, saDefault = saEventTimestamp_v1 }
 
using base_t = RandomSeedPolicyBase< SEED >
 
using this_t = PerEventPolicy< SEED >
 
using seed_t = typename base_t::seed_t
 
using EventData_t = NuRandomServiceHelper::EventSeedInputData
 type for contextual event information More...
 

Public Member Functions

 PerEventPolicy (fhicl::ParameterSet const &pset)
 
virtual bool yieldsUniqueSeeds () const override
 Returns whether the returned seed should be unique: for us it "no". More...
 
virtual void configure (fhicl::ParameterSet const &pset) override
 Configure this policy. More...
 
virtual void print (std::ostream &out) const override
 Prints the details of the configuration of the random generator. More...
 
virtual seed_t getSeed (SeedMasterHelper::EngineId const &id)
 Returns the next random number. More...
 
virtual seed_t getSeed (SeedMasterHelper::EngineId const &id)
 Returns the next random number. More...
 
virtual seed_t getEventSeed (SeedMasterHelper::EngineId const &id, EventData_t const &eventInfo)
 Returns a random number specific to an event. More...
 
virtual seed_t getEventSeed (SeedMasterHelper::EngineId const &id, EventData_t const &eventInfo)
 Returns a random number specific to an event. More...
 
std::string getName () const
 Returns the given name of the policy. More...
 
std::string getName () const
 Returns the given name of the policy. More...
 

Static Public Member Functions

template<typename Hashable >
static seed_t SeedFromHash (Hashable const &info)
 Converts some information into a valid seed by means of hash values. More...
 
static std::string UniqueEventIDString (EventData_t const &info)
 Converts run, subrun and event numbers into a string. More...
 
static std::string UniqueEventString (EventData_t const &info)
 Converts event ID and timestamp information into a string. More...
 

Static Public Attributes

static constexpr const char * DefaultVersion = "v1"
 Default algorithm version. More...
 
static constexpr seed_t InvalidSeed = 0
 An invalid seed. More...
 

Protected Attributes

std::string name
 name of the policy More...
 

Private Types

using SeedOffset_t = typename std::make_signed< seed_t >::type
 type for seed offset More...
 

Private Member Functions

virtual seed_t createSeed (SeedMasterHelper::EngineId const &id) override
 Per-job seed: pre-event seeds are returned (or invalid if none). More...
 
virtual seed_t createEventSeed (SeedMasterHelper::EngineId const &id, EventData_t const &info) override
 Returns a seed proper for the specified event information. More...
 

Static Private Member Functions

template<typename T >
static seed_t makeValid (T value)
 Renders a seed valid. More...
 
static seed_t EventTimestamp_v1 (SeedMasterHelper::EngineId const &id, EventData_t const &info)
 Implementation of the EventTimestamp_v1 algorithm. More...
 

Private Attributes

SeedAlgo_t algo
 the algorithm to extract the seed More...
 
SeedOffset_t offset
 offset added to all the seeds More...
 
PolicyStruct_t< seed_tinitSeedPolicy
 Policy used for initialization before the event (none by default). More...
 
static const std::vector< std::string > algoNames = PerEventPolicy<SEED>::InitAlgoNames()
 Algorithm name (manual) handling. More...
 
static std::vector< std::string > InitAlgoNames ()
 Algorithm name (manual) handling. More...
 

Detailed Description

template<typename SEED>
class rndm::details::PerEventPolicy< SEED >

Implementation of the "perEvent" policy.


This policy extracts seeds depending on contextual information from the event. The information that enters the seed is the event ID (run, subrun, event), the process name, and the engine ID.

The policy is only effective if an event is being processed. Before the first event is processed, seeds are initialized to a fixed value, while in between the events they are not modified and the random numbers extracted at that time will depend on which event was processed last.

As a partial mitigation to this, it is possible to specify a "pre-event" policy that is used to initialize the random engines on construction, just like the policies which do not depend on the event (like autoIncrement and random) do. This is achieved by specifying in the initSeedPolicy configuration table the whole configuration of this "fallback" policy. For example:

NuRandomService: {
policy : "perEvent"
policy : "preDefinedSeed"
baseSeed : 1
maxUniqueEngines : 6
checkRange : true
Module1: { a : 3 b : 5 }
Module2: { a : 7 c : 9 }
verbosity : 2
endOfJobSummary : false
}

sets up the perEvent policy, and uses a preDefinedSeed for the seeds before the first event.

Definition at line 78 of file PerEventPolicy.h.

Member Typedef Documentation

template<typename SEED>
using rndm::details::PerEventPolicy< SEED >::base_t = RandomSeedPolicyBase<SEED>

Definition at line 80 of file PerEventPolicy.h.

type for contextual event information

Definition at line 85 of file PerEventPolicy.h.

template<typename SEED>
using rndm::details::PerEventPolicy< SEED >::seed_t = typename base_t::seed_t

Definition at line 82 of file PerEventPolicy.h.

template<typename SEED>
using rndm::details::PerEventPolicy< SEED >::SeedOffset_t = typename std::make_signed<seed_t>::type
private

type for seed offset

Definition at line 143 of file PerEventPolicy.h.

template<typename SEED>
using rndm::details::PerEventPolicy< SEED >::this_t = PerEventPolicy<SEED>

Definition at line 81 of file PerEventPolicy.h.

Member Enumeration Documentation

template<typename SEED>
enum rndm::details::PerEventPolicy::SeedAlgo_t
Enumerator
saEventTimestamp_v1 

event timestamp algorithm (v1)

NAlgos 

total number of seed algorithms

saUndefined 

algorithm not defined

saDefault 

default algorithm

Definition at line 87 of file PerEventPolicy.h.

Constructor & Destructor Documentation

template<typename SEED>
rndm::details::PerEventPolicy< SEED >::PerEventPolicy ( fhicl::ParameterSet const &  pset)
inline

Configures from a parameter set

See also
configure()

Definition at line 96 of file PerEventPolicy.h.

References rndm::details::PerEventPolicy< SEED >::configure().

96  : base_t("perEvent")
97  { this_t::configure(pset); }
virtual void configure(fhicl::ParameterSet const &pset) override
Configure this policy.
RandomSeedPolicyBase< SEED > base_t

Member Function Documentation

template<typename SEED >
void rndm::details::PerEventPolicy< SEED >::configure ( fhicl::ParameterSet const &  pset)
overridevirtual

Configure this policy.

Parameters
psetthe parameter set for the configuration

Parameters:

  • algorithm (string, default: "EventTimestamp_v1"): the name of the algorithm to get the seed
  • offset (integer, optional): if specified, all the final seeds are incremented by this value; the resulting seed is not checked, it might even be invalid. This is considered an emergency hack when one absolutely needs to have a different seed than the one assigned to the event. This also defies the purpose of the policy, since after this, to reproduce the random sequences the additional knowledge of which offset was used is necessary.

Reimplemented from rndm::details::RandomSeedPolicyBase< SEED >.

Definition at line 253 of file PerEventPolicy.h.

References rndm::details::PerEventPolicy< SEED >::algo, rndm::details::PerEventPolicy< SEED >::algoNames, art::errors::Configuration, e, fhicl::ParameterSet::get(), rndm::details::PerEventPolicy< SEED >::initSeedPolicy, rndm::details::PerEventPolicy< SEED >::NAlgos, rndm::details::PerEventPolicy< SEED >::offset, rndm::details::PerEventPolicy< SEED >::saDefault, and rndm::details::PerEventPolicy< SEED >::saUndefined.

Referenced by rndm::details::PerEventPolicy< SEED >::PerEventPolicy(), and rndm::details::PerEventPolicy< SEED >::yieldsUniqueSeeds().

253  {
254  // set the per-event algorithm
255  algo = saUndefined;
256  std::string algorithm_name
257  = pset.get<std::string>("algorithm", "default");
258 
259  if (algorithm_name == "default") algo = saDefault;
260  else {
261  for (size_t iAlgo = 0; iAlgo < (size_t) NAlgos; ++iAlgo) {
262  if (algorithm_name != algoNames[iAlgo]) continue;
263  algo = (SeedAlgo_t) iAlgo;
264  break;
265  } // for
266  }
267  if (algo == saUndefined) {
269  << "No valid event random seed algorithm specified!\n";
270  }
271 
272  // read an optional overall offset
273  offset = pset.get<SeedOffset_t>("offset", 0);
274 
275  // EventTimestamp_v1 does not require specific configuration
276 
277 
278  // set the pre-event algorithm
279  auto const& initSeedConfig
280  = pset.get<fhicl::ParameterSet>("initSeedPolicy", {});
281  if (!initSeedConfig.is_empty()) {
282  try {
283  initSeedPolicy = makeRandomSeedPolicy<seed_t>(initSeedConfig);
284  }
285  catch(cet::exception const& e) {
286  throw cet::exception{ "PerEventPolicy", "", e }
287  << "Error creating the pre-event policy of `perEvent` random policy"
288  " from configuration:\n"
289  << initSeedConfig.to_indented_string(2);
290  }
291  } // if pre-event policy
292 
293  } // PerEventPolicy<SEED>::configure()
SeedOffset_t offset
offset added to all the seeds
total number of seed algorithms
typename std::make_signed< seed_t >::type SeedOffset_t
type for seed offset
static const std::vector< std::string > algoNames
Algorithm name (manual) handling.
SeedAlgo_t algo
the algorithm to extract the seed
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
PolicyStruct_t< seed_t > initSeedPolicy
Policy used for initialization before the event (none by default).
Float_t e
Definition: plot.C:35
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<typename SEED >
PerEventPolicy< SEED >::seed_t rndm::details::PerEventPolicy< SEED >::createEventSeed ( SeedMasterHelper::EngineId const &  id,
EventData_t const &  info 
)
overrideprivatevirtual

Returns a seed proper for the specified event information.

Parameters
idrandom number engine ID (moule label and instance name)
infoevent information
Returns
a seed specific to the information provided

The algorithm used to combine the provided information into a seed is defined by the configuration. The following algorithms are supported:

  • EventTimestamp_v1: includes event ID (run, subrun and event numbers), event timestamp, process name and engine ID into a hash value, used for the seed

Reimplemented from rndm::details::RandomSeedPolicyBase< SEED >.

Definition at line 325 of file PerEventPolicy.h.

References rndm::details::PerEventPolicy< SEED >::algo, art::errors::Configuration, rndm::details::PerEventPolicy< SEED >::EventTimestamp_v1(), rndm::details::RandomSeedPolicyBase< SEED >::InvalidSeed, art::errors::LogicError, rndm::details::PerEventPolicy< SEED >::offset, rndm::details::PerEventPolicy< SEED >::saEventTimestamp_v1, rndm::details::PerEventPolicy< SEED >::saUndefined, and seed.

Referenced by rndm::details::PerEventPolicy< SEED >::createSeed().

326  {
328  switch (algo) {
329  case saEventTimestamp_v1:
330  seed = EventTimestamp_v1(id, info);
331  break;
332  case saUndefined:
334  << "Per-event random number seeder not configured!\n";
335  default:
337  << "Unsupported per-event random number seeder (#"
338  << ((int) algo) << ")\n";
339  } // switch
340  return seed + offset;
341  } // PerEventPolicy<SEED>::createEventSeed()
static seed_t EventTimestamp_v1(SeedMasterHelper::EngineId const &id, EventData_t const &info)
Implementation of the EventTimestamp_v1 algorithm.
SeedOffset_t offset
offset added to all the seeds
typename base_t::seed_t seed_t
long seed
Definition: chem4.cc:67
SeedAlgo_t algo
the algorithm to extract the seed
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
static constexpr seed_t InvalidSeed
An invalid seed.
Definition: BasePolicies.h:51
template<typename SEED >
PerEventPolicy< SEED >::seed_t rndm::details::PerEventPolicy< SEED >::createSeed ( SeedMasterHelper::EngineId const &  id)
overrideprivatevirtual

Per-job seed: pre-event seeds are returned (or invalid if none).

Implements rndm::details::RandomSeedPolicyBase< SEED >.

Definition at line 318 of file PerEventPolicy.h.

References rndm::details::PerEventPolicy< SEED >::createEventSeed(), rndm::details::RandomSeedPolicyBase< SEED >::getSeed(), rndm::details::PerEventPolicy< SEED >::initSeedPolicy, and rndm::details::RandomSeedPolicyBase< SEED >::InvalidSeed.

Referenced by rndm::details::PerEventPolicy< SEED >::print().

virtual seed_t getSeed(SeedMasterHelper::EngineId const &id)
Returns the next random number.
Definition: BasePolicies.h:64
static constexpr seed_t InvalidSeed
An invalid seed.
Definition: BasePolicies.h:51
PolicyStruct_t< seed_t > initSeedPolicy
Policy used for initialization before the event (none by default).
template<typename SEED >
auto rndm::details::PerEventPolicy< SEED >::EventTimestamp_v1 ( SeedMasterHelper::EngineId const &  id,
EventData_t const &  info 
)
staticprivate

Implementation of the EventTimestamp_v1 algorithm.

Definition at line 232 of file PerEventPolicy.h.

References art::errors::InvalidNumber, rndm::NuRandomServiceHelper::EventSeedInputData::isTimeValid, MF_LOG_DEBUG, rndm::NuRandomServiceHelper::EventSeedInputData::processName, seed, rndm::details::PerEventPolicy< SEED >::SeedFromHash(), and rndm::details::PerEventPolicy< SEED >::UniqueEventString().

Referenced by rndm::details::PerEventPolicy< SEED >::createEventSeed(), rndm::details::PerEventPolicy< SEED >::makeValid(), and rndm::details::PerEventPolicy< SEED >::UniqueEventString().

234  {
235  if (!info.isTimeValid) {
237  << "Input event has an invalid timestamp,"
238  " random seed per-event policy EventTimestamp_v1 can't be used.\n";
239  }
240  std::string s = UniqueEventString(info)
241  + " Process: " + info.processName
242  + " Module: " + id.moduleLabel;
243  if (!id.instanceName.empty())
244  s.append(" Instance: ").append(id.instanceName);
245  seed_t seed = SeedFromHash(s);
246  MF_LOG_DEBUG("PerEventPolicy") << "Seed from: '" << s << "': " << seed;
247  return seed;
248  } // PerEventPolicy<SEED>::EventTimestamp_v1()
static seed_t SeedFromHash(Hashable const &info)
Converts some information into a valid seed by means of hash values.
typename base_t::seed_t seed_t
long seed
Definition: chem4.cc:67
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
#define MF_LOG_DEBUG(id)
static std::string UniqueEventString(EventData_t const &info)
Converts event ID and timestamp information into a string.
template<typename SEED>
virtual seed_t rndm::details::RandomSeedPolicyBase< SEED >::getEventSeed ( SeedMasterHelper::EngineId const &  id,
EventData_t const &  eventInfo 
)
inlinevirtualinherited

Returns a random number specific to an event.

Definition at line 69 of file BasePolicies.h.

Referenced by rndm::details::RandomSeedPolicyBase< seed_t >::getSeed().

70  { return createEventSeed(id, eventInfo); }
virtual seed_t createEventSeed(SeedMasterHelper::EngineId const &, EventData_t const &)
Extracts a seed for specified event information; returns InvalidSeed.
Definition: BasePolicies.h:90
template<typename SEED>
virtual seed_t rndm::details::RandomSeedPolicyBase< SEED >::getEventSeed ( SeedMasterHelper::EngineId const &  id,
EventData_t const &  eventInfo 
)
inlinevirtualinherited

Returns a random number specific to an event.

Definition at line 114 of file RandomSeedPolicyBase.h.

115  { return createEventSeed(id, eventInfo); }
virtual seed_t createEventSeed(SeedMasterHelper::EngineId const &, EventData_t const &)
Extracts a seed for specified event information; returns InvalidSeed.
Definition: BasePolicies.h:90
template<typename SEED>
std::string rndm::details::RandomSeedPolicyBase< SEED >::getName ( ) const
inlineinherited
template<typename SEED>
std::string rndm::details::RandomSeedPolicyBase< SEED >::getName ( ) const
inlineinherited

Returns the given name of the policy.

Definition at line 118 of file RandomSeedPolicyBase.h.

118 { return name; }
std::string name
name of the policy
Definition: BasePolicies.h:83
template<typename SEED>
virtual seed_t rndm::details::RandomSeedPolicyBase< SEED >::getSeed ( SeedMasterHelper::EngineId const &  id)
inlinevirtualinherited

Returns the next random number.

Reimplemented in rndm::details::CheckedRangePolicy< SEED >, and rndm::details::CheckedRangePolicy< SEED >.

Definition at line 64 of file BasePolicies.h.

Referenced by rndm::details::PerEventPolicy< SEED >::createSeed().

65  { return createSeed(id); }
virtual seed_t createSeed(SeedMasterHelper::EngineId const &)=0
Extracts the next random number seed.
template<typename SEED>
virtual seed_t rndm::details::RandomSeedPolicyBase< SEED >::getSeed ( SeedMasterHelper::EngineId const &  id)
inlinevirtualinherited

Returns the next random number.

Reimplemented in rndm::details::CheckedRangePolicy< SEED >, and rndm::details::CheckedRangePolicy< SEED >.

Definition at line 109 of file RandomSeedPolicyBase.h.

110  { return createSeed(id); }
virtual seed_t createSeed(SeedMasterHelper::EngineId const &)=0
Extracts the next random number seed.
template<typename SEED >
std::vector< std::string > rndm::details::PerEventPolicy< SEED >::InitAlgoNames ( )
staticprivate

Algorithm name (manual) handling.

Definition at line 194 of file PerEventPolicy.h.

References rndm::details::PerEventPolicy< SEED >::NAlgos, rndm::details::PerEventPolicy< SEED >::saEventTimestamp_v1, and rndm::details::PerEventPolicy< SEED >::UniqueEventIDString().

Referenced by rndm::details::PerEventPolicy< SEED >::makeValid().

194  {
195 
196  std::vector<std::string> names((size_t) NAlgos);
197 
198  names[saEventTimestamp_v1] = "EventTimestamp_v1";
199 
200  return names;
201  } // PerEventPolicy<SEED>::InitAlgoNames()
total number of seed algorithms
template<typename SEED>
template<typename T >
static seed_t rndm::details::PerEventPolicy< SEED >::makeValid ( value)
inlinestaticprivate
template<typename SEED >
void rndm::details::PerEventPolicy< SEED >::print ( std::ostream &  out) const
overridevirtual

Prints the details of the configuration of the random generator.

Reimplemented from rndm::details::RandomSeedPolicyBase< SEED >.

Definition at line 299 of file PerEventPolicy.h.

References rndm::details::PerEventPolicy< SEED >::algo, rndm::details::PerEventPolicy< SEED >::algoNames, rndm::details::PerEventPolicy< SEED >::createSeed(), rndm::details::PerEventPolicy< SEED >::initSeedPolicy, rndm::details::PerEventPolicy< SEED >::offset, rndm::details::PolicyStruct_t< SEED >::policy, rndm::details::policyName(), and rndm::details::RandomSeedPolicyBase< SEED >::print().

Referenced by rndm::details::PerEventPolicy< SEED >::yieldsUniqueSeeds().

299  {
300  base_t::print(out);
301  out
302  << "\n algorithm version: " << algoNames[algo];
303  if (offset != 0)
304  out << "\n constant offset: " << offset;
305  if (initSeedPolicy) {
306  out << "\n special policy for random seeds before the event: '"
308  << "'\n" << std::string(60, '-');
309  initSeedPolicy->print(out);
310  out << "\n" << std::string(60, '-');
311  }
312  } // PerEventPolicy<SEED>::print()
SeedOffset_t offset
offset added to all the seeds
std::string const & policyName(Policy policy)
Returns the name of the specified policy.
Definition: PolicyNames.cxx:56
virtual void print(std::ostream &out) const
Prints information on the configuration of this policy.
Definition: BasePolicies.h:76
static const std::vector< std::string > algoNames
Algorithm name (manual) handling.
SeedAlgo_t algo
the algorithm to extract the seed
PolicyStruct_t< seed_t > initSeedPolicy
Policy used for initialization before the event (none by default).
template<typename SEED>
template<typename Hashable >
static seed_t rndm::details::PerEventPolicy< SEED >::SeedFromHash ( Hashable const &  info)
inlinestatic

Converts some information into a valid seed by means of hash values.

Definition at line 130 of file PerEventPolicy.h.

References rndm::details::PerEventPolicy< SEED >::makeValid(), rndm::details::PerEventPolicy< SEED >::UniqueEventIDString(), and rndm::details::PerEventPolicy< SEED >::UniqueEventString().

Referenced by rndm::details::PerEventPolicy< SEED >::EventTimestamp_v1().

131  { return makeValid(std::hash<Hashable>()(info)); }
static seed_t makeValid(T value)
Renders a seed valid.
template<typename SEED >
std::string rndm::details::PerEventPolicy< SEED >::UniqueEventIDString ( EventData_t const &  info)
static

Converts run, subrun and event numbers into a string.

Definition at line 212 of file PerEventPolicy.h.

References rndm::NuRandomServiceHelper::EventSeedInputData::eventNumber, rndm::NuRandomServiceHelper::EventSeedInputData::runNumber, rndm::NuRandomServiceHelper::EventSeedInputData::subRunNumber, util::to_string(), and rndm::details::PerEventPolicy< SEED >::UniqueEventString().

Referenced by rndm::details::PerEventPolicy< SEED >::InitAlgoNames(), rndm::details::PerEventPolicy< SEED >::SeedFromHash(), and rndm::details::PerEventPolicy< SEED >::UniqueEventString().

213  {
214  return "Run: " + std::to_string(info.runNumber)
215  + " Subrun: " + std::to_string(info.subRunNumber)
216  + " Event: " + std::to_string(info.eventNumber)
217  ;
218  } // PerEventPolicy<SEED>::UniqueEventIDString()
decltype(auto) constexpr to_string(T &&obj)
ADL-aware version of std::to_string.
template<typename SEED >
std::string rndm::details::PerEventPolicy< SEED >::UniqueEventString ( EventData_t const &  info)
static

Converts event ID and timestamp information into a string.

Definition at line 223 of file PerEventPolicy.h.

References rndm::details::PerEventPolicy< SEED >::EventTimestamp_v1(), rndm::NuRandomServiceHelper::EventSeedInputData::time, util::to_string(), and rndm::details::PerEventPolicy< SEED >::UniqueEventIDString().

Referenced by rndm::details::PerEventPolicy< SEED >::EventTimestamp_v1(), rndm::details::PerEventPolicy< SEED >::SeedFromHash(), and rndm::details::PerEventPolicy< SEED >::UniqueEventIDString().

224  {
225  return UniqueEventIDString(info)
226  + " Timestamp: " + std::to_string(info.time);
227  } // PerEventPolicy<SEED>::UniqueEventString()
static std::string UniqueEventIDString(EventData_t const &info)
Converts run, subrun and event numbers into a string.
decltype(auto) constexpr to_string(T &&obj)
ADL-aware version of std::to_string.
template<typename SEED>
virtual bool rndm::details::PerEventPolicy< SEED >::yieldsUniqueSeeds ( ) const
inlineoverridevirtual

Returns whether the returned seed should be unique: for us it "no".

Reimplemented from rndm::details::RandomSeedPolicyBase< SEED >.

Definition at line 100 of file PerEventPolicy.h.

References rndm::details::PerEventPolicy< SEED >::configure(), and rndm::details::PerEventPolicy< SEED >::print().

100 { return false; }

Member Data Documentation

template<typename SEED>
const std::vector< std::string > rndm::details::PerEventPolicy< SEED >::algoNames = PerEventPolicy<SEED>::InitAlgoNames()
staticprivate
template<typename SEED>
constexpr const char* rndm::details::PerEventPolicy< SEED >::DefaultVersion = "v1"
static

Default algorithm version.

Definition at line 125 of file PerEventPolicy.h.

template<typename SEED>
PolicyStruct_t<seed_t> rndm::details::PerEventPolicy< SEED >::initSeedPolicy
private

Policy used for initialization before the event (none by default).

Definition at line 150 of file PerEventPolicy.h.

Referenced by rndm::details::PerEventPolicy< SEED >::configure(), rndm::details::PerEventPolicy< SEED >::createSeed(), and rndm::details::PerEventPolicy< SEED >::print().

template<typename SEED>
static constexpr seed_t rndm::details::RandomSeedPolicyBase< SEED >::InvalidSeed = 0
staticinherited
template<typename SEED>
std::string rndm::details::RandomSeedPolicyBase< SEED >::name
protectedinherited

name of the policy

Definition at line 83 of file BasePolicies.h.

Referenced by rndm::details::RandomSeedPolicyBase< seed_t >::getName().


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