ATLAS Offline Software
PrecisionPhotonMenuSequences.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 # menu components
4 from TriggerMenuMT.HLT.Config.MenuComponents import MenuSequenceCA, SelectionCA, InViewRecoCA
5 from TriggerMenuMT.HLT.Egamma.TrigEgammaKeys import getTrigEgammaKeys
6 from AthenaConfiguration.ComponentFactory import CompFactory
7 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
8 
9 # logger
10 from AthenaCommon.Logging import logging
11 log = logging.getLogger(__name__)
12 
13 def tag(ion):
14  return 'precision' + ('HI' if ion is True else '') + 'Photon'
15 
16 
17 @AccumulatorCache
18 def precisionPhotonSequenceGenCfg(flags, ion=False, is_probe_leg=False):
19  """ This function creates the PrecisionPhoton sequence"""
20  # Prepare first the EventView
21  InViewRoIs="PrecisionPhotonRoIs"
22 
23  # Configure the reconstruction algorithm sequence
24  TrigEgammaKeys = getTrigEgammaKeys(flags, ion = ion)
25 
26  hiInfo = 'HI' if ion is True else ''
27  probeInfo = '_probe' if is_probe_leg is True else ''
28 
29  roiTool = CompFactory.ViewCreatorPreviousROITool()
30  recoAcc = InViewRecoCA(tag(ion),InViewRoIs=InViewRoIs, RoITool = roiTool, RequireParentView = True, isProbe=is_probe_leg)
31 
32  from TriggerMenuMT.HLT.Photon.PrecisionPhotonRecoSequences import precisionPhotonRecoSequence
33  recoAcc.mergeReco(precisionPhotonRecoSequence(flags, InViewRoIs,'PrecisionPhotonRecoSequence'+hiInfo, ion))
34 
35  selAcc = SelectionCA('PrecisionPhotonMenuSequence'+hiInfo, isProbe=is_probe_leg)
36 
37  selAcc.mergeReco(recoAcc)
38  sequenceOut = TrigEgammaKeys.precisionPhotonContainer
39 
40  from TrigEgammaHypo.TrigEgammaPrecisionPhotonHypoTool import TrigEgammaPrecisionPhotonHypoAlgCfg, TrigEgammaPrecisionPhotonHypoToolFromDict
41 
42  selAcc.mergeHypo(TrigEgammaPrecisionPhotonHypoAlgCfg(flags, "Photon"+tag(ion)+"Hypo"+probeInfo, sequenceOut))
43 
44  return MenuSequenceCA(flags, selAcc, HypoToolGen=TrigEgammaPrecisionPhotonHypoToolFromDict, isProbe=is_probe_leg)
PrecisionPhotonMenuSequences.tag
def tag(ion)
Definition: PrecisionPhotonMenuSequences.py:13
PrecisionPhotonRecoSequences.precisionPhotonRecoSequence
def precisionPhotonRecoSequence(flags, RoIs, name=None, ion=False)
Definition: PrecisionPhotonRecoSequences.py:28
PrecisionPhotonMenuSequences.precisionPhotonSequenceGenCfg
def precisionPhotonSequenceGenCfg(flags, ion=False, is_probe_leg=False)
Definition: PrecisionPhotonMenuSequences.py:18
python.HLT.Egamma.TrigEgammaKeys.getTrigEgammaKeys
def getTrigEgammaKeys(AthConfigFlags flags, name='', ion=False)
Definition: TrigEgammaKeys.py:138
python.TrigEgammaPrecisionPhotonHypoTool.TrigEgammaPrecisionPhotonHypoAlgCfg
def TrigEgammaPrecisionPhotonHypoAlgCfg(flags, name, sequenceOut, **kwargs)
Definition: TrigEgammaPrecisionPhotonHypoTool.py:12