ATLAS Offline Software
Loading...
Searching...
No Matches
TrigFastTrackFinderConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool
4
5
7 name = flags.Tracking.ActiveConfig.name
8 doResMon= flags.Tracking.ActiveConfig.doResMon
9 return TrigFastTrackFinderMonitoringArg(flags, name, doResMon)
10
11
12def TrigFastTrackFinderMonitoringArg(flags, name, doResMon):
13
14
15 def addSPHistograms(montool, name):
16 if name in ['FS', 'JetFS', 'FullScan', 'fullScan', 'fullScanUTT', 'jet']:
17 montool.defineHistogram('roi_nSPsPIX', path='EXPERT',type='TH1F',title="Number of Pixel SPs", xbins = 500, xmin=-0.5, xmax=49999.5)
18 montool.defineHistogram('roi_nSPsSCT', path='EXPERT',type='TH1F',title="Number of SCT SPs", xbins = 500, xmin=-0.5, xmax=99999.5)
19 montool.defineHistogram('roi_phiWidth',path='EXPERT',type='TH1F',title="Phi width of the input RoI",xbins = 100, xmin=0, xmax=6.4)
20 montool.defineHistogram('roi_etaWidth',path='EXPERT',type='TH1F',title="Eta width of the input RoI",xbins = 100, xmin=0, xmax=5)
21 else:
22 montool.defineHistogram('roi_nSPsPIX', path='EXPERT',type='TH1F',title="Number of Pixel SPs", xbins = 50, xmin=-0.5, xmax=4999.5)
23 montool.defineHistogram('roi_nSPsSCT', path='EXPERT',type='TH1F',title="Number of SCT SPs", xbins = 50, xmin=-0.5, xmax=4999.5)
24 montool.defineHistogram('roi_phiWidth',path='EXPERT',type='TH1F',title="Phi width of the input RoI",xbins = 100, xmin=0, xmax=1.0)
25 montool.defineHistogram('roi_etaWidth',path='EXPERT',type='TH1F',title="Eta width of the input RoI",xbins = 100, xmin=0, xmax=1.0)
26
27 montool.defineHistogram('roi_eta', path='EXPERT',type='TH1F',title='Eta of the input RoI;;Entries', xbins=100, xmin=-5, xmax=5)
28 montool.defineHistogram('roi_phi', path='EXPERT',type='TH1F',title="Phi of the input RoI",xbins = 100, xmin=-3.2, xmax=3.2)
29 montool.defineHistogram('roi_z', path='EXPERT',type='TH1F',title="z of the input RoI",xbins = 200, xmin=-400, xmax=400)
30 montool.defineHistogram('roi_zWidth', path='EXPERT',type='TH1F',title="z width of the input RoI",xbins = 100, xmin=0, xmax=500)
31
32 def addDataErrorHistograms(montool):
33 montool.defineHistogram('roi_lastStageExecuted',path='EXPERT',type='TH1F',title="Last Step Successfully Executed", xbins = 8 , xmin=-0.5, xmax=7.5,
34 xlabels=["Start","GetRoI","GetSPs","ZFinder","Triplets","TrackMaker","TrackFitter","TrackConverter"])
35
36 def addTimingHistograms(montool, name):
37 if name in ['FS', 'JetFS', 'FullScan', 'fullScan', 'fullScanUTT', 'jet']:
38 montool.defineHistogram('roi_nSPs, TIME_PattReco', path='EXPERT',type='TH2F',title="PattReco time; nSPs", xbins = 200, xmin=0.0, xmax=200000.0, ybins = 100, ymin=0.0, ymax=5000.0)
39 montool.defineHistogram('roi_nTracks, TIME_PattReco',path='EXPERT',type='TH2F',title="PattReco time; nTracks", xbins = 50, xmin=0.0, xmax=5000.0, ybins = 100, ymin=0.0, ymax=5000.0)
40 montool.defineHistogram('TIME_Total', path='EXPERT',type='TH1F',title="Total time (ms)", xbins = 200, xmin=0.0, xmax=5000.0)
41 montool.defineHistogram('TIME_PattReco', path='EXPERT',type='TH1F',title="Pure PattReco time (ms)", xbins = 200, xmin=0.0, xmax=5000.0)
42 montool.defineHistogram('TIME_SpacePointConversion', path='EXPERT',type='TH1F',title="SP Conversion time (ms)", xbins = 100, xmin=0.0, xmax=100.0)
43 montool.defineHistogram('TIME_ZFinder', path='EXPERT',type='TH1F',title="ZFinder time (ms)", xbins = 200, xmin=0.0, xmax=5000.0)
44 montool.defineHistogram('TIME_Triplets', path='EXPERT',type='TH1F',title="Triplets Making time (ms)", xbins = 200, xmin=0.0, xmax=5000.0)
45 montool.defineHistogram('TIME_CmbTrack', path='EXPERT',type='TH1F',title="Combined Tracking time (ms)", xbins = 200, xmin=0.0, xmax=5000.0)
46 montool.defineHistogram('TIME_TrackFitter', path='EXPERT',type='TH1F',title="Track Fitter time (ms)", xbins = 200, xmin=0.0, xmax=1000.0)
47 elif name=='jetSuper':
48 montool.defineHistogram('roi_nSPs, TIME_PattR1eco', path='EXPERT',type='TH2F',title="PattReco time; nSPs", xbins = 200, xmin=0.0, xmax=3000.0, ybins = 100, ymin=0.0, ymax=1000.0)
49 montool.defineHistogram('roi_nTracks, TIME_PattReco',path='EXPERT',type='TH2F',title="PattReco time; nTracks", xbins = 50, xmin=0.0, xmax=200.0, ybins = 100, ymin=0.0, ymax=1000.0)
50 montool.defineHistogram('TIME_Total', path='EXPERT',type='TH1F',title="Total time (ms)", xbins = 200, xmin=0.0, xmax=2000.0)
51 montool.defineHistogram('TIME_PattReco', path='EXPERT',type='TH1F',title="Pure PattReco time (ms)", xbins = 200, xmin=0.0, xmax=1000.0)
52 montool.defineHistogram('TIME_SpacePointConversion', path='EXPERT',type='TH1F',title="SP Conversion time (ms)", xbins = 100, xmin=0.0, xmax=100.0)
53 montool.defineHistogram('TIME_ZFinder', path='EXPERT',type='TH1F',title="ZFinder time (ms)", xbins = 200, xmin=0.0, xmax=1000.0)
54 montool.defineHistogram('TIME_Triplets', path='EXPERT',type='TH1F',title="Triplets Making time (ms)", xbins = 200, xmin=0.0, xmax=1000.0)
55 montool.defineHistogram('TIME_CmbTrack', path='EXPERT',type='TH1F',title="Combined Tracking time (ms)", xbins = 200, xmin=0.0, xmax=1000.0)
56 montool.defineHistogram('TIME_TrackFitter', path='EXPERT',type='TH1F',title="Track Fitter time (ms)", xbins = 200, xmin=0.0, xmax=200.0)
57 elif name in ['beamSpot','beamSpotFS','bphysics','bmumux']:
58 montool.defineHistogram('roi_nSPs, TIME_PattReco', path='EXPERT',type='TH2F',title="PattReco time; nSPs", xbins = 200, xmin=0.0, xmax=3000.0, ybins = 100, ymin=0.0, ymax=2000.0)
59 montool.defineHistogram('roi_nTracks, TIME_PattReco',path='EXPERT',type='TH2F',title="PattReco time; nTracks", xbins = 50, xmin=0.0, xmax=200.0, ybins = 100, ymin=0.0, ymax=2000.0)
60 montool.defineHistogram('TIME_Total', path='EXPERT',type='TH1F',title="Total time (ms)", xbins = 200, xmin=0.0, xmax=5000.0)
61 montool.defineHistogram('TIME_PattReco', path='EXPERT',type='TH1F',title="Pure PattReco time (ms)", xbins = 200, xmin=0.0, xmax=2000.0)
62 montool.defineHistogram('TIME_SpacePointConversion', path='EXPERT',type='TH1F',title="SP Conversion time (ms)", xbins = 50, xmin=0.0, xmax=50.0)
63 montool.defineHistogram('TIME_Triplets', path='EXPERT',type='TH1F',title="Triplets Making time (ms)", xbins = 200, xmin=0.0, xmax=2000.0)
64 montool.defineHistogram('TIME_CmbTrack', path='EXPERT',type='TH1F',title="Combined Tracking time (ms)", xbins = 200, xmin=0.0, xmax=2000.0)
65 montool.defineHistogram('TIME_TrackFitter', path='EXPERT',type='TH1F',title="Track Fitter time (ms)", xbins = 200, xmin=0.0, xmax=200.0)
66 elif name in ['fullScanLRT', 'FullScanLRT']:
67 montool.defineHistogram('roi_nSPs, TIME_PattReco', path='EXPERT',type='TH2F',title="PattReco time; nSPs", xbins = 200, xmin=0.0, xmax=3000.0, ybins = 100, ymin=0.0, ymax=500.0)
68 montool.defineHistogram('roi_nTracks, TIME_PattReco',path='EXPERT',type='TH2F',title="PattReco time; nTracks", xbins = 50, xmin=0.0, xmax=200.0, ybins = 100, ymin=0.0, ymax=500.0)
69 montool.defineHistogram('TIME_Total', path='EXPERT',type='TH1F',title="Total time (ms)", xbins = 200, xmin=0.0, xmax=5000.0)
70 montool.defineHistogram('TIME_PattReco', path='EXPERT',type='TH1F',title="Pure PattReco time (ms)", xbins = 200, xmin=0.0, xmax=2000.0)
71 montool.defineHistogram('TIME_SpacePointConversion', path='EXPERT',type='TH1F',title="SP Conversion time (ms)", xbins = 200, xmin=0.0, xmax=200.0)
72 montool.defineHistogram('TIME_Triplets', path='EXPERT',type='TH1F',title="Triplets Making time (ms)", xbins = 200, xmin=0.0, xmax=400.0)
73 montool.defineHistogram('TIME_CmbTrack', path='EXPERT',type='TH1F',title="Combined Tracking time (ms)", xbins = 200, xmin=0.0, xmax=2000.0)
74 montool.defineHistogram('TIME_TrackFitter', path='EXPERT',type='TH1F',title="Track Fitter time (ms)", xbins = 200, xmin=0.0, xmax=200.0)
75 else:
76 montool.defineHistogram('roi_nSPs, TIME_PattReco', path='EXPERT',type='TH2F',title="PattReco time; nSPs", xbins = 200, xmin=0.0, xmax=3000.0, ybins = 100, ymin=0.0, ymax=400.0)
77 montool.defineHistogram('roi_nTracks, TIME_PattReco',path='EXPERT',type='TH2F',title="PattReco time; nTracks", xbins = 50, xmin=0.0, xmax=200.0, ybins = 100, ymin=0.0, ymax=400.0)
78 montool.defineHistogram('TIME_Total', path='EXPERT',type='TH1F',title="Total time (ms)", xbins = 200, xmin=0.0, xmax=1000.0)
79 montool.defineHistogram('TIME_PattReco', path='EXPERT',type='TH1F',title="Pure PattReco time (ms)", xbins = 200, xmin=0.0, xmax=400.0)
80 montool.defineHistogram('TIME_SpacePointConversion', path='EXPERT',type='TH1F',title="SP Conversion time (ms)", xbins = 20, xmin=0.0, xmax=20.0)
81 montool.defineHistogram('TIME_Triplets', path='EXPERT',type='TH1F',title="Triplets Making time (ms)", xbins = 100, xmin=0.0, xmax=100.0)
82 montool.defineHistogram('TIME_CmbTrack', path='EXPERT',type='TH1F',title="Combined Tracking time (ms)", xbins = 200, xmin=0.0, xmax=400.0)
83 montool.defineHistogram('TIME_TrackFitter', path='EXPERT',type='TH1F',title="Track Fitter time (ms)", xbins = 50, xmin=0.0, xmax=50.0)
84
85
86
87 def addTrackHistograms(montool, name):
88 if name in ['FS', 'JetFS', 'FullScan', 'fullScan', 'fullScanUTT', 'jet']:
89 montool.defineHistogram('roi_nSeeds', path='EXPERT',type='TH1F',title="Number of seeds",xbins = 1000, xmin=-0.5, xmax=99999.5)
90 montool.defineHistogram('roi_nTracks', path='EXPERT',type='TH1F',title="Number of Tracks",xbins = 100, xmin=-0.5, xmax=9999.5)
91 elif name in ['fullScanLRT', 'FullScanLRT']:
92 montool.defineHistogram('roi_nSeeds', path='EXPERT',type='TH1F',title="Number of seeds",xbins = 1000, xmin=-0.5, xmax=99999.5)
93 montool.defineHistogram('roi_nTracks', path='EXPERT',type='TH1F',title="Number of Tracks",xbins = 100, xmin=-0.5, xmax=5000.5)
94 else:
95 montool.defineHistogram('roi_nSeeds', path='EXPERT',type='TH1F',title="Number of seeds",xbins = 100, xmin=-0.5, xmax=4999.5)
96 montool.defineHistogram('roi_nTracks', path='EXPERT',type='TH1F',title="Number of Tracks",xbins = 50, xmin=-0.5, xmax=199.5)
97
98 montool.defineHistogram('roi_nZvertices', path='EXPERT',type='TH1F',title="Number of z vertices",xbins = 60 , xmin=-0.5, xmax=49.5)
99 montool.defineHistogram('roi_zVertices', path='EXPERT',type='TH1F',title="ZFinder Vertices",xbins = 501, xmin=-250, xmax=250)
100 montool.defineHistogram('roi_nTrk_zVtx', path='EXPERT',type='TH1F',title="Ntrk ZFinder Vertices",xbins = 100, xmin=-0.5, xmax=49.5)
101 montool.defineHistogram('trk_nSiHits', path='EXPERT',type='TH1F',title="Total number of Silicon Hits per Track",xbins = 20, xmin=-0.5, xmax=19.5)
102 montool.defineHistogram('trk_nPIXHits', path='EXPERT',type='TH1F',title="Number of Pixel Hits per Track",xbins = 10, xmin=-0.5, xmax=9.5)
103 montool.defineHistogram('trk_nSCTHits', path='EXPERT',type='TH1F',title="Number of SCT Hits per Track",xbins = 10, xmin=-0.5, xmax=9.5)
104 montool.defineHistogram('trk_seedSize', path='EXPERT',type='TH1F',title="Number of Spacepoints per Seed",xbins = 20, xmin=-0.5, xmax=19.5)
105 montool.defineHistogram('trk_chi2dof', path='EXPERT',type='TH1F',title="ChiSqd / nDoF",xbins = 100, xmin=0.0, xmax=5)
106 montool.defineHistogram('trk_pt', path='EXPERT',type='TH1F',title="pt",xbins = 100, xmin=-2.5e5, xmax=2.5e5)
107 montool.defineHistogram('trk_phi0', path='EXPERT',type='TH1F',title="phi",xbins = 100, xmin=-3.2, xmax=3.2)
108 montool.defineHistogram('trk_eta', path='EXPERT',type='TH1F',title="eta",xbins = 100, xmin=-5, xmax=5)
109 montool.defineHistogram('trk_dPhi0', path='EXPERT',type='TH1F',title="dphi",xbins = 160, xmin=-0.8, xmax=0.8)
110 montool.defineHistogram('trk_dEta', path='EXPERT',type='TH1F',title="deta",xbins = 160, xmin=-0.8, xmax=0.8)
111 if name=="Cosmic":
112 montool.defineHistogram('trk_a0', path='EXPERT',type='TH1F',title="a0",xbins = 100, xmin=-300, xmax=300)
113 montool.defineHistogram('trk_a0beam', path='EXPERT',type='TH1F',title="a0beam",xbins = 100, xmin=-300, xmax=300)
114 montool.defineHistogram('trk_z0', path='EXPERT',type='TH1F',title="z0",xbins = 100, xmin=-800, xmax=800)
115 montool.defineHistogram('trk_z0beam', path='EXPERT',type='TH1F',title="z0beam",xbins = 100, xmin=-800, xmax=800)
116 elif name in ['fullScanLRT', 'FullScanLRT']:
117 montool.defineHistogram('trk_a0', path='EXPERT',type='TH1F',title="a0",xbins = 100, xmin=-300, xmax=300)
118 montool.defineHistogram('trk_a0beam', path='EXPERT',type='TH1F',title="a0beam",xbins = 100, xmin=-300, xmax=300)
119 montool.defineHistogram('trk_z0', path='EXPERT',type='TH1F',title="z0",xbins = 100, xmin=-550, xmax=550)
120 montool.defineHistogram('trk_z0beam', path='EXPERT',type='TH1F',title="z0beam",xbins = 100, xmin=-550, xmax=550)
121 else:
122 montool.defineHistogram('trk_a0', path='EXPERT',type='TH1F',title="a0",xbins = 200, xmin=-10, xmax=10)
123 montool.defineHistogram('trk_a0beam', path='EXPERT',type='TH1F',title="a0beam",xbins = 200, xmin=-10, xmax=10)
124 montool.defineHistogram('trk_z0', path='EXPERT',type='TH1F',title="z0",xbins = 200, xmin=-400, xmax=400)
125 montool.defineHistogram('trk_z0beam', path='EXPERT',type='TH1F',title="z0beam",xbins = 200, xmin=-400, xmax=400)
126
127 def addResidualHistograms(self):
128 montool.defineHistogram('layer_IBL', path='EXPERT',type='TH1F',title="IBL layer",xbins = 10, xmin=0., xmax=10.)
129 montool.defineHistogram('layer_PixB', path='EXPERT',type='TH1F',title="Pixel Barrel layer",xbins = 10, xmin=0., xmax=10.)
130 montool.defineHistogram('layer_PixE', path='EXPERT',type='TH1F',title="Pixel Endcap layer",xbins = 10, xmin=0., xmax=10.)
131 montool.defineHistogram('layer_SCTB', path='EXPERT',type='TH1F',title="SCT Barrel layer",xbins = 10, xmin=0., xmax=10.)
132 montool.defineHistogram('layer_SCTE', path='EXPERT',type='TH1F',title="SCT Endcap layer",xbins = 10, xmin=0., xmax=10.)
133 #
134 montool.defineHistogram('hit_IBLPhiResidual', path='EXPERT',type='TH1F',title="IBL hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
135 montool.defineHistogram('hit_IBLEtaResidual', path='EXPERT',type='TH1F',title="IBL hit-track eta residual",xbins = 100, xmin=-1.0, xmax=1.0)
136 montool.defineHistogram('hit_IBLPhiPull', path='EXPERT',type='TH1F',title="IBL hit-track phi pull",xbins = 100, xmin=-5., xmax=5.)
137 montool.defineHistogram('hit_IBLEtaPull', path='EXPERT',type='TH1F',title="IBL hit-track eta pull",xbins = 100, xmin=-5., xmax=5.)
138 #
139 montool.defineHistogram('hit_PIXBarrelPhiResidual', path='EXPERT',type='TH1F',title="Pixel Barrel hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
140 montool.defineHistogram('hit_PIXBarrelEtaResidual', path='EXPERT',type='TH1F',title="Pixel Barrel hit-track eta residual",xbins = 100, xmin=-1.0, xmax=1.0)
141 montool.defineHistogram('hit_PIXBarrelL1PhiResidual',path='EXPERT',type='TH1F',title="Pixel Barrel L1 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
142 montool.defineHistogram('hit_PIXBarrelL1EtaResidual',path='EXPERT',type='TH1F',title="Pixel Barrel L1 hit-track eta residual",xbins = 100, xmin=-1.0, xmax=1.0)
143 montool.defineHistogram('hit_PIXBarrelL2PhiResidual',path='EXPERT',type='TH1F',title="Pixel Barrel L2 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
144 montool.defineHistogram('hit_PIXBarrelL2EtaResidual',path='EXPERT',type='TH1F',title="Pixel Barrel L2 hit-track eta residual",xbins = 100, xmin=-1.0, xmax=1.0)
145 montool.defineHistogram('hit_PIXBarrelL3PhiResidual',path='EXPERT',type='TH1F',title="Pixel Barrel L3 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
146 montool.defineHistogram('hit_PIXBarrelL3EtaResidual',path='EXPERT',type='TH1F',title="Pixel Barrel L3 hit-track eta residual",xbins = 100, xmin=-1.0, xmax=1.0)
147 montool.defineHistogram('hit_PIXBarrelPhiPull', path='EXPERT',type='TH1F',title="Pixel Barrel hit-track phi pull",xbins = 100, xmin=-5., xmax=5.)
148 montool.defineHistogram('hit_PIXBarrelEtaPull', path='EXPERT',type='TH1F',title="Pixel Barrel hit-track eta pull",xbins = 100, xmin=-5., xmax=5.)
149 #
150 montool.defineHistogram('hit_PIXEndcapPhiResidual', path='EXPERT',type='TH1F',title="Pixel EC hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
151 montool.defineHistogram('hit_PIXEndcapEtaResidual', path='EXPERT',type='TH1F',title="Pixel EC hit-track eta residual",xbins = 100, xmin=-1.0, xmax=1.0)
152 montool.defineHistogram('hit_PIXEndcapL1PhiResidual',path='EXPERT',type='TH1F',title="Pixel EC L1 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
153 montool.defineHistogram('hit_PIXEndcapL1EtaResidual',path='EXPERT',type='TH1F',title="Pixel EC L1 hit-track eta residual",xbins = 100, xmin=-1.0, xmax=1.0)
154 montool.defineHistogram('hit_PIXEndcapL2PhiResidual',path='EXPERT',type='TH1F',title="Pixel EC L2 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
155 montool.defineHistogram('hit_PIXEndcapL2EtaResidual',path='EXPERT',type='TH1F',title="Pixel EC L2 hit-track eta residual",xbins = 100, xmin=-1.0, xmax=1.0)
156 montool.defineHistogram('hit_PIXEndcapL3PhiResidual',path='EXPERT',type='TH1F',title="Pixel EC L3 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
157 montool.defineHistogram('hit_PIXEndcapL3EtaResidual',path='EXPERT',type='TH1F',title="Pixel EC L3 hit-track eta residual",xbins = 100, xmin=-1.0, xmax=1.0)
158 montool.defineHistogram('hit_PIXEndcapPhiPull', path='EXPERT',type='TH1F',title="Pixel EC hit-track phi pull",xbins = 100, xmin=-5., xmax=5.)
159 montool.defineHistogram('hit_PIXEndcapEtaPull', path='EXPERT',type='TH1F',title="Pixel EC hit-track eta pull",xbins = 100, xmin=-5., xmax=5.)
160 #
161 montool.defineHistogram('hit_SCTBarrelResidual', path='EXPERT',type='TH1F',title="SCT Barrel hit-track residual",xbins = 100, xmin=-0.5, xmax=0.5)
162 montool.defineHistogram('hit_SCTBarrelL1PhiResidual',path='EXPERT',type='TH1F',title="SCT Barrel L1 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
163 montool.defineHistogram('hit_SCTBarrelL2PhiResidual',path='EXPERT',type='TH1F',title="SCT Barrel L2 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
164 montool.defineHistogram('hit_SCTBarrelL3PhiResidual',path='EXPERT',type='TH1F',title="SCT Barrel L3 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
165 montool.defineHistogram('hit_SCTBarrelL4PhiResidual',path='EXPERT',type='TH1F',title="SCT Barrel L4 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
166 montool.defineHistogram('hit_SCTBarrelPull', path='EXPERT',type='TH1F',title="SCT Barrel hit-track pull",xbins = 100, xmin=-5., xmax=5.)
167 #
168 montool.defineHistogram('hit_SCTEndcapResidual', path='EXPERT',type='TH1F',title="SCT EC hit-track residual",xbins = 100, xmin=-1.0, xmax=1.0)
169 montool.defineHistogram('hit_SCTEndcapL1PhiResidual',path='EXPERT',type='TH1F',title="SCT Endcap L1 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
170 montool.defineHistogram('hit_SCTEndcapL2PhiResidual',path='EXPERT',type='TH1F',title="SCT Endcap L2 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
171 montool.defineHistogram('hit_SCTEndcapL3PhiResidual',path='EXPERT',type='TH1F',title="SCT Endcap L3 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
172 montool.defineHistogram('hit_SCTEndcapL4PhiResidual',path='EXPERT',type='TH1F',title="SCT Endcap L4 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
173 montool.defineHistogram('hit_SCTEndcapL5PhiResidual',path='EXPERT',type='TH1F',title="SCT Endcap L5 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
174 montool.defineHistogram('hit_SCTEndcapL6PhiResidual',path='EXPERT',type='TH1F',title="SCT Endcap L6 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
175 montool.defineHistogram('hit_SCTEndcapL7PhiResidual',path='EXPERT',type='TH1F',title="SCT Endcap L7 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
176 montool.defineHistogram('hit_SCTEndcapL8PhiResidual',path='EXPERT',type='TH1F',title="SCT Endcap L8 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
177 montool.defineHistogram('hit_SCTEndcapL9PhiResidual',path='EXPERT',type='TH1F',title="SCT Endcap L9 hit-track phi residual",xbins = 100, xmin=-0.5, xmax=0.5)
178 montool.defineHistogram('hit_SCTEndcapPull', path='EXPERT',type='TH1F',title="SCT EC hit-track pull",xbins = 100, xmin=-5., xmax=5.)
179
180 def addUTTHistograms(montool, name):
181 montool.defineHistogram('trk_dedx', path='EXPERT',type='TH1F',title="Track dEdx (pT > 3 GeV)", xbins = 140, xmin=-0.5, xmax=6.5)
182 montool.defineHistogram('trk_dedx_nusedhits', path='EXPERT',type='TH1F',title="Nr of used hits for dEdx",xbins = 11, xmin=-0.5, xmax=10.5)
183 #
184 montool.defineHistogram('disTrk_nVtx', path='EXPERT',type='TH1F',title="Nr of Vertex for disTrk",xbins = 11, xmin=-0.5, xmax=10.5)
185 montool.defineHistogram('disTrk_xVtx', path='EXPERT',type='TH1F',title="X position of primary vertex for disTrk", xbins = 120, xmin=-1.2, xmax=1.2)
186 montool.defineHistogram('disTrk_yVtx', path='EXPERT',type='TH1F',title="Y position of primary vertex for disTrk", xbins = 120, xmin=-1.2, xmax=1.2)
187 montool.defineHistogram('disTrk_zVtx', path='EXPERT',type='TH1F',title="Z position of primary vertex for disTrk", xbins = 150, xmin=-150, xmax=150)
188 #
189 montool.defineHistogram('disFailTrk_n', path='EXPERT',type='TH1F',title="Nr of disFailTrk", xbins = 50, xmin=0, xmax=3000)
190 montool.defineHistogram('disFailTrk_nclone', path='EXPERT',type='TH1F',title="Nr of disFailTrk (after clone removal)", xbins = 50, xmin=0, xmax=3000)
191 montool.defineHistogram('disFailTrk_ncand', path='EXPERT',type='TH1F',title="Nr of disFailTrk (after pre-selection)", xbins = 50, xmin=0, xmax=3000)
192 montool.defineHistogram('disCombTrk_n', path='EXPERT',type='TH1F',title="Nr of disCombTrk", xbins = 20, xmin=0, xmax=100)
193 montool.defineHistogram('disCombTrk_nclone', path='EXPERT',type='TH1F',title="Nr of disCombTrk (after clone removal)", xbins = 20, xmin=0, xmax=100)
194 montool.defineHistogram('disCombTrk_ncand', path='EXPERT',type='TH1F',title="Nr of disCombTrk (after pre-selection)", xbins = 20, xmin=0, xmax=100)
195 #
196 if name in ['FS', 'JetFS', 'FullScan', 'fullScan', 'fullScanUTT', 'jet']:
197 montool.defineHistogram('TIME_dEdxTrk', path='EXPERT',type='TH1F',title="Large dEdx search (ms)", xbins = 20, xmin=0.0, xmax=200.0)
198 montool.defineHistogram('TIME_disTrkZVertex', path='EXPERT',type='TH1F',title="UTT z-vertexing time (ms)", xbins = 10, xmin=0.0, xmax=100.0)
199 montool.defineHistogram('TIME_disappearingTrack', path='EXPERT',type='TH1F',title="Disappearing track reco time (ms)", xbins = 100, xmin=0.0, xmax=3000.0)
200 else:
201 montool.defineHistogram('TIME_dEdxTrk', path='EXPERT',type='TH1F',title="Large dEdx search (ms)", xbins = 20, xmin=0.0, xmax=20.0)
202 montool.defineHistogram('TIME_disTrkZVertex', path='EXPERT',type='TH1F',title="UTT z-vertexing time (ms)", xbins = 10, xmin=0.0, xmax=10.0)
203 montool.defineHistogram('TIME_disappearingTrack', path='EXPERT',type='TH1F',title="Disappearing track reco time (ms)", xbins = 100, xmin=0.0, xmax=300.0)
204
205 montool = GenericMonitoringTool(flags, HistPath = f"TrigFastTrackFinder_{name}")
206 addSPHistograms(montool, name)
207 addDataErrorHistograms(montool)
208 addTimingHistograms(montool, name)
209 addTrackHistograms(montool, name)
210 if doResMon:
211 addResidualHistograms(montool)
212 uttMode = flags.Tracking.ActiveConfig.doHitDV or flags.Tracking.ActiveConfig.doDisappearingTrk
213 if uttMode:
214 addUTTHistograms(montool, name)
215
216 return montool
217
218
219from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
220from AthenaConfiguration.ComponentFactory import CompFactory
221from AthenaConfiguration.AthConfigFlags import AthConfigFlags
222
223def TrigZFinderCfg(flags : AthConfigFlags, numberingTool) -> ComponentAccumulator:
224 acc = ComponentAccumulator()
225 zfargs = {}
226 if flags.Tracking.ActiveConfig.name == "beamSpot" :
227 zfargs = {
228 'TripletMode' : 1,
229 'TripletDZ' : 1,
230 'PhiBinSize' : 0.1,
231 'UseOnlyPixels' : True,
232 'MaxLayer' : 3,
233 'NumberOfPeaks' : 3
234 }
235 elif flags.Tracking.ActiveConfig.name == "jetSuper" :
236 zfargs = {
237 'TripletMode' : 1,
238 'TripletDZ' : 10,
239 'UseOnlyPixels' : True,
240 'MaxLayer' : 3, # Uses only barrel pixels
241 'NumberOfPeaks' : 1
242 }
243
244 acc.setPrivateTools(
245 CompFactory.TrigZFinder( name="TrigZFinder",
246 LayerNumberTool=numberingTool,
247 FullScanMode = True, #TODO: know this from the RoI anyway - should set for every event
248 **zfargs
249 )
250 )
251 return acc
252
253def TrigL2LayerNumberToolCfg(flags: AthConfigFlags, **kwargs) -> ComponentAccumulator:
254 acc = ComponentAccumulator()
255 kwargs.setdefault("UseNewLayerScheme", True)
256 acc.setPrivateTools(CompFactory.TrigL2LayerNumberTool(**kwargs))
257 return acc
258
259def ITkTrigL2LayerNumberToolCfg(flags: AthConfigFlags, **kwargs) -> ComponentAccumulator:
260 acc = ComponentAccumulator()
261 kwargs.setdefault("UseNewLayerScheme", True)
262 acc.setPrivateTools(CompFactory.TrigL2LayerNumberToolITk(**kwargs))
263 return acc
264
265def TrigSpacePointConversionToolCfg(flags: AthConfigFlags, **kwargs) -> ComponentAccumulator:
266 acc = ComponentAccumulator()
267
268 kwargs.setdefault("UseNewLayerScheme", True)
269
270 if "layerNumberTool" not in kwargs:
271 ntargs = {"UseNewLayerScheme" : kwargs.get("UseNewLayerScheme")}
272 kwargs.setdefault("layerNumberTool",acc.popToolsAndMerge(TrigL2LayerNumberToolCfg(flags,**ntargs)))
273
274 kwargs.setdefault("DoPhiFiltering", flags.Tracking.ActiveConfig.DoPhiFiltering)
275 kwargs.setdefault("UseBeamTilt", False)
276 kwargs.setdefault("PixelSP_ContainerName", "PixelTrigSpacePoints")
277 kwargs.setdefault("SCT_SP_ContainerName", "SCT_TrigSpacePoints")
278 kwargs.setdefault("UsePixelSpacePoints",flags.Tracking.ActiveConfig.UsePixelSpacePoints)
279
280 from RegionSelector.RegSelToolConfig import regSelTool_SCT_Cfg, regSelTool_Pixel_Cfg
281
282 if "RegSelTool_Pixel" not in kwargs:
283 kwargs.setdefault("RegSelTool_Pixel", acc.popToolsAndMerge( regSelTool_Pixel_Cfg( flags)))
284
285 if "RegSelTool_SCT" not in kwargs:
286 kwargs.setdefault("RegSelTool_SCT", acc.popToolsAndMerge( regSelTool_SCT_Cfg( flags)))
287
288 # Spacepoint conversion
289 acc.setPrivateTools(CompFactory.TrigSpacePointConversionTool(**kwargs))
290
291 return acc
292
293def ITkTrigSpacePointConversionToolCfg(flags: AthConfigFlags, **kwargs) -> ComponentAccumulator:
294 acc = ComponentAccumulator()
295
296 kwargs.setdefault("UseNewLayerScheme", True)
297
298 if "layerNumberTool" not in kwargs:
299 ntargs = {"UseNewLayerScheme" : kwargs.get("UseNewLayerScheme")}
300 kwargs.setdefault("layerNumberTool",acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags,**ntargs)))
301
302 kwargs.setdefault("DoPhiFiltering", flags.Tracking.ActiveConfig.DoPhiFiltering)
303 kwargs.setdefault("UseBeamTilt", False)
304 kwargs.setdefault("PixelSP_ContainerName", "ITkPixelTrigSpacePoints")
305 kwargs.setdefault("SCT_SP_ContainerName", "ITkStripTrigSpacePoints")
306 kwargs.setdefault("UsePixelSpacePoints", (not flags.Tracking.ActiveConfig.isLRT))
307 kwargs.setdefault("UseSctSpacePoints",flags.Tracking.ActiveConfig.isLRT)
308
309 from RegionSelector.RegSelToolConfig import (regSelTool_ITkStrip_Cfg, regSelTool_ITkPixel_Cfg)
310
311 if "RegSelTool_Pixel" not in kwargs:
312 kwargs.setdefault("RegSelTool_Pixel", acc.popToolsAndMerge( regSelTool_ITkPixel_Cfg( flags) ))
313
314 if "RegSelTool_SCT" not in kwargs:
315 kwargs.setdefault("RegSelTool_SCT", acc.popToolsAndMerge( regSelTool_ITkStrip_Cfg( flags) ))
316
317 # Spacepoint conversion
318 acc.setPrivateTools(CompFactory.TrigSpacePointConversionTool(**kwargs))
319
320 return acc
321
322def ITkTrigTrackSeedingToolCfg(flags: AthConfigFlags, **kwargs) -> ComponentAccumulator:
323
324 #acc = ComponentAccumulator()
325
326 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
327 acc = BeamSpotCondAlgCfg(flags)
328
329 if "layerNumberTool" not in kwargs:
330 ntargs = {"UseNewLayerScheme" : True}
331 kwargs.setdefault("layerNumberTool",acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags,**ntargs)))
332
333 kwargs.setdefault("DoPhiFiltering", flags.Tracking.ActiveConfig.DoPhiFiltering)
334 kwargs.setdefault("UseBeamTilt", False)
335 kwargs.setdefault("PixelSP_ContainerName", "ITkPixelTrigSpacePoints")
336 kwargs.setdefault("SCT_SP_ContainerName", "ITkStripTrigSpacePoints")
337 kwargs.setdefault("UsePixelSpacePoints", (not flags.Tracking.ActiveConfig.isLRT))
338 kwargs.setdefault("UseSctSpacePoints",flags.Tracking.ActiveConfig.isLRT)
339 kwargs.setdefault("pTmin", flags.Tracking.ActiveConfig.minPT[0])
340 kwargs.setdefault("MaxGraphEdges", 3000000)
341 kwargs.setdefault("ConnectionFileName", "binTables_ITK_RUN4_LRT.txt" if flags.Tracking.ActiveConfig.isLRT else "binTables_ITK_RUN4.txt")
342
343 from RegionSelector.RegSelToolConfig import (regSelTool_ITkStrip_Cfg, regSelTool_ITkPixel_Cfg)
344
345 kwargs.setdefault("RegSelTool_Pixel", acc.popToolsAndMerge( regSelTool_ITkPixel_Cfg( flags) ))
346
347 kwargs.setdefault("RegSelTool_SCT", acc.popToolsAndMerge( regSelTool_ITkStrip_Cfg( flags) ))
348
349 acc.setPrivateTools(CompFactory.TrigInDetTrackSeedingTool(**kwargs))
350
351 return acc
352
353def ITkTrigSiTrackMaker_FTF_Cfg(flags, signature, layerNumberingTool) -> ComponentAccumulator:
354 acc = ComponentAccumulator()
355
356 from InDetConfig.SiCombinatorialTrackFinderToolConfig import ITkSiCombinatorialTrackFinder_xkCfg
357 CombinatorialTrackFinderTool = acc.popToolsAndMerge(ITkSiCombinatorialTrackFinder_xkCfg(flags,
358 name="ITkTrigSiComTrackFinder_"+signature,
359 PixelClusterContainer='ITkTrigPixelClusters',
360 SCT_ClusterContainer='ITkTrigStripClusters')
361 )
362 from InDetConfig.SiTrackMakerConfig import ITkSiTrackMaker_xkCfg
363 trackMaker = acc.popToolsAndMerge(ITkSiTrackMaker_xkCfg(flags,
364 name = "ITkTrigSiTrackMaker_FTF_",
365 useBremModel = flags.Tracking.ActiveConfig.doBremRecoverySi,
366 CombinatorialTrackFinder = CombinatorialTrackFinderTool)
367 )
368
369 acc.addPublicTool( CompFactory.TrigInDetTrackFollowingTool( name = "TrigTrackFollowingTool_FTF_"+signature,
370 PixelClusterContainer='ITkTrigPixelClusters',
371 SCT_ClusterContainer='ITkTrigStripClusters',
372 LayerNumberTool = layerNumberingTool ) )
373 trackMaker.useTrigTrackFollowingTool = True
374 trackMaker.TrigTrackFollowingTool = acc.getPublicTool("TrigTrackFollowingTool_FTF_"+signature)
375
376 acc.addPublicTool( CompFactory.TrigInDetRoadPredictorTool( name = "TrigRoadPredictorTool_FTF"+signature, LayerNumberTool = layerNumberingTool ) )
377 trackMaker.useTrigInDetRoadPredictorTool = (not flags.Tracking.ActiveConfig.isLRT) # TrigInDetRoadPredictorTool does not work with Strip seeds
378 if trackMaker.useTrigInDetRoadPredictorTool:
379 trackMaker.TrigInDetRoadPredictorTool = acc.getPublicTool("TrigRoadPredictorTool_FTF"+signature)
380
381 acc.addPublicTool(trackMaker)
382 return acc
383
384
385def TrigFastTrackFinderCfg(flags: AthConfigFlags, name: str, RoIs: str, inputTracksName:str = None) -> ComponentAccumulator:
386 acc = ComponentAccumulator()
387
388 signature = flags.Tracking.ActiveConfig.input_name
389 isCosmicConfig = (signature=="cosmics")
390
391
392 # GPU offloading config begins - perhaps set from configure
393 if flags.Trigger.InDetTracking.doGPU:
394 from AthCUDAServices.AthCUDAServicesConfig import GPUSystemInfoSvcCfg
395 acc.merge(GPUSystemInfoSvcCfg(flags))
396 inDetAccelSvc = CompFactory.TrigInDetAccelerationSvc("TrigInDetAccelerationSvc")
397 inDetAccelSvc.useITkGeometry = flags.Detector.GeometryITk
398 if flags.Detector.GeometryITk:
399 inDetAccelSvc.MiddleSpacePointLayers = [81000, 82000,
400 90011, 90012, 90013, 90014, 91002, 91003, 91004, 91005,
401 92000, 92001, 92002, 92003, 92004, 92005, 92006, 92007, 92008, 92009, 92010,
402 92011, 92012, 92013, 92014, 92015, 92016, 92017, 92018, 92019, 92020, 92021, 92022,
403 70011, 70012, 70013, 70014, 71002, 71003, 71004, 71005,
404 72000, 72001, 72002, 72003, 72004, 72005, 72006, 72007, 72008, 72009, 72010,
405 72011, 72012, 72013, 72014, 72015, 72016, 72017, 72018, 72019, 72020, 72021, 72022
406 ]
407 acc.addService(inDetAccelSvc)
408
409 if flags.Detector.GeometryITk:
410 acc.addPublicTool(CompFactory.TrigITkAccelerationTool(name = "TrigITkAccelerationTool_FTF"))
411 else:
412 acc.addPublicTool(CompFactory.TrigInDetAccelerationTool(name = "TrigInDetAccelerationTool_FTF"))
413 # GPU offloading config ends
414
415 useNewLayerNumberScheme = True
416
417 seedingTool = None
418
419 spTool = None
420
421 if flags.Detector.GeometryITk:
422
423 numberingTool = acc.popToolsAndMerge(ITkTrigL2LayerNumberToolCfg(flags))
424
425 seedingTool = acc.popToolsAndMerge(ITkTrigTrackSeedingToolCfg(flags))
426
427 acc.merge(ITkTrigSiTrackMaker_FTF_Cfg(flags, signature, numberingTool))
428
429 TrackMaker_FTF = acc.getPublicTool("ITkTrigSiTrackMaker_FTF_"+signature)
430
431 acc.addPublicTool( CompFactory.TrigInDetTrackFitter( "TrigInDetTrackFitter_"+signature ) )
432
433 else:
434
435 spTool = acc.popToolsAndMerge(TrigSpacePointConversionToolCfg(flags,UseNewLayerScheme=useNewLayerNumberScheme))
436 numberingTool = acc.popToolsAndMerge(TrigL2LayerNumberToolCfg(flags,UseNewLayerScheme=useNewLayerNumberScheme))
437
438 from InDetConfig.SiTrackMakerConfig import TrigSiTrackMaker_xkCfg
439 TrackMaker_FTF = acc.popToolsAndMerge(
440 TrigSiTrackMaker_xkCfg(flags, name = 'InDetTrigSiTrackMaker_FTF_'+signature)
441 )
442 from TrkConfig.TrkRIO_OnTrackCreatorConfig import TrigRotCreatorCfg
443 TrigRotCreator = acc.popToolsAndMerge(TrigRotCreatorCfg(flags))
444 acc.addPublicTool(TrigRotCreator)
445
446 acc.addPublicTool(
447 CompFactory.TrigInDetTrackFitter(
448 name = "TrigInDetTrackFitter_"+signature,
449 doBremmCorrection = flags.Tracking.ActiveConfig.doBremRecoverySi,
450 correctClusterPos = True, #improved err(z0) estimates in Run 2
451 ROTcreator = TrigRotCreator,
452 )
453 )
454
455 acc.addPublicTool(TrackMaker_FTF)
456
457 theTrigInDetTrackFitter = acc.getPublicTool("TrigInDetTrackFitter_"+signature)
458
459 if (flags.Tracking.ActiveConfig.doZFinder):
460 theTrigZFinder = acc.popToolsAndMerge(TrigZFinderCfg(flags,numberingTool))
461
462 if not flags.Tracking.ActiveConfig.doZFinderOnly:
463
464 if flags.Detector.GeometryITk:
465 monTool = TrigFastTrackFinderMonitoringArg(flags, name = signature, doResMon=False)
466 from TrkConfig.TrkTrackSummaryToolConfig import ITkTrackSummaryToolCfg
467 trackSummaryTool = acc.popToolsAndMerge(ITkTrackSummaryToolCfg(flags))
468 else:
469 monTool = TrigFastTrackFinderMonitoring(flags)
470 from TrkConfig.TrkTrackSummaryToolConfig import InDetTrigTrackSummaryToolCfg, InDetTrigFastTrackSummaryToolCfg
471 if flags.Tracking.ActiveConfig.holeSearch_FTF :
472 trackSummaryTool = acc.popToolsAndMerge(InDetTrigTrackSummaryToolCfg(flags,name="InDetTrigTrackSummaryTool"))
473 else:
474 trackSummaryTool = acc.popToolsAndMerge(InDetTrigFastTrackSummaryToolCfg(flags,name="InDetTrigFastTrackSummaryTool"))
475
476 acc.addPublicTool(trackSummaryTool)
477
478 from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
479
480 ftf = CompFactory.TrigFastTrackFinder(
481 name = name,
482 useNewLayerNumberScheme = useNewLayerNumberScheme,
483 LayerNumberTool = numberingTool,
484 useGPU = flags.Trigger.InDetTracking.doGPU,
485 SpacePointProviderTool = spTool,
486 MinHits = 3 if flags.Detector.GeometryITk else 5, #Only process RoI with more than 5 (3) spacepoints for Run 3 (Run 4)
487 Triplet_MinPtFrac = 0.8 if flags.Detector.GeometryITk else 1,
488 Triplet_nMaxPhiSlice = 53 if "cosmics" not in flags.Tracking.ActiveConfig.name else 2,
489 LRT_Mode = flags.Tracking.ActiveConfig.isLRT,
490 dodEdxTrk = flags.Tracking.ActiveConfig.dodEdxTrk,
491 doDisappearingTrk = flags.Tracking.ActiveConfig.doDisappearingTrk,
492 Triplet_MaxBufferLength = 3,
493 doSeedRedundancyCheck = flags.Tracking.ActiveConfig.doSeedRedundancyCheck,
494 Triplet_D0Max = flags.Tracking.ActiveConfig.Triplet_D0Max,
495 Triplet_D0_PPS_Max = flags.Tracking.ActiveConfig.Triplet_D0_PPS_Max,
496 TrackInitialD0Max = flags.Tracking.ActiveConfig.TrackInitialD0Max,
497 TrackZ0Max = flags.Tracking.ActiveConfig.TrackZ0Max,
498 TripletDoPPS = flags.Tracking.ActiveConfig.TripletDoPPS,
499 TripletDoPSS = False,
500 pTmin = flags.Tracking.ActiveConfig.minPT[0] if flags.Detector.GeometryITk else flags.Tracking.ActiveConfig.minPT,
501 DoubletDR_Max = flags.Tracking.ActiveConfig.DoubletDR_Max,
502 SeedRadBinWidth = flags.Tracking.ActiveConfig.SeedRadBinWidth,
503 initialTrackMaker = TrackMaker_FTF,
504 trigInDetTrackFitter = theTrigInDetTrackFitter,
505 doZFinder = flags.Tracking.ActiveConfig.doZFinder,
506 TrackSummaryTool = trackSummaryTool,
507 doCloneRemoval = flags.Tracking.ActiveConfig.doCloneRemoval,
508 TracksName = flags.Tracking.ActiveConfig.trkTracks_FTF,
509 doResMon = flags.Tracking.ActiveConfig.doResMon,
510 MonTool = monTool,
511 Extrapolator = acc.popToolsAndMerge(AtlasExtrapolatorCfg(flags)),
512 RoIs = RoIs,
513 ITkMode = flags.Detector.GeometryITk,
514 UseTracklets = flags.Detector.GeometryITk,
515 doTrackRefit = not flags.Detector.GeometryITk,
516 TrackSeedingTool = seedingTool
517 )
518
519 ftf.LRT_D0Min = flags.Tracking.ActiveConfig.LRT_D0Min
520 ftf.LRT_HardMinPt = flags.Tracking.ActiveConfig.LRT_HardPtMin
521
522 ftf.UseTrigSeedML = flags.Tracking.ActiveConfig.UseTrigSeedML
523
524 if flags.Trigger.InDetTracking.doGPU:
525 from AthCUDAServices.AthCUDAServicesConfig import GPUSystemInfoSvcCfg
526 acc.merge(GPUSystemInfoSvcCfg(flags))
527 ftf.TrigAccelerationSvc = acc.getService("TrigInDetAccelerationSvc")
528 if flags.Detector.GeometryITk:
529 ftf.TrigAccelerationTool = acc.getPublicTool("TrigITkAccelerationTool_FTF")
530 else:
531 ftf.TrigAccelerationTool = acc.getPublicTool("TrigInDetAccelerationTool_FTF")
532
533 if isCosmicConfig:
534 ftf.Doublet_FilterRZ = False
535
536 from TrigEDMConfig.TriggerEDM import recordable
537 if flags.Tracking.ActiveConfig.dodEdxTrk:
538 ftf.dEdxTrk = recordable("HLT_dEdxTrk")
539 ftf.dEdxHit = recordable("HLT_dEdxHit")
540
541 if flags.Tracking.ActiveConfig.doDisappearingTrk:
542 ftf.DisTrkCand = recordable("HLT_DisTrkCand")
543 from TrkConfig.TrkGlobalChi2FitterConfig import InDetTrigGlobalChi2FitterCfg
544 InDetTrigTrackFitter = acc.popToolsAndMerge(InDetTrigGlobalChi2FitterCfg(flags))
545 acc.addPublicTool(InDetTrigTrackFitter)
546 ftf.DisTrackFitter = InDetTrigTrackFitter
547
548 if flags.Tracking.ActiveConfig.doZFinder:
549 ftf.doZFinderOnly = flags.Tracking.ActiveConfig.doZFinderOnly
550 ftf.trigZFinder = theTrigZFinder
551 ftf.zVertexResolution = 20 if flags.Tracking.ActiveConfig.name == "jetSuper" else 1
552 ftf.zVertexResolutionEndcap = 150 if flags.Tracking.ActiveConfig.name == "jetSuper" else ftf.zVertexResolution
553 ftf.doFastZVertexSeeding = True
554
555 if inputTracksName:
556 ftf.inputTracksName = inputTracksName
557
558 acc.addEventAlgo(ftf)
559 return acc
560
561
ComponentAccumulator ITkTrigSiTrackMaker_FTF_Cfg(flags, signature, layerNumberingTool)
TrigFastTrackFinderMonitoringArg(flags, name, doResMon)
ComponentAccumulator TrigL2LayerNumberToolCfg(AthConfigFlags flags, **kwargs)
ComponentAccumulator ITkTrigTrackSeedingToolCfg(AthConfigFlags flags, **kwargs)
ComponentAccumulator ITkTrigSpacePointConversionToolCfg(AthConfigFlags flags, **kwargs)
ComponentAccumulator TrigSpacePointConversionToolCfg(AthConfigFlags flags, **kwargs)
ComponentAccumulator ITkTrigL2LayerNumberToolCfg(AthConfigFlags flags, **kwargs)
ComponentAccumulator TrigZFinderCfg(AthConfigFlags flags, numberingTool)
ComponentAccumulator TrigFastTrackFinderCfg(AthConfigFlags flags, str name, str RoIs, str inputTracksName=None)