ATLAS Offline Software
Loading...
Searching...
No Matches
MuonPrepDataCnvCfg.py
Go to the documentation of this file.
2#Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory import CompFactory
6
7def xRpcToRpcPrepDataCnvAlgCfg(flags,name = "xAODRpcToPrepDataCnvAlg", **kwargs):
8 result = ComponentAccumulator()
9 the_alg = CompFactory.MuonR4.xRpcMeasToRpcTrkPrdCnvAlg(name, **kwargs)
10 result.addEventAlgo(the_alg, primary = True)
11 return result
12
13def MuonPrepDataToxAODCnvAlg(flags,name="MuonPrepDataToxAODCnvAlg", **kwargs):
14 result = ComponentAccumulator()
15 the_alg = CompFactory.Muon.PRDxAODConvertorAlg(name=name, **kwargs)
16 result.addEventAlgo(the_alg, primary = True)
17 return result
18
20 from argparse import ArgumentParser
21 from AthenaCommon.TestDefaults import defaultTestFiles
22
23 parser = ArgumentParser()
24 parser.add_argument("-t", "--threads", dest="threads", type=int, help="number of threads", default=1)
25 parser.add_argument("-o", "--output", dest="output", default='PrepDataTest.pool.root', help="Text file containing each cabling channel", metavar="FILE")
26 parser.add_argument("--inputFile", "-i", default=defaultTestFiles.ESD_RUN3_MC,
27 help="Input file to run on ", nargs="+")
28 return parser
29
30def setupTestOutputCfg(flags,**kwargs):
31
32 kwargs.setdefault("streamName","MPRDTestStream")
33 kwargs.setdefault("AcceptAlgs",[])
34
35 result = ComponentAccumulator()
36
40 container_items = ["xAOD::MdtDriftCircleContainer#", "xAOD::MdtDriftCircleAuxContainer#",
41 "xAOD::RpcStripContainer#", "xAOD::RpcStripAuxContainer#",
42 "xAOD::TgcStripContainer#", "xAOD::TgcStripAuxContainer#",
43 "xAOD::MMClusterContainer#", "xAOD::MMClusterAuxContainer#",
44 "xAOD::sTgcStripContainer#", "xAOD::sTgcStripAuxContaine#",
45 "xAOD::sTgcWireContainer#", "xAOD::sTgcWireAuxContainer#",
46 "xAOD::sTgcPadContainer#", "xAOD::sTgcPadAuxContainer#",
47 ]
48 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
49 kwargs.setdefault("ItemList", container_items)
50 result.merge(OutputStreamCfg(flags, **kwargs))
51 return result
52
53
54if __name__ == "__main__":
55 from MuonCondTest.MdtCablingTester import setupServicesCfg
56 from AthenaConfiguration.AllConfigFlags import initConfigFlags
57 args = SetupArgParser().parse_args()
58
59 flags = initConfigFlags()
60 flags.Concurrency.NumThreads = args.threads
61 flags.Concurrency.NumConcurrentEvents = args.threads # Might change this later, but good enough for the moment.
62 flags.Output.doWriteDAOD = True
63 flags.Input.Files = args.inputFile
64 flags.addFlag("Output.MPRDTestStreamFileName", args.output)
65 flags.addFlag("Output.doWriteMPRDTestStream", True)
66 flags.lock()
67
68 cfg = setupServicesCfg(flags)
69 from MuonConfig.MuonDataPrepConfig import xAODUncalibMeasPrepCfg
70 cfg.merge(xAODUncalibMeasPrepCfg(flags))
71 cfg.merge(MuonPrepDataToxAODCnvAlg(flags))
72 cfg.merge(setupTestOutputCfg(flags))
73
74 cfg.printConfig(withDetails=True, summariseProps=True)
75 flags.dump()
76
77 sc = cfg.run(-1)
78 if not sc.isSuccess():
79 import sys
80 sys.exit("Execution failed")
81
MuonPrepDataToxAODCnvAlg(flags, name="MuonPrepDataToxAODCnvAlg", **kwargs)
setupTestOutputCfg(flags, **kwargs)
xRpcToRpcPrepDataCnvAlgCfg(flags, name="xAODRpcToPrepDataCnvAlg", **kwargs)