ATLAS Offline Software
Loading...
Searching...
No Matches
python.TauAnalysisConfig.TauTriggerAnalysisSFBlock Class Reference
Inheritance diagram for python.TauAnalysisConfig.TauTriggerAnalysisSFBlock:
Collaboration diagram for python.TauAnalysisConfig.TauTriggerAnalysisSFBlock:

Public Member Functions

 __init__ (self)
 instanceName (self)
 makeAlgs (self, config)

Public Attributes

 containerName

Detailed Description

Definition at line 591 of file TauAnalysisConfig.py.

Constructor & Destructor Documentation

◆ __init__()

python.TauAnalysisConfig.TauTriggerAnalysisSFBlock.__init__ ( self)

Definition at line 593 of file TauAnalysisConfig.py.

593 def __init__ (self) :
594 super().__init__()
595 self.addDependency('EventSelection', required=False)
596 self.addDependency('EventSelectionMerger', required=False)
597 self.addOption ('triggerChainsPerYear', {}, type=dict,
598 info="a dictionary with key (string) the year and value (list of "
599 "strings) the trigger chains.")
600 self.addOption ('useGNTau', False, type=bool,
601 info="use GNTau-based ID instead of RNNTau ID. "
602 "Recommendations: experimental feature and might become default soon.")
603 self.addOption ('tauID', '', type=str,
604 info="the tau-jet quality WP to use.")
605 self.addOption ('prefixSF', 'trigEffSF', type=str,
606 info="the decoration prefix for trigger scale factors.")
607 self.addOption ('includeAllYearsPerRun', False, type=bool,
608 info="all configured years in the LHC run will "
609 "be included in all jobs.")
610 self.addOption ('removeHLTPrefix', True, type=bool,
611 info="remove the HLT prefix from trigger chain names.")
612 self.addOption ('containerName', '', type=str,
613 info="the input tau-jet container, with a possible selection, in "
614 "the format `container` or `container.selection`.",
615 meta={'role':'containerRef'})
616

Member Function Documentation

◆ instanceName()

python.TauAnalysisConfig.TauTriggerAnalysisSFBlock.instanceName ( self)
Return the instance name for this block

Definition at line 617 of file TauAnalysisConfig.py.

617 def instanceName (self) :
618 """Return the instance name for this block"""
619 return self.containerName + '_' + self.prefixSF + '_' + self.tauID
620

◆ makeAlgs()

python.TauAnalysisConfig.TauTriggerAnalysisSFBlock.makeAlgs ( self,
config )

Definition at line 621 of file TauAnalysisConfig.py.

621 def makeAlgs (self, config) :
622
623 if config.dataType() is not DataType.Data:
624 log = logging.getLogger('TauTriggerAnalysisSF')
625
626 # Temporary skip all MC campaigns apart from MC23a when using GNTau until SFs are available
627 if( self.useGNTau and config.campaign() is not Campaign.MC23a ):
628 log.warning("Tau trigger scale factors are only available for MC23a when using GNTau offline ID")
629 return
630
631 # Temporary skip for MC23e until SFs are available
632 if config.campaign() is Campaign.MC23e:
633 log.warning("Tau trigger scale factors are not available yet for MC23e")
634 return
635 # Temporary skip for MC23g until SFs are available
636 if config.campaign() is Campaign.MC23g:
637 log.warning("Tau trigger scale factors are not available yet for MC23g")
638 return
639
640 triggers = trigger_set(config, self.triggerChainsPerYear,
641 self.includeAllYearsPerRun)
642 for chain in triggers:
643 chain_noHLT = chain.replace("HLT_", "")
644 chain_out = chain_noHLT if self.removeHLTPrefix else chain
645 alg = config.createAlgorithm( 'CP::TauEfficiencyCorrectionsAlg',
646 'TauTrigEfficiencyCorrectionsAlg_' + chain )
647 config.addPrivateTool( 'efficiencyCorrectionsTool',
648 'TauAnalysisTools::TauEfficiencyCorrectionsTool' )
649 # SFTriggerHadTau correction type from
650 # https://gitlab.cern.ch/atlas/athena/-/blob/main/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h#L79
651 alg.efficiencyCorrectionsTool.EfficiencyCorrectionTypes = [12]
652 if config.geometry() is LHCPeriod.Run2:
653 alg.efficiencyCorrectionsTool.Campaign = "mc20"
654 else:
655 alg.efficiencyCorrectionsTool.Campaign = config.campaign().value
656 alg.efficiencyCorrectionsTool.TriggerName = chain
657 alg.efficiencyCorrectionsTool.useGNTau = self.useGNTau
658
659 # JetIDLevel from
660 # https://gitlab.cern.ch/atlas/athena/-/blob/main/PhysicsAnalysis/TauID/TauAnalysisTools/TauAnalysisTools/Enums.h#L79
661 if self.tauID not in _RNN_JETID_LEVELS:
662 raise ValueError (f"invalid tauID: \"{self.tauID}\". Allowed values are Loose, Medium, Tight")
663 alg.efficiencyCorrectionsTool.JetIDLevel = _RNN_JETID_LEVELS[self.tauID]
664 alg.efficiencyCorrectionsTool.TriggerSFMeasurement = "combined"
665 alg.efficiencyCorrectionsTool.useFastSim = config.dataType() is DataType.FastSim
666
667 alg.scaleFactorDecoration = f"tau_{self.prefixSF}_{chain_out}_%SYS%"
668 alg.outOfValidity = 2 #silent
669 alg.outOfValidityDeco = f"bad_eff_tautrig_{chain_out}"
670 alg.taus = config.readName (self.containerName)
671 alg.preselection = config.getPreselection (self.containerName, self.tauID)
672 config.addOutputVar (self.containerName, alg.scaleFactorDecoration, f"{self.prefixSF}_{chain_out}", auxType='float')
673
674@groupBlocks
if(pathvar)

Member Data Documentation

◆ containerName

python.TauAnalysisConfig.TauTriggerAnalysisSFBlock.containerName

Definition at line 672 of file TauAnalysisConfig.py.


The documentation for this class was generated from the following file: