ATLAS Offline Software
PathfinderHlsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 if __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-3/F600_Region34_SingleMuon/pattern_reco_output.txt",
14  )
15 
16  argumentParser.add_argument(
17  "--trackTestVectorPath",
18  default = "/eos/project/a/atlas-eftracking/TestVectors/FPGATrackSim_TVs/Test_Vectors_v0-6-3/F600_Region34_SingleMuon/spacepoint_strips_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  "--verbose",
34  action = "store_true",
35  )
36 
37  arguments = argumentParser.parse_args()
38 
39  from AthenaConfiguration.AllConfigFlags import initConfigFlags
40  flags = initConfigFlags()
41 
42  if arguments.verbose:
43  from AthenaCommon.Constants import DEBUG
44  flags.Exec.OutputLevel = DEBUG
45 
46  flags.lock()
47 
48  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
49  acc = MainServicesCfg(flags)
50 
51  from AthenaConfiguration.ComponentFactory import CompFactory
52  acc.addService(CompFactory.ChronoStatSvc(
53  PrintUserTime = True,
54  PrintSystemTime = True,
55  PrintEllapsedTime = True,
56  ))
57 
58  acc.addService(CompFactory.AthXRT.DeviceMgmtSvc(XclbinPathsList = [arguments.xclbinPath]))
59 
60  from EFTrackingFPGAUtility.EFTrackingDataStreamLoaderAlgorithmConfig import EFTrackingDataStreamLoaderAlgorithmCfg
62  flags,
63  name = "trackDataStreamLoader",
64  bufferSize = arguments.bufferSize,
65  inputCsvPath = arguments.trackTestVectorPath,
66  inputDataStream = "inputTrackDataStream",
67  ))
68 
70  flags,
71  name = "hitDataStreamLoader",
72  bufferSize = arguments.bufferSize,
73  inputCsvPath = arguments.hitTestVectorPath,
74  inputDataStream = "inputHitDataStream",
75  ))
76 
77  from EFTrackingFPGAPipeline.EFTrackingXrtAlgorithmConfig import EFTrackingXrtAlgorithmCfg
78  acc.merge(EFTrackingXrtAlgorithmCfg(
79  flags,
80  inputInterfaces = [
81  ["loader:{loader_1}", "inputTrackDataStream", 0],
82  ["loader:{loader_2}", "inputHitDataStream", 0],
83  ],
84  outputInterfaces = [
85  ["unloader:{unloader_1}", "outputDataStream", 1],
86  ],
87  ))
88 
89  from EFTrackingFPGAUtility.EFTrackingDataStreamUnloaderAlgorithmConfig import EFTrackingDataStreamUnloaderAlgorithmCfg
91  flags,
92  outputCsvPath = arguments.outputPath,
93  outputDataStream = "outputDataStream",
94  ))
95 
96  acc.run(2)
97 
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
Constants
some useful constants -------------------------------------------------—
EFTrackingDataStreamUnloaderAlgorithmConfig.EFTrackingDataStreamUnloaderAlgorithmCfg
def EFTrackingDataStreamUnloaderAlgorithmCfg(flags, **kwargs)
Definition: EFTrackingDataStreamUnloaderAlgorithmConfig.py:4
EFTrackingXrtAlgorithmConfig.EFTrackingXrtAlgorithmCfg
def EFTrackingXrtAlgorithmCfg(flags, **kwargs)
Definition: EFTrackingXrtAlgorithmConfig.py:3
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
EFTrackingDataStreamLoaderAlgorithmConfig.EFTrackingDataStreamLoaderAlgorithmCfg
def EFTrackingDataStreamLoaderAlgorithmCfg(flags, **kwargs)
Definition: EFTrackingDataStreamLoaderAlgorithmConfig.py:4