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 inDetAccelSvc = CompFactory.TrigInDetAccelerationSvc("TrigInDetAccelerationSvc")
34 inDetAccelSvc.useITkGeometry = True # Allows to read and export the ITk geometry
35 acc.addService(inDetAccelSvc)
36
37 kwargs.setdefault("TrigAccelerationSvc", acc.getService("TrigInDetAccelerationSvc") if flags.Trigger.InDetTracking.doGPU else None)
38
39 from RegionSelector.RegSelToolConfig import (regSelTool_ITkStrip_Cfg, regSelTool_ITkPixel_Cfg)
40
41 kwargs.setdefault("RegSelTool_Pixel", acc.popToolsAndMerge( regSelTool_ITkPixel_Cfg( flags) ))
42
43 kwargs.setdefault("RegSelTool_SCT", acc.popToolsAndMerge( regSelTool_ITkStrip_Cfg( flags) ))
44
45 acc.setPrivateTools(CompFactory.TrigInDetTrackSeedingTool(**kwargs))
46
47 return acc
48
49def ITkFastTrackFinderStandaloneCfg(flags, SiSPSeededTrackCollectionKey = None):
50 acc = ComponentAccumulator()
51
52 from TrkConfig.TrkTrackSummaryToolConfig import ITkTrackSummaryToolCfg
53
54 from InDetConfig.SiTrackMakerConfig import ITkSiTrackMaker_xkCfg
55 ITkSiTrackMakerTool = acc.popToolsAndMerge(ITkSiTrackMaker_xkCfg(flags))
56
57 ITkSiTrackMakerTool.CombinatorialTrackFinder.writeHolesFromPattern = False
58
59 if flags.Tracking.ActiveConfig.useTrigTrackFollowing:
60 acc.addPublicTool( CompFactory.TrigInDetTrackFollowingTool( name = "TrigTrackFollowingTool_FTF", LayerNumberTool = acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags))))
61
62 ITkSiTrackMakerTool.useTrigTrackFollowingTool = True
63 ITkSiTrackMakerTool.TrigTrackFollowingTool = acc.getPublicTool("TrigTrackFollowingTool_FTF")
64
65 if flags.Tracking.ActiveConfig.useTrigRoadPredictor:
66 acc.addPublicTool( CompFactory.TrigInDetRoadPredictorTool( name = "TrigRoadPredictorTool_FTF", LayerNumberTool = acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags))))
67
68 ITkSiTrackMakerTool.useTrigInDetRoadPredictorTool = True
69 ITkSiTrackMakerTool.TrigInDetRoadPredictorTool = acc.getPublicTool("TrigRoadPredictorTool_FTF")
70
71 ITkSiTrackMakerTool.trackletPoints = flags.Trigger.InDetTracking.trackletPoints
72
73 acc.addPublicTool(ITkSiTrackMakerTool)
74
75 acc.addPublicTool( CompFactory.TrigInDetTrackFitter( "TrigInDetTrackFitter" ) )
76
77 isLRT=flags.Tracking.ActiveConfig.extension == "LargeD0"
78
79 from TrigFastTrackFinder.TrigFastTrackFinderConfig import TrigFastTrackFinderMonitoringArg
80 from TriggerJobOpts.TriggerHistSvcConfig import TriggerHistSvcConfig
81
82 acc.merge(TriggerHistSvcConfig(flags))
83
84 monTool = TrigFastTrackFinderMonitoringArg(flags, name = "FullScanLRT" if isLRT else "FullScan", doResMon=False)
85
86 ftf = CompFactory.TrigFastTrackFinder( name = "TrigFastTrackFinder"+flags.Tracking.ActiveConfig.extension,
87 LayerNumberTool = acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags)),
88 TrigAccelerationTool = None,
89 TrigAccelerationSvc = None,
90 SpacePointProviderTool = None,
91 TrackSummaryTool = acc.popToolsAndMerge(ITkTrackSummaryToolCfg(flags)),
92 TrackSeedingTool = acc.popToolsAndMerge(ITkTrigTrackSeedingToolStandaloneCfg(flags)),
93 initialTrackMaker = ITkSiTrackMakerTool,
94 trigInDetTrackFitter = CompFactory.TrigInDetTrackFitter( "TrigInDetTrackFitter" ),
95 trigZFinder = CompFactory.TrigZFinder(),
96 doZFinder = False,
97 SeedRadBinWidth = 10,
98 TrackInitialD0Max = 300. if isLRT else 20.0,
99 TracksName = SiSPSeededTrackCollectionKey,
100 TrackZ0Max = 500. if isLRT else 300.,
101 Triplet_D0Max = 300. if isLRT else 4,
102 Triplet_MaxBufferLength = 3 if isLRT else 1,
103 Triplet_MinPtFrac = 0.8,
104 UseTrigSeedML = 1,
105 doResMon = False,
106 doSeedRedundancyCheck = True,
107 pTmin = flags.Tracking.ActiveConfig.minPT[0],
108 useNewLayerNumberScheme = True,
109 MinHits = 3,
110 ITkMode = True, # Allows ftf to use the new track seeding for ITk
111 useGPU = False,# set to False as the GPU option is now included in TrigTrackSeedingTool
112 StandaloneMode = True, # Allows ftf to be run as an offline algorithm with reco_tf
113 UseTracklets = flags.Tracking.ActiveConfig.useTracklets,
114 doTrackRefit = False,
115 FreeClustersCut = 1,
116 MonTool = monTool,
117 DoubletDR_Max = 150.0,
118 LRT_Mode = isLRT,
119 doDisappearingTrk = False,
120 dodEdxTrk = False)
121
122 acc.addEventAlgo( ftf, primary=True )
123
124 return acc
125
126
ITkFastTrackFinderStandaloneCfg(flags, SiSPSeededTrackCollectionKey=None)
ComponentAccumulator ITkTrigTrackSeedingToolStandaloneCfg(AthConfigFlags flags, **kwargs)