ATLAS Offline Software
F150KernelTesterConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 
6 def KernelTesterCfg(flags, name = 'F150BenchmarkAlg', **kwarg):
8 
9  kwarg.setdefault('bdfID', flags.FPGADataPrep.bdfID) # On the testbed
10  kwarg.setdefault('xclbin', flags.FPGADataPrep.xclbin)
11 
12  kwarg.setdefault('RunSlicing', False)
13  kwarg.setdefault('RunInsideOut', False)
14  kwarg.setdefault('RunInsideOutOnSlicingEngine', False)
15  kwarg.setdefault('RunFullF150', True)
16  kwarg.setdefault('outputTextFile', False)
17  kwarg.setdefault('doEmulation', False)
18 
19  kwarg.setdefault('SlicingEngineInputName', 'configurableLengthWideLoader')
20  kwarg.setdefault('SlicingEngineOutputName', 'dynamicLengthWideUnloader')
21 
22  kwarg.setdefault('InsideOutInputName', 'krnl_mm2s')
23  kwarg.setdefault('InsideOutOutputName', 'mem_write')
24 
25  kwarg.setdefault('PixelClusterKernelName','pixel_clustering_tool')
26  kwarg.setdefault('StripClusterKernelName','processHits')
27  kwarg.setdefault('StripL2GKernelName','l2g_strip_tool')
28  kwarg.setdefault('PixelEDMPrepKernelName', 'PixelEDMPrep')
29  kwarg.setdefault('StripEDMPrepKernelName', 'StripEDMPrep')
30 
31  kwarg.setdefault('FPGATrackSimHitKey_1st', 'FPGAHits_1st_reg' + str(flags.Trigger.FPGATrackSim.regionList[0]))
32  kwarg.setdefault('FPGATrackSimTrack1stKey', 'FPGATracks_1st_reg' + str(flags.Trigger.FPGATrackSim.regionList[0]))
33 
34  # Set up Cluster maker tool
35  from EFTrackingFPGAPipeline.DataPrepConfig import xAODClusterMakerCfg
36  clusterMakerTool = acc.popToolsAndMerge(xAODClusterMakerCfg(flags))
37  kwarg.setdefault('xAODClusterMaker', clusterMakerTool)
38 
39  # Set up TestVectorTool
40  from EFTrackingFPGAUtility.FPGADataFormatter import FPGATestVectorToolCfg
41  testVectorTool = acc.popToolsAndMerge(FPGATestVectorToolCfg(flags))
42  kwarg.setdefault('TestVectorTool', testVectorTool)
43 
44  outputTool = acc.popToolsAndMerge(FPGAOutputConversionToolCfg(flags))
45  kwarg.setdefault('OutputConversionTool', outputTool)
46 
47  # Set up Chrono service
48  acc.addService(CompFactory.ChronoStatSvc(
49  PrintUserTime = True,
50  PrintSystemTime = True,
51  PrintEllapsedTime = True
52  ))
53 
54  alg = CompFactory.EFTrackingFPGAIntegration.F150KernelTesterAlg(**kwarg)
55  acc.addEventAlgo(alg)
56 
57  return acc
58 
59 def F150EDMConversionAlgCfg(flags, **kwarg):
60  acc = ComponentAccumulator()
61 
62  kwarg.setdefault('FPGAOutputTrackKey', "FPGATrackOutput")
63  kwarg.setdefault('FPGASpacePointsKey', "ITkPixelSpacePoints")
64  kwarg.setdefault('OutputSeeds', "ActsValidateF150PixelSeeds")
65 
66  alg = CompFactory.EFTrackingFPGAIntegration.F150EDMConversionAlg(**kwarg)
67  acc.addEventAlgo(alg)
68 
69  return acc
70 
71 
72 def FPGAOutputConversionToolCfg(flags, name = 'FPGAOutputConversionTool', **kwarg):
73 
74  acc = ComponentAccumulator()
75 
76  kwarg.setdefault('name', name)
77  acc.setPrivateTools(CompFactory.OutputConversionTool(**kwarg))
78 
79  return acc
80 
81 
82 
83 if __name__ == "__main__":
84  from AthenaConfiguration.AllConfigFlags import initConfigFlags
85  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
86 
87  flags = initConfigFlags()
88 
89 
91  FinalProtoTrackChainxAODTracksKey="FPGA"
92  flags.Detector.EnableCalo = False
93 
94  # ensure that the xAOD SP and cluster containers are available
95  flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint=True
96  flags.Tracking.ITkMainPass.doAthenaToActsCluster=True
97  from ActsConfig.ActsCIFlags import actsLegacyWorkflowFlags
99  flags.Acts.doRotCorrection = False
100 
101 
102  flags.Concurrency.NumThreads=1
103  #flags.Concurrency.NumProcs=0
104  flags.Scheduler.ShowDataDeps=True
105  flags.Scheduler.CheckDependencies=True
106  flags.Debug.DumpEvtStore=False
107  # single muon
108  #flags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/EFTracking/ATLAS-P2-RUN4-03-00-00/RDO/reg0_singlemu.root"]
109  # ttbar
110  flags.Input.Files = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/RDO/ATLAS-P2-RUN4-03-00-00/mc21_14TeV.601229.PhPy8EG_A14_ttbar_hdamp258p75_SingleLep.recon.RDO.e8481_s4149_r14700/RDO.33629020._000047.pool.root.1"]
111 
112  flags.fillFromArgs()
113 
114  # Additional (necessary) flag re-configuration for mutliregion tracking
115  from FPGATrackSimConfTools.FPGATrackSimAnalysisConfig import ConfigureMultiRegionFlags
117 
118  flags.Trigger.FPGATrackSim.tracking = False
119  flags.Trigger.FPGATrackSim.Hough.genScan = True
120  flags.Trigger.FPGATrackSim.Hough.secondStage = False
121 
122  flags.lock()
123  flags.dump()
124  flags = flags.cloneAndReplace("Tracking.ActiveConfig","Tracking.MainPass")
125  cfg=MainServicesCfg(flags)
126 
127  from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
128  cfg.merge(PoolReadCfg(flags))
129 
130  if flags.Input.isMC:
131  from xAODTruthCnv.xAODTruthCnvConfig import GEN_AOD2xAODCfg
132  cfg.merge(GEN_AOD2xAODCfg(flags))
133 
134  from JetRecConfig.JetRecoSteering import addTruthPileupJetsToOutputCfg # TO DO: check if this is indeed necessary for pileup samples
135  cfg.merge(addTruthPileupJetsToOutputCfg(flags))
136 
137  if flags.Detector.EnableCalo:
138  from CaloRec.CaloRecoConfig import CaloRecoCfg
139  cfg.merge(CaloRecoCfg(flags))
140 
141  if flags.Tracking.recoChain:
142  from InDetConfig.TrackRecoConfig import InDetTrackRecoCfg
143  cfg.merge(InDetTrackRecoCfg(flags))
144 
145 
146  # Configure both the dataprep and logical hits algorithms.
147  from InDetConfig.InDetPrepRawDataFormationConfig import ITkXAODToInDetClusterConversionCfg
148  cfg.merge(ITkXAODToInDetClusterConversionCfg(flags)) # needed for the FPGATrackSim DataPrep to work
149  from FPGATrackSimConfTools.FPGATrackSimDataPrepConfig import FPGATrackSimDataPrepAlgCfg
150  cfg.merge(FPGATrackSimDataPrepAlgCfg(flags))
151  from FPGATrackSimConfTools.FPGATrackSimMultiRegionConfig import FPGATrackSimMultiRegionTrackingCfg
152  cfg.merge(FPGATrackSimMultiRegionTrackingCfg(flags))
153 
154  kwarg = {}
155  acc = KernelTesterCfg(flags, **kwarg)
156  cfg.merge(acc)
157 
158  from AthenaCommon.Constants import DEBUG
159  cfg.foreach_component("AthEventSeq/*").OutputLevel = DEBUG
160 
161  cfg.printConfig(withDetails=True, summariseProps=True)
162 
163  cfg.run(flags.Exec.MaxEvents)
164 
python.FPGATrackSimDataPrepConfig.FPGATrackSimDataPrepAlgCfg
def FPGATrackSimDataPrepAlgCfg(inputFlags)
Definition: FPGATrackSimDataPrepConfig.py:376
python.CaloRecoConfig.CaloRecoCfg
def CaloRecoCfg(flags, clustersname=None)
Definition: CaloRecoConfig.py:9
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:342
F150KernelTesterConfig.FPGAOutputConversionToolCfg
def FPGAOutputConversionToolCfg(flags, name='FPGAOutputConversionTool', **kwarg)
Definition: F150KernelTesterConfig.py:72
xAODTruthCnvConfig.GEN_AOD2xAODCfg
def GEN_AOD2xAODCfg(flags, name="GEN_AOD2xAOD", **kwargs)
Definition: xAODTruthCnvConfig.py:22
F150KernelTesterConfig.KernelTesterCfg
def KernelTesterCfg(flags, name='F150BenchmarkAlg', **kwarg)
Definition: F150KernelTesterConfig.py:6
python.FPGATrackSimMultiRegionConfig.FPGATrackSimMultiRegionTrackingCfg
def FPGATrackSimMultiRegionTrackingCfg(flags)
Definition: FPGATrackSimMultiRegionConfig.py:6
FPGADataFormatter.FPGATestVectorToolCfg
def FPGATestVectorToolCfg(flags, name='FPGATestVectorTool', **kwarg)
Definition: FPGADataFormatter.py:16
python.FPGATrackSimAnalysisConfig.ConfigureMultiRegionFlags
def ConfigureMultiRegionFlags(flags)
Definition: FPGATrackSimAnalysisConfig.py:782
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:310
Constants
some useful constants -------------------------------------------------—
python.InDetPrepRawDataFormationConfig.ITkXAODToInDetClusterConversionCfg
def ITkXAODToInDetClusterConversionCfg(flags, name="ITkXAODToInDetClusterConversion", **kwargs)
Definition: InDetPrepRawDataFormationConfig.py:66
python.JetRecoSteering.addTruthPileupJetsToOutputCfg
def addTruthPileupJetsToOutputCfg(flags, toAOD=True, toESD=True)
Definition: JetRecoSteering.py:7
DataPrepConfig.xAODClusterMakerCfg
def xAODClusterMakerCfg(flags, name='xAODClusterMaker', **kwarg)
Definition: DataPrepConfig.py:31
python.TrackRecoConfig.InDetTrackRecoCfg
def InDetTrackRecoCfg(flags)
Main ID tracking config #####################.
Definition: TrackRecoConfig.py:804
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
ActsCIFlags.actsLegacyWorkflowFlags
None actsLegacyWorkflowFlags(flags)
Definition: ActsCIFlags.py:7
F150KernelTesterConfig.F150EDMConversionAlgCfg
def F150EDMConversionAlgCfg(flags, **kwarg)
Definition: F150KernelTesterConfig.py:59
str
Definition: BTagTrackIpAccessor.cxx:11
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:71