404 def makeAlgs (self, config) :
406 if config.dataType()
is not DataType.Data:
413 if self.includeAllYears:
414 years = [
int(year)
for year
in self.triggerChainsPerYear.
keys()]
415 elif config.campaign()
is Campaign.MC20a:
417 elif config.campaign()
is Campaign.MC20d:
419 elif config.campaign()
is Campaign.MC20e:
421 elif config.campaign()
in [Campaign.MC21a, Campaign.MC23a]:
423 elif config.campaign()
in [Campaign.MC23c, Campaign.MC23d]:
426 triggerYearStartBoundaries = {
437 triggerConfigYears = {}
439 triggerChains = self.triggerChainsPerYear.
get(
int(year), self.triggerChainsPerYear.
get(
str(year), []))
440 for chain
in triggerChains:
441 chain = chain.replace(
" || ",
"_OR_")
442 chain_noHLT = chain.replace(
"HLT_",
"")
443 chain_out = chain_noHLT
if self.removeHLTPrefix
else chain
444 legs = triggerDict[chain_noHLT]
446 if chain_noHLT.startswith(
'mu')
and chain_noHLT[2].isdigit:
448 triggerConfigs[chain_out] = chain
449 if chain_out
in triggerConfigYears.keys():
450 triggerConfigYears[chain_out].
append(year)
452 triggerConfigYears[chain_out] = [year]
455 if leg.startswith(
'mu')
and leg[2].isdigit:
457 leg_out = leg
if self.removeHLTPrefix
else f
"HLT_{leg}"
458 triggerConfigs[leg_out] = f
"HLT_{leg}"
459 if leg_out
in triggerConfigYears.keys():
460 triggerConfigYears[leg_out].
append(year)
462 triggerConfigYears[leg_out] = [year]
464 for trig_short, trig
in triggerConfigs.items():
465 alg = config.createAlgorithm(
'CP::MuonTriggerEfficiencyScaleFactorAlg',
466 'MuonTrigEfficiencyCorrectionsAlg_' + self.muonID +
'_' + trig_short)
467 config.addPrivateTool(
'efficiencyScaleFactorTool',
468 'CP::MuonTriggerScaleFactors' )
471 alg.efficiencyScaleFactorTool.MuonQuality = self.muonID
472 alg.efficiencyScaleFactorTool.AllowZeroSF =
True
475 if self.includeAllYears:
477 alg.maxRunNumber = 999999
479 if triggerConfigYears[trig_short][0] != years[0]:
480 alg.minRunNumber = triggerYearStartBoundaries.get(triggerConfigYears[trig_short][0], 999999)
481 if triggerConfigYears[trig_short][-1] != years[-1]:
482 alg.maxRunNumber = triggerYearStartBoundaries.get(triggerConfigYears[trig_short][-1] + 1, 999999)
483 elif config.campaign()
is Campaign.MC20a:
484 if triggerConfigYears[trig_short] == [2015]:
485 alg.maxRunNumber = 290000
486 elif triggerConfigYears[trig_short] == [2016]:
487 alg.minRunNumber = 290000
491 alg.scaleFactorDecoration = f
"muon_{self.prefixSF}_{trig_short}_%SYS%"
493 alg.mcEfficiencyDecoration = f
"muon_{self.prefixEff}_{trig_short}_%SYS%"
495 alg.dataEfficiencyDecoration = f
"muon_{self.prefixEffData}_{trig_short}_%SYS%"
496 alg.outOfValidity = 2
497 alg.outOfValidityDeco = f
"bad_eff_muontrig_{trig_short}"
498 alg.muons = config.readName (self.containerName)
499 alg.preselection = config.getPreselection (self.containerName,
'')
501 config.addOutputVar (self.containerName, alg.scaleFactorDecoration, f
"{self.prefixSF}_{trig_short}")
503 config.addOutputVar (self.containerName, alg.mcEfficiencyDecoration, f
"{self.prefixEff}_{trig_short}")
505 config.addOutputVar (self.containerName, alg.dataEfficiencyDecoration, f
"{self.prefixEffData}_{trig_short}")