Restructure emulation tool for r22.0
First restructure of the TrigBtagEmulationTool. The code changes turned out to be more estensive than I was expecting at first. This is mainly just a move around of the code written by @lbeemste and removal of unused pieces of code.
Quite a big MR... it includes the following:
- Introduction of an
EmulContext
that acts as a storage for jet collections (and of any kind of collection we may want to store in the future). It contains anunordered_map<std::string, std::unique_ptr<IHolder>>
, theJetManager
s will store and retrieve collections from here -
TrigBtagEmulationJet
only stores the jet quantities, as well as a pointer to the original jet and b-tagging objects (takes no ownership) -
TrigBtagEmulationChain
only parse the trigger chain definition and stores the set of criteria -
JetManager
retrieves jets from theEventContext
and stores in theEmulContext
a vector ofTrigBtagEmulationJet
. This is obtained by merging jets and b-jets collections (<jet-collection-name>
+<jet-collection-name>"_bJets"
) -
TrigBtagEmulationTool
: moved as many methods to this class. It also owns the NN for FlavourTaggingDiscriminant
Moreover:
- Change of the tool's interface
- Converted presel jets
struct
toTrigBtagEmulationJet
- Removed support for navigation since it is not used
- Remove support for L1 jets, since for now L1 is not emulated
- Removed JetManagers for EMTopo jets (kept for presel though)
- b-tagging wps are taken directly from https://gitlab.cern.ch/atlas/athena/-/blob/master/Trigger/TrigHypothesis/TrigBjetHypo/python/TrigBjetBtagHypoTool.py and passed to the tool in the JO
- Remapping for NN is configured in the JO instead of hardcoded
- BTaggingLink can be configured in the JO, default is
btaggingLink
tagging @dguest
Edited by Carlo Varni