428 def makeAlgs (self, config) :
430 if config.dataType()
is not DataType.Data:
437 if self.includeAllYearsPerRun:
438 years = [
int(year)
for year
in self.triggerChainsPerYear.
keys()]
440 from TriggerAnalysisAlgorithms.TriggerAnalysisSFConfig
import (
444 triggerYearStartBoundaries = {
455 triggerConfigYears = {}
456 from TriggerAnalysisAlgorithms.TriggerAnalysisConfig
import is_year_in_current_period
461 triggerChains = self.triggerChainsPerYear.
get(
int(year), self.triggerChainsPerYear.
get(
str(year), []))
462 for chain
in triggerChains:
463 chain = chain.replace(
" || ",
"_OR_")
464 chain_noHLT = chain.replace(
"HLT_",
"")
465 chain_out = chain_noHLT
if self.removeHLTPrefix
else chain
466 legs = triggerDict[chain_noHLT]
468 if chain_noHLT.startswith(
'mu')
and chain_noHLT[2].isdigit:
470 triggerConfigs[chain_out] = chain
471 if chain_out
in triggerConfigYears.keys():
472 triggerConfigYears[chain_out].
append(year)
474 triggerConfigYears[chain_out] = [year]
477 if leg.startswith(
'mu')
and leg[2].isdigit:
479 leg_out = leg
if self.removeHLTPrefix
else f
"HLT_{leg}"
480 triggerConfigs[leg_out] = f
"HLT_{leg}"
481 if leg_out
in triggerConfigYears.keys():
482 triggerConfigYears[leg_out].
append(year)
484 triggerConfigYears[leg_out] = [year]
486 for trig_short, trig
in triggerConfigs.items():
487 alg = config.createAlgorithm(
'CP::MuonTriggerEfficiencyScaleFactorAlg',
488 'MuonTrigEfficiencyCorrectionsAlg_' + trig_short)
489 config.addPrivateTool(
'efficiencyScaleFactorTool',
490 'CP::MuonTriggerScaleFactors' )
493 alg.efficiencyScaleFactorTool.MuonQuality = self.muonID
494 alg.efficiencyScaleFactorTool.AllowZeroSF =
True
497 if self.includeAllYearsPerRun:
499 alg.maxRunNumber = 999999
501 if triggerConfigYears[trig_short][0] != years[0]:
502 alg.minRunNumber = triggerYearStartBoundaries.get(triggerConfigYears[trig_short][0], 999999)
503 if triggerConfigYears[trig_short][-1] != years[-1]:
504 alg.maxRunNumber = triggerYearStartBoundaries.get(triggerConfigYears[trig_short][-1] + 1, 999999)
505 elif config.campaign()
is Campaign.MC20a:
506 if triggerConfigYears[trig_short] == [2015]:
507 alg.maxRunNumber = 290000
508 elif triggerConfigYears[trig_short] == [2016]:
509 alg.minRunNumber = 290000
513 alg.scaleFactorDecoration = f
"muon_{self.prefixSF}_{trig_short}_%SYS%"
515 alg.mcEfficiencyDecoration = f
"muon_{self.prefixEff}_{trig_short}_%SYS%"
517 alg.dataEfficiencyDecoration = f
"muon_{self.prefixEffData}_{trig_short}_%SYS%"
518 alg.outOfValidity = 2
519 alg.outOfValidityDeco = f
"bad_eff_muontrig_{trig_short}"
520 alg.muons = config.readName (self.containerName)
521 alg.preselection = config.getPreselection (self.containerName,
'')
523 config.addOutputVar (self.containerName, alg.scaleFactorDecoration, f
"{self.prefixSF}_{trig_short}")
525 config.addOutputVar (self.containerName, alg.mcEfficiencyDecoration, f
"{self.prefixEff}_{trig_short}")
527 config.addOutputVar (self.containerName, alg.dataEfficiencyDecoration, f
"{self.prefixEffData}_{trig_short}")