2 # File: seedservice_icarus.fcl
3 # Purpose: preset configurations for random number generator seeds in ICARUS.
4 # Author: Gianluca Petrillo (petrillo@slac.stanford.edu)
5 # Date: September 9, 2022
7 # A "standard" configuration for ICARUS random number generators is defined:
9 # services.NuRandomService: @local::icarus_default_NuRandomService
11 # includes it in a job configuration.
13 # This configuration file includes all the presets from LArSoft, and it adds
14 # one with per-event seed policy but with a fallback policy as described in
15 # LArSoft Redmine issue #26116 and icaruscode issues #243.
17 # This configuration should be good enough for all applications.
20 #include "seedservice.fcl"
23 #-------------------------------------------------------------------------------
25 ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
26 # Per-event with random fallback
28 # This policy guarantees reproducibility for all random numbers used while
29 # processing an event, just like the perEvent policy does.
30 # In addition, it explicitly assigns an unreproducible random number sequence
31 # for use before the first event is encountered (as for example in a generator
32 # randomly selecting before the job starts which pools to extract pre-generated
33 # events from, like the CORSIKA implementation in LArSoft does).
35 # In practice, there may be some way to reproduce also the "unreproducible"
36 # random sequence by setting the master seed to the value printed by the job;
37 # although the success of this process also depends on providing the exact input
38 # data file sequence to the job, which can't be guaranteed when SAM is feeding
41 per_event_with_random_fallback_NuRandomService: {
43 @table::per_event_NuRandomService
45 initSeedPolicy: { policy:
"random" }
47 } # per_event_with_random_fallback_NuRandomService
50 ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
51 # ICARUS "default" seed configuration
53 # If there are no specific needs, this is the configuration that should be used.
56 icarus_default_NuRandomService: @local::per_event_with_random_fallback_NuRandomService
59 #-------------------------------------------------------------------------------