from hmf import MassFunction from astropy.cosmology import FlatLambdaCDM import astropy.units as u cosmo = FlatLambdaCDM(H0=67.77*u.km/u.s/u.Mpc, Om0=0.307115, Ob0=0.048206) qty = 'mvir' dir = join(os.environ['MVIR_DIR']) # loads summary file dataMF = fits.open( join(dir, qty+"_summary.fits"))[1].data zzero = (dataMF['redshift']==0) & (dataMF['log_mvir']>3+dataMF['logMpart']) & (dataMF['dN_counts_cen'] > 10 ) dlnSigM = abs(n.log(dataMF['log_mvir_max']-dataMF['log_mvir_min'])*dataMF['dlnsigmaMdlnM']) #lib.covariance_factor #lib.f_BH(sigma, 0.333, 0.788, 0.807, 1.795) bias = lambda sigma : lib.b_BH(sigma, a=0.8915, p=0.5524, q=1.578) # sample variance equation 16 var_sv_L04 = lambda sa, sb, fc=lib.covariance_factor_jk : bias(sa) * bias(sb) * (lib.hmf.growth_factor)**2. * fc[0] var_sv_L10 = lambda sa, sb, fc=lib.covariance_factor_jk : bias(sa) * bias(sb) * (lib.hmf.growth_factor)**2. * fc[1] var_sv_L25 = lambda sa, sb, fc=lib.covariance_factor_jk : bias(sa) * bias(sb) * (lib.hmf.growth_factor)**2. * fc[2] var_sv_L40 = lambda sa, sb, fc=lib.covariance_factor_jk : bias(sa) * bias(sb) * (lib.hmf.growth_factor)**2. * fc[3] var_sv_L80 = lambda sa, sb, fc=lib.covariance_factor_jk : bias(sa) * bias(sb) * (lib.hmf.growth_factor)**2. * fc[4] # shot noise variance var_sn_L04 = lambda sigma, lbox=40. : lib.shot_simple(sigma, lbox**3.) var_sn_L10 = lambda sigma, lbox=100. : lib.shot_simple(sigma, lbox**3.) var_sn_L25 = lambda sigma, lbox=250. : lib.shot_simple(sigma, lbox**3.) var_sn_L40 = lambda sigma, lbox=400. : lib.shot_simple(sigma, lbox**3.) var_sn_L80 = lambda sigma, lbox=800. : lib.shot_simple(sigma, lbox**3.)
matplotlib.rcParams['font.size']=12 import matplotlib.pyplot as p # mass function theory from hmf import MassFunction from astropy.cosmology import FlatLambdaCDM import astropy.units as u cosmo = FlatLambdaCDM(H0=67.77*u.km/u.s/u.Mpc, Om0=0.307115, Ob0=0.048206) #lib.covariance_factor #lib.f_BH(sigma, 0.333, 0.788, 0.807, 1.795) A0=0.333 a0=0.786 p0=0.807 q0=1.795 bias = lambda sigma, a0, p0, q0 : lib.b_BH(sigma, a0, p0, q0) fsigma = lambda sigma : lib.f_BH(sigma, A0, a0, p0, q0) # diagonal error dn_L04 = lambda sigma, a, p, q : (((bias(sigma, a, p, q) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[0]))**2. + lib.shot_noise(sigma, 400.**3.) )**0.5 dn_L10 = lambda sigma, a, p, q : (((bias(sigma, a, p, q) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[1]) )**2. + lib.shot_noise(sigma, 1000.**3.) )**0.5 dn_L25 = lambda sigma, a, p, q : (((bias(sigma, a, p, q) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[2]) )**2. + lib.shot_noise(sigma, 2500.**3.) )**0.5 dn_L40 = lambda sigma, a, p, q : (((bias(sigma, a, p, q) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[3]) )**2. + lib.shot_noise(sigma, 4000.**3.) )**0.5 # off diagonal error dn_cov_L04 = lambda s1, s2, a, p, q : (dn_L04(s1, a, p, q)*dn_L04(s2, a, p, q))**0.5 dn_cov_L10 = lambda s1, s2, a, p, q : (dn_L10(s1, a, p, q)*dn_L10(s2, a, p, q) )**0.5 dn_cov_L25 = lambda s1, s2, a, p, q : (dn_L25(s1, a, p, q)*dn_L25(s2, a, p, q) )**0.5 dn_cov_L40 = lambda s1, s2, a, p, q : (dn_L40(s1, a, p, q)*dn_L40(s2, a, p, q) )**0.5 # opens the data
# mass function theory from hmf import MassFunction from astropy.cosmology import FlatLambdaCDM import astropy.units as u cosmo = FlatLambdaCDM(H0=67.77 * u.km / u.s / u.Mpc, Om0=0.307115, Ob0=0.048206) #lib.covariance_factor #lib.f_BH(sigma, 0.333, 0.788, 0.807, 1.795) A0 = 0.333 a0 = 0.786 p0 = 0.807 q0 = 1.795 bias = lambda sigma, a0, p0, q0: lib.b_BH(sigma, a0, p0, q0) fsigma = lambda sigma: lib.f_BH(sigma, A0, a0, p0, q0) # diagonal error dn_L04 = lambda sigma, a, p, q: ( ((bias(sigma, a, p, q) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[0]))**2. + lib.shot_simple(sigma, 400.**3.))**0.5 dn_L10 = lambda sigma, a, p, q: ( ((bias(sigma, a, p, q) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[1]))**2. + lib.shot_simple(sigma, 1000.**3.))**0.5 dn_L25 = lambda sigma, a, p, q: ( ((bias(sigma, a, p, q) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[2]))**2. + lib.shot_simple(sigma, 2500.**3.))**0.5 dn_L40 = lambda sigma, a, p, q: ( ((bias(sigma, a, p, q) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[3]))**2. + lib.shot_simple(sigma, 4000.**3.))**0.5
import matplotlib.pyplot as p # mass function theory from hmf import MassFunction from astropy.cosmology import FlatLambdaCDM import astropy.units as u cosmo = FlatLambdaCDM(H0=67.77*u.km/u.s/u.Mpc, Om0=0.307115, Ob0=0.048206) qty = 'mvir' dir = join(os.environ['MD_DIR']) vlow, vhigh, vmean, scale, b, bErr, volume, a = n.loadtxt(join(dir, "clustering", "halo-bias-measurement-summary.data"), unpack=True) sel0 = (a==1) bias = lambda sigma : lib.b_BH(sigma, a=0.8915, p=0.5524, q=1.578) alpha = lambda a : 0.346 - 0.059*a + 0.025*a**2. logBeta = lambda a : 2.209 + 0.060 * a -0.021*a**2. mvir_to_vmax = lambda mvir, a : 10**logBeta(a) * (mvir/10**12)**alpha(a) #vmax_to_mvir = lambda vmax, a : 10**12 * (vmax*10**(-logBeta(a)))**(-alpha(a)) #print vmax_to_mvir(300, 1) masses = n.logspace(7,16,180) vmaxs = mvir_to_vmax(masses,1) vmax_to_mvir = interp1d(vmaxs, masses) m_low = vmax_to_mvir(vlow) m_high = vmax_to_mvir(vhigh)
# plotting modules import matplotlib #matplotlib.use('pdf') matplotlib.rcParams['font.size']=12 import matplotlib.pyplot as p # mass function theory from hmf import MassFunction from astropy.cosmology import FlatLambdaCDM import astropy.units as u cosmo = FlatLambdaCDM(H0=67.77*u.km/u.s/u.Mpc, Om0=0.307115, Ob0=0.048206) #lib.covariance_factor #lib.f_BH(sigma, 0.333, 0.788, 0.807, 1.795) bias = lambda sigma : lib.b_BH(sigma, a=0.908, p=0.671, q=1.737) # diagonal error dn_n_L04 = lambda sigma : ((bias(sigma) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[0]) ) dn_n_L10 = lambda sigma : ((bias(sigma) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[1]) ) dn_n_L25 = lambda sigma : ((bias(sigma) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[2]) ) dn_n_L40 = lambda sigma : ((bias(sigma) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[3]) ) dn_L04 = lambda sigma : (((bias(sigma) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[0]))**2. + lib.shot_noise(sigma, 400.**3.) )**0.5 dn_L10 = lambda sigma : (((bias(sigma) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[1]) )**2. + lib.shot_noise(sigma, 1000.**3.) )**0.5 dn_L25 = lambda sigma : (((bias(sigma) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[2]) )**2. + lib.shot_noise(sigma, 2500.**3.) )**0.5 dn_L40 = lambda sigma : (((bias(sigma) * lib.hmf.growth_factor)**2. * (lib.covariance_factor[3]) )**2. + lib.shot_noise(sigma, 4000.**3.) )**0.5 dn_n_sn_L04 = lambda sigma : ( lib.shot_noise(sigma, 400.**3.) )**0.5 dn_n_sn_L10 = lambda sigma : ( lib.shot_noise(sigma, 1000.**3.) )**0.5 dn_n_sn_L25 = lambda sigma : ( lib.shot_noise(sigma, 2500.**3.) )**0.5
qty = 'mvir' dir = join(os.environ['MVIR_DIR']) plotDir = "covariance" # loads summary file dataMF = fits.open(join(dir, qty + "_summary.fits"))[1].data zzero = (dataMF['redshift'] == 0) & (dataMF['log_mvir'] > 3 + dataMF['logMpart']) & (dataMF['dN_counts_cen'] > 10) dlnSigM = abs( n.log(dataMF['log_mvir_max'] - dataMF['log_mvir_min']) * dataMF['dlnsigmaMdlnM']) #lib.covariance_factor #lib.f_BH(sigma, 0.333, 0.788, 0.807, 1.795) biasHMF = lambda sigma: lib.b_BH(sigma, a=0.90343, p=0.64031, q=1.69561) biasB = lambda sigma: lib.b_BH(sigma, a=0.7400, p=0.6140, q=1.6468) bias = biasB # sample variance equation 16 var_sv_L04 = lambda sa, sb, fc=lib.covariance_factor_jk: bias(sa) * bias( sb) * (lib.hmf.growth_factor)**2. * fc[0] var_sv_L10 = lambda sa, sb, fc=lib.covariance_factor_jk: bias(sa) * bias( sb) * (lib.hmf.growth_factor)**2. * fc[1] var_sv_L25 = lambda sa, sb, fc=lib.covariance_factor_jk: bias(sa) * bias( sb) * (lib.hmf.growth_factor)**2. * fc[2] var_sv_L40 = lambda sa, sb, fc=lib.covariance_factor_jk: bias(sa) * bias( sb) * (lib.hmf.growth_factor)**2. * fc[3] var_sv_L80 = lambda sa, sb, fc=lib.covariance_factor_jk: bias(sa) * bias( sb) * (lib.hmf.growth_factor)**2. * fc[4]