Beispiel #1
0
    def __init__(self, varyw=True, varyOde=True, userd_DE=True):
        # two parameters: Om and h

        self.userd_DE = userd_DE
        print('userd', userd_DE)

        self.varyw = varyw
        self.varyOde = varyOde

        self.w0 = w_par.value
        self.Ode = Ode_par.value

        self.oC = LCDMCosmology()
        LCDMCosmology.__init__(self)
Beispiel #2
0
 def __init__(self):
     obh2 = 0.0224
     Om = 0.274
     h = 0.7
     mnu = 0
     fidTheory = LCDMCosmology(obh2, Om, h, mnu)
     GaussBAODVLikelihood.__init__(self, "DR11LOWZ", 0.32, 1264.0, 25.0,
                                   fidTheory)
Beispiel #3
0
 def __init__(self):
     obh2 = 0.0227
     Om = 0.27
     h = 0.7
     mnu = 0  #;# rd=149.77
     fidTheory = LCDMCosmology(obh2, Om, h, mnu)
     TabulatedBAOLikelihood.__init__(self, "DR11LyaCross",
                                     'data/lyabaocross.scan', 2, fidTheory,
                                     2.36)
Beispiel #4
0
 def __init__(self):
     obh2 = 0.021547
     Om = 0.31
     h = 0.67
     mnu = 0
     fidTheory = LCDMCosmology(obh2, Om, h, mnu)
     TabulatedBAODVLikelihood.__init__(
         self, "MGS", "data/chidavexi8stavePk5staverec.dat", fidTheory,
         0.15)
Beispiel #5
0
 def __init__(self):
     obh2 = 0.022
     Om = 0.31
     h = 0.676
     mnu = 0.06
     fidTheory = LCDMCosmology(obh2, Om, h, mnu)
     TabulatedBAOLikelihood.__init__(
         self, "ACPNS_1",
         'data/aratdatacombrecACPNScombaccarec15st01covchi.dat', 2,
         fidTheory, 0.39)
Beispiel #6
0
 def __init__(self):
     ## fiducial cosmology for LOWZ/CMASS data.
     ## see Anderson et al, page 28
     obh2 = 0.0224
     Om = 0.274
     h = 0.7
     mnu = 0  #rd=149.28
     fidTheory = LCDMCosmology(obh2, Om, h, mnu)
     ## negative col means the cols is probability and not chi2
     TabulatedBAOLikelihood.__init__(self, "DR11CMASS",
                                     'data/sdss_DR11CMASS_consensus.dat',
                                     -2, fidTheory, 0.57)
Beispiel #7
0
    def __init__(self):
        ## fiducial cosmology for Lya data.
        ## see e.g. Busca's email on 12/3/13

        obh2 = 0.0227
        Om = 0.27
        h = 0.7
        mnu = 0.06  #;# rd=149.77
        fidTheory = LCDMCosmology(obh2, Om, h, mnu)
        # File from 5/16 from Nicolas.
        TabulatedBAOLikelihood.__init__(
            self, "DR11LyaAuto", 'data/chi2_surface_dr11_baseline_fit.txt', 4,
            fidTheory, 2.34)
Beispiel #8
0
 def __init__(self):
     obh2 = 0.022
     Om = 0.31
     h = 0.676
     mnu = 0.06
     fidTheory = LCDMCosmology(obh2, Om, h, mnu)
     TabulatedBAOLikelihood.__init__(self,
                                     "CombBAOzb3",
                                     'data/combxiFBBAOlikgrid_zb3.dat',
                                     -2,
                                     fidTheory,
                                     0.61,
                                     order_aper_apar=False)
    def __init__(self, varymu=True, varyAmp=True, varysig=True, varyCos=True):
        ## two parameters: Om and h

        ## we start with false here...
        varyOk = False
        ## this is my "original cosmology" -- outside gaussian not much will change.

        self.varyOk = varyOk
        self.varymu = varymu
        self.varyAmp = varyAmp
        self.varysig = varysig
        self.varyCos = varyCos

        self.Ok = Ok_par.value
        self.mu = mu_par.value
        self.Amp = Amp_par.value
        self.sig = sig_par.value

        ## auxiliary self cosmology
        self.oC = LCDMCosmology()

        LCDMCosmology.__init__(self)
Beispiel #10
0
 def __init__(self):
     obh2 = 0.02227
     Om = 0.27
     h = 0.7
     mnu = 0
     fidTheory = LCDMCosmology(obh2, Om, h, mnu)
     GaussBAODVLikelihood.__init__(self,
                                   "SixdFGS",
                                   0.106,
                                   456.0,
                                   27.0,
                                   fidTheory,
                                   maxchi2=4)
Beispiel #11
0
    def __init__(self, varyw=True, varyOde=True, userd_DE=True):
        ## two parameters: Om and h

        self.userd_DE = userd_DE
	print 'userd', userd_DE	

        self.varyw= varyw
        self.varyOde=varyOde
  
        self.w0=  w_par.value
        self.Ode=Ode_par.value

        self.oC=LCDMCosmology()
        LCDMCosmology.__init__(self)
Beispiel #12
0
 def __init__(self):
     # fiducial cosmology for Lya data.
     # Taken from https://github.com/igmhub/picca/blob/master/data/deSainteAgatheetal2019/auto_alone_stdFit/auto_alone_stdFit..ap.at.scan.dat
     # fiducial model -- see Table 2 of Victoria's paper
     obh2 = 0.02222
     h = 0.6731
     Om = 0.1426 / h**2
     mnu = 0.06  # rd=147.33
     fidTheory = LCDMCosmology(obh2, Om, h, mnu)
     TabulatedBAOLikelihood.__init__(
         self,
         "DR14LyaAuto",
         'data/deSainteAgatheetal2019_ap_at_scan.dat',
         2,
         fidTheory,
         2.34,
         aperp_col=1,
         apar_col=0,
         skiprows=1)
Beispiel #13
0
 def __init__(self):
     # fiducial cosmology for Lya data.
     # Taken from  https://github.com/igmhub/picca/tree/master/data/Blomqvistetal2019/cross_alone_stdFit
     # fiducial model -- double check
     obh2 = 0.02222
     h = 0.6731
     Om = 0.1426 / h**2
     mnu = 0.06  # rd=147.33
     fidTheory = LCDMCosmology(obh2, Om, h, mnu)
     # File from 5/16 from Nicolas.
     TabulatedBAOLikelihood.__init__(
         self,
         "DR14LyaCross",
         'data/Blomqvistetal2019_ap_at_scan.dat',
         2,
         fidTheory,
         2.34,
         aperp_col=1,
         apar_col=0,
         skiprows=1)
Beispiel #14
0
    def __init__(self, varymu=True, varyAmp=True, varysig=True, varyCos=True):
        ## two parameters: Om and h

        ## we start with false here...
        varyOk=False
        ## this is my "original cosmology" -- outside gaussian not much will change.

        self.varyOk=varyOk
        self.varymu=varymu
        self.varyAmp=varyAmp
        self.varysig=varysig
        self.varyCos=varyCos

        self.Ok=Ok_par.value   
        self.mu=mu_par.value
        self.Amp=Amp_par.value
        self.sig=sig_par.value

        ## auxiliary self cosmology
        self.oC=LCDMCosmology()

        LCDMCosmology.__init__(self)
Beispiel #15
0
def ParseModel(model):
    if model=="LCDM":
        T=LCDMCosmology()
    elif model=="LCDMmasslessnu":
        T=LCDMCosmology(mnu=0)
    elif model=="nuLCDM":
        T=LCDMCosmology()
        T.setVaryMnu()
    elif model=="NeffLCDM":
        LCDMCosmology.rd_approx="CuestaNeff"
        T=LCDMCosmology()
        T.setVaryNnu()
    elif model=="noradLCDM":
        T=LCDMCosmology(disable_radiation=True)
    elif model=="oLCDM":
        T=oLCDMCosmology()
    elif model=="nuoLCDM":
        T=oLCDMCosmology()
        T.setVaryMnu()
    elif model=="wCDM":
        T=wLCDMCosmology()
    elif model=="nuwCDM":
        T=wLCDMCosmology()
        T.setVaryMnu()
    elif model=="waCDM":
        T=owa0CDMCosmology(varyOk=False)
    elif model=="owCDM":
        T=owa0CDMCosmology(varywa=False)
    elif model=="owaCDM":
        T=owa0CDMCosmology()
    elif model=='FCDM':
        T=OzcosCosmology()
    elif model=="JordiCDM":
        T=JordiCDMCosmology()
    elif model=="WeirdCDM":
        T=WeirdCDMCosmology()
    elif model=="TLight":
        T=TiredLightDecorator(PolyCDMCosmology())
    elif model=="StepCDM":
        T=StepCDMCosmology()
    elif model=="Spline":
        T=SplineLCDMCosmology()
    elif model=="DecayFrac":
        T=DecayLCDMCosmology() 
    elif model=="Decay":
        T=DecayLCDMCosmology(varyxfrac=False) 
    elif model=="Decay01":
        T=DecayLCDMCosmology(varyxfrac=False,xfrac=0.1) 
    elif model=="Decay05":
        T=DecayLCDMCosmology(varyxfrac=False,xfrac=0.5) 
    elif model=="PolyCDM":
        T=PolyCDMCosmology()
    elif model=="fPolyCDM":
        T=PolyCDMCosmology(varyOk=False)
    elif model=="EarlyDE":
        T=EarlyDECosmology(varyw=False,userd_DE=False)
    elif model=="EarlyDE_rd_DE":
        T=EarlyDECosmology(varyw=False)
    elif model=="SlowRDE":
        T=SlowRDECosmology(varyOk=False)
    elif model=="Quint":
        T=QuintCosmology()
    elif model=='wDM':
        T=wDMCosmology()
    else:
        print "Cannot recognize model", model
        sys.exit(1)

    return T
Beispiel #16
0
class WeirdCDMCosmology(LCDMCosmology):
    def __init__(self, varymu=True, varyAmp=True, varysig=True, varyCos=True):
        ## two parameters: Om and h

        ## we start with false here...
        varyOk=False
        ## this is my "original cosmology" -- outside gaussian not much will change.

        self.varyOk=varyOk
        self.varymu=varymu
        self.varyAmp=varyAmp
        self.varysig=varysig
        self.varyCos=varyCos

        self.Ok=Ok_par.value   
        self.mu=mu_par.value
        self.Amp=Amp_par.value
        self.sig=sig_par.value

        ## auxiliary self cosmology
        self.oC=LCDMCosmology()

        LCDMCosmology.__init__(self)

    ## my free parameters. We add Ok on top of LCDM ones (we inherit LCDM)
    def freeParameters(self):
        l=[]
        if (self.varyCos): l+=LCDMCosmology.freeParameters(self)
        if (self.varyOk): l.append(Ok_par)
        if (self.varymu): l.append(mu_par)
        if (self.varyAmp): l.append(Amp_par)
        if (self.varysig): l.append(sig_par)
        return l


    def updateParams(self,pars):
        LCDMCosmology.updateParams(self,pars)
        self.oC.updateParams(pars)

        for p in pars:
            if p.name=="Ok":
                self.Ok=p.value
                self.setCurvature(self.Ok)
                if (abs(self.Ok)>1.0):
                   return False
            elif p.name=="mu":
                self.mu=p.value
            elif p.name=="Amp":
                self.Amp=p.value
            elif p.name=="sig":
                self.sig=p.value
        return True


    def Weird(self,a):
        #return W(z) and dW(z)/dz
        z=1.0/a-1
        lmu=log(self.mu+1)
        lz=log(z+1)
        W=self.Amp*N.exp(-(lz-lmu)**2/(2*self.sig**2))
        WP=W*(-(lz-lmu)/self.sig**2)*a ## a=1/(1+z) = dlog(1+z)/dz
        return W,WP


    ## this is relative hsquared as a function of a
    ## i.e. H(z)^2/H(z=0)^2
    def RHSquared_a(self,a):
        W,WP=self.Weird(a)
        H2=LCDMCosmology.RHSquared_a(self,a)
        HI=1/sqrt(H2)
        HI=HI*(1+W) + self.oC.Da_z(1/a-1)*WP
        return 1/HI**2

    def Da_z(self,z):
       W,WP=self.Weird(1/(1.0+z))
       return self.oC.Da_z(z)*(1+W)
Beispiel #17
0
class EarlyDECosmology(LCDMCosmology):
    def __init__(self, varyw=True, varyOde=True, userd_DE=True):
        ## two parameters: Om and h

        self.userd_DE = userd_DE
	print 'userd', userd_DE	

        self.varyw= varyw
        self.varyOde=varyOde
  
        self.w0=  w_par.value
        self.Ode=Ode_par.value

        self.oC=LCDMCosmology()
        LCDMCosmology.__init__(self)

    ## my free parameters. We add Ok on top of LCDM ones (we inherit LCDM)
    def freeParameters(self):
        l=LCDMCosmology.freeParameters(self)
        if (self.varyw): l.append(w_par)
        if (self.varyOde): l.append(Ode_par)
        return l


    def updateParams(self,pars):
        ok=LCDMCosmology.updateParams(self,pars)
        self.oC.updateParams(pars)
        if not ok:
            return False
        for p in pars:
            if p.name=="w":
               self.w0=p.value
            if p.name=="Ode":
               self.Ode=p.value  
        return True

    ## this is relative hsquared as a function of a
    ## i.e. H(z)^2/H(z=0)^2
    def RHSquared_a(self,a):
        NuContrib=self.NuDensity.rho(a)/self.h**2
        Omega_d0 = 1.0-self.Ocb-self.Omrad-self.NuDensity.rho(1.0)/self.h**2
        factor= self.Ocb/a**3+self.Omrad/a**4+NuContrib
        Omega_d =(Omega_d0-self.Ode*(1.0-a**(-3*self.w0)))/(Omega_d0+factor*a**(3*(1.0+self.w0)))+ self.Ode*(1.0-a**(-3*self.w0)) 
        return factor/(1.0-Omega_d)


    def prefactor(self):
	if self.userd_DE:
		self.rd = self.oC.rd*((1.-self.Ode)**(0.5))
	else:
		self.rd = self.oC.rd
	return 	self.c_/(self.rd*self.h*100)



#for printing purposes only
    def Omega_de(self, a):
        NuContrib=self.NuDensity.rho(a)/self.h**2
        Omega_d0 = 1.0-self.Ocb-self.Omrad-self.NuDensity.rho(1.0)/self.h**2 
        factor= self.Ocb/a**3+self.Omrad/a**4+NuContrib
        return (Omega_d0-self.Ode*(1.0-a**(-3*self.w0)))/(Omega_d0+factor*a**(3*(1.0+self.w0)))+ self.Ode*(1.0-a**(-3*self.w0))
class WeirdCDMCosmology(LCDMCosmology):
    def __init__(self, varymu=True, varyAmp=True, varysig=True, varyCos=True):
        ## two parameters: Om and h

        ## we start with false here...
        varyOk = False
        ## this is my "original cosmology" -- outside gaussian not much will change.

        self.varyOk = varyOk
        self.varymu = varymu
        self.varyAmp = varyAmp
        self.varysig = varysig
        self.varyCos = varyCos

        self.Ok = Ok_par.value
        self.mu = mu_par.value
        self.Amp = Amp_par.value
        self.sig = sig_par.value

        ## auxiliary self cosmology
        self.oC = LCDMCosmology()

        LCDMCosmology.__init__(self)

    ## my free parameters. We add Ok on top of LCDM ones (we inherit LCDM)
    def freeParameters(self):
        l = []
        if (self.varyCos): l += LCDMCosmology.freeParameters(self)
        if (self.varyOk): l.append(Ok_par)
        if (self.varymu): l.append(mu_par)
        if (self.varyAmp): l.append(Amp_par)
        if (self.varysig): l.append(sig_par)
        return l

    def updateParams(self, pars):
        LCDMCosmology.updateParams(self, pars)
        self.oC.updateParams(pars)

        for p in pars:
            if p.name == "Ok":
                self.Ok = p.value
                self.setCurvature(self.Ok)
                if (abs(self.Ok) > 1.0):
                    return False
            elif p.name == "mu":
                self.mu = p.value
            elif p.name == "Amp":
                self.Amp = p.value
            elif p.name == "sig":
                self.sig = p.value
        return True

    def Weird(self, a):
        #return W(z) and dW(z)/dz
        z = 1.0 / a - 1
        lmu = log(self.mu + 1)
        lz = log(z + 1)
        W = self.Amp * N.exp(-(lz - lmu)**2 / (2 * self.sig**2))
        WP = W * (-(lz - lmu) / self.sig**2) * a  ## a=1/(1+z) = dlog(1+z)/dz
        return W, WP

    ## this is relative hsquared as a function of a
    ## i.e. H(z)^2/H(z=0)^2
    def RHSquared_a(self, a):
        W, WP = self.Weird(a)
        H2 = LCDMCosmology.RHSquared_a(self, a)
        HI = 1 / sqrt(H2)
        HI = HI * (1 + W) + self.oC.Da_z(1 / a - 1) * WP
        return 1 / HI**2

    def Da_z(self, z):
        W, WP = self.Weird(1 / (1.0 + z))
        return self.oC.Da_z(z) * (1 + W)
Beispiel #19
0
def ParseModel(model):
    if model == "LCDM":
        T = LCDMCosmology()
    elif model == "LCDMmasslessnu":
        T = LCDMCosmology(mnu=0)
    elif model == "nuLCDM":
        T = LCDMCosmology()
        T.setVaryMnu()
    elif model == "NeffLCDM":
        LCDMCosmology.rd_approx = "CuestaNeff"
        T = LCDMCosmology()
        T.setVaryNnu()
    elif model == "noradLCDM":
        T = LCDMCosmology(disable_radiation=True)
    elif model == "oLCDM":
        T = oLCDMCosmology()
    elif model == "nuoLCDM":
        T = oLCDMCosmology()
        T.setVaryMnu()
    elif model == "wCDM":
        T = wLCDMCosmology()
    elif model == "nuwCDM":
        T = wLCDMCosmology()
        T.setVaryMnu()
    elif model == "waCDM":
        T = owa0CDMCosmology(varyOk=False)
    elif model == "owCDM":
        T = owa0CDMCosmology(varywa=False)
    elif model == "owaCDM":
        T = owa0CDMCosmology()
    elif model == "JordiCDM":
        T = JordiCDMCosmology()
    elif model == "WeirdCDM":
        T = WeirdCDMCosmology()
    elif model == "TLight":
        T = TiredLightDecorator(PolyCDMCosmology())
    elif model == "StepCDM":
        T = StepCDMCosmology()
    elif model == "Spline":
        T = SplineLCDMCosmology()
    elif model == "DecayFrac":
        T = DecayLCDMCosmology()
    elif model == "Decay":
        T = DecayLCDMCosmology(varyxfrac=False, xfrac=1.0)
    elif model == "Decay01":
        T = DecayLCDMCosmology(varyxfrac=False, xfrac=0.1)
    elif model == "Decay05":
        T = DecayLCDMCosmology(varyxfrac=False, xfrac=0.5)
    elif model == "PolyCDM":
        T = PolyCDMCosmology()
    elif model == "fPolyCDM":
        T = PolyCDMCosmology(varyOk=False)
    elif model == "EarlyDE":
        T = EarlyDECosmology(varyw=False, userd_DE=False)
    elif model == "EarlyDE_rd_DE":
        T = EarlyDECosmology(varyw=False)
    elif model == "SlowRDE":
        T = SlowRDECosmology(varyOk=False)
    elif model == "Quint_last":
        T = QuintCosmology()
    elif model == 'wDM':
        T = wDMCosmology()
    else:
        print(("Cannot recognize model", model))
        sys.exit(1)

    return T
Beispiel #20
0
def ParseModel(model):
    #    if model=="LCDM_2":
    if model == "LCDM" or "LCDM_" in model:
        T = LCDMCosmology()
    elif model == "LCDMmasslessnu" or "LCDMmasslessnu_" in model:
        T = LCDMCosmology(mnu=0)
    elif model == "nuLCDM" or "nuLCDM_" in model:
        T = LCDMCosmology()
        T.setVaryMnu()
    elif model == "NnuLCDM" or "NnuLCDM_" in model:
        LCDMCosmology.rd_approx = "tabulated_Nnu"
        T = LCDMCosmology()
        T.setVaryNnu()
    elif model == "noradLCDM" or "noradLCDM_" in model:
        T = LCDMCosmology(disable_radiation=True)
    elif model == "oLCDM" or "oLCDM_" in model:
        T = oLCDMCosmology()
    elif model == "wCDM" or "wCDM_" in model:
        T = wLCDMCosmology()
    elif model == "waCDM" or "waCDM_" in model:
        T = owa0CDMCosmology(varyOk=False)
    elif model == "owCDM" or "owCDM_" in model:
        T = owa0CDMCosmology(varywa=False)
    elif model == "owaCDM" or "owaCDM_" in model:
        T = owa0CDMCosmology()
    elif model == "JordiCDM" or "JordiCDM_" in model:
        T = JordiCDMCosmology()
    elif model == "WeirdCDM" or "WeirdCDM_" in model:
        T = WeirdCDMCosmology()
    elif model == "TLight" or "TLight_" in model:
        T = TLightCosmology()
    elif model == "StepCDM" or "StepCDM_" in model:
        T = StepCDMCosmology()
    elif model == "Spline" or "Spline_" in model:
        T = SplineLCDMCosmology()
    elif model == "Decay" or "Decay_" in model:
        T = DecayLCDMCosmology()
    elif model == "PolyCDM" or "PolyCDM_" in model:
        T = PolyCDMCosmology()
    elif model == "EarlyDE" or "EarlyDE_" in model:
        T = EarlyDECosmology()
    else:
        print "Cannot recognize model", model
        sys.exit(1)

    return T
Beispiel #21
0
def ParseModel(model):
    if model == "LCDM":
        T = LCDMCosmology()
    elif model == "LCDMmasslessnu":
        T = LCDMCosmology(mnu=0)
    elif model == "nuLCDM":
        T = LCDMCosmology()
        T.setVaryMnu()
    elif model == "NeffLCDM":
        LCDMCosmology.rd_approx = "CuestaNeff"
        T = LCDMCosmology()
        T.setVaryNnu()
    elif model == "noradLCDM":
        T = LCDMCosmology(disable_radiation=True)
    elif model == "oLCDM":
        T = oLCDMCosmology()
    elif model == "nuoLCDM":
        T = oLCDMCosmology()
        T.setVaryMnu()
    elif model == "wCDM":
        T = wLCDMCosmology()
    elif model == "nuwCDM":
        T = wLCDMCosmology()
        T.setVaryMnu()
    elif model == "waCDM":
        T = owa0CDMCosmology(varyOk=False)
    elif model == "owCDM":
        T = owa0CDMCosmology(varywa=False)
    elif model == "owaCDM":
        T = owa0CDMCosmology()
    elif model == "JordiCDM":
        T = JordiCDMCosmology()
    elif model == "WeirdCDM":
        T = WeirdCDMCosmology()
    elif model == "TLight":
        T = TiredLightDecorator(PolyCDMCosmology())
    elif model == "StepCDM":
        T = StepCDMCosmology()
    elif model == "Spline":
        T = SplineLCDMCosmology()
    elif model == "DecayFrac":
        T = DecayLCDMCosmology()
    elif model == "Decay":
        T = DecayLCDMCosmology(varyxfrac=False, xfrac=1.0)
    elif model == "Decay01":
        T = DecayLCDMCosmology(varyxfrac=False, xfrac=0.1)
    elif model == "Decay05":
        T = DecayLCDMCosmology(varyxfrac=False, xfrac=0.5)
    elif model == "PolyCDM":
        T = PolyCDMCosmology()
    elif model == "fPolyCDM":
        T = PolyCDMCosmology(polyvary=['Om1','Om2'])
    elif model == "PolyOk": ## polycdm for OK
        T = PolyCDMCosmology(Ok_prior=10.)
    elif model == "PolyOkc": ## polycdm sans Om2 term to couple two
        T = PolyCDMCosmology(polyvary=['Om1','Ok'],Ok_prior=10.)
    elif model == "PolyOkf": ## polycdm sans Om2 term to couple two
        T = PolyCDMCosmology(polyvary=['Om1','Om2'])


    elif model == "EarlyDE":
        T = EarlyDECosmology(varyw=False, userd_DE=False)
    elif model == "EarlyDE_rd_DE":
        T = EarlyDECosmology(varyw=False)
    elif model == "SlowRDE":
        T = SlowRDECosmology(varyOk=False)
    elif model == "Quint_last":
        T = QuintCosmology()
    elif model == 'wDM':
        T = wDMCosmology()
    else:
        print("Cannot recognize model", model)
        sys.exit(1)

    return T
Beispiel #22
0
def ParseModel(model):
    if model == "LCDM":
        T = LCDMCosmology()
    elif model == "LCDMmasslessnu":
        T = LCDMCosmology(mnu=0)
    elif model == "nuLCDM":
        T = LCDMCosmology()
        T.setVaryMnu()
    elif model == "NeffLCDM":
        LCDMCosmology.rd_approx = "CuestaNeff"
        T = LCDMCosmology()
        T.setVaryNnu()
    elif model == "noradLCDM":
        T = LCDMCosmology(disable_radiation=True)
    elif model == "oLCDM":
        T = oLCDMCosmology()
    elif model == "nuoLCDM":
        T = oLCDMCosmology()
        T.setVaryMnu()
    elif model == "wCDM":
        T = wLCDMCosmology()
    elif model == "nuwCDM":
        T = wLCDMCosmology()
        T.setVaryMnu()
    elif model == "waCDM":
        T = owa0CDMCosmology(varyOk=False)
    elif model == "owCDM":
        T = owa0CDMCosmology(varywa=False)
    elif model == "owaCDM":
        T = Lowa0CDMCosmology()
    elif model == 'FCDM':
        T = OzcosCosmology()
    elif model == 'HornFco_c_cubic':
        T = HornFcoCosmology(varyc=True)
    elif model == 'HornFco_f_cubic':
        T = HornFcoCosmology(varyf=True)
    elif model == "JordiCDM":
        T = JordiCDMCosmology()
    elif model == "WeirdCDM":
        T = WeirdCDMCosmology()
    elif model == "TLight":
        T = TiredLightDecorator(PolyCDMCosmology())
    elif model == "StepCDM":
        T = StepCDMCosmology()
    elif model == "Spline":
        T = SplineLCDMCosmology()
    elif model == "DecayFrac":
        T = DecayLCDMCosmology()
    elif model == "Decay":
        T = DecayLCDMCosmology(varyxfrac=False)
    elif model == "Decay01":
        T = DecayLCDMCosmology(varyxfrac=False, xfrac=0.1)
    elif model == "Decay05":
        T = DecayLCDMCosmology(varyxfrac=False, xfrac=0.5)
    elif model == "PolyCDM":
        T = PolyCDMCosmology()
    elif model == "fPolyCDM":
        T = PolyCDMCosmology(varyOk=False)
    elif model == "EarlyDE":
        T = EarlyDECosmology(varyw=False, userd_DE=False)
    elif model == "EarlyDE_rd_DE":
        T = EarlyDECosmology(varyw=False)
    elif model == "SlowRDE":
        T = SlowRDECosmology(varyOk=False)
    elif model == "Quint":
        T = QuintCosmology_try()
    elif model == "Quintess":
        T = QuintomCosmology(varymquin=True)
    elif model == "Phantom":
        T = QuintomCosmology(varymphan=True)
    elif model == "Quintom":
        T = QuintomCosmology(varymquin=True, varymphan=True, varyiniphi=True)
    elif model == "Anisotropic":
        T = AnisotropicCosmology()
    elif model == "Fourier":
        T = FourierCosmology()
    elif model == 'wDM':
        T = wDMCosmology()
    else:
        print "Cannot recognize model", model
        sys.exit(1)

    return T
Beispiel #23
0
class Early_DE_DMCosmology(LCDMCosmology):
    def __init__(self, varyw=True, varyOde=True, userd_DE=True, varywMO=True):
        ## two parameters: Om and h

        self.userd_DE = userd_DE
        print 'userd', userd_DE

        self.varyw = varyw
        self.varyOde = varyOde
        self.varywMO = varywMO

        self.w0 = w_par.value
        self.Ode = Ode_par.value
        self.wMO = wMO_par.value

        self.oC = LCDMCosmology()
        LCDMCosmology.__init__(self)

    ## my free parameters. We add Ok on top of LCDM ones (we inherit LCDM)
    def freeParameters(self):
        l = LCDMCosmology.freeParameters(self)
        if (self.varyw): l.append(w_par)
        if (self.varyOde): l.append(Ode_par)
        if (self.varywMO): l.append(wMO_par)
        return l

    def updateParams(self, pars):
        ok = LCDMCosmology.updateParams(self, pars)
        self.oC.updateParams(pars)
        if not ok:
            return False
        for p in pars:
            if p.name == "w":
                self.w0 = p.value
            if p.name == "Ode":
                self.Ode = p.value
            elif p.name == "wMO":
                self.wMO = p.value
        return True

    ## this is relative hsquared as a function of a
    ## i.e. H(z)^2/H(z=0)^2
    def RHSquared_a(self, a):
        NuContrib = self.NuDensity.rho(a) / self.h**2
        self.Odm = self.Ocb - self.Obh2 / (self.h**2)  #Se agrega por DM
        self.Ob = self.Ocb - self.Odm  #Se agrega por DM
        Omega_d0 = 1.0 - self.Ocb - self.Omrad - self.NuDensity.rho(
            1.0) / self.h**2
        factor = self.Ob / a**3 + self.Odm * a**(
            -3 * (1.0 + self.wMO)) + self.Omrad / a**4 + NuContrib
        Omega_d = (Omega_d0 - self.Ode * (1.0 - a**(-3 * self.w0))) / (
            Omega_d0 + factor * a**
            (3 * (1.0 + self.w0))) + self.Ode * (1.0 - a**(-3 * self.w0))
        return factor / (1.0 - Omega_d)

    def prefactor(self):
        if self.userd_DE:
            self.rd = self.oC.rd * ((1. - self.Ode)**(0.5))
        else:
            self.rd = self.oC.rd
        return self.c_ / (self.rd * self.h * 100)

#for printing purposes only

    def Omega_de(self, a):
        NuContrib = self.NuDensity.rho(a) / self.h**2
        Omega_d0 = 1.0 - self.Ocb - self.Omrad - self.NuDensity.rho(
            1.0) / self.h**2
        factor = self.Ob / a**3 + self.Odm * a**(
            -3 * (1.0 + self.wMO)) + self.Omrad / a**4 + NuContrib
        return (Omega_d0 - self.Ode * (1.0 - a**(-3 * self.w0))) / (
            Omega_d0 + factor * a**
            (3 * (1.0 + self.w0))) + self.Ode * (1.0 - a**(-3 * self.w0))