Skip to content
Snippets Groups Projects
Commit 97534c3e authored by Prathamesh Joshi's avatar Prathamesh Joshi
Browse files

Add ability to rewrite signal model through create_prior_diststats for rerank

parent 3b9bb4f7
No related branches found
No related tags found
2 merge requests!500First commit of gstlal_inspiral_generate_epochs,!488Draft: Online rerank dev
Pipeline #517696 passed with warnings
......@@ -230,7 +230,7 @@ else:
# fill in the numerator if we won't be making a new one
if options.df is None:
rankingstat.numerator.densities = old_numerator.densities
rankingstat.numerator.horizon_history = old_numerator.horizon_history
rankingstat.numerator.horizon_history = old_numerator.horizon_history
#
......
......@@ -116,6 +116,16 @@ elif args.command == "create":
inj_triggers = find_online(config.rank.inj_triggers_name, start = int(config.start), end = bin_dict, root = config.data.analysis_dir, svd_bins = bin_dict.keys(), subtype = "TRIGGERS")
## inverted segments are used as vetos for when the original analysis was off
#inverted_segments = find_online(config.rank.segments_name, root = os.path.join(config.data.rerank_dir, 'inverted_segments'), subtype = "TRIGGERS")
if config.prior.seed_likelihood:
ref_psd = None
svd_bank = None
if config.prior.seed_likelihood.df:
svd_bank = DataCache.find(DataType.SVD_BANK, root=filter_dir, svd_bins="*")
if config.prior.seed_likelihood.df == "bandwidth":
ref_psd = DataCache.find(DataType.REFERENCE_PSD, root=config.data.rerank_dir)
dist_stats = dag.create_prior_seed(dist_stats, svd_bank, ref_psd)
triggers += inj_triggers
triggers = dag.add_and_simplify(triggers)
triggers = dag.calc_likelihood(triggers, dist_stats)
......
......@@ -539,6 +539,47 @@ def create_prior_layer(config, dag, svd_bank_cache, median_psd_cache, dist_stat_
return prior_cache
def create_prior_seed_layer(config, dag, dist_stat_cache, svd_bank_cache=None, median_psd_cache=None):
assert 'seed_likelihood' in config.prior and config.prior.seed_likelihood is not None, "Config must have a seed-likelihood section to call the create_prior_seed_layer"
layer = Layer(
"gstlal_inspiral_create_prior_diststats",
requirements={
"request_cpus": 2,
"request_memory": 4000,
"request_disk": "2GB",
**config.condor.submit
},
transfer_files=config.condor.transfer_files,
)
if config.prior.seed_likelihood.df:
assert svd_bank_cache is not None, "svd_bank_cache cannot be None if setting config.prior.seed_likelihood.df"
if config.prior.seed_likelihood.df == "bandwidth":
assert median_psd_cache is not None, "median_psd_cache cannot be None if setting config.prior.seed_likelihood.df to 'bandwidth'"
if svd_bank_cache is not None:
svd_banks = svd_bank_cache.groupby("bin")
for svd_bin, dist_stat_file in dist_stat_cache.groupby("bin").items():
inputs = [
Option("seed-likelihood", dist_stat_file.files),
Argument("mass-model", config.prior.mass_model, track=False, suppress=True),
]
if config.prior.seed_likelihood:
inputs += [Option("svd-file", svd_banks[svd_bin].files)]
if config.prior.seed_likelihood.df == "bandwidth":
inputs += [Option("psd-xml", median_psd_cache.files)]
layer += Node(
arguments = [Option(key, value) for key, value in config.prior.seed_likelihood.items()],
inputs = inputs,
outputs = Option("write-likelihood", dist_stat_file.files),
)
dag.attach(layer)
return dist_stat_cache
def marginalize_layer(config, dag, prior_cache, dist_stat_cache):
layer = Layer(
"gstlal_inspiral_marginalize_likelihood",
......@@ -2703,6 +2744,7 @@ def layers():
"filter_injections": filter_injections_layer,
"aggregate": aggregate_layer,
"create_prior": create_prior_layer,
"create_prior_seed": create_prior_seed_layer,
"calc_pdf": calc_pdf_layer,
"marginalize": marginalize_layer,
"marginalize_pdf": marginalize_pdf_layer,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment