18 if (nPiOver16Min >= 32
or nPiOver16Min < 0):
19 print(
"You are asking for nPiOver16 = ",nPiOver16Min,
" but we only have 32 phi bins! Returning -1")
21 if (minAbsEta > 3.81
or minAbsEta < 0):
22 print(
"You are asking for minAbsEta = ",minAbsEta,
" but we only have 20 abs eta bins! Returning -1")
24 if not (isPositiveEta == 0
or isPositiveEta == 1):
25 print(
"You are asking for isPositiveEta = ",isPositiveEta,
" but this should only be 0 or 1! Returning -1")
28 etanum = round(minAbsEta / binSizeEta)
29 mineta = binSizeEta*etanum
30 maxeta = binSizeEta*(etanum+1)
31 if (
not isPositiveEta):
32 mineta = -binSizeEta*(etanum+1)
33 maxeta = -binSizeEta*etanum
35 region = region | ((isPositiveEta & 0x1) << 5)
36 region = region | (etanum << 6)
38 print(
"I am returning the region number for minphi =",nPiOver16Min,
"*pi/16, which is equal to",binSizePhi*nPiOver16Min)
39 print(
" and maxphi =",nPiOver16Min+1,
"*pi/16, which is equal to",binSizePhi*(nPiOver16Min+1))
40 print(
" and mineta =",mineta,
"and max eta =", maxeta)
46 if (flags.Trigger.FPGATrackSim.oldRegionDefs):
47 if (
not (flags.Trigger.FPGATrackSim.baseName ==
'')):
48 return flags.Trigger.FPGATrackSim.baseName
49 elif (flags.Trigger.FPGATrackSim.region == 0):
50 return 'eta0103phi0305'
51 elif (flags.Trigger.FPGATrackSim.region == 1):
52 return 'eta0709phi0305'
53 elif (flags.Trigger.FPGATrackSim.region == 2):
54 return 'eta1214phi0305'
55 elif (flags.Trigger.FPGATrackSim.region == 3):
56 return 'eta2022phi0305'
57 elif (flags.Trigger.FPGATrackSim.region == 4):
58 return 'eta3234phi0305'
59 elif (flags.Trigger.FPGATrackSim.region == 5):
60 return 'eta0103phi1113'
61 elif (flags.Trigger.FPGATrackSim.region == 6):
62 return 'eta0103phi1921'
63 elif (flags.Trigger.FPGATrackSim.region == 7):
64 return 'eta0103phi3436'
68 if (flags.Trigger.FPGATrackSim.region >= 1280
or flags.Trigger.FPGATrackSim.region < 0):
return 'default'
70 return "region"+
str(flags.Trigger.FPGATrackSim.region)
73 if (flags.Trigger.FPGATrackSim.oldRegionDefs):
74 if (
not (flags.Trigger.FPGATrackSim.baseName ==
'')):
76 elif (flags.Trigger.FPGATrackSim.region == 0):
78 elif (flags.Trigger.FPGATrackSim.region == 1):
80 elif (flags.Trigger.FPGATrackSim.region == 2):
82 elif (flags.Trigger.FPGATrackSim.region == 3):
84 elif (flags.Trigger.FPGATrackSim.region == 4):
86 elif (flags.Trigger.FPGATrackSim.region == 5):
88 elif (flags.Trigger.FPGATrackSim.region == 6):
90 elif (flags.Trigger.FPGATrackSim.region == 7):
96 phiBin=flags.Trigger.FPGATrackSim.region & 0x1f
97 if (flags.Trigger.FPGATrackSim.region >= 1280
or flags.Trigger.FPGATrackSim.region < 0):
return [binSize*2,binSize*3]
99 return [binSize*phiBin,binSize*(phiBin+1)]
102 if (flags.Trigger.FPGATrackSim.oldRegionDefs):
103 if (
not (flags.Trigger.FPGATrackSim.baseName ==
'')):
105 elif (flags.Trigger.FPGATrackSim.region == 0):
107 elif (flags.Trigger.FPGATrackSim.region == 1):
109 elif (flags.Trigger.FPGATrackSim.region == 2):
111 elif (flags.Trigger.FPGATrackSim.region == 3):
113 elif (flags.Trigger.FPGATrackSim.region == 4):
115 elif (flags.Trigger.FPGATrackSim.region == 5):
117 elif (flags.Trigger.FPGATrackSim.region == 6):
119 elif (flags.Trigger.FPGATrackSim.region == 7):
124 if (flags.Trigger.FPGATrackSim.region >= 1280
or flags.Trigger.FPGATrackSim.region < 0):
return [0.2,0.4]
127 side = (flags.Trigger.FPGATrackSim.region >> 5) & 0x1
128 etaBin = (flags.Trigger.FPGATrackSim.region >> 6) & 0x1f
129 if (side):
return [binSize*etaBin,binSize*(etaBin+1)]
130 else:
return [-binSize*(etaBin+1),-binSize*etaBin]
138 result=ComponentAccumulator()
139 FPGATrackSimRawLogic = CompFactory.FPGATrackSimRawToLogicalHitsTool(
nameWithRegionSuffix(flags,name))
140 FPGATrackSimRawLogic.SaveOptional = 2
141 if (flags.Trigger.FPGATrackSim.ActiveConfig.sampleType ==
'skipTruth'):
142 FPGATrackSimRawLogic.SaveOptional = 1
143 FPGATrackSimRawLogic.TowersToMap = [0]
146 result.addPublicTool(FPGATrackSimRawLogic,primary=
True)
166 result=ComponentAccumulator()
168 FPGATrackSimWriteOutput = CompFactory.FPGATrackSimOutputHeaderTool(
"FPGATrackSimWriteOutputDataPrep")
169 FPGATrackSimWriteOutput.InFileName = [
"test.root"]
170 FPGATrackSimWriteOutput.OutputTreeName =
"FPGATrackSimDataPrepTree"
171 from FPGATrackSimConfTools.FPGATrackSimHelperFunctions
import convertRegionsExpressionToArray
172 writeThis=flags.Trigger.FPGATrackSim.writeAdditionalOutputData
and ((flags.Trigger.FPGATrackSim.regionToWriteDPTree
in convertRegionsExpressionToArray(flags.Trigger.FPGATrackSim.regionList))
or (flags.Trigger.FPGATrackSim.regionToWriteDPTree < 0))
175 FPGATrackSimWriteOutput.EventLimit = 0
177 FPGATrackSimWriteOutput.EventLimit = flags.Trigger.FPGATrackSim.writeOutputEventLimit
178 if flags.Trigger.FPGATrackSim.writeRegion>=0:
179 FPGATrackSimWriteOutput.RequireActivation=
True
182 FPGATrackSimWriteOutput.RWstatus =
"HEADER"
183 FPGATrackSimWriteOutput.THistSvc = CompFactory.THistSvc()
184 result.addPublicTool(FPGATrackSimWriteOutput, primary=
True)
191 result=ComponentAccumulator()
192 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
193 result.merge(ITkStripReadoutGeometryCfg(flags))
195 kwargs.setdefault(
"FPGATrackSimClusterKey",
"FPGAClusters_1st")
196 kwargs.setdefault(
"FPGATrackSimHitKey",
"FPGAHits%s" %(stage))
197 kwargs.setdefault(
"FPGATrackSimRoadKey",
"FPGARoads")
198 kwargs.setdefault(
"FPGATrackSimTrackKey",
"FPGATracks")
199 kwargs.setdefault(
"xAODPixelClusterFromFPGAClusterKey",
"xAODPixelClustersFromFPGACluster")
200 kwargs.setdefault(
"xAODStripClusterFromFPGAClusterKey",
"xAODStripClustersFromFPGACluster")
201 kwargs.setdefault(
"xAODStripSpacePointFromFPGAKey",
"xAODStripSpacePoints%sFromFPGA" %(stage))
202 kwargs.setdefault(
"xAODPixelSpacePointFromFPGAKey",
"xAODPixelSpacePoints%sFromFPGA" %(stage))
203 kwargs.setdefault(
"xAODPixelClusterFromFPGAHitKey",
"xAODPixelClusters%sFromFPGAHit" %(stage))
204 kwargs.setdefault(
"xAODStripClusterFromFPGAHitKey",
"xAODStripClusters%sFromFPGAHit" %(stage))
205 kwargs.setdefault(
"ActsProtoTrackFromFPGARoadKey",
"ActsProtoTracks%sFromFPGARoad" %(stage))
206 kwargs.setdefault(
"ActsProtoTrackFromFPGATrackKey",
"ActsProtoTracks%sFromFPGATrack" %(stage))
207 kwargs.setdefault(
"doHits",
False)
208 kwargs.setdefault(
"doClusters",
True)
209 kwargs.setdefault(
"doActsTrk",
False)
210 kwargs.setdefault(
"useRoads",
False)
214 ConvertionAlgorithm = CompFactory.FPGAConversionAlgorithm(name, **kwargs)
215 ConvertionAlgorithm.ClusterConverter.doLorentzShift=
False
217 result.addEventAlgo(ConvertionAlgorithm)
221 result=ComponentAccumulator()
222 FPGAClusterConverter = CompFactory.FPGAClusterConverter()
223 FPGAClusterConverter.doLorentzShift=
True
225 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig
import ITkPixelLorentzAngleToolCfg
226 FPGAClusterConverter.LorentzAngleToolPixel = result.popToolsAndMerge(ITkPixelLorentzAngleToolCfg(flags))
228 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import ITkStripLorentzAngleToolCfg
229 FPGAClusterConverter.LorentzAngleToolStrip = result.popToolsAndMerge(ITkStripLorentzAngleToolCfg(flags))
231 result.setPrivateTools(FPGAClusterConverter)
245 result = ComponentAccumulator()
246 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
247 from OutputStreamAthenaPool.OutputStreamConfig
import outputStreamName
248 from AthenaConfiguration.Enums
import MetadataCategory
250 result.merge( SetupMetaDataForStreamCfg( flags,
"AOD",
252 MetadataCategory.ByteStreamMetaData,
253 MetadataCategory.LumiBlockMetaData,
254 MetadataCategory.TruthMetaData,
255 MetadataCategory.IOVMetaData,],)
257 log.info(
"AOD ItemList: %s", result.getEventAlgo(outputStreamName(
"AOD")).ItemList)
258 log.info(
"AOD MetadataItemList: %s", result.getEventAlgo(outputStreamName(
"AOD")).MetadataItemList)
259 log.info(
"---------- Configured AOD writing")
261 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
262 toAOD = [f
"xAOD::TrackParticleContainer#{finalTrackParticles}",f
"xAOD::TrackParticleAuxContainer#{finalTrackParticles}Aux."]
263 if flags.Trigger.FPGATrackSim.writeClustersToAOD:
264 toAOD += [
"xAOD::PixelClusterContainer#xAODPixelClustersFromFPGACluster",
"xAOD::PixelClusterAuxContainer#xAODPixelClustersFromFPGAClusterAux.",
265 "xAOD::StripClusterContainer#xAODStripClustersFromFPGACluster",
"xAOD::StripClusterAuxContainer#xAODStripClustersFromFPGAClusterAux."]
266 if flags.Trigger.FPGATrackSim.writeOfflPRDInfo:
267 toAOD += [
'xAOD::TrackMeasurementValidationContainer#ITkPixelMeasurements_offl',
'xAOD::TrackMeasurementValidationAuxContainer#ITkPixelMeasurements_offlAux.',
268 'xAOD::TrackMeasurementValidationContainer#ITkStripMeasurements_offl',
'xAOD::TrackMeasurementValidationAuxContainer#ITkStripMeasurements_offlAux.']
269 if flags.Trigger.FPGATrackSim.writeAdditionalOutputData:
270 toAOD += [f
"xAOD::SpacePointContainer#xAODPixelSpacePoints{stage}FromFPGA",f
"xAOD::SpacePointAuxContainer#xAODPixelSpacePoints{stage}FromFPGAAux.-measurements",
271 f
"xAOD::SpacePointContainer#xAODStripSpacePoints{stage}FromFPGA",f
"xAOD::SpacePointAuxContainer#xAODStripSpacePoints{stage}FromFPGAAux.-measurements.-sctSpacePointLink"]
273 result.merge(addToAOD(flags, toAOD))
280 result=ComponentAccumulator()
282 eventSelector.regions = flags.Trigger.FPGATrackSim.slicesFile
283 eventSelector.regionID = flags.Trigger.FPGATrackSim.region
284 eventSelector.sampleType = flags.Trigger.FPGATrackSim.sampleType
285 eventSelector.skipRegionCheck = flags.Trigger.FPGATrackSim.pipeline.startswith(
'F-1')
286 eventSelector.withPU =
False
287 eventSelector.oldRegionDefs = flags.Trigger.FPGATrackSim.oldRegionDefs
290 eventSelector.mind0 = flags.Trigger.FPGATrackSim.d0min
291 eventSelector.maxd0 = flags.Trigger.FPGATrackSim.d0max
292 eventSelector.minz0 = flags.Trigger.FPGATrackSim.z0min
293 eventSelector.maxz0 = flags.Trigger.FPGATrackSim.z0max
294 eventSelector.minqOverPt = flags.Trigger.FPGATrackSim.qOverPtmin
295 eventSelector.maxqOverPt = flags.Trigger.FPGATrackSim.qOverPtmax
297 result.addService(eventSelector, create=
True, primary=
True)
309 result=ComponentAccumulator()
311 mappingSvc.regionID = flags.Trigger.FPGATrackSim.region
312 mappingSvc.mappingType =
"FILE"
313 mappingSvc.rmap = flags.Trigger.FPGATrackSim.mapsDir+
"/"+
getBaseName(flags)+
".rmap"
314 mappingSvc.subrmap = flags.Trigger.FPGATrackSim.mapsDir+
"/"+
getBaseName(flags)+
".rmap"
315 mappingSvc.pmap = flags.Trigger.FPGATrackSim.mapsDir+
"/"+
getBaseName(flags)+
".pmap"
316 mappingSvc.modulemap = flags.Trigger.FPGATrackSim.mapsDir+
"/moduleidmap"
317 mappingSvc.radiiFile = flags.Trigger.FPGATrackSim.mapsDir +
"/"+
getBaseName(flags)+
"_radii.txt"
318 mappingSvc.radiiFile2nd = flags.Trigger.FPGATrackSim.mapsDir +
"/"+
getBaseName(flags)+
"_radii_2nd.txt"
319 mappingSvc.loadRadii = (
not flags.Trigger.FPGATrackSim.ActiveConfig.GNN)
and flags.Trigger.FPGATrackSim.loadRadii
320 mappingSvc.loadRegionMap = flags.Trigger.FPGATrackSim.loadRegionMap
321 mappingSvc.DoGNNTrack = flags.Trigger.FPGATrackSim.GNN.doGNNTracking
323 mappingSvc.FakeNNonnx1st = flags.Trigger.FPGATrackSim.FakeNNonnxFile1st
324 mappingSvc.FakeNNonnx2nd = flags.Trigger.FPGATrackSim.FakeNNonnxFile2nd
325 mappingSvc.ParamNNonnx1st = flags.Trigger.FPGATrackSim.ParamNNonnxFile1st
326 mappingSvc.ParamNNonnx2nd = flags.Trigger.FPGATrackSim.ParamNNonnxFile2nd
327 mappingSvc.ExtensionNNVolonnx = flags.Trigger.FPGATrackSim.ExtensionNNVolonnxFile
328 mappingSvc.ExtensionNNHitonnx = flags.Trigger.FPGATrackSim.ExtensionNNHitonnxFile
329 mappingSvc.GNNModuleMap = flags.Trigger.FPGATrackSim.GNN.moduleMapPath
330 mappingSvc.layerOverride = []
331 result.addService(mappingSvc, create=
True, primary=
True)
349 result=ComponentAccumulator()
350 HitFilteringTool = CompFactory.FPGATrackSimHitFilteringTool()
351 HitFilteringTool.barrelStubDphiCut = 3.0
352 HitFilteringTool.doRandomRemoval =
False
353 HitFilteringTool.doStubs =
False
354 HitFilteringTool.endcapStubDphiCut = 1.5
355 HitFilteringTool.pixelClusRmFrac = 0
356 HitFilteringTool.pixelHitRmFrac = 0
357 HitFilteringTool.stripClusRmFrac = 0
358 HitFilteringTool.stripHitRmFrac = 0
359 HitFilteringTool.useNstrips =
False
360 result.addPublicTool(HitFilteringTool, primary=
True)
364 result=ComponentAccumulator()
365 LorentzAngleTool = CompFactory.FPGATrackSim.LorentzAngleTool()
366 LorentzAngleTool.UseAthenaLorentzAngleTools=
False
367 LorentzAngleTool.shiftGlobalPosition=
True
369 from SiLorentzAngleTool.ITkPixelLorentzAngleConfig
import ITkPixelLorentzAngleToolCfg
370 LorentzAngleTool.LorentzAngleToolPixel = result.popToolsAndMerge(ITkPixelLorentzAngleToolCfg(flags))
372 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import ITkStripLorentzAngleToolCfg
373 LorentzAngleTool.LorentzAngleToolStrip = result.popToolsAndMerge(ITkStripLorentzAngleToolCfg(flags))
375 result.addPublicTool(LorentzAngleTool, primary=
True)
382 result=ComponentAccumulator()
385 theFPGATrackSimDataPrepAlg=CompFactory.FPGATrackSimDataPrepAlg()
386 theFPGATrackSimDataPrepAlg.HitFiltering = flags.Trigger.FPGATrackSim.ActiveConfig.hitFiltering
387 theFPGATrackSimDataPrepAlg.writeOutputData = flags.Trigger.FPGATrackSim.writeAdditionalOutputData
388 writePreClusterBranch=flags.Trigger.FPGATrackSim.writeAdditionalOutputData
and (flags.Trigger.FPGATrackSim.regionToWriteDPTree < 0)
389 theFPGATrackSimDataPrepAlg.writePreClusterBranch=writePreClusterBranch
391 theFPGATrackSimDataPrepAlg.Clustering = flags.Trigger.FPGATrackSim.clustering
392 theFPGATrackSimDataPrepAlg.doEvtSel=
False if flags.Trigger.FPGATrackSim.pipeline.startswith(
'F-1')
or flags.Trigger.FPGATrackSim.sampleType ==
'skipTruth' else True
393 theFPGATrackSimDataPrepAlg.useInternalTruthTracks = flags.Trigger.FPGATrackSim.useFPGATruthTrackMatching
394 theFPGATrackSimDataPrepAlg.recordHits =
not flags.Trigger.FPGATrackSim.pipeline.startswith(
'F-1')
395 theFPGATrackSimDataPrepAlg.writeRegion = flags.Trigger.FPGATrackSim.writeRegion
396 theFPGATrackSimDataPrepAlg.isDataPrepPipeline =
True if flags.Tracking.ActiveConfig.extension ==
"ActsValidateF100" else False
398 theFPGATrackSimDataPrepAlg.RawToLogicalHitsTools = []
399 from FPGATrackSimConfTools.FPGATrackSimHelperFunctions
import convertRegionsExpressionToArray
400 for region
in convertRegionsExpressionToArray(flags.Trigger.FPGATrackSim.regionList):
401 flagsForEachRegion = inputFlags.clone()
402 flagsForEachRegion = flagsForEachRegion.cloneAndReplace(
"Trigger.FPGATrackSim.ActiveConfig",
"Trigger.FPGATrackSim." + inputFlags.Trigger.FPGATrackSim.algoTag,keepOriginal=
True)
403 flagsForEachRegion.Trigger.FPGATrackSim.region = region
404 flagsForEachRegion.lock()
406 theFPGATrackSimDataPrepAlg.RawToLogicalHitsTools.append(result.getPrimaryAndMerge(
FPGATrackSimRawLogicCfg(flagsForEachRegion)))
409 if flags.Trigger.FPGATrackSim.wrapperFileName
and flags.Trigger.FPGATrackSim.wrapperFileName
is not None:
411 if flags.Trigger.FPGATrackSim.wrapperFileName2
and flags.Trigger.FPGATrackSim.wrapperFileName2
is not None:
413 theFPGATrackSimDataPrepAlg.SecondInputToolN = flags.Trigger.FPGATrackSim.secondInputToolN
414 theFPGATrackSimDataPrepAlg.SGInputTool =
""
416 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
417 result.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags))
418 theFPGATrackSimDataPrepAlg.InputTool =
""
419 theFPGATrackSimDataPrepAlg.InputTool2 =
""
420 from FPGATrackSimSGInput.FPGATrackSimSGInputConfig
import FPGATrackSimSGInputToolCfg
421 theFPGATrackSimDataPrepAlg.SGInputTool = result.getPrimaryAndMerge(FPGATrackSimSGInputToolCfg(flags))
422 theFPGATrackSimDataPrepAlg.SGInputTool.ReadOfflineClusters=
False
423 theFPGATrackSimDataPrepAlg.SGInputTool.ReadOfflineTracks=
False
427 theFPGATrackSimDataPrepAlg.ClusteringTool = CompFactory.FPGATrackSimClusteringTool()
428 if not flags.Trigger.FPGATrackSim.wrapperFileName:
430 theFPGATrackSimDataPrepAlg.ClusteringTool.LorentzAngleShift = flags.Trigger.FPGATrackSim.LorentzAngleShift
432 theFPGATrackSimDataPrepAlg.ClusteringTool.LorentzAngleShift = -1
436 from FPGATrackSimAlgorithms.FPGATrackSimAlgorithmConfig
import FPGATrackSimDataPrepMonitoringCfg
437 theFPGATrackSimDataPrepAlg.MonTool = result.getPrimaryAndMerge(FPGATrackSimDataPrepMonitoringCfg(flags))
439 result.addEventAlgo(theFPGATrackSimDataPrepAlg)
454 acc=ComponentAccumulator()
455 if not flags.Trigger.FPGATrackSim.runOnPreProducedHeaderFiles:
458 'FPGATrackSimSPKey':
'FPGAClusters_1st',
459 'xAODPixelClusterFromFPGAClusterKey':
'FPGAPixelClusters',
460 'xAODStripClusterFromFPGAClusterKey':
'FPGAStripClusters',
461 'xAODPixelSpacePointFromFPGAKey':
'ITkPixelSpacePoints',
464 'doSP': flags.Trigger.FPGATrackSim.convertSPs,
467 from FPGATrackSimConfTools.FPGATrackSimMergeOutputsConfig
import FPGATrackSimMergeOutputsAlgCfg
468 acc.merge(FPGATrackSimMergeOutputsAlgCfg(flags))
470 'FPGATrackSimHitKey':
'FPGAHits',
471 'xAODPixelClusterFromFPGAHitKey':
'FPGAPixelClusters',
472 'xAODStripClusterFromFPGAHitKey':
'FPGAStripClusters',
473 'xAODPixelSpacePointFromFPGAKey':
'ITkPixelSpacePoints',
478 'doSP': flags.Trigger.FPGATrackSim.convertSPs,
481 from FPGAClusterSorting.FPGAClusterSortingConfig
import FPGAClusterSortingAlgCfg
482 ClusterSorting = FPGAClusterSortingAlgCfg(flags,**{
'xAODPixelClusterContainer':
'FPGAPixelClusters',
483 'xAODStripClusterContainer':
'FPGAStripClusters',
484 'sortedxAODPixelClusterContainer':
'ITkPixelClusters',
485 'sortedxAODStripClusterContainer':
'ITkStripClusters'})
487 acc.merge(ClusterSorting)
489 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import ITkPixelDetectorElementStatusAlgCfg
490 acc.merge(ITkPixelDetectorElementStatusAlgCfg(flags))
492 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig
import ITkStripDetectorElementStatusAlgCfg
493 acc.merge(ITkStripDetectorElementStatusAlgCfg(flags))
495 if flags.Acts.EDM.PersistifyClusters
or flags.Acts.EDM.PersistifySpacePoints:
498 pixel_cluster_shortlist = [
'-pixelClusterLink']
499 strip_cluster_shortlist = [
'-sctClusterLink']
501 pixel_cluster_variables =
'.'.join(pixel_cluster_shortlist)
502 strip_cluster_variables =
'.'.join(strip_cluster_shortlist)
504 toAOD += [
'xAOD::PixelClusterContainer#ITkPixelClusters',
505 'xAOD::PixelClusterAuxContainer#ITkPixelClustersAux.' + pixel_cluster_variables,
506 'xAOD::StripClusterContainer#ITkStripClusters',
507 'xAOD::StripClusterAuxContainer#ITkStripClustersAux.' + strip_cluster_variables]
508 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
509 acc.merge(addToAOD(flags, toAOD))
512 from FPGATrackSimReporting.FPGATrackSimReportingConfig
import FPGATrackSimReportingCfg
513 acc.merge(FPGATrackSimReportingCfg(flags,
514 perEventReports =
False,
515 **{
'xAODPixelClusterContainers' : [
'ITkPixelClusters'],
516 'xAODStripClusterContainers' : [
'ITkStripClusters'],
517 'FPGAActsTracks' : [f
'{flags.Tracking.ActiveConfig.extension}Tracks',f
'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}PixelTracks'],
518 'isDataPrep':
True} ))
520 if flags.Trigger.FPGATrackSim.writeAdditionalOutputData
and flags.Tracking.ActiveConfig.extension
in [
"ActsValidateF100"]:
521 acc.addService(CompFactory.THistSvc(Output = [f
"EXPERT DATAFILE='{flags.Trigger.FPGATrackSim.outputMonitorFile}', OPT='RECREATE'"]))
522 acc.addService(CompFactory.THistSvc(Output = [
"FPGATRACKSIMOUTPUT DATAFILE='dataprep.root', OPT='RECREATE'"]))
536 acc = ComponentAccumulator()
537 if flags.Trigger.FPGATrackSim.wrapperFileName
and flags.Trigger.FPGATrackSim.wrapperFileName
is not None:
540 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
541 acc.merge(PoolReadCfg(flags))
544 from xAODEventInfoCnv.xAODEventInfoCnvConfig
import EventInfoCnvAlgCfg
545 acc.merge(EventInfoCnvAlgCfg(flags))
548 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
549 acc.merge(GEN_AOD2xAODCfg(flags))
551 from JetRecConfig.JetRecoSteering
import addTruthPileupJetsToOutputCfg
552 acc.merge(addTruthPileupJetsToOutputCfg(flags))
554 if flags.Detector.EnableCalo:
555 from CaloRec.CaloRecoConfig
import CaloRecoCfg
556 acc.merge(CaloRecoCfg(flags))
558 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
559 acc.merge(BeamSpotCondAlgCfg(flags))
561 from InDetConfig.SiliconPreProcessing
import ITkRecPreProcessingSiliconCfg
562 acc.merge(ITkRecPreProcessingSiliconCfg(flags))
568 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
569 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
571 FinalDataPrepTrackChainxAODTracksKeyPrefix=
"FPGA"
573 flags = initConfigFlags()
574 from InDetConfig.ConfigurationHelpers
import OnlyTrackingPreInclude
575 OnlyTrackingPreInclude(flags)
580 from ActsConfig.ActsCIFlags
import actsWorkflowFlags
581 actsWorkflowFlags(flags)
584 flags.Concurrency.NumThreads=1
585 flags.Concurrency.NumConcurrentEvents=1
586 flags.Concurrency.NumProcs=0
587 flags.Scheduler.ShowDataDeps=
False
588 flags.Scheduler.CheckDependencies=
True
589 flags.Debug.DumpEvtStore=
False
592 if isinstance(flags.Trigger.FPGATrackSim.wrapperFileName, str):
593 log.info(
"wrapperFile is string, converting to list")
594 flags.Trigger.FPGATrackSim.wrapperFileName = [flags.Trigger.FPGATrackSim.wrapperFileName]
595 flags.Input.Files =
lambda f: [f.Trigger.FPGATrackSim.wrapperFileName]
597 flags.Tracking.writeExtendedSi_PRDInfo =
not flags.Trigger.FPGATrackSim.writeOfflPRDInfo
603 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Tracking.ITkActsPass", keepOriginal=
True)
605 acc=MainServicesCfg(flags)
606 if flags.Trigger.FPGATrackSim.writeAdditionalOutputData:
607 acc.addService(CompFactory.THistSvc(Output = [f
"EXPERT DATAFILE='{flags.Trigger.FPGATrackSim.outputMonitorFile}', OPT='RECREATE'"]))
608 acc.addService(CompFactory.THistSvc(Output = [
"FPGATRACKSIMOUTPUT DATAFILE='dataprep.root', OPT='RECREATE'"]))
616 if flags.Trigger.FPGATrackSim.doEDMConversion:
617 acc.merge(
FPGAConversionAlgCfg(flags, name =
'FPGAConversionAlg', stage =
'_1st', doActsTrk=
False, doSP =
False))
620 from ActsConfig.ActsSpacePointFormationConfig
import ActsPixelSpacePointFormationAlgCfg
621 acc.merge(ActsPixelSpacePointFormationAlgCfg(flags,name=
"FPGAActsPixelSpacePointFormationAlg",
622 **{
'PixelClusters':
"xAODPixelClustersFromFPGACluster",
623 'PixelSpacePoints':
"xAODPixelSpacePointsFromFPGA"}))
625 if flags.Trigger.FPGATrackSim.writeToAOD:
628 finalTrackParticles=f
"{FinalDataPrepTrackChainxAODTracksKeyPrefix}TrackParticles"))
631 from FPGATrackSimReporting.FPGATrackSimReportingConfig
import FPGATrackSimReportingCfg
632 acc.merge(FPGATrackSimReportingCfg(flags,stage=
"_1st",
633 perEventReports = (flags.Trigger.FPGATrackSim.sampleType !=
'skipTruth'),
637 if flags.Trigger.FPGATrackSim.writeAdditionalOutputData:
638 from EFTrackingFPGAOutputValidation.FPGAOutputValidationConfig
import FPGAOutputValidationCfg
639 acc.merge(FPGAOutputValidationCfg(flags, **{
'pixelKeys' : [
"xAODPixelClustersFromFPGACluster",
"ITkPixelClusters"],
640 'stripKeys':[
"xAODStripClustersFromFPGACluster",
"ITkStripClusters"],
641 'doDiffHistograms':
True,
642 'matchByID' :
True}))
644 acc.store(open(
'AnalysisConfig.pkl',
'wb'))
646 statusCode = acc.run(flags.Exec.MaxEvents)
647 assert statusCode.isSuccess()
is True,
"Application execution did not succeed"