A helper class providing a DPL completion policy definition for the TPC sector data
The class can be used as a functor creating the CompletionPolicy object based on the parameters provided to the constructor.
TPC data is split on the level of sectors. For processors requiring the full data set like e.g. the tracker, DPL will synchronize complete data sets from the input routes. Multiple O2 messages can be received on one input route, a custom completion policy is needed to define the complete data set. All TPC data except raw data is sent with a specific TPCSectorHeader on the header stack describing the current sector and defining the active sectors in the setup. The completion policy callback will wait until there is data for all active sectors.
If config flag ConFig::RequireAll is specified in the constructor parameters, data from all inputs will be required in addition to the matching TPC sector policy. With this flag, the policy can be used for processors with TPC input and other inputs, without checking for complex multimessages on the other inputs.
Parameters: processor name rexexp to match a name of the processor for which the policy should be applied input matchers provided as an argument pack Note: it is important to use ConcreteDataTypeMatcher to define input spec with wildcard on subSpecification config param Parameters like Config::RequireAll Usage: TPCSectorCompletionPolicy("processor-name-regexp", TPCSectorCompletionPolicy::Config::RequireAll, InputSpec{"", ConcreteDataTypeMatcher{"DET", "RAWDATA"}}, ...)();
Definition at line 69 of file TPCSectorCompletionPolicy.h.