コード例 #1
0
ファイル: PyGS.py プロジェクト: steven-murray/PyGS
    def radial_mock(self, method="EEP", N=None, bins=100,
                    new_lumfunc=False, min_acceptable=1, eps=0.01,
                    max_iter=10, selbins=100):
        """
        Creates a random catalogue of particles based on a defined selection function. Only radial co-ords.
        
        Ouput: radii :: length N vector (default length of survey) of radii        
        """

        z_min = self.survey_data['redshift'].min()
        z_max = self.survey_data['redshift'].max()

        if N is None:
            N = self.N

        if method is None:
            radii = sf.create_radial_selection_simple(z_min, z_max, N)

        else:
            M, phi = self.lum_func(Np=bins, method=method,
                                   new=new_lumfunc, min_acceptable=min_acceptable,
                                   eps=eps, max_iter=max_iter)
            s_of_z = sf.selection_of_z(selbins, phi, M, self.survey_data["mag_r"],
                                       self.survey_data["absmag"],
                                       self.survey_data["redshift"])
            radii = sf.create_mock(s_of_z, z_min, z_max, N)

        #Plot it
        plt.clf()
        plt.hist(radii, bins=100, normed=True, label="Mock")
        plt.hist(self.survey_data['redshift'], bins=100, normed=True, label="Data")
        plt.legend()
        plt.savefig(self._dirs['SelectionFunction'] +
                    'N(z)_' + method + '_L' + str(bins)
                    + "_S" + str(selbins) + '.' + self.plottype)
        return radii