ATLAS Offline Software
Loading...
Searching...
No Matches
StandardSmallRJets.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 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",
32 )
33
34calibmods_lowCut = (
35 "ConstitFourMom", "CaloEnergies",
36 "Calib:T0:mc:JetArea_Residual",
37 "Sort",
38)
39
40calibmods_noCut = (
41 "ConstitFourMom", "CaloEnergies", "Sort"
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 = ()
59
60substrmods = ("nsubjettiness","ecorr")
61
62# ********************************************************
63# Standard track jet definition
64# ********************************************************
65AntiKtVR30Rmax4Rmin02PV0Track = JetDefinition("AntiKt", 0.4, cst.PV0Track,
66 modifiers = ("Sort","JetDeltaRLabel:4500","JetGhostLabel","vr"),
67 ptmin=4000,
68 VRMinR = 0.02,
69 VRMassSc = 30000,
70 lock = True)
71
72# These jets are used as ghost, so they also need to be defined as constituents :
73registerAsInputConstit(AntiKtVR30Rmax4Rmin02PV0Track)
74
75
76AntiKt4PV0Track = JetDefinition("AntiKt", 0.4, cst.PV0Track,
77 modifiers = ("Sort",)+truthmods,
78 ptmin=2000,
79 lock = True)
80
81
82# *********************************************************
83# Standard small R reco jet definitions
84# *********************************************************
85
86AntiKt4EMPFlow = JetDefinition("AntiKt",0.4,cst.GPFlow,
87 ghostdefs = standardghosts+flavourghosts,
88 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","JetDeltaRInitialLabel:5000","JetGhostInitialLabel","JetQuarkChargeLabel","LArHVCorr","jetiso"),
89 lock = True
90)
91
92
93AntiKt4EMPFlowML = JetDefinition("AntiKt",0.4,cst.GPFlowML,
94 infix = "ML",
95 ghostdefs = standardghosts+flavourghosts,
96 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","JetDeltaRInitialLabel:5000","JetGhostInitialLabel","JetQuarkChargeLabel","LArHVCorr","jetiso"),
97 lock = True
98)
99
100
101AntiKt4EMPFlow_noElectrons = JetDefinition("AntiKt",0.4,cst.GPFlow_noElectrons,
102 ghostdefs = standardghosts+flavourghosts,
103 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
104 lock = True
105)
106
107AntiKt4EMPFlow_noMuons = JetDefinition("AntiKt",0.4,cst.GPFlow_noMuons,
108 ghostdefs = standardghosts+flavourghosts,
109 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
110 lock = True
111)
112
113AntiKt4EMPFlow_noLeptons = JetDefinition("AntiKt",0.4,cst.GPFlow_noLeptons,
114 ghostdefs = standardghosts+flavourghosts,
115 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
116 lock = True
117)
118
119AntiKt4EMPFlow_tauSeedEleRM = JetDefinition("AntiKt",0.4,cst.GPFlow_tauSeedEleRM,
120 ghostdefs = standardghosts+flavourghosts,
121 modifiers = calibmods+truthmods+standardmods+("Filter_calibThreshold:10000","JetGhostLabel","LArHVCorr","jetiso"),
122 lock = True
123)
124
125AntiKt4LCTopo = JetDefinition("AntiKt",0.4,cst.LCTopoOrigin,
126 ghostdefs = standardghosts+flavourghosts,
127 modifiers = calibmods+truthmods+standardmods+clustermods+("Filter_ifnotESD:15000","OriginSetPV","LArHVCorr",
128 "JetDeltaRInitialLabel:5000","JetGhostInitialLabel","JetQuarkChargeLabel"),
129 lock = True,
130)
131
132AntiKt4EMTopo = JetDefinition("AntiKt",0.4,cst.EMTopoOrigin,
133 ghostdefs = standardghosts+["TrackLRT"]+flavourghosts,
134 modifiers = calibmods+truthmods+standardmods+clustermods+("Filter_calibThreshold:15000","LArHVCorr","jetiso",),
135 lock = True,
136)
137
138
139# *********************************************************
140# EMPFlow CSSK jets (no jet calibration available yet,
141# thus applying only low pT filter)
142# *********************************************************
143AntiKt4EMPFlowCSSK = JetDefinition("AntiKt",0.4,cst.GPFlowCSSK,
144 ghostdefs = standardghosts+flavourghosts,
145 modifiers = ("ConstitFourMom","CaloEnergies","Sort","Filter:1","JetPtAssociation","LArHVCorr","jetiso")+truthmods+standardmods,
146 ptmin = 2000,
147 lock = True
148)
149
150# *********************************************************
151# UFO CSSK jets
152# *********************************************************
153AntiKt4UFOCSSK = JetDefinition("AntiKt",0.4,cst.UFOCSSK,
154 ghostdefs = standardghosts+flavourghosts,
155 modifiers = calibmods+("Filter_calibThreshold:10000","EMScaleMom","JetPtAssociation","CaloEnergiesClus","JetGhostLabel","jetiso")+truthmods+standardmods_ufo,
156 lock = True
157)
158
159# *********************************************************
160# Low and no pT cut containers used in JETMX derivations
161# *********************************************************
162AntiKt4UFOCSSKNoPtCut = JetDefinition("AntiKt",0.4,cst.UFOCSSK,
163 infix = "NoPtCut",
164 ghostdefs = standardghosts+flavourghosts,
165 modifiers = calibmods_noCut+("Filter:1","EMScaleMom","JetPtAssociation","CaloEnergiesClus","jetiso",)+truthmods+standardmods_ufo,
166 ptmin = 1,
167 lock = True
168)
169
170AntiKt4EMPFlowCSSKNoPtCut = JetDefinition("AntiKt",0.4,cst.GPFlowCSSK,
171 infix = "NoPtCut",
172 ghostdefs = standardghosts+flavourghosts,
173 modifiers = ("ConstitFourMom","CaloEnergies","Sort","Filter:1","JetPtAssociation","jetiso")+truthmods+standardmods,
174 ptmin = 1,
175 lock = True
176)
177
178AntiKt4EMPFlowNoPtCut = JetDefinition("AntiKt",0.4,cst.GPFlow,
179 infix = "NoPtCut",
180 ghostdefs = standardghosts+flavourghosts,
181 modifiers = calibmods_lowCut+("Filter:1",)+truthmods+standardmods+("JetPtAssociation","CaloEnergiesClus","jetiso"),
182 ptmin = 1,
183 lock = True
184)
185
186AntiKt4EMPFlowByVertex = JetDefinition("AntiKt", 0.4, cst.GPFlowByVtx,
187 ghostdefs = standardghosts+flavourghosts,
188 modifiers = calibmods_lowCut+("Filter:1",)+truthmods+standardmods+substrmods+("JetPtAssociation","CaloEnergiesClus"),
189 ptmin = 7000,
190 lock = True,
191 byVertex = True
192)
193
194AntiKt4EMTopoNoPtCut = JetDefinition("AntiKt",0.4,cst.EMTopoOrigin,
195 infix = "NoPtCut",
196 ghostdefs = standardghosts+flavourghosts,
197 modifiers = calibmods_lowCut+("Filter:1",)+truthmods+standardmods+clustermods+("JetPtAssociation","jetiso",),
198 ptmin = 1,
199 lock = True
200)
201
202AntiKt4MLTopo = JetDefinition("AntiKt",0.4,cst.MLTopoOrigin,
203 infix = "",
204 ghostdefs = standardghosts+flavourghosts,
205 modifiers = ("CaloEnergies", "Sort")+("Filter:1",)+truthmods+standardmods+clustermods+("JetPtAssociation","jetiso",),
206 ptmin = 1,
207 lock = True
208)
209
210AntiKt4UFOCSSKLowPt = JetDefinition("AntiKt",0.4,cst.UFOCSSK,
211 infix = "LowPt",
212 ghostdefs = standardghosts+flavourghosts,
213 modifiers = calibmods_noCut+("Filter:7000","EMScaleMom","JetPtAssociation","CaloEnergiesClus","jetiso",)+truthmods+standardmods_ufo,
214 ptmin = 1,
215 lock = True
216)
217
218AntiKt4EMPFlowLowPt = JetDefinition("AntiKt",0.4,cst.GPFlow,
219 infix = "LowPt",
220 ghostdefs = standardghosts+flavourghosts,
221 modifiers = calibmods_lowCut+("Filter:2000",)+truthmods+standardmods+("JetPtAssociation","jetiso",),
222 ptmin = 2000,
223 lock = True
224)
225
226AntiKt4EMTopoLowPt = JetDefinition("AntiKt",0.4,cst.EMTopoOrigin,
227 infix = "LowPt",
228 ghostdefs = standardghosts+flavourghosts,
229 modifiers = calibmods_lowCut+("Filter:2000",)+truthmods+standardmods+clustermods+("JetPtAssociation","jetiso",),
230 ptmin = 2000,
231 lock = True
232)
233
234# *********************************************************
235# Standard small R truth jet definitions
236# *********************************************************
237
238AntiKt4Truth = JetDefinition("AntiKt",0.4, cst.Truth,
239 ghostdefs = flavourghosts,
240 modifiers = ("Sort", "Width", "jetisoTruth")+truthmods,
241 lock = True,
242)
243
244AntiKt2Truth = JetDefinition("AntiKt",0.2, cst.Truth,
245 ghostdefs = flavourghosts,
246 modifiers = ("Sort", "Width")+truthmods,
247 lock = True,
248)
249
250AntiKt4TruthWZ = JetDefinition("AntiKt",0.4, cst.TruthWZ,
251 ghostdefs = flavourghosts,
252 modifiers = ("Sort", "Width", "jetisoTruth")+truthmods,
253 lock = True,
254)
255
256AntiKt4TruthDressedWZ = JetDefinition("AntiKt",0.4, cst.TruthDressedWZ,
257 ghostdefs = flavourghosts,
258 modifiers = ("Sort", "Width", "jetisoTruth")+truthmods,
259 lock = True,
260)
261
262# These jets are used as input for the JetPileupLabel modifier, so they also need to be defined as constituents:
263registerAsInputConstit(AntiKt4TruthDressedWZ)
264
265AntiKtVRTruthCharged = JetDefinition("AntiKt",0.4, cst.TruthCharged,
266 ghostdefs = flavourghosts,
267 modifiers = ("Sort",)+truthmods,
268 VRMinR = 0.02,
269 VRMassSc = 30000,
270 lock = True
271)
272
273AntiKt4TruthGEN = JetDefinition("AntiKt",0.4, cst.TruthGEN,
274 ptmin = 5000,
275 ghostdefs = [],
276 modifiers = ("Sort", )+truthmods,
277 ghostarea = 0.,
278 lock = True,
279)
280AntiKt4TruthGENWZ = AntiKt4TruthGEN.clone(inputdef=cst.TruthGENWZ)
281
282AntiKt6TruthGEN = AntiKt4TruthGEN.clone(radius=0.6)
283AntiKt6TruthGENWZ = AntiKt4TruthGENWZ.clone(radius=0.6)
284
285
287 """Top-level function to schedule the smallR jets in standard reconstruction """
288 from JetRecConfig.JetRecConfig import JetRecCfg
289
290 standarSmallRList = [
291 AntiKt4EMPFlow,
292 AntiKt4LCTopo,
293 AntiKt4Truth,
294 ]
295
296 compacc = JetRecCfg( flags, standarSmallRList[0], )
297 for jetdef in standarSmallRList[1:]:
298 compacc.merge( JetRecCfg( flags, jetdef) )
299
300 return compacc
301