Beispiel #1
0
  def __init__(self, z_min, z_max, z_sigma, lnM_min, 
                lnM_max, area, observable):
    Ncm.cfg_init()
    self.cosmo = Nc.HICosmo.new_from_name(Nc.HICosmo, "NcHICosmoDEXcdm")
    dist = Nc.Distance.new(z_max*1.5)
    wp =  Nc.Window.new_from_name("NcWindowTophat")
    tf = Nc.TransferFunc.new_from_name("NcTransferFuncEH")
    vp = Nc.MatterVar.new(Nc.MatterVarStrategy.FFT, wp, tf)
    gf = Nc.GrowthFunc.new()
    mulf = Nc.MultiplicityFunc.new_from_name("NcMultiplicityFuncTinkerCrit{'Delta':<500.0>}")
    mf = Nc.MassFunction.new(dist, vp, gf, mulf)
    
    if observable == 'SZ':
        cluster_m = Nc.ClusterMass.new_from_name("NcClusterMassBenson{'M0':<3e14>, 'z0':<0.6>, 'signif-obs-min':<5.0>,'Asz':<6.24>, 'Bsz':<1.33>, 'Csz':<0.83>, 'Dsz':<0.24>}")
    elif observable == 'true_mass':
        cluster_m = Nc.ClusterMass.new_from_name("NcClusterMassNodist{'lnM-min':<% 20.15g>, 'lnM-max':<% 20.15g>}" % (lnM_min, lnM_max))
    else:
        raise NameError('Invalid observable choice. Should be ' + 
                        '"true_mass" or "SZ"')
        
    cluster_z = Nc.ClusterRedshift.new_from_name("NcClusterPhotozGaussGlobal{'pz-min':<%f>, 'pz-max':<%f>, 'z-bias':<0.0>, 'sigma0':<%f>}" % (z_min, z_max, z_sigma))
    cad = Nc.ClusterAbundance.new(mf, None, cluster_z, cluster_m)

    self.ncdata = Nc.DataClusterNCount.new(cad)
    self.mset = Ncm.MSet()
    self.mset.set(self.cosmo)
    self.mset.set(cluster_m)

    self.rng = Ncm.RNG.pool_get("example_ca_sampling");
    self.ncdata.init_from_sampling(self.mset, cluster_z, cluster_m, 
                                   area * (pi/180.0) ** 2, self.rng)

    del dist
    del vp
    del gf
    del mulf
    del mf
    del cad
    del cluster_z
    del cluster_m
# Apply a tophat filter to the psml object, set best output interval.
#
psf  = Ncm.PowspecFilter.new (ps, Ncm.PowspecFilterType.TOPHAT)
psf.set_best_lnr0 ()

mulf = Nc.MultiplicityFunc.new_from_name ("NcMultiplicityFuncTinkerCrit{'Delta':<500.0>}")
mf   = Nc.HaloMassFunction.new (dist, psf, mulf)
mf.props.prec = 1.0e-3

cluster_m = Nc.ClusterMass.new_from_name ("NcClusterMassBenson{'M0':<3e14>, 'z0':<0.6>, 'signif-obs-min':<5.0>, 'Asz':<6.24>, 'Bsz':<1.33>, 'Csz':<0.83>, 'Dsz':<0.24>}")
cluster_z = Nc.ClusterRedshift.new_from_name ("NcClusterPhotozGaussGlobal{'pz-min':<%f>, 'pz-max':<%f>, 'z-bias':<0.0>, 'sigma0':<0.05>}" % (z_min, z_max))
cad       = Nc.ClusterAbundance.new (mf, None)

ncount = Nc.DataClusterNCount.new (cad)

mset = Ncm.MSet ()
mset.set (cosmo)
mset.set (cluster_m)
mset.set (cluster_z)

rng = Ncm.RNG.pool_get ("example_ca_sampling");
rng.set_seed (123)

ncount.init_from_sampling (mset, area * (math.pi / 180.0)**2, rng)
ncount.true_data (False)

dset = Ncm.Dataset.new ()
dset.append_data (ncount)

mset.prepare_fparam_map ()