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 infix = "ML",
102 ghostdefs = standardghosts+flavourghosts,
103 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:1","JetGhostLabel","JetDeltaRInitialLabel:5000","JetGhostInitialLabel","JetQuarkChargeLabel","LArHVCorr","jetiso"),
104 lock = True
105)
106
107
108AntiKt4EMPFlow_noElectrons = JetDefinition("AntiKt",0.4,cst.GPFlow_noElectrons,
109 ghostdefs = standardghosts+flavourghosts,
110 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
111 lock = True
112)
113
114AntiKt4EMPFlow_noMuons = JetDefinition("AntiKt",0.4,cst.GPFlow_noMuons,
115 ghostdefs = standardghosts+flavourghosts,
116 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
117 lock = True
118)
119
120AntiKt4EMPFlow_noLeptons = JetDefinition("AntiKt",0.4,cst.GPFlow_noLeptons,
121 ghostdefs = standardghosts+flavourghosts,
122 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
123 lock = True
124)
125
126#Same as AntiKt4EMPFlow but with charged and neutrals linked to muons included.
127AntiKt4EMPFlow_inclMuons = JetDefinition("AntiKt",0.4,cst.GPFlow_inclMuons,
128 ghostdefs = standardghosts+flavourghosts,
129 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
130 lock = True
131)
132
133AntiKt4EMPFlow_tauSeedEleRM = JetDefinition("AntiKt",0.4,cst.GPFlow_tauSeedEleRM,
134 ghostdefs = standardghosts+flavourghosts,
135 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
136 lock = True
137)
138
139AntiKt4LCTopo = JetDefinition("AntiKt",0.4,cst.LCTopoOrigin,
140 ghostdefs = standardghosts+flavourghosts,
141 modifiers = calibmods+truthmods+standardmods+clustermods+("Filter_ifnotESD:15000","OriginSetPV","LArHVCorr",
142 "JetDeltaRInitialLabel:5000","JetGhostInitialLabel","JetQuarkChargeLabel"),
143 lock = True,
144)
145
146AntiKt4EMTopo = JetDefinition("AntiKt",0.4,cst.EMTopoOrigin,
147 ghostdefs = standardghosts+["TrackLRT"]+flavourghosts,
148 modifiers = calibmods+truthmods+standardmods+clustermods+("Filter_calibThreshold:15000","LArHVCorr","jetiso",),
149 lock = True,
150)
151
152# The following jet collection will be scheduled in derivation production (instead of AntiKt4EMTopo which is used e.g. at Tier-0)
153AntiKt4EMTopo_deriv = AntiKt4EMTopo.clone(
154 modifiers = AntiKt4EMTopo.modifiers+("JetPtAssociation",)
155)
156
157# *********************************************************
158# EMPFlow CSSK jets (no jet calibration available yet,
159# thus applying only low pT filter)
160# *********************************************************
161AntiKt4EMPFlowCSSK = JetDefinition("AntiKt",0.4,cst.GPFlowCSSK,
162 ghostdefs = standardghosts+flavourghosts,
163 modifiers = ("ConstitFourMom","CaloEnergies","Sort","Filter:1","JetPtAssociation","LArHVCorr","jetiso","numConstit")+truthmods+standardmods,
164 ptmin = 2000,
165 lock = True
166)
167
168# *********************************************************
169# UFO CSSK jets
170# *********************************************************
171AntiKt4UFOCSSK = JetDefinition("AntiKt",0.4,cst.UFOCSSK,
172 ghostdefs = standardghosts+flavourghosts,
173 modifiers = calibmods+("Filter_calibThreshold:10000","EMScaleMom","JetPtAssociation","CaloEnergiesClus","JetGhostLabel","jetiso")+truthmods+standardmods_ufo,
174 lock = True
175)
176
177# *********************************************************
178# Low and no pT cut containers used in JETMX derivations
179# *********************************************************
180AntiKt4UFOCSSKNoPtCut = JetDefinition("AntiKt",0.4,cst.UFOCSSK,
181 infix = "NoPtCut",
182 ghostdefs = standardghosts+flavourghosts,
183 modifiers = calibmods_noCut+("Filter:1","EMScaleMom","JetPtAssociation","CaloEnergiesClus","jetiso",)+truthmods+standardmods_ufo,
184 ptmin = 1,
185 lock = True
186)
187
188AntiKt4EMPFlowCSSKNoPtCut = JetDefinition("AntiKt",0.4,cst.GPFlowCSSK,
189 infix = "NoPtCut",
190 ghostdefs = standardghosts+flavourghosts,
191 modifiers = ("ConstitFourMom","CaloEnergies","Sort","Filter:1","JetPtAssociation","jetiso","numConstit")+truthmods+standardmods,
192 ptmin = 1,
193 lock = True
194)
195
196AntiKt4EMPFlowNoPtCut = JetDefinition("AntiKt",0.4,cst.GPFlow,
197 infix = "NoPtCut",
198 ghostdefs = standardghosts+flavourghosts,
199 modifiers = calibmods_lowCut+("Filter:1",)+truthmods+standardmods+("JetPtAssociation","CaloEnergiesClus","jetiso"),
200 ptmin = 1,
201 lock = True
202)
203
204AntiKt4EMPFlowByVertex = JetDefinition("AntiKt", 0.4, cst.GPFlowByVtx,
205 ghostdefs = standardghosts+flavourghosts,
206 modifiers = calibmods_lowCut+("Filter:1",)+truthmods+standardmods+substrmods+("JetPtAssociation","CaloEnergiesClus"),
207 ptmin = 7000,
208 lock = True,
209 byVertex = True
210)
211
212AntiKt4EMTopoNoPtCut = JetDefinition("AntiKt",0.4,cst.EMTopoOrigin,
213 infix = "NoPtCut",
214 ghostdefs = standardghosts+flavourghosts,
215 modifiers = calibmods_lowCut+("Filter:1",)+truthmods+standardmods+clustermods+("JetPtAssociation","jetiso",),
216 ptmin = 1,
217 lock = True
218)
219
220AntiKt4MLTopo = JetDefinition("AntiKt",0.4,cst.MLTopoOrigin,
221 infix = "",
222 ghostdefs = standardghosts+flavourghosts,
223 modifiers = ("CaloEnergies","Sort","numConstit","Filter:1",)+truthmods+standardmods+clustermods+("JetPtAssociation","jetiso",),
224 ptmin = 1,
225 lock = True
226)
227
228AntiKt4UFOCSSKLowPt = JetDefinition("AntiKt",0.4,cst.UFOCSSK,
229 infix = "LowPt",
230 ghostdefs = standardghosts+flavourghosts,
231 modifiers = calibmods_noCut+("Filter:7000","EMScaleMom","JetPtAssociation","CaloEnergiesClus","jetiso",)+truthmods+standardmods_ufo,
232 ptmin = 1,
233 lock = True
234)
235
236AntiKt4EMPFlowLowPt = JetDefinition("AntiKt",0.4,cst.GPFlow,
237 infix = "LowPt",
238 ghostdefs = standardghosts+flavourghosts,
239 modifiers = calibmods_lowCut+("Filter:2000",)+truthmods+standardmods+("JetPtAssociation","jetiso",),
240 ptmin = 2000,
241 lock = True
242)
243
244AntiKt4EMTopoLowPt = JetDefinition("AntiKt",0.4,cst.EMTopoOrigin,
245 infix = "LowPt",
246 ghostdefs = standardghosts+flavourghosts,
247 modifiers = calibmods_lowCut+("Filter:2000",)+truthmods+standardmods+clustermods+("JetPtAssociation","jetiso",),
248 ptmin = 2000,
249 lock = True
250)
251
252# *********************************************************
253# Standard small R truth jet definitions
254# *********************************************************
255
256AntiKt4Truth = JetDefinition("AntiKt",0.4, cst.Truth,
257 ghostdefs = flavourghosts,
258 modifiers = ("Sort", "Width", "jetisoTruth", "numConstit")+truthmods,
259 lock = True,
260)
261
262# These jets may be used as input for the JetTruthLabelling, so they also need to be defined as constituents:
263registerAsInputConstit(AntiKt4Truth)
264
265AntiKt2Truth = JetDefinition("AntiKt",0.2, cst.Truth,
266 ghostdefs = flavourghosts,
267 modifiers = ("Sort", "Width", "numConstit")+truthmods,
268 lock = True,
269)
270
271AntiKt4TruthWZ = JetDefinition("AntiKt",0.4, cst.TruthWZ,
272 ghostdefs = flavourghosts,
273 modifiers = ("Sort", "Width", "jetisoTruth", "numConstit")+truthmods,
274 lock = True,
275)
276
277AntiKt4TruthDressedWZ = JetDefinition("AntiKt",0.4, cst.TruthDressedWZ,
278 ghostdefs = flavourghosts,
279 modifiers = ("Sort", "Width", "jetisoTruth", "numConstit")+truthmods,
280 lock = True,
281)
282
283# These jets are used as input for the JetPileupLabel modifier, so they also need to be defined as constituents:
284registerAsInputConstit(AntiKt4TruthDressedWZ)
285
286AntiKtVRTruthCharged = JetDefinition("AntiKt",0.4, cst.TruthCharged,
287 ghostdefs = flavourghosts,
288 modifiers = ("Sort", "numConstit")+truthmods,
289 VRMinR = 0.02,
290 VRMassSc = 30000,
291 lock = True
292)
293
294AntiKt4TruthGEN = JetDefinition("AntiKt",0.4, cst.TruthGEN,
295 ptmin = 5000,
296 ghostdefs = [],
297 modifiers = ("Sort",)+truthmods,
298 ghostarea = 0.,
299 lock = True,
300)
301AntiKt4TruthGENWZ = AntiKt4TruthGEN.clone(inputdef=cst.TruthGENWZ)
302
303AntiKt6TruthGEN = AntiKt4TruthGEN.clone(radius=0.6)
304AntiKt6TruthGENWZ = AntiKt4TruthGENWZ.clone(radius=0.6)
305
306
307# *********************************************************
308# Support for merged HS/PU jet definitions from simulation
309# *********************************************************
310
311InTimeAntiKt4Truth = AntiKt4Truth.clone(prefix="InTime")
312
313OutOfTimeAntiKt4Truth = AntiKt4Truth.clone(prefix="OutOfTime")
314
315# These jets may be used as input for the JetTruthLabelling, so they also need to be defined as constituents:
316registerAsInputConstit(InTimeAntiKt4Truth)
317
318registerAsInputConstit(OutOfTimeAntiKt4Truth)
319
320
322 """Top-level function to schedule the smallR jets in standard reconstruction """
323 from JetRecConfig.JetRecConfig import JetRecCfg
324
325 standarSmallRList = [
326 AntiKt4EMPFlow,
327 AntiKt4LCTopo,
328 AntiKt4Truth,
329 ]
330
331 compacc = JetRecCfg( flags, standarSmallRList[0], )
332 for jetdef in standarSmallRList[1:]:
333 compacc.merge( JetRecCfg( flags, jetdef) )
334
335 return compacc
336