Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
rndm::details::LinearMappingPolicy< SEED > Class Template Reference

Implementation of the "linearMapping" policy. More...

#include <BasePolicies.h>

Inheritance diagram for rndm::details::LinearMappingPolicy< SEED >:
rndm::details::CheckedRangePolicy< SEED > rndm::details::CheckedRangePolicy< SEED > rndm::details::RandomSeedPolicyBase< SEED > rndm::details::RandomSeedPolicyBase< SEED > rndm::details::RandomSeedPolicyBase< SEED > rndm::details::RandomSeedPolicyBase< SEED >

Public Types

using base_t = CheckedRangePolicy< SEED >
 
using this_t = LinearMappingPolicy< SEED >
 
using seed_t = typename base_t::seed_t
 
using base_t = CheckedRangePolicy< SEED >
 
using this_t = LinearMappingPolicy< SEED >
 
using seed_t = typename base_t::seed_t
 
- Public Types inherited from rndm::details::CheckedRangePolicy< SEED >
using base_t = RandomSeedPolicyBase< SEED >
 
using this_t = CheckedRangePolicy< SEED >
 
using seed_t = typename base_t::seed_t
 
using base_t = RandomSeedPolicyBase< SEED >
 
using this_t = CheckedRangePolicy< SEED >
 
using seed_t = typename base_t::seed_t
 
- Public Types inherited from rndm::details::RandomSeedPolicyBase< SEED >
using seed_t = SEED
 type of the random seed More...
 
using EventData_t = NuRandomServiceHelper::EventSeedInputData
 type of data used for event seeds More...
 
using seed_t = SEED
 type of the random seed More...
 
using EventData_t = NuRandomServiceHelper::EventSeedInputData
 type of data used for event seeds More...
 

Public Member Functions

 LinearMappingPolicy (fhicl::ParameterSet const &pset)
 
virtual void configure (fhicl::ParameterSet const &pset) override
 Configure this policy. More...
 
virtual void print (std::ostream &out) const override
 Prints the configuration of this policy. More...
 
 LinearMappingPolicy (fhicl::ParameterSet const &pset)
 
virtual void configure (fhicl::ParameterSet const &pset) override
 Configure this policy. More...
 
virtual void print (std::ostream &out) const override
 Prints the configuration of this policy. More...
 
- Public Member Functions inherited from rndm::details::CheckedRangePolicy< SEED >
 CheckedRangePolicy (std::string policy_name, fhicl::ParameterSet const &pset)
 Constructor; requires the policy name. More...
 
virtual seed_t getSeed (SeedMasterHelper::EngineId const &id)
 Returns the next random number. More...
 
 CheckedRangePolicy (std::string policy_name, fhicl::ParameterSet const &pset)
 Constructor; requires the policy name. More...
 
virtual seed_t getSeed (SeedMasterHelper::EngineId const &id) override
 Returns the next random number. More...
 
- Public Member Functions inherited from rndm::details::RandomSeedPolicyBase< SEED >
 RandomSeedPolicyBase (std::string policy_name)
 Constructor; requires the policy name. More...
 
virtual ~RandomSeedPolicyBase ()
 
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...
 
virtual bool yieldsUniqueSeeds () const override
 Returns whether the returned seed should be unique. More...
 
 RandomSeedPolicyBase (std::string policy_name)
 Constructor; requires the policy name. More...
 
virtual ~RandomSeedPolicyBase ()
 
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...
 
virtual bool yieldsUniqueSeeds () const
 Returns whether the returned seed should be unique. More...
 

Protected Member Functions

virtual seed_t createSeed (SeedMasterHelper::EngineId const &) override
 Returns the next random number. More...
 
void static_configure (fhicl::ParameterSet const &pset)
 
virtual seed_t createSeed (SeedMasterHelper::EngineId const &) override
 Returns the next random number. More...
 
void static_configure (fhicl::ParameterSet const &pset)
 
- Protected Member Functions inherited from rndm::details::CheckedRangePolicy< SEED >
 CheckedRangePolicy (std::string policy_name)
 Lets the derived class to start configuration. More...
 
virtual void ensureRange (SeedMasterHelper::EngineId const &id, seed_t seed) const
 Performs the range checks and complains if needed. More...
 
void CheckRangeConfiguration () const
 Check that the configuration is complete. More...
 
void static_configure (fhicl::ParameterSet const &pset)
 Local configuration; does not require the range config to be complete. More...
 
 CheckedRangePolicy (std::string policy_name)
 Lets the derived class to start configuration. More...
 
virtual void ensureRange (SeedMasterHelper::EngineId const &id, seed_t seed) const
 Performs the range checks and complains if needed. More...
 
void CheckRangeConfiguration () const
 Check that the configuration is complete. More...
 
void static_configure (fhicl::ParameterSet const &pset)
 Local configuration; does not require the range config to be complete. More...
 
- Protected Member Functions inherited from rndm::details::RandomSeedPolicyBase< SEED >
virtual seed_t createEventSeed (SeedMasterHelper::EngineId const &, EventData_t const &)
 Extracts a seed for specified event information; returns InvalidSeed. More...
 
virtual seed_t createEventSeed (SeedMasterHelper::EngineId const &, EventData_t const &)
 Extracts a seed for specified event information; returns InvalidSeed. More...
 

Protected Attributes

seed_t first_seed
 base seed More...
 
seed_t next_seed
 next seed delivered More...
 
unsigned int nSeedsPerJob
 
- Protected Attributes inherited from rndm::details::CheckedRangePolicy< SEED >
RangeCheckHelper< seed_trange_check
 
- Protected Attributes inherited from rndm::details::RandomSeedPolicyBase< SEED >
std::string name
 name of the policy More...
 

Additional Inherited Members

- Static Public Attributes inherited from rndm::details::RandomSeedPolicyBase< SEED >
static constexpr seed_t InvalidSeed = 0
 An invalid seed. More...
 

Detailed Description

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

Implementation of the "linearMapping" policy.


See also
CheckedRangePolicy

This is heavily based on CheckedRangePolicy.

Definition at line 415 of file BasePolicies.h.

Member Typedef Documentation

template<typename SEED >
using rndm::details::LinearMappingPolicy< SEED >::base_t = CheckedRangePolicy<SEED>

Definition at line 114 of file StandardPolicies.h.

template<typename SEED >
using rndm::details::LinearMappingPolicy< SEED >::base_t = CheckedRangePolicy<SEED>

Definition at line 417 of file BasePolicies.h.

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

Definition at line 116 of file StandardPolicies.h.

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

Definition at line 419 of file BasePolicies.h.

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

Definition at line 115 of file StandardPolicies.h.

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

Definition at line 418 of file BasePolicies.h.

Constructor & Destructor Documentation

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

Configures from a parameter set

See also
configure()

Definition at line 423 of file BasePolicies.h.

423  :
424  base_t("linearMapping")
425  { this_t::configure(pset); }
virtual void configure(fhicl::ParameterSet const &pset) override
Configure this policy.
Definition: BasePolicies.h:439
CheckedRangePolicy< SEED > base_t
Definition: BasePolicies.h:417
template<typename SEED >
rndm::details::LinearMappingPolicy< SEED >::LinearMappingPolicy ( fhicl::ParameterSet const &  pset)
inline

Configures from a parameter set

See also
configure()

Definition at line 120 of file StandardPolicies.h.

120  :
121  base_t("linearMapping")
122  { this_t::configure(pset); }
virtual void configure(fhicl::ParameterSet const &pset) override
Configure this policy.
Definition: BasePolicies.h:439
CheckedRangePolicy< SEED > base_t
Definition: BasePolicies.h:417

Member Function Documentation

template<typename SEED >
virtual void rndm::details::LinearMappingPolicy< SEED >::configure ( fhicl::ParameterSet const &  pset)
inlineoverridevirtual

Configure this policy.

Parameters
psetthe parameter set for the configuration

Parameters:

  • nJob (unsigned integer): the number of this job; the first seed
  • checkRange (boolean, default: true): whether to verify that each seed is within the expected range
  • maxUniqueEngines (unsigned integer, mandatory) the maximum number on seeds we expect to create

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

Definition at line 136 of file StandardPolicies.h.

137  {
138  base_t::range_check.SetConfigLabels("", "", "checkRange");
139  base_t::configure(pset);
140  static_configure(pset);
141  }
void static_configure(fhicl::ParameterSet const &pset)
Definition: BasePolicies.h:465
virtual void configure(fhicl::ParameterSet const &pset) override
Configure this policy.
Definition: BasePolicies.h:277
RangeCheckHelper< seed_t > range_check
Definition: BasePolicies.h:296
void SetConfigLabels(std::string maxSeedsLabel="maxUniqueEngines", std::string baseSeedLabel="baseSeed", std::string checkRangeLabel="checkRange")
Definition: BasePolicies.h:177
template<typename SEED >
virtual void rndm::details::LinearMappingPolicy< SEED >::configure ( fhicl::ParameterSet const &  pset)
inlineoverridevirtual

Configure this policy.

Parameters
psetthe parameter set for the configuration

Parameters:

  • nJob (unsigned integer): the number of this job; the first seed
  • checkRange (boolean, default: true): whether to verify that each seed is within the expected range
  • maxUniqueEngines (unsigned integer, mandatory) the maximum number on seeds we expect to create

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

Definition at line 439 of file BasePolicies.h.

440  {
441  base_t::range_check.SetConfigLabels("", "", "checkRange");
442  base_t::configure(pset);
443  static_configure(pset);
444  }
void static_configure(fhicl::ParameterSet const &pset)
Definition: BasePolicies.h:465
virtual void configure(fhicl::ParameterSet const &pset) override
Configure this policy.
Definition: BasePolicies.h:277
RangeCheckHelper< seed_t > range_check
Definition: BasePolicies.h:296
void SetConfigLabels(std::string maxSeedsLabel="maxUniqueEngines", std::string baseSeedLabel="baseSeed", std::string checkRangeLabel="checkRange")
Definition: BasePolicies.h:177
template<typename SEED >
virtual seed_t rndm::details::LinearMappingPolicy< SEED >::createSeed ( SeedMasterHelper::EngineId const &  )
inlineoverrideprotectedvirtual

Returns the next random number.

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

Definition at line 152 of file StandardPolicies.h.

153  { return next_seed++; }
seed_t next_seed
next seed delivered
Definition: BasePolicies.h:451
template<typename SEED >
virtual seed_t rndm::details::LinearMappingPolicy< SEED >::createSeed ( SeedMasterHelper::EngineId const &  )
inlineoverrideprotectedvirtual

Returns the next random number.

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

Definition at line 455 of file BasePolicies.h.

456  { return next_seed++; }
seed_t next_seed
next seed delivered
Definition: BasePolicies.h:451
template<typename SEED >
virtual void rndm::details::LinearMappingPolicy< SEED >::print ( std::ostream &  out) const
overridevirtual

Prints the configuration of this policy.

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

template<typename SEED >
void rndm::details::LinearMappingPolicy< SEED >::print ( std::ostream &  out) const
overridevirtual

Prints the configuration of this policy.

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

Definition at line 495 of file BasePolicies.h.

495  {
496  base_t::print(out);
497  out
498  << "\n first seed: " << first_seed
499  << "\n seeds per job: " << nSeedsPerJob;
500  } // LinearMappingPolicy<SEED>::print()
virtual void print(std::ostream &out) const override
Prints information on the configuration of this policy.
Definition: BasePolicies.h:289
template<typename SEED >
void rndm::details::LinearMappingPolicy< SEED >::static_configure ( fhicl::ParameterSet const &  pset)
protected
template<typename SEED >
void rndm::details::LinearMappingPolicy< SEED >::static_configure ( fhicl::ParameterSet const &  pset)
protected

Definition at line 465 of file BasePolicies.h.

466  {
467  // this code is for legacy support, and it could disappear in the future
468  if (!pset.get_if_present<seed_t>("nJob", first_seed)) {
469  if (!pset.get_if_present<seed_t>("baseSeed", first_seed)) {
470  // this is going to fail; I am doing this just to get
471  // the more appropriate error message possible
472  first_seed = pset.get<seed_t>("nJob");
473  }
474  else {
475  mf::LogWarning("SeedMaster") <<
476  std::string(80, '*') <<
477  "\nDEPRECATION WARNING: 'baseSeed' parameter has been deprecated"
478  " for linearMapping policy, in favour of 'nJob'."
479  "\nPlease update your configuration accordingly."
480  << "\n" << std::string(80, '*');
481  }
482  }
483  // first_seed = pset.get<seed_t>("nJob");
484  nSeedsPerJob = pset.get<seed_t>("maxUniqueEngines");
486  ++first_seed; // we don't want 0 as a seed
491  } // LinearMappingPolicy<SEED>::configure()
seed_t next_seed
next seed delivered
Definition: BasePolicies.h:451
std::string string
Definition: nybbler.cc:12
unsigned long seed_t
void SetNSeeds(seed_t nSeeds)
Sets the number of seeds directly.
Definition: BasePolicies.h:132
RangeCheckHelper< seed_t > range_check
Definition: BasePolicies.h:296
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
void SetBaseSeed(seed_t base_seed)
Sets the base seed directly.
Definition: BasePolicies.h:128
void CheckRangeConfiguration() const
Check that the configuration is complete.
Definition: BasePolicies.h:323

Member Data Documentation

template<typename SEED >
seed_t rndm::details::LinearMappingPolicy< SEED >::first_seed
protected

base seed

Definition at line 450 of file BasePolicies.h.

template<typename SEED >
seed_t rndm::details::LinearMappingPolicy< SEED >::next_seed
protected

next seed delivered

Definition at line 451 of file BasePolicies.h.

template<typename SEED >
unsigned int rndm::details::LinearMappingPolicy< SEED >::nSeedsPerJob
protected

Definition at line 452 of file BasePolicies.h.


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