26 acc = ComponentAccumulator()
28 from JetRecConfig.StandardJetConstits
import stdInputExtDic, JetInputExternal, JetInputConstitSeq, JetConstitModifier, xAODType
29 from JetRecConfig.JetDefinition
import JetDefinition
30 from JetRecConfig.StandardSmallRJets
import AntiKt4EMTopo
31 from JetRecTools
import JetRecToolsConfig
as jrtcfg
32 from JetRecConfig.StandardJetConstits
import stdConstitDic, stdContitModifDic
33 from JetRecConfig.StandardJetContext
import inputsFromContext
34 from JetRecConfig.JetInputConfig
import buildEventShapeAlg
38 jetContextName =
'CustomVtxGNN'
39 context = flags.Jet.Context[jetContextName]
41 def replaceItems(tup,orgName,newName):
43 for i, item
in enumerate(newList):
45 newList[i] = item.replace(orgName,newName)
46 print(
"Updated ", orgName,
" to ", newName )
48 print(
"Failed to update ", orgName,
" to ", newName )
51 def updateCalibSequence(tup):
54 rhoname =
"Kt4EMTopoCustomVtxGNNEventShape"
56 for i, item
in enumerate(newList):
58 calibspecs = item.split(
":")
59 calib, calibcontext, data_type = calibspecs[:3]
62 calibseq = calibspecs[3]
63 finalCalibString = f
"CalibCustomVtxGNN:{calibcontext}:{data_type}:{calibseq}:{rhoname}:PrimaryVertices_initial"
64 if len(calibspecs)>6: finalCalibString = f
"{finalCalibString}:{calibspecs[6]}"
65 newList[i] = finalCalibString
66 print(finalCalibString)
68 print(
"Failed to update calib sequence" )
73 modsCustomVtxGNN = AntiKt4EMTopo.modifiers
74 modsCustomVtxGNN = updateCalibSequence(modsCustomVtxGNN)
75 ghostCustomVtxGNN = AntiKt4EMTopo.ghostdefs
78 stdConstitDic[
"EMTopoOriginCustomVtxGNN"] = JetInputConstitSeq(
79 "EMTopoOriginCustomVtxGNN", xAODType.CaloCluster,
80 [
"EMCustomVtxGNN",
"OriginCustomVtxGNN"],
81 "CaloCalTopoClusters",
"EMOriginCustomVtxGNNTopoClusters",
82 label=
"EMTopoCustomVtxGNN")
83 stdContitModifDic[
"OriginCustomVtxGNN"] = JetConstitModifier(
84 "OriginCustomVtxGNN",
"CaloClusterConstituentsOrigin",
85 prereqs=[inputsFromContext(
"Vertices")],
86 properties=dict(VertexContainer=
"PrimaryVertices_initial"))
87 stdContitModifDic[
"EMCustomVtxGNN"] = JetConstitModifier(
88 "EMCustomVtxGNN",
"ClusterAtEMScaleTool")
90 AntiKt4EMTopoCustomVtxGNN = JetDefinition(
91 "AntiKt",0.4,stdConstitDic.EMTopoOriginCustomVtxGNN,
92 context = jetContextName,
93 ghostdefs = ghostCustomVtxGNN,
94 modifiers = modsCustomVtxGNN,
98 def getUsedInVertexFitTrackDecoratorAlgCustomVtxGNN(jetdef, jetmod):
99 """ Create the alg to decorate the used-in-fit information for AMVF """
100 context = jetdef._contextDic
102 from InDetUsedInFitTrackDecoratorTool.UsedInVertexFitTrackDecoratorConfig
import getUsedInVertexFitTrackDecoratorAlg
103 alg = getUsedInVertexFitTrackDecoratorAlg(context[
'Tracks'], context[
'Vertices'],
104 vertexDeco=
'TTVA_AMVFVertices_forGNN',
105 weightDeco=
'TTVA_AMVFWeights_forGNN')
109 stdInputExtDic[context[
'Vertices']] = JetInputExternal( context[
'Vertices'], xAODType.Vertex )
111 stdInputExtDic[
"JetSelectedTracksCustomVtxGNN"] = JetInputExternal(
"JetSelectedTracksCustomVtxGNN", xAODType.TrackParticle,
112 prereqs= [ f
"input:{context['Tracks']}" ],
113 algoBuilder =
lambda jdef,_ : jrtcfg.getTrackSelAlg(jdef, trackSelOpt=
False,
114 DecorDeps=[
"TTVA_AMVFWeights_forGNN",
"TTVA_AMVFVertices_forGNN"] )
117 stdInputExtDic[
"JetTrackUsedInFitDecoCustomVtxGNN"] = JetInputExternal(
118 "JetTrackUsedInFitDecoCustomVtxGNN", xAODType.TrackParticle,
119 prereqs= [ f
"input:{context['Tracks']}" ,
120 f
"input:{context['Vertices']}"],
121 algoBuilder = getUsedInVertexFitTrackDecoratorAlgCustomVtxGNN )
123 stdInputExtDic[
"JetTrackVtxAssocCustomVtxGNN"] = JetInputExternal(
124 "JetTrackVtxAssocCustomVtxGNN", xAODType.TrackParticle,
125 algoBuilder =
lambda jdef,_ : jrtcfg.getJetTrackVtxAlg(
126 jdef._contextDic, algname=
"jetTVACustomVtxGNN",
127 WorkingPoint=
"Nonprompt_All_MaxWeight",
128 AMVFVerticesDeco=
'TTVA_AMVFVertices_forGNN',
129 AMVFWeightsDeco=
'TTVA_AMVFWeights_forGNN'),
130 prereqs = [
"input:JetTrackUsedInFitDecoCustomVtxGNN",
131 f
"input:{context['Vertices']}" ] )
133 stdInputExtDic[
"EventDensityCustomVtxGNN"] = JetInputExternal(
134 "EventDensity",
"EventShape", algoBuilder = buildEventShapeAlg,
135 containername =
lambda jetdef, _ :
"Kt4"+jetdef.inputdef.label+
"EventShape",
136 prereqs =
lambda jetdef : [
"input:"+jetdef.inputdef.name] )
138 from JetRecConfig.StandardJetMods
import stdJetModifiers
139 from JetRecConfig.JetDefinition
import JetModifier
140 from JetCalibTools
import JetCalibToolsConfig
142 stdJetModifiers.update(
144 CalibCustomVtxGNN = JetModifier(
"JetCalibrationTool",
"jetcalib_jetcoll_calibseqCustomVtxGNN",
145 createfn=JetCalibToolsConfig.getJetCalibToolFromString,
149 from JetRecConfig.JetRecConfig
import JetRecCfg
151 acc.merge(JetRecCfg(flags,AntiKt4EMTopoCustomVtxGNN))
158 acc = ComponentAccumulator()
160 from SGComps.AddressRemappingConfig
import InputRenameCfg
161 acc.merge(InputRenameCfg(
"xAOD::VertexContainer",
"PrimaryVertices",
"PrimaryVertices_initial"))
162 acc.merge(InputRenameCfg(
"xAOD::VertexAuxContainer",
"PrimaryVerticesAux.",
"PrimaryVertices_initialAux."))
167 from InDetConfig.InDetGNNHardScatterSelectionConfig
import GNNSequenceCfg
168 acc.merge(GNNSequenceCfg(flags))
170 from TrkConfig.TrkVertexToolsConfig
import GNNVertexCollectionSortingToolCfg
171 vxsort_gnn = GNNVertexCollectionSortingToolCfg(flags)
172 from InDetPriVxFinder.ResortVerticesConfig
import ResortVerticesCfg
173 acc.merge(ResortVerticesCfg(flags,
"PrimaryVertices_initial",
"PrimaryVertices", vxsort_gnn))