Source code for hepi.spheno.run

from typing import List
import warnings
import subprocess
import os
from hepi.input import Input, update_slha
from hepi.run import Runner


[docs]class SPhenoRunner(Runner):
[docs] def run(self, slhas: List[Input], **kwargs) -> List[Input]: """ Run the passed list of parameters for SPheno. Args: slhas (:obj:`list` of :class:`Input`): Input parameters with a SLHA file that can be processed by SPheno. Returns: :obj:`list` of :class:`Input` """ if os.path.exists("Messages.out"): os.remove("Messages.out") for s in slhas: # Remove Creation time for hash-/caching comm = "cp " + self.get_output_dir( ) + s.slha + " spheno_tmp.in && " + get_path( ) + "bin/SPheno spheno_tmp.in && mv " + "SPheno.spc " + self.get_output_dir( ) + s.slha + " && sed -i '/Created/d' " + self.get_output_dir( ) + s.slha proc = subprocess.Popen(comm, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) proc.wait() update_slha(s) if os.path.exists("Messages.out"): with open("Messages.out", 'r') as r: t = r.read() if t != "": warnings.warn(r.read()) return slhas
# Backward compatibility
[docs]spheno_default_runner = SPhenoRunner("~/git/SPheno-3.3.8/")
"""Default SPheno Runner to provide backward compatibility"""
[docs]run = spheno_default_runner.run
[docs]set_path = spheno_default_runner.set_path
[docs]get_path = spheno_default_runner.get_path