Skip to content
Snippets Groups Projects
Commit 92774c01 authored by Jameson Rollins's avatar Jameson Rollins
Browse files

brs plugin cleanup

* move config to config module (so it's more easily available elsewhere)
* properly map station and axis
parent c2d8e24e
No related branches found
No related tags found
No related merge requests found
......@@ -226,6 +226,62 @@ LPY_CHANNELS = ifochans(LPY_CHANNELS)
##################################################
BRS_SEARCH_WINDOW = [-30, 5]
BRS_THRESHOLD = 15
# H1 checks single status channel that says what combination of BRSX/BRSY is
# being used
if IFO == 'H1':
BRS_CONFIG = {
'ETMX': {
'axis': 'RY',
'skip_states': {65},
},
'ETMY': {
'axis': 'RX',
'skip_states': {60},
},
}
for station in BRS_CONFIG:
BRS_CONFIG[station]['state_chan'] = 'H1:GRD-SEI_CONF_REQUEST_N'
BRS_CONFIG[station]['skip_states'] |= {10, 17, 45}
# L1 checks status channels for each individual BRS (ETMs and ITMs) that says
# whether it's being used
elif IFO == 'L1':
BRS_CONFIG = {
'ITMX': {
'axis': 'RY',
'state_chan': 'L1:ISI-ITMX_ST1_SENSCOR_X_FADE_CUR_CHAN_MON',
},
'ETMX': {
'axis': 'RY',
'state_chan': 'L1:ISI-ETMX_ST1_SENSCOR_Y_FADE_CUR_CHAN_MON',
},
'ITMY': {
'axis': 'RX',
'state_chan': 'L1:ISI-ITMY_ST1_SENSCOR_Y_FADE_CUR_CHAN_MON',
},
'ETMY': {
'axis': 'RX',
'state_chan': 'L1:ISI-ETMY_ST1_SENSCOR_Y_FADE_CUR_CHAN_MON',
},
}
for station in BRS_CONFIG:
BRS_CONFIG[station]['skip_states'] = {8, 9}
for station, params in BRS_CONFIG.items():
BRS_CONFIG[station]['channels'] = [
'{}:ISI-GND_BRS_{}_{}_BLRMS_{}'.format(
IFO, station, params['axis'], ending) \
for ending in [
'100M_300M',
'300M_1',
'1_3',
]]
##################################################
BOARD_SAT_CM = [
'mediumseagreen',
'cornflowerblue',
......
......@@ -8,63 +8,6 @@ from .. import config
from .. import data
from .. import plotutils
#################################################
CHANNEL_ENDINGS = [
'100M_300M',
'300M_1',
'1_3',
]
# H1 checks single status channel that says what combination of BRSX/BRSY is
# being used
if config.IFO == 'H1':
CONFIG = {
'ETMX': {
'skip_states': {65},
},
'ETMY': {
'skip_states': {60},
},
}
for station in CONFIG:
CONFIG[station]['state_chan'] = 'H1:GRD-SEI_CONF_REQUEST_N'
CONFIG[station]['skip_states'] |= {10, 17, 45}
AXES = ['RY', 'RX']
# L1 checks status channels for each individual BRS (ETMs and ITMs) that says
# whether it's being used
elif config.IFO == 'L1':
CONFIG = {
'ITMX': {
'state_chan': 'L1:ISI-ITMX_ST1_SENSCOR_X_FADE_CUR_CHAN_MON',
},
'ETMX': {
'state_chan': 'L1:ISI-ETMX_ST1_SENSCOR_Y_FADE_CUR_CHAN_MON',
},
'ITMY': {
'state_chan': 'L1:ISI-ITMY_ST1_SENSCOR_Y_FADE_CUR_CHAN_MON',
},
'ETMY': {
'state_chan': 'L1:ISI-ETMY_ST1_SENSCOR_Y_FADE_CUR_CHAN_MON',
},
}
for station in CONFIG:
CONFIG[station]['skip_states'] = {8, 9}
AXES = ['RY', 'RX', 'RY', 'RX']
for station in CONFIG:
channels = []
for axis in AXES:
for ending in CHANNEL_ENDINGS:
channels.append('{}:ISI-GND_BRS_{}_{}_BLRMS_{}'.format(config.IFO, station, axis, ending))
CONFIG[station]['channels'] = channels
THRESHOLD = 15
SEARCH_WINDOW = [-30, 5]
#################################################
def check_brs(event):
"""Checks for BRS glitches at both end stations.
......@@ -76,9 +19,9 @@ def check_brs(event):
plotutils.set_rcparams()
segment = Segment(SEARCH_WINDOW).shift(int(event.gps))
segment = Segment(config.BRS_SEARCH_WINDOW).shift(int(event.gps))
for station, params in CONFIG.items():
for station, params in config.BRS_CONFIG.items():
# fetch all data (state and data)
channels = [params['state_chan']] + params['channels']
try:
......@@ -94,16 +37,17 @@ def check_brs(event):
if state in params['skip_states']:
logging.info('{} not using sensor correction during lockloss'.format(station))
continue
del buf_dict[params['state_chan']]
# look for glitches
max_brs = 0
thresh_crossing = segment[1]
for channel, buf in buf_dict.items():
max_brs = max([max_brs, max(buf.data)])
if any(buf.data > THRESHOLD):
if any(buf.data > config.BRS_THRESHOLD):
logging.info('BRS GLITCH DETECTED in {}'.format(channel))
event.add_tag('BRS_GLITCH')
glitch_idx = np.where(buf.data > THRESHOLD)[0][0]
glitch_idx = np.where(buf.data > config.BRS_THRESHOLD)[0][0]
glitch_time = buf.tarray[glitch_idx]
thresh_crossing = min(glitch_time, thresh_crossing)
......@@ -118,7 +62,7 @@ def check_brs(event):
lw=2,
)
ax.axhline(
THRESHOLD,
config.BRS_THRESHOLD,
linestyle='--',
color='black',
label='BRS glitch threshold',
......
% rebase('base.tpl', IFO=IFO, web_script=web_script, date=date, online_status=online_status)
% import os
% import glob
% from datetime import timedelta
% from locklost import config
% from locklost.web.utils import analysis_status_button, event_plot_urls
......@@ -98,43 +97,24 @@
<hr />
<div class="container">
<br />
% has_tag = False
% if event.has_tag('BRS_GLITCH'):
% has_tag = True
% end
% if config.IFO == 'H1':
% brs_plots, endstation_used = [], {'ETMX':True, 'ETMY':True}
% elif config.IFO == 'L1':
% brs_plots, endstation_used = [], {'ETMX':True, 'ETMY':True, 'ITMX':True, 'ITMY':True}
% end
% for endstation in endstation_used:
% brs_url = event.url('brs_{}.png'.format(endstation))
% if os.path.exists(event.path('brs_{}.png'.format(endstation))):
% brs_plots.append(brs_url)
% brs_plots = []
% brs_unused = []
% for station in config.BRS_CONFIG:
% if os.path.exists(event.path('brs_{}.png'.format(station))):
% brs_plots.append(event.url('brs_{}.png'.format(station)))
% else:
% endstation_used[endstation] = False
% brs_unused.append(station)
% end
% end
<p>{{endstation_used}}</p>
% if any(status is True for status in endstation_used.values()):
<div class="row">
% include('collapsed_plots.tpl', title ='BRS plots', id='brs', plots=brs_plots, size=5, section='main', expand=has_tag)
</div>
% end
% for endstation, used in endstation_used.items():
% if used is False:
<br/>
<div class="row">
<p>{{endstation}} not using sensor correction during lockloss</p>
</div>
% end
<div class="row">
% include('collapsed_plots.tpl', title ='BRS plots', id='brs', plots=brs_plots, size=5, section='main', expand=event.has_tag('BRS_GLITCH'))
</div>
% for station in brs_unused:
<br/>
<div class="row">
<p>{{station}} not using sensor correction during lockloss</p>
</div>
% end
% for endstation in ['ETMX', 'ETMY']:
% brs_url = event.url('brs_{}.png'.format(endstation))
% brs_plots.append(brs_url)
% end
% include('collapsed_plots.tpl', title ='BRS plots', id='brs', plots=brs_plots, size=5, expand=has_tag, section='main')
</div>
<!-- analog board saturation plot -->
......
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