8 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
9 from AthenaConfiguration.ComponentFactory
import CompFactory
12 """Main config for jet reconstruction and decorations"""
17 if "McEventCollection#GEN_EVENT" not in ConfigFlags.Input.TypedCollections:
27 """Jet reconstruction needed for PHYS/PHYSLITE"""
29 from JetRecConfig.StandardSmallRJets
import AntiKt4EMTopo,AntiKt4EMPFlow,AntiKtVR30Rmax4Rmin02PV0Track
30 from JetRecConfig.StandardLargeRJets
import AntiKt10LCTopoTrimmed,AntiKt10UFOCSSKSoftDrop
31 from JetRecConfig.JetRecConfig
import JetRecCfg
32 from JetRecConfig.JetConfigFlags
import jetInternalFlags
36 AntiKt4EMTopo_deriv = AntiKt4EMTopo.clone(
37 modifiers = AntiKt4EMTopo.modifiers+(
"JetPtAssociation",
"QGTagging")
40 AntiKt4EMPFlow_deriv = AntiKt4EMPFlow.clone(
41 modifiers = AntiKt4EMPFlow.modifiers+(
"JetPtAssociation",
"QGTagging",
"fJVT",
"NNJVT",
"CaloEnergiesClus",
"JetPileupLabel")
44 jetList = [AntiKt4EMTopo_deriv, AntiKt4EMPFlow_deriv,
45 AntiKtVR30Rmax4Rmin02PV0Track,
46 AntiKt10LCTopoTrimmed,AntiKt10UFOCSSKSoftDrop]
48 jetInternalFlags.isRecoJob =
True
56 """Add bad batman decoration for events with large EMEC-IW noise"""
60 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
61 from DerivationFrameworkJetEtMiss.JetToolConfig
import BadBatmanToolCfg
63 acc.addEventAlgo(CommonAugmentation(
"BadBatmanAugmentation", AugmentationTools = [badBatmanTool]))
68 """Add distance in train information to EventInfo"""
69 from DerivationFrameworkJetEtMiss.JetToolConfig
import DistanceInTrainToolCfg
73 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
75 acc.addEventAlgo(CommonAugmentation(
"DistanceInTrainAugmentation", AugmentationTools = [distanceInTrainTool]))
80 """Special rho definitions for PFlow jets"""
81 from JetRecConfig.JetRecConfig
import getInputAlgs,getConstitPJGAlg,reOrderAlgs
82 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
83 from JetRecConfig.JetInputConfig
import buildEventShapeAlg
87 constit_algs =
getInputAlgs(cst.GPFlow, flags=ConfigFlags)
88 constit_algs, ca =
reOrderAlgs( [a
for a
in constit_algs
if a
is not None])
91 for a
in constit_algs:
107 from JetJvtEfficiency.JetJvtEfficiencyToolConfig
import getJvtEffToolCfg
109 passJvtTool = acc.popToolsAndMerge(
getJvtEffToolCfg(ConfigFlags, jetContainer))
110 passJvtTool.PassJVTKey =
"{}Jets.DFCommonJets_passJvt".
format(jetContainer)
111 passJvtTool.SuppressOutputDependence =
False
112 kwargs.setdefault(
"Decorators", [passJvtTool])
113 kwargs.setdefault(
"JetContainer",
"{}Jets".
format(jetContainer))
114 acc.addEventAlgo(CompFactory.JetDecorationAlg(algName, **kwargs), primary =
True)
118 """Add event cleaning flags"""
121 acc.merge(
AddJvtDecorationAlgCfg(ConfigFlags, algName=
"JvtPassDecorAlg_EMTopo", jetContainer=
'AntiKt4EMTopo'))
124 from DerivationFrameworkTau.TauCommonConfig
import AddTauAugmentationCfg
128 from AssociationUtils.AssociationUtilsConfig
import OverlapRemovalToolCfg
129 outputLabel_legacy =
'DFCommonJets_passOR'
131 tauLabel =
'DFTauLoose'
132 orTool_legacy = acc.popToolsAndMerge(
OverlapRemovalToolCfg(ConfigFlags,outputLabel=outputLabel_legacy,bJetLabel=bJetLabel))
133 algOR_legacy = CompFactory.OverlapRemovalGenUseAlg(
'OverlapRemovalGenUseAlg_EMTopo',
134 JetKey=
"AntiKt4EMTopoJets",
135 OverlapLabel=outputLabel_legacy,
136 OverlapRemovalTool=orTool_legacy,
140 acc.addEventAlgo(algOR_legacy)
143 outputLabel =
'DFCommonJets_passOR'
144 orTool = acc.popToolsAndMerge(
OverlapRemovalToolCfg(ConfigFlags,outputLabel=outputLabel,bJetLabel=bJetLabel))
145 algOR = CompFactory.OverlapRemovalGenUseAlg(
'OverlapRemovalGenUseAlg',
146 OverlapLabel=outputLabel,
147 OverlapRemovalTool=orTool,
150 acc.addEventAlgo(algOR)
152 CommonAugmentation = CompFactory.DerivationFramework.CommonAugmentation
153 from DerivationFrameworkMuons.MuonsToolsConfig
import MuonJetDrToolCfg
154 muonJetDrTool = acc.getPrimaryAndMerge(
MuonJetDrToolCfg(ConfigFlags,
"MuonJetDrTool"))
155 acc.addEventAlgo(CommonAugmentation(
"DFCommonMuonsKernel2", AugmentationTools = [muonJetDrTool]))
157 from JetSelectorTools.JetSelectorToolsConfig
import EventCleaningToolCfg,JetCleaningToolCfg
159 supportedWPs = [
'Loose',
'Tight',
'LooseLLP',
'VeryLooseLLP',
'SuperLooseLLP']
160 prefix =
"DFCommonJets_"
161 evt_lvl_suppWPs_PFlow = [
'LooseBad',
'TightBad']
163 for wp
in workingPoints:
164 if wp
not in supportedWPs:
167 cleaningLevel = wp +
'Bad'
170 cleaningLevel = wp.replace(
'LLP',
'BadLLP')
174 for evt_swp
in evt_lvl_suppWPs_PFlow:
175 if evt_swp == cleaningLevel:
180 if 'Loose' in cleaningLevel:
186 ConfigFlags,
'JetCleaningTool_'+cleaningLevel+
'_EMTopo',
187 'AntiKt4EMTopo', cleaningLevel,
False))
188 acc.addPublicTool(jetCleaningTool_legacy)
190 ConfigFlags,
'EventCleaningTool_'+wp+
'_EMTopo', cleaningLevel))
191 ecTool_legacy.JetCleanPrefix = prefix
192 ecTool_legacy.JetContainer =
"AntiKt4EMTopoJets"
193 ecTool_legacy.JetCleaningTool = jetCleaningTool_legacy
194 acc.addPublicTool(ecTool_legacy)
196 eventCleanAlg_legacy = CompFactory.EventCleaningTestAlg(
'EventCleaningTestAlg_'+wp+
'_EMTopo',
197 EventCleaningTool=ecTool_legacy,
198 JetCollectionName=
"AntiKt4EMTopoJets",
199 EventCleanPrefix=prefix,
200 CleaningLevel=cleaningLevel,
202 acc.addEventAlgo(eventCleanAlg_legacy)
207 ConfigFlags,
'JetCleaningTool_'+cleaningLevel,
208 'AntiKt4EMPFlowJets', cleaningLevel,
False))
209 acc.addPublicTool(jetCleaningTool)
211 ecTool = acc.popToolsAndMerge(
EventCleaningToolCfg(ConfigFlags,
'EventCleaningTool_' + wp, cleaningLevel))
212 ecTool.JetCleanPrefix = prefix
213 ecTool.JetContainer =
"AntiKt4EMPFlowJets"
214 ecTool.JetCleaningTool = jetCleaningTool
215 acc.addPublicTool(ecTool)
217 eventCleanAlg = CompFactory.EventCleaningTestAlg(
'EventCleaningTestAlg_'+wp,
218 EventCleaningTool=ecTool,
219 JetCollectionName=
"AntiKt4EMPFlowJets",
220 EventCleanPrefix=prefix,
221 CleaningLevel=cleaningLevel,
223 acc.addEventAlgo(eventCleanAlg)
229 for item
in contentlist:
230 if item
not in slimhelper.AppendToDictionary:
231 slimhelper.AppendToDictionary.update({item:
'xAOD::JetContainer',
232 item+
"Aux":
'xAOD::JetAuxContainer'})
233 if item
in smartlist:
234 slimhelper.SmartCollections.append(item)
236 slimhelper.AllVariables.append(item)
244 slimhelper.ExtraVariables.append(
'CaloCalTopoClusters.calE.calEta.calPhi.calM')
247 if "LCOriginTopoClusters" not in slimhelper.AppendToDictionary:
248 slimhelper.AppendToDictionary.update({
"LCOriginTopoClusters":
'xAOD::CaloClusterContainer',
249 "LCOriginTopoClustersAux":
'xAOD::ShallowAuxContainer'})
250 slimhelper.ExtraVariables.append(
'LCOriginTopoClusters.calEta.calPhi.originalObjectLink')
253 if "EMOriginTopoClusters" not in slimhelper.AppendToDictionary:
254 slimhelper.AppendToDictionary.update({
"EMOriginTopoClusters":
'xAOD::CaloClusterContainer',
255 "EMOriginTopoClustersAux":
'xAOD::ShallowAuxContainer'})
256 slimhelper.ExtraVariables.append(
'EMOriginTopoClusters.calE.calEta.calPhi.originalObjectLink')