384 selectionPostfix = self.selectionName
385 if selectionPostfix !=
'' and selectionPostfix[0] !=
'_' :
386 selectionPostfix =
'_' + selectionPostfix
388 postfix = self.postfix
390 postfix = self.selectionName
391 if postfix !=
'' and postfix[0] !=
'_' :
392 postfix =
'_' + postfix
394 if self.
quality is not None and self.
quality not in [
'Tight',
'Medium',
'Loose',
'VeryLoose',
'Baseline',
'BaselineForFakes'] :
395 raise ValueError (
"invalid tau quality: \"" + self.
quality +
396 "\", allowed values are Tight, Medium, Loose, " +
397 "VeryLoose, Baseline, BaselineForFakes")
402 if config.dataType()
is not DataType.Data
and not self.
noEffSF:
403 log = logging.getLogger(
'TauJetSFConfig')
409 alg = config.createAlgorithm(
'CP::TauEfficiencyCorrectionsAlg',
410 'TauEfficiencyCorrectionsAlgReco' )
411 config.addPrivateTool(
'efficiencyCorrectionsTool',
412 'TauAnalysisTools::TauEfficiencyCorrectionsTool' )
413 alg.efficiencyCorrectionsTool.EfficiencyCorrectionTypes = [0]
414 alg.efficiencyCorrectionsTool.Campaign =
"mc23" if config.geometry()
is LHCPeriod.Run3
else "mc20"
415 alg.efficiencyCorrectionsTool.useFastSim = config.dataType()
is DataType.FastSim
416 alg.scaleFactorDecoration =
'tau_Reco_effSF' + selectionPostfix +
'_%SYS%'
417 alg.outOfValidity = 2
418 alg.outOfValidityDeco =
'bad_Reco_eff' + selectionPostfix
420 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
423 'Reco_effSF' + postfix)
424 sfList += [alg.scaleFactorDecoration]
427 if self.
quality not in (
'VeryLoose',
'Baseline',
'BaselineForFakes'):
430 alg = config.createAlgorithm(
'CP::TauEfficiencyCorrectionsAlg',
431 'TauEfficiencyCorrectionsAlgID' )
432 config.addPrivateTool(
'efficiencyCorrectionsTool',
433 'TauAnalysisTools::TauEfficiencyCorrectionsTool' )
434 alg.efficiencyCorrectionsTool.EfficiencyCorrectionTypes = [4]
435 if self.
quality==
"Loose" or self.manual_sel_rnnwp ==
"loose":
437 elif self.
quality==
"Medium" or self.manual_sel_rnnwp ==
"medium":
439 elif self.
quality==
"Tight" or self.manual_sel_rnnwp ==
"tight":
442 raise ValueError (
"invalid tauID: \"" + self.
quality +
"\". Allowed values are loose, medium, tight")
444 alg.efficiencyCorrectionsTool.JetIDLevel = JetIDLevel
445 alg.efficiencyCorrectionsTool.useFastSim = config.dataType()
is DataType.FastSim
446 alg.efficiencyCorrectionsTool.Campaign =
"mc23" if config.geometry()
is LHCPeriod.Run3
else "mc20"
447 alg.scaleFactorDecoration =
'tau_ID_effSF' + selectionPostfix +
'_%SYS%'
448 alg.outOfValidity = 2
449 alg.outOfValidityDeco =
'bad_ID_eff' + selectionPostfix
451 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
453 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
454 'ID_effSF' + postfix)
455 sfList += [alg.scaleFactorDecoration]
461 alg = config.createAlgorithm(
'CP::TauEfficiencyCorrectionsAlg',
462 'TauEfficiencyCorrectionsAlgEvetoFakeTau' )
463 config.addPrivateTool(
'efficiencyCorrectionsTool',
464 'TauAnalysisTools::TauEfficiencyCorrectionsTool' )
465 alg.efficiencyCorrectionsTool.EfficiencyCorrectionTypes = [10]
467 alg.efficiencyCorrectionsTool.EleIDLevel = 2
470 alg.efficiencyCorrectionsTool.EleIDLevel = 2
472 alg.efficiencyCorrectionsTool.EleIDLevel = 3
474 alg.efficiencyCorrectionsTool.useFastSim = config.dataType()
is DataType.FastSim
475 alg.efficiencyCorrectionsTool.Campaign =
"mc23" if config.geometry()
is LHCPeriod.Run3
else "mc20"
476 alg.scaleFactorDecoration =
'tau_EvetoFakeTau_effSF' + selectionPostfix +
'_%SYS%'
478 if self.
quality==
"Loose" or self.manual_sel_rnnwp ==
"loose":
480 elif self.
quality==
"Medium" or self.manual_sel_rnnwp ==
"medium":
482 elif self.
quality==
"Tight" or self.manual_sel_rnnwp ==
"tight":
483 log.warning(
"eVeto SFs are not available for Tight WP -> fallback to Medium WP")
485 alg.efficiencyCorrectionsTool.JetIDLevel = JetIDLevel
486 alg.outOfValidity = 2
487 alg.outOfValidityDeco =
'bad_EvetoFakeTau_eff' + selectionPostfix
489 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
491 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
492 'EvetoFakeTau_effSF' + postfix)
493 sfList += [alg.scaleFactorDecoration]
496 alg = config.createAlgorithm(
'CP::TauEfficiencyCorrectionsAlg',
497 'TauEfficiencyCorrectionsAlgEvetoTrueTau' )
498 config.addPrivateTool(
'efficiencyCorrectionsTool',
499 'TauAnalysisTools::TauEfficiencyCorrectionsTool' )
500 alg.efficiencyCorrectionsTool.EfficiencyCorrectionTypes = [8]
501 alg.efficiencyCorrectionsTool.useFastSim = config.dataType()
is DataType.FastSim
502 alg.efficiencyCorrectionsTool.Campaign =
"mc23" if config.geometry()
is LHCPeriod.Run3
else "mc20"
503 alg.scaleFactorDecoration =
'tau_EvetoTrueTau_effSF' + selectionPostfix +
'_%SYS%'
505 alg.efficiencyCorrectionsTool.EleIDLevel = 2
508 alg.efficiencyCorrectionsTool.EleIDLevel = 2
510 alg.efficiencyCorrectionsTool.EleIDLevel = 3
511 alg.outOfValidity = 2
512 alg.outOfValidityDeco =
'bad_EvetoTrueTau_eff' + selectionPostfix
514 alg.preselection = config.getPreselection (self.
containerName, self.selectionName)
516 config.addOutputVar (self.
containerName, alg.scaleFactorDecoration,
517 'EvetoTrueTau_effSF' + postfix)
518 sfList += [alg.scaleFactorDecoration]
521 alg = config.createAlgorithm(
'CP::AsgObjectScaleFactorAlg',
522 'TauCombinedEfficiencyScaleFactorAlg' )
524 alg.inScaleFactors = sfList
525 alg.outScaleFactor =
'effSF' + postfix +
'_%SYS%'