Skip to content
Snippets Groups Projects
Commit 4a274e79 authored by Alex Pearce's avatar Alex Pearce
Browse files

Do not run the Tesla sequence if no Turbo line fires.

For data this filter always passes, as Tesla only runs on the TURBO and
TURCAL streams, in which every event passes a Turbo line by
construction. In the simulation, however, this is not necessarily true,
so we protect the sequence from finding missing locations etc. by
filtering on Turbo decisions.
parent 5406b591
No related branches found
No related tags found
No related merge requests found
......@@ -900,6 +900,15 @@ class Tesla(LHCbConfigurableUser):
if not streams:
streams = {'': {'lines': trigger_lines}}
from DAQSys.Decoders import DecoderDB
hlt2dr_decoder = DecoderDB['HltDecReportsDecoder/Hlt2DecReportsDecoder'].setup()
# Cannot do anything if no Turbo(Calib) line fired (as then the DstData
# bank will be empty), so don't run subsequent algorithms
turbo_filter = HltDecReportsFilter('Hlt2_TeslaTurboFilter',
Code="HLT_TURBOPASS_RE('.*')")
turbo_filter_seq = GaudiSequencer('TeslaTurboFilter')
turbo_filter_seq.Members = [hlt2dr_decoder, turbo_filter]
decoders_seq = GaudiSequencer('TeslaDecoders')
if online:
decoder_names = [
......@@ -911,7 +920,6 @@ class Tesla(LHCbConfigurableUser):
if vertex_report_location == 'Hlt1':
decoder_names.insert(0, 'HltVertexReportsDecoder/Hlt1VertexReportsDecoder')
for name in decoder_names:
from DAQSys.Decoders import DecoderDB
decoder = DecoderDB[name].setup()
decoders_seq.Members.append(decoder)
......@@ -984,8 +992,9 @@ class Tesla(LHCbConfigurableUser):
),
IgnoreFilterPassed=True
)
turbo_filter_seq.Members.append(streaming_seq)
return streaming_seq
return turbo_filter_seq
def _configureOutputTurboSPStream(self, name, lines, packing, online,
raw_format_output):
......
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