ATLAS Offline Software
PrecisionElectronMenuSequences_GSF.py
Go to the documentation of this file.
1 #
2 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 #
4 
5 from TriggerMenuMT.HLT.Egamma.TrigEgammaKeys import getTrigEgammaKeys
6 from TriggerMenuMT.HLT.Config.MenuComponents import MenuSequenceCA, SelectionCA, InViewRecoCA
7 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
8 from AthenaConfiguration.ComponentFactory import CompFactory
9 
10 
11 def tag(ion):
12  return 'precision' + ('HI' if ion is True else '') + 'Electron'
13 
14 
15 @AccumulatorCache
16 def precisionElectron_GSFSequenceGenCfg(flags, ion=False, variant='_GSF', is_probe_leg=False):
17  """
18  Similar setup as ../PrecisionElectronMenuSequences.py; tailored for GSF chains
19  """
20  inViewRoIs = "precisionElectron"
21  probeInfo = '_probe' if is_probe_leg else ''
22  roiTool = CompFactory.ViewCreatorPreviousROITool()
23  reco = InViewRecoCA(tag(ion)+variant, RoITool = roiTool, InViewRoIs = inViewRoIs, RequireParentView = True, isProbe=is_probe_leg)
24 
25  # Configure the reconstruction algorithm sequence
26  from TriggerMenuMT.HLT.Electron.PrecisionElectronRecoSequences import precisionElectronRecoSequence
27  reco.mergeReco(precisionElectronRecoSequence(flags, inViewRoIs, ion, doGSF='GSF' in variant, doLRT = 'LRT' in variant))
28  TrigEgammaKeys = getTrigEgammaKeys(flags, variant, ion=ion)
29  selAcc = SelectionCA('PrecisionElectronMenuSequence'+variant,isProbe=is_probe_leg)
30 
31  from TrigEgammaHypo.TrigEgammaPrecisionElectronHypoTool import TrigEgammaPrecisionElectronHypoToolFromDict, TrigEgammaPrecisionElectronHypoAlgCfg
32 
33  selAcc.mergeReco(reco)
34  selAcc.mergeHypo(TrigEgammaPrecisionElectronHypoAlgCfg(flags, "TrigEgamma"+tag(ion)+"HypoAlg"+variant+probeInfo, TrigEgammaKeys.precisionElectronContainer ))
35  return MenuSequenceCA(flags,selAcc,HypoToolGen=TrigEgammaPrecisionElectronHypoToolFromDict, isProbe=is_probe_leg)
36 
37 def precisionElectron_GSF_LRTSequenceGenCfg(flags, is_probe_leg=False):
38  # This is to call precisionElectronMenuSequence for the _LRT variant
39  return precisionElectron_GSFSequenceGenCfg(flags, ion=False, variant='_LRTGSF',is_probe_leg=is_probe_leg)
python.HLT.Electron.PrecisionElectronRecoSequences.precisionElectronRecoSequence
def precisionElectronRecoSequence(flags, RoIs, ion=False, doGSF=True, doLRT=False)
Definition: PrecisionElectronRecoSequences.py:12
python.HLT.Electron.PrecisionElectronMenuSequences_GSF.tag
def tag(ion)
Definition: PrecisionElectronMenuSequences_GSF.py:11
python.TrigEgammaPrecisionElectronHypoTool.TrigEgammaPrecisionElectronHypoAlgCfg
def TrigEgammaPrecisionElectronHypoAlgCfg(flags, name, inputElectronCollection)
Definition: TrigEgammaPrecisionElectronHypoTool.py:50
python.HLT.Electron.PrecisionElectronMenuSequences_GSF.precisionElectron_GSFSequenceGenCfg
def precisionElectron_GSFSequenceGenCfg(flags, ion=False, variant='_GSF', is_probe_leg=False)
Definition: PrecisionElectronMenuSequences_GSF.py:16
python.HLT.Electron.PrecisionElectronMenuSequences_GSF.precisionElectron_GSF_LRTSequenceGenCfg
def precisionElectron_GSF_LRTSequenceGenCfg(flags, is_probe_leg=False)
Definition: PrecisionElectronMenuSequences_GSF.py:37
python.HLT.Egamma.TrigEgammaKeys.getTrigEgammaKeys
def getTrigEgammaKeys(AthConfigFlags flags, name='', ion=False)
Definition: TrigEgammaKeys.py:138