Source code for bsmart.tools.anyBSM

"""
Tool to run anyBSM



https://anybsm.gitlab.io/

Provided by Martin Gabelmann -- thanks!!

"""

__meta__ = {
    "name": "anyBSM",
    "requires": ["anyBSM"],
    "settings": {
        "model": "Model name",
        "settings": "Dict of settings",
        "setparameters": "Dict of parameters"
    }
}



from anyBSM import anyBSM as anyBSM_lib
from bsmart.HEPRun import HepTool
from bsmart import zslha

[docs] class NewTool(HepTool): def __init__(self, name, settings, global_settings=None): HepTool.__init__(self, name, settings, global_settings) self.anybsm = anyBSM_lib(settings['model'],**settings['settings']) self.anybsm.warnSSSS = False self.anyinput = settings['setparameters'] ## e.g. 'setparameters' : {} or 'setparameters': 'SPheno.spc.MSSM'
[docs] def run(self, spc_file, temp_dir, log, data_point): #try: params = {k: eval(v,data_point.var_dict) for k,v in self.anyinput.items()} self.anybsm.setparameters(params) lam = self.anybsm.lambdahhh() lam_1 = lam['total'].real lam_0 = lam['treelevel'].real kaplam = lam_1/187.2818 log.debug('AnyBSM parameters: '+str(params)) if data_point.spc is None: data_point.spc = zslha.read(spc_file) with open(spc_file,'a') as OF: OF.write('BLOCK ANYBSM \n') OF.write('1 %10.8e # lamhhh(0)\n' % lam_0) OF.write('2 %10.8e # lamhhh(1)\n' % lam_1) OF.write('3 %10.8e # kappa_lambda(1)\n' % kaplam) data_point.spc.blocks['ANYBSM'] = {'1': lam_0, '2': lam_1, '3': kaplam} data_point.spc.blockcomments['ANYBSM'] = {'1': 'lamhhh0', '2': 'lamhhh1', '3': 'kappalam'}