325def jetRoITrackJetTagSelCfg(flags, preselJetDef, isPresel=True):
326
327
328 jetDefStr = jetDefToString(preselJetDef)+'_roiftf'
329 trkopt = 'roiftf'
330 reco = InEventRecoCA(
331 f"jetRoITrackJetTagHypo_{jetDefStr}_RecoSequence",
332 inputMaker=getTrackingInputMaker(flags,trkopt)
333 )
334
335
336 from ..Bjet.BjetFlavourTaggingConfig import OnlineBeamspotAugmenterCfg
337 reco.mergeReco(OnlineBeamspotAugmenterCfg(flags))
338
339
340 from .JetRecoSequencesConfig import (
341 FastFtaggedJetCopyAlgCfg, JetRoITrackJetTagSequenceCfg, JetViewAlgCfg, formatFilteredJetsName, JET_DEFAULT_VIEW_PT_MIN_GEV
342 )
343 ftagjet_acc, ftaggedJetDef = FastFtaggedJetCopyAlgCfg(flags,preselJetDef)
344 ftaggedJetName = recordable(ftaggedJetDef.fullname())
345 reco.mergeReco(ftagjet_acc)
346
347 track_acc = JetRoITrackJetTagSequenceCfg(
348 flags,
349 ftaggedJetName,
350 trkopt,
351 RoIs=reco.inputMaker().InViewRoIs)
352
353 seqname = f"JetRoITrackJetTag_{trkopt}_RecoSequence"
354 reco.addSequence(parOR(seqname),primary=True)
355 verifier = CompFactory.AthViews.ViewDataVerifier("roiftf_ftag_ViewDataVerifier")
356 verifier.DataObjects = [
357 ('SG::AuxElement',f'EventInfo.{dec}')
358 for dec in ['onlineBeamPosSigmaXY','onlineBeamPosX','onlineBeamPosY','onlineBeamPosZ']
359 ]
360 reco.addEventAlgo(verifier,seqname)
361 reco.merge(track_acc,seqname)
362 reco.inputMaker().ViewNodeName = seqname
363
364
365
366 jetview_Acc = JetViewAlgCfg(flags,jetDef=ftaggedJetDef)
367 filtered_jetsIn = formatFilteredJetsName(ftaggedJetName,JET_DEFAULT_VIEW_PT_MIN_GEV)
368 reco.merge(jetview_Acc)
369
370
371 hypoType = JetHypoAlgType.ROIPRESEL if isPresel else JetHypoAlgType.STANDARD
372 selAcc = SelectionCA(selName(reco.name, hypoType=hypoType))
373 selAcc.mergeReco(reco)
374 selAcc.mergeHypo(jetSelectionCfg(flags, jetDefStr=jetDefStr, jetsIn=filtered_jetsIn, hypoType=hypoType))
375 return selAcc, hypoType
376