Skip to content
Snippets Groups Projects
Commit 77f95cf8 authored by Deep Chatterjee's avatar Deep Chatterjee
Browse files

readd back superevent query times config variable

parent 6321de58
No related branches found
No related tags found
No related merge requests found
......@@ -94,6 +94,12 @@ superevent_d_t_end = {'gstlal': 1.0,
"""Pipeline based upper extent of superevent segments
For cwb and lib this is decided from extra attributes."""
superevent_query_d_t_start = 100.
"""Lower extent of superevents query"""
superevent_query_d_t_end = 100.
"""Upper extent of superevents query"""
superevent_default_d_t_start = 1.0
"""Default lower extent of superevent segments"""
......
......@@ -91,13 +91,13 @@ def process(payload):
"""
event_info = payload['object']
gid = event_info['graceid']
category = get_category(event_info)
t_0, t_start, t_end = get_ts(event_info)
if event_info.get('superevent'):
sid = event_info['superevent']
log.info('Event %s already belongs to superevent %s', gid, sid)
# superevent_neighbours has current and nearby superevents
s = event_info['superevent_neighbours'][sid]
s = gracedb.get_superevent(sid)
superevent = _SuperEvent(s['t_start'],
s['t_end'],
s['t_0'],
......@@ -109,11 +109,11 @@ def process(payload):
t_end=None)
else:
log.info('Event %s does not yet belong to a superevent', gid)
# note that superevent_neightbours contain nearby superevents
# in the same category
superevent_neighbors = event_info['superevent_neighbours']
for s in superevent_neighbors.values():
superevents = gracedb.get_superevents('category: {} {} .. {}'.format(
category,
event_info['gpstime'] - app.conf['superevent_query_d_t_start'],
event_info['gpstime'] + app.conf['superevent_query_d_t_end']))
for s in superevents:
if gid in s['gw_events']:
sid = s['superevent_id']
log.info('Event %s found assigned to superevent %s', gid, sid)
......@@ -138,7 +138,7 @@ def process(payload):
else: # s not in superevents
event_segment = _Event(t_start, t_end, t_0, event_info['graceid'])
superevent = _partially_intersects(superevent_neighbors.values(),
superevent = _partially_intersects(superevents,
event_segment)
if superevent:
......@@ -182,6 +182,28 @@ def process(payload):
gracedb.create_label(FROZEN_LABEL, sid)
def get_category(event):
"""Get the superevent category for an event.
Parameters
----------
event : dict
Event dictionary (e.g., the return value from
:meth:`gwcelery.tasks.gracedb.get_event`).
Returns
-------
{'mdc', 'test', 'production'}
"""
if event.get('search') == 'MDC':
return 'mdc'
elif event['group'] == 'Test':
return 'test'
else:
return 'production'
def get_ts(event):
"""Get time extent of an event, depending on pipeline-specific parameters.
......
......@@ -312,6 +312,8 @@ def _mock_event(event):
@patch('gwcelery.tasks.gracedb.get_superevent',
lambda _: _mock_superevent_data)
@patch('gwcelery.tasks.gracedb.get_superevents',
lambda _: [_mock_superevent_data])
def test_upload_same_event():
"""New event uploaded with the same coinc file as an
existing event G000002. The second upload should be added to
......@@ -442,15 +444,18 @@ def test_parse_trigger_cbc_1():
data=event_dictionary,
alert_type='new',
uid='G000000')
superevent_reponse = patch(
superevent_response = patch(
'gwcelery.tasks.gracedb.get_superevent',
return_value=SUPEREVENTS_NEIGHBOURS['S0039'])
with superevent_reponse, \
with superevent_response, \
patch('gwcelery.tasks.gracedb.add_event_to_superevent') as p1, \
patch('gwcelery.tasks.gracedb.update_superevent') as p2:
patch('gwcelery.tasks.gracedb.update_superevent') as p2, \
patch('gwcelery.tasks.gracedb.get_superevents',
return_value=SUPEREVENTS_NEIGHBOURS.values()) as p3:
superevents.handle(payload)
p1.assert_called_once()
p2.assert_not_called()
p3.assert_called_once()
def test_parse_trigger_cbc_2():
......@@ -476,20 +481,23 @@ def test_parse_trigger_cbc_2():
data=event_dictionary,
alert_type='new',
uid='G000003')
superevent_reponse = patch(
superevent_response = patch(
'gwcelery.tasks.gracedb.get_superevent',
return_value=SUPEREVENTS_NEIGHBOURS['S0039'])
# addEventToSuperevent should be called
# preferred event should be updated, t_0 should change
with superevent_reponse, \
with superevent_response, \
patch('gwcelery.tasks.gracedb.add_event_to_superevent') as p1, \
patch('gwcelery.tasks.gracedb.update_superevent') as p2, \
patch('gwcelery.tasks.gracedb.get_superevents',
return_value=SUPEREVENTS_NEIGHBOURS.values()) as p3, \
patch('gwcelery.tasks.gracedb.create_label.run') as create_label:
superevents.handle(payload)
p1.assert_called_once()
p2.assert_called_once_with('S0039', preferred_event='G000003',
t_0=1163905224.4332082)
p3.assert_called_once()
create_label.assert_called_once_with('ADVREQ', 'S0039')
if superevents.is_complete(event_dictionary):
create_label.assert_called_once_with('EM_READY', 'S0039')
......@@ -522,10 +530,13 @@ def test_parse_trigger_cbc_3():
uid='G000001')
# G000001 absent in any superevent window, new superevent created
# createSuperevent should be called exactly once
with patch('gwcelery.tasks.gracedb.create_superevent') as p, \
with patch('gwcelery.tasks.gracedb.create_superevent') as p1, \
patch('gwcelery.tasks.gracedb.get_superevents',
return_value=SUPEREVENTS_NEIGHBOURS.values()) as p2, \
patch('gwcelery.tasks.gracedb.create_label'):
superevents.handle(payload)
p.assert_called_once()
p1.assert_called_once()
p2.assert_called_once()
def test_parse_trigger_cbc_4():
......@@ -589,12 +600,15 @@ def test_parse_trigger_burst_1():
# superevent window should change
with superevent_response, \
patch('gwcelery.tasks.gracedb.add_event_to_superevent') as p1, \
patch('gwcelery.tasks.gracedb.update_superevent') as p2:
patch('gwcelery.tasks.gracedb.update_superevent') as p2, \
patch('gwcelery.tasks.gracedb.get_superevents',
return_value=SUPEREVENTS_NEIGHBOURS.values()) as p3:
superevents.handle(payload)
p1.assert_called_once()
p2.assert_called_once_with('S0039',
t_end=pytest.approx(1163905239, abs=1),
t_start=pytest.approx(1163905214, abs=1))
p3.assert_called_once()
def test_parse_trigger_burst_2():
......@@ -629,12 +643,15 @@ def test_parse_trigger_burst_2():
with superevent_response, \
patch('gwcelery.tasks.gracedb.add_event_to_superevent') as p1, \
patch('gwcelery.tasks.gracedb.update_superevent') as p2:
patch('gwcelery.tasks.gracedb.update_superevent') as p2, \
patch('gwcelery.tasks.gracedb.get_superevents',
return_value=SUPEREVENTS_NEIGHBOURS.values()) as p3:
superevents.handle(payload)
p1.assert_called_once()
p2.assert_called_once_with('S0039',
t_end=pytest.approx(1163905239, abs=1),
t_start=pytest.approx(1163905214, abs=1))
p3.assert_called_once()
def test_parse_trigger_burst_3():
......@@ -734,10 +751,13 @@ def test_S190421ar_spiir_scenario(): # noqa: N802
with superevent_response, \
patch('gwcelery.tasks.gracedb.add_event_to_superevent') as p1, \
patch('gwcelery.tasks.gracedb.update_superevent') as p2:
patch('gwcelery.tasks.gracedb.update_superevent') as p2, \
patch('gwcelery.tasks.gracedb.get_superevents',
return_value=SUPEREVENTS_NEIGHBOURS.values()) as p3:
superevents.handle(payload)
p1.assert_called_once()
p2.assert_not_called()
p3.assert_called_once()
def test_inj_means_should_not_publish():
......
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