425 def makeAlgs (self, config) :
427 if config.dataType()
is not DataType.Data:
434 if self.includeAllYearsPerRun:
435 years = [
int(year)
for year
in self.triggerChainsPerYear.
keys()]
437 from TriggerAnalysisAlgorithms.TriggerAnalysisSFConfig
import (
441 triggerYearStartBoundaries = {
452 triggerConfigYears = {}
453 from TriggerAnalysisAlgorithms.TriggerAnalysisConfig
import is_year_in_current_period
458 triggerChains = self.triggerChainsPerYear.
get(
int(year), self.triggerChainsPerYear.
get(
str(year), []))
459 for chain
in triggerChains:
460 chain = chain.replace(
" || ",
"_OR_")
461 chain_noHLT = chain.replace(
"HLT_",
"")
462 chain_out = chain_noHLT
if self.removeHLTPrefix
else chain
463 legs = triggerDict[chain_noHLT]
465 if chain_noHLT.startswith(
'mu')
and chain_noHLT[2].isdigit:
467 triggerConfigs[chain_out] = chain
468 if chain_out
in triggerConfigYears.keys():
469 triggerConfigYears[chain_out].
append(year)
471 triggerConfigYears[chain_out] = [year]
474 if leg.startswith(
'mu')
and leg[2].isdigit:
476 leg_out = leg
if self.removeHLTPrefix
else f
"HLT_{leg}"
477 triggerConfigs[leg_out] = f
"HLT_{leg}"
478 if leg_out
in triggerConfigYears.keys():
479 triggerConfigYears[leg_out].
append(year)
481 triggerConfigYears[leg_out] = [year]
483 for trig_short, trig
in triggerConfigs.items():
484 alg = config.createAlgorithm(
'CP::MuonTriggerEfficiencyScaleFactorAlg',
485 'MuonTrigEfficiencyCorrectionsAlg_' + trig_short)
486 config.addPrivateTool(
'efficiencyScaleFactorTool',
487 'CP::MuonTriggerScaleFactors' )
490 alg.efficiencyScaleFactorTool.MuonQuality = self.muonID
491 alg.efficiencyScaleFactorTool.AllowZeroSF =
True
494 if self.includeAllYearsPerRun:
496 alg.maxRunNumber = 999999
498 if triggerConfigYears[trig_short][0] != years[0]:
499 alg.minRunNumber = triggerYearStartBoundaries.get(triggerConfigYears[trig_short][0], 999999)
500 if triggerConfigYears[trig_short][-1] != years[-1]:
501 alg.maxRunNumber = triggerYearStartBoundaries.get(triggerConfigYears[trig_short][-1] + 1, 999999)
502 elif config.campaign()
is Campaign.MC20a:
503 if triggerConfigYears[trig_short] == [2015]:
504 alg.maxRunNumber = 290000
505 elif triggerConfigYears[trig_short] == [2016]:
506 alg.minRunNumber = 290000
510 alg.scaleFactorDecoration = f
"muon_{self.prefixSF}_{trig_short}_%SYS%"
512 alg.mcEfficiencyDecoration = f
"muon_{self.prefixEff}_{trig_short}_%SYS%"
514 alg.dataEfficiencyDecoration = f
"muon_{self.prefixEffData}_{trig_short}_%SYS%"
515 alg.outOfValidity = 2
516 alg.outOfValidityDeco = f
"bad_eff_muontrig_{trig_short}"
517 alg.muons = config.readName (self.containerName)
518 alg.preselection = config.getPreselection (self.containerName,
'')
520 config.addOutputVar (self.containerName, alg.scaleFactorDecoration, f
"{self.prefixSF}_{trig_short}")
522 config.addOutputVar (self.containerName, alg.mcEfficiencyDecoration, f
"{self.prefixEff}_{trig_short}")
524 config.addOutputVar (self.containerName, alg.dataEfficiencyDecoration, f
"{self.prefixEffData}_{trig_short}")