print >> sys.stderr, "\twarning: no segments found" # # Build triangulators. The timing uncertainty of +/- 8e-5 s was # measured with lalapps_string_plot_binj and is essentially # identical for H1, H2, L1, and V1. # triangulators = stringutils.triangulators( dict((instrument, 8e-5) for instrument in contents.instruments)) # # Run likelihood ratio calculation. # ligolw_burca2.ligolw_burca2(contents, ln_likelihood_ratio, coincparamsdistributions.coinc_params, verbose=options.verbose, params_func_extra_args=(triangulators, )) # # Clean up. # contents.xmldoc.unlink() connection.close() dbtables.put_connection_filename(filename, working_filename, verbose=options.verbose)
if options.verbose: print >>sys.stderr, "\tcalculating and recording false alarm rates ..." connection.cursor().execute(""" UPDATE coinc_ringdown SET %s = ( SELECT background_rate( coinc_event.instruments, coinc_ringdown.ifos, coinc_ringdown.frequency, coinc_ringdown.snr, CASE coinc_ringdown.false_alarm_rate WHEN 0 THEN "inf" ELSE 1.0 / coinc_ringdown.false_alarm_rate END, coinc_event.likelihood ) FROM coinc_event WHERE coinc_event.coinc_event_id == coinc_ringdown.coinc_event_id ) """ % options.populate_column) connection.commit() # # close the database # connection.close() dbtables.put_connection_filename(filename, working_filename, verbose = options.verbose)
JOIN coinc_definer AS insp_coinc_definer ON (insp_coinc_definer.coinc_def_id == insp_coinc_event.coinc_def_id) JOIN coinc_definer AS sim_coinc_definer ON (sim_coinc_definer.coinc_def_id == sim_coinc_event.coinc_def_id) WHERE insp_coinc_definer.search == 'inspiral' AND sim_coinc_definer.search == 'inspiral' AND insp_coinc_definer.search_coinc_type == 0 AND sim_coinc_definer.search_coinc_type == 2 AND mapC.table_name == 'coinc_event' AND mapD.table_name == 'sim_inspiral' """): injection_likelihood.append(likelihood) injection_snr.append(snr) #livetimes = db_thinca_rings.get_thinca_livetimes(db_thinca_rings.get_thinca_rings_by_available_instruments(connection,'thinca'), db_thinca_rings.get_veto_segments(connection, 'vetoes'), db_thinca_rings.get_background_offset_vectors(connection), verbose=True) # above is the correct calculation of livetimes, but it takes a while. You can comment it out and uncomment the line below for an approximate calculation of livetime. livetimes = db_thinca_rings.get_thinca_livetimes(db_thinca_rings.get_thinca_rings_by_available_instruments(connection,'thinca'), segments.segmentlistdict(), db_thinca_rings.get_background_offset_vectors(connection), verbose=True) dbtables.put_connection_filename(filename, working_filename, verbose = True) print "number of timeslides:", len(timeslide_likelihood) print "number of zerolags:", len(zerolag_likelihood) print "number of injections:", len(injection_likelihood) all_likelihoods = numpy.array(timeslide_likelihood + zerolag_likelihood + injection_likelihood, dtype=float) timeslide_likelihoods = numpy.array(timeslide_likelihood) zerolag_likelihoods = numpy.array(zerolag_likelihood) injection_likelihoods = numpy.array(injection_likelihood) timeslide_snrs = numpy.array(timeslide_snr) zerolag_snrs = numpy.array(zerolag_snr) injection_snrs = numpy.array(injection_snr) # set all zero likelihoods to the next lowest calculated likelihood, and all infinity likelihoods to the next highest, so plotting can work plottable_likelihoods = all_likelihoods[~numpy.isinf(all_likelihoods) & (all_likelihoods > 0)] min_likelihood = plottable_likelihoods.min() max_likelihood = plottable_likelihoods.max()
time_slide WHERE time_slide.time_slide_id == insp_coinc_event.time_slide_id AND time_slide.offset != 0 ) FROM coinc_inspiral JOIN coinc_event AS insp_coinc_event ON (insp_coinc_event.coinc_event_id == coinc_inspiral.coinc_event_id) """): if is_background: timeslide_likelihood.append(likelihood) timeslide_snr.append(snr) else: zerolag_likelihood.append(likelihood) zerolag_snr.append(snr) dbtables.put_connection_filename(filename, working_filename, verbose=True) #print len(timeslide_likelihood) #print len(zerolag_likelihood) injection_likelihood = [] injection_snr = [] for filename in inj_files: local_disk = None #"/tmp" working_filename = dbtables.get_connection_filename(filename, tmp_path=local_disk, verbose=True) connection = sqlite3.connect(working_filename) dbtables.DBTable_set_connection(connection) xmldoc = dbtables.get_xml(connection) cursor = connection.cursor() for likelihood, snr in connection.cursor().execute("""