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(
'EDMPrepKernelName',
'EDMPrep')
20 kwarg.setdefault(
'PixelEDMPrepKernelName',
'PixelEDMPrep')
21 kwarg.setdefault(
'StripEDMPrepKernelName',
'StripEDMPrep')
22 kwarg.setdefault(
'doF110', flags.FPGADataPrep.doF110)
24 if (
"isRoI_Seeded" in kwarg)
and kwarg[
"isRoI_Seeded"]:
25 if 'RegSelTool' not in kwarg:
26 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
30 acc.addService(CompFactory.ChronoStatSvc(
32 PrintSystemTime =
True,
33 PrintEllapsedTime =
True
36 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F100IntegrationAlg(name, **kwarg))
43 kwarg.setdefault(
'bdfID', flags.FPGADataPrep.bdfID)
44 kwarg.setdefault(
'xclbin', flags.FPGADataPrep.xclbin)
45 kwarg.setdefault(
'PixelClusterKernelName',
'pixel_clustering_tool')
46 kwarg.setdefault(
'StripClusterKernelName',
'processHits')
47 kwarg.setdefault(
'StripL2GKernelName',
'l2g_strip_tool')
48 kwarg.setdefault(
'PixelEDMPrepKernelName',
'PixelEDMPrep')
49 kwarg.setdefault(
'StripEDMPrepKernelName',
'StripEDMPrep')
51 if (
"isRoI_Seeded" in kwarg)
and kwarg[
"isRoI_Seeded"]:
52 if 'RegSelTool' not in kwarg:
53 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
57 acc.addService(CompFactory.ChronoStatSvc(
59 PrintSystemTime =
True,
60 PrintEllapsedTime =
True
63 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F110IntegrationAlg(name, **kwarg))
72 if(
"FPGADataFormatTool" not in kwarg):
73 from EFTrackingFPGAPipeline.DataPrepConfig
import FPGADataFormatToolCfg
75 kwarg.setdefault(
'FPGADataFormatTool', dataFormatTool)
77 kwarg.setdefault(
'isRoI_Seeded',
False)
79 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F100DataEncodingAlg(name, **kwarg))
87 if(
"xAODClusterMaker" not in kwarg):
88 from EFTrackingFPGAPipeline.DataPrepConfig
import xAODClusterMakerCfg
90 kwarg.setdefault(
'xAODClusterMaker', clusterMakerTool)
92 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F100EDMConversionAlg(name, **kwarg))
99 from FPGAClusterSorting.FPGAClusterSortingConfig
import FPGAClusterSortingAlgCfg
102 acc.merge(ClusterSorting)
106 flags.Scheduler.ShowDataDeps=
True
107 flags.Scheduler.CheckDependencies=
True
108 flags.Debug.DumpEvtStore=
False
115 kwargs.setdefault(
'FPGAThreads', flags.Concurrency.NumThreads)
119 if(flags.FPGADataPrep.doCodeType ==
"F100"):
121 elif(flags.FPGADataPrep.doCodeType ==
"F110"):
125 acc.merge(
FPGAClusterSortingCfg(flags,**{
'sortedxAODPixelClusterContainer':
'SortedFPGAPixelClusters' if runStandalone
else 'ITkPixelClusters',
126 'sortedxAODStripClusterContainer':
'SortedFPGAStripClusters' if runStandalone
else 'ITkStripClusters'}))
128 if(
not runStandalone):
129 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import ITkPixelDetectorElementStatusAlgCfg
132 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig
import ITkStripDetectorElementStatusAlgCfg
135 if flags.Acts.EDM.PersistifyClusters
or flags.Acts.EDM.PersistifySpacePoints:
138 pixel_cluster_shortlist = [
'-pixelClusterLink']
139 strip_cluster_shortlist = [
'-sctClusterLink']
141 pixel_cluster_variables =
'.'.
join(pixel_cluster_shortlist)
142 strip_cluster_variables =
'.'.
join(strip_cluster_shortlist)
144 toAOD += [
'xAOD::PixelClusterContainer#ITkPixelClusters',
145 'xAOD::PixelClusterAuxContainer#ITkPixelClustersAux.' + pixel_cluster_variables,
146 'xAOD::StripClusterContainer#ITkStripClusters',
147 'xAOD::StripClusterAuxContainer#ITkStripClustersAux.' + strip_cluster_variables]
148 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
156 if __name__ ==
"__main__":
157 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
160 flags.Detector.EnableCalo =
False
161 flags.FPGADataPrep.DoActs =
True
162 flags.Acts.doRotCorrection =
False
164 flags.Concurrency.NumThreads = 1
165 flags.Input.Files = [
"/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/EFTracking/ATLAS-P2-RUN4-03-00-00/RDO/reg0_singlemu.root"]
167 flags.Output.AODFileName =
"FPGA.Benchmark.AOD.pool.root"
168 flags.Debug.DumpEvtStore=
False
171 if(
not flags.FPGADataPrep.ForTiming):
173 flags.FPGADataPrep.PassThrough.ClusterOnly =
True
175 if flags.FPGADataPrep.PassThrough.ClusterOnly:
176 flags.Acts.useCache =
False
177 flags.Tracking.ITkMainPass.doActsSeed =
True
179 flags.Tracking.ITkMainPass.doAthenaToActsCluster =
True
180 flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint =
True
181 flags.Tracking.ITkMainPass.doAthenaSpacePoint =
True
183 flags.Tracking.doTruth=
False
184 flags.ITk.doTruth=
False
185 flags.InDet.doTruth=
False
188 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Tracking.ITkMainPass", keepOriginal=
True)
190 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
193 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
196 if(
not flags.FPGADataPrep.ForTiming):
199 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
203 from InDetConfig.ITkTrackRecoConfig
import ITkTrackRecoCfg
206 from InDetConfig.InDetPrepRawDataToxAODConfig
import TruthParticleIndexDecoratorAlgCfg
210 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import ITkPixelDetectorElementStatusAlgCfg
217 if flags.FPGADataPrep.DoActs:
220 from EFTrackingFPGAUtility.DataPrepToActsConfig
import UseActsSpacePointFormationCfg
225 from FPGATrackSimConfTools.FPGATrackSimDataPrepConfig
import FPGATrackSimDataPrepConnectToFastTracking
227 **{
'PixelSeedingAlg.InputSpacePoints' : [
'FPGAPixelSpacePoints'],
228 'StripSeedingAlg.InputSpacePoints' : [
''],
229 'TrackFindingAlg.UncalibratedMeasurementContainerKeys' : [
"SortedFPGAPixelClusters",
"SortedFPGAStripClusters"],
230 'PixelClusterToTruthAssociationAlg.Measurements' :
'SortedFPGAPixelClusters',
231 'StripClusterToTruthAssociationAlg.Measurements' :
'SortedFPGAStripClusters'}))
232 if(
not flags.FPGADataPrep.ForTiming):
238 "xAOD::TrackParticleContainer#FPGATrackParticles",
239 "xAOD::TrackParticleAuxContainer#FPGATrackParticlesAux."
243 if(
not flags.FPGADataPrep.ForTiming):
245 "xAOD::StripClusterContainer#FPGAStripClusters",
246 "xAOD::StripClusterAuxContainer#FPGAStripClustersAux.",
247 "xAOD::PixelClusterContainer#FPGAPixelClusters",
248 "xAOD::PixelClusterAuxContainer#FPGAPixelClustersAux.",
251 from EFTrackingFPGAOutputValidation.FPGAOutputValidationConfig
import FPGAOutputValidationCfg
253 "pixelKeys": [
"FPGAPixelClusters",
"ITkPixelClusters"],
254 "stripKeys": [
"FPGAStripClusters",
"ITkStripClusters"],
255 'doDiffHistograms':
True,
257 'allowedRdoMisses': 1000}))
261 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
262 from AthenaConfiguration.Enums
import MetadataCategory
265 MetadataCategory.ByteStreamMetaData,
266 MetadataCategory.LumiBlockMetaData,
267 MetadataCategory.TruthMetaData,
268 MetadataCategory.IOVMetaData,],))
270 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
271 cfg.merge(
addToAOD(flags, OutputItemList))
276 cfg.foreach_component(
"AthEventSeq/*").OutputLevel = DEBUG
277 cfg.printConfig(withDetails=
True, summariseProps=
True)
278 cfg.store(
open(
"F100IntegrationAlg.pkl",
"wb"))
279 cfg.run(flags.Exec.MaxEvents)