351 if config.geometry()
is LHCPeriod.Run1:
352 raise ValueError (
"Can't set up the MuonWorkingPointEfficiencyConfig with %s, there must be something wrong!" % config.geometry().value)
354 postfix = self.postfix
356 postfix = self.selectionName
357 if postfix !=
'' and postfix[0] !=
'_' :
358 postfix =
'_' + postfix
362 if config.dataType()
is not DataType.Data
and not self.
noEffSF:
363 alg = config.createAlgorithm(
'CP::MuonEfficiencyScaleFactorAlg',
364 'MuonEfficiencyScaleFactorAlgReco' )
365 config.addPrivateTool(
'efficiencyScaleFactorTool',
366 'CP::MuonEfficiencyScaleFactors' )
367 config.setExtraInputs ({(
'xAOD::EventInfo',
'EventInfo.RandomRunNumber')})
368 alg.scaleFactorDecoration =
'muon_reco_effSF' + postfix +
"_%SYS%"
369 alg.outOfValidity = 2
370 alg.outOfValidityDeco =
'muon_reco_bad_eff' + postfix
371 alg.efficiencyScaleFactorTool.WorkingPoint = self.
quality
372 if config.geometry() >= LHCPeriod.Run3:
373 alg.efficiencyScaleFactorTool.CalibrationRelease =
'251211_Preliminary_r24run3'
375 alg.efficiencyScaleFactorTool.CalibrationRelease =
'230213_Preliminary_r22run2'
376 alg.efficiencyScaleFactorTool.BreakDownSystematics = self.systematicBreakdown
378 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
381 'reco_effSF' + postfix)
382 sfList += [alg.scaleFactorDecoration]
385 if config.dataType()
is not DataType.Data
and self.
quality ==
'HighPt' and not self.
noEffSF:
386 alg = config.createAlgorithm(
'CP::MuonEfficiencyScaleFactorAlg',
387 'MuonEfficiencyScaleFactorAlgBMVHighPt' )
388 config.addPrivateTool(
'efficiencyScaleFactorTool',
389 'CP::MuonEfficiencyScaleFactors' )
390 alg.scaleFactorDecoration =
'muon_BadMuonVeto_effSF' + postfix +
"_%SYS%"
391 alg.outOfValidity = 2
392 alg.outOfValidityDeco =
'muon_BadMuonVeto_bad_eff' + postfix
393 alg.efficiencyScaleFactorTool.WorkingPoint =
'BadMuonVeto_HighPt'
394 if config.geometry() >= LHCPeriod.Run3:
395 alg.efficiencyScaleFactorTool.CalibrationRelease =
'220817_Preliminary_r22run3'
397 alg.efficiencyScaleFactorTool.CalibrationRelease =
'230213_Preliminary_r22run2'
398 alg.efficiencyScaleFactorTool.BreakDownSystematics = self.systematicBreakdown
400 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
402 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
403 'BadMuonVeto_effSF' + postfix)
404 sfList += [alg.scaleFactorDecoration]
407 if config.dataType()
is not DataType.Data
and self.isolation !=
'NonIso' and not self.
noEffSF:
408 alg = config.createAlgorithm(
'CP::MuonEfficiencyScaleFactorAlg',
409 'MuonEfficiencyScaleFactorAlgIsol' )
410 config.addPrivateTool(
'efficiencyScaleFactorTool',
411 'CP::MuonEfficiencyScaleFactors' )
412 alg.scaleFactorDecoration =
'muon_isol_effSF' + postfix +
"_%SYS%"
413 alg.outOfValidity = 2
414 alg.outOfValidityDeco =
'muon_isol_bad_eff' + postfix
415 alg.efficiencyScaleFactorTool.WorkingPoint = self.isolation +
'Iso'
416 if config.geometry() >= LHCPeriod.Run3:
417 alg.efficiencyScaleFactorTool.CalibrationRelease =
'251211_Preliminary_r24run3'
419 alg.efficiencyScaleFactorTool.CalibrationRelease =
'230213_Preliminary_r22run2'
420 alg.efficiencyScaleFactorTool.BreakDownSystematics = self.systematicBreakdown
422 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
424 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
425 'isol_effSF' + postfix)
426 sfList += [alg.scaleFactorDecoration]
429 if config.dataType()
is not DataType.Data
and self.trackSelection
and not self.
noEffSF:
430 alg = config.createAlgorithm(
'CP::MuonEfficiencyScaleFactorAlg',
431 'MuonEfficiencyScaleFactorAlgTTVA' )
432 config.addPrivateTool(
'efficiencyScaleFactorTool',
433 'CP::MuonEfficiencyScaleFactors' )
434 alg.scaleFactorDecoration =
'muon_TTVA_effSF' + postfix +
"_%SYS%"
435 alg.outOfValidity = 2
436 alg.outOfValidityDeco =
'muon_TTVA_bad_eff' + postfix
437 alg.efficiencyScaleFactorTool.WorkingPoint =
'TTVA'
438 if config.geometry() >= LHCPeriod.Run3:
439 alg.efficiencyScaleFactorTool.CalibrationRelease =
'251211_Preliminary_r24run3'
441 alg.efficiencyScaleFactorTool.CalibrationRelease =
'230213_Preliminary_r22run2'
442 alg.efficiencyScaleFactorTool.BreakDownSystematics = self.systematicBreakdown
444 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
446 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
447 'TTVA_effSF' + postfix)
448 sfList += [alg.scaleFactorDecoration]
451 alg = config.createAlgorithm(
'CP::AsgObjectScaleFactorAlg',
452 'MuonCombinedEfficiencyScaleFactorAlg' )
454 alg.inScaleFactors = sfList
455 alg.outScaleFactor =
'effSF' + postfix +
'_%SYS%'
456 config.addOutputVar (self.
containerName, alg.outScaleFactor,
'effSF' + postfix)