def get_hz_errs(fname): """ Load Fisher matrix and invert to get errors on H(z) as a function of z. """ root = "output/" + fname print(root) # Load cosmo fns. dat = np.atleast_2d(np.genfromtxt(root + "-cosmofns-zc.dat")).T zc, Hc, dAc, Dc, fc = dat z, H, dA, D, f = np.genfromtxt(root + "-cosmofns-smooth.dat").T kc = np.genfromtxt(root + "-fisher-kc.dat").T # Load Fisher matrices as fn. of z Nbins = zc.size F_list = [ np.genfromtxt(root + "-fisher-full-%d.dat" % i) for i in range(Nbins) ] # EOS FISHER MATRIX # Actually, (aperp, apar) are (D_A, H) pnames = rf.load_param_names(root + "-fisher-full-0.dat") zfns = [ 'bs8', 'fs8', 'H', 'DA', ] excl = [ 'Tb', 'n_s', 'sigma8', 'omegak', 'omegaDE', 'w0', 'wa', 'h', 'gamma', 'N_eff', 'pk*', 'f', 'b_HI', 'gamma0', 'gamma1', 'eta0', 'eta1', 'A_xi', 'logkmg', 'sigma8tot', 'sigma_8', 'k*', 'A', 'aperp', 'apar' ] F, lbls = rf.combined_fisher_matrix(F_list, expand=zfns, names=pnames, exclude=excl) print(lbls) cov = np.linalg.inv(F) errs = np.sqrt(np.diag(cov)) # Identify functions of z pH = rf.indices_for_param_names(lbls, 'H*') errH = 1e2 * errs[pH] / Hc # Return values return zc, errH
Nbins = zc.size F_list = [np.genfromtxt(root+"-fisher-full-%d.dat" % i) for i in range(Nbins)] # EOS FISHER MATRIX # Actually, (aperp, apar) are (D_A, H) pnames = rf.load_param_names(root+"-fisher-full-0.dat") #zfns = ['A', 'b_HI', 'f', 'H', 'DA', 'aperp', 'apar'] zfns = ['bs8', 'fs8', 'H', 'DA',] excl = ['Tb', 'n_s', 'sigma8', 'omegak', 'omegaDE', 'w0', 'wa', 'h', 'gamma', 'N_eff', 'pk*', 'f', 'b_HI', 'gamma0', 'gamma1', 'eta0', 'eta1', 'A_xi', 'logkmg', 'sigma8tot', 'sigma_8', 'k*', 'A', 'aperp', 'apar'] F, lbls = rf.combined_fisher_matrix( F_list, expand=zfns, names=pnames, exclude=excl ) cov = np.linalg.inv(F) errs = np.sqrt(np.diag(cov)) # Identify functions of z pfs8 = rf.indices_for_param_names(lbls, 'fs8*') err = errs[pfs8] / (cosmo['sigma_8']*fc*Dc) P.plot( zc, err, color=colours[k], label=labels[k], lw=2.2, marker=marker[k], markersize=ms[k], markeredgecolor=colours[k], dashes=linestyle[k] ) # Load actual f.sigma_8 data and plot it dat = np.genfromtxt("fsigma8_data.dat").T #P.plot(dat[1], dat[3], 'kD')
np.genfromtxt(root + "-fisher-full-%d.dat" % i) for i in range(Nbins) ] #F_list = [np.genfromtxt(root+"-fisher-full-%d.dat" % i) for i in np.where(zc>0.5)[0]] #Nbins = np.where(zc > 0.5)[0].size #if Nbins == 0: continue # EOS FISHER MATRIX pnames = rf.load_param_names(root + "-fisher-full-0.dat") zfns = [ 'b_HI', ] excl = [ 'Tb', 'f', 'aperp', 'apar', 'DA', 'H', 'pk*', 'fs8', 'bs8', 'N_eff' ] F, lbls = rf.combined_fisher_matrix(F_list, expand=zfns, names=pnames, exclude=excl) # Add Planck prior print "*** Using DETF Planck prior ***" l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h', 'sigma8'] F_detf = euclid.detf_to_rf("DETF_PLANCK_FISHER.txt", cosmo, omegab=False) Fpl, lbls = rf.add_fisher_matrices(F, F_detf, lbls, l2, expand=True) # Remove extra params Fpl, lbls = rf.combined_fisher_matrix([ Fpl, ], expand=[], names=lbls, exclude=[
# Load Fisher matrices as fn. of z Nbins = zc.size F_list = [ np.genfromtxt(root + "-fisher-full-%d.dat" % i) for i in range(Nbins) ] # EOS FISHER MATRIX pnames = rf.load_param_names(root + "-fisher-full-0.dat") zfns = [ 'b_HI', ] #zfns = ['bs8',] excl = exclude_all + mgexclude[MGMODE] F, lbls = rf.combined_fisher_matrix(F_list, expand=zfns, names=pnames, exclude=excl) # Relabel galaxy bias from low-z survey and sum current survey + low-z #if 'BOSS' not in labels[k]: # F, lbls = rf.add_fisher_matrices(F_lowz, F, lbls_lowz, lbls, expand=True) #print lbls # Add Planck prior print "*** Using DETF Planck prior ***" l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h', 'sigma_8'] F_detf = euclid.detf_to_rf("DETF_PLANCK_FISHER.txt", cosmo, omegab=False) Fpl, lbls = rf.add_fisher_matrices(F, F_detf, lbls, l2, expand=True) # Decide whether to fix various parameters fixed_params = []
F_list = [ np.genfromtxt(root + "-fisher-full-%d.dat" % i) for i in range(Nbins) ] # EOS FISHER MATRIX # Actually, (aperp, apar) are (D_A, H) pnames = [ 'A', 'b_HI', 'Tb', 'sigma_NL', 'sigma8', 'n_s', 'f', 'aperp', 'apar', 'omegak', 'omegaDE', 'w0', 'wa', 'h', 'gamma', 'fNL' ] pnames += ["pk%d" % i for i in range(kc.size)] zfns = [ 1, ] F, lbls = rf.combined_fisher_matrix(F_list, expand=zfns, names=pnames, exclude=[2, 4, 5, 6, 7, 8]) # Just do the simplest thing for P(k) cov = np.sqrt(1. / np.diag(F)[-kc.size:]) cov[np.where(np.isinf(cov))] = 1e4 #pk = cosmo['pk_nobao'](kc) * (1. + fbao(kc)) P.plot(kc, cov, lw=1.5, label=labels[k]) P.legend(loc='upper left', prop={'size': 'large'}) P.ylim((1e-3, 400.)) P.xlim((3e-3, 1e0)) P.xscale('log') P.yscale('log') P.axvline(2.3e-2, ls='dotted', color='k') P.axvline(3.7e-1, ls='dotted', color='k')
# EOS FISHER MATRIX # Actually, (aperp, apar) are (D_A, H) pnames = [ 'A', 'b_HI', 'Tb', 'sigma_NL', 'sigma8', 'n_s', 'f', 'aperp', 'apar', 'omegak', 'omegaDE', 'w0', 'wa', 'h', 'gamma' ] pnames += ["pk%d" % i for i in range(kc.size)] zfns = [ 1, ] excl = [2, 6, 7, 8, 14] # omega_k free 4,5 excl += [i for i in range(len(pnames)) if "pk" in pnames[i]] F, lbls = rf.combined_fisher_matrix(F_list[:l], expand=zfns, names=pnames, exclude=excl) # Add Planck prior #Fpl = euclid.add_detf_planck_prior(F, lbls, info=False) #Fpl = euclid.add_planck_prior(F, lbls, info=False) if USE_DETF_PLANCK_PRIOR: # DETF Planck prior print "*** Using DETF Planck prior ***" l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h'] F_detf = euclid.detf_to_rf("DETF_PLANCK_FISHER.txt", cosmo) Fpl, lbls = rf.add_fisher_matrices(F, F_detf, lbls, l2, expand=True) else:
Nbins = zc.size # EOS FISHER MATRIX pnames = [ 'A', 'b_HI', 'Tb', 'sigma_NL', 'sigma8', 'n_s', 'f', 'aperp', 'apar', 'omegak', 'omegaDE', 'w0', 'wa', 'h', 'gamma' ] #0:A, 1:b_HI, 2:sigma_NL, [3:omegak,] 4:omegaDE, 5:w0, 6:wa, 7:h, 8:gamma zfns = [ 1, ] # Marginalise over omega_k F_eos, lbls = rf.combined_fisher_matrix( F_eos_list, #exclude=[2,4,5,6,7,8,9,12], exclude=[2, 4, 5, 6, 7, 8, 9, 14], expand=zfns, names=pnames) Finv = np.linalg.inv(F_eos) # Pre-invert, for efficiency print "Cond. No.:", np.linalg.cond(F_eos) print "sig(h):", np.sqrt(Finv[6, 6]) px = rf.indexes_for_sampled_fns(4, zc.size, zfns) # x 4 py = rf.indexes_for_sampled_fns(5, zc.size, zfns) # y 5 #rf.plot_corrmat(Finv, lbls) """ # Fix omega_k F_eos2, lbls2 = rf.combined_fisher_matrix( F_eos_list, exclude=[2,4,5,6,7,8, 9,12],
Nbins = zc.size F_list = [ np.genfromtxt(root + "-fisher-full-%d.dat" % i) for i in range(Nbins) ] # EOS FISHER MATRIX pnames = rf.load_param_names(root + "-fisher-full-0.dat") zfns = [ 'b_HI', ] excl = [ 'Tb', 'f', 'fs8', 'bs8', 'aperp', 'apar', 'DA', 'H', 'gamma', 'N_eff', 'pk*' ] F, lbls = rf.combined_fisher_matrix(F_list, expand=zfns, names=pnames, exclude=excl) # Add Planck prior #Fpl = euclid.add_detf_planck_prior(F, lbls, info=False) #Fpl = euclid.add_planck_prior(F, lbls, info=False) # (a) DETF Planck prior #print "*** Using DETF Planck prior ***" #l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h', 'sigma8'] #F_detf = euclid.detf_to_rf("DETF_PLANCK_FISHER.txt", cosmo, omegab=False) #Fpl, lbls = rf.add_fisher_matrices(F, F_detf, lbls, l2, expand=True) # (b) Planck Fisher matrix (derived from Planck 2015 MCMC chains) lbls_planck = ['n_s', 'Omega_b', 'omegaDE', 'h', 'sigma8', 'Mnu', 'Neff'] F_planck = np.genfromtxt( "/home/phil/oslo/Dropbox/HI_neutrinos/fisher_code/planck/planck_derived_fisher.dat"
pnames += ["pk%d" % i for i in range(kc.size)] zfns = [ 1, ] excl = [ 2, 6, 7, 8, 14, ] excl += [i for i in range(len(pnames)) if "pk" in pnames[i]] F, lbls = rf.combined_fisher_matrix(F_list, expand=zfns, names=pnames, exclude=excl) # Apply Planck prior if USE_DETF_PLANCK_PRIOR: # DETF Planck prior print "*** Using DETF Planck prior ***" l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h', 'sigma8'] F_detf = euclid.detf_to_rf("DETF_PLANCK_FISHER.txt", cosmo, omegab=False) Fpl, lbls = rf.add_fisher_matrices(F, F_detf, lbls, l2, expand=True) else: # Euclid Planck prior print "*** Using Euclid (Mukherjee) Planck prior ***" l2 = ['n_s', 'w0', 'wa', 'omega_b', 'omegak', 'omegaDE', 'h'] Fe = euclid.planck_prior_full