ATLAS Offline Software
Loading...
Searching...
No Matches
FullChainTrigger.py
Go to the documentation of this file.
1#Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from AthenaCommon.Logging import logging
4_log = logging.getLogger(__name__)
5
6
7if __name__ == "__main__":
8 from MuonGeoModelTestR4.testGeoModel import setupGeoR4TestCfg, SetupArgParser, MuonPhaseIITestDefaults
9 from MuonConfig.MuonConfigUtils import executeTest, setupHistSvcCfg
10 parser = SetupArgParser()
11 parser.set_defaults(inputFile= MuonPhaseIITestDefaults.RDO_R3)
12 parser.set_defaults(nEvents = 20)
13 args = parser.parse_args()
14 from AthenaConfiguration.AllConfigFlags import initConfigFlags
15 flags = initConfigFlags()
16 flags.Detector.GeometryRPC = True
17 flags.Detector.GeometryTGC = True
18 flags.Detector.GeometryMM = True
19 flags.Detector.GeometrysTGC = True
20
21 flags.Common.MsgSuppression = False
22 flags.Output.RDOFileName = "test.RDO.pool.root"
23 flags, acc = setupGeoR4TestCfg(args, flags)
24 from AthenaCommon.Constants import DEBUG
25
26 run_rpc_chain = flags.Detector.GeometryRPC
27 run_mdt_chain = run_rpc_chain and flags.Detector.GeometryMDT
28 if not run_rpc_chain:
29 _log.warning(
30 "Skipping the truth-based RPC and dependent MDT chains")
31 elif not run_mdt_chain:
32 _log.warning("Skipping the MDT chain because MDT geometry is disabled")
33
34 acc.merge(setupHistSvcCfg(flags,outFile = "L0MuonFullChain.root",
35 outStream = "EXPERT"))
36
37 if run_rpc_chain:
38 from DerivationFrameworkMCTruth.MCTruthCommonConfig import HepMCtoXAODTruthCfg
39 acc.merge(HepMCtoXAODTruthCfg(flags))
40 from MuonConfig.MuonByteStreamCnvTestConfig import RpcRdoToRpcDigitCfg
41 acc.merge(RpcRdoToRpcDigitCfg(flags))
42
43
44 from L0MuonS1RPC.L0MuonS1RPCConfig import L0MuonRPCSimCfg
45 acc.merge(L0MuonRPCSimCfg(flags,
46 name="L0MuonRPCSim",
47 OutputLevel=DEBUG))
48
49 from L0MuonS1TGC.L0MuonS1TGCConfig import L0MuonTGCSimCfg
50 acc.merge(L0MuonTGCSimCfg(flags,
51 configureHistSvc=False,
52 OutputLevel=DEBUG))
53
54 from L0MuonEndcap.L0MuonEndcapConfig import L0MuonEndcapAlgCfg
55 acc.merge(L0MuonEndcapAlgCfg(flags))
56
57 if run_mdt_chain:
58 from MuonConfig.MuonRdoDecodeConfig import MdtRDODecodeCfg
59 acc.merge(MdtRDODecodeCfg(flags, name = "MdtRdoToMdtPrepData",
60 RDOContainer = "MDTCSM" ))
61
62 from RegionSelector.RegSelToolConfig import regSelTool_MDT_Cfg
63 from L0MuonMDT.L0MuonMDTConfig import L0MuonMDTSimCfg
64 acc.merge(L0MuonMDTSimCfg(flags,
65 name = "L0MuonMDTSim",
66 OutputLevel = DEBUG,
67 RegSel_MDT = acc.popToolsAndMerge(regSelTool_MDT_Cfg(flags))
68 ))
69
70 from MuonConfig.MuonByteStreamCnvTestConfig import STGC_RdoToDigitCfg, MM_RdoToDigitCfg
71
72 if flags.Detector.GeometrysTGC:
73 acc.merge(STGC_RdoToDigitCfg(flags, sTgcRdoContainer="sTGCRDO", sTgcDigitContainer="sTGC_DIGITS"))
74
75 if flags.Detector.GeometryMM:
76 acc.merge(MM_RdoToDigitCfg(flags, MmRdoContainer="MMRDO", MmDigitContainer="MM_DIGITS"))
77
78 from L0MuonNSW.L0MuonNSWConfig import L0MuonNSWSimCfg
79 acc.merge(L0MuonNSWSimCfg(flags, name="L0MuonNSWSim", OutputLevel=DEBUG))
80
81 print("=== Registered services ===")
82 for svc in acc.getServices():
83 print(svc.name)
84
85 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
86 itemList = []
87 if run_rpc_chain:
88 itemList += [
89 "xAOD::RPCCandDataContainer#RPCCandData",
90 "xAOD::RPCCandDataAuxContainer#RPCCandDataAux.",
91 ]
92 itemList += [
93 "xAOD::TGCCandDataContainer#L0MuonTGCCandData",
94 "xAOD::TGCCandDataAuxContainer#L0MuonTGCCandDataAux.",
95 "xAOD::SectorLogicCandDataContainer#L0MuonTGCSectorLogicCandData",
96 "xAOD::SectorLogicCandDataAuxContainer#L0MuonTGCSectorLogicCandDataAux.",
97 "xAOD::NSWCandDataContainer#NSWCandData",
98 "xAOD::NSWCandDataAuxContainer#NSWCandDataAux."
99 ]
100
101 acc.merge(OutputStreamCfg(flags,
102 "RDO",
103 ItemList=itemList,
104 takeItemsFromInput=False))
105
106
107
108 executeTest(acc)
void print(char *figname, TCanvas *c1)