ATLAS Offline Software
FPGATrackSimMultiRegionConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 
5 
9 
10  if flags.Trigger.FPGATrackSim.Hough.secondStage:
12  acc.merge(FPGATrackSimRegionMergeringAlgCfg(flags))
13 
14  return acc
15 
16 
18  acc = ComponentAccumulator()
19  for region in flags.Trigger.FPGATrackSim.regionList:
20  flags1st = flags.clone()
21  flags1st.Trigger.FPGATrackSim.region=region
22  flags1st = flags1st.cloneAndReplace("Trigger.FPGATrackSim.ActiveConfig", "Trigger.FPGATrackSim." + flags.Trigger.FPGATrackSim.algoTag,keepOriginal=True)
23  flags1st.lock()
24 
25  from FPGATrackSimConfTools.FPGATrackSimAnalysisConfig import FPGATrackSimLogicalHitsProcessAlgCfg
26  acc.merge(FPGATrackSimLogicalHitsProcessAlgCfg(flags1st,
27  **{'FPGATrackSimHitKey_1st': f"FPGAHits_1st_reg{region}",
28  'FPGATrackSimHitKey_2nd': f"FPGAHits_2nd_reg{region}",
29  'FPGATrackSimHitFiltered1stKey': f"FPGAHitsFiltered_1st_reg{region}",
30  'FPGATrackSimHitInRoads1stKey': f"FPGAHitsInRoads_1st_reg{region}",
31  'FPGATrackSimRoad1stKey': f"FPGARoads_1st_reg{region}",
32  'FPGATrackSimTrack1stKey': f"FPGATracks_1st_reg{region}",
33  'FPGATrackSimSpacePoints1stKey': f"FPGASpacePoints_1st_reg{region}"}))
34  return acc
35 
37  acc = ComponentAccumulator()
38  for region in flags.Trigger.FPGATrackSim.regionList:
39  flags2nd = flags.clone()
40  flags2nd.Trigger.FPGATrackSim.region=region
41  flags2nd = flags2nd.cloneAndReplace("Trigger.FPGATrackSim.ActiveConfig", "Trigger.FPGATrackSim." + flags.Trigger.FPGATrackSim.algoTag,keepOriginal=True)
42  flags2nd.lock()
43 
44  from FPGATrackSimConfTools import FPGATrackSimSecondStageConfig
45  acc.merge(FPGATrackSimSecondStageConfig.FPGATrackSimSecondStageAlgCfg(flags2nd,
46  **{'FPGATrackSimHitKey': f"FPGAHits_2nd_reg{region}",
47  'FPGATrackSimTrack1stKey': f"FPGATracks_1st_reg{region}",
48  'FPGATrackSimHitInRoads2ndKey': f"FPGAHitsInRoads_2nd_reg{region}",
49  'FPGATrackSimRoad2ndKey': f"FPGARoads_2nd_reg{region}",
50  'FPGATrackSimTrack2ndKey': f"FPGATracks_2nd_reg{region}"}))
51  return acc
52 
54  acc = ComponentAccumulator()
55  from FPGATrackSimConfTools.FPGATrackSimAnalysisConfig import ConfigureMultiRegionFlags
56  from FPGATrackSimConfTools.FPGATrackSimLayerStudyConfig import FPGATrackSimLayerStudyCfg
57 
58  for region in flags.Trigger.FPGATrackSim.regionList:
59  flagsLS = flags.clone()
60  flagsLS.Trigger.FPGATrackSim.region = region
62  flagsLS.lock()
63  acc.merge(FPGATrackSimLayerStudyCfg(flagsLS))
64 
65  return acc
66 
67 
68 def FPGATrackSimRegionMergeringAlgCfg(flagsIn,name="FPGATrackSimRegionMergingAlg",**kwargs):
69  acc = ComponentAccumulator()
70  flags = flagsIn.cloneAndReplace("Trigger.FPGATrackSim.ActiveConfig", "Trigger.FPGATrackSim." + flagsIn.Trigger.FPGATrackSim.algoTag,keepOriginal=False)
71  stage="2nd" if flags.Trigger.FPGATrackSim.ActiveConfig.secondStage else "1st"
72 
73  TrackCollections = [f"FPGATracks_{stage}_reg{region}" for region in flags.Trigger.FPGATrackSim.regionList]
74  RoadCollections = [f"FPGARoads_{stage}_reg{region}" for region in flags.Trigger.FPGATrackSim.regionList]
75  HitsInRoadsCollections = [f"FPGAHitsInRoads_{stage}_reg{region}" for region in flags.Trigger.FPGATrackSim.regionList]
76 
77  kwargs.setdefault('FPGATrackSimTrackCollections',TrackCollections)
78  kwargs.setdefault('FPGATrackSimRoadCollections',RoadCollections)
79  kwargs.setdefault('FPGATrackSimHitsInRoadsCollections',HitsInRoadsCollections)
80 
81  regionMerging = CompFactory.FPGATrackSim.FPGATrackSimRegionMergingAlg(name,**kwargs)
82  regionMerging.doOverlapRemoval = flags.Trigger.FPGATrackSim.doOverlapRemovalBetweenRegions
83 
84 
85  regionMerging.useRoads = False # not flags.Trigger.FPGATrackSim.tracking (maybe we'll never actually use roads at this point)
86 
87  if stage == "2nd":
88  from FPGATrackSimConfTools.FPGATrackSimSecondStageConfig import FPGATrackSimOverlapRemovalToolCfg
89  regionMerging.OverlapRemovalTool = acc.getPrimaryAndMerge(FPGATrackSimOverlapRemovalToolCfg(flags,name="OLRMerge"))
90  elif stage == "1st":
91  from FPGATrackSimConfTools.FPGATrackSimAnalysisConfig import FPGATrackSimOverlapRemovalToolCfg
92  regionMerging.OverlapRemovalTool = acc.getPrimaryAndMerge(FPGATrackSimOverlapRemovalToolCfg(flags,name="OLRMerge"))
93 
94 
95  regionMerging.OverlapRemovalTool.MinChi2 = 1e15
96 
97  acc.addEventAlgo(regionMerging)
98  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.FPGATrackSimMultiRegionConfig.FPGATrackSimMultiRegionTrackingCfg
def FPGATrackSimMultiRegionTrackingCfg(flags)
Definition: FPGATrackSimMultiRegionConfig.py:6
python.FPGATrackSimMultiRegionConfig.FPGATrackSimRegionMergeringAlgCfg
def FPGATrackSimRegionMergeringAlgCfg(flagsIn, name="FPGATrackSimRegionMergingAlg", **kwargs)
Definition: FPGATrackSimMultiRegionConfig.py:68
python.FPGATrackSimAnalysisConfig.ConfigureMultiRegionFlags
def ConfigureMultiRegionFlags(flags)
Definition: FPGATrackSimAnalysisConfig.py:722
python.FPGATrackSimAnalysisConfig.FPGATrackSimLogicalHitsProcessAlgCfg
def FPGATrackSimLogicalHitsProcessAlgCfg(inputFlags, name="FPGATrackSimLogicalHitsProcessAlg", **kwargs)
Definition: FPGATrackSimAnalysisConfig.py:580
python.FPGATrackSimLayerStudyConfig.FPGATrackSimLayerStudyCfg
def FPGATrackSimLayerStudyCfg(flags)
Definition: FPGATrackSimLayerStudyConfig.py:134
python.FPGATrackSimMultiRegionConfig.FPGATrackSimRunFirstStageOnManyRegions
def FPGATrackSimRunFirstStageOnManyRegions(flags)
Definition: FPGATrackSimMultiRegionConfig.py:17
python.FPGATrackSimAnalysisConfig.FPGATrackSimOverlapRemovalToolCfg
def FPGATrackSimOverlapRemovalToolCfg(flags, name="FPGATrackSimOverlapRemovalTool")
Definition: FPGATrackSimAnalysisConfig.py:527
python.FPGATrackSimMultiRegionConfig.FPGATrackSimRunLayerStudyOnManyRegions
def FPGATrackSimRunLayerStudyOnManyRegions(flags)
Definition: FPGATrackSimMultiRegionConfig.py:53
python.FPGATrackSimMultiRegionConfig.FPGATrackSimRunSecondStageOnManyRegions
def FPGATrackSimRunSecondStageOnManyRegions(flags)
Definition: FPGATrackSimMultiRegionConfig.py:36