diff --git a/CHANGES.rst b/CHANGES.rst index 71ca446657213435603879516c958e5175147649..bdf3f32047e72fc9d3360cef30349167d13a8050 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -53,8 +53,9 @@ Changelog listener. - Use sky map from preferred event rather than superevent, triggering off - EM_READY label instead of SKYMAP_READY. If SKYMAP_READY is applied, we - will once again try to get the GW sky map from the superevent. + EM_READY label instead of SKYMAP_READY. If SKYMAP_READY is applied or if a + sky map file is added to the superevent, we will once again try to get the + GW sky map from the superevent. - Update bilby and bilby_pipe to 2.1.0 and 1.0.10 respectively. The number of spline nodes for calibration errors is increased to 10 thanks to the bilby diff --git a/gwcelery/tasks/external_triggers.py b/gwcelery/tasks/external_triggers.py index 2a57ee34fe558de9fa266482fe353942657c4ea5..61861547f3979bd56fcbcaba6bf284ea5b83df6b 100644 --- a/gwcelery/tasks/external_triggers.py +++ b/gwcelery/tasks/external_triggers.py @@ -387,7 +387,8 @@ def handle_grb_igwn_alert(alert): if REQUIRED_LABELS_BY_TASK['compare'].issubset( set(external_event['labels'])): _relaunch_raven_pipeline_with_skymaps( - superevent, external_event, graceid) + superevent, external_event, graceid, + use_superevent=True) else: if REQUIRED_LABELS_BY_TASK['compare'].issubset( set(external_event['labels'])): @@ -488,8 +489,9 @@ def _launch_external_detchar(event): return event -def _relaunch_raven_pipeline_with_skymaps(superevent, ext_event, graceid): - """Relaunch the RAVEN sky map comparision workflow, include recalculating +def _relaunch_raven_pipeline_with_skymaps(superevent, ext_event, graceid, + use_superevent=False): + """Relaunch the RAVEN sky map comparison workflow, include recalculating the joint FAR with updated sky map info and create a new combined sky map. Parameters @@ -500,6 +502,9 @@ def _relaunch_raven_pipeline_with_skymaps(superevent, ext_event, graceid): external event dictionary graceid: str GraceDB ID of event + use_superevent: bool + If True, always use skymap info from superevent + regardless of SKYMAP_READY label. """ gw_group = superevent['preferred_event_data']['group'] @@ -521,6 +526,7 @@ def _relaunch_raven_pipeline_with_skymaps(superevent, ext_event, graceid): canvas |= external_skymaps.create_combined_skymap.si( superevent['superevent_id'], ext_event['graceid'], preferred_event=( - superevent['preferred_event'] if - 'SKYMAP_READY' not in ext_event['labels'] else None)) + None if 'SKYMAP_READY' in ext_event['labels'] + or use_superevent + else superevent['preferred_event'])) canvas.delay() diff --git a/gwcelery/tests/test_tasks_external_triggers.py b/gwcelery/tests/test_tasks_external_triggers.py index dcef01a981a70db96a4a88da4486b05fa67a6697..3562669f6fbea8d8e7ab382fde4abde29ee6d033 100644 --- a/gwcelery/tests/test_tasks_external_triggers.py +++ b/gwcelery/tests/test_tasks_external_triggers.py @@ -419,7 +419,7 @@ def test_handle_rerun_combined_skymap(mock_create_combined_skymap, external_triggers.handle_grb_igwn_alert(alert) if graceid == 'S1': mock_create_combined_skymap.assert_has_calls( - [call('S1', 'E1', preferred_event='G1'), + [call('S1', 'E1', preferred_event=None), call('S1', 'E3', preferred_event=None)] ) elif graceid in {'E1', 'E3'}: