92def _ftfCoreSeq(flags, name, is_probe_leg=False):
93 '''1st FTF step sequence, for both the tauCore and tauLRT RoIs'''
94
95 if name not in ['Core', 'LRT']:
96 raise ValueError('Invalid name')
97
98
99
100 newRoITool = CompFactory.ViewCreatorFetchFromViewROITool(
101 RoisWriteHandleKey=recordable(flags.Tracking.ActiveConfig.roi),
102 InViewRoIs='UpdatedCaloRoI',
103 doResize=True,
104 RoIEtaWidth=flags.Tracking.ActiveConfig.etaHalfWidth,
105 RoIPhiWidth=flags.Tracking.ActiveConfig.phiHalfWidth,
106 RoIZedWidth=flags.Tracking.ActiveConfig.zedHalfWidth,
107 )
108
109
110
111
112 from TriggerJobOpts.TriggerConfigFlags import ROBPrefetching
113 if doExtraPrefetching := name == 'Core' and ROBPrefetching.TauCoreLargeRoI in flags.Trigger.ROBPrefetchingOptions:
114 prefetchRoIUpdater = CompFactory.RoiUpdaterTool(
115 useBeamSpot=True,
116 NSigma=1.5,
117 EtaWidth=flags.Trigger.InDetTracking.tauIso.etaHalfWidth,
118 PhiWidth=flags.Trigger.InDetTracking.tauIso.phiHalfWidth,
119 ZedWidth=flags.Trigger.InDetTracking.tauIso.zedHalfWidth,
120 )
121
122 prefetchRoITool = CompFactory.ViewCreatorExtraPrefetchROITool(
123 RoiCreator=newRoITool,
124 RoiUpdater=prefetchRoIUpdater,
125 ExtraPrefetchRoIsKey=f'{newRoITool.RoisWriteHandleKey}_forPrefetching',
126 PrefetchRoIsLinkName='prefetchRoI',
127 MergeWithOriginal=True,
128 )
129
130
131
132
133
134 recoAcc = InViewRecoCA(
135 f'tauFastTrack{name}',
136 RoITool=prefetchRoITool if doExtraPrefetching else newRoITool,
137 ViewFallThrough=True,
138 RequireParentView=True,
139 mergeUsingFeature=True,
140 isProbe=is_probe_leg
141 )
142 RoIs = recoAcc.inputMaker().InViewRoIs
143
144
145
146
147 recoAcc.addRecoAlgo(CompFactory.AthViews.ViewDataVerifier(
148 name=f'{recoAcc.name}RecoVDV',
149 DataObjects={
150 ('TrigRoiDescriptorCollection', f'StoreGateSvc+{RoIs}'),
151 }
152 ))
153
154
155
156
157
158 from TrigInDetConfig.TrigInDetConfig import trigInDetFastTrackingCfg
159 recoAcc.mergeReco(trigInDetFastTrackingCfg(flags, roisKey=RoIs, signatureName=f'tau{name}'))
160
161
162 TrackCollection = flags.Tracking.ActiveConfig.tracks_FTF
163
164 if name == 'Core':
165 from TrigTauRec.TrigTauRoIToolsConfig import tauTrackRoiUpdaterCfg
166 recoAcc.mergeReco(tauTrackRoiUpdaterCfg(flags, inputRoIs=RoIs, tracks=TrackCollection))
167 elif name == 'LRT':
168 from TrigTauRec.TrigTauRoIToolsConfig import tauLRTRoiUpdaterCfg
169 recoAcc.mergeReco(tauLRTRoiUpdaterCfg(flags, inputRoIs=RoIs, tracks=TrackCollection))
170
171
172
173 from TrigGenericAlgs.TrigGenericAlgsConfig import ROBPrefetchingAlgCfg_Si
174 robPrefetchAlg = ROBPrefetchingAlgCfg_Si(flags, nameSuffix=f'IM_{recoAcc.name}')
175 if doExtraPrefetching:
176 robPrefetchAlg.RoILinkName = prefetchRoITool.PrefetchRoIsLinkName
177
178
179
180
181 selAcc = SelectionCA(f'tauFTF{name}', isProbe=is_probe_leg)
182 selAcc.mergeReco(recoAcc, robPrefetchCA=robPrefetchAlg)
183
184
185
186
187 selAcc.addHypoAlgo(CompFactory.TrigTauTrackingHypoAlg(
188 f'TauFastTrackHypoAlg_PassBy{name}',
189 RoIKey='UpdatedTrackLRTRoI' if name == 'LRT' else '',
190 TracksKey=TrackCollection
191 ))
192
193
194
195
196 from TrigTauHypo.TrigTauHypoTool import TrigTauTrackingHypoToolFromDict
197 menuSeq = MenuSequence(flags, selAcc, HypoToolGen=TrigTauTrackingHypoToolFromDict)
198
199 return menuSeq
200
201
202@AccumulatorCache