ATLAS Offline Software
Loading...
Searching...
No Matches
BphysicsMenuSequences.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2
3from AthenaCommon.Logging import logging
4log = logging.getLogger(__name__)
5
6from ..Config.MenuComponents import MenuSequence, SelectionCA, InEventRecoCA, InViewRecoCA
7from AthenaConfiguration.ComponentFactory import CompFactory
8from AthenaConfiguration.AccumulatorCache import AccumulatorCache
9from TrigEDMConfig.TriggerEDM import recordable
10
11
12@AccumulatorCache
14
15 RoIToolCreator = CompFactory.ViewCreatorMuonSuperROITool if flags.Trigger.InDetTracking.bmumux.SuperRoI else CompFactory.ViewCreatorCentredOnIParticleROITool
16
17 roiToolOptions = {
18 'RoIEtaWidth' : flags.Trigger.InDetTracking.bmumux.etaHalfWidth,
19 'RoIPhiWidth' : flags.Trigger.InDetTracking.bmumux.phiHalfWidth,
20 'RoIZedWidth' : flags.Trigger.InDetTracking.bmumux.zedHalfWidth,
21 'RoisWriteHandleKey' : recordable(flags.Trigger.InDetTracking.bmumux.roi) }
22
23 viewMakerOptions = {
24 'RoITool' : RoIToolCreator(**roiToolOptions),
25 'mergeUsingFeature' : True,
26 'PlaceMuonInView' : True,
27 'InViewMuonCandidates' : 'BmumuxMuonCandidates',
28 'InViewMuons' : 'HLT_Muons_Bmumux' }
29
30 reco = InViewRecoCA('Bmumux', **viewMakerOptions)
31 from .BphysicsRecoSequences import bmumuxRecoSequenceCfg
32 reco.mergeReco(bmumuxRecoSequenceCfg(flags, reco.inputMaker().InViewRoIs, reco.inputMaker().InViewMuons))
33
34 selAcc = SelectionCA('bmumuxSequence')
35
36 from TrigGenericAlgs.TrigGenericAlgsConfig import ROBPrefetchingAlgCfg_Si
37 selAcc.mergeReco(reco, robPrefetchCA=ROBPrefetchingAlgCfg_Si(flags, nameSuffix=reco.name))
38
39 hypoAlg = CompFactory.TrigBphysStreamerHypo('BmumuxStreamerHypoAlg')
40 selAcc.addHypoAlgo(hypoAlg)
41
42 from TrigBphysHypo.TrigBphysStreamerHypoConfig import TrigBphysStreamerHypoToolFromDict
43 return MenuSequence(flags, selAcc, HypoToolGen=TrigBphysStreamerHypoToolFromDict)
44
45
47 from ..Muon.MuonMenuSequences import muCombAlgSequenceCfg
48 from TrigBphysHypo.TrigBphysStreamerHypoConfig import TrigBphysStreamerHypoToolFromDict
49
50 sequence, combinedMuonContainerName = muCombAlgSequenceCfg(flags, "Bphys")
51 hypo = CompFactory.TrigBphysStreamerHypo('DimuL2StreamerHypoAlg',
52 triggerList = getNoL2CombChainNames(),
53 triggerLevel = 'L2')
54 sequence.addHypoAlgo(hypo)
55
56 return MenuSequence(flags, sequence,
57 HypoToolGen = TrigBphysStreamerHypoToolFromDict)
58
59
60@AccumulatorCache
62 selAcc = SelectionCA('dimuSequence')
63
64 inputMakerAlg = CompFactory.InputMakerForRoI('IM_bphysStreamerDimuEF',
65 RoITool = CompFactory.ViewCreatorPreviousROITool(),
66 mergeUsingFeature = True)
67
68 reco = InEventRecoCA('bphysStreamerDimuEFReco', inputMaker=inputMakerAlg)
69 selAcc.mergeReco(reco)
70
71 hypoAlg = CompFactory.TrigBphysStreamerHypo('DimuEFStreamerHypoAlg', triggerLevel = 'EF')
72 selAcc.addHypoAlgo(hypoAlg)
73
74 from TrigBphysHypo.TrigBphysStreamerHypoConfig import TrigBphysStreamerHypoToolFromDict
75 return MenuSequence(flags, selAcc, HypoToolGen=TrigBphysStreamerHypoToolFromDict)
76
77
79 from ..Config.GenerateMenuMT import GenerateMenuMT
80 menu = GenerateMenuMT()
81 chains = [chain.name for chain in menu.chainsInMenu['Bphysics'] if 'noL2Comb' in chain.name]
82 return chains