ATLAS Offline Software
Loading...
Searching...
No Matches
PathfinderHlsConfig.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 "--hitTestVectorPath",
13 default = "/eos/project/a/atlas-eftracking/TestVectors/FPGATrackSim_TVs/Test_Vectors_v0-6-3d/F150_Region34_SingleMuon/stripL2G_output.txt",
14 )
15
16 argumentParser.add_argument(
17 "--trackTestVectorPath",
18 default = "/eos/project/a/atlas-eftracking/TestVectors/FPGATrackSim_TVs/Test_Vectors_v0-6-3d/F150_Region34_SingleMuon/pattern_reco_output.txt",
19 )
20
21 argumentParser.add_argument(
22 "--outputPath",
23 default = "pathfinder_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 GHITZTxtInputPaths = [
72 arguments.trackTestVectorPath,
73 arguments.hitTestVectorPath,
74 ],
75 GHITZTxtInputKeys = [
76 "pattern_reco_output",
77 "stripL2G_output",
78 ],
79 ))
80
81 from EFTrackingFPGAPipeline.EFTrackingXrtAlgorithmConfig import EFTrackingXrtAlgorithmCfg
82 acc.merge(EFTrackingXrtAlgorithmCfg(
83 flags,
84 inputInterfaces = [
85 ["configurableLengthWideLoader:{configurableLengthWideLoader_1}", "pattern_reco_output", 0],
86 ["configurableLengthWideLoader:{configurableLengthWideLoader_2}", "stripL2G_output", 0],
87 ],
88 outputInterfaces = [
89 ["dynamicLengthWideUnloader:{dynamicLengthWideUnloader_1}", "pathfinder_output", 1],
90 ],
91 vSizeInterfaces = [
92 ["configurableLengthWideLoader:{configurableLengthWideLoader_1}", "pattern_reco_output", 2],
93 ["configurableLengthWideLoader:{configurableLengthWideLoader_2}", "stripL2G_output", 2],
94 ],
95 kernelOrder = [
96 [
97 "configurableLengthWideLoader:{configurableLengthWideLoader_1}",
98 "configurableLengthWideLoader:{configurableLengthWideLoader_2}",
99 "dynamicLengthWideUnloader:{dynamicLengthWideUnloader_1}",
100 ],
101 ]
102 ))
103
104 from EFTrackingFPGAUtility.EFTrackingDataStreamUnloaderAlgorithmConfig import EFTrackingDataStreamUnloaderAlgorithmCfg
105 acc.merge(EFTrackingDataStreamUnloaderAlgorithmCfg(
106 flags,
107 name = "dataStreamUnloader",
108 GHITZTxtInputPaths = [
109 arguments.outputPath,
110 ],
111 GHITZTxtInputKeys = [
112 "pathfinder_output",
113 ],
114 ))
115
116 acc.run(arguments.events)
117