From 267073e78a1cc1f19a46ffc5f3e4876153f94ddd Mon Sep 17 00:00:00 2001 From: Kipp Cannon <kipp.cannon@ligo.org> Date: Wed, 15 Nov 2017 02:45:03 -0600 Subject: [PATCH] thinca: drop use of search_summary table --- lalapps/src/inspiral/lalapps_thinca.py | 1 + lalinspiral/python/lalinspiral/thinca.py | 40 +++++++++--------------- 2 files changed, 16 insertions(+), 25 deletions(-) diff --git a/lalapps/src/inspiral/lalapps_thinca.py b/lalapps/src/inspiral/lalapps_thinca.py index 1f7e03fa89..407fb8b27b 100644 --- a/lalapps/src/inspiral/lalapps_thinca.py +++ b/lalapps/src/inspiral/lalapps_thinca.py @@ -236,6 +236,7 @@ for n, filename in enumerate(filenames, start = 1): coinc_definer_row = thinca.InspiralCoincDef, thresholds = options.threshold, ntuple_comparefunc = ntuple_comparefunc, + seglists = None, # FIXME veto_segments = vetoes, min_instruments = options.min_instruments, verbose = options.verbose diff --git a/lalinspiral/python/lalinspiral/thinca.py b/lalinspiral/python/lalinspiral/thinca.py index 44e93fba43..95ede85be7 100644 --- a/lalinspiral/python/lalinspiral/thinca.py +++ b/lalinspiral/python/lalinspiral/thinca.py @@ -33,7 +33,6 @@ import sys from glue.ligolw import ligolw from glue.ligolw import lsctables -from glue.ligolw.utils import search_summary as ligolw_search_summary from glue.ligolw.utils import coincs as ligolw_coincs from glue import offsetvector from lalburst import snglcoinc @@ -132,17 +131,8 @@ class InspiralCoincTables(snglcoinc.CoincTables): self.coinc_inspiral_table = lsctables.New(lsctables.CoincInspiralTable) xmldoc.childNodes[0].appendChild(self.coinc_inspiral_table) - # - # extract the coalesced out segment lists from the trigger - # generator - # - - self.seglists = ligolw_search_summary.segmentlistdict_fromsearchsummary(xmldoc, program = program).coalesce() - if vetoes is not None: - self.seglists -= vetoes - - def coinc_rows(self, process_id, time_slide_id, coinc_def_id, events): + def coinc_rows(self, process_id, time_slide_id, coinc_def_id, events, seglists = None): coinc, coincmaps = super(InspiralCoincTables, self).coinc_rows(process_id, time_slide_id, coinc_def_id, events) # @@ -171,11 +161,15 @@ class InspiralCoincTables(snglcoinc.CoincTables): # # record the instruments that were on at the time of the - # coinc. note that the start time of the coinc must be - # unslid to compare with the instrument segment lists + # coinc. instruments that provide triggers are, by + # definition, on. note that the end time of the coinc + # must be unslid to compare with the instrument segment + # lists # - coinc.insts = set(event.ifo for event in events) | set(instrument for instrument, segs in self.seglists.items() if end - offsetvector[instrument] in segs) + coinc.insts = set(event.ifo for event in events) + if seglists is not None: + coinc.insts |= set(instrument for instrument, segs in seglists.items() if end - offsetvector[instrument] in segs) # # if a likelihood ratio calculator is available, assign a @@ -346,6 +340,7 @@ def ligolw_thinca( coinc_definer_row, thresholds, ntuple_comparefunc = InspiralCoincTables.ntuple_comparefunc, + seglists = None, veto_segments = None, likelihood_func = None, likelihood_params_func = None, @@ -387,6 +382,9 @@ def ligolw_thinca( sngl_inspiral_table = lsctables.SnglInspiralTable.get_table(xmldoc) if veto_segments is not None: sngl_inspiral_table = (event for event in sngl_inspiral_table if event.ifo not in veto_segments or event.end not in veto_segments[event.ifo]) + if seglists is not None: + # don't do in-place + seglists = seglists - veto_segments eventlists = snglcoinc.EventListDict(InspiralEventList, sngl_inspiral_table, instruments = instruments) # @@ -402,7 +400,7 @@ def ligolw_thinca( for node, coinc in time_slide_graph.get_coincs(eventlists, thresholds, verbose = verbose): if not ntuple_comparefunc(coinc, node.offset_vector): - coinc, coincmaps, coinc_inspiral = coinc_tables.coinc_rows(process_id, node.time_slide_id, coinc_def_id, coinc) + coinc, coincmaps, coinc_inspiral = coinc_tables.coinc_rows(process_id, node.time_slide_id, coinc_def_id, coinc, seglists = seglists) if min_log_L is None or coinc.likelihood >= min_log_L: coinc_tables.append_coinc(coinc, coincmaps, coinc_inspiral) @@ -489,7 +487,6 @@ class sngl_inspiral_coincs(object): self.process_table = lsctables.ProcessTable.get_table(xmldoc) self.process_params_table = lsctables.ProcessParamsTable.get_table(xmldoc) - self.search_summary_table = lsctables.SearchSummaryTable.get_table(xmldoc) self.sngl_inspiral_table = lsctables.SnglInspiralTable.get_table(xmldoc) self.coinc_def_table = lsctables.CoincDefTable.get_table(xmldoc) self.coinc_event_table = lsctables.CoincTable.get_table(xmldoc) @@ -498,15 +495,14 @@ class sngl_inspiral_coincs(object): self.time_slide_table = lsctables.TimeSlideTable.get_table(xmldoc) # - # index the process, process params, search_summary, - # sngl_inspiral and time_slide tables + # index the process, process params, sngl_inspiral and + # time_slide tables # self.process_index = dict((row.process_id, row) for row in self.process_table) self.process_params_index = {} for row in self.process_params_table: self.process_params_index.setdefault(row.process_id, []).append(row) - self.search_summary_index = dict((row.process_id, row) for row in self.search_summary_table) self.sngl_inspiral_index = dict((row.event_id, row) for row in self.sngl_inspiral_table) self.time_slide_index = {} for row in self.time_slide_table: @@ -589,7 +585,6 @@ class sngl_inspiral_coincs(object): # subclass, not a DBTable subclass new_process_table = ligolw_elem.appendChild(lsctables.New(lsctables.ProcessTable, self.process_table.columnnames)) new_process_params_table = ligolw_elem.appendChild(lsctables.New(lsctables.ProcessParamsTable, self.process_params_table.columnnames)) - new_search_summary_table = ligolw_elem.appendChild(lsctables.New(lsctables.SearchSummaryTable, self.search_summary_table.columnnames)) new_sngl_inspiral_table = ligolw_elem.appendChild(lsctables.New(lsctables.SnglInspiralTable, self.sngl_inspiral_table.columnnames)) new_coinc_def_table = ligolw_elem.appendChild(lsctables.New(lsctables.CoincDefTable, self.coinc_def_table.columnnames)) new_coinc_event_table = ligolw_elem.appendChild(lsctables.New(lsctables.CoincTable, self.coinc_event_table.columnnames)) @@ -614,11 +609,6 @@ class sngl_inspiral_coincs(object): except KeyError: # process_params rows are optional pass - try: - new_search_summary_table.append(self.search_summary_index[process_id]) - except KeyError: - # search_summary rows are optional - pass return newxmldoc -- GitLab