ATLAS Offline Software
Loading...
Searching...
No Matches
ITkFastTrackFinderStandaloneConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from AthenaConfiguration.AthConfigFlags import AthConfigFlags
6
7from TrigFastTrackFinder.TrigFastTrackFinderConfig import ITkTrigL2LayerNumberToolCfg
8
9def ITkTrigTrackSeedingToolStandaloneCfg(flags: AthConfigFlags, **kwargs) -> ComponentAccumulator:
10
11 acc = ComponentAccumulator()
12
13 if "layerNumberTool" not in kwargs:
14 ntargs = {"UseNewLayerScheme" : True}
15 kwargs.setdefault("layerNumberTool",acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags,**ntargs)))
16
17 kwargs.setdefault("DoPhiFiltering", False) #no phi-filtering for full-scan tracking
18 kwargs.setdefault("UseBeamTilt", False)
19 kwargs.setdefault("PixelSP_ContainerName", "ITkPixelSpacePoints")
20 kwargs.setdefault("SCT_SP_ContainerName", "ITkStripSpacePoints")
21
22 isLRT=flags.Tracking.ActiveConfig.extension == "LargeD0"
23
24 kwargs.setdefault("UsePixelSpacePoints", (not isLRT))
25 kwargs.setdefault("UseSctSpacePoints", isLRT)
26 kwargs.setdefault("pTmin", flags.Tracking.ActiveConfig.minPT[0])
27 kwargs.setdefault("MaxGraphEdges", 2500000 if flags.Trigger.InDetTracking.doGPU else 3000000)
28 kwargs.setdefault("ConnectionFileName", "binTables_ITK_RUN4_LRT.txt" if isLRT else "binTables_ITK_RUN4.txt")
29
30 kwargs.setdefault("UseGPU", flags.Trigger.InDetTracking.doGPU)
31
32 if flags.Trigger.InDetTracking.doGPU:
33 from AthCUDAServices.AthCUDAServicesConfig import GPUSystemInfoSvcCfg
34 acc.merge(GPUSystemInfoSvcCfg(flags))
35 inDetAccelSvc = CompFactory.TrigInDetAccelerationSvc("TrigInDetAccelerationSvc")
36 inDetAccelSvc.useITkGeometry = True # Allows to read and export the ITk geometry
37 acc.addService(inDetAccelSvc)
38
39 kwargs.setdefault("TrigAccelerationSvc", acc.getService("TrigInDetAccelerationSvc") if flags.Trigger.InDetTracking.doGPU else None)
40
41 from RegionSelector.RegSelToolConfig import (regSelTool_ITkStrip_Cfg, regSelTool_ITkPixel_Cfg)
42
43 kwargs.setdefault("RegSelTool_Pixel", acc.popToolsAndMerge( regSelTool_ITkPixel_Cfg( flags) ))
44
45 kwargs.setdefault("RegSelTool_SCT", acc.popToolsAndMerge( regSelTool_ITkStrip_Cfg( flags) ))
46
47 acc.setPrivateTools(CompFactory.TrigInDetTrackSeedingTool(**kwargs))
48
49 return acc
50
51def ITkFastTrackFinderStandaloneCfg(flags, SiSPSeededTrackCollectionKey = None):
52 acc = ComponentAccumulator()
53
54 from TrkConfig.TrkTrackSummaryToolConfig import ITkTrackSummaryToolCfg
55
56 from InDetConfig.SiTrackMakerConfig import ITkSiTrackMaker_xkCfg
57 ITkSiTrackMakerTool = acc.popToolsAndMerge(ITkSiTrackMaker_xkCfg(flags))
58
59 ITkSiTrackMakerTool.CombinatorialTrackFinder.writeHolesFromPattern = False
60
61 if flags.Tracking.ActiveConfig.useTrigTrackFollowing:
62 acc.addPublicTool( CompFactory.TrigInDetTrackFollowingTool( name = "TrigTrackFollowingTool_FTF", LayerNumberTool = acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags))))
63
64 ITkSiTrackMakerTool.useTrigTrackFollowingTool = True
65 ITkSiTrackMakerTool.TrigTrackFollowingTool = acc.getPublicTool("TrigTrackFollowingTool_FTF")
66
67 if flags.Tracking.ActiveConfig.useTrigRoadPredictor:
68 acc.addPublicTool( CompFactory.TrigInDetRoadPredictorTool( name = "TrigRoadPredictorTool_FTF", LayerNumberTool = acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags))))
69
70 ITkSiTrackMakerTool.useTrigInDetRoadPredictorTool = True
71 ITkSiTrackMakerTool.TrigInDetRoadPredictorTool = acc.getPublicTool("TrigRoadPredictorTool_FTF")
72
73 ITkSiTrackMakerTool.trackletPoints = flags.Trigger.InDetTracking.trackletPoints
74
75 acc.addPublicTool(ITkSiTrackMakerTool)
76
77 acc.addPublicTool( CompFactory.TrigInDetTrackFitter( "TrigInDetTrackFitter" ) )
78
79 isLRT=flags.Tracking.ActiveConfig.extension == "LargeD0"
80
81 from TrigFastTrackFinder.TrigFastTrackFinderConfig import TrigFastTrackFinderMonitoringArg
82 from TriggerJobOpts.TriggerHistSvcConfig import TriggerHistSvcConfig
83
84 acc.merge(TriggerHistSvcConfig(flags))
85
86 monTool = TrigFastTrackFinderMonitoringArg(flags, name = "FullScanLRT" if isLRT else "FullScan", doResMon=False)
87
88 ftf = CompFactory.TrigFastTrackFinder( name = "TrigFastTrackFinder"+flags.Tracking.ActiveConfig.extension,
89 LayerNumberTool = acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags)),
90 TrigAccelerationTool = None,
91 TrigAccelerationSvc = None,
92 SpacePointProviderTool = None,
93 TrackSummaryTool = acc.popToolsAndMerge(ITkTrackSummaryToolCfg(flags)),
94 TrackSeedingTool = acc.popToolsAndMerge(ITkTrigTrackSeedingToolStandaloneCfg(flags)),
95 initialTrackMaker = ITkSiTrackMakerTool,
96 trigInDetTrackFitter = CompFactory.TrigInDetTrackFitter( "TrigInDetTrackFitter" ),
97 trigZFinder = CompFactory.TrigZFinder(),
98 doZFinder = False,
99 SeedRadBinWidth = 10,
100 TrackInitialD0Max = 300. if isLRT else 20.0,
101 TracksName = SiSPSeededTrackCollectionKey,
102 TrackZ0Max = 500. if isLRT else 300.,
103 Triplet_D0Max = 300. if isLRT else 4,
104 Triplet_MaxBufferLength = 3 if isLRT else 1,
105 Triplet_MinPtFrac = 0.8,
106 UseTrigSeedML = 1,
107 doResMon = False,
108 doSeedRedundancyCheck = True,
109 pTmin = flags.Tracking.ActiveConfig.minPT[0],
110 useNewLayerNumberScheme = True,
111 MinHits = 3,
112 ITkMode = True, # Allows ftf to use the new track seeding for ITk
113 useGPU = False,# set to False as the GPU option is now included in TrigTrackSeedingTool
114 StandaloneMode = True, # Allows ftf to be run as an offline algorithm with reco_tf
115 UseTracklets = flags.Tracking.ActiveConfig.useTracklets,
116 doTrackRefit = False,
117 FreeClustersCut = 1,
118 MonTool = monTool,
119 DoubletDR_Max = 150.0,
120 LRT_Mode = isLRT,
121 doDisappearingTrk = False,
122 dodEdxTrk = False)
123
124 acc.addEventAlgo( ftf, primary=True )
125
126 return acc
127
128
ITkFastTrackFinderStandaloneCfg(flags, SiSPSeededTrackCollectionKey=None)
ComponentAccumulator ITkTrigTrackSeedingToolStandaloneCfg(AthConfigFlags flags, **kwargs)