Exemplo n.º 1
0
    def Forecast_Cellrsx(self, ellBinEdges, fsky, option='None'):

        ellMids = old_div((ellBinEdges[1:] + ellBinEdges[:-1]), 2)

        cls_rsx = self.fgs.rs_cross(self.evalells,self.freq[0]) / self.cc.c['TCMBmuK']**2. \
                / ((self.evalells+1.)*self.evalells) * 2.* np.pi

        cls_rsx = old_div(cls_rsx, (self.fgs.rs_nu(
            self.freq[0])))  # Normalized to get Cell^rsrs fiducial

        LF = LensForecast()
        if (option == 'None'):
            LF.loadGenericCls("rr", self.evalells, cls_rsx, self.evalells,
                              self.N_ll_rsx)
        elif (option == 'NoILC'):
            LF.loadGenericCls("rr", self.evalells, cls_rsx, self.evalells,
                              self.N_ll_noILC)
        else:
            return "Wrong option"

        sn, errs = LF.sn(ellBinEdges, fsky, "rr")  # not squared

        cls_out = np.interp(ellMids, self.evalells, cls_rsx)

        return ellMids, cls_out, errs, sn
Exemplo n.º 2
0
    def Forecast_CellrsxEE(self,ellBinEdges,fsky,option='None'):

        ellMids  =  old_div((ellBinEdges[1:] + ellBinEdges[:-1]), 2)

        
        cls_rsxEE = self.fgs.rs_crossEE(self.evalells,self.fgs.nu_rs)/self.cc.c['TCMBmuK']**2./((self.evalells+1.)*self.evalells) * 2.* np.pi
        cls_rs = self.fgs.rs_auto(self.evalells,self.fgs.nu_rs,self.fgs.nu_rs) / self.cc.c['TCMBmuK']**2.\
                / ((self.evalells+1.)*self.evalells) * 2.* np.pi
        
        cls_cmbEE = self.cc.cleefunc(self.evalells)

        LF = LensForecast()

        if (option=='None'):        
            LF.loadGenericCls("rr",self.evalells,cls_rs,self.evalells,self.N_ll_rsxEE_c_cmb)#self.N_ll_rsxEE)
            LF.loadGenericCls("xx",self.evalells,cls_rsxEE,self.evalells,self.N_ll_rsx*0.0)
            LF.loadGenericCls("ee",self.evalells,cls_cmbEE,self.evalells,self.N_ll_rsxEE_c_rs)#self.N_ll_cmb)
            Nellrs = self.N_ll_rsxEE_c_cmb
            NellcmbEE = self.N_ll_rsxEE_c_rs
        elif (option=='NoILC'):
            LF.loadGenericCls("rr",self.evalells,cls_rs,self.evalells,self.N_ll_rsxEE_NoFG)
            LF.loadGenericCls("xx",self.evalells,cls_rsxEE,self.evalells,self.N_ll_rsx*0.0)
            LF.loadGenericCls("ee",self.evalells,cls_cmbEE,self.evalells,self.N_ll_cmbee_NoFG)
            Nellrs = self.N_ll_rsxEE_NoFG
            NellcmbEE = self.N_ll_cmbee_NoFG
        else:
            return "Wrong option"
        sn2=(2.*self.evalells+1.)*np.nan_to_num((cls_rsxEE**2)/((cls_rs+Nellrs)*(cls_cmbEE+NellcmbEE)+(cls_rsxEE)**2))#**2)#)/(cls_cmbEE+NellcmbEE))
        snsq=fsky/2.*sum(sn2)
        sn=np.sqrt(snsq)
        
        cls_out = np.interp(ellMids,self.evalells,cls_rsxEE)
        
        ellMids  =  (ellBinEdges[1:] + ellBinEdges[:-1]) / 2
        ellWidths = np.diff(ellBinEdges)

        covs = []
        
        for ell_left,ell_right in zip(ellBinEdges[:-1],ellBinEdges[1:]):
            ClSum = LF._bin_cls("rr",ell_left,ell_right)*LF._bin_cls("ee",ell_left,ell_right)+(LF._bin_cls("xx",ell_left,ell_right))**2
            ellMid = (ell_right+ell_left)/2.
            ellWidth = ell_right-ell_left
            var = ClSum/(2.*ellMid+1.)/ellWidth/fsky
            covs.append(var)
            #print(LF._bin_cls("xx",ell_left,ell_right))
        errs=np.sqrt(np.array(covs))
        return ellMids,cls_out,errs,sn
Exemplo n.º 3
0
    def Forecast_Cellcmb(self,ellBinEdges,fsky,constraint='None'):

        ellMids  =  old_div((ellBinEdges[1:] + ellBinEdges[:-1]), 2)

        cls_cmb = self.cc.clttfunc(self.evalells)

        LF = LensForecast()
        if (constraint=='None'):
            LF.loadGenericCls("tt",self.evalells,cls_cmb,self.evalells,self.N_ll_cmb)
        elif (constraint=='tsz'):
            LF.loadGenericCls("tt",self.evalells,cls_cmb,self.evalells,self.N_ll_cmb_c_tsz)
        else:
            return "Wrong option"

        sn,errs = LF.sn(ellBinEdges,fsky,"tt") # not squared

        cls_out = np.interp(ellMids,self.evalells,cls_cmb)

        return ellMids,cls_out,errs,sn
Exemplo n.º 4
0
    def Forecast_Cellyy(self, ellBinEdges, fsky, constraint='None'):

        ellMids = old_div((ellBinEdges[1:] + ellBinEdges[:-1]), 2)

        cls_tsz = self.fgs.tSZ(self.evalells,self.freq[0],self.freq[0]) / self.cc.c['TCMBmuK']**2. \
                / ((self.evalells+1.)*self.evalells) * 2.* np.pi

        cls_yy = old_div(cls_tsz,
                         (f_nu(self.cc.c,
                               self.freq[0]))**2)  # Normalized to get Cell^yy

        LF = LensForecast()
        if (constraint == 'None'):
            LF.loadGenericCls("yy", self.evalells, cls_yy, self.evalells,
                              self.N_ll_tsz)
        elif (constraint == 'cmb'):
            LF.loadGenericCls("yy", self.evalells, cls_yy, self.evalells,
                              self.N_ll_tsz_c_cmb)
        elif (constraint == 'cib'):
            LF.loadGenericCls("yy", self.evalells, cls_yy, self.evalells,
                              self.N_ll_tsz_c_cib)
        else:
            return "Wrong option"

        sn, errs = LF.sn(ellBinEdges, fsky, "yy")  # not squared

        cls_out = np.interp(ellMids, self.evalells, cls_yy)

        return ellMids, cls_out, errs, sn
Exemplo n.º 5
0
Arquivo: ilc.py Projeto: JerreYjz/szar
    def Forecast_CellrsxEE(self, ellBinEdges, fsky, option='None'):

        ellMids = old_div((ellBinEdges[1:] + ellBinEdges[:-1]), 2)

        cls_rsxEE = self.fgs.rs_crossEE(
            self.evalells, self.fgs.nu_rs) / self.cc.c['TCMBmuK']**2. / (
                (self.evalells + 1.) * self.evalells) * 2. * np.pi
        LF = LensForecast()
        if (option == 'None'):
            LF.loadGenericCls("ee", self.evalells, cls_rsxEE, self.evalells,
                              self.N_ll_rsxEE)
        elif (option == 'NoILC'):
            LF.loadGenericCls("ee", self.evalells, cls_rsxEE, self.evalells,
                              self.N_ll_rsx_NoFG)
        elif (option == 'Onlyfg'):
            LF.loadGenericCls("ee", self.evalells, cls_rsxEE, self.evalells,
                              self.N_ll_rsxEE - self.N_ll_rsx_NoFG)
        else:
            return "Wrong option"

        sn, errs = LF.sn(ellBinEdges, fsky, "ee")  # not squared

        cls_out = np.interp(ellMids, self.evalells, cls_rsxEE)

        return ellMids, cls_out, errs, sn
Exemplo n.º 6
0
    def Forecast_Cellrsx(self,ellBinEdges,fsky,option='None'):

        ellMids  =  (ellBinEdges[1:] + ellBinEdges[:-1])/ 2.

        cls_rsx = self.fgs.rs_cross(self.evalells,self.fgs.nu_rs) / self.cc.c['TCMBmuK']**2.\
                / ((self.evalells+1.)*self.evalells) * 2.* np.pi

        cls_rs = self.fgs.rs_auto(self.evalells,self.fgs.nu_rs,self.fgs.nu_rs) / self.cc.c['TCMBmuK']**2.\
                / ((self.evalells+1.)*self.evalells) * 2.* np.pi
        
        cls_cmb = self.cc.clttfunc(self.evalells)

        LF = LensForecast()

        if (option=='None'):        
            LF.loadGenericCls("rr",self.evalells,cls_rs,self.evalells,self.N_ll_rs_c_cmb)#self.N_ll_rsx)
            LF.loadGenericCls("xx",self.evalells,cls_rsx,self.evalells,self.N_ll_rsx*0.0)
            LF.loadGenericCls("tt",self.evalells,cls_cmb,self.evalells,self.N_ll_cmb_c_rs)#self.N_ll_cmb)
            Nellrs = self.N_ll_rs_c_cmb #self.N_ll_rsx
            Nellcmb = self.N_ll_cmb_c_rs #self.N_ll_cmb
        elif (option=='NoILC'):
            LF.loadGenericCls("rr",self.evalells,cls_rs,self.evalells,self.N_ll_rsx_NoFG)
            LF.loadGenericCls("xx",self.evalells,cls_rsx,self.evalells,self.N_ll_rsx*0.0)
            LF.loadGenericCls("tt",self.evalells,cls_cmb,self.evalells,self.N_ll_cmb_NoFG)
            Nellrs = self.N_ll_rsx_NoFG
            Nellcmb = self.N_ll_cmb_NoFG
        else:
            return "Wrong option"


        sn2=(2.*self.evalells+1.)*np.nan_to_num((cls_rsx**2)/((cls_rs+Nellrs)*(cls_cmb+Nellcmb)+(cls_rsx)**2))
        snsq=fsky/2.*sum(sn2)
        sn=np.sqrt(snsq)
        cls_out = np.interp(ellMids,self.evalells,cls_rsx)

        #errs = cls_out * 0.0 + 1.
        ellMids  =  (ellBinEdges[1:] + ellBinEdges[:-1]) / 2
        ellWidths = np.diff(ellBinEdges)

        covs = []

        for ell_left,ell_right in zip(ellBinEdges[:-1],ellBinEdges[1:]):
            ClSum = LF._bin_cls("rr",ell_left,ell_right)*LF._bin_cls("tt",ell_left,ell_right)+(LF._bin_cls("xx",ell_left,ell_right))**2
            ellMid = (ell_right+ell_left)/2.
            ellWidth = ell_right-ell_left
            var = ClSum/(2.*ellMid+1.)/ellWidth/fsky
            covs.append(var)
        errs=np.sqrt(np.array(covs))

        '''
        ellMids  =  (ellBinEdges[1:] + ellBinEdges[:-1])/ 2.
        ellWidth =  (ellBinEdges[1:] - ellBinEdges[:-1])

        #cls_rsx = self.fgs.rs_cross(self.evalells,self.freq[0]) / self.cc.c['TCMBmuK']**2.\
        #        / ((self.evalells+1.)*self.evalells) * 2.* np.pi

        #print (cls_rsx, self.freq[0],self.fgs.nu_rs)
        
        cls_rsx = self.fgs.rs_cross(self.evalells,self.fgs.nu_rs) / self.cc.c['TCMBmuK']**2.\
                / ((self.evalells+1.)*self.evalells) * 2.* np.pi

        cls_rs = self.fgs.rs_auto(self.evalells,self.fgs.nu_rs,self.fgs.nu_rs) / self.cc.c['TCMBmuK']**2.\
                / ((self.evalells+1.)*self.evalells) * 2.* np.pi
        
        cls_cmb = self.cc.clttfunc(self.evalells)

        print (cls_rsx,cls_rs, cls_cmb)

        LF = LensForecast()

        if (option=='None'):        
            LF.loadGenericCls("rr",self.evalells,cls_rsx,self.evalells,self.N_ll_rsx)
            #LF.loadGenericCls("tt",self.evalells,cls_cmb,self.evalells,self.N_ll_cmb)
            Nellrsx = self.N_ll_rs_c_cmb #self.N_ll_rsx
            Nellcmb = self.N_ll_cmb_c_rs #self.N_ll_cmb
        elif (option=='NoILC'):
            LF.loadGenericCls("rr",self.evalells,cls_rsx,self.evalells,self.N_ll_rsx_NoFG)
            #LF.loadGenericCls("tt",self.evalells,cls_cmb,self.evalells,self.N_ll_rsx_NoFG)
            Nellrsx = self.N_ll_rsx_NoFG
            Nellcmb = self.N_ll_cmb_NoFG
        else:
            return "Wrong option"

        print (Nellrsx,Nellcmb)

        #vars, _, _ = LF.KnoxCov("rr","tt",ellBinEdges,fsky)

        #sn,errs = LF.sn(ellBinEdges,fsky,"rr") # not squared 

        ind = np.isfinite(Nellrsx)
        sn = np.sqrt ( fsky / 2 * np.sum( (2.*self.evalells[ind] + 1) * (cls_rsx[ind]**2) / ((cls_rs[ind] + Nellrsx[ind])* (cls_cmb[ind] + Nellcmb[ind])) ) ) 
        errs = 1.#np.sqrt(vars)

        cls_out = np.interp(ellMids,self.evalells,cls_rsx)

        #errs = cls_out * 0.0 + 1.

        return ellMids,cls_out,errs,sn
        '''

        return ellMids,cls_out,errs,sn