ATLAS Offline Software
Loading...
Searching...
No Matches
StandardSmallRJets.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from JetRecConfig.StandardJetConstits import stdConstitDic as cst
4from JetRecConfig.JetRecConfig import registerAsInputConstit
5from .JetDefinition import JetDefinition
6
7
8# *********************************************************
9# Ghost-associated particles for the standard small R jets
10# *********************************************************
11standardghosts = ["Track","MuonSegment","Truth","Tower"]
12
13
14flavourghosts = [ "BHadronsInitial", "BHadronsFinal", "BQuarksFinal",
15 "CHadronsInitial", "CHadronsFinal", "CQuarksFinal",
16 "TausFinal",
17 "WBosons", "ZBosons", "HBosons", "TQuarksFinal",
18 "Partons",]
19
20
21
22
23
24# *********************************************************
25# Modifiers for the standard small R jets
26# *********************************************************
27# (use tuples rather than lists to prevent accidental modification)
28calibmods = (
29 "ConstitFourMom", "CaloEnergies",
30 "Calib:T0:mc",
31 "Sort","numConstit",
32 )
33
34calibmods_lowCut = (
35 "ConstitFourMom", "CaloEnergies",
36 "Calib:T0:mc:JetArea_Residual",
37 "Sort","numConstit",
38)
39
40calibmods_noCut = (
41 "ConstitFourMom","CaloEnergies","Sort","numConstit",
42)
43
44standardmods = (
45 "Width",
46 "CaloQuality", "TrackMoments","TrackSumMoments",
47 "JVF", "JVT", "Charge",
48)
49
50standardmods_ufo = (
51 "Width",
52 "CaloQualityFE", "TrackMoments","TrackSumMoments",
53 "JVF", "JVT", "Charge",
54)
55
56clustermods = ("ECPSFrac","ClusterMoments",)
57truthmods = ("PartonTruthLabel","JetDeltaRLabel:5000", "JetGhostLabel")
58pflowmods = ("JetIRCSafeLabel",)
59
60substrmods = ("nsubjettiness","ecorr")
61
62truthlabels = ("JetTaggingTruthLabel:R4TruthDressedWZLabel",) #R4TruthLabel
63
64# ********************************************************
65# Standard track jet definition
66# ********************************************************
67AntiKtVR30Rmax4Rmin02PV0Track = JetDefinition("AntiKt", 0.4, cst.PV0Track,
68 modifiers = ("Sort","JetDeltaRLabel:4500","JetGhostLabel","vr","numConstit"),
69 ptmin=4000,
70 VRMinR = 0.02,
71 VRMassSc = 30000,
72 lock = True)
73
74# These jets are used as ghost, so they also need to be defined as constituents :
75registerAsInputConstit(AntiKtVR30Rmax4Rmin02PV0Track)
76
77
78AntiKt4PV0Track = JetDefinition("AntiKt", 0.4, cst.PV0Track,
79 modifiers = ("Sort","numConstit")+truthmods,
80 ptmin=2000,
81 lock = True)
82
83
84# *********************************************************
85# Standard small R reco jet definitions
86# *********************************************************
87
88AntiKt4EMPFlow = JetDefinition("AntiKt",0.4,cst.GPFlow,
89 ghostdefs = standardghosts+flavourghosts,
90 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","JetDeltaRInitialLabel:5000","JetGhostInitialLabel","JetQuarkChargeLabel","LArHVCorr","jetiso"),
91 lock = True
92)
93
94# The following jet collection will be scheduled in derivation production (instead of AntiKt4EMPFlow which is used e.g. at Tier-0)
95AntiKt4EMPFlow_deriv = AntiKt4EMPFlow.clone(
96 ghostdefs = AntiKt4EMPFlow.ghostdefs+["UnAssocMuonSegment"],
97 modifiers = AntiKt4EMPFlow.modifiers+("JetPtAssociation","fJVT","NNJVT","CaloEnergiesClus","JetPileupLabel","qgtransformer")+truthlabels
98)
99
100AntiKt4EMPFlowML = JetDefinition("AntiKt",0.4,cst.GPFlowML,
101 ghostdefs = standardghosts+flavourghosts,
102 modifiers = calibmods_noCut+truthmods+standardmods+("Filter_calibThreshold:1","JetGhostLabel","JetDeltaRInitialLabel:5000","JetGhostInitialLabel","JetQuarkChargeLabel","LArHVCorr","jetiso"),
103 lock = True
104)
105
106
107AntiKt4EMPFlow_noElectrons = JetDefinition("AntiKt",0.4,cst.GPFlow_noElectrons,
108 ghostdefs = standardghosts+flavourghosts,
109 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
110 lock = True
111)
112
113AntiKt4EMPFlow_noMuons = JetDefinition("AntiKt",0.4,cst.GPFlow_noMuons,
114 ghostdefs = standardghosts+flavourghosts,
115 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
116 lock = True
117)
118
119AntiKt4EMPFlow_noLeptons = JetDefinition("AntiKt",0.4,cst.GPFlow_noLeptons,
120 ghostdefs = standardghosts+flavourghosts,
121 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
122 lock = True
123)
124
125#Same as AntiKt4EMPFlow but with charged and neutrals linked to muons included.
126AntiKt4EMPFlow_inclMuons = JetDefinition("AntiKt",0.4,cst.GPFlow_inclMuons,
127 ghostdefs = standardghosts+flavourghosts,
128 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
129 lock = True
130)
131
132AntiKt4EMPFlow_tauSeedEleRM = JetDefinition("AntiKt",0.4,cst.GPFlow_tauSeedEleRM,
133 ghostdefs = standardghosts+flavourghosts,
134 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
135 lock = True
136)
137
138AntiKt4LCTopo = JetDefinition("AntiKt",0.4,cst.LCTopoOrigin,
139 ghostdefs = standardghosts+flavourghosts,
140 modifiers = calibmods+truthmods+standardmods+clustermods+("Filter_ifnotESD:15000","OriginSetPV","LArHVCorr",
141 "JetDeltaRInitialLabel:5000","JetGhostInitialLabel","JetQuarkChargeLabel"),
142 lock = True,
143)
144
145AntiKt4EMTopo = JetDefinition("AntiKt",0.4,cst.EMTopoOrigin,
146 ghostdefs = standardghosts+["TrackLRT"]+flavourghosts,
147 modifiers = calibmods+truthmods+standardmods+clustermods+("Filter_calibThreshold:15000","LArHVCorr","jetiso",),
148 lock = True,
149)
150
151# The following jet collection will be scheduled in derivation production (instead of AntiKt4EMTopo which is used e.g. at Tier-0)
152AntiKt4EMTopo_deriv = AntiKt4EMTopo.clone(
153 modifiers = AntiKt4EMTopo.modifiers+("JetPtAssociation",)
154)
155
156# *********************************************************
157# EMPFlow CSSK jets (no jet calibration available yet,
158# thus applying only low pT filter)
159# *********************************************************
160AntiKt4EMPFlowCSSK = JetDefinition("AntiKt",0.4,cst.GPFlowCSSK,
161 ghostdefs = standardghosts+flavourghosts,
162 modifiers = ("ConstitFourMom","CaloEnergies","Sort","Filter:1","JetPtAssociation","LArHVCorr","jetiso","numConstit")+truthmods+standardmods,
163 ptmin = 2000,
164 lock = True
165)
166
167# *********************************************************
168# UFO CSSK jets
169# *********************************************************
170AntiKt4UFOCSSK = JetDefinition("AntiKt",0.4,cst.UFOCSSK,
171 ghostdefs = standardghosts+flavourghosts,
172 modifiers = calibmods+("Filter_calibThreshold:10000","EMScaleMom","JetPtAssociation","CaloEnergiesClus","JetGhostLabel","jetiso")+truthmods+standardmods_ufo,
173 lock = True
174)
175
176# *********************************************************
177# Low and no pT cut containers used in JETMX derivations
178# *********************************************************
179AntiKt4UFOCSSKNoPtCut = JetDefinition("AntiKt",0.4,cst.UFOCSSK,
180 infix = "NoPtCut",
181 ghostdefs = standardghosts+flavourghosts,
182 modifiers = calibmods_noCut+("Filter:1","EMScaleMom","JetPtAssociation","CaloEnergiesClus","jetiso",)+truthmods+standardmods_ufo,
183 ptmin = 1,
184 lock = True
185)
186
187AntiKt4EMPFlowCSSKNoPtCut = JetDefinition("AntiKt",0.4,cst.GPFlowCSSK,
188 infix = "NoPtCut",
189 ghostdefs = standardghosts+flavourghosts,
190 modifiers = ("ConstitFourMom","CaloEnergies","Sort","Filter:1","JetPtAssociation","jetiso","numConstit")+truthmods+standardmods,
191 ptmin = 1,
192 lock = True
193)
194
195AntiKt4EMPFlowNoPtCut = JetDefinition("AntiKt",0.4,cst.GPFlow,
196 infix = "NoPtCut",
197 ghostdefs = standardghosts+flavourghosts,
198 modifiers = calibmods_lowCut+("Filter:1",)+truthmods+standardmods+("JetPtAssociation","CaloEnergiesClus","jetiso"),
199 ptmin = 1,
200 lock = True
201)
202
203AntiKt4EMPFlowByVertex = JetDefinition("AntiKt", 0.4, cst.GPFlowByVtx,
204 ghostdefs = standardghosts+flavourghosts,
205 modifiers = calibmods_lowCut+("Filter:1",)+truthmods+standardmods+substrmods+("JetPtAssociation","CaloEnergiesClus"),
206 ptmin = 7000,
207 lock = True,
208 byVertex = True
209)
210
211AntiKt4EMTopoNoPtCut = JetDefinition("AntiKt",0.4,cst.EMTopoOrigin,
212 infix = "NoPtCut",
213 ghostdefs = standardghosts+flavourghosts,
214 modifiers = calibmods_lowCut+("Filter:1",)+truthmods+standardmods+clustermods+("JetPtAssociation","jetiso",),
215 ptmin = 1,
216 lock = True
217)
218
219AntiKt4MLTopo = JetDefinition("AntiKt",0.4,cst.MLTopoOrigin,
220 infix = "",
221 ghostdefs = standardghosts+flavourghosts,
222 modifiers = ("CaloEnergies","Sort","numConstit","Filter:1",)+truthmods+standardmods+clustermods+("JetPtAssociation","jetiso",),
223 ptmin = 1,
224 lock = True
225)
226
227AntiKt4UFOCSSKLowPt = JetDefinition("AntiKt",0.4,cst.UFOCSSK,
228 infix = "LowPt",
229 ghostdefs = standardghosts+flavourghosts,
230 modifiers = calibmods_noCut+("Filter:7000","EMScaleMom","JetPtAssociation","CaloEnergiesClus","jetiso",)+truthmods+standardmods_ufo,
231 ptmin = 1,
232 lock = True
233)
234
235AntiKt4EMPFlowLowPt = JetDefinition("AntiKt",0.4,cst.GPFlow,
236 infix = "LowPt",
237 ghostdefs = standardghosts+flavourghosts,
238 modifiers = calibmods_lowCut+("Filter:2000",)+truthmods+standardmods+("JetPtAssociation","jetiso",),
239 ptmin = 2000,
240 lock = True
241)
242
243AntiKt4EMTopoLowPt = JetDefinition("AntiKt",0.4,cst.EMTopoOrigin,
244 infix = "LowPt",
245 ghostdefs = standardghosts+flavourghosts,
246 modifiers = calibmods_lowCut+("Filter:2000",)+truthmods+standardmods+clustermods+("JetPtAssociation","jetiso",),
247 ptmin = 2000,
248 lock = True
249)
250
251# *********************************************************
252# Standard small R truth jet definitions
253# *********************************************************
254
255AntiKt4Truth = JetDefinition("AntiKt",0.4, cst.Truth,
256 ghostdefs = flavourghosts,
257 modifiers = ("Sort", "Width", "jetisoTruth", "numConstit")+truthmods,
258 lock = True,
259)
260
261# These jets may be used as input for the JetTruthLabelling, so they also need to be defined as constituents:
262registerAsInputConstit(AntiKt4Truth)
263
264AntiKt2Truth = JetDefinition("AntiKt",0.2, cst.Truth,
265 ghostdefs = flavourghosts,
266 modifiers = ("Sort", "Width", "numConstit")+truthmods,
267 lock = True,
268)
269
270AntiKt4TruthWZ = JetDefinition("AntiKt",0.4, cst.TruthWZ,
271 ghostdefs = flavourghosts,
272 modifiers = ("Sort", "Width", "jetisoTruth", "numConstit")+truthmods,
273 lock = True,
274)
275
276AntiKt4TruthDressedWZ = JetDefinition("AntiKt",0.4, cst.TruthDressedWZ,
277 ghostdefs = flavourghosts,
278 modifiers = ("Sort", "Width", "jetisoTruth", "numConstit")+truthmods,
279 lock = True,
280)
281
282# These jets are used as input for the JetPileupLabel modifier, so they also need to be defined as constituents:
283registerAsInputConstit(AntiKt4TruthDressedWZ)
284
285AntiKtVRTruthCharged = JetDefinition("AntiKt",0.4, cst.TruthCharged,
286 ghostdefs = flavourghosts,
287 modifiers = ("Sort", "numConstit")+truthmods,
288 VRMinR = 0.02,
289 VRMassSc = 30000,
290 lock = True
291)
292
293AntiKt4TruthGEN = JetDefinition("AntiKt",0.4, cst.TruthGEN,
294 ptmin = 5000,
295 ghostdefs = [],
296 modifiers = ("Sort",)+truthmods,
297 ghostarea = 0.,
298 lock = True,
299)
300AntiKt4TruthGENWZ = AntiKt4TruthGEN.clone(inputdef=cst.TruthGENWZ)
301
302AntiKt6TruthGEN = AntiKt4TruthGEN.clone(radius=0.6)
303AntiKt6TruthGENWZ = AntiKt4TruthGENWZ.clone(radius=0.6)
304
305
306# *********************************************************
307# Support for merged HS/PU jet definitions from simulation
308# *********************************************************
309
310InTimeAntiKt4Truth = AntiKt4Truth.clone(prefix="InTime")
311
312OutOfTimeAntiKt4Truth = AntiKt4Truth.clone(prefix="OutOfTime")
313
314# These jets may be used as input for the JetTruthLabelling, so they also need to be defined as constituents:
315registerAsInputConstit(InTimeAntiKt4Truth)
316
317registerAsInputConstit(OutOfTimeAntiKt4Truth)
318
319
321 """Top-level function to schedule the smallR jets in standard reconstruction """
322 from JetRecConfig.JetRecConfig import JetRecCfg
323
324 standarSmallRList = [
325 AntiKt4EMPFlow,
326 AntiKt4LCTopo,
327 AntiKt4Truth,
328 ]
329
330 compacc = JetRecCfg( flags, standarSmallRList[0], )
331 for jetdef in standarSmallRList[1:]:
332 compacc.merge( JetRecCfg( flags, jetdef) )
333
334 return compacc
335