HLT2 and Sprucing lines -prefilters and passthrough
Add HLT2 and Sprucing compatible line prefilter.
- Changes the
HLT2Line
class to insert aHltDecReportsFilter
at the beginning of the line objectalgs[]
. - Class variables are different between
Hlt2Line
andSpruceLine
to locate Hlt1 and Hlt2 DecReports respectively and to allow checks on correct usage. - Beginnings of HLT1 filter for Sprucing lines, but commented out and forbidden for now
Unit tests
- Unit test for HLT1 prefilter in HLT2 job already exists,
Hlt/Hlt1Conf/tests/qmtest/persistency.qms/hlt2_read_hlt1_filtered_mdf.qmt
, and has been updated using the new implementation. - Unit test
Hlt/Hlt2Conf/tests/qmtest/test_spruce_Hlt2filter.qmt
for filtering on HLT2 lines in Sprucing. Checks stdout counters
Allow a pass through HLT2 line
Allow a pass through HLT2 line that can request persistreco
such as
def all_tracks(name="Hlt2piLine"):
return Hlt2Line(name=name, prescale=1,algs=[],persistreco=True)
-
https://gitlab.cern.ch/lhcb/Moore/-/blob/330bf1f0b8dfa8db22a74c7a9e09b7ff6175b757/Hlt/Moore/python/Moore/lines.py#L314 means that such a line is defined as a
physics_lines
and so gets passed topersist_line_outputs
and thenHltLinePersistenceSvc
Unit tests
- Unit tests for HLT2 pass through line that persists reconstruction
Hlt/Hlt2Conf/tests/qmtest/test_hlt2_passthro_persistreco.qmt
andHlt/Hlt2Conf/tests/qmtest/test_hlt2_passthro_persistreco_output.qmt
Allow a Sprucing rate test
- Follows from !938 (closed)
- Put a 5000 evt run of
Hlt/Hlt2Conf/options/Sprucing/hlt2_2or3bodytopo_realtime.py
in/eos/lhcb/wg/rta/samples/mc/Hlt1Hlt2filtered_MinBias_sprucing
. (This should be updated periodically) -
spruce_all_lines_realtime.py
then runs all sprucing lines
Unit tests
-
Hlt/Hlt2Conf/tests/qmtest/test_spruce_all_lines_realtime.qmt
assesses the rates of sprucing lines using prepared files on/eos/lhcb/wg/rta/samples/mc/Hlt1Hlt2filtered_MinBias_sprucing/
and throws an error if its "too big" - Note that
Hlt/Hlt2Conf/tests/qmtest/test_spruce_check.qmt
tests the persistency using "live" HLT2 output
Clean ups
- Changed the
Hlt/Hlt2Conf/options/hlt2_2or3bodytopo_[fromfile, realtime].py
to output MDF as will be in production. Changed dependent Sprucing options files accordingly - Moved Sprucing options to own folder
For next MR instead as this one is getting big...
- Add pass through for Sprucing which will be Tesla - note the issue with the
DstBank
killer. ModifyHlt/Hlt2Conf/tests/qmtest/test_spruce_passthroughline.qmt
for this. Think about !932 (comment 4651223) - Add HLT1 filter to sprucing and unit test see !932 (comment 4699334)
Notes
This builds on @mstahl 's !899 (closed)
and
- See https://gitlab.cern.ch/lhcb-dpa/project/-/issues/82 for HLT2 line prefilters
- See https://gitlab.cern.ch/lhcb-dpa/project/-/issues/126 for mdf sprucing unit tests
- See https://gitlab.cern.ch/lhcb-dpa/project/-/issues/22 for Tesla functionality
- See https://gitlab.cern.ch/lhcb-dpa/project/-/issues/90 for Bandwidth and rate tests for Sprucing
Edited by Eduardo Rodrigues