1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
import FWCore.ParameterSet.Config as cms
import HLTrigger.Configuration.Tools.options as _options
import HLTrigger.Configuration.Tools.confdb as _confdb
def _build_options(**args):
options = _options.HLTProcessOptions()
for key, val in args.items():
setattr(options, key, val)
return options
def getHltConfiguration(menu, **args):
args['menu'] = menu
args['fragment'] = False
options = _build_options(**args)
try:
foo = {'process': None}
exec(_confdb.HLTProcess(options).dump(), globals(), foo)
process = foo['process']
except:
raise Exception(f'query to ConfDB failed (output is not a valid python file)\n args={args}')
if not isinstance(process, cms.Process):
raise Exception(f'query to ConfDB did not return a valid HLT menu (cms.Process not found)\n args={args}')
return process
def loadHltConfiguration(process, menu, **args):
args['menu'] = menu
args['fragment'] = True
options = _build_options(**args)
try:
hlt = {'fragment': None}
exec(_confdb.HLTProcess(options).dump(), globals(), hlt)
process2 = hlt['fragment']
except:
raise Exception(f'query to ConfDB failed (output is not a valid python file)\n args={args}')
if not isinstance(process2, cms.Process):
raise Exception(f'query to ConfDB did not return a valid HLT menu (cms.Process not found)\n args={args}')
process.extend( process2 )
return process
import FWCore.ParameterSet.Config as _cms
_cms.Process.loadHltConfiguration = loadHltConfiguration
|