From a0d2fd911a14f160eb5ba9554db24c92ce344dfa Mon Sep 17 00:00:00 2001 From: Andre Sailer <andre.philippe.sailer@cern.ch> Date: Tue, 5 Jul 2016 16:59:55 +0000 Subject: [PATCH] DDSim.Random: If no random seed is given we create one randomly Avoid wasting cycles because the same job is run many times SystemRandom is not pseudorandom, so this should be unique for time and place and machine and thread --- DDSim/Helper/Random.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/DDSim/Helper/Random.py b/DDSim/Helper/Random.py index 7a2449d9f..4a355f644 100644 --- a/DDSim/Helper/Random.py +++ b/DDSim/Helper/Random.py @@ -1,5 +1,7 @@ """Helper object for random number generator objects""" +import random + from DDSim.Helper.ConfigHelper import ConfigHelper class Random (ConfigHelper): @@ -29,9 +31,14 @@ class Random (ConfigHelper): return self._random self._random = DDG4.Action(kernel,'Geant4Random/R1') - if self.seed is not None: - self._random.Seed = self.seed - self._random.Luxury = self.luxury + if self.seed is None: + ## System provided random source, truely random according to documentation + self.seed = random.SystemRandom().randint(0, 2**31-1) + print "Choosing random seed for you:", self.seed + + self._random.Seed = self.seed + self._random.Luxury = self.luxury + if self.type is not None: self._random.Type = self.type -- GitLab