358 def __init__ (self) :
359 super (MuonWorkingPointEfficiencyConfig, self).__init__ ()
360 self.setBlockName('MuonWorkingPointEfficiency')
361 self.addDependency('MuonWorkingPointSelection', required=True)
362 self.addDependency('EventSelection', required=False)
363 self.addDependency('EventSelectionMerger', required=False)
364 self.addOption ('containerName', '', type=str,
365 noneAction='error',
366 info="the name of the input container.",
367 meta={'role':'containerRef'})
368 self.addOption ('selectionName', '', type=str,
369 noneAction='error',
370 info="the name of the muon selection to define (e.g. `tight` or `loose`).",
371 meta={'role':'selection'})
372 self.addOption ('postfix', None, type=str,
373 info="a postfix to apply to decorations and algorithm names. "
374 "Typically not needed here as `selectionName` is used internally.")
375 self.addOption ('trackSelection', True, type=bool,
376 info="whether or not to set up an instance of "
377 "`CP::AsgLeptonTrackSelectionAlg`, with the recommended $d_0$ and "
378 r"$z_0\sin\theta$ cuts.")
379 self.addOption ('quality', None, type=str,
380 info="the ID WP to use. Supported ID WPs: `Tight`, `Medium`, "
381 "`Loose`, `LowPt`, `HighPt`.",
382 meta={'choices':(['Tight','Medium','Loose','LowPt','HighPt'],1)})
383 self.addOption ('isolation', None, type=str,
384 info="the isolation WP to use. Supported isolation WPs: "
385 "`PflowLoose_VarRad`, `PflowTight_VarRad`, `Loose_VarRad`, "
386 "`Tight_VarRad`, `NonIso`.",
387 meta={'choices':(['PflowLoose_VarRad','PflowTight_VarRad','Loose_VarRad','Tight_VarRad','NonIso'],1)})
388 self.addOption ('systematicBreakdown', False, type=bool,
389 info="enables the full breakdown of efficiency SF systematics "
390 "(1 NP per uncertainty source, instead of 1 NP in total).")
391 self.addOption ('noEffSF', False, type=bool,
392 info="disables the calculation of efficiencies and scale factors. "
393 "Experimental! Only useful to test a new WP for which scale "
394 "factors are not available.",
395 expertMode=True)
396 self.addOption ('saveDetailedSF', True, type=bool,
397 info="save all the independent detailed object scale factors.")
398 self.addOption ('saveCombinedSF', False, type=bool,
399 info="save the combined object scale factor.")
400 self.addOption('useLRT', False, type=bool,
401 info="apply the LRT-specific reco/ID efficiency SF treatment. When "
402 "set (and quality is Medium, the only WP supported for LRT muons), "
403 "the reco SF tool routes per-muon via the isLRT flag and uses the "
404 "LRT-specific CalibrationRelease.")
405