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