def loadFiles(pat, max_files=400, cl_ix=1, calParam=None, rescale=1): d, name = os.path.split(pat + '_?_*') pars = [] cls = [] ls = None for f in os.listdir(d): if fnmatch.fnmatch(f, name + '.theory_cl'): fname = f.replace('.theory_cl', '') params = ResultObjs.bestFit(os.path.join(d, fname + '.pars')) pars.append(params) cl = loadtxt(os.path.join(d, fname + '.theory_cl')) if calParam: cal = params.parWithName(calParam).best_fit else: cal = 1 cls.append(cl[:, cl_ix] / cal ** 2 * rescale) if ls is None: ls = cl[:, 0] if len(pars) == max_files: break if not len(pars): raise Exception('No files found: ' + pat) return ls, pars, cls
sys.exit() root = os.path.abspath(sys.argv[1]) pars = {'ombh2':'omegabh2', 'omch2':'omegach2', 'omnuh2':'omeganuh2', 'hubble':'H0', 'w':'w', 'helium_fraction':'yheused', 'scalar_amp(1)':'A' , 'scalar_spectral_index(1)':'ns', 'scalar_nrun(1)':'nrun', 'initial_ratio(1)':'r', 're_optical_depth':'tau', 're_delta_redshift':'deltazrei', 'massless_neutrinos':'nnu'} ini = iniFile.iniFile() ini.params['re_use_optical_depth'] = True ini.params['temp_cmb'] = 2.7255 ini.params['CMB_outputscale'] = 2.7255e6 ** 2. ini.defaults.append('params.ini') bf = ResultObjs.bestFit(root + '.minimum', setParamNameFile=root + '.paramnames', want_fixed=True) for camb, cosmomc in pars.items(): par = bf.parWithName(cosmomc) if par is not None: ini.params[camb] = par.best_fit ini.params['scalar_amp(1)'] = float(ini.params['scalar_amp(1)']) / 1e9 nmassive = 1 neffstandard = 3.046 / 3 ini.params['massless_neutrinos'] = float(ini.params['massless_neutrinos']) - neffstandard * nmassive ini.params['massive_neutrinos'] = int(round(neffstandard * nmassive)) ini.params['nu_mass_degeneracies'] = neffstandard * nmassive ini.params['share_delta_neff'] = False ini.params['tensor_spectral_index(1)'] = -float(ini.params['initial_ratio(1)']) / 8
def chainBestfit(self, paramNameFile=None): bf_file = self.chainRoot + '.minimum' if nonEmptyFile(bf_file): return ResultObjs.bestFit(bf_file, paramNameFile) return None