115def TrigDJHypoDispToolFromDict(flags, chainDict):
116 """ Use menu decoded chain dictionary to configure the tool """
117
118 name = chainDict['chainName']
119
120 cfg_name = TrigDJGetConfigValue(chainDict, "dispjetConfig")
121 cfg = config_dict[cfg_name]
122
123 if cfg is None:
124 raise RuntimeError("Unknown displaced jet config key: '{}'".format(cfg_name))
125
126 obj_cuts = object_cuts_sets[cfg["object_cuts"]]
127
128 if obj_cuts is None:
129 raise RuntimeError("Incorrectly configured displaced jet config key: '{}' Object cut set '{}' does not exist".format(cfg_name, cfg["object_cuts"]))
130
131 from AthenaConfiguration.ComponentFactory import CompFactory
132 tool = CompFactory.DisplacedJetDispHypoTool(name)
133
134
135 tool.min_trk_pt = obj_cuts["min_trk_pt"]
136 tool.trk_d0cut = obj_cuts["trk_d0cut"]
137 tool.max_z0st = obj_cuts["max_z0st"]
138 tool.d0sigcut = obj_cuts["d0_sigcut"]
139 tool.cut_name = cfg["object_cuts"]
140
141 tool.nother_frac = cfg["other_frac"]
142 tool.min_disp_trk = cfg["min_disp_trk"]
143 tool.max_prompt_trk = cfg["max_prompt_trk"]
144
145
146 if TrigDJEnableMonitoring(chainDict):
147 from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool
149
150 monTool.defineHistogram("trk_d0sig", type='TH1F', path='EXPERT', title="Track d0sig", xbins=200, xmin=0.0, xmax=200.0)
151 monTool.defineHistogram("trk_z0st", type='TH1F', path='EXPERT', title="Track z0st", xbins=200, xmin=0.0, xmax=20.0)
152 monTool.defineHistogram("trk_d0", type='TH1F', path='EXPERT', title="Track d0", xbins=200, xmin=0.0, xmax=20.0)
153 monTool.defineHistogram("nprompt", type='TH1F', path='EXPERT', title="nPrompt tracks per Jet", xbins=20, xmin=0, xmax=20)
154 monTool.defineHistogram("ndisp", type='TH1F', path='EXPERT', title="nDisplaced tracks per Jet", xbins=20, xmin=0, xmax=20)
155 monTool.defineHistogram("frac_other", type='TH1F', path='EXPERT', title="Fraction of tracks which fail all cuts", xbins=20, xmin=0, xmax=1.1)
156 monTool.defineHistogram("pass_jet_pt", type='TH1F', path='EXPERT', title="pT of Jets passing the displaced selection", xbins=35, xmin=50, xmax=400)
157 monTool.defineHistogram("pass_jet_eta", type='TH1F', path='EXPERT', title="eta of Jets passing the displaced selection", xbins=30, xmin=-3, xmax=3)
158
159 tool.MonTool = monTool
160
161 return tool
162