def run(slhafile, inputs=None, update=False) : print(inputs) if inputs is None: inputs={} fhopts = FeynHiggsOpts(default_inputs,inputs) recovery={} if inputs: if inputs.get('drop_extpar'): slhafile, recovery=drop_extpar(slhafile) if inputs.get('versions') is not None: return_value={} for version in inputs['versions']: FHout = FeynHiggsPrecObs() assert len(slhafile) == nslhadata[version] error = FHlibs[version].run_feynhiggs(byref(FHout), byref(fhopts), byref(slhafile.data), update) return_value.update(ctypes_field_values(FHout, name+version, error)) #130806 KJ NOTE: in case of no 'versions' specified, the outputs will look like e.g. ('FeynHigs','mh' ) #instead of ('FeynHiggs2.8.7','mh'), for downward compatiblility. This may change in the future else: FHout = FeynHiggsPrecObs() assert len(slhafile) == nslhadata[default_version] error = FHlibs[default_version].run_feynhiggs(byref(FHout), byref(fhopts), byref(slhafile.data), update) return_value=ctypes_field_values(FHout, name, error) #If (!) extpar is dropped for running FH it has to be put back for key, value in recovery.items(): slhafile[key]=value # if error: print("ERROR: FH") return return_value
def run(slhadata, inputs=None, update=False) : SIout = SuperISOPrecObs() fname = "/tmp/mc-{u}".format(u=tools.unique_str()) slhadata.write(fname) SIlib.run_superiso(c_char_p(fname.encode('ascii')), byref(SIout)) tools.rm(fname) return tools.ctypes_field_values(SIout, name)
def run(slhadata, inputs=None, update=False) : assert len(slhadata) == nslhadata fhopts = FeynHiggsOpts(default_inputs,inputs) FHout = FeynHiggsPrecObs() FHlib.run_feynhiggs(byref(FHout), byref(fhopts), byref(slhadata.data), update) return ctypes_field_values(FHout, name)
def run(slhadata, inputs=None, update=False): if inputs is None: inputs = {} SIout = SuperISOPrecObs() fname = unique_filename(inputs.get("tmp_dir")) slhadata.write(fname) SIlib.run_superiso(c_char_p(fname.encode("ascii")), byref(SIout)) rm(fname) # FIXME: No error handling yet return ctypes_field_values(SIout, name)
def run(slhadata, inputs=None, update=False) : MOout = MicromegasPrecObs() reader = lambda f: MOlib.run_micromegas(c_char_p(f.encode('ascii')), byref(MOout)) writer = lambda f: slhadata.write(f) fname = "/tmp/mc-{u}".format(u=unique_str()) writer(fname) reader(fname) rm(fname) return ctypes_field_values(MOout, name)
def run(slhadata, inputs=None, update=False): #FIXME: not entirely sure if this is the most elegant way of doing it. # We somehow need to set the defaults for the susypope flags and none-slhainputs if inputs is None: inputs={} flags = susypopeFlags(default_inputs['flags'],inputs.get('flags')) n_slha = susypopeNoneSLHA(default_inputs['non_slha_inputs'],inputs.get('non_slha_inputs')) spout = susypopeObs() SPlib.run_susypope(byref(slhadata.data), byref(n_slha), byref(flags), byref(spout)) return ctypes_field_values(spout, name)
def get_relevant_observables(all_obs): all_obs_d=ctypes_field_values(all_obs, name) d={ 'MW' : all_obs_d[(name,'MSSMObs')][0 ], 'sin_theta_eff' : all_obs_d[(name,'MSSMObs')][26], 'Gamma_z' : all_obs_d[(name,'MSSMObs')][10], 'Rl' : all_obs_d[(name,'MSSMObs')][21], 'sigma_had' : all_obs_d[(name,'MSSMObs')][20], 'Rb' : all_obs_d[(name,'MSSMObs')][25], 'Rc' : all_obs_d[(name,'MSSMObs')][24], 'Al' : all_obs_d[(name,'MSSMObs')][29], 'Ab' : all_obs_d[(name,'MSSMObs')][30], 'Ac' : all_obs_d[(name,'MSSMObs')][31], 'Afb_l' : all_obs_d[(name,'MSSMObs')][32], 'Afb_b' : all_obs_d[(name,'MSSMObs')][33], 'Afb_c' : all_obs_d[(name,'MSSMObs')][34],} return {(name,obs):val for obs,val in d.items()}
def run(slhadata, inputs=None, update=False): BPout = BPhysicsPrecObs() BPlib.run_bphysics(byref(slhadata.data), byref(BPout)) return ctypes_field_values(BPout, name)
def run(slhadata, inputs=None, update=False): BPout = BPhysicsPrecObs() error=BPlib.run_bphysics(byref(slhadata.data), byref(BPout)) if error: print('ERROR: Bphysics') return ctypes_field_values(BPout, name,error)
def run(slhadata, inputs=None, update=False): LSPout = lspscatObs() LSPin = lspscatInputs(default_inputs,inputs) LSPlib.run_lspscat(byref(slhadata.data), byref(LSPin), byref(LSPout)) #FIXME: lspscat has no error handling that I know of, maybe should fix this later return ctypes_field_values(LSPout, name)
def run(slhadata, inputs=None, update=False): LSPout = lspscatObs() LSPin = lspscatInputs(default_inputs,inputs) LSPlib.run_lspscat(byref(slhadata.data), byref(LSPin), byref(LSPout)) return ctypes_field_values(LSPout, name)