1 import sqlite3
2 from glue.ligolw import dbtables
3 from glue.ligolw import table
4 from glue.ligolw import ilwd
5 from glue import segments
6 from pylal import SnglInspiralUtils
7 from pylal import db_thinca_rings
8 from pylal import git_version
9 from time import clock,time
10 from optparse import *
11 import glob
12 import sys
13 import random
14 import math
15
16 usage="""
17 this is a module for use in mvsc_get_doubles
18 """
19
20 __author__ = "Kari Hodge <khodge@ligo.caltech.edu>, Paul T Baker <paul.baker@ligo.org>"
21
23
24 parameters = "ds_sq delta_t df dQ gQQ gff gtt gQf gtf gtQ a_snr b_snr coinc_snr choppedl snr_sq snr_ratio a_eff_D b_eff_D eff_D_ratio delta_eff_D"
25
26 select_count="""
27 SELECT
28 COUNT(coinc_ringdown.coinc_event_id)"""
29 select_dimensions="""
30 SELECT
31 coinc_ringdown.coinc_event_id,
32 snglA.*,
33 snglB.*,
34 insp_coinc_event.time_slide_id,
35 calc_delta_t(snglA.ifo, snglA.start_time, snglA.start_time_ns, snglB.ifo, snglB.start_time, snglB.start_time_ns, insp_coinc_event.time_slide_id),
36 abs(snglA.frequency - snglB.frequency),
37 abs(snglA.Quality - snglB.Quality),
38 gQQ(snglA.Quality, snglB.Quality),
39 gff(snglA.frequency, snglB.frequency, snglA.Quality, snglB.Quality),
40 gtt(snglA.frequency, snglB.frequency, snglA.Quality, snglB.Quality),
41 gQf(snglA.frequency, snglB.frequency, snglA.Quality, snglB.Quality),
42 gtf(snglA.Quality, snglB.Quality),
43 gtQ(snglA.frequency, snglB.frequency, snglA.Quality, snglB.Quality),
44 snglA.snr,
45 snglB.snr,
46 coinc_ringdown.snr,
47 coinc_ringdown.choppedl_snr,
48 coinc_ringdown.snr_sq,
49 max(snglA.snr/snglB.snr,snglB.snr/snglA.snr),
50 snglA.eff_dist,
51 snglB.eff_dist,
52 max(snglA.eff_dist/snglB.eff_dist,snglB.eff_dist/snglA.eff_dist),
53 abs(snglA.eff_dist - snglB.eff_dist)"""
54
55
56 add_select_injections="""
57 , coinc_ringdown.start_time+coinc_ringdown.start_time_ns*.000000001,
58 process_params.value,
59 sim_ringdown.distance"""
60 add_from_injections="""
61 FROM
62 coinc_ringdown
63 JOIN coinc_event_map AS mapA ON (mapA.coinc_event_id == coinc_ringdown.coinc_event_id)
64 JOIN coinc_event_map AS mapB ON (mapB.coinc_event_id == coinc_ringdown.coinc_event_id)
65 JOIN sngl_ringdown AS snglA ON (snglA.event_id == mapA.event_id)
66 JOIN sngl_ringdown AS snglB ON (snglB.event_id == mapB.event_id)
67 JOIN coinc_event_map AS mapC ON (mapC.event_id == coinc_ringdown.coinc_event_id)
68 JOIN coinc_event_map AS mapD ON (mapD.coinc_event_id == mapC.coinc_event_id)
69 JOIN sim_ringdown ON (sim_ringdown.simulation_id == mapD.event_id)
70 JOIN coinc_event AS sim_coinc_event ON (sim_coinc_event.coinc_event_id == mapD.coinc_event_id)
71 JOIN coinc_event AS insp_coinc_event ON (insp_coinc_event.coinc_event_id == mapA.coinc_event_id)
72 JOIN coinc_definer ON (coinc_definer.coinc_def_id == sim_coinc_event.coinc_def_id)
73 JOIN process_params ON (process_params.process_id == sim_ringdown.process_id)
74 WHERE
75 mapA.table_name == 'sngl_ringdown'
76 AND mapB.table_name == 'sngl_ringdown'
77 AND mapC.table_name == 'coinc_event'
78 AND mapD.table_name == 'sim_ringdown'
79 AND snglA.ifo == ?
80 AND snglB.ifo == ?
81 AND snglA.start_time > ?
82 AND snglA.start_time < ?
83 AND (
84 (process_params.program == 'rinj' AND process_params.param == '--waveform' )
85 OR (process_params.program == 'inspinj'AND process_params.param == '--d-distr')
86 )"""
87 add_where_all="""
88 AND coinc_definer.description == ?
89 ORDER BY coinc_ringdown.start_time+coinc_ringdown.start_time_ns*.000000001"""
90 add_where_exact="""
91 AND coinc_definer.description == ?
92 ORDER BY coinc_ringdown.start_time+coinc_ringdown.start_time_ns*.000000001"""
93 add_select_fulldata="""
94 , experiment_summary.datatype"""
95 add_from_fulldata="""
96 FROM
97 coinc_ringdown
98 JOIN coinc_event_map AS mapA ON (mapA.coinc_event_id == coinc_ringdown.coinc_event_id)
99 JOIN coinc_event_map AS mapB ON (mapB.coinc_event_id == coinc_ringdown.coinc_event_id)
100 JOIN sngl_ringdown AS snglA ON (snglA.event_id == mapA.event_id)
101 JOIN sngl_ringdown AS snglB ON (snglB.event_id == mapB.event_id)
102 JOIN coinc_event AS insp_coinc_event ON (mapA.coinc_event_id == insp_coinc_event.coinc_event_id)
103 JOIN coinc_definer ON (coinc_definer.coinc_def_id == insp_coinc_event.coinc_def_id)
104 JOIN experiment_map ON (experiment_map.coinc_event_id == coinc_ringdown.coinc_event_id)
105 JOIN experiment_summary ON (experiment_summary.experiment_summ_id == experiment_map.experiment_summ_id)
106 WHERE
107 coinc_definer.search == 'ring'
108 AND coinc_definer.search_coinc_type == 0
109 AND mapA.table_name == 'sngl_ringdown'
110 AND mapB.table_name == 'sngl_ringdown'
111 AND snglA.ifo == ?
112 AND snglB.ifo == ?
113 AND snglA.start_time > ?
114 AND snglA.start_time < ?"""
115