9def RoIBResultToxAODCfg(flags):
10 if (flags.Trigger.enableL1MuonPhase1 or flags.Trigger.enableL0Muon) and not flags.Trigger.enableL1CaloLegacy:
11
12 _log.debug('Not adding RoIBResultToxAOD because no Run-2 L1 system is enabled by flags')
13 return ComponentAccumulator(), []
14
15 acc = ComponentAccumulator()
16 alg = CompFactory.RoIBResultToxAOD('RoIBResultToxAOD')
17 alg.DoMuon = flags.Detector.EnableMuon and not (flags.Trigger.enableL1MuonPhase1 or flags.Trigger.enableL0Muon)
18 alg.DoCalo = flags.Detector.EnableCalo and flags.Trigger.enableL1CaloLegacy
19
20 if flags.Input.Format is Format.POOL:
21 if str(alg.xAODKeyMuon) in flags.Input.Collections:
22 _log.debug('L1Muon xAOD already in the input file, setting RoIBResultToxAOD.DoMuon=False')
23 alg.DoMuon = False
24 allCaloOutputs = [k.Path for k in [alg.xAODKeyEmTau, alg.xAODKeyEsum, alg.xAODKeyJetEt, alg.xAODKeyJet]]
25 if all([k in flags.Input.Collections for k in allCaloOutputs]):
26 _log.debug('L1Calo xAOD already in the input file, setting RoIBResultToxAOD.DoCalo=False')
27 alg.DoCalo = False
28
29 if not alg.DoMuon and not alg.DoCalo:
30 _log.debug('Not adding RoIBResultToxAOD because both DoMuon and DoCalo properties are False')
31 return ComponentAccumulator(), []
32
33 if flags.Input.Format is Format.BS:
34 from TrigT1CaloByteStream.LVL1CaloRun2ByteStreamConfig import LVL1CaloRun2ReadBSCfg
35 acc.merge(LVL1CaloRun2ReadBSCfg(flags, forRoIBResultToxAOD=True))
36
37
38 outputList = []
39 if alg.DoMuon:
40 outputList += [
41 (alg.xAODKeyMuon.Type, alg.xAODKeyMuon.Path)
42 ]
43 from MuonConfig.MuonGeometryConfig import MuonGeoModelCfg
44 acc.merge(MuonGeoModelCfg(flags))
45
46 from MuonConfig.MuonCablingConfig import RPCCablingConfigCfg
47 acc.merge(RPCCablingConfigCfg(flags))
48
49 from MuonConfig.MuonCablingConfig import TGCCablingConfigCfg
50 acc.merge(TGCCablingConfigCfg(flags))
51
52 if alg.DoCalo:
53 outputList += [
54 (alg.xAODKeyEmTau.Type, alg.xAODKeyEmTau.Path),
55 (alg.xAODKeyEsum.Type, alg.xAODKeyEsum.Path),
56 (alg.xAODKeyJetEt.Type, alg.xAODKeyJetEt.Path),
57 (alg.xAODKeyJet.Type, alg.xAODKeyJet.Path)
58 ]
59 from TrigConfigSvc.TrigConfigSvcCfg import L1ConfigSvcCfg
60 acc.merge(L1ConfigSvcCfg(flags))
61
62 acc.addEventAlgo(alg)
63
64 return acc, outputList
65
66