def likelihood_function(right_ascension, declination, t_ref, phi_orb, inclination, psi, distance): P.phi = right_ascension # right ascension P.theta = declination # declination P.tref = t_ref + fiducial_epoch # ref. time (rel to epoch for data taking) P.phiref = phi_orb # ref. orbital phase P.incl = inclination # inclination P.psi = psi # polarization angle P.dist = distance * 1.e6 * lal.PC_SI # luminosity distance lnL = factored_likelihood.factored_log_likelihood( P, rholms_intp, cross_terms, opts.l_max) return numpy.exp(lnL)
def likelihood_function(right_ascension, declination, t_ref, phi_orb, inclination, psi, distance): # use EXTREMELY many bits lnL = numpy.zeros(right_ascension.shape,dtype=numpy.float128) i = 0 for ph, th, tr, phr, ic, ps, di in zip(right_ascension, declination, t_ref, phi_orb, inclination, psi, distance): P.phi = ph # right ascension P.theta = th # declination P.tref = fiducial_epoch + tr # ref. time (rel to epoch for data taking) P.phiref = phr # ref. orbital phase P.incl = ic # inclination P.psi = ps # polarization angle P.dist = di* 1.e6 * lal.PC_SI # luminosity distance lnL[i] = factored_likelihood.factored_log_likelihood(P, rholms_intp, cross_terms, opts.l_max) i+=1 return numpy.exp(lnL)
t_window = 0.15 rholms_intp, cross_terms, rholms = factored_likelihood.precompute_likelihood_terms(fiducial_epoch, t_window, P, data_dict, psd_dict, opts.l_max, fmax, False, inv_spec_trunc_Q, T_spec) if opts.pin_to_sim and not opts.zero_noise: P.copy_lsctables_sim_inspiral(sim_row) print "Pinned parameters from sim_inspiral" print "\tRA", P.phi, sim_row.longitude print "\tdec", P.theta, sim_row.latitude print "\tt ref %d.%d" % (P.tref.gpsSeconds, P.tref.gpsNanoSeconds), sim_row.get_time_geocent() print "\torb phase", P.phiref, sim_row.coa_phase # ref. orbital phase print "\tinclination", P.incl, sim_row.inclination # inclination print "\tpsi", P.psi, sim_row.polarization # polarization angle print "\tdistance", P.dist/(1e6 * lal.PC_SI), sim_row.distance # luminosity distance logL = factored_likelihood.factored_log_likelihood(P, rholms_intp, cross_terms, opts.l_max) print "Pinned log likelihood: %g, (%g in \"SNR\")" % (logL, numpy.sqrt(2*logL)) tref = float(P.tref) tvals = numpy.arange(tref-0.01, tref+0.01, 0.00001) logLs = [] for t in tvals: P.tref = lal.LIGOTimeGPS(t) logLs.append(factored_likelihood.factored_log_likelihood(P, rholms_intp, cross_terms, opts.l_max)) import matplotlib matplotlib.use("Agg") from matplotlib import pyplot print "Maximum logL is %g, (%g in \"SNR\")" % (max(logLs), numpy.sqrt(2*max(logLs))) print "Which occurs at sample", numpy.argmax(logLs) print "This corresponds to time %.20g" % tvals[numpy.argmax(logLs)] print "The data event time is: %.20g" % sim_row.get_time_geocent() print "Difference from geocenter t_ref is %.20g" %\
if opts.pin_to_sim: P.copy_lsctables_sim_inspiral(sim_row) print "Pinned parameters from sim_inspiral" print "\tRA", P.phi, sim_row.longitude print "\tdec", P.theta, sim_row.latitude print "\tt ref %d.%d" % ( P.tref.gpsSeconds, P.tref.gpsNanoSeconds), sim_row.get_time_geocent() print "\torb phase", P.phiref, sim_row.coa_phase # ref. orbital phase print "\tinclination", P.incl, sim_row.inclination # inclination print "\tpsi", P.psi, sim_row.polarization # polarization angle print "\tdistance", P.dist / ( 1e6 * lal.PC_SI), sim_row.distance # luminosity distance logL = factored_likelihood.factored_log_likelihood(P, rholms_intp, cross_termsU, opts.l_max) print "Pinned log likelihood: %g, (%g in \"SNR\")" % (logL, numpy.sqrt(2 * logL)) tref = float(P.tref) tvals = numpy.arange(tref - 0.01, tref + 0.01, 0.00001) logLs = [] for t in tvals: P.tref = lal.LIGOTimeGPS(t) logLs.append( factored_likelihood.factored_log_likelihood( P, rholms_intp, cross_termsU, opts.l_max)) import matplotlib matplotlib.use("Agg") from matplotlib import pyplot print "Maximum logL is %g, (%g in \"SNR\")" % (max(logLs),