From 39c95e34d8c56840c490cb0282e8cedf03ba3e15 Mon Sep 17 00:00:00 2001 From: sherwood <peter.sherwood@cern.ch> Date: Fri, 22 May 2020 16:12:45 +0200 Subject: [PATCH] adding support for HT chain condiguration --- .../python/chainDict2jetLabel.py | 81 ++++++++++++++++--- .../python/testChainDictMaker.py | 14 ++++ .../HLTMenuConfig/Menu/SignatureDicts.py | 3 +- 3 files changed, 87 insertions(+), 11 deletions(-) diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/chainDict2jetLabel.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/chainDict2jetLabel.py index 3fb405fe03b0..ec59f29204ec 100644 --- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/chainDict2jetLabel.py +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/chainDict2jetLabel.py @@ -276,6 +276,69 @@ def _make_dijet_label(chain_parts): )""" % argvals +def _make_ht_label(chain_parts): + """ht label. ht cuts, and cuts on particpating jets + Currently supported cuts: + - all jets: ht + - all jets: et + - all jets: eta + + - default values are used for unspecified cuts. + The cut set can be extended according to the pattern + """ + + assert len(chain_parts) == 1 + scenario = chain_parts[0]['hypoScenario'] + + assert scenario.startswith('ht') + + arg_res = [ + re.compile(r'^(?P<lo>\d*)(?P<key>ht)(?P<hi>\d*)$'), + re.compile(r'^(?P<lo>\d*)(?P<key>et)(?P<hi>\d*)$'), + re.compile(r'^(?P<lo>\d*)(?P<key>eta)(?P<hi>\d*)$'), + ] + + defaults = { + 'ht': ('0', 'inf'), + 'et': ('0', 'inf'), + 'eta': ('0', 'inf'), + } + + + args = _args_from_scenario(scenario) + argvals = {} + while args: + assert len(args) == len(arg_res) + arg = args.pop() + for r in arg_res: + m = r.match(arg) + if m is not None: + arg_res.remove(r) + gd = m.groupdict() + key = gd['key'] + + try: + lo = float(gd['lo']) + except ValueError: + lo = defaults[key][0] + argvals[key+'lo'] = lo + try: + hi = float(gd['hi']) + except ValueError: + hi = defaults[key][1] + argvals[key+'hi'] = hi + + assert len(args) == len(arg_res) + assert len(args) == 0 + + return """ + ht([(%(htlo).0fht) + (%(etlo).0fet%(ethi).0f) + (%(etalo).0feta%(etahi).0f) + ])""" % argvals + + + def _make_combinationsTest_label(chain_parts): """make test label for combinations helper with two simple children.""" @@ -369,16 +432,13 @@ def _tests(): print('\n--------- _tests() starts _______') - from TriggerMenuMT.HLTMenuConfig.Menu import DictFromChainName - from TrigHLTJetHypo.ChainLabelParser import ChainLabelParser - chain_names = ( 'HLT_j85_L1J20', # 'HLT_j80_0eta240_2j60_320eta490_L1J20', # ``'HLT_j85_j70_L1J20', 'HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20', 'HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20', - + 'HLT_j0_ht1000htSEP100etSEP0eta333', ) @@ -401,9 +461,6 @@ def _tests1(): print('\n--------- _tests1() starts _______') - from TriggerMenuMT.HLTMenuConfig.Menu import DictFromChainName - from TrigHLTJetHypo.ChainLabelParser import ChainLabelParser - chain_name = 'HLT_j85_L1J20' chain_dict = DictFromChainName.dictFromChainName(chain_name) @@ -422,9 +479,6 @@ def _tests1(): def _tests2(): print('\n--------- _tests2() starts _______') - from TriggerMenuMT.HLTMenuConfig.Menu import DictFromChainName - from TrigHLTJetHypo.ChainLabelParser import ChainLabelParser - chain_name = 'HLT_j85_L1J20' chain_dict = DictFromChainName.dictFromChainName(chain_name) @@ -442,6 +496,13 @@ def _tests2(): if __name__ == '__main__': + from TriggerMenuMT.HLTMenuConfig.Menu.Physics_pp_run3_v1 import ( + SingleJetGroup, + MultiJetGroup) + + from TriggerMenuMT.HLTMenuConfig.Menu.ChainDefInMenu import ChainProp + from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import dictFromChainName + _tests() _tests1() _tests2() diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/testChainDictMaker.py b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/testChainDictMaker.py index 4e0dde308cff..16e9268551be 100644 --- a/Trigger/TrigHypothesis/TrigHLTJetHypo/python/testChainDictMaker.py +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/python/testChainDictMaker.py @@ -18,9 +18,17 @@ def testChainDictMaker(): ChainProp(name='HLT_j80_j60_L1J15', l1SeedThresholds=['FSNOSEED']*2, groups=MultiJetGroup), + ChainProp(name='HLT_j0_HT1000htSEP100etSEP0eta320_L1J15', + l1SeedThresholds=['FSNOSEED'], groups=MultiJetGroup), + + ChainProp(name='HLT_j80_0eta240_2j60_320eta490_j0_dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass_L1J20', l1SeedThresholds=['FSNOSEED']*3, groups=MultiJetGroup), + + ChainProp(name='HLT_j0_vbenfSEP30etSEP34mass35SEP50fbet_L1J20', + l1SeedThresholds=['FSNOSEED']*3, + groups=MultiJetGroup), ] result = [] @@ -29,3 +37,9 @@ def testChainDictMaker(): result.append((cp.name, chain_dict)) return result + +if __name__ == '__main__': + dicts = testChainDictMaker() + for d in dicts: + print + print d diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py index 0376aae89c7b..f91598aa726e 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/SignatureDicts.py @@ -122,7 +122,8 @@ JetChainParts = { 'trkopt' : ['notrk','ftk','ftkrefit','ftf'], 'hypoScenario' : ['simple', 'vbenf', 'vbenfSEP30etSEP34mass35SEP50fbet', - 'dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass'], + 'dijetSEP80j1etSEP0j1eta240SEP80j2etSEP0j2eta240SEP700djmass', + 'HT1000htSEP100etSEP0eta320'], 'smc' : ['30smcINF', '35smcINF', '40smcINF', '50smcINF', '60smcINF', 'nosmc'], } -- GitLab