From c3e144359409fc9eae9bf815c4c426733d5f073b Mon Sep 17 00:00:00 2001 From: Zach Yarbrough <zach.yarbrough@ligo.org> Date: Mon, 19 Feb 2024 12:59:38 -0800 Subject: [PATCH] changes to /config/inspiral.py to handle empty snr_optimizer section of config, and to dags/layers/inspiral.py to only use snr_optimizer section of config Added snr_optimizer.ifos --- gstlal-inspiral/python/config/inspiral.py | 6 +++ .../python/dags/layers/inspiral.py | 38 +++++++++---------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/gstlal-inspiral/python/config/inspiral.py b/gstlal-inspiral/python/config/inspiral.py index caf5fe7961..75e2f19b15 100644 --- a/gstlal-inspiral/python/config/inspiral.py +++ b/gstlal-inspiral/python/config/inspiral.py @@ -51,6 +51,12 @@ class Config(BaseConfig): self.summary = dotdict(replace_keys(kwargs["summary"])) if "snr-optimizer" in kwargs: self.snr_optimizer = dotdict(replace_keys(kwargs["snr-optimizer"])) + + # check to see if snr_optimizer.source is empty + if self.snr_optimizer.source is None: + self.snr_optimizer.source = self.source + + self.snr_optimizer.ifos = list(self.snr_optimizer.source.channel_name) else: self.snr_optimizer = False diff --git a/gstlal-inspiral/python/dags/layers/inspiral.py b/gstlal-inspiral/python/dags/layers/inspiral.py index 24771d192d..d32a39df7b 100644 --- a/gstlal-inspiral/python/dags/layers/inspiral.py +++ b/gstlal-inspiral/python/dags/layers/inspiral.py @@ -1988,12 +1988,12 @@ def optimize_snr_layer(config, dag): # set up common options common_opts = [ Option("psd-fft-length", config.psd.fft_length), - Option("state-channel-name", dagutil.format_ifo_args(config.ifos, config.source.state_channel_name)), - Option("dq-channel-name", dagutil.format_ifo_args(config.ifos, config.source.dq_channel_name)), - Option("state-vector-on-bits", dagutil.format_ifo_args(config.ifos, config.source.state_vector_on_bits)), - Option("state-vector-off-bits", dagutil.format_ifo_args(config.ifos, config.source.state_vector_off_bits)), - Option("dq-vector-on-bits", dagutil.format_ifo_args(config.ifos, config.source.dq_vector_on_bits)), - Option("dq-vector-off-bits", dagutil.format_ifo_args(config.ifos, config.source.dq_vector_off_bits)), + Option("state-channel-name", dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.source.state_channel_name)), + Option("dq-channel-name", dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.source.dq_channel_name)), + Option("state-vector-on-bits", dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.source.state_vector_on_bits)), + Option("state-vector-off-bits", dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.source.state_vector_off_bits)), + Option("dq-vector-on-bits", dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.source.dq_vector_on_bits)), + Option("dq-vector-off-bits", dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.source.dq_vector_off_bits)), Option("ht-gate-threshold", 15.), Option("kafka-server", config.services.kafka_server), Option("analysis-tag", config.tag), @@ -2009,34 +2009,34 @@ def optimize_snr_layer(config, dag): for input_topic in input_topics: # set up datasource options - if config.source.data_source == "framexmit": + if config.snr_optimizer.source.data_source == "framexmit": datasource_opts = [ Option("data-source", "framexmit"), - Option("framexmit-addr", dagutil.format_ifo_args(config.ifos, config.source.framexmit_addr)), - Option("framexmit-iface", config.source.framexmit_iface), + Option("framexmit-addr", dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.snr_optimizersource.framexmit_addr)), + Option("framexmit-iface", config.snr_optimizer.source.framexmit_iface), ] - elif config.source.data_source == "lvshm": + elif config.snr_optimizer.source.data_source == "lvshm": datasource_opts = [ Option("data-source", "lvshm"), - Option("shared-memory-partition", dagutil.format_ifo_args(config.ifos, config.source.shared_memory_partition)), - Option("shared-memory-block-size", config.source.shared_memory_block_size), - Option("shared-memory-assumed-duration", config.source.shared_memory_assumed_duration), + Option("shared-memory-partition", dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.source.shared_memory_partition)), + Option("shared-memory-block-size", config.snr_optimizer.source.shared_memory_block_size), + Option("shared-memory-assumed-duration", config.snr_optimizer.source.shared_memory_assumed_duration), ] - elif config.source.data_source == "devshm": + elif config.snr_optimizer.source.data_source == "devshm": datasource_opts = [ Option("data-source", "devshm"), - Option("shared-memory-dir", dagutil.format_ifo_args(config.ifos, config.source.inj_shared_memory_dir if input_topic == "inj_uploads" else config.source.shared_memory_dir)), - Option("shared-memory-block-size", config.source.shared_memory_block_size), - Option("shared-memory-assumed-duration", config.source.shared_memory_assumed_duration), + Option("shared-memory-dir", dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.source.inj_shared_memory_dir if input_topic == "inj_uploads" else config.snr_optimizer.source.shared_memory_dir)), + Option("shared-memory-block-size", config.snr_optimizer.source.shared_memory_block_size), + Option("shared-memory-assumed-duration", config.snr_optimizer.source.shared_memory_assumed_duration), ] else: - raise ValueError(f"data source = {config.source.data_source} not valid for online jobs") + raise ValueError(f"data source = {config.snr_optimizer.source.data_source} not valid for online jobs") for jobnum in range(config.snr_optimizer.num_jobs): arguments = datasource_opts + common_opts arguments.extend([Option("input-topic", input_topic)]) arguments.extend([Option("job-tag", f"{format(jobnum, '04')}_inj_snropt" if input_topic == "inj_uploads" else f"{format(jobnum, '04')}_noninj_snropt")]) - arguments.extend([Option("channel-name", dagutil.format_ifo_args(config.ifos, config.source.inj_channel_name) if input_topic == "inj_uploads" else dagutil.format_ifo_args(config.ifos, config.source.channel_name))]) + arguments.extend([Option("channel-name", dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.source.inj_channel_name) if input_topic == "inj_uploads" else dagutil.format_ifo_args(config.snr_optimizer.ifos, config.snr_optimizer.source.channel_name))]) layer += Node( arguments = arguments, inputs = [ -- GitLab