Services for keeping track of line persistence requests
This is inspired by the comments in LBHLT-233, but is extended to include the persistence of reconstructed objects in addition to raw banks. Instead of public tools, services are used as this is where Gaudi is going.
We have one interface ILinePersistenceSvc
that defines two methods for the moment:
-
locationsToPersist(const HltDecReports&, const std::set<std::string>& lines)
returns the union of locations that were requested by all lines fromlines
that fired in the given HltDecReports object. -
rawBanksToPersist(const HltDecReports&, const std::set<std::string>& lines)
returns the union of the requested raw banks for all lines fromlines
that fired in the given HltDecReports object.
There are two implementations HltLinePersistenceSvc
and TCKLinePersistenceSvc
,
following loosely HltANNSvc
and TCKANNSvc
.
The first takes care of the Moore use case and is configured by the TCK,
and the second is meant to be used offline and uses the TCK in the HltDecReports
to "configure itself".
The configuration of HltLinePersistenceSvc
consists of:
-
Locations
-- a map{DecisionName: list of locations}
-
RawBankTypes
-- a map{DecisionName: list of raw bank type names}
TODOs:
-
Consider passing list of lines to the methods. As is now, one has to "filter" the HltDecReports
before passing them to the service. It would probably be more efficient to pass the lines and let the service do the filtering. Interface changed accordingly -
Consider changing the return type of locationsToPersist
. The implementation oflocationsToPersist
will have to eliminate duplicates, which makes the current (vector of vectors) return type inappropriate. Interface changed accordingly -
Think how to most efficiently construct desired result. -
Write more documentation. Interface is documented. -
Write a test for TCKLinePersistenceSvc
. A test forHltLinePersistenceSvc
exists.