diff --git a/km3buu/ctrl.py b/km3buu/ctrl.py index f4bf85eea8cf9af8e3ca954c8b72d5a31dd87b59..b587306c9c6f99322a001df66c4faf1d7b3225d0 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 c9faadcaa367621e3c60b27315a5e051423822bc..646500187c412181af8930cd7867ec7cfb4afb14 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