3 from AthenaConfiguration.ComponentFactory
import CompFactory
4 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
10 kwarg.setdefault(
'bdfID', flags.FPGADataPrep.bdfID)
11 kwarg.setdefault(
'xclbin', flags.FPGADataPrep.xclbin)
12 if(flags.FPGADataPrep.doF110):
13 kwarg.setdefault(
'PixelClusterKernelName',
'pixel_clustering_tool')
15 kwarg.setdefault(
'PixelClusterKernelName',
'pixclustering_top_v1_0')
16 kwarg.setdefault(
'StripClusterKernelName',
'processHits')
17 kwarg.setdefault(
'PixelL2GKernelName',
'l2g_pixel_tool')
18 kwarg.setdefault(
'StripL2GKernelName',
'l2g_strip_tool')
19 kwarg.setdefault(
'PixelEDMPrepKernelName',
'PixelEDMPrep')
20 kwarg.setdefault(
'StripEDMPrepKernelName',
'StripEDMPrep')
21 kwarg.setdefault(
'doF110', flags.FPGADataPrep.doF110)
23 if (
"isRoI_Seeded" in kwarg)
and kwarg[
"isRoI_Seeded"]:
24 if 'RegSelTool' not in kwarg:
25 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
29 acc.addService(CompFactory.ChronoStatSvc(
31 PrintSystemTime =
True,
32 PrintEllapsedTime =
True
35 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F1X0IntegrationAlg(name, **kwarg))
42 kwarg.setdefault(
'bdfID', flags.FPGADataPrep.bdfID)
43 kwarg.setdefault(
'xclbin', flags.FPGADataPrep.xclbin)
44 if(flags.FPGADataPrep.doF110):
45 kwarg.setdefault(
'PixelClusterKernelName',
'pixel_clustering_tool')
47 kwarg.setdefault(
'PixelClusterKernelName',
'pixclustering_top_v1_0')
48 kwarg.setdefault(
'StripClusterKernelName',
'processHits')
49 kwarg.setdefault(
'PixelL2GKernelName',
'l2g_pixel_tool')
50 kwarg.setdefault(
'StripL2GKernelName',
'l2g_strip_tool')
51 kwarg.setdefault(
'PixelEDMPrepKernelName',
'PixelEDMPrep')
52 kwarg.setdefault(
'StripEDMPrepKernelName',
'StripEDMPrep')
53 kwarg.setdefault(
'doF110', flags.FPGADataPrep.doF110)
55 if (
"isRoI_Seeded" in kwarg)
and kwarg[
"isRoI_Seeded"]:
56 if 'RegSelTool' not in kwarg:
57 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
61 acc.addService(CompFactory.ChronoStatSvc(
63 PrintSystemTime =
True,
64 PrintEllapsedTime =
True
67 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F1X0XRTIntegrationAlg(name, **kwarg))
74 kwarg.setdefault(
'bdfID', flags.FPGADataPrep.bdfID)
75 kwarg.setdefault(
'xclbin', flags.FPGADataPrep.xclbin)
76 kwarg.setdefault(
'PixelStartClusterKernelName',
'loaderPixel')
77 kwarg.setdefault(
'PixelEndClusterKernelName',
'unloaderPixelCluster')
78 kwarg.setdefault(
'PixelEndClusterEdmKernelName',
'unloaderPixelEdm')
80 kwarg.setdefault(
'StripStartClusterKernelName',
'loaderStrip')
81 kwarg.setdefault(
'StripEndClusterKernelName',
'unloaderStrip')
82 kwarg.setdefault(
'PixelL2GKernelName',
'l2g_pixel_tool')
83 kwarg.setdefault(
'StripL2GKernelName',
'l2g_strip_tool')
84 kwarg.setdefault(
'PixelEDMPrepKernelName',
'PixelEDMPrep')
85 kwarg.setdefault(
'StripEDMPrepKernelName',
'StripEDMPrep')
87 if (
"isRoI_Seeded" in kwarg)
and kwarg[
"isRoI_Seeded"]:
88 if 'RegSelTool' not in kwarg:
89 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
93 acc.addService(CompFactory.ChronoStatSvc(
95 PrintSystemTime =
True,
96 PrintEllapsedTime =
True
99 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F100StreamIntegrationAlg(name, **kwarg))
106 kwarg.setdefault(
'bdfID', flags.FPGADataPrep.bdfID)
107 kwarg.setdefault(
'xclbin', flags.FPGADataPrep.xclbin)
108 kwarg.setdefault(
'PixelClusterKernelName',
'pixel_clustering_tool')
109 kwarg.setdefault(
'StripClusterKernelName',
'processHits')
110 kwarg.setdefault(
'StripL2GKernelName',
'l2g_strip_tool')
111 kwarg.setdefault(
'PixelEDMPrepKernelName',
'PixelEDMPrep')
112 kwarg.setdefault(
'StripEDMPrepKernelName',
'StripEDMPrep')
114 if (
"isRoI_Seeded" in kwarg)
and kwarg[
"isRoI_Seeded"]:
115 if 'RegSelTool' not in kwarg:
116 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
120 acc.addService(CompFactory.ChronoStatSvc(
121 PrintUserTime =
True,
122 PrintSystemTime =
True,
123 PrintEllapsedTime =
True
126 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F110IntegrationAlg(name, **kwarg))
133 kwarg.setdefault(
'bdfID', flags.FPGADataPrep.bdfID)
134 kwarg.setdefault(
'xclbin', flags.FPGADataPrep.xclbin)
135 kwarg.setdefault(
'PixelStartClusterKernelName',
'pixelLoader')
136 kwarg.setdefault(
'PixelEndClusterKernelName',
'pixelUnloader')
138 kwarg.setdefault(
'StripStartClusterKernelName',
'stripLoader')
139 kwarg.setdefault(
'StripEndClusterKernelName',
'stripUnloader')
140 kwarg.setdefault(
'StripL2GKernelName',
'l2g_strip_tool')
141 kwarg.setdefault(
'PixelEDMPrepKernelName',
'PixelEDMPrep')
142 kwarg.setdefault(
'StripEDMPrepKernelName',
'StripEDMPrep')
144 if (
"isRoI_Seeded" in kwarg)
and kwarg[
"isRoI_Seeded"]:
145 if 'RegSelTool' not in kwarg:
146 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
150 acc.addService(CompFactory.ChronoStatSvc(
151 PrintUserTime =
True,
152 PrintSystemTime =
True,
153 PrintEllapsedTime =
True
156 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F110StreamIntegrationAlg(name, **kwarg))
165 if(
"FPGADataFormatTool" not in kwarg):
166 from EFTrackingFPGAPipeline.DataPrepConfig
import FPGADataFormatToolCfg
168 kwarg.setdefault(
'FPGADataFormatTool', dataFormatTool)
170 kwarg.setdefault(
'isRoI_Seeded',
False)
172 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F100DataEncodingAlg(name, **kwarg))
180 if(
"xAODClusterMaker" not in kwarg):
181 from EFTrackingFPGAPipeline.DataPrepConfig
import xAODClusterMakerCfg
183 kwarg.setdefault(
'xAODClusterMaker', clusterMakerTool)
185 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F100EDMConversionAlg(name, **kwarg))
192 from FPGAClusterSorting.FPGAClusterSortingConfig
import FPGAClusterSortingAlgCfg
195 acc.merge(ClusterSorting)
199 flags.Scheduler.ShowDataDeps=
True
200 flags.Scheduler.CheckDependencies=
True
201 flags.Debug.DumpEvtStore=
False
208 kwargs.setdefault(
'FPGAThreads', flags.Concurrency.NumThreads)
212 if(flags.FPGADataPrep.doCodeType ==
"F1X0"):
214 elif(flags.FPGADataPrep.doCodeType ==
"F1X0XRT"):
216 elif(flags.FPGADataPrep.doCodeType ==
"F100Stream"):
218 elif(flags.FPGADataPrep.doCodeType ==
"F110"):
220 elif(flags.FPGADataPrep.doCodeType ==
"F110Stream"):
223 print(
"Code Type is not recognized")
227 acc.merge(
FPGAClusterSortingCfg(flags,**{
'sortedxAODPixelClusterContainer':
'SortedFPGAPixelClusters' if runStandalone
else 'ITkPixelClusters',
228 'sortedxAODStripClusterContainer':
'SortedFPGAStripClusters' if runStandalone
else 'ITkStripClusters'}))
230 if(
not runStandalone):
231 if(
not flags.FPGADataPrep.ForTiming):
232 from FPGATrackSimReporting.FPGATrackSimReportingConfig
import FPGATrackSimReportingCfg
234 perEventReports =
False,
235 **{
'xAODPixelClusterContainers' : [
'ITkPixelClusters'],
236 'xAODStripClusterContainers' : [
'ITkStripClusters'],
237 'FPGAActsTracks' : [f
'{flags.Tracking.ActiveConfig.extension}Tracks',f
'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}PixelTracks'],
238 'isDataPrep':
True} ))
240 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import ITkPixelDetectorElementStatusAlgCfg
243 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig
import ITkStripDetectorElementStatusAlgCfg
246 if flags.Acts.EDM.PersistifyClusters
or flags.Acts.EDM.PersistifySpacePoints:
249 pixel_cluster_shortlist = [
'-pixelClusterLink']
250 strip_cluster_shortlist = [
'-sctClusterLink']
252 pixel_cluster_variables =
'.'.
join(pixel_cluster_shortlist)
253 strip_cluster_variables =
'.'.
join(strip_cluster_shortlist)
255 toAOD += [
'xAOD::PixelClusterContainer#ITkPixelClusters',
256 'xAOD::PixelClusterAuxContainer#ITkPixelClustersAux.' + pixel_cluster_variables,
257 'xAOD::StripClusterContainer#ITkStripClusters',
258 'xAOD::StripClusterAuxContainer#ITkStripClustersAux.' + strip_cluster_variables]
259 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
267 if __name__ ==
"__main__":
268 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
271 flags.Detector.EnableCalo =
False
272 flags.FPGADataPrep.DoActs =
True
273 flags.Acts.doRotCorrection =
False
275 flags.Concurrency.NumThreads = 1
276 flags.Input.Files = [
"/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/EFTracking/ATLAS-P2-RUN4-03-00-00/RDO/reg0_singlemu.root"]
278 flags.Output.AODFileName =
"FPGA.Benchmark.AOD.pool.root"
279 flags.Debug.DumpEvtStore=
False
282 if(
not flags.FPGADataPrep.ForTiming):
284 flags.FPGADataPrep.PassThrough.ClusterOnly =
True
286 if flags.FPGADataPrep.PassThrough.ClusterOnly:
287 flags.Acts.useCache =
False
288 flags.Tracking.ITkMainPass.doActsSeed =
True
290 flags.Tracking.ITkMainPass.doAthenaToActsCluster =
True
291 flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint =
True
292 flags.Tracking.ITkMainPass.doAthenaSpacePoint =
True
294 flags.Tracking.doTruth=
False
295 flags.ITk.doTruth=
False
296 flags.InDet.doTruth=
False
299 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Tracking.ITkMainPass", keepOriginal=
True)
301 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
304 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
307 if(
not flags.FPGADataPrep.ForTiming):
310 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
314 from InDetConfig.ITkTrackRecoConfig
import ITkTrackRecoCfg
317 from InDetConfig.InDetPrepRawDataToxAODConfig
import TruthParticleIndexDecoratorAlgCfg
321 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import ITkPixelDetectorElementStatusAlgCfg
328 if flags.FPGADataPrep.DoActs:
331 from EFTrackingFPGAUtility.DataPrepToActsConfig
import UseActsSpacePointFormationCfg
336 from FPGATrackSimConfTools.FPGATrackSimDataPrepConfig
import FPGATrackSimDataPrepConnectToFastTracking
338 **{
'PixelSeedingAlg.InputSpacePoints' : [
'FPGAPixelSpacePoints'],
339 'StripSeedingAlg.InputSpacePoints' : [
''],
340 'TrackFindingAlg.UncalibratedMeasurementContainerKeys' : [
"SortedFPGAPixelClusters",
"SortedFPGAStripClusters"],
341 'PixelClusterToTruthAssociationAlg.Measurements' :
'SortedFPGAPixelClusters',
342 'StripClusterToTruthAssociationAlg.Measurements' :
'SortedFPGAStripClusters'}))
343 if(
not flags.FPGADataPrep.ForTiming):
349 "xAOD::TrackParticleContainer#FPGATrackParticles",
350 "xAOD::TrackParticleAuxContainer#FPGATrackParticlesAux."
354 if(
not flags.FPGADataPrep.ForTiming):
356 "xAOD::StripClusterContainer#FPGAStripClusters",
357 "xAOD::StripClusterAuxContainer#FPGAStripClustersAux.",
358 "xAOD::PixelClusterContainer#FPGAPixelClusters",
359 "xAOD::PixelClusterAuxContainer#FPGAPixelClustersAux.",
362 from EFTrackingFPGAOutputValidation.FPGAOutputValidationConfig
import FPGAOutputValidationCfg
364 "pixelKeys": [
"FPGAPixelClusters",
"ITkPixelClusters"],
365 "stripKeys": [
"FPGAStripClusters",
"ITkStripClusters"],
366 'doDiffHistograms':
True,
368 'allowedRdoMisses': 1000}))
372 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
373 from AthenaConfiguration.Enums
import MetadataCategory
376 MetadataCategory.ByteStreamMetaData,
377 MetadataCategory.LumiBlockMetaData,
378 MetadataCategory.TruthMetaData,
379 MetadataCategory.IOVMetaData,],))
381 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
382 cfg.merge(
addToAOD(flags, OutputItemList))
387 cfg.foreach_component(
"AthEventSeq/*").OutputLevel = DEBUG
388 cfg.printConfig(withDetails=
True, summariseProps=
True)
389 cfg.store(
open(
"F100IntegrationAlg.pkl",
"wb"))
390 cfg.run(flags.Exec.MaxEvents)