From deaf6a47d96dcb2bc5661e994ba0c8eb4898cd8e Mon Sep 17 00:00:00 2001 From: sherwood <peter.sherwood@cern.ch> Date: Tue, 26 Jun 2018 14:31:27 +0200 Subject: [PATCH] Add functions for configuring jet hypo tools TrigHLTJetHypo/python/TrigJetHypoToolConfig.py configures a subset of chains using the EtEta scenario. Raises exception if it cannot parse the chain nam. TrigHLTJetHypo/src/TrigJetHypoToolConfig_EtaEt.h remove the unused property m_matchingAlg. TrigUpgradeTest/python/MenuHypoTools.py tell the module about TrigJetHypoToolConfig Former-commit-id: 8d3a3f10086db95bbd2004aa00def900bb2e19eb --- .../python/TrigJetHypoToolConfig.py | 60 +++++++++++++++++++ .../src/TrigJetHypoToolConfig_EtaEt.h | 5 +- .../TrigUpgradeTest/python/MenuHypoTools.py | 17 ++++++ 3 files changed, 78 insertions(+), 4 deletions(-) create mode 100644 Trigger/TrigHypothesis/TrigHLTJetHypo/python/TrigJetHypoToolConfig.py diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/TrigJetHypoToolConfig.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/TrigJetHypoToolConfig.py new file mode 100644 index 000000000000..58bf966f92ec --- /dev/null +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/TrigJetHypoToolConfig.py @@ -0,0 +1,60 @@ +from TrigHLTJetHypo.TrigHLTJetHypoConf import (TrigJetHypoToolMT, + TrigJetHypoToolConfig_EtaEt) +import re + +re_EtEta0 = re.compile( + r'^HLT_j(?P<thresh>\d+)(_(?P<etalo>\d{3})eta(?P<etahi>\d{3}))?$') +# re_EtEta1 = re.compile(r'^HLT_j\d+(_\d{1-3}eta\d{3})?_L1') +# re_EtEta2 = re.compile(r'^HLT_j\d+(_\d{3}eta\d{3})?_(jes|nojcalib|lcw)*$') + + +def decodeEtEta(match, chain): + """Create a hypo tool for the Et - Eta scenario""" + default = {'etalo': '0', 'etahi': '320'} + conf_dict = match.groupdict() + for k, v in default.items(): + if k not in conf_dict: conf_dict[k] = v + if conf_dict[k] is None: conf_dict[k] = v + + conf_tool = TrigJetHypoToolConfig_EtaEt(name=chain) + conf_tool.EtThresholds = [float(conf_dict['thresh'])] + conf_tool.eta_mins = [float(conf_dict['etalo'])] + conf_tool.eta_maxs = [float(conf_dict['etahi'])] + conf_tool.asymmetricEtas = [0] + conf_tool.OutputLevel = 0 + return conf_tool + + +def trigJetHypoToolFromName(chain): + """Configure a jet hypo tool from chain name. + + Delegate to functions according to the hypo scenartio.""" + + + scenario_dict = {re_EtEta0: decodeEtEta} + for k, v in scenario_dict.items(): + match = k.match(chain) + if match: + hypo_tool = TrigJetHypoToolMT() + hypo_tool.HypoConfigurer = v(match, chain) + return hypo_tool + + msg = 'trigJetHypoToolFromName(%s) - decode error' % chain + raise NotImplementedError(msg) + + + + + +if __name__ == '__main__': + + # EtaEt hypos + # from MC_pp_v7 import TriggerFlags.JetSlice.signatures + + chains = ('HLT_j85', 'HLT_j35_320eta490', 'HLT_nonsense') + wid = max(len(c) for c in chains) + for c in chains: + try: + print '%s' % c.rjust(wid), trigJetHypoToolFromName(c) + except Exception, e: + print e diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetHypoToolConfig_EtaEt.h b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetHypoToolConfig_EtaEt.h index 23c7a81f6e93..79151d2e9086 100644 --- a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetHypoToolConfig_EtaEt.h +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigJetHypoToolConfig_EtaEt.h @@ -54,10 +54,7 @@ public extends<AthAlgTool, ITrigJetHypoToolConfig> { Gaudi::Property<std::vector<int>> m_asymmetricEtas{this, "asymmetricEtas", {}, "Apply asym. eta cuts"}; - - Gaudi::Property<std::string> - m_matchingAlg{this, "matchingAlg", {}, "matcher alg"}; - + diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/MenuHypoTools.py b/Trigger/TrigValidation/TrigUpgradeTest/python/MenuHypoTools.py index 2481a465d5cf..7603dc7caf57 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/MenuHypoTools.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/MenuHypoTools.py @@ -37,3 +37,20 @@ def TrigMufastHypoToolConf(name): #hypotool= TrigMufastHypoConfig.TrigMufastHypoToolFromName(name) hypotool.OutputLevel = DEBUG return hypotool + + + +def TrigJetHypoToolConf(name): + from AthenaCommon.Constants import DEBUG + from TrigHLTJetHypo.TrigJetHypoToolConfig import trigJetHypoToolFromName + try: + hypotool= trigJetHypoToolFromName(name) + except Exception, e: + print e + raise e + #hypotool= TrigMufastHypoConfig.TrigMufastHypoToolFromName(name) + hypotool.OutputLevel = DEBUG + return hypotool + +if __name__ == '__main__': + print TrigJetHypoToolConf('HLT_j85') -- GitLab