def load_parameters(filename, process, constraints): implementation_name = process + ' BSZ' parameter_names = [ implementation_name + ' ' + coeff_name for coeff_name in a_ff_string ] # a0_A0 and a0_T2 are not treated as independent parameters! parameter_names.remove(implementation_name + ' a0_A0') parameter_names.remove(implementation_name + ' a0_T2') for parameter_name in parameter_names: try: # check if parameter object already exists p = Parameter[parameter_name] except: # otherwise, create a new one p = Parameter(parameter_name) # get LaTeX representation of coefficient and form factor names _tex_a = tex_a[parameter_name.split(' ')[-1].split('_')[0]] _tex_ff = tex_ff[parameter_name.split(' ')[-1].split('_')[-1]] p.tex = r'$' + _tex_a + r'^{' + _tex_ff + r'}$' p.description = r'BSZ form factor parametrization coefficient $' + _tex_a + r'$ of $' + _tex_ff + r'$' else: # if parameter exists, remove existing constraints constraints.remove_constraint(parameter_name) [central, unc, corr] = get_ffpar(filename) constraints.add_constraint( parameter_names, MultivariateNormalDistribution(central_value=central, covariance=np.outer(unc, unc) * corr))
def load_parameters(filename, process, constraints): implementation_name = process + ' BSZ' parameter_names = [implementation_name + ' ' + coeff_name for coeff_name in a_ff_string] # a0_f0 is not treated as independent parameter! parameter_names.remove(implementation_name + ' a0_f0') for parameter_name in parameter_names: try: # check if parameter object already exists p = Parameter[parameter_name] except KeyError: # if not, create a new one p = Parameter(parameter_name) # get LaTeX representation of coefficient and form factor names _tex_a = tex_a[parameter_name.split(' ')[-1].split('_')[0]] _tex_ff = tex_ff[parameter_name.split(' ')[-1].split('_')[-1]] p.tex = r'$' + _tex_a + r'^{' + _tex_ff + r'}$' p.description = r'BSZ form factor parametrization coefficient $' + _tex_a + r'$ of $' + _tex_ff + r'$' else: # if parameter exists, remove existing constraints constraints.remove_constraint(parameter_name) [central, unc, corr] = get_ffpar(filename) constraints.add_constraint(parameter_names, MultivariateNormalDistribution(central_value=central, covariance=np.outer(unc, unc)*corr))
def load_parameters(file_res, file_cov, process, constraints): implementation_name = process + ' SSE' res_dict = csv_to_dict(file_res) cov_dict = csv_to_dict(file_cov) keys_sorted = sorted(res_dict.keys()) res = [res_dict[k] for k in keys_sorted] cov = np.array([[ cov_dict.get((k,m),0) for m in keys_sorted] for k in keys_sorted]) parameter_names = [implementation_name + ' ' + translate_parameters(coeff_name) for coeff_name in keys_sorted] for parameter_name in parameter_names: try: # check if parameter object already exists p = Parameter[parameter_name] except: # otherwise, create a new one p = Parameter(parameter_name) _tex_a = tex_a[parameter_name.split(' ')[-1].split('_')[0]] _tex_ff = tex_ff[parameter_name.split(' ')[-1].split('_')[-1]] p.tex = r'$' + _tex_a + r'^{' + _tex_ff + r'}$' p.description = r'SSE form factor parametrization coefficient $' + _tex_a + r'$ of $' + _tex_ff + r'$' else: # if parameter exists, remove existing constraints constraints.remove_constraint(parameter_name) constraints.add_constraint(parameter_names, MultivariateNormalDistribution(central_value=res, covariance=cov ))