diff --git a/gstlal-inspiral/bin/gstlal_inspiral_rerank_pipe b/gstlal-inspiral/bin/gstlal_inspiral_rerank_pipe index ab658940e81a9693153aa8539a2943cb29eb6cdb..267d1d6586b5b44d73437cb15bed4f28544106e6 100755 --- a/gstlal-inspiral/bin/gstlal_inspiral_rerank_pipe +++ b/gstlal-inspiral/bin/gstlal_inspiral_rerank_pipe @@ -86,6 +86,11 @@ def parse_command_line(): parser.add_option("--verbose", action = "store_true", help = "Be verbose") parser.add_option("--ranking-stat-samples", metavar = "N", default = 2**24, type = "int", help = "Construct ranking statistic histograms by drawing this many samples from the ranking statistic generator (default = 2^24).") + # veto options + parser.add_option("--vetoes", metavar = "filename", help = "Set the veto xml file.") + parser.add_option("--frame-segments-file", metavar = "filename", help = "Set the name of the LIGO light-weight XML file from which to load frame segments. Optional iff --data-source=frames") + parser.add_option("--frame-segments-name", metavar = "name", help = "Set the name of the segments to extract from the segment tables. Required iff --frame-segments-file is given") + # FIXME: uhhhhh... yeah parser.add_option("--injections", action = "append", help = "append injection files to analyze. Must prepend filename with X:Y:, where X and Y are floats, e.g. 1.2:3.1:filename, so that the injections are only searched for in regions of the template bank with X <= chirp mass < Y.") @@ -249,7 +254,7 @@ if __name__ == '__main__': # Setup clustering and/or merging # after all of the likelihood ranking and preclustering is finished put everything into single databases based on the injection file (or lack thereof) - injdbs, noninjdb, final_sqlite_nodes, dbs_to_delete = inspiral_pipe.sql_cluster_and_merge_layer(dag, jobs, likelihood_nodes, ligolw_add_nodes, options, boundary_seg, instruments) + injdbs, noninjdb, final_sqlite_nodes, dbs_to_delete = inspiral_pipe.sql_cluster_and_merge_layer(dag, jobs, likelihood_nodes, [], options, boundary_seg, instruments) # Compute FAR farnode = inspiral_pipe.compute_far_layer(dag, jobs, final_marg_nodes, injdbs, noninjdb, final_sqlite_nodes, options) diff --git a/gstlal-inspiral/python/inspiral_pipe.py b/gstlal-inspiral/python/inspiral_pipe.py index 289955b3539db338253c9b203b84bf28a121a593..2a4037126569cf3bfa4050654a27017d2f1bc92a 100644 --- a/gstlal-inspiral/python/inspiral_pipe.py +++ b/gstlal-inspiral/python/inspiral_pipe.py @@ -41,6 +41,7 @@ # imports # +from collections import defaultdict import copy import doctest import functools @@ -619,7 +620,7 @@ def marginalize_layer(dag, jobs, svd_nodes, lloid_output, lloid_diststats, optio svd_file = one_ifo_svd_nodes[bin_key].output_files["write-svd"] else: parent_nodes = model_node - svd_file = dagparts.T050017_filename(ifo, '%s_SVD' % bin_key, boundary_arg, '.xml.gz', path = jobs['svd'].output_path) + svd_file = dagparts.T050017_filename(instrument_set[0], '%s_SVD' % bin_key, boundary_seg, '.xml.gz', path = jobs['svd'].output_path) # FIXME we keep this here in case we someday want to have a # mass bin dependent prior, but it really doesn't matter for @@ -1033,7 +1034,7 @@ def webserver_url(): def load_analysis_output(options): # load triggers - bgbin_lloid_map = {} + bgbin_lloid_map = defaultdict(dict) for ce in map(CacheEntry, open(options.lloid_cache)): try: bgbin_idx, _, inj = ce.description.split('_', 2) @@ -1041,7 +1042,7 @@ def load_analysis_output(options): bgbin_idx, _ = ce.description.split('_', 1) inj = None finally: - bgbin_lloid_map.setdefault(sim_tag_from_inj_file(inj), []).append(ce.path) + bgbin_lloid_map[sim_tag_from_inj_file(inj)].setdefault(bgbin_idx, []).append((ce.path, [])) # load dist stats lloid_diststats = {} @@ -1062,6 +1063,10 @@ def load_analysis_output(options): for i, individual_svd_cache in enumerate(ce.path for ce in map(CacheEntry, open(svd_caches))): svd_dtdphi_map["%04d" % (i+bin_offset)] = options.dtdphi_file[j] + # modify injections option, as is done in 'adapt_inspiral_output' + # FIXME: don't do this, find a cleaner way of handling this generally + options.injections = [inj.split(':')[-1] for inj in options.injections] + return bgbin_lloid_map, lloid_diststats, svd_dtdphi_map, instrument_set, boundary_seg