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