Skip to content

Commit 5efacc1

Browse files
committed
quasar likelihood best
1 parent 53f6386 commit 5efacc1

File tree

5 files changed

+225
-39
lines changed

5 files changed

+225
-39
lines changed

Notebooks/likelihood.ipynb

+151-19
Large diffs are not rendered by default.

marcia/cosmology.py

+17-12
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ def distance_modulus(self,parameters,z1, z2):
133133
mu = cbackend.distance_modulus(Mb,z2,d)
134134
return mu
135135

136+
def luminosity_distance(self,parameters,z):
137+
p = self.param(parameters)
138+
d = self.transverse_distance(parameters, z)
139+
return d * (1+z)
140+
136141
# This is to provide the Mb alone
137142
def Abs_M(self,parameters):
138143
p = self.param(parameters)
@@ -184,12 +189,12 @@ def __check_mandatory_parameters__(self):
184189
assert 'H0' in self.param.parameters, 'wCDM: H0 is not defined in the parameters'
185190
assert 'w0' in self.param.parameters, 'wCDM: w0 is not defined in the parameters'
186191
assert 'Omega_m' in self.param.parameters, 'wCDM: Omega_m is not defined in the parameters'
187-
n=3
188-
if self.rdsample or self.Obsample:
189-
n+=1
190-
if self.Mbsample:
191-
n+=1
192-
assert len(self.param.parameters) == n, 'wCDM: parameters are not correct'
192+
# n=3
193+
# if self.rdsample or self.Obsample:
194+
# n+=1
195+
# if self.Mbsample:
196+
# n+=1
197+
# assert len(self.param.parameters) == n, 'wCDM: parameters are not correct'
193198

194199
def dark_energy_f(self, parameters, z):
195200
p = self.param(parameters)
@@ -218,12 +223,12 @@ def __init__(self, parameters,prior_file=None):
218223
def __check_mandatory_parameters__(self):
219224
assert 'H0' in self.param.parameters, 'LCDM: H0 is not defined in the parameters'
220225
assert 'Omega_m' in self.param.parameters, 'LCDM: Omega_m is not defined in the parameters'
221-
n=2
222-
if self.rdsample or self.Obsample:
223-
n+=1
224-
if self.Mbsample:
225-
n+=1
226-
assert len(self.param.parameters) == n, 'LCDM: parameters are not correct'
226+
# n=2
227+
# if self.rdsample or self.Obsample:
228+
# n+=1
229+
# if self.Mbsample:
230+
# n+=1
231+
# assert len(self.param.parameters) == n, 'LCDM: parameters are not correct'
227232

228233
class CPL(wCDM):
229234
def __init__(self, parameters,prior_file=None):

marcia/database.py

+18-7
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66

77

88
__path__ = os.path.dirname(os.path.realpath(__file__))
9-
__datapath__ = os.path.join(__path__, 'Data')
9+
__datapath__ = os.path.join(__path__, '..','Data')
1010

1111

1212

1313
class Data:
1414

1515
def __init__(self,data,file_fs8=0,Lambda=1,b=1,sigma_sys=0.7571,H0=1,):
16-
datalist = ['CC','BAO-alam','BAO-zhao','GR','Lya','GRB','SNE','QSA', 'Planck_TT', 'Planck_EE', 'Planck_TE','Pantheon_plus']
16+
datalist = ['CC','BAO-alam','BAO-zhao','GR','Lya','GRB','SNE','QSO','QSO_full', 'Planck_TT', 'Planck_EE', 'Planck_TE','Pantheon_plus']
1717
if type(data) is str:
1818
assert data in datalist, f'{data} is not in {datalist}'
1919
self.data = [data]
@@ -186,12 +186,23 @@ def get_SNE(self):
186186
sigma = data[:,2]
187187
covar = sigma * corr * sigma.T
188188
return x,y,covar
189+
190+
189191

190-
def get_QSA(self):
191-
data = loadtxt(os.path.join(__datapath__, 'Quasars','DL_all_short.txt'))
192-
x = data[:,0]
193-
y = data[:,1]
194-
sigma = data[:,2]
192+
193+
@load_data_once
194+
def get_QSO_data(self):
195+
data = loadtxt(os.path.join(__datapath__, 'Quasars','table3.dat'), usecols=(3,4,5,6,7,9,10, 11, 12))
196+
z, lnFUV, lnFUV_err, lnFX, lnFX_err = data[:,0], data[:,1], data[:,2], data[:,3], data[:,4]
197+
DM, dDM = data[:,7], data[:,8]
198+
return z, lnFUV, lnFUV_err, lnFX, lnFX_err, DM, dDM
199+
200+
def get_QSO_full(self):
201+
z, lnFUV, lnFUV_err, lnFX, lnFX_err, _, _ = self.get_QSO_data()
202+
return z, lnFUV, lnFUV_err, lnFX, lnFX_err
203+
204+
def get_QSO(self):
205+
x,_,_,_,_,y,sigma = self.get_QSO_data()
195206
covar = np.diag(sigma**2)
196207
return x,y,covar
197208

marcia/likelihood.py

+29
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
from marcia import GPconfig
77
from marcia import CosmoConfig
88
from marcia.kernel import Kernel as kern
9+
from marcia import Params
10+
11+
import pdb
912

1013

1114
class Likelihood(object):
@@ -16,6 +19,7 @@ def __init__(self, model,parameters,data,prior_file=None):
1619
self.theory = cosmo(model,parameters,prior_file) # This needs to be done here to make the code more autonomous
1720
# This list sets the available data to work with, has to be updated when ever a new dataset is added
1821
self.priors = self.theory.priors
22+
self.params = Params(parameters)
1923
self.data = data
2024
self.db = Data(data)
2125
self.inv_covariance = {}
@@ -64,6 +68,31 @@ def chisq_Pantheon_plus(self,theta):
6468
self.inv_covariance['Pantheon_plus'] = icov
6569

6670
return np.dot(delta, np.dot(icov, delta))
71+
72+
def chisq_QSO_dm(self,theta):
73+
p = self.params(theta)
74+
#pdb.set_trace()
75+
z,dm,cov = self.db.get_QSO()
76+
distance_theory = self.theory.distance_modulus(theta, z,z)
77+
delta = dm - distance_theory
78+
var = np.diag(cov)
79+
return np.sum(delta**2./(var + p.qso_sigma**2))
80+
81+
def chisq_QSO_full(self,theta):
82+
p = self.params(theta)
83+
z, lnFUV, lnFUV_err, lnFX, lnFX_err = self.db.get_QSO_full()
84+
yi = lnFX
85+
dyi = lnFX_err
86+
xi = lnFUV
87+
dxi = lnFUV_err
88+
DL = self.theory.luminosity_distance(theta,z)*3.086e24
89+
90+
psi = p.qso_beta + p.qso_gamma*(xi) + 2*(p.qso_gamma -1)*(np.log10(DL)) + (p.qso_gamma-1)*np.log10(4*np.pi)
91+
92+
si2 = p.qso_gamma**2 * dxi**2 + dyi**2 + np.exp( 2*np.log(p.qso_sigma) )
93+
94+
return np.sum((psi - yi)**2/si2 + np.log(2*np.pi*si2))
95+
6796

6897

6998
def chisq(self,theta):

marcia/params.ini

+10-1
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,14 @@ wc = '$w_c$'
1313
fa = '$f_a$'
1414
fb = '$f_b$'
1515
fc = '$f_c$'
16+
qso_beta = '$\beta_{QSO}$'
17+
qso_sigma = '$\sigma_{QSO}$'
18+
qso_gamma = '$\gamma_{QSO}$'
1619

1720

1821
[Priors]
1922
r_d = [100.0,180.0]
20-
M_b = [-20.0,-18.0]
23+
M_b = [-19.5,-18.7]
2124
Omega_b = [0.01,0.1]
2225
H0 = [61.0,81.0]
2326
Omega_m = [0.1,0.5]
@@ -30,6 +33,9 @@ wc = [-150.0,80.0]
3033
fa = [-20.0,20.0]
3134
fb = [-50.0,50.0]
3235
fc = [-50.0,50.0]
36+
qso_beta = [0,15]
37+
qso_sigma = [0,1]
38+
qso_gamma = [0,2]
3339

3440
[Defaults]
3541
r_d = 0
@@ -46,4 +52,7 @@ wc = 0
4652
fa = 1
4753
fb = 0
4854
fc = 0
55+
qso_beta = 8
56+
qso_sigma = 0.2
57+
qso_gamma = 0.6
4958

0 commit comments

Comments
 (0)