From 484b1b9c74f55d3d374b2cfa483ecd37b0f15907 Mon Sep 17 00:00:00 2001 From: Johannes Schumann <johannes.schumann@fau.de> Date: Thu, 26 Nov 2020 01:45:55 +0100 Subject: [PATCH] Save filename in jobcard object and write jobcard to output folder --- km3buu/ctrl.py | 2 ++ km3buu/jobcard.py | 24 ++++++++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/km3buu/ctrl.py b/km3buu/ctrl.py index f4bf85e..b587306 100644 --- a/km3buu/ctrl.py +++ b/km3buu/ctrl.py @@ -92,6 +92,8 @@ def run_jobcard(jobcard, outdir, fluxfile=None): bind=[outdir, input_dir.name], return_result=True, ) + with open(join(outdir, jobcard.filename), "w") as f: + f.write(str(jobcard)) msg = output["message"] if isinstance(msg, str): log.info("GiBUU output:\n %s" % msg) diff --git a/km3buu/jobcard.py b/km3buu/jobcard.py index c9faadc..6465001 100644 --- a/km3buu/jobcard.py +++ b/km3buu/jobcard.py @@ -13,6 +13,7 @@ __email__ = "jschumann@km3net.de" __status__ = "Development" import f90nml +from os.path import basename try: from StringIO import StringIO @@ -21,6 +22,8 @@ except ImportError: INPUT_PATH = "/opt/buuinput2019/" +DEFAULT_JOBCARD_FILENAME = "jobcard.job" + PROCESS_LOOKUP = {"cc": 2, "nc": 3, "anticc": -2, "antinc": -3} FLAVOR_LOOKUP = {"electron": 1, "muon": 2, "tau": 3} PDGID_LOOKUP = {1: 12, 2: 14, 3: 16} @@ -56,6 +59,11 @@ class Jobcard(f90nml.Namelist): The input path pointing to the GiBUU lookup data which should be used """ def __init__(self, *args, **kwargs): + if "filename" in kwargs: + self.filename = kwargs["filename"] + del kwargs["filename"] + else: + self.filename = DEFAULT_JOBCARD_FILENAME super(Jobcard, self).__init__(*args, **kwargs) if "input_path" in kwargs: self.input_path = str(input_path) @@ -82,17 +90,17 @@ class Jobcard(f90nml.Namelist): def read_jobcard(filepath): - return Jobcard(f90nml.read(filepath)) + return Jobcard(f90nml.read(filepath), filename=basename(filepath)) def generate_neutrino_jobcard_template( - process, - flavour, - energy, - target, - write_events=False, - do_decay=False, - input_path=INPUT_PATH): # pragma: no cover + process, + flavour, + energy, + target, + write_events=False, + do_decay=False, + input_path=INPUT_PATH): # pragma: no cover """ Generate a jobcard for neutrino interaction -- GitLab