239 def __init__ (self) :
240 super (InDetTrackWorkingPointConfig, self).__init__ ()
241 self.addOption ('containerName', '', type=str,
242 noneAction='error',
243 info="the name of the input container.",
244 meta={'role':'containerRef'})
245 self.addOption ('selectionName', '', type=str,
246 noneAction='error',
247 info="the name of the track selection to define (e.g. `tightPrimary` "
248 "or `loose`).",
249 meta={'role':'selection'})
250 self.addOption ('postfix', None, type=str,
251 info="a postfix to apply to decorations and algorithm names. "
252 "Typically not needed here as `selectionName` is used internally.")
253 self.addOption ('cutLevel', None, type=str,
254 noneAction='error',
255 info="the selection WP to use. Supported WPs for general "
256 "use: `Loose` and `TightPrimary`. For expert studies, further "
257 "WPs are available: `NoCut`, `LoosePrimary`, `LooseElectron`, "
258 "`LooseMuon`, `LooseTau`, `MinBias`, `HILoose`, `HITight`, "
259 "`HILooseOptimized`, `HITightOptimized`.",
260 expertMode=["NoCut", "LoosePrimary", "LooseElectron",
261 "LooseMuon", "LooseTau", "MinBias", "HILoose", "HITight",
262 "HILooseOptimized", "HITightOptimized"],
263 meta={'choices':(['Loose','TightPrimary','NoCut','LoosePrimary','LooseElectron','LooseMuon','LooseTau','MinBias','HILoose','HITight','HILooseOptimized','HITightOptimized'],1)})
264 self.addOption ('additionalCuts', None, type=dict,
265 info="additional cuts to modify the selection WP. Only meant for "
266 "expert studies of track selection. Passed as pairs of `cutName: value`. "
267 "For an overview of available cuts, see twiki.cern.ch/twiki/bin/viewauth/"
268 "AtlasProtected/InDetTrackSelectionTool#List_of_possible_cuts.",
269 expertMode=True)
270 self.addOption ('vertexContainer', None, type=str,
271 info="A vertex collection to be used by the additionalCuts. The leading "
272 "primary vertex is passed to the selectionTool to calculate the distance "
273 "in the maxZ0 cuts.",
274 expertMode=True)
275 self.addOption ('runTruthFilter', True, type=bool,
276 info="whether to run the `TruthFilterTool`. This tool is only compatible "
277 "with the cut levels `Loose` and `TightPrimary`.")
278 self.addOption ('calibFile', None, type=str,
279 info="name of the calibration file to use for efficiencies "
280 "in the `TruthFilter` tool. Expert option to override the "
281 "recommendations based on the campaign.",
282 expertMode=True)
283 self.addOption ('filterToolSeed', None, type=int,
284 info="random seed to be used by the `InDetTrackTruthFilterTool`.",
285 expertMode=True)
286 self.addOption ('fFakeLoose', None, type=float,
287 info="the fraction of fake tracks in the `Loose` working point. "
288 "Will be used by the `InDetTrackTruthFilterTool`. Expert option to "
289 "override the recommendations.",
290 expertMode=True)
291 self.addOption ('fFakeTight', None, type=float,
292 info="the fraction of fake tracks in the `TightPrimary` working "
293 "point. Will be used by the `InDetTrackTruthFilterTool`. Expert option "
294 "to override the recommendations.",
295 expertMode=True)
296 self.addOption ('trkEffSystScale', None, type=float,
297 info="the track efficiency systematic scale. Will be used "
298 "by the `InDetTrackTruthFilterTool`. Expert option to override the "
299 "recommendations.",
300 expertMode=True)
301 self.addOption ('addSelectionToPreselection', True, type=bool,
302 info="whether to retain only tracks satisfying the `cutLevel` "
303 "requirements.")
304