46def FPGA150Pipeline(flags, runStandalone=False):
47 kwargs = {}
48 kwargs.setdefault('FPGAThreads', flags.Concurrency.NumThreads)
49 acc = ComponentAccumulator()
50 from EFTrackingFPGAPipeline.F100IntegrationConfig import F100DataEncodingCfg, F100EDMConversionCfg, FPGAClusterSortingCfg
51 acc.merge(F100DataEncodingCfg(flags))
52
53 acc.merge(F150IntegrationAlgCfg(flags, "F150IntegrationAlg", **kwargs))
54
55 acc.merge(F100EDMConversionCfg(flags))
56 acc.merge(FPGAClusterSortingCfg(flags,**{'sortedxAODPixelClusterContainer': 'SortedFPGAPixelClusters' if runStandalone else 'ITkPixelClusters',
57 'sortedxAODStripClusterContainer': 'SortedFPGAStripClusters' if runStandalone else 'ITkStripClusters'}))
58
59 acc.merge(F150EDMConversionCfg(flags))
60
61 if(
not runStandalone):
62 if(
not flags.FPGADataPrep.ForTiming):
63 from FPGATrackSimReporting.FPGATrackSimReportingConfig import FPGATrackSimReportingCfg
64 acc.merge(FPGATrackSimReportingCfg(flags,
65 perEventReports = False,
66 **{'xAODPixelClusterContainers' : ['ITkPixelClusters'],
67 'xAODStripClusterContainers' : ['ITkStripClusters'],
68 'FPGAActsTracks' : [f'{flags.Tracking.ActiveConfig.extension}Tracks',f'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}PixelTracks'],
69 'isDataPrep': True} ))
70
71 from PixelConditionsAlgorithms.ITkPixelConditionsConfig import ITkPixelDetectorElementStatusAlgCfg
72 acc.merge(ITkPixelDetectorElementStatusAlgCfg(flags))
73
74 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig import ITkStripDetectorElementStatusAlgCfg
75 acc.merge(ITkStripDetectorElementStatusAlgCfg(flags))
76
77 if flags.Acts.EDM.PersistifyClusters or flags.Acts.EDM.PersistifySpacePoints:
78 toAOD = []
79
80 pixel_cluster_shortlist = ['-pixelClusterLink']
81 strip_cluster_shortlist = ['-sctClusterLink']
82
83 pixel_cluster_variables = '.'.join(pixel_cluster_shortlist)
84 strip_cluster_variables = '.'.join(strip_cluster_shortlist)
85
86 toAOD += ['xAOD::PixelClusterContainer#ITkPixelClusters',
87 'xAOD::PixelClusterAuxContainer#ITkPixelClustersAux.' + pixel_cluster_variables,
88 'xAOD::StripClusterContainer#ITkStripClusters',
89 'xAOD::StripClusterAuxContainer#ITkStripClustersAux.' + strip_cluster_variables]
90 from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
91 acc.merge(addToAOD(flags, toAOD))
92 return acc
93
94
95
96
97