343 if config.geometry()
is LHCPeriod.Run1:
344 raise ValueError (
"Can't set up the MuonWorkingPointEfficiencyConfig with %s, there must be something wrong!" % config.geometry().value)
346 postfix = self.postfix
348 postfix = self.selectionName
349 if postfix !=
'' and postfix[0] !=
'_' :
350 postfix =
'_' + postfix
354 if config.dataType()
is not DataType.Data
and not self.
noEffSF:
355 alg = config.createAlgorithm(
'CP::MuonEfficiencyScaleFactorAlg',
356 'MuonEfficiencyScaleFactorAlgReco' )
357 config.addPrivateTool(
'efficiencyScaleFactorTool',
358 'CP::MuonEfficiencyScaleFactors' )
359 config.setExtraInputs ({(
'xAOD::EventInfo',
'EventInfo.RandomRunNumber')})
360 alg.scaleFactorDecoration =
'muon_reco_effSF' + postfix +
"_%SYS%"
361 alg.outOfValidity = 2
362 alg.outOfValidityDeco =
'muon_reco_bad_eff' + postfix
363 alg.efficiencyScaleFactorTool.WorkingPoint = self.
quality
364 if config.geometry() >= LHCPeriod.Run3:
365 alg.efficiencyScaleFactorTool.CalibrationRelease =
'251211_Preliminary_r24run3'
367 alg.efficiencyScaleFactorTool.CalibrationRelease =
'230213_Preliminary_r22run2'
368 alg.efficiencyScaleFactorTool.BreakDownSystematics = self.systematicBreakdown
370 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
373 'reco_effSF' + postfix)
374 sfList += [alg.scaleFactorDecoration]
377 if config.dataType()
is not DataType.Data
and self.
quality ==
'HighPt' and not self.
noEffSF:
378 alg = config.createAlgorithm(
'CP::MuonEfficiencyScaleFactorAlg',
379 'MuonEfficiencyScaleFactorAlgBMVHighPt' )
380 config.addPrivateTool(
'efficiencyScaleFactorTool',
381 'CP::MuonEfficiencyScaleFactors' )
382 alg.scaleFactorDecoration =
'muon_BadMuonVeto_effSF' + postfix +
"_%SYS%"
383 alg.outOfValidity = 2
384 alg.outOfValidityDeco =
'muon_BadMuonVeto_bad_eff' + postfix
385 alg.efficiencyScaleFactorTool.WorkingPoint =
'BadMuonVeto_HighPt'
386 if config.geometry() >= LHCPeriod.Run3:
387 alg.efficiencyScaleFactorTool.CalibrationRelease =
'220817_Preliminary_r22run3'
389 alg.efficiencyScaleFactorTool.CalibrationRelease =
'230213_Preliminary_r22run2'
390 alg.efficiencyScaleFactorTool.BreakDownSystematics = self.systematicBreakdown
392 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
394 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
395 'BadMuonVeto_effSF' + postfix)
396 sfList += [alg.scaleFactorDecoration]
399 if config.dataType()
is not DataType.Data
and self.isolation !=
'NonIso' and not self.
noEffSF:
400 alg = config.createAlgorithm(
'CP::MuonEfficiencyScaleFactorAlg',
401 'MuonEfficiencyScaleFactorAlgIsol' )
402 config.addPrivateTool(
'efficiencyScaleFactorTool',
403 'CP::MuonEfficiencyScaleFactors' )
404 alg.scaleFactorDecoration =
'muon_isol_effSF' + postfix +
"_%SYS%"
405 alg.outOfValidity = 2
406 alg.outOfValidityDeco =
'muon_isol_bad_eff' + postfix
407 alg.efficiencyScaleFactorTool.WorkingPoint = self.isolation +
'Iso'
408 if config.geometry() >= LHCPeriod.Run3:
409 alg.efficiencyScaleFactorTool.CalibrationRelease =
'251211_Preliminary_r24run3'
411 alg.efficiencyScaleFactorTool.CalibrationRelease =
'230213_Preliminary_r22run2'
412 alg.efficiencyScaleFactorTool.BreakDownSystematics = self.systematicBreakdown
414 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
416 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
417 'isol_effSF' + postfix)
418 sfList += [alg.scaleFactorDecoration]
421 if config.dataType()
is not DataType.Data
and self.trackSelection
and not self.
noEffSF:
422 alg = config.createAlgorithm(
'CP::MuonEfficiencyScaleFactorAlg',
423 'MuonEfficiencyScaleFactorAlgTTVA' )
424 config.addPrivateTool(
'efficiencyScaleFactorTool',
425 'CP::MuonEfficiencyScaleFactors' )
426 alg.scaleFactorDecoration =
'muon_TTVA_effSF' + postfix +
"_%SYS%"
427 alg.outOfValidity = 2
428 alg.outOfValidityDeco =
'muon_TTVA_bad_eff' + postfix
429 alg.efficiencyScaleFactorTool.WorkingPoint =
'TTVA'
430 if config.geometry() >= LHCPeriod.Run3:
431 alg.efficiencyScaleFactorTool.CalibrationRelease =
'251211_Preliminary_r24run3'
433 alg.efficiencyScaleFactorTool.CalibrationRelease =
'230213_Preliminary_r22run2'
434 alg.efficiencyScaleFactorTool.BreakDownSystematics = self.systematicBreakdown
436 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
438 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
439 'TTVA_effSF' + postfix)
440 sfList += [alg.scaleFactorDecoration]
443 alg = config.createAlgorithm(
'CP::AsgObjectScaleFactorAlg',
444 'MuonCombinedEfficiencyScaleFactorAlg' )
446 alg.inScaleFactors = sfList
447 alg.outScaleFactor =
'effSF' + postfix +
'_%SYS%'
448 config.addOutputVar (self.
containerName, alg.outScaleFactor,
'effSF' + postfix)