Beispiel #1
0
def crosscorr_rec_coords(
    ell, z_i, y, delta_z
):  #with the assumption that zi=z so no cos factor, and we have dz=redshift bin width=2*delta_z defined above
    n = n_points  #number of points over which to integrate
    Kp_par = np.geomspace(1.e-6, .15, n)
    Kp_perp = np.geomspace(1.e-6, 1., n)
    Z_min = z_i - delta_z
    Z_max = z_i + delta_z
    Z = np.geomspace(Z_min, Z_max, n)
    kp_perp, kp_par, z = np.meshgrid(Kp_perp, Kp_par, Z)
    chi_z = chi(z)
    T_mean_zi = uf.T_mean(z_i)
    chi_zi = chi(z_i)
    chi_z = chi(z)
    f_zi = uf.f(z_i)
    f_z = uf.f(z)
    D_zi = uf.D_1(z_i)
    r_zi = uf.r(z_i)
    D_z = uf.D_1(z)
    H_zi = uf.H(z_i)
    tau_z = uf.tau_inst(z)
    kpar = y / uf.r(z)
    const = 1.e6 / (
        4. * np.pi**2
    ) * T_rad * T_mean_zi**2 / cc.c_light_Mpc_s * f_zi * D_zi**2 * H_zi / (
        chi_zi**2 * r_zi) / (1. + z_i) * x * (sigma_T * rho_g0 / (mu_e * m_p))
    kperp = ell / chi_z
    k = np.sqrt(kperp**2 + kpar**2)
    kp = np.sqrt(kp_perp**2 + kp_par**2)
    cos_theta = kp_par / kp  #cos_theta=u, theta is azimuthal angle between k' and z (line of sight) axis
    sin_theta = kp_perp / kp
    sin_gamma = kpar / k  #gamma is measured between k and xy plane, i.e. elevation of k
    cos_gamma = kperp / k
    zeta = sin_gamma * cos_theta + cos_gamma * sin_theta
    k_dot_kp = kperp * kp_perp + kpar * kp_par * zeta
    K = np.sqrt(k**2 + kp**2 - 2 * k_dot_kp)
    theta_K = kpar / K / k**2 * (
        k**2 - k_dot_kp) - kp * kperp * np.sqrt(1 - zeta**2) / k / K
    theta_kp = cos_theta
    rsd = 1. + f_zi * kpar**2 / k**2
    I = theta_kp * (theta_kp / kp**2 + theta_K / K / kp)
    integrand_1 = f_z * D_z**2 * (
        1 + z) * np.exp(-tau_z) * rsd**2 * Mps_interpf(kp) * Mps_interpf(
            K) * theta_kp**2 / kp**2
    integrand_2 = f_z * D_z**2 * (
        1 + z) * np.exp(-tau_z) * rsd**2 * Mps_interpf(kp) * Mps_interpf(
            K) * theta_kp * theta_K / kp / K
    integral_1 = const * sp.integrate.trapz(sp.integrate.trapz(
        sp.integrate.trapz(integrand_1, Kp_perp, axis=0), Kp_par, axis=0),
                                            Z,
                                            axis=0)
    integral_2 = const * sp.integrate.trapz(sp.integrate.trapz(
        sp.integrate.trapz(integrand_2, Kp_perp, axis=0), Kp_par, axis=0),
                                            Z,
                                            axis=0)
    return integral_1 + integral_2
Beispiel #2
0
def crosscorr_integral_y_rec_coords(
        ell, z_i, delta_z
):  #This is not working out-don't try this for now. Just leave it.
    n = n_points  #number of points over which to integrate
    Kp_par = np.geomspace(1.e-6, .15, n)
    Kp_perp = np.geomspace(1.e-6, 1., n)
    Z_min = z_i - delta_z
    Z_max = z_i + delta_z
    z = np.geomspace(Z_min, Z_max, n)
    Kpar = np.geomspace(1.e-6, .15, n)
    kp_perp, kp_par, kpar = np.meshgrid(Kp_perp, Kp_par, Kpar)
    chi_z = chi(z)
    T_mean_zi = uf.T_mean(z_i)
    chi_zi = chi(z_i)
    f_zi = uf.f(z_i)
    f_z = uf.f(z)
    D_zi = uf.D_1(z_i)
    r_zi = uf.r(z_i)
    D_z = uf.D_1(z)
    H_zi = uf.H(z_i)
    tau_z = uf.tau_inst(z)
    kpar = y / uf.r(z)
    const = 1.e6 / (
        8. * np.pi**3
    ) * T_rad * T_mean_zi**2 / cc.c_light_Mpc_s * f_zi * D_zi**2 * H_zi / (
        chi_zi**2) / (1. + z_i) * x * (sigma_T * rho_g0 / (mu_e * m_p))
    kperp = ell / chi_zi
    k = np.sqrt(kperp**2 + kpar**2)
    kp = np.sqrt(kp_perp**2 + kp_par**2)
    cos_theta = kp_par / kp  #cos_theta=u, theta is azimuthal angle between k' and z (line of sight) axis
    sin_theta = kp_perp / kp
    sin_gamma = kpar / k  #gamma is measured between k and xy plane, i.e. elevation of k
    cos_gamma = kperp / k
    zeta = sin_gamma * cos_theta + cos_gamma * sin_theta
    k_dot_kp = kperp * kp_perp + kpar * kp_par * zeta
    K = np.sqrt(k**2 + kp**2 - 2 * k_dot_kp)
    theta_K = kpar / K / k**2 * (
        k**2 - k_dot_kp) - kp * kperp * np.sqrt(1 - zeta**2) / k / K
    theta_kp = cos_theta
    rsd = 1. + f_zi * kpar**2 / k**2
    I = theta_kp * (theta_kp / kp**2 + theta_K / K / kp)
    z_dep_integ = sp.integrate.trapz(f_z * D_z**2 * (1 + z) * np.exp(-tau_z),
                                     z)
    integrand_1 = rsd**2 * Mps_interpf(kp) * Mps_interpf(
        K) * theta_kp**2 / kp**2 * kp_perp
    integrand_2 = rsd**2 * Mps_interpf(kp) * Mps_interpf(
        K) * theta_kp * theta_K / kp / K * kp_perp
    integral_1 = const * z_dep_integ * sp.integrate.trapz(sp.integrate.trapz(
        sp.integrate.trapz(integrand_1, Kp_perp, axis=0), Kp_par, axis=0),
                                                          Kpar,
                                                          axis=0)
    integral_2 = const * z_dep_integ * sp.integrate.trapz(sp.integrate.trapz(
        sp.integrate.trapz(integrand_2, Kp_perp, axis=0), Kp_par, axis=0),
                                                          Kpar,
                                                          axis=0)
    return integral_1 + integral_2
Beispiel #3
0
def crosscorr_squeezedlim(
    ell, z_i, y, delta_z
):  #with the assumption that zi=z so no cos factor, and we have dz=redshift bin width=2*delta_z defined above
    n = n_points  #number of points over which to integrate
    #y=np.geomspace(1.,3000.,n)
    U = np.linspace(-.9999, .9999, n)
    Kp = np.geomspace(1.e-6, .1, n)
    Z_min = z_i - delta_z
    Z_max = z_i + delta_z
    z = np.geomspace(Z_min, Z_max, n)
    u, kp = np.meshgrid(U, Kp)
    T_mean_zi = uf.T_mean(z_i)
    chi_zi = chi(z_i)
    chi_z = chi(z)
    f_zi = uf.f(z_i)
    f_z = uf.f(z)
    D_zi = uf.D_1(z_i)
    r_zi = uf.r(z_i)
    D_z = uf.D_1(z)
    H_zi = uf.H(z_i)
    tau_z = uf.tau_inst(z)
    kpar = y / uf.r(z)
    const = 1.e6 / (
        4. * np.pi**2
    ) * T_rad * T_mean_zi**2 / cc.c_light_Mpc_s * f_zi * D_zi**2 * H_zi / (
        chi_zi**2 * r_zi) / (1. + z_i) * x * (sigma_T * rho_g0 / (mu_e * m_p))
    #Cl=np.array([])
    kp_perp = kp * np.sqrt(1 - u**2)
    kp_par = kp * u
    k_perp = ell / chi_zi
    k = np.sqrt(k_perp**2 + kpar**2)
    rsd = 1. + f_zi * kpar**2 / k**2
    zeta = (kpar / k * u + k_perp / k * np.sqrt(1 - u**2))
    k_dot_kp = k_perp * kp_perp + kpar * kp_par * zeta
    K = np.sqrt(k**2 + kp**2 - 2 * k_dot_kp)
    #theta_kp=kpar*zeta/k+k_perp*np.sqrt(np.abs(1-zeta**2))/k
    theta_K = kpar / K / k**2 * (
        k**2 - k_dot_kp) - kp * k_perp * np.sqrt(1 - zeta**2) / k / K
    #print (theta_K.min(),theta_K.max())
    theta_kp = u
    #theta_K=np.where(theta_K > 0, theta_K, 0)
    I = theta_kp * (theta_kp / kp**2 + theta_K / K / kp)
    z_integral = sp.integrate.trapz(f_z * D_z**2 * (1 + z) * np.exp(-tau_z), z)
    integrand_1 = z_integral * Mps_interpf(kp) * Mps_interpf(
        K) * rsd**2 * theta_kp**2
    #+theta_K/K/kp)#-mu*kp*np.gradient(Mps_interpf(k),axis=0))
    integrand_2 = z_integral * Mps_interpf(kp) * Mps_interpf(
        k) * rsd**2 * kp**2 * theta_kp * theta_K / kp / K

    integral_sing_1 = const * sp.integrate.trapz(
        sp.integrate.trapz(integrand_1, U, axis=0), Kp, axis=0)
    integral_sing_2 = const * sp.integrate.trapz(
        sp.integrate.trapz(integrand_2, U, axis=0), Kp, axis=0)
    #Cl=np.append(Cl,integral)
    return integral_sing_1 + integral_sing_2
Beispiel #4
0
def Cl_21(ell,y,z):
    #Cl=[]
    Cl=np.array([])
    for i in ell:
        kpar=y/uf.r(z)
        k=np.sqrt(kpar**2+(i/uf.chi(z))**2)
        mu_k_sq=kpar**2/k**2
        a=uf.b_HI+uf.f(z)*mu_k_sq
        Cl_one=(uf.T_mean(z)*a*uf.D_1(z))**2*uf.Mps_interpf(k)/(uf.chi(z)**2*uf.r(z))
        Cl=np.append(Cl,Cl_one)
    return Cl
def P_delta_N_vv_integrate_over_y(ell,z_1,delta_z,Noise):
    z_2=z_1
    y=np.geomspace(1.,3000.,n)
    Kpar=y/uf.r(z_1)
    Mu=np.linspace(-0.9999,0.9999,n)
    Kp_perp=np.geomspace(1.e-10,1.e-1,n)
    Kp_par=np.geomspace(1.e-10,1.e-1,n)
    Kp=np.sqrt(Kp_perp**2+Kp_par**2)
    mu,kp,kpar=np.meshgrid(Mu,Kp,Kpar)
    SN_21_y_integ=np.array([])
    Kperp_arr=np.array([])
    for i in ell:
        k_perp=i/chi(z_1)
        k=np.sqrt(kpar**2+k_perp**2)
        zeta=(kpar/k*mu+k_perp/k*np.sqrt(np.abs(1-mu**2)))
        K_perp=np.sqrt(np.abs(k_perp**2+Kp_perp**2-2*k_perp*Kp_perp*zeta))
        Kperp_arr=np.append(Kperp_arr,K_perp)
        K=np.sqrt(np.abs(k**2+kp**2-2*k*kp*zeta))
        theta_kp=kpar*zeta/k+k_perp*np.sqrt(np.abs(1-zeta**2))/k
        theta_K=kpar/K/k*(k-kp*zeta)-kp*k_perp*np.sqrt(np.abs(1-zeta**2))/k/K
        mu_k_sq=kpar**2/k**2
        a=uf.b_HI+f(z_1)*mu_k_sq
        const=1/(16*np.pi**3*cc.c_light_Mpc_s**2)*T_mean(z_1)**2*D(z_1)**2*f(z_1)**2*H(z_1)**2/(1+z_1)**2*r(z_1)
        #integrand=a**2*theta_kp**2*kp**2*(Noise(K_perp*chi(z_1))*Mps_interpf(kp)/kp**2)
        integrand=a**2*theta_kp**2*kp**2 *Noise(Kp_perp*chi(z_1)) *Mps_interpf(K)/kp**2
        integral=const*sp.integrate.trapz(sp.integrate.trapz(sp.integrate.trapz(integrand,Mu,axis=0),Kp,axis=0),Kpar,axis=0)
        SN_21_y_integ=np.append(SN_21_y_integ,integral)
    return SN_21_y_integ,Kperp_arr
def N_N_2(ell,z_1,y,delta_z,Noise):
    z_2=z_1
    kpar=y/uf.r(z_1)
    Mu=np.linspace(-0.9999,0.9999,n)
    Kp_perp=np.linspace(Kp_min,Kp_max,n)
    Kp_par=np.linspace(Kp_min,Kp_max,n)
    Kp=np.sqrt(Kp_perp**2+Kp_par**2)
    mu,kp=np.meshgrid(Mu,Kp)
    k_perp=ell/chi(z_1)
    k=np.sqrt(kpar**2+k_perp**2)
    K_perp=np.sqrt(np.abs(k_perp**2+Kp_perp**2-2*k_perp*Kp_perp*mu))
    K=np.sqrt(np.abs(k**2+kp**2-2*k*kp*mu))
    theta_kp=kpar*mu/k+k_perp*np.sqrt(1-mu**2)/k
    theta_K=np.abs(kpar/K/k*(k-kp*mu)-kp*k_perp*np.sqrt(1-mu**2)/k/K)
    mu_k_sq=kpar**2/k**2
    a=uf.b_HI+f(z_1)*mu_k_sq
    const=1/(8*np.pi**2*cc.c_light_Mpc_s**2)*f(z_1)**2*H(z_1)**2/(1+z_1)**2*chi(z_1)**2*r(z_1)
    t1=theta_kp*Noise(K_perp*chi(z_1))*Noise(kp*chi(z_1))/Kp_perp**2
    t2=theta_K*Noise(K_perp*chi(z_1))*Noise(kp*chi(z_1))/(Kp_perp*K_perp)
    integrand=a**2*theta_kp*kp**2*(t1+t2)
    integral=const*sp.integrate.trapz(sp.integrate.trapz(integrand,Mu,axis=0),Kp,axis=0)
    #integrand=Noise(K*chi(z_1))
    #integral1=sp.integrate.trapz(integrand,mu)
    #integral=sp.integrate.trapz(integral1*Mps_interpf(kp),kp)
    #integral=sp.integrate.trapz(sp.integrate.trapz(integrand,Mu,axis=0)*Mps_interpf(kp),Kp,axis=0)
    return integral
Beispiel #7
0
def Mps_k(ell):
    #Cl=np.array([])
    Mps=np.array([])
    kpar=(2/uf.r(1))
    for i in ell:
        k=np.sqrt(kpar**2+(i/uf.chi(1))**2)
        Mps_one_ell=uf.Mps_interpf(k)
        #Mps_div_ell=Mps*kpar**4*(T_mean(1)*(kpar**2/k**2))**2/(chi(1)**2*r(1))
        #Cl=np.append(Cl,Mps_div_ell)
        Mps=np.append(Mps,Mps_one_ell)
    return Mps
Beispiel #8
0
def crosscorr_squeezed_integral_y(ell, z_i, delta_z):
    n = n_points  #number of points over which to integrate
    #y=np.geomspace(1.,3000.,n)
    #Kpar=y/uf.r(z)
    Kpar = np.geomspace(1.e-6, .15, n)
    U = np.linspace(-.9999, .9999, n)
    Kp = np.geomspace(1.e-6, .1, n)
    Z_min = z_i - delta_z
    Z_max = z_i + delta_z
    z = np.geomspace(Z_min, Z_max, n)
    u, kp, kpar = np.meshgrid(U, Kp, Kpar)
    T_mean_zi = uf.T_mean(z_i)
    chi_zi = chi(z_i)
    chi_z = chi(z)
    f_zi = uf.f(z_i)
    f_z = uf.f(z)
    D_zi = uf.D_1(z_i)
    r_zi = uf.r(z_i)
    D_z = uf.D_1(z)
    H_zi = uf.H(z_i)
    tau_z = uf.tau_inst(z)
    const = 1.e6 / (
        8. * np.pi**3
    ) * T_rad * T_mean_zi**2 / cc.c_light_Mpc_s * f_zi * D_zi**2 * H_zi / (
        chi_zi**2) / (1. + z_i) * x * (sigma_T * rho_g0 / (mu_e * m_p))
    #Cl=np.array([])
    kp_perp = kp * np.sqrt(1 - u**2)
    kp_par = kp * u
    k_perp = ell / chi_zi
    k = np.sqrt(k_perp**2 + kpar**2)
    rsd = 1. + f_zi * kpar**2 / k**2
    zeta = (kpar / k * u + k_perp / k * np.sqrt(1 - u**2))
    k_dot_kp = k_perp * kp_perp + kpar * kp_par * zeta
    K = np.sqrt(k**2 + kp**2 - 2 * k_dot_kp)
    #theta_kp=kpar*zeta/k+k_perp*np.sqrt(np.abs(1-zeta**2))/k
    theta_K = kpar / K / k**2 * (
        k**2 - k_dot_kp) - kp * k_perp * np.sqrt(1 - zeta**2) / k / K
    theta_kp = u
    #theta_K=np.where(theta_K > 0, theta_K, 0)
    I = theta_kp * (theta_kp / kp**2 + theta_K / K / kp)
    z_dep_integ = sp.integrate.trapz(f_z * D_z**2 * (1 + z) * np.exp(-tau_z),
                                     z)
    integrand = Mps_interpf(kp) * Mps_interpf(
        k
    ) * rsd**2 * kp**2 * I  #+theta_K/K/kp)#-mu*kp*np.gradient(Mps_interpf(k),axis=0))
    integral_sing = const * z_dep_integ * sp.integrate.trapz(
        sp.integrate.trapz(
            sp.integrate.trapz(integrand, U, axis=0), Kp, axis=0),
        Kpar,
        axis=0)
    #Cl=np.append(Cl,integral)
    return integral_sing
Beispiel #9
0
def Cl_21_lksz(ell,y,z):
    #Cl=[]
    Cl=np.array([])

    for i in ell:
        a=uf.b_HI+uf.f(z)*mu_k(i,y,z)**2
        #print (a)
        delta_tcm=(uf.T_mean(z)*a*uf.D_1(z))/(uf.chi(z)**2*uf.r(z))
        #print (delta_tcm)
        delta_lksz=const*u(z_r)*np.abs(np.cos(uf.kpar(y,z_r)*chi_r))/k(i,y,z_r)**2*lksz.Mps_interpf(k(i,y,z_r))
        #print (delta_lksz)
        Cl_one=delta_tcm*delta_lksz
        Cl=np.append(Cl,Cl_one)
    return Cl  
Beispiel #10
0
def F_crosscorr(
    ell, z, y
):  #with the assumption that zi=z so no cos factor, and we have dz=redshift bin width=2*delta_z defined above
    n = n_points  #number of points over which to integrate
    #y=np.geomspace(1.,3000.,n)
    U = np.linspace(-.9999, .9999, n)
    Kp = np.geomspace(1.e-10, .1, n)

    u, kp = np.meshgrid(U, Kp)
    chi_z = chi(z)
    kpar = y / uf.r(z)
    #Cl=np.array([])
    kp_perp = kp * np.sqrt(1 - u**2)
    kp_par = kp * u
    integral_1 = np.array([])
    integral_2 = np.array([])
    for i in ell:
        k_perp = i / chi_z
        k = np.sqrt(k_perp**2 + kpar**2)
        zeta = (kpar / k * u + k_perp / k * np.sqrt(1 - u**2))
        k_dot_kp = k_perp * kp_perp + kpar * kp_par * zeta
        K = np.sqrt(k**2 + kp**2 - 2 * k_dot_kp)
        #theta_kp=kpar*zeta/k+k_perp*np.sqrt(np.abs(1-zeta**2))/k
        theta_K = kpar / K / k**2 * (
            k**2 - k_dot_kp) - kp * k_perp * np.sqrt(1 - zeta**2) / k / K
        #print (theta_K.min(),theta_K.max())
        theta_kp = u
        #theta_K=np.where(theta_K > 0, theta_K, 0)
        I = theta_kp * (theta_kp / kp**2 + theta_K / K / kp)
        integrand_1 = Mps_interpf(kp) * Mps_interpf(K) * theta_kp**2
        #+theta_K/K/kp)#-mu*kp*np.gradient(Mps_interpf(k),axis=0))
        integrand_2 = Mps_interpf(kp) * Mps_interpf(
            K) * kp**2 * theta_kp * theta_K / kp / K

        integral_sing_1 = sp.integrate.trapz(sp.integrate.trapz(integrand_1,
                                                                U,
                                                                axis=0),
                                             Kp,
                                             axis=0)
        integral_sing_2 = sp.integrate.trapz(sp.integrate.trapz(integrand_2,
                                                                U,
                                                                axis=0),
                                             Kp,
                                             axis=0)
        integral_1 = np.append(integral_1, integral_sing_1)
        integral_2 = np.append(integral_2, integral_sing_2)
    #Cl=np.append(Cl,integral)
    return integral_1, integral_2
Beispiel #11
0
def F_crosscorr_kp_rect_coords(
    ell, z, y
):  #with the assumption that zi=z so no cos factor, and we have dz=redshift bin width=2*delta_z defined above
    n = n_points  #number of points over which to integrate
    Kp_par = np.geomspace(1.e-6, .15, n)
    Kp_perp = np.geomspace(1.e-6, 1., n)
    kp_perp, kp_par = np.meshgrid(Kp_perp, Kp_par)
    chi_z = chi(z)
    kpar = y / uf.r(z)
    integral_1 = np.array([])
    integral_2 = np.array([])
    for i in ell:
        kperp = i / chi_z
        k = np.sqrt(kperp**2 + kpar**2)
        kp = np.sqrt(kp_perp**2 + kp_par**2)
        cos_theta = kp_par / kp  #cos_theta=u, theta is azimuthal angle between k' and z (line of sight) axis
        sin_theta = kp_perp / kp
        sin_gamma = kpar / k  #gamma is measured between k and xy plane, i.e. elevation of k
        cos_gamma = kperp / k
        zeta = sin_gamma * cos_theta + cos_gamma * sin_theta
        k_dot_kp = kperp * kp_perp + kpar * kp_par * zeta
        K = np.sqrt(k**2 + kp**2 - 2 * k_dot_kp)
        theta_K = kpar / K / k**2 * (
            k**2 - k_dot_kp) - kp * kperp * np.sqrt(1 - zeta**2) / k / K
        theta_kp = cos_theta
        I = theta_kp * (theta_kp / kp**2 + theta_K / K / kp)
        integrand_1 = Mps_interpf(kp) * Mps_interpf(K) * theta_kp**2 / kp**2
        integrand_2 = Mps_interpf(kp) * Mps_interpf(
            K) * theta_kp * theta_K / kp / K
        integral_sing_1 = sp.integrate.trapz(sp.integrate.trapz(integrand_1,
                                                                Kp_perp,
                                                                axis=0),
                                             Kp_par,
                                             axis=0)
        integral_sing_2 = sp.integrate.trapz(sp.integrate.trapz(integrand_2,
                                                                Kp_perp,
                                                                axis=0),
                                             Kp_par,
                                             axis=0)
        integral_1 = np.append(integral_1, integral_sing_1)
        integral_2 = np.append(integral_2, integral_sing_2)
    return integral_1, integral_2
def N_delta_P_vv_full_ell(ell,z_1,y,delta_z,Noise):
    z_2=z_1
    kpar=y/uf.r(z_1)
    Mu=np.linspace(-0.9999,0.9999,n)
    Kp_perp=np.linspace(1.e-6,1.e-1,n)
    Kp_par=np.linspace(1.e-6,1.e-1,n)
    Kp=np.sqrt(Kp_perp**2+Kp_par**2)
    mu,kp=np.meshgrid(Mu,Kp)
    full_integral=np.array([])
    for i in ell:
        k_perp=i/chi(z_1)
        k=np.sqrt(kpar**2+k_perp**2)
        K=np.sqrt(np.abs(k_perp**2+Kp_perp**2-2*k_perp*Kp_perp*mu))
        theta_kp=kpar*mu/k+k_perp*np.sqrt(1-mu**2)/k
        theta_K=kpar/K/k*(k-kp*mu)-kp*k_perp*np.sqrt(1-mu**2)/k/K
        mu_k_sq=kpar**2/k**2
        a=uf.b_HI+f(z_1)*mu_k_sq
        const=1/(8*np.pi**2*cc.c_light_Mpc_s**2)*T_mean(z_1)**2*D(z_1)**2*f(z_1)**2*H(z_1)**2/(1+z_1)**2#/chi(z_1)**2/r(z_1)
        integrand=a**2*theta_kp**2*Noise(K*chi(z_1))*Mps_interpf(kp)
        integral=const*sp.integrate.trapz(sp.integrate.trapz(integrand,Mu,axis=0),Kp,axis=0)
        full_integral=np.append(full_integral,integral)
    return full_integral
Beispiel #13
0
def crosscorr_squeezedlim(ell,
                          y):  #with the assumption that zi=z so no cos factor
    z_i = 1.
    delta_z = 0.3
    n = 100
    Mu = np.linspace(-0.9999, 0.9999, n)
    Kp = np.linspace(1.e-4, 10., n)
    mu, kp = np.meshgrid(Mu, Kp)
    z = z_i
    T_mean_zi = uf.T_mean(z_i)
    chi_zi = chi(z_i)
    chi_z = chi(z)
    f_zi = uf.f(z_i)
    f_z = uf.f(z)
    D_zi = uf.D_1(z_i)
    r_zi = uf.r(z_i)
    D_z = uf.D_1(z)
    H_zi = uf.H(z_i)
    tau_z = uf.tau_inst(z)
    const = 1.e6 / (
        2. * np.pi
    )**2 * T_rad * T_mean_zi / cc.c_light_Mpc_s * f_zi * D_zi**2 * H_zi / (
        chi_zi**2 * r_zi) / (1. + z_i) * x * (
            sigma_T * rho_g0 /
            (mu_e * m_p)) * delta_z * f_z * D_z**2 * (1 + z) * np.exp(-tau_z)
    #Cl=np.array([])
    kpar = y / r_zi
    k_perp = ell / chi_zi
    k = np.sqrt(k_perp**2 + kpar**2)
    rsd = 1. + f_zi * kpar**2 / k**2
    theta_kp = kpar * mu / k + k_perp * np.sqrt(1. - mu**2) / k
    integrand = Mps_interpf(kp) * rsd * theta_kp**2 * (
        Mps_interpf(k))  #-mu*kp*np.gradient(Mps_interpf(k),axis=0))
    integral_sing = const * sp.integrate.trapz(
        sp.integrate.trapz(integrand, Mu, axis=0), Kp, axis=0)
    #Cl=np.append(Cl,integral)
    return integral_sing
def N_delta_N_vv_integrate_over_y_second(ell,z_1,delta_z,Noise):
    z_2=z_1
    y=np.linspace(1.,3000.,n)
    Kpar=y/uf.r(z_1)
    Mu=np.linspace(-0.9999,0.9999,n)
    Kp_perp=np.linspace(1.e-6,1.e-1,n)
    Kp_par=np.linspace(1.e-6,1.e-1,n)
    Kp=np.sqrt(Kp_perp**2+Kp_par**2)
    mu,kp,kpar=np.meshgrid(Mu,Kp,Kpar)
    SN_21_y_integ=np.array([])
    for i in ell:
        k_perp=i/chi(z_1)
        k=np.sqrt(kpar**2+k_perp**2)
        K_perp=np.sqrt(np.abs(k_perp**2+Kp_perp**2-2*k_perp*Kp_perp*mu))
        K=np.sqrt(np.abs(k**2+kp**2-2*k*kp*mu))
        theta_kp=kpar*mu/k+k_perp*np.sqrt(1-mu**2)/k
        theta_K=np.abs(kpar/K/k*(k-kp*mu)-kp*k_perp*np.sqrt(1-mu**2)/k/K)
        mu_k_sq=kpar**2/k**2
        a=uf.b_HI+f(z_1)*mu_k_sq
        const=1/(16*np.pi**3*cc.c_light_Mpc_s**2)*f(z_1)**2*H(z_1)**2/(1+z_1)**2*r(z_1)**2*chi(z_1)**2
        integrand=theta_kp*theta_K*kp**2*(Noise(K_perp*chi(z_1))*Noise(Kp_perp*chi(z_1)))/(K_perp*Kp_perp)
        integral=const*sp.integrate.trapz(sp.integrate.trapz(sp.integrate.trapz(integrand,Mu,axis=0),Kp,axis=0),Kpar,axis=0)
        SN_21_y_integ=np.append(SN_21_y_integ,integral)
    return SN_21_y_integ
Beispiel #15
0
z=uf.z

def Mps_k(ell):
    #Cl=np.array([])
    Mps=np.array([])
    kpar=(2/uf.r(1))
    for i in ell:
        k=np.sqrt(kpar**2+(i/uf.chi(1))**2)
        Mps_one_ell=uf.Mps_interpf(k)
        #Mps_div_ell=Mps*kpar**4*(T_mean(1)*(kpar**2/k**2))**2/(chi(1)**2*r(1))
        #Cl=np.append(Cl,Mps_div_ell)
        Mps=np.append(Mps,Mps_one_ell)
    return Mps

kpar=(2./uf.r(1))
kperp=0.
Mps_zero_ell=uf.Mps_interpf(kpar)
#print (Mps_zero_ell)

ell=np.linspace(0,1000,1000)
##plt.loglog(ell,Mps_k(ell))
#plt.title('Mps div k**4')
##plt.show()

def Cl_21(ell,y,z):
    #Cl=[]
    Cl=np.array([])
    for i in ell:
        kpar=y/uf.r(z)
        k=np.sqrt(kpar**2+(i/uf.chi(z))**2)