ATLAS Offline Software
Loading...
Searching...
No Matches
F150_i_TestConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3if __name__ == "__main__":
4 from argparse import ArgumentParser
5 argumentParser = ArgumentParser()
6 argumentParser.add_argument(
7 "--xclbinPath",
8 default = "/eos/project/a/atlas-eftracking/FPGA_compilation/FPGA_compilation_hw/22_pathfinder_HLS/Pathfinder_hw.xclbin",
9 )
10
11 argumentParser.add_argument(
12 "--inputPath",
13 default = "/eos/project-a/atlas-eftracking/TestVectors/FPGATrackSim_TVs/Test_Vectors_v0-6-3c/F150_Region34_SingleMuon/stripL2G_output.txt",
14 )
15
16 argumentParser.add_argument(
17 "--slicingEngineOutputPath",
18 default = "slicing_engine_output.txt",
19 )
20
21 argumentParser.add_argument(
22 "--insideOutOutputPath",
23 default = "inside_out_output.txt",
24 )
25
26 argumentParser.add_argument(
27 "--bufferSize",
28 type = int,
29 default = 8192,
30 )
31
32 argumentParser.add_argument(
33 "--events",
34 type = int,
35 default = 2,
36 )
37
38 argumentParser.add_argument(
39 "--verbose",
40 action = "store_true",
41 )
42
43 arguments = argumentParser.parse_args()
44
45 from AthenaConfiguration.AllConfigFlags import initConfigFlags
46 flags = initConfigFlags()
47
48 if arguments.verbose:
49 from AthenaCommon.Constants import DEBUG
50 flags.Exec.OutputLevel = DEBUG
51
52 flags.lock()
53
54 from AthenaConfiguration.MainServicesConfig import MainServicesCfg
55 acc = MainServicesCfg(flags)
56
57 from AthenaConfiguration.ComponentFactory import CompFactory
58 acc.addService(CompFactory.ChronoStatSvc(
59 PrintUserTime = True,
60 PrintSystemTime = True,
61 PrintEllapsedTime = True,
62 ))
63
64 acc.addService(CompFactory.AthXRT.DeviceMgmtSvc(XclbinPathsList = [arguments.xclbinPath]))
65
66 from EFTrackingFPGAUtility.EFTrackingDataStreamLoaderAlgorithmConfig import EFTrackingDataStreamLoaderAlgorithmCfg
67 acc.merge(EFTrackingDataStreamLoaderAlgorithmCfg(
68 flags,
69 name = "dataStreamLoader",
70 bufferSize = arguments.bufferSize,
71 inputCsvPath = arguments.inputPath,
72 inputDataStream = "inputDataStream",
73 ))
74
75 from EFTrackingFPGAPipeline.EFTrackingXrtAlgorithmConfig import EFTrackingXrtAlgorithmCfg
76 acc.merge(EFTrackingXrtAlgorithmCfg(
77 flags,
78 bufferSize = arguments.bufferSize,
79 inputInterfaces = [
80 ["configurableLengthWideLoader:{configurableLengthWideLoader_1}", "inputDataStream", 0],
81 ],
82 outputInterfaces = [
83 ["dynamicLengthWideUnloader:{dynamicLengthWideUnloader_1}", "slicingEngineOutputDataStream", 1],
84 ["mem_write", "insideOutOutputDataStream", 0]
85 ],
86 vSizeInterfaces = [
87 ["configurableLengthWideLoader:{configurableLengthWideLoader_1}", "inputDataStream", 2],
88 ],
89 sharedInterfaces = [
90 ["mem_read", 0, "dynamicLengthWideUnloader:{dynamicLengthWideUnloader_1}", 1],
91 ],
92 kernelOrder = [
93 [
94 "configurableLengthWideLoader:{configurableLengthWideLoader_1}",
95 "dynamicLengthWideUnloader:{dynamicLengthWideUnloader_1}",
96 ],
97 [
98 "mem_read",
99 "mem_write",
100 ],
101 ],
102 ))
103
104 from EFTrackingFPGAUtility.EFTrackingDataStreamUnloaderAlgorithmConfig import EFTrackingDataStreamUnloaderAlgorithmCfg
105 acc.merge(EFTrackingDataStreamUnloaderAlgorithmCfg(
106 flags,
107 name = "slicingEngineDataStreamUnloaderAlgorithm",
108 outputCsvPath = arguments.slicingEngineOutputPath,
109 outputDataStream = "slicingEngineOutputDataStream",
110 ))
111
112 acc.merge(EFTrackingDataStreamUnloaderAlgorithmCfg(
113 flags,
114 name = "insideOutDataStreamUnloaderAlgorithm",
115 outputCsvPath = arguments.insideOutOutputPath,
116 outputDataStream = "insideOutOutputDataStream",
117 ))
118
119 acc.run(arguments.events)
120