|Message: Re: Seed for Random Engines||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
I have had great success with seeding the PRNG with each event number, at the beginning of each event. This uses the default Geant4 random number generator (CLHEP::HepJamesRandom). The problem reduces to making sure that each job uses different event numbers (e.g. via command-line arguments specifying first and last event numbers). This makes parallel jobs on a cluster easy, and has several advantages:
* the seed is simply an integer * you don't need to keep track of the seeds used * usually you want to have different event numbers anyway * no dependence on non-portable initializers * you can re-run the entire job * you can re-run INDIVIDUAL EVENTS
This last is the most important reason to do this: often when you run thousands or millions of events you get a few "outlier" events that are far outside the normal distribution of some histogram. All you need to do is determine their event numbers, and you can re-run them with visualization enabled and SEE what happened. I have a feature in the histogramming tool I use that makes this easy.
Note that seeding the PRNG must be done after the event number is known, but before any random numbers are used to generate the track(s) of the event. BeginOfEventAction() is too late, so I put it inside GeneratePrimaries().
The CLHEP::HepJamesRandom generator guarantees independent streams for seeds in the range 0 to 900,000,000 -- that's more than enough events for my purposes.
|Inline Depth:||Outline Depth:||Add message:|