389 selectionPostfix = self.selectionName
390 if selectionPostfix !=
'' and selectionPostfix[0] !=
'_' :
391 selectionPostfix =
'_' + selectionPostfix
393 postfix = self.postfix
395 postfix = self.selectionName
396 if postfix !=
'' and postfix[0] !=
'_' :
397 postfix =
'_' + postfix
399 if self.
quality is not None and self.
quality not in [
'Tight',
'Medium',
'Loose',
'VeryLoose',
'Baseline',
'BaselineForFakes'] :
400 raise ValueError (
"invalid tau quality: \"" + self.
quality +
401 "\", allowed values are Tight, Medium, Loose, " +
402 "VeryLoose, Baseline, BaselineForFakes")
407 if config.dataType()
is not DataType.Data
and not self.
noEffSF:
408 log = logging.getLogger(
'TauJetSFConfig')
414 alg = config.createAlgorithm(
'CP::TauEfficiencyCorrectionsAlg',
415 'TauEfficiencyCorrectionsAlgReco' )
416 config.addPrivateTool(
'efficiencyCorrectionsTool',
417 'TauAnalysisTools::TauEfficiencyCorrectionsTool' )
418 alg.efficiencyCorrectionsTool.EfficiencyCorrectionTypes = [0]
419 alg.efficiencyCorrectionsTool.Campaign =
"mc23" if config.geometry()
is LHCPeriod.Run3
else "mc20"
420 alg.efficiencyCorrectionsTool.useFastSim = config.dataType()
is DataType.FastSim
421 alg.scaleFactorDecoration =
'tau_Reco_effSF' + selectionPostfix +
'_%SYS%'
422 alg.outOfValidity = 2
423 alg.outOfValidityDeco =
'bad_Reco_eff' + selectionPostfix
425 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
428 'Reco_effSF' + postfix)
429 sfList += [alg.scaleFactorDecoration]
432 if self.
quality not in (
'VeryLoose',
'Baseline',
'BaselineForFakes'):
435 alg = config.createAlgorithm(
'CP::TauEfficiencyCorrectionsAlg',
436 'TauEfficiencyCorrectionsAlgID' )
437 config.addPrivateTool(
'efficiencyCorrectionsTool',
438 'TauAnalysisTools::TauEfficiencyCorrectionsTool' )
439 alg.efficiencyCorrectionsTool.EfficiencyCorrectionTypes = [4]
440 if self.
quality==
"Loose" or self.manual_sel_rnnwp ==
"loose":
442 elif self.
quality==
"Medium" or self.manual_sel_rnnwp ==
"medium":
444 elif self.
quality==
"Tight" or self.manual_sel_rnnwp ==
"tight":
447 raise ValueError (
"invalid tauID: \"" + self.
quality +
"\". Allowed values are loose, medium, tight")
449 alg.efficiencyCorrectionsTool.JetIDLevel = JetIDLevel
450 alg.efficiencyCorrectionsTool.useFastSim = config.dataType()
is DataType.FastSim
451 alg.efficiencyCorrectionsTool.Campaign =
"mc23" if config.geometry()
is LHCPeriod.Run3
else "mc20"
452 alg.scaleFactorDecoration =
'tau_ID_effSF' + selectionPostfix +
'_%SYS%'
453 alg.outOfValidity = 2
454 alg.outOfValidityDeco =
'bad_ID_eff' + selectionPostfix
456 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
458 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
459 'ID_effSF' + postfix)
460 sfList += [alg.scaleFactorDecoration]
466 alg = config.createAlgorithm(
'CP::TauEfficiencyCorrectionsAlg',
467 'TauEfficiencyCorrectionsAlgEvetoFakeTau' )
468 config.addPrivateTool(
'efficiencyCorrectionsTool',
469 'TauAnalysisTools::TauEfficiencyCorrectionsTool' )
470 alg.efficiencyCorrectionsTool.EfficiencyCorrectionTypes = [10]
472 alg.efficiencyCorrectionsTool.EleIDLevel = 2
475 alg.efficiencyCorrectionsTool.EleIDLevel = 2
477 alg.efficiencyCorrectionsTool.EleIDLevel = 3
479 alg.efficiencyCorrectionsTool.useFastSim = config.dataType()
is DataType.FastSim
480 alg.efficiencyCorrectionsTool.Campaign =
"mc23" if config.geometry()
is LHCPeriod.Run3
else "mc20"
481 alg.scaleFactorDecoration =
'tau_EvetoFakeTau_effSF' + selectionPostfix +
'_%SYS%'
483 if self.
quality==
"Loose" or self.manual_sel_rnnwp ==
"loose":
485 elif self.
quality==
"Medium" or self.manual_sel_rnnwp ==
"medium":
487 elif self.
quality==
"Tight" or self.manual_sel_rnnwp ==
"tight":
488 log.warning(
"eVeto SFs are not available for Tight WP -> fallback to Medium WP")
490 alg.efficiencyCorrectionsTool.JetIDLevel = JetIDLevel
491 alg.outOfValidity = 2
492 alg.outOfValidityDeco =
'bad_EvetoFakeTau_eff' + selectionPostfix
494 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
496 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
497 'EvetoFakeTau_effSF' + postfix)
498 sfList += [alg.scaleFactorDecoration]
501 alg = config.createAlgorithm(
'CP::TauEfficiencyCorrectionsAlg',
502 'TauEfficiencyCorrectionsAlgEvetoTrueTau' )
503 config.addPrivateTool(
'efficiencyCorrectionsTool',
504 'TauAnalysisTools::TauEfficiencyCorrectionsTool' )
505 alg.efficiencyCorrectionsTool.EfficiencyCorrectionTypes = [8]
506 alg.efficiencyCorrectionsTool.useFastSim = config.dataType()
is DataType.FastSim
507 alg.efficiencyCorrectionsTool.Campaign =
"mc23" if config.geometry()
is LHCPeriod.Run3
else "mc20"
508 alg.scaleFactorDecoration =
'tau_EvetoTrueTau_effSF' + selectionPostfix +
'_%SYS%'
510 alg.efficiencyCorrectionsTool.EleIDLevel = 2
513 alg.efficiencyCorrectionsTool.EleIDLevel = 2
515 alg.efficiencyCorrectionsTool.EleIDLevel = 3
516 alg.outOfValidity = 2
517 alg.outOfValidityDeco =
'bad_EvetoTrueTau_eff' + selectionPostfix
519 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
521 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
522 'EvetoTrueTau_effSF' + postfix)
523 sfList += [alg.scaleFactorDecoration]
526 alg = config.createAlgorithm(
'CP::AsgObjectScaleFactorAlg',
527 'TauCombinedEfficiencyScaleFactorAlg' )
529 alg.inScaleFactors = sfList
530 alg.outScaleFactor =
'effSF' + postfix +
'_%SYS%'