ATLAS Offline Software
Loading...
Searching...
No Matches
python.GNNVertexConfig Namespace Reference

Functions

 addJetContextFlags (flags)
 CustomJetsCfg (flags)
 GNNVertexCfg (flags, **kwargs)

Variables

 logPHYS = logging.getLogger('PHYS')

Function Documentation

◆ addJetContextFlags()

addJetContextFlags ( flags)

Definition at line 9 of file GNNVertexConfig.py.

9def addJetContextFlags(flags):
10 jetContextName = 'CustomVtxGNN'
11 def customVtxContext(prevflags):
12 context = prevflags.Jet.Context.default.clone(
13 Vertices = "PrimaryVertices_initial",
14 GhostTracks = "PseudoJetGhostTrack",
15 GhostTracksLabel = "GhostTrack",
16 TVA = "JetTrackVtxAssoc"+jetContextName,
17 JetTracks = "JetSelectedTracks"+jetContextName,
18 JetTracksQualityCuts = "JetSelectedTracks"+jetContextName+"_trackSelOpt"
19 )
20 return context
21 flags.addFlag(f"Jet.Context.{jetContextName}", customVtxContext)
22
23

◆ CustomJetsCfg()

CustomJetsCfg ( flags)

Definition at line 24 of file GNNVertexConfig.py.

24def CustomJetsCfg(flags):
25
26 acc = ComponentAccumulator()
27
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
35
36
37 # Get custom jet context
38 jetContextName = 'CustomVtxGNN'
39 context = flags.Jet.Context[jetContextName]
40
41 def replaceItems(tup,orgName,newName):
42 newList = list(tup)
43 for i, item in enumerate(newList):
44 if orgName in item:
45 newList[i] = item.replace(orgName,newName)
46 print( "Updated ", orgName, " to ", newName )
47 return tuple(newList)
48 print( "Failed to update ", orgName, " to ", newName )
49 return tuple(newList)
50
51 def updateCalibSequence(tup):
52 newList = list(tup)
53
54 rhoname = "Kt4EMTopoCustomVtxGNNEventShape"
55
56 for i, item in enumerate(newList):
57 if "Calib" in item:
58 calibspecs = item.split(":")
59 calib, calibcontext, data_type = calibspecs[:3]
60 calibseq=""
61 if len(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)
67 return tuple(newList)
68 print( "Failed to update calib sequence" )
69 return tuple(newList)
70
71
72 # Create modifier list and JetDefinition
73 modsCustomVtxGNN = AntiKt4EMTopo.modifiers
74 modsCustomVtxGNN = updateCalibSequence(modsCustomVtxGNN)
75 ghostCustomVtxGNN = AntiKt4EMTopo.ghostdefs
76
77 # TODO: check this
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")
89
90 AntiKt4EMTopoCustomVtxGNN = JetDefinition(
91 "AntiKt",0.4,stdConstitDic.EMTopoOriginCustomVtxGNN,
92 context = jetContextName,
93 ghostdefs = ghostCustomVtxGNN,
94 modifiers = modsCustomVtxGNN,
95 lock = True,
96 )
97
98 def getUsedInVertexFitTrackDecoratorAlgCustomVtxGNN(jetdef, jetmod):
99 """ Create the alg to decorate the used-in-fit information for AMVF """
100 context = jetdef._contextDic
101
102 from InDetUsedInFitTrackDecoratorTool.UsedInVertexFitTrackDecoratorConfig import getUsedInVertexFitTrackDecoratorAlg
103 alg = getUsedInVertexFitTrackDecoratorAlg(context['Tracks'], context['Vertices'],
104 vertexDeco='TTVA_AMVFVertices_forGNN',
105 weightDeco='TTVA_AMVFWeights_forGNN')
106 return alg
107
108 # Define new input variables for jet configuration
109 stdInputExtDic[context['Vertices']] = JetInputExternal( context['Vertices'], xAODType.Vertex )
110
111 stdInputExtDic["JetSelectedTracksCustomVtxGNN"] = JetInputExternal("JetSelectedTracksCustomVtxGNN", xAODType.TrackParticle,
112 prereqs= [ f"input:{context['Tracks']}" ], # in std context, this is InDetTrackParticles (see StandardJetContext)
113 algoBuilder = lambda jdef,_ : jrtcfg.getTrackSelAlg(jdef, trackSelOpt=False,
114 DecorDeps=["TTVA_AMVFWeights_forGNN", "TTVA_AMVFVertices_forGNN"] )
115 )
116
117 stdInputExtDic["JetTrackUsedInFitDecoCustomVtxGNN"] = JetInputExternal(
118 "JetTrackUsedInFitDecoCustomVtxGNN", xAODType.TrackParticle,
119 prereqs= [ f"input:{context['Tracks']}" , # in std context, this is InDetTrackParticles (see StandardJetContext)
120 f"input:{context['Vertices']}"],
121 algoBuilder = getUsedInVertexFitTrackDecoratorAlgCustomVtxGNN )
122
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']}" ] )
132
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] )
137
138 from JetRecConfig.StandardJetMods import stdJetModifiers
139 from JetRecConfig.JetDefinition import JetModifier
140 from JetCalibTools import JetCalibToolsConfig
141
142 stdJetModifiers.update(
143
144 CalibCustomVtxGNN = JetModifier("JetCalibrationTool","jetcalib_jetcoll_calibseqCustomVtxGNN",
145 createfn=JetCalibToolsConfig.getJetCalibToolFromString,
146 prereqs=lambda mod,jetdef : JetCalibToolsConfig.getJetCalibToolPrereqs(mod,jetdef)+[f"input:{context['Vertices']}"]),
147 )
148
149 from JetRecConfig.JetRecConfig import JetRecCfg
150
151 acc.merge(JetRecCfg(flags,AntiKt4EMTopoCustomVtxGNN))
152
153 return acc
154
155
156# Main algorithm config
void print(char *figname, TCanvas *c1)
getJetCalibToolPrereqs(modspec, jetdef)

◆ GNNVertexCfg()

GNNVertexCfg ( flags,
** kwargs )

Definition at line 157 of file GNNVertexConfig.py.

157def GNNVertexCfg(flags, **kwargs):
158 acc = ComponentAccumulator()
159
160 from SGComps.AddressRemappingConfig import InputRenameCfg
161 acc.merge(InputRenameCfg("xAOD::VertexContainer", "PrimaryVertices", "PrimaryVertices_initial"))
162 acc.merge(InputRenameCfg("xAOD::VertexAuxContainer", "PrimaryVerticesAux.", "PrimaryVertices_initialAux."))
163
164 acc.merge(CustomJetsCfg(flags))
165
166
167 from InDetConfig.InDetGNNHardScatterSelectionConfig import GNNSequenceCfg
168 acc.merge(GNNSequenceCfg(flags))
169
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))
174
175 return acc
176

Variable Documentation

◆ logPHYS

python.GNNVertexConfig.logPHYS = logging.getLogger('PHYS')

Definition at line 7 of file GNNVertexConfig.py.