import scipy.integrate import baofisher import experiments as e from units import * INFILE = "boss_dNdzdS.dat" fname = "boss_nz.dat" INFILE = "wfirst_dNdzdS.dat" fname = "wfirst_nz.dat" INFILE = "hetdex_dNdzdS.dat" fname = "hetdex_nz.dat" # Calculate background redshift evolution cosmo_fns = baofisher.background_evolution_splines(e.cosmo) H, r, D, f = cosmo_fns def vol(zmin, zmax): _z = np.linspace(zmin, zmax, 1000) vol = C * scipy.integrate.simps(r(_z)**2. / H(_z), _z) vol *= 4. * np.pi * fsky return vol # Load data zmin, zmax, dN_dzdS = np.genfromtxt(INFILE).T fsky = 1. #Sarea / (4.*np.pi * (180./np.pi)**2.) zc = 0.5 * (zmin + zmax) dz = zmax - zmin
Calculate signal power as a function of frequency. """ import numpy as np import pylab as P import scipy.integrate import baofisher import experiments from experiments import cosmo from units import * import copy nu21 = 1420. # Line frequency at z=0 # Pre-calculate cosmological quantities k, pk = np.genfromtxt("cache_pk.dat")[:-1].T H, r, D, f = baofisher.background_evolution_splines(cosmo) def W_tophat(k, r): return 3. * (np.sin(k * r) - k * r * np.cos(k * r)) / ((k * r)**3.) def calculate_rms(z, expt): """ Calculate RMS of HI signal at a given redshift. """ theta_b = 3e8 * (1. + z) / (1e6 * expt['nu_line']) / expt['Ddish'] # Beam FWHM rnu = C * (1. + z)**2. / H(z) Tb = baofisher.Tb(z, cosmo) bHI = 1. #baofisher.bias_HI(z, cosmo)
import sys, copy comm = MPI.COMM_WORLD myid = comm.Get_rank() size = comm.Get_size() fname = "opt_expt_grid.dat" ################################################################################ # Set-up experiment parameters ################################################################################ # Precompute cosmology functions default_cosmo = experiments.cosmo default_cosmo['mnu'] = 0. cosmo_fns = baofisher.background_evolution_splines(default_cosmo) default_cosmo = baofisher.load_power_spectrum(default_cosmo, "cache_pk.dat", comm=comm) eos_derivs = baofisher.eos_fisher_matrix_derivs(default_cosmo, cosmo_fns) # Load Planck prior F_detf = euclid.detf_to_baofisher("DETF_PLANCK_FISHER.txt", default_cosmo, omegab=False) def calculate_fom(expt): """ Return FOM for a given set of experimental parameters. """