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()
384 theFPGATrackSimDataPrepAlg=CompFactory.FPGATrackSimDataPrepAlg()
385 theFPGATrackSimDataPrepAlg.HitFiltering = flags.Trigger.FPGATrackSim.ActiveConfig.hitFiltering
386 theFPGATrackSimDataPrepAlg.writeOutputData = flags.Trigger.FPGATrackSim.writeAdditionalOutputData
387 writePreClusterBranch=flags.Trigger.FPGATrackSim.writeAdditionalOutputData
and (flags.Trigger.FPGATrackSim.regionToWriteDPTree < 0)
388 theFPGATrackSimDataPrepAlg.writePreClusterBranch=writePreClusterBranch
390 theFPGATrackSimDataPrepAlg.Clustering = flags.Trigger.FPGATrackSim.clustering
391 theFPGATrackSimDataPrepAlg.doEvtSel=
False if flags.Trigger.FPGATrackSim.pipeline.startswith(
'F-1')
or flags.Trigger.FPGATrackSim.sampleType ==
'skipTruth' else True
392 theFPGATrackSimDataPrepAlg.useInternalTruthTracks = flags.Trigger.FPGATrackSim.useFPGATruthTrackMatching
393 theFPGATrackSimDataPrepAlg.recordHits =
not flags.Trigger.FPGATrackSim.pipeline.startswith(
'F-1')
394 theFPGATrackSimDataPrepAlg.writeRegion = flags.Trigger.FPGATrackSim.writeRegion
395 theFPGATrackSimDataPrepAlg.isDataPrepPipeline =
True if flags.Tracking.ActiveConfig.extension ==
"ActsValidateF100" else False
397 theFPGATrackSimDataPrepAlg.RawToLogicalHitsTools = []
398 from FPGATrackSimConfTools.FPGATrackSimHelperFunctions
import convertRegionsExpressionToArray
399 for region
in convertRegionsExpressionToArray(flags.Trigger.FPGATrackSim.regionList):
400 flagsForEachRegion = inputFlags.clone()
401 flagsForEachRegion = flagsForEachRegion.cloneAndReplace(
"Trigger.FPGATrackSim.ActiveConfig",
"Trigger.FPGATrackSim." + inputFlags.Trigger.FPGATrackSim.algoTag,keepOriginal=
True)
402 flagsForEachRegion.Trigger.FPGATrackSim.region = region
403 flagsForEachRegion.lock()
405 theFPGATrackSimDataPrepAlg.RawToLogicalHitsTools.append(result.getPrimaryAndMerge(
FPGATrackSimRawLogicCfg(flagsForEachRegion)))
408 if flags.Trigger.FPGATrackSim.wrapperFileName
and flags.Trigger.FPGATrackSim.wrapperFileName
is not None:
410 if flags.Trigger.FPGATrackSim.wrapperFileName2
and flags.Trigger.FPGATrackSim.wrapperFileName2
is not None:
412 theFPGATrackSimDataPrepAlg.SecondInputToolN = flags.Trigger.FPGATrackSim.secondInputToolN
413 theFPGATrackSimDataPrepAlg.SGInputTool =
""
415 theFPGATrackSimDataPrepAlg.InputTool =
""
416 theFPGATrackSimDataPrepAlg.InputTool2 =
""
417 from FPGATrackSimSGInput.FPGATrackSimSGInputConfig
import FPGATrackSimSGInputToolCfg
418 theFPGATrackSimDataPrepAlg.SGInputTool = result.getPrimaryAndMerge(FPGATrackSimSGInputToolCfg(flags))
419 theFPGATrackSimDataPrepAlg.SGInputTool.ReadOfflineClusters=
False
420 theFPGATrackSimDataPrepAlg.SGInputTool.ReadOfflineTracks=
False
424 theFPGATrackSimDataPrepAlg.ClusteringTool = CompFactory.FPGATrackSimClusteringTool()
425 if not flags.Trigger.FPGATrackSim.wrapperFileName:
427 theFPGATrackSimDataPrepAlg.ClusteringTool.LorentzAngleShift = flags.Trigger.FPGATrackSim.LorentzAngleShift
429 theFPGATrackSimDataPrepAlg.ClusteringTool.LorentzAngleShift = -1
433 from FPGATrackSimAlgorithms.FPGATrackSimAlgorithmConfig
import FPGATrackSimDataPrepMonitoringCfg
434 theFPGATrackSimDataPrepAlg.MonTool = result.getPrimaryAndMerge(FPGATrackSimDataPrepMonitoringCfg(flags))
436 result.addEventAlgo(theFPGATrackSimDataPrepAlg)
451 acc=ComponentAccumulator()
452 if not flags.Trigger.FPGATrackSim.runOnPreProducedHeaderFiles:
455 'FPGATrackSimSPKey':
'FPGAClusters_1st',
456 'xAODPixelClusterFromFPGAClusterKey':
'FPGAPixelClusters',
457 'xAODStripClusterFromFPGAClusterKey':
'FPGAStripClusters',
458 'xAODPixelSpacePointFromFPGAKey':
'ITkPixelSpacePoints',
461 'doSP': flags.Trigger.FPGATrackSim.convertSPs,
464 from FPGATrackSimConfTools.FPGATrackSimMergeOutputsConfig
import FPGATrackSimMergeOutputsAlgCfg
465 acc.merge(FPGATrackSimMergeOutputsAlgCfg(flags))
467 'FPGATrackSimHitKey':
'FPGAHits',
468 'xAODPixelClusterFromFPGAHitKey':
'FPGAPixelClusters',
469 'xAODStripClusterFromFPGAHitKey':
'FPGAStripClusters',
470 'xAODPixelSpacePointFromFPGAKey':
'ITkPixelSpacePoints',
475 'doSP': flags.Trigger.FPGATrackSim.convertSPs,
478 from FPGAClusterSorting.FPGAClusterSortingConfig
import FPGAClusterSortingAlgCfg
479 ClusterSorting = FPGAClusterSortingAlgCfg(flags,**{
'xAODPixelClusterContainer':
'FPGAPixelClusters',
480 'xAODStripClusterContainer':
'FPGAStripClusters',
481 'sortedxAODPixelClusterContainer':
'ITkPixelClusters',
482 'sortedxAODStripClusterContainer':
'ITkStripClusters'})
484 acc.merge(ClusterSorting)
486 from PixelConditionsAlgorithms.ITkPixelConditionsConfig
import ITkPixelDetectorElementStatusAlgCfg
487 acc.merge(ITkPixelDetectorElementStatusAlgCfg(flags))
489 from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig
import ITkStripDetectorElementStatusAlgCfg
490 acc.merge(ITkStripDetectorElementStatusAlgCfg(flags))
492 if flags.Acts.EDM.PersistifyClusters
or flags.Acts.EDM.PersistifySpacePoints:
495 pixel_cluster_shortlist = [
'-pixelClusterLink']
496 strip_cluster_shortlist = [
'-sctClusterLink']
498 pixel_cluster_variables =
'.'.join(pixel_cluster_shortlist)
499 strip_cluster_variables =
'.'.join(strip_cluster_shortlist)
501 toAOD += [
'xAOD::PixelClusterContainer#ITkPixelClusters',
502 'xAOD::PixelClusterAuxContainer#ITkPixelClustersAux.' + pixel_cluster_variables,
503 'xAOD::StripClusterContainer#ITkStripClusters',
504 'xAOD::StripClusterAuxContainer#ITkStripClustersAux.' + strip_cluster_variables]
505 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
506 acc.merge(addToAOD(flags, toAOD))
509 from FPGATrackSimReporting.FPGATrackSimReportingConfig
import FPGATrackSimReportingCfg
510 acc.merge(FPGATrackSimReportingCfg(flags,
511 perEventReports =
False,
512 **{
'xAODPixelClusterContainers' : [
'ITkPixelClusters'],
513 'xAODStripClusterContainers' : [
'ITkStripClusters'],
514 'FPGAActsTracks' : [f
'{flags.Tracking.ActiveConfig.extension}Tracks',f
'SiSPTracksSeedSegments{flags.Tracking.ActiveConfig.extension}PixelTracks'],
515 'isDataPrep':
True} ))
517 if flags.Trigger.FPGATrackSim.writeAdditionalOutputData
and flags.Tracking.ActiveConfig.extension
in [
"ActsValidateF100"]:
518 acc.addService(CompFactory.THistSvc(Output = [f
"EXPERT DATAFILE='{flags.Trigger.FPGATrackSim.outputMonitorFile}', OPT='RECREATE'"]))
519 acc.addService(CompFactory.THistSvc(Output = [
"FPGATRACKSIMOUTPUT DATAFILE='dataprep.root', OPT='RECREATE'"]))
533 acc = ComponentAccumulator()
534 if flags.Trigger.FPGATrackSim.wrapperFileName
and flags.Trigger.FPGATrackSim.wrapperFileName
is not None:
537 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
538 acc.merge(PoolReadCfg(flags))
541 from xAODEventInfoCnv.xAODEventInfoCnvConfig
import EventInfoCnvAlgCfg
542 acc.merge(EventInfoCnvAlgCfg(flags))
545 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
546 acc.merge(GEN_AOD2xAODCfg(flags))
548 from JetRecConfig.JetRecoSteering
import addTruthPileupJetsToOutputCfg
549 acc.merge(addTruthPileupJetsToOutputCfg(flags))
551 if flags.Detector.EnableCalo:
552 from CaloRec.CaloRecoConfig
import CaloRecoCfg
553 acc.merge(CaloRecoCfg(flags))
555 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
556 acc.merge(BeamSpotCondAlgCfg(flags))
558 from InDetConfig.SiliconPreProcessing
import ITkRecPreProcessingSiliconCfg
559 acc.merge(ITkRecPreProcessingSiliconCfg(flags))
565 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
566 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
568 FinalDataPrepTrackChainxAODTracksKeyPrefix=
"FPGA"
570 flags = initConfigFlags()
571 from InDetConfig.ConfigurationHelpers
import OnlyTrackingPreInclude
572 OnlyTrackingPreInclude(flags)
577 from ActsConfig.ActsCIFlags
import actsProductionFlags
578 actsProductionFlags(flags)
581 flags.Concurrency.NumThreads=1
582 flags.Concurrency.NumConcurrentEvents=1
583 flags.Concurrency.NumProcs=0
584 flags.Scheduler.ShowDataDeps=
False
585 flags.Scheduler.CheckDependencies=
True
586 flags.Debug.DumpEvtStore=
False
589 if isinstance(flags.Trigger.FPGATrackSim.wrapperFileName, str):
590 log.info(
"wrapperFile is string, converting to list")
591 flags.Trigger.FPGATrackSim.wrapperFileName = [flags.Trigger.FPGATrackSim.wrapperFileName]
592 flags.Input.Files =
lambda f: [f.Trigger.FPGATrackSim.wrapperFileName]
594 flags.Tracking.writeExtendedSi_PRDInfo =
not flags.Trigger.FPGATrackSim.writeOfflPRDInfo
600 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Tracking.ITkActsPass", keepOriginal=
True)
602 acc=MainServicesCfg(flags)
603 if flags.Trigger.FPGATrackSim.writeAdditionalOutputData:
604 acc.addService(CompFactory.THistSvc(Output = [f
"EXPERT DATAFILE='{flags.Trigger.FPGATrackSim.outputMonitorFile}', OPT='RECREATE'"]))
605 acc.addService(CompFactory.THistSvc(Output = [
"FPGATRACKSIMOUTPUT DATAFILE='dataprep.root', OPT='RECREATE'"]))
608 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometrySvcCfg
609 acc.merge(ActsTrackingGeometrySvcCfg(flags))
610 from ActsAlignmentAlgs.AlignmentAlgsConfig
import ActsGeometryContextAlgCfg
611 acc.merge(ActsGeometryContextAlgCfg(flags))
618 if flags.Trigger.FPGATrackSim.doEDMConversion:
619 acc.merge(
FPGAConversionAlgCfg(flags, name =
'FPGAConversionAlg', stage =
'_1st', doActsTrk=
False, doSP =
False))
622 from ActsConfig.ActsSpacePointFormationConfig
import ActsPixelSpacePointFormationAlgCfg
623 acc.merge(ActsPixelSpacePointFormationAlgCfg(flags,name=
"FPGAActsPixelSpacePointFormationAlg",
624 **{
'PixelClusters':
"xAODPixelClustersFromFPGACluster",
625 'PixelSpacePoints':
"xAODPixelSpacePointsFromFPGA"}))
627 if flags.Trigger.FPGATrackSim.writeToAOD:
630 finalTrackParticles=f
"{FinalDataPrepTrackChainxAODTracksKeyPrefix}TrackParticles"))
633 from FPGATrackSimReporting.FPGATrackSimReportingConfig
import FPGATrackSimReportingCfg
634 acc.merge(FPGATrackSimReportingCfg(flags,stage=
"_1st",
635 perEventReports = (flags.Trigger.FPGATrackSim.sampleType !=
'skipTruth'),
639 if flags.Trigger.FPGATrackSim.writeAdditionalOutputData:
640 from EFTrackingFPGAOutputValidation.FPGAOutputValidationConfig
import FPGAOutputValidationCfg
641 acc.merge(FPGAOutputValidationCfg(flags, **{
'pixelKeys' : [
"xAODPixelClustersFromFPGACluster",
"ITkPixelClusters"],
642 'stripKeys':[
"xAODStripClustersFromFPGACluster",
"ITkStripClusters"],
643 'doDiffHistograms':
True,
644 'matchByID' :
True}))
646 acc.store(open(
'AnalysisConfig.pkl',
'wb'))
648 statusCode = acc.run(flags.Exec.MaxEvents)
649 assert statusCode.isSuccess()
is True,
"Application execution did not succeed"