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