예제 #1
0
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
예제 #2
0
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)
예제 #3
0
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.
    """