3 from AnalysisAlgorithmsConfig.ConfigBlock
import ConfigBlock
4 from AnalysisAlgorithmsConfig.ConfigAccumulator
import DataType
7 """the ConfigBlock for the Xbb tagging config"""
9 super (XbbConfig, self).__init__ ()
10 self.setBlockName(
'Xbb')
11 self.addOption (
'containerName',
'', type=str,
13 info=
"the name of the input container.")
14 self.addOption(
'XbbWP',
'FlatMassQCDEff_0p25', type=str,
15 info=
"the Xbb tagging WP." )
16 self.addOption(
'Xbbtagger',
'GN2Xv01', type=str,
17 info=
"the Xbb tagger: GN2Xv01. The default is GN2Xv01")
18 self.addOption(
'calibFile',
None, type=str,
19 info=
"the calibration json file")
20 self.addOption(
'noEffSF',
False, type=bool,
21 info=
"do not apply the eff SF")
24 """Return the instance name for this block"""
25 return self.containerName +
'_' + self.XbbWP
29 jetContainer = config.originalName(self.containerName)
30 selectionName = f
'{self.Xbbtagger}_{self.XbbWP}'
32 alg = config.createAlgorithm(
'CP::XbbInformationDecoratorAlg',
'XbbInfoAlg' )
33 config.addPrivateTool(
'selectionTool',
'BTaggingSelectionJsonTool' )
34 alg.selectionTool.MaxEta = 4.5
35 alg.selectionTool.MinPt = 0.
36 alg.selectionTool.TaggerName = self.Xbbtagger
37 alg.selectionTool.JetAuthor = jetContainer
38 alg.selectionTool.OperatingPoint = self.XbbWP
39 alg.selectionTool.JsonConfigFile = self.calibFile
40 alg.preselection = config.getPreselection (self.containerName,
'')
42 alg.taggerDecisionDecoration =
'xbb_select_' + selectionName
43 alg.jets = config.readName (self.containerName)
44 config.addOutputVar (self.containerName,
'xbb_select_' + selectionName, selectionName +
'_select', noSys=
True)
46 if not self.noEffSF
and config.dataType() != DataType.Data:
47 alg = config.createAlgorithm(
'CP::XbbEfficiencyAlg',
49 config.addPrivateTool(
'efficiencyTool',
'BTaggingEfficiencyJsonTool' )
50 alg.efficiencyTool.MaxEta = 4.5
51 alg.efficiencyTool.MinPt = 0.
52 alg.efficiencyTool.TaggerName = self.Xbbtagger
53 alg.efficiencyTool.JetAuthor = jetContainer
54 alg.efficiencyTool.OperatingPoint = self.XbbWP
55 alg.efficiencyTool.JsonConfigFile = self.calibFile
56 alg.preselection = config.getPreselection (self.containerName,
'')
58 alg.scaleFactorDecoration =
'xbb_effSF_' + selectionName +
'_%SYS%'
59 alg.jets = config.readName (self.containerName)
60 config.addOutputVar (self.containerName, alg.scaleFactorDecoration, selectionName +
'_effSF')