ATLAS Offline Software
Loading...
Searching...
No Matches
JetMomentToolsConfig Namespace Reference

Functions

 idTrackSelToolFromJetCtx (trkOpt, trkProperties)
 getEMScaleMomTool (jetdef, modspec="")
 getConstitFourMomTool (jetdef, modspec="")
 getJVFTool (jetdef, modspec)
 getJVTTool (jetdef, modspec)
 getNNJvtTool (jetdef, modspec)
 getTrackMomentsTool (jetdef, modspec)
 getTrackSumMomentsTool (jetdef, modspec)
 getOriginCorrVxTool (jetdef, modspec)
 getJetPtAssociationTool (jetdef, modspec)
 getQGTaggingTool (jetdef, modspec)
 getPFlowfJVTTool (jetdef, modspec)
 getPFlowbJVTTool (jetdef, modspec)
 getBoostedJetTaggerToolQG (jetdef, modspec)
 getBoostedJetTaggerToolTop (jetdef, modspec)
 getBoostedJetTaggerToolW (jetdef, modspec)
 getBoostedJetTaggerToolWMassDec (jetdef, modspec)

Variables

 jetmomentlog = Logging.logging.getLogger('JetMomentToolsConfig')

Detailed Description

 JetMomentToolsConfig: A helper module for configuring jet moment     
 tools, in support of JetRecConfig.JetModConfig. 
 Author: TJ Khoo                                                      


IMPORTANT : all the getXYZTool(jetdef, modspec) functions are meant to be used as callback from the main JetRecConfig module 
when we need to convert definitions of tools into the actual tools. At this point the functions are invoked as 
 func(jetdef, modspec)
Hence they have jetdef and modspec arguments even if not needed in every case.

Function Documentation

◆ getBoostedJetTaggerToolQG()

JetMomentToolsConfig.getBoostedJetTaggerToolQG ( jetdef,
modspec )

Definition at line 245 of file JetMomentToolsConfig.py.

245def getBoostedJetTaggerToolQG(jetdef, modspec):
246
247 jssutils = CompFactory.JSSTaggerUtils("JSSTaggerUtils/MyTagger")
248
249
250 bjtTool = CompFactory.BoostedJetTaggerTool("BoostedJetTaggerTool",
251 MLTagger = jssutils,
252 DecorationName = "QGTransformer",
253 CalibArea = "QGConstituentTagger/May2025",
254 ConfigFile = "QGTagger_AntiKt04PFlow_Transformer.dat"
255 )
256
257 return bjtTool
258

◆ getBoostedJetTaggerToolTop()

JetMomentToolsConfig.getBoostedJetTaggerToolTop ( jetdef,
modspec )

Definition at line 259 of file JetMomentToolsConfig.py.

259def getBoostedJetTaggerToolTop(jetdef, modspec):
260
261 jssutils = CompFactory.JSSTaggerUtils("JSSTaggerUtils/MyTagger")
262
263
264 bjtTool = CompFactory.BoostedJetTaggerTool("BoostedJetTaggerTool-Top",
265 MLTagger = jssutils,
266 JetContainer = jetdef.fullname(),
267 DecorationName = "TopTransformer",
268 CalibArea = "TopConstituentTagger/July2025",
269 ConfigFile = "TopTagger_AntiKt10UFOSoftDrop_Transformer.dat"
270 )
271
272 return bjtTool
273

◆ getBoostedJetTaggerToolW()

JetMomentToolsConfig.getBoostedJetTaggerToolW ( jetdef,
modspec )

Definition at line 274 of file JetMomentToolsConfig.py.

274def getBoostedJetTaggerToolW(jetdef, modspec):
275
276 jssutils = CompFactory.JSSTaggerUtils("JSSTaggerUtils/MyTagger")
277
278
279 bjtTool = CompFactory.BoostedJetTaggerTool("BoostedJetTaggerTool-W",
280 MLTagger = jssutils,
281 JetContainer = jetdef.fullname(),
282 DecorationName = "WTransformer",
283 CalibArea = "WConstituentTagger/July2025",
284 ConfigFile = "WTagger_AntiKt10UFOSoftDrop_Transformer.dat"
285 )
286
287
288 return bjtTool
289

◆ getBoostedJetTaggerToolWMassDec()

JetMomentToolsConfig.getBoostedJetTaggerToolWMassDec ( jetdef,
modspec )

Definition at line 290 of file JetMomentToolsConfig.py.

290def getBoostedJetTaggerToolWMassDec(jetdef, modspec):
291
292 jssutils = CompFactory.JSSTaggerUtils("JSSTaggerUtils/MyTagger")
293
294
295 bjtTool = CompFactory.BoostedJetTaggerTool("BoostedJetTaggerTool-WMassDec",
296 MLTagger = jssutils,
297 JetContainer = jetdef.fullname(),
298 DecorationName = "WTransformer_massdec",
299 CalibArea = "WConstituentTaggerMassDec/July2025",
300 ConfigFile = "WTagger_AntiKt10UFOSoftDrop_Transformer.dat"
301 )
302
303
304 return bjtTool

◆ getConstitFourMomTool()

JetMomentToolsConfig.getConstitFourMomTool ( jetdef,
modspec = "" )

Definition at line 54 of file JetMomentToolsConfig.py.

54def getConstitFourMomTool(jetdef, modspec=""):
55
59 CaloClusterStates = {
60 "UNKNOWN" : -1,
61 "UNCALIBRATED" : 0,
62 "CALIBRATED" : 1,
63 "ALTCALIBRATED" : 2,
64 "NSTATES" : 3
65 }
66
67 cfourmom = CompFactory.JetConstitFourMomTool("constitfourmom_{0}".format(jetdef.basename))
68 if "LCTopo" in jetdef.basename or "EMTopo" in jetdef.basename:
69 cfourmom.JetScaleNames = ["DetectorEtaPhi"]
70 if "HLT_" in jetdef.fullname():
71 cfourmom.AltConstitColls = [""]
72 cfourmom.AltConstitScales = [0]
73 cfourmom.AltJetScales = ["JetConstitScaleMomentum"]
74 else:
75 clstate = "CALIBRATED" if "LCTopo" in jetdef.basename else "UNCALIBRATED"
76 cfourmom.AltConstitColls = [jetdef.inputdef.inputname]
77 cfourmom.AltConstitScales = [CaloClusterStates[clstate]]
78 cfourmom.AltJetScales = [""]
79 # Drop the LC-calibrated four-mom for EMTopo jets as we only wanted it as a possibility
80 # in MET CST calculations but never used it
81 elif "PFlow" in jetdef.basename or "UFO" in jetdef.basename:
82 cfourmom.JetScaleNames = ["DetectorEtaPhi"]
83 cfourmom.AltConstitColls = [""]
84 cfourmom.AltConstitScales = [0]
85 cfourmom.AltJetScales = ["JetConstitScaleMomentum"]
86
87 return cfourmom
88
89# Jet vertex fraction with selection.

◆ getEMScaleMomTool()

JetMomentToolsConfig.getEMScaleMomTool ( jetdef,
modspec = "" )

Definition at line 32 of file JetMomentToolsConfig.py.

32def getEMScaleMomTool(jetdef, modspec=""):
33 # This may need updating e.g. for evolving trigger cluster container names
34 # We do the non-trivial summation over constituents unless the jets were
35 # built directly from EM-scale topoclusters, in which case we can just
36 # copy the constituent scale
37 useUncalibConstits = False
38 if jetdef.inputdef.basetype==xAODType.CaloCluster:
39 builtFromEMClusters = jetdef.inputdef.inputname in ["CaloCalTopoClusters","HLT_CaloTopoClustersFS"] and jetdef.inputdef.modifiers==["EM"]
40 useUncalibConstits = not builtFromEMClusters
41 elif (jetdef.inputdef.basetype==xAODType.ParticleFlow or jetdef.inputdef.basetype==xAODType.FlowElement):
42 useUncalibConstits = True
43 else:
44 raise ValueError("EM scale momentum not defined for input type {}".format(jetdef.inputdef.basetype))
45
46 emscalemom = CompFactory.JetEMScaleMomTool(
47 "emscalemom_{}".format(jetdef.basename),
48 UseUncalibConstits = useUncalibConstits,
49 JetContainer = jetdef.fullname(),
50 )
51
52 return emscalemom
53

◆ getJetPtAssociationTool()

JetMomentToolsConfig.getJetPtAssociationTool ( jetdef,
modspec )

Definition at line 169 of file JetMomentToolsConfig.py.

169def getJetPtAssociationTool(jetdef, modspec):
170
171 from JetRecConfig.JetDefinition import buildJetAlgName
172
173 truthJetAlg = buildJetAlgName(jetdef.algorithm, jetdef.radius)+'Truth'+str(modspec)+'Jets'
174
175 jetPtAssociation = CompFactory.JetPtAssociationTool('jetPtAssociation',
176 MatchingJetContainer = truthJetAlg,
177 AssociationName = "GhostTruth")
178
179 return jetPtAssociation
180
181

◆ getJVFTool()

JetMomentToolsConfig.getJVFTool ( jetdef,
modspec )

Definition at line 90 of file JetMomentToolsConfig.py.

90def getJVFTool(jetdef, modspec):
91 trkopt = modspec or jetdef.context # allow to overide jetdef.context if modspec is specified
92 trackingKeys = jetdef._cflags.Jet.Context[trkopt]
93 jvf = CompFactory.JetVertexFractionTool(
94 "jvf",
95 VertexContainer = trackingKeys["Vertices"],
96 AssociatedTracks = trackingKeys["GhostTracksLabel"],
97 TrackVertexAssociation = trackingKeys["TVA"],
98 TrackParticleContainer = trackingKeys["Tracks"],
99 TrackSelector = idTrackSelToolFromJetCtx(trkopt, trackingKeys),
100 SuppressInputDependence = True,
101 UseOriginVertex = jetdef.byVertex
102 )
103 return jvf
104
105
106# Jet vertex tagger with selection.

◆ getJVTTool()

JetMomentToolsConfig.getJVTTool ( jetdef,
modspec )

Definition at line 107 of file JetMomentToolsConfig.py.

107def getJVTTool(jetdef, modspec):
108 jvt = CompFactory.JetVertexTaggerTool(
109 "jvt",
110 VertexContainer = jetdef._cflags.Jet.Context[modspec or jetdef.context]["Vertices"],
111 SuppressInputDependence = True,
112 UseOriginVertex = jetdef.byVertex
113 )
114 return jvt
115
116# Jet vertex tagger with neural network.

◆ getNNJvtTool()

JetMomentToolsConfig.getNNJvtTool ( jetdef,
modspec )

Definition at line 117 of file JetMomentToolsConfig.py.

117def getNNJvtTool(jetdef, modspec):
118 nnjvt = CompFactory.getComp("JetPileupTag::JetVertexNNTagger")(
119 "nnjvt",
120 VertexContainer = jetdef._cflags.Jet.Context[modspec or jetdef.context]["Vertices"],
121 SuppressInputDependence = True
122 )
123 return nnjvt
124
125

◆ getOriginCorrVxTool()

JetMomentToolsConfig.getOriginCorrVxTool ( jetdef,
modspec )

Definition at line 159 of file JetMomentToolsConfig.py.

159def getOriginCorrVxTool(jetdef, modspec):
160 origin_setpv = CompFactory.JetOriginCorrectionTool(
161 "jetorigin_setpv",
162 VertexContainer = jetdef._cflags.Jet.Context[modspec or jetdef.context]["Vertices"],
163 OriginCorrectedName = "",
164 OnlyAssignPV = True,
165 )
166 return origin_setpv
167
168

◆ getPFlowbJVTTool()

JetMomentToolsConfig.getPFlowbJVTTool ( jetdef,
modspec )

Definition at line 224 of file JetMomentToolsConfig.py.

224def getPFlowbJVTTool(jetdef, modspec):
225
226 from JetCalibTools import JetCalibToolsConfig
227 jetCalibrationTool = JetCalibToolsConfig.getJetCalibToolFromString(jetdef, "AnalysisLatest:mc:JetArea_Residual_EtaJES")
228
229 wPFOTool = CompFactory.getComp('CP::WeightPFOTool')("bJVT__wPFO")
230
231 trackingKeys = jetdef._cflags.Jet.Context[modspec or jetdef.context]
232
233 bJVTTool = CompFactory.JetBalancePFlowJvtTool('bJVT',
234 verticesName = trackingKeys["Vertices"],
235 TrackVertexAssociation = trackingKeys["TVA"],
236 WeightPFOTool = wPFOTool,
237 JetCalibrationTool = jetCalibrationTool,
238 FEName = jetdef.inputdef.containername,
239 ORNameFE = "",
240 BjvtRawName = 'DFCommonJets_bJvt',
241 includePV = True)
242
243 return bJVTTool
244
getJetCalibToolFromString(jetdef, modspec)

◆ getPFlowfJVTTool()

JetMomentToolsConfig.getPFlowfJVTTool ( jetdef,
modspec )

Definition at line 195 of file JetMomentToolsConfig.py.

195def getPFlowfJVTTool(jetdef, modspec):
196
197 from JetCalibTools import JetCalibToolsConfig
198 calibString = "AnalysisLatest:mc:JetArea_Residual_EtaJES"
199 if( modspec and modspec == "CustomVtx" ) :
200 if jetdef._cflags.GeoModel.Run is LHCPeriod.Run3:
201 calibString = "AnalysisLatest:mc:JetArea_Residual_EtaJES:Kt4EMPFlowNeutEventShape:HggPrimaryVertices"
202 else:
203 calibString = "AnalysisLatest:mc:JetArea_Residual_EtaJES:Kt4EMPFlowCustomVtxEventShape:HggPrimaryVertices"
204 jetCalibrationTool = JetCalibToolsConfig.getJetCalibToolFromString(jetdef, calibString)
205
206 wPFOTool = CompFactory.getComp('CP::WeightPFOTool')("fJVT__wPFO")
207
208 trackingKeys = jetdef._cflags.Jet.Context[modspec or jetdef.context]
209
210 fJVTTool = CompFactory.JetForwardPFlowJvtTool("fJVT",
211 verticesName = trackingKeys["Vertices"],
212 TrackVertexAssociation = trackingKeys["TVA"],
213 WeightPFOTool = wPFOTool,
214 JetCalibrationTool = jetCalibrationTool,
215 FEName = jetdef.inputdef.containername,
216 ORName = "",
217 FjvtRawName = "DFCommonJets_fJvt",
218 includePV = False,
219 SuppressInputDependence = True)
220
221 return fJVTTool
222
223
if(febId1==febId2)

◆ getQGTaggingTool()

JetMomentToolsConfig.getQGTaggingTool ( jetdef,
modspec )

Definition at line 182 of file JetMomentToolsConfig.py.

182def getQGTaggingTool(jetdef, modspec):
183 trkopt = modspec or jetdef.context # allow to overide jetdef.context if modspec is specified
184 trackingKeys = jetdef._cflags.Jet.Context[trkopt]
185
186 qgtagging = CompFactory.JetQGTaggerVariableTool('qgtagging',
187 VertexContainer = trackingKeys["Vertices"],
188 TrackVertexAssociation = trackingKeys["TVA"],
189 TrackSelector = idTrackSelToolFromJetCtx(trkopt,trackingKeys),
190 )
191
192 return qgtagging
193
194

◆ getTrackMomentsTool()

JetMomentToolsConfig.getTrackMomentsTool ( jetdef,
modspec )

Definition at line 126 of file JetMomentToolsConfig.py.

126def getTrackMomentsTool(jetdef, modspec):
127 # retrieve the tracking keys to be used with modspec :
128 trkopt = modspec or jetdef.context # allow to overide jetdef.context if modspec is specified
129 trackingKeys = jetdef._cflags.Jet.Context[trkopt]
130
131 trackmoments = CompFactory.JetTrackMomentsTool(
132 "trkmoms",
133 VertexContainer = trackingKeys["Vertices"],
134 AssociatedTracks = trackingKeys["GhostTracksLabel"],
135 TrackVertexAssociation = trackingKeys["TVA"],
136 TrackMinPtCuts = [500, 1000],
137 TrackSelector = idTrackSelToolFromJetCtx(trkopt,trackingKeys),
138 DoPFlowMoments = 'PFlow' in jetdef.fullname() or 'UFO' in jetdef.fullname() ,
139 )
140 return trackmoments
141

◆ getTrackSumMomentsTool()

JetMomentToolsConfig.getTrackSumMomentsTool ( jetdef,
modspec )

Definition at line 142 of file JetMomentToolsConfig.py.

142def getTrackSumMomentsTool(jetdef, modspec):
143 trkopt = modspec or jetdef.context # allow to overide jetdef.context if modspec is specified
144 trackingKeys = jetdef._cflags.Jet.Context[trkopt]
145 jettrackselloose = idTrackSelToolFromJetCtx(trkopt,trackingKeys)
146 # retrieve the tracking keys to be used with modspec :
147 tracksummoments = CompFactory.JetTrackSumMomentsTool(
148 "trksummoms",
149 VertexContainer = trackingKeys["Vertices"],
150 AssociatedTracks = trackingKeys["GhostTracksLabel"],
151 TrackVertexAssociation = trackingKeys["TVA"],
152 RequireTrackPV = True,
153 TrackSelector = jettrackselloose
154 )
155 return tracksummoments
156
157# This tool sets a decoration saying which the nominal HS PV was.
158# Historically it did the origin correction, but now we do this to constituents

◆ idTrackSelToolFromJetCtx()

JetMomentToolsConfig.idTrackSelToolFromJetCtx ( trkOpt,
trkProperties )
returns a InDetTrackSelectionTool configured with the jet context corresponding to trkOpt

Definition at line 25 of file JetMomentToolsConfig.py.

25def idTrackSelToolFromJetCtx(trkOpt,trkProperties):
26 """returns a InDetTrackSelectionTool configured with the jet context corresponding to trkOpt
27 """
28 from JetRecTools.JetRecToolsConfig import getIDTrackSelectionTool #
29 return getIDTrackSelectionTool(f"trackSel{trkOpt}", **trkProperties["trackSelOptions"])
30
31

Variable Documentation

◆ jetmomentlog

JetMomentToolsConfig.jetmomentlog = Logging.logging.getLogger('JetMomentToolsConfig')

Definition at line 17 of file JetMomentToolsConfig.py.