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)
13 kwarg.setdefault(
'PixelClusterKernelName',
'pixel_clustering_tool')
14 kwarg.setdefault(
'StripClusterKernelName',
'processHits')
15 kwarg.setdefault(
'StripL2GKernelName',
'l2g_strip_tool')
16 kwarg.setdefault(
'PixelEDMPrepKernelName',
'PixelEDMPrep')
17 kwarg.setdefault(
'StripEDMPrepKernelName',
'StripEDMPrep')
18 kwarg.setdefault(
'SlicingEngineInputName',
'configurableLengthWideLoader')
19 kwarg.setdefault(
'SlicingEngineOutputName',
'dynamicLengthWideUnloader')
20 kwarg.setdefault(
'InsideOutInputName',
'mem_read')
21 kwarg.setdefault(
'InsideOutOutputName',
'mem_write')
24 acc.addService(CompFactory.ChronoStatSvc(
26 PrintSystemTime =
True,
27 PrintEllapsedTime =
True
30 acc.addEventAlgo(CompFactory.EFTrackingFPGAIntegration.F150IntegrationAlg(name, **kwarg))
38 kwargs.setdefault(
'FPGAThreads', flags.Concurrency.NumThreads)
40 from EFTrackingFPGAPipeline.F100IntegrationConfig
import F100DataEncodingCfg, F100EDMConversionCfg, FPGAClusterSortingCfg
46 acc.merge(
FPGAClusterSortingCfg(flags,**{
'sortedxAODPixelClusterContainer':
'SortedFPGAPixelClusters' if runStandalone
else 'ITkPixelClusters',
47 'sortedxAODStripClusterContainer':
'SortedFPGAStripClusters' if runStandalone
else 'ITkStripClusters'}))
49 if(
not runStandalone):
50 if(
not flags.FPGADataPrep.ForTiming):
51 from FPGATrackSimReporting.FPGATrackSimReportingConfig
import FPGATrackSimReportingCfg
53 perEventReports =
False,
54 **{
'xAODPixelClusterContainers' : [
'ITkPixelClusters'],
55 'xAODStripClusterContainers' : [
'ITkStripClusters'],
56 'FPGAActsTracks' : [f
'{flags.Tracking.ActiveConfig.extension}Tracks',f
'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}PixelTracks'],
57 'isDataPrep':
True} ))
59 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import ITkPixelDetectorElementStatusAlgCfg
62 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig
import ITkStripDetectorElementStatusAlgCfg
65 if flags.Acts.EDM.PersistifyClusters
or flags.Acts.EDM.PersistifySpacePoints:
68 pixel_cluster_shortlist = [
'-pixelClusterLink']
69 strip_cluster_shortlist = [
'-sctClusterLink']
71 pixel_cluster_variables =
'.'.
join(pixel_cluster_shortlist)
72 strip_cluster_variables =
'.'.
join(strip_cluster_shortlist)
74 toAOD += [
'xAOD::PixelClusterContainer#ITkPixelClusters',
75 'xAOD::PixelClusterAuxContainer#ITkPixelClustersAux.' + pixel_cluster_variables,
76 'xAOD::StripClusterContainer#ITkStripClusters',
77 'xAOD::StripClusterAuxContainer#ITkStripClustersAux.' + strip_cluster_variables]
78 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
86 if __name__ ==
"__main__":
87 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
90 flags.Detector.EnableCalo =
False
91 flags.FPGADataPrep.DoActs =
True
92 flags.Acts.doRotCorrection =
False
94 flags.Concurrency.NumThreads = 1
95 flags.Input.Files = [
"/eos/project-a/atlas-eftracking/AODfiles_EFTrackPerf/Region34SingleMuon/output.rdo.000012.0.root"]
97 flags.Output.AODFileName =
"FPGA.Benchmark.AOD.pool.root"
98 flags.Debug.DumpEvtStore=
False
101 if(
not flags.FPGADataPrep.ForTiming):
103 flags.FPGADataPrep.PassThrough.ClusterOnly =
True
105 if flags.FPGADataPrep.PassThrough.ClusterOnly:
106 flags.Acts.useCache =
False
107 flags.Tracking.ITkMainPass.doActsSeed =
True
109 flags.Tracking.ITkMainPass.doAthenaToActsCluster =
True
110 flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint =
True
111 flags.Tracking.ITkMainPass.doAthenaSpacePoint =
True
113 flags.Tracking.doTruth=
False
114 flags.ITk.doTruth=
False
115 flags.InDet.doTruth=
False
118 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Tracking.ITkMainPass", keepOriginal=
True)
120 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
123 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
126 if(
not flags.FPGADataPrep.ForTiming):
129 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
133 from InDetConfig.ITkTrackRecoConfig
import ITkTrackRecoCfg
136 from InDetConfig.InDetPrepRawDataToxAODConfig
import TruthParticleIndexDecoratorAlgCfg
140 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import ITkPixelDetectorElementStatusAlgCfg
147 if flags.FPGADataPrep.DoActs:
150 from EFTrackingFPGAUtility.DataPrepToActsConfig
import UseActsSpacePointFormationCfg
155 from FPGATrackSimConfTools.FPGATrackSimDataPrepConfig
import FPGATrackSimDataPrepConnectToFastTracking
157 **{
'PixelSeedingAlg.InputSpacePoints' : [
'FPGAPixelSpacePoints'],
158 'StripSeedingAlg.InputSpacePoints' : [
''],
159 'TrackFindingAlg.UncalibratedMeasurementContainerKeys' : [
"SortedFPGAPixelClusters",
"SortedFPGAStripClusters"],
160 'PixelClusterToTruthAssociationAlg.Measurements' :
'SortedFPGAPixelClusters',
161 'StripClusterToTruthAssociationAlg.Measurements' :
'SortedFPGAStripClusters'}))
162 if(
not flags.FPGADataPrep.ForTiming):
168 "xAOD::TrackParticleContainer#FPGATrackParticles",
169 "xAOD::TrackParticleAuxContainer#FPGATrackParticlesAux."
173 if(
not flags.FPGADataPrep.ForTiming):
175 "xAOD::StripClusterContainer#FPGAStripClusters",
176 "xAOD::StripClusterAuxContainer#FPGAStripClustersAux.",
177 "xAOD::PixelClusterContainer#FPGAPixelClusters",
178 "xAOD::PixelClusterAuxContainer#FPGAPixelClustersAux.",
181 from EFTrackingFPGAOutputValidation.FPGAOutputValidationConfig
import FPGAOutputValidationCfg
183 "pixelKeys": [
"FPGAPixelClusters",
"ITkPixelClusters"],
184 "stripKeys": [
"FPGAStripClusters",
"ITkStripClusters"],
185 'doDiffHistograms':
True,
187 'allowedRdoMisses': 1000}))
191 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
192 from AthenaConfiguration.Enums
import MetadataCategory
195 MetadataCategory.ByteStreamMetaData,
196 MetadataCategory.LumiBlockMetaData,
197 MetadataCategory.TruthMetaData,
198 MetadataCategory.IOVMetaData,],))
200 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
201 cfg.merge(
addToAOD(flags, OutputItemList))
206 cfg.foreach_component(
"AthEventSeq/*").OutputLevel = DEBUG
207 cfg.printConfig(withDetails=
True, summariseProps=
True)
208 cfg.store(
open(
"F100IntegrationAlg.pkl",
"wb"))
209 cfg.run(flags.Exec.MaxEvents)