307def jetRoITrackJetTagSelCfg(flags, preselJetDef, isPresel=True):
308
309
310 jetDefStr = jetDefToString(preselJetDef)+'_roiftf'
311 trkopt = 'roiftf'
312 reco = InEventRecoCA(
313 f"jetRoITrackJetTagHypo_{jetDefStr}_RecoSequence",
314 inputMaker=getTrackingInputMaker(flags,trkopt)
315 )
316
317
318 from ..Bjet.BjetFlavourTaggingConfig import OnlineBeamspotAugmenterCfg
319 reco.mergeReco(OnlineBeamspotAugmenterCfg(flags))
320
321
322 from .JetRecoSequencesConfig import (
323 FastFtaggedJetCopyAlgCfg, JetRoITrackJetTagSequenceCfg, JetViewAlgCfg, formatFilteredJetsName, JET_DEFAULT_VIEW_PT_MIN_GEV
324 )
325 ftagjet_acc, ftaggedJetDef = FastFtaggedJetCopyAlgCfg(flags,preselJetDef)
326 ftaggedJetName = recordable(ftaggedJetDef.fullname())
327 reco.mergeReco(ftagjet_acc)
328
329 track_acc = JetRoITrackJetTagSequenceCfg(
330 flags,
331 ftaggedJetName,
332 trkopt,
333 RoIs=reco.inputMaker().InViewRoIs)
334
335 seqname = f"JetRoITrackJetTag_{trkopt}_RecoSequence"
336 reco.addSequence(parOR(seqname),primary=True)
337 verifier = CompFactory.AthViews.ViewDataVerifier("roiftf_ftag_ViewDataVerifier")
338 verifier.DataObjects = [
339 ('SG::AuxElement',f'EventInfo.{dec}')
340 for dec in ['onlineBeamPosSigmaXY','onlineBeamPosX','onlineBeamPosY','onlineBeamPosZ']
341 ]
342 reco.addEventAlgo(verifier,seqname)
343 reco.merge(track_acc,seqname)
344 reco.inputMaker().ViewNodeName = seqname
345
346
347
348 jetview_Acc = JetViewAlgCfg(flags,jetDef=ftaggedJetDef)
349 filtered_jetsIn = formatFilteredJetsName(ftaggedJetName,JET_DEFAULT_VIEW_PT_MIN_GEV)
350 reco.merge(jetview_Acc)
351
352
353 hypoType = JetHypoAlgType.ROIPRESEL if isPresel else JetHypoAlgType.STANDARD
354 selAcc = SelectionCA(selName(reco.name, hypoType=hypoType))
355 selAcc.mergeReco(reco)
356 selAcc.mergeHypo(jetSelectionCfg(flags, jetDefStr=jetDefStr, jetsIn=filtered_jetsIn, hypoType=hypoType))
357 return selAcc, hypoType
358