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