ATLAS Offline Software
Loading...
Searching...
No Matches
python.JetCommonConfig Namespace Reference

Functions

 JetCommonCfg (ConfigFlags)
 StandardJetsInDerivCfg (ConfigFlags)
 AddBadBatmanCfg (ConfigFlags)
 AddDistanceInTrainCfg (ConfigFlags)
 AddSidebandEventShapeCfg (ConfigFlags)
 AddJvtDecorationAlgCfg (ConfigFlags, algName="JvtPassDecorAlg", jetContainer='AntiKt4EMPFlow', **kwargs)
 AddEventCleanFlagsCfg (ConfigFlags, workingPoints=['Loose', 'Tight', 'LooseLLP'])
 addJetsToSlimmingTool (slimhelper, contentlist, smartlist=[])
 addOriginCorrectedClustersToSlimmingTool (slimhelper, writeLC=False, writeEM=False)
 Helper to add origin corrected clusters to output.

Function Documentation

◆ AddBadBatmanCfg()

python.JetCommonConfig.AddBadBatmanCfg ( ConfigFlags)
Add bad batman decoration for events with large EMEC-IW noise

Definition at line 57 of file JetCommonConfig.py.

57def AddBadBatmanCfg(ConfigFlags):
58 """Add bad batman decoration for events with large EMEC-IW noise"""
59
60 acc = ComponentAccumulator()
61
62 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
63 from DerivationFrameworkJetEtMiss.JetToolConfig import BadBatmanToolCfg
64 badBatmanTool = acc.getPrimaryAndMerge(BadBatmanToolCfg(ConfigFlags))
65 acc.addEventAlgo(CommonAugmentation("BadBatmanAugmentation", AugmentationTools = [badBatmanTool]))
66
67 return acc
68

◆ AddDistanceInTrainCfg()

python.JetCommonConfig.AddDistanceInTrainCfg ( ConfigFlags)
Add distance in train information to EventInfo

Definition at line 69 of file JetCommonConfig.py.

69def AddDistanceInTrainCfg(ConfigFlags):
70 """Add distance in train information to EventInfo"""
71 from DerivationFrameworkJetEtMiss.JetToolConfig import DistanceInTrainToolCfg
72
73 acc = ComponentAccumulator()
74
75 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
76 distanceInTrainTool = acc.getPrimaryAndMerge(DistanceInTrainToolCfg(ConfigFlags))
77 acc.addEventAlgo(CommonAugmentation("DistanceInTrainAugmentation", AugmentationTools = [distanceInTrainTool]))
78
79 return acc
80

◆ AddEventCleanFlagsCfg()

python.JetCommonConfig.AddEventCleanFlagsCfg ( ConfigFlags,
workingPoints = ['Loose', 'Tight', 'LooseLLP'] )
Add event cleaning flags

Definition at line 118 of file JetCommonConfig.py.

118def AddEventCleanFlagsCfg(ConfigFlags, workingPoints = ['Loose', 'Tight', 'LooseLLP']):
119 """Add event cleaning flags"""
120
121 acc = ComponentAccumulator()
122 acc.merge(AddJvtDecorationAlgCfg(ConfigFlags, algName="JvtPassDecorAlg_EMTopo", jetContainer='AntiKt4EMTopo'))
123 acc.merge(AddJvtDecorationAlgCfg(ConfigFlags, algName="JvtPassDecorAlg", jetContainer='AntiKt4EMPFlow'))
124
125 from DerivationFrameworkTau.TauCommonConfig import AddTauAugmentationCfg
126 acc.merge(AddTauAugmentationCfg(ConfigFlags, prefix="JetCommon", doRNNLoose=True))
127 acc.addSequence(CompFactory.AthSequencer('EventCleanSeq', Sequential=True))
128
129 # Overlap for EMTopo
130 from AssociationUtils.AssociationUtilsConfig import OverlapRemovalToolCfg
131 inputLabel_legacy = 'selected_eventClean_EMTopo'
132 outputLabel_legacy = 'DFCommonJets_passOR_EMTopo'
133 bJetLabel = '' #default
134 tauLabel = 'DFTauRNNLoose'
135 orTool_legacy = acc.popToolsAndMerge(OverlapRemovalToolCfg(ConfigFlags,inputLabel=inputLabel_legacy,outputLabel=outputLabel_legacy,bJetLabel=bJetLabel))
136 algOR_legacy = CompFactory.OverlapRemovalGenUseAlg('OverlapRemovalGenUseAlg_EMTopo',
137 JetKey="AntiKt4EMTopoJets",
138 SelectionLabel=inputLabel_legacy,
139 OverlapLabel=outputLabel_legacy,
140 OverlapRemovalTool=orTool_legacy,
141 TauLabel=tauLabel,
142 BJetLabel=bJetLabel
143 )
144 acc.addEventAlgo(algOR_legacy, 'EventCleanSeq')
145
146 # Overlap for EMPFlow
147 inputLabel = 'selected_eventClean_EMPFlow'
148 outputLabel = 'DFCommonJets_passOR_EMPFlow'
149 orTool = acc.popToolsAndMerge(OverlapRemovalToolCfg(ConfigFlags,inputLabel=inputLabel,outputLabel=outputLabel,bJetLabel=bJetLabel))
150 algOR = CompFactory.OverlapRemovalGenUseAlg('OverlapRemovalGenUseAlg',
151 SelectionLabel=inputLabel,
152 OverlapLabel=outputLabel,
153 OverlapRemovalTool=orTool,
154 TauLabel=tauLabel,
155 BJetLabel=bJetLabel)
156 acc.addEventAlgo(algOR, 'EventCleanSeq')
157
158 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
159 from DerivationFrameworkMuons.MuonsToolsConfig import MuonJetDrToolCfg
160 muonJetDrTool = acc.getPrimaryAndMerge(MuonJetDrToolCfg(ConfigFlags, "MuonJetDrTool"))
161 acc.addEventAlgo(CommonAugmentation("DFCommonMuonsKernel2", AugmentationTools = [muonJetDrTool]), 'EventCleanSeq')
162
163 from JetSelectorTools.JetSelectorToolsConfig import EventCleaningToolCfg,JetCleaningToolCfg
164
165 supportedWPs = ['Loose', 'Tight', 'LooseLLP', 'VeryLooseLLP', 'SuperLooseLLP']
166 prefix = "DFCommonJets_"
167 evt_lvl_suppWPs_PFlow = ['LooseBad', 'TightBad']
168
169 for wp in workingPoints:
170 if wp not in supportedWPs:
171 continue
172
173 cleaningLevel = wp + 'Bad'
174 # LLP WPs have a slightly different name format
175 if 'LLP' in wp:
176 cleaningLevel = wp.replace('LLP', 'BadLLP')
177
178 # Add support for TightBad event flag as well
179 doEvent_PFlow=False
180 for evt_swp in evt_lvl_suppWPs_PFlow:
181 if evt_swp == cleaningLevel:
182 doEvent_PFlow=True
183 break
184
185 doEvent_EMTopo=False
186 if 'Loose' in cleaningLevel:
187 doEvent_EMTopo=True
188
189
190 if doEvent_EMTopo:
191 jetCleaningTool_legacy = acc.popToolsAndMerge(JetCleaningToolCfg(
192 ConfigFlags, 'JetCleaningTool_'+cleaningLevel+'_EMTopo',
193 'AntiKt4EMTopoJets', cleaningLevel, False))
194 acc.addPublicTool(jetCleaningTool_legacy)
195 ecTool_legacy = acc.popToolsAndMerge(EventCleaningToolCfg(
196 ConfigFlags,'EventCleaningTool_'+wp+'_EMTopo', cleaningLevel))
197 ecTool_legacy.JetCleanPrefix = prefix
198 ecTool_legacy.OrDecorator = "passOR_EMTopo"
199 ecTool_legacy.JetContainer = "AntiKt4EMTopoJets"
200 ecTool_legacy.JetCleaningTool = jetCleaningTool_legacy
201 acc.addPublicTool(ecTool_legacy)
202
203 eventCleanAlg_legacy = CompFactory.EventCleaningTestAlg('EventCleaningTestAlg_'+wp+'_EMTopo',
204 EventCleaningTool=ecTool_legacy,
205 JetCollectionName="AntiKt4EMTopoJets",
206 EventCleanPrefix=prefix,
207 CleaningLevel=cleaningLevel,
208 doEvent=True) # Only store event-level flags for Loose and LooseLLP
209 acc.addEventAlgo(eventCleanAlg_legacy, 'EventCleanSeq')
210
211
212 if doEvent_PFlow:
213 jetCleaningTool = acc.popToolsAndMerge(JetCleaningToolCfg(
214 ConfigFlags, 'JetCleaningTool_'+cleaningLevel,
215 'AntiKt4EMPFlowJets', cleaningLevel, False))
216 acc.addPublicTool(jetCleaningTool)
217
218 ecTool = acc.popToolsAndMerge(EventCleaningToolCfg(ConfigFlags,'EventCleaningTool_' + wp, cleaningLevel))
219 ecTool.JetCleanPrefix = prefix
220 ecTool.OrDecorator = "passOR_EMPFlow"
221 ecTool.JetContainer = "AntiKt4EMPFlowJets"
222 ecTool.JetCleaningTool = jetCleaningTool
223 acc.addPublicTool(ecTool)
224
225 eventCleanAlg = CompFactory.EventCleaningTestAlg('EventCleaningTestAlg_'+wp,
226 EventCleaningTool=ecTool,
227 JetCollectionName="AntiKt4EMPFlowJets",
228 EventCleanPrefix=prefix,
229 CleaningLevel=cleaningLevel,
230 doEvent=True) # for PFlow we use Loose and Tight
231 acc.addEventAlgo(eventCleanAlg, 'EventCleanSeq')
232
233 return acc
234
235

◆ addJetsToSlimmingTool()

python.JetCommonConfig.addJetsToSlimmingTool ( slimhelper,
contentlist,
smartlist = [] )

Definition at line 236 of file JetCommonConfig.py.

236def addJetsToSlimmingTool(slimhelper,contentlist,smartlist=[]):
237 for item in contentlist:
238 if item not in slimhelper.AppendToDictionary:
239 slimhelper.AppendToDictionary.update({item:'xAOD::JetContainer',
240 item+"Aux":'xAOD::JetAuxContainer'})
241 if item in smartlist:
242 slimhelper.SmartCollections.append(item)
243 else:
244 slimhelper.AllVariables.append(item)
245
246

◆ AddJvtDecorationAlgCfg()

python.JetCommonConfig.AddJvtDecorationAlgCfg ( ConfigFlags,
algName = "JvtPassDecorAlg",
jetContainer = 'AntiKt4EMPFlow',
** kwargs )

Definition at line 106 of file JetCommonConfig.py.

106def AddJvtDecorationAlgCfg(ConfigFlags, algName = "JvtPassDecorAlg", jetContainer='AntiKt4EMPFlow', **kwargs):
107 acc = ComponentAccumulator()
108 # Decorate if jet passed JVT criteria
109 from JetJvtEfficiency.JetJvtEfficiencyToolConfig import getJvtSelToolCfg
110
111 passJvtTool = acc.popToolsAndMerge(getJvtSelToolCfg(ConfigFlags, "{}Jets".format(jetContainer)))
112 passJvtTool.PassFlagName = "DFCommonJets_passJvt"
113 kwargs.setdefault("Decorators", [passJvtTool])
114 kwargs.setdefault("JetContainer", "{}Jets".format(jetContainer))
115 acc.addEventAlgo(CompFactory.JetDecorationAlg(algName, **kwargs), primary = True)
116 return acc
117

◆ addOriginCorrectedClustersToSlimmingTool()

python.JetCommonConfig.addOriginCorrectedClustersToSlimmingTool ( slimhelper,
writeLC = False,
writeEM = False )

Helper to add origin corrected clusters to output.

Definition at line 250 of file JetCommonConfig.py.

250def addOriginCorrectedClustersToSlimmingTool(slimhelper,writeLC=False,writeEM=False):
251
252 slimhelper.ExtraVariables.append('CaloCalTopoClusters.calE.calEta.calPhi.calM')
253
254 if writeLC:
255 if "LCOriginTopoClusters" not in slimhelper.AppendToDictionary:
256 slimhelper.AppendToDictionary.update({"LCOriginTopoClusters":'xAOD::CaloClusterContainer',
257 "LCOriginTopoClustersAux":'xAOD::ShallowAuxContainer'})
258 slimhelper.ExtraVariables.append('LCOriginTopoClusters.calEta.calPhi.originalObjectLink')
259
260 if writeEM:
261 if "EMOriginTopoClusters" not in slimhelper.AppendToDictionary:
262 slimhelper.AppendToDictionary.update({"EMOriginTopoClusters":'xAOD::CaloClusterContainer',
263 "EMOriginTopoClustersAux":'xAOD::ShallowAuxContainer'})
264 slimhelper.ExtraVariables.append('EMOriginTopoClusters.calE.calEta.calPhi.originalObjectLink')

◆ AddSidebandEventShapeCfg()

python.JetCommonConfig.AddSidebandEventShapeCfg ( ConfigFlags)
Special rho definitions for PFlow jets

Definition at line 81 of file JetCommonConfig.py.

81def AddSidebandEventShapeCfg(ConfigFlags):
82 """Special rho definitions for PFlow jets"""
83 from JetRecConfig.JetRecConfig import getInputAlgs,getConstitPJGAlg,reOrderAlgs
84 from JetRecConfig.StandardJetConstits import stdConstitDic as cst
85 from JetRecConfig.JetInputConfig import buildEventShapeAlg
86
87 acc = ComponentAccumulator()
88
89 constit_algs = getInputAlgs(cst.GPFlow, flags=ConfigFlags)
90 constit_algs, ca = reOrderAlgs( [a for a in constit_algs if a is not None])
91
92 acc.merge(ca)
93 for a in constit_algs:
94 acc.addEventAlgo(a)
95
96 #Sideband definition
97 acc.addEventAlgo(getConstitPJGAlg(cst.GPFlow, suffix='PUSB'))
98 acc.addEventAlgo(buildEventShapeAlg(cst.GPFlow, '', suffix = 'PUSB' ))
99
100 #New "sideband" definition when using CHS based on TTVA
101 acc.addEventAlgo(getConstitPJGAlg(cst.GPFlow, suffix='Neut'))
102 acc.addEventAlgo(buildEventShapeAlg(cst.GPFlow, '', suffix = 'Neut' ))
103
104 return acc
105

◆ JetCommonCfg()

python.JetCommonConfig.JetCommonCfg ( ConfigFlags)
Main config for jet reconstruction and decorations

Definition at line 11 of file JetCommonConfig.py.

11def JetCommonCfg(ConfigFlags):
12 """Main config for jet reconstruction and decorations"""
13
14 acc = ComponentAccumulator()
15
16 acc.merge(StandardJetsInDerivCfg(ConfigFlags))
17 if "McEventCollection#GEN_EVENT" not in ConfigFlags.Input.TypedCollections:
18 acc.merge(AddBadBatmanCfg(ConfigFlags))
19 acc.merge(AddDistanceInTrainCfg(ConfigFlags))
20 acc.merge(AddSidebandEventShapeCfg(ConfigFlags))
21 acc.merge(AddEventCleanFlagsCfg(ConfigFlags))
22
23 return acc
24
25

◆ StandardJetsInDerivCfg()

python.JetCommonConfig.StandardJetsInDerivCfg ( ConfigFlags)
Jet reconstruction needed for PHYS/PHYSLITE

Definition at line 26 of file JetCommonConfig.py.

26def StandardJetsInDerivCfg(ConfigFlags):
27 """Jet reconstruction needed for PHYS/PHYSLITE"""
28
29 from JetRecConfig.StandardSmallRJets import AntiKt4EMTopo,AntiKt4EMPFlow,AntiKtVR30Rmax4Rmin02PV0Track
30 from JetRecConfig.StandardLargeRJets import AntiKt10UFOCSSKSoftDrop
31 from JetRecConfig.JetRecConfig import JetRecCfg
32
33 acc = ComponentAccumulator()
34
35 AntiKt4EMTopo_deriv = AntiKt4EMTopo.clone(
36 modifiers = AntiKt4EMTopo.modifiers+("JetPtAssociation","QGTagging")
37 )
38
39 AntiKt4EMPFlow_deriv = AntiKt4EMPFlow.clone(
40 ghostdefs = AntiKt4EMPFlow.ghostdefs+["UnAssocMuonSegment"],
41 modifiers = AntiKt4EMPFlow.modifiers+("JetPtAssociation","QGTagging","fJVT","NNJVT","CaloEnergiesClus","JetPileupLabel","qgtransformer")
42 )
43
44 AntiKt10UFOCSSKSoftDrop_deriv = AntiKt10UFOCSSKSoftDrop.clone(
45 modifiers = AntiKt10UFOCSSKSoftDrop.modifiers+("toptransformer","wtransformer","wtransformer_massdec")
46 )
47
48 jetList = [AntiKt4EMTopo_deriv, AntiKt4EMPFlow_deriv,
49 AntiKtVR30Rmax4Rmin02PV0Track,
50 AntiKt10UFOCSSKSoftDrop_deriv]
51
52 for jd in jetList:
53 acc.merge(JetRecCfg(ConfigFlags,jd))
54
55 return acc
56