def myloglike_BaKa2016_EOSFit(cube, ndim, nparams): t0 = cube[0] m1 = cube[1] c1 = cube[2] m2 = cube[3] c2 = cube[4] zp = cube[5] mb1 = lightcurve_utils.EOSfit(m1,c1) mb2 = lightcurve_utils.EOSfit(m2,c2) tmag, lbol, mag = BaKa2016_model(m1,mb1,c1,m2,mb2,c2) prob = calc_prob(tmag, lbol, mag, t0, zp) prior = prior_DiUj2017(m1,mb1,c1,m2,mb2,c2) if prior == 0.0: prob = -np.inf return prob
def myloglike_SmCh2017_EOSFit(cube, ndim, nparams): t0 = cube[0] m1 = cube[1] c1 = cube[2] m2 = cube[3] c2 = cube[4] slope_r = cube[5] kappa_r = 10**cube[6] zp = cube[7] mb1 = lightcurve_utils.EOSfit(m1,c1) mb2 = lightcurve_utils.EOSfit(m2,c2) tmag, lbol, mag = SmCh2017_model(m1,mb1,c1,m2,mb2,c2,slope_r,kappa_r) prob = calc_prob(tmag, lbol, mag, t0, zp) prior = prior_DiUj2017(m1,mb1,c1,m2,mb2,c2) if prior == 0.0: prob = -np.inf return prob
def myloglike_KaKy2016_EOSFit(cube, ndim, nparams): t0 = cube[0] q = cube[1] chi_eff = cube[2] mns = cube[3] c = cube[4] th = cube[5] ph = cube[6] zp = cube[7] mb = lightcurve_utils.EOSfit(mns,c) tmag, lbol, mag = KaKy2016_model(q, chi_eff, mns, mb, c, th, ph) prob = calc_prob(tmag, lbol, mag, t0, zp) prior = prior_KaKy2016(q,chi_eff,mns,mb,c) if prior == 0.0: prob = -np.inf return prob
snr = data_out[:, 1] m1 = data_out[:, 2] m2 = data_out[:, 3] q = 1 / data_out[:, 4] eff_spin = data_out[:, 5] totmass = data_out[:, 6] a1 = data_out[:, 7] a2 = data_out[:, 8] for ii in xrange(len(injnum)): if not ((q[ii] >= 3) and (q[ii] <= 9)): continue if not ((m2[ii] >= 1) and (m2[ii] <= 3)): continue #if not ((q[ii] >= 3) and (q[ii] <=5)): continue c1, c2 = 0.147, 0.147 mb1, mb2 = lightcurve_utils.EOSfit(m1[ii], c1), lightcurve_utils.EOSfit( m2[ii], c2) th = 0.2 ph = 3.14 t, lbol, mag = KaKy2016_model(q[ii], a1[ii], m2[ii], mb2, c2, th, ph) #print q[ii],a1[ii],m2[ii],mb2,c2,th,ph if len(mag) == 0: continue idx = np.where(np.isfinite(mag[2]))[0] if opts.doEOSFit: eosfitFlag = "--doEOSFit" else: eosfitFlag = "" if opts.doEjecta:
eta = lightcurve_utils.q2eta(np.mean(data_out["q"])) m1, m2 = lightcurve_utils.mc2ms(np.mean(data_out["mc"]), eta) mchirp, eta, q = lightcurve_utils.ms2mc(m1, m2) q = 1 / q else: eta = lightcurve_utils.q2eta(data_out["q"]) m1, m2 = lightcurve_utils.mc2ms(data_out["mc"], eta) q = m2 / m1 mc = data_out["mc"] m1, m2 = np.mean(m1), np.mean(m2) chi_eff = 0.0 c1, c2 = 0.147, 0.147 mb1, mb2 = lightcurve_utils.EOSfit(m1, c1), lightcurve_utils.EOSfit( m2, c2) th = 0.2 ph = 3.14 if m1 > 3: from gwemlightcurves.EjectaFits.KaKy2016 import calc_meje, calc_vave mej = calc_meje(q, chi_eff, c2, mb2, m2) vej = calc_vave(q) else: from gwemlightcurves.EjectaFits.DiUj2017 import calc_meje, calc_vej mej = calc_meje(m1, mb1, c1, m2, mb2, c2) vej = calc_vej(m1, c1, m2, c2) filename = os.path.join(plotDir, 'truth_mej_vej.dat')
q_true = 1/q_true multifile = lightcurve_utils.get_post_file(plotDir) if not multifile: continue data = np.loadtxt(multifile) post[name][errorbudget] = {} if opts.doGoingTheDistance or opts.doMassGap: if opts.model == "DiUj2017": if opts.doEOSFit: mchirp_gw,eta_gw,q_gw = lightcurve_utils.ms2mc(data[:,0],data[:,2]) mej_gw, vej_gw = np.zeros(data[:,0].shape), np.zeros(data[:,0].shape) ii = 0 for m1,c1,m2,c2 in data[:,:-1]: mb1 = lightcurve_utils.EOSfit(m1,c1) mb2 = lightcurve_utils.EOSfit(m2,c2) mej_gw[ii], vej_gw[ii] = bns_model(m1,mb1,c1,m2,mb2,c2) ii = ii + 1 else: mchirp_gw,eta_gw,q_gw = lightcurve_utils.ms2mc(data[:,0],data[:,3]) mej_gw, vej_gw = np.zeros(data[:,0].shape), np.zeros(data[:,0].shape) ii = 0 for m1,mb1,c1,m2,mb2,c2 in data[:,:-1]: mej_gw[ii], vej_gw[ii] = bns_model(m1,mb1,c1,m2,mb2,c2) ii = ii + 1 q_gw = 1/q_gw mej_gw = np.log10(mej_gw) elif opts.model == "KaKy2016": if opts.doEOSFit: mchirp_gw,eta_gw,q_gw = lightcurve_utils.ms2mc(data[:,0]*data[:,2],data[:,2])