Skip to content

Tupling trigger and event information in FunTuple with ThOr functors

There has been a discussion on mattermost, on how to store trigger, TISTOS and event info with functors and FunTuple.

@graven mention's that there is currently a functor brewing that returns the decision of HLT1/2 line taking DecReport as input (see !2598 (merged)). However @sstahl points that in FunTuple the functors take candidate as input and not DecReport. Gerhard suggests in this comment that we have "wrapper" functor with a DataHandle as input, that gets configured with a set of functors and which forwards the information it grabs from the DataHandle to the embedded functors -- effectively turning a collection of functors that take say T as input from the TES into a collection that takes no (external) input -- and this can be passed to FunTuple without templating on what it has to grab from the TES, as FunTuple would no longer itself (directly) access the TES.

However, I feel this is quite a radical solution (given functor JIT compilation times) and since in FunTuple we always handle candidate level info, why not map a candidate -> DecReport, passing this map to a new functor that outputs std::map<std::string, int> with decisions on user-defined lines.

@gligorov adds that for TISTOS, one should also need SelReport but are redundant in HLT2, if we choose to always persist the candidates which caused the trigger to fire.

FYI: @pkoppenb and @erodrigu

Edited by Gerhard Raven