8def qgTagAlgCfg(configFlags, **kwargs):
9
10 acc = ComponentAccumulator()
11
12
13 sysService = CompFactory.CP.SystematicsSvc("SystematicsSvc")
14 acc.addService(sysService)
15
16
17 jets_container = "AntiKt4EMPFlowJets"
18
19
20 config_file = kwargs['cfg_file']
21
22
23 run = kwargs['run']
24
25
26 wps_file = 'QGTagger_WPs_' + run + '.root'
27 wps_histo = "QGTransformer_ConstScore__" + kwargs['WP'] + "WP"
28
29
30 tool_args = {}
31
32 histo2D = HistoInputCfg(configFlags, "histo2D",
33 inputFile = kwargs['calib_path'] + '/' + wps_file,
34 histName = wps_histo,
35 varX = "pt", varY = "eta",
36 InterpType="None")
37
38 tool_args.setdefault("HistoReader2D", histo2D)
39
40
41 tool_args.setdefault("jetPtMin", 20.)
42 tool_args.setdefault("jetPtMax", 2000.)
43 tool_args.setdefault("jetEtaMax", 4.5)
44
45
46 tool_args.setdefault("ConfigFile", config_file)
47 tool_args.setdefault("ContainerName", jets_container)
48 tool = acc.popToolsAndMerge(BJTToolCfg(kwargs, **tool_args))
49
50
51 if kwargs['addSFs']:
52
53 sfs_histo = "QGTransformer_ConstScore__" + kwargs['WP'] + "WP"
54
55
56 sfs_tool_args = {}
57
58 histo2D = {}
59 for parton in ['quark', 'gluon']:
60 for eff in ['eff', 'ineff']:
61
62 sfs_file = 'SF_' + eff + '_' + parton + '_' + run + '.root'
63
64 histo2D[parton + '_' + eff] = HistoInputCfg(configFlags, "histo2D",
65 inputFile = kwargs['calib_path'] + '/' + sfs_file,
66 histName = sfs_histo,
67 varX = "pt", varY = "eta",
68 InterpType="None")
69 sfs_tool_args.setdefault("HistoReader2D_" + parton + "_" + eff, histo2D[parton + '_' + eff])
70
71
72 sfs_tool_args.setdefault("JetContainer", jets_container)
73 sfs_tool_args.setdefault("TaggedName", "QGTransformer_Tagged")
74 sfs_tool_args.setdefault("Efficiency", "QGTransformer_Efficiency")
75 sfs_tool_args.setdefault("Inefficiency", "QGTransformer_Inefficiency")
76 sfs_tool_args.setdefault("truthLabelName", "PartonTruthLabelID")
77 sfs_tool_args.setdefault("jetPtMin", 20.)
78 sfs_tool_args.setdefault("jetPtMax", 2000.)
79 sfs_tool_args.setdefault("jetEtaMax", 4.5)
80 sfs_tool = acc.popToolsAndMerge(BJTSFToolCfg(kwargs, **sfs_tool_args))
81
82
83 algo_args = {}
84 algo_args.setdefault("tagger", tool)
85 if kwargs['addSFs']:
86 algo_args.setdefault("scalefactor", sfs_tool)
87 algo_args.setdefault("jets", jets_container)
88 acc.addEventAlgo(CompFactory.BJT.BoostedJetTaggerAlg("qgAlg", **algo_args))
89
90 return acc
91