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