manual seed option

This commit is contained in:
Jan Kieseler
2024-11-07 14:14:45 +01:00
parent 7410049a72
commit 7829fde6f2
+14 -10
View File
@@ -188,7 +188,8 @@ def run_batch(
minEnergy_GeV: float,
maxEnergy_GeV: float = -1.0,
filename: str = "",
no_mp: bool = False):
no_mp: bool = False,
manual_seed : int = -1):
'''
splits the batch in jobs depending on how many cores are available and runs mini batches in parallel
'''
@@ -215,15 +216,18 @@ def run_batch(
nevents = [nEventsPerCore if i < nCores - 1 else nEventsLastCore for i in range(nCores)]
with _g4calo_threading_lock if _g4calo_threading_lock is not None else contextlib.nullcontext():
# check if file exists, if so, read last seed. If not create it
if os.path.exists(os.path.expanduser("~/.g4calo_seeds.txt")):
with open(os.path.expanduser("~/.g4calo_seeds.txt"), "r") as f:
seed = int(f.read())
else:
seed = 0
with open(os.path.expanduser("~/.g4calo_seeds.txt"), "w") as f:
f.write(str(seed + nCores))
if manual_seed >= 0:
seed = manual_seed
else:
with _g4calo_threading_lock if _g4calo_threading_lock is not None else contextlib.nullcontext():
# check if file exists, if so, read last seed. If not create it
if os.path.exists(os.path.expanduser("~/.g4calo_seeds.txt")):
with open(os.path.expanduser("~/.g4calo_seeds.txt"), "r") as f:
seed = int(f.read())
else:
seed = 0
with open(os.path.expanduser("~/.g4calo_seeds.txt"), "w") as f:
f.write(str(seed + nCores))
seed += 1
print(f"Batch seed: {seed}")