6 def BTagToolCfg(flags, TaggerList, PrimaryVertexCollectionName="", scheme = '', useBTagFlagsDefaults = True):
7 """Adds a new myBTagTool instance and registers it.
9 input: jetcol: The name of the jet collections.
10 ToolSvc: The ToolSvc instance.
11 options: Python dictionary of options to be passed to the BTagTool.
12 (note the options storeSecondaryVerticesInJet is passed to the removal tool instead)
14 The following default options exist:
16 BTagLabelingTool default: None
17 storeSecondaryVerticesInJet default: BTaggingFlags.writeSecondaryVertices
19 output: The btagtool for the desired jet collection."""
25 if 'IP2D' in TaggerList:
26 from JetTagTools.IP2DTagConfig
import IP2DTagCfg
27 ip2dtool = acc.popToolsAndMerge(
IP2DTagCfg(flags,
'IP2DTag', scheme))
28 tagToolList.append(ip2dtool)
32 if 'IP2DNeg' in TaggerList:
33 from JetTagTools.IP2DTagConfig
import IP2DTagCfg
34 ip2dnegtool = acc.popToolsAndMerge(
IP2DTagCfg(flags,
'IP2DNegTag' ,scheme,FlipOption=
'NEGATIVE_IP_ONLY'))
35 tagToolList.append(ip2dnegtool)
37 if 'IP2DFlip' in TaggerList:
38 from JetTagTools.IP2DTagConfig
import IP2DTagCfg
39 ip2dfliptool = acc.popToolsAndMerge(
IP2DTagCfg(flags,
'IP2DFlipTag' ,scheme,FlipOption=
'FLIP_SIGN'))
40 tagToolList.append(ip2dfliptool)
42 if 'IP3D' in TaggerList:
43 from JetTagTools.IP3DTagConfig
import IP3DTagCfg
44 ip3dtool = acc.popToolsAndMerge(
IP3DTagCfg(flags,
'IP3DTag', PrimaryVertexCollectionName, scheme))
45 tagToolList.append(ip3dtool)
47 if 'IP3DNeg' in TaggerList:
48 from JetTagTools.IP3DTagConfig
import IP3DTagCfg
49 ip3dnegtool = acc.popToolsAndMerge(
IP3DTagCfg(flags,
'IP3DNegTag', PrimaryVertexCollectionName, scheme,FlipOption=
'NEGATIVE_IP_ONLY'))
50 tagToolList.append(ip3dnegtool)
52 if 'IP3DFlip' in TaggerList:
53 from JetTagTools.IP3DTagConfig
import IP3DTagCfg
54 ip3dfliptool = acc.popToolsAndMerge(
IP3DTagCfg(flags,
'IP3DFlipTag', PrimaryVertexCollectionName, scheme,FlipOption=
'FLIP_SIGN'))
55 tagToolList.append(ip3dfliptool)
57 if 'SV1' in TaggerList:
58 from JetTagTools.SV1TagConfig
import SV1TagCfg
59 sv1tool = acc.popToolsAndMerge(
SV1TagCfg(flags,
'SV1Tag', scheme))
60 tagToolList.append(sv1tool)
62 if 'SV1Flip' in TaggerList:
63 from JetTagTools.SV1TagConfig
import SV1TagCfg
64 sv1fliptool = acc.popToolsAndMerge(
SV1TagCfg(flags,
'SV1FlipTag', scheme))
65 tagToolList.append(sv1fliptool)
67 if 'MultiSVbb1' in TaggerList:
68 from JetTagTools.MultiSVTagConfig
import MultiSVTagCfg
69 multisvbb1tool = acc.popToolsAndMerge(
MultiSVTagCfg(flags,
'MultiSVbb1Tag',
'MultiSVbb1', scheme))
70 tagToolList.append(multisvbb1tool)
72 if 'MultiSVbb2' in TaggerList:
73 from JetTagTools.MultiSVTagConfig
import MultiSVTagCfg
74 multisvbb2tool = acc.popToolsAndMerge(
MultiSVTagCfg(flags,
'MultiSVbb2Tag',
'MultiSVbb2', scheme))
75 tagToolList.append(multisvbb2tool)
78 mvtm_taggers = [
'MV2c00',
'MV2c10',
'MV2c20',
'MV2c10mu',
'MV2m',
'DL1',
'DL1mu']
79 mvtm_active_taggers =
list(
set(mvtm_taggers) &
set(TaggerList))
80 if len(mvtm_active_taggers) > 0:
81 from JetTagTools.MultivariateTagManagerConfig
import MultivariateTagManagerCfg
83 tagToolList.append(mvtm)
86 if useBTagFlagsDefaults:
87 defaults = {
'vxPrimaryCollectionName' : PrimaryVertexCollectionName,
88 'TagToolList' : tagToolList,
90 for option
in defaults:
91 options.setdefault(option, defaults[option])
92 options[
'name'] =
'btag'
93 btagtool = CompFactory.Analysis.BTagTool(**options)
94 acc.setPrivateTools(btagtool)