22 """Configure the derivation framework driving algorithm (kernel) for JETM7"""
23 acc = ComponentAccumulator()
26 if not flags.Input.isMC:
30 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
31 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs[
'TriggerListsHelper']))
33 from DerivationFrameworkInDet.InDetToolsConfig
import InDetTrackSelectionToolWrapperCfg
34 DFCommonTrackSelection = acc.getPrimaryAndMerge(InDetTrackSelectionToolWrapperCfg(
36 name =
"DFJETM7CommonTrackSelectionLoose",
38 DecorationName =
"DFJETM7Loose"))
40 acc.addEventAlgo(CompFactory.DerivationFramework.CommonAugmentation(
"JETM7CommonKernel", AugmentationTools = [DFCommonTrackSelection]))
43 from DerivationFrameworkInDet.InDetToolsConfig
import MuonTrackParticleThinningCfg, EgammaTrackParticleThinningCfg, JetTrackParticleThinningCfg, TauTrackParticleThinningCfg
45 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import GenericObjectThinningCfg
47 muonSelectionString =
"(Muons.pt > 5*GeV)"
48 electronSelectionString =
"(Electrons.pt > 5*GeV)"
49 photonSelectionString =
"(Photons.pt > 5*GeV)"
50 jetSelectionString =
"(AntiKt4EMPFlowByVertexJets.pt > 7.*GeV && AntiKt4EMPFlowByVertexJets.Jvt > 0.4)"
51 tauJetSelectionString =
"(TauJets.pt > 20.*GeV && TauJets.nTracks > 0)"
54 JETM7MuonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(flags,
55 name =
"JETM7MuonTPThinningTool",
56 StreamName = kwargs[
'StreamName'],
58 SelectionString = muonSelectionString,
59 InDetTrackParticlesKey =
"InDetTrackParticles"))
62 JETM7ElectronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(flags,
63 name =
"JETM7ElectronTPThinningTool",
64 StreamName = kwargs[
'StreamName'],
66 SelectionString = electronSelectionString,
67 InDetTrackParticlesKey =
"InDetTrackParticles"))
70 JETM7TauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
72 name =
"JETM7TauTPThinningTool",
73 StreamName = kwargs[
'StreamName'],
75 SelectionString = tauJetSelectionString,
76 InDetTrackParticlesKey =
"InDetTrackParticles",
77 DoTauTracksThinning =
True,
79 TauTracksKey =
"TauTracks"))
82 JETM7Akt4JetTPThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(flags,
83 name =
"JETM7Akt4JetTPThinningTool",
84 StreamName = kwargs[
'StreamName'],
85 JetKey =
"AntiKt4EMPFlowByVertexJets",
86 SelectionString = jetSelectionString,
87 InDetTrackParticlesKey =
"InDetTrackParticles"))
92 JETM7Akt4PFlowByVertexJetThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(flags,
93 name =
"JETM7Akt4PFlowByVertexJetThinningTool",
94 ContainerName =
"AntiKt4EMPFlowByVertexJets",
95 StreamName = kwargs[
'StreamName'],
96 SelectionString = jetSelectionString))
99 JETM7Akt4PFlowJetThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(flags,
100 name =
"JETM7Akt4PFlowJetThinningTool",
101 ContainerName =
"AntiKt4EMPFlowJets",
102 StreamName = kwargs[
'StreamName'],
103 SelectionString =
"(abs(AntiKt4EMPFlowJets.eta) > 2.4)"))
106 JETM7MuonThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(flags,
107 name =
"JETM7MuonThinningTool",
108 ContainerName =
"Muons",
109 StreamName = kwargs[
'StreamName'],
110 SelectionString = muonSelectionString))
113 JETM7ElectronThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(flags,
114 name =
"JETM7ElectronThinningTool",
115 ContainerName =
"Electrons",
116 StreamName = kwargs[
'StreamName'],
117 SelectionString = electronSelectionString))
119 JETM7TauJetThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(flags,
120 name =
"JETM7TauJetThinningTool",
121 ContainerName =
"TauJets",
122 StreamName = kwargs[
'StreamName'],
123 SelectionString = tauJetSelectionString))
125 JETM7PhotonThinningTool = acc.getPrimaryAndMerge(GenericObjectThinningCfg(flags,
126 name =
"JETM7PhotonThinningTool",
127 ContainerName =
"Photons",
128 StreamName = kwargs[
'StreamName'],
129 SelectionString = photonSelectionString))
136 thinningTools = [JETM7MuonTPThinningTool,
137 JETM7ElectronTPThinningTool,
138 JETM7TauTPThinningTool,
139 JETM7Akt4JetTPThinningTool,
140 JETM7Akt4PFlowByVertexJetThinningTool,
141 JETM7Akt4PFlowJetThinningTool,
142 JETM7MuonThinningTool,
143 JETM7ElectronThinningTool,
144 JETM7TauJetThinningTool,
145 JETM7PhotonThinningTool,
148 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
149 acc.addEventAlgo(DerivationKernel(name,
150 ThinningTools = thinningTools,
151 SkimmingTools = [skimmingTool]
if not flags.Input.isMC
else []))
158 acc = ComponentAccumulator()
160 from JetRecConfig.JetRecConfig
import JetRecCfg
161 from JetRecConfig.StandardSmallRJets
import AntiKt4PV0Track, AntiKt4EMPFlowByVertex
166 jetList = [AntiKt4PV0Track]
171 jetList += [AntiKt4EMPFlowByVertex]
175 acc.merge(JetRecCfg(flags,jd))
182 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTopQuarkAndDownstreamParticlesCfg
183 acc.merge(AddTopQuarkAndDownstreamParticlesCfg(flags, generations=4, rejectHadronChildren=
True))
191 if flags.Trigger.EDMVersion == 2:
192 triggerNames = [
"JetContainer_a4tcemsubjesFS",
"JetContainer_a4tcemsubjesISFS",
"JetContainer_a10tclcwsubjesFS",
"JetContainer_GSCJet"]
194 for trigger
in triggerNames:
195 wrapperName = trigger+
'AuxWrapper'
196 auxContainerName =
'HLT_xAOD__'+trigger+
'Aux'
198 acc.addEventAlgo(CompFactory.xAODMaker.AuxStoreWrapper( wrapperName, SGKeys = [ auxContainerName+
"." ] ))
204 acc = ComponentAccumulator()
210 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
211 JETM7TriggerListsHelper = TriggerListsHelper(flags)
214 acc.merge(
JETM7KernelCfg(flags, name=
"JETM7Kernel", StreamName =
'StreamDAOD_JETM7', TriggerListsHelper = JETM7TriggerListsHelper))
219 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
220 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
221 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
223 JETM7SlimmingHelper =
SlimmingHelper(
"JETM7SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
225 JETM7SlimmingHelper.SmartCollections = [
"Electrons",
"Photons",
"Muons",
"TauJets",
227 "InDetTrackParticles",
228 "AntiKt4EMPFlowJets",
233 JETM7SlimmingHelper.ExtraVariables = [
"InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights"]
238 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
239 addTruth3ContentToSlimmerTool(JETM7SlimmingHelper)
241 JETM7SlimmingHelper.AppendToDictionary.update({
'TruthParticles':
'xAOD::TruthParticleContainer',
242 'TruthParticlesAux':
'xAOD::TruthParticleAuxContainer'})
244 JETM7SlimmingHelper.SmartCollections += [
"AntiKt4TruthWZJets"]
246 JETM7SlimmingHelper.AllVariables += [
"TruthTopQuarkWithDecayParticles",
"TruthTopQuarkWithDecayVertices",
247 "AntiKt4TruthJets",
"InTimeAntiKt4TruthJets",
"OutOfTimeAntiKt4TruthJets",
"TruthParticles",
248 "TruthVertices",
"TruthEvents"]
249 JETM7SlimmingHelper.ExtraVariables += [
"InDetTrackParticles.truthMatchProbability",
"TruthVertices.uid.z"]
253 JETM7SlimmingHelper.IncludeTriggerNavigation =
True
254 JETM7SlimmingHelper.IncludeJetTriggerContent =
False
255 JETM7SlimmingHelper.IncludeMuonTriggerContent =
False
256 JETM7SlimmingHelper.IncludeEGammaTriggerContent =
False
257 JETM7SlimmingHelper.IncludeTauTriggerContent =
False
258 JETM7SlimmingHelper.IncludeEtMissTriggerContent =
False
259 JETM7SlimmingHelper.IncludeBJetTriggerContent =
False
260 JETM7SlimmingHelper.IncludeBPhysTriggerContent =
False
261 JETM7SlimmingHelper.IncludeMinBiasTriggerContent =
False
265 if flags.Trigger.EDMVersion == 2:
266 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
267 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = JETM7SlimmingHelper,
268 OutputContainerPrefix =
"TrigMatch_",
269 TriggerList = JETM7TriggerListsHelper.Run2TriggerNamesTau)
270 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = JETM7SlimmingHelper,
271 OutputContainerPrefix =
"TrigMatch_",
272 TriggerList = JETM7TriggerListsHelper.Run2TriggerNamesNoTau)
274 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
275 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
276 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(JETM7SlimmingHelper)
278 jetOutputList = [
"AntiKt4EMPFlowByVertexJets"]
279 from DerivationFrameworkJetEtMiss.JetCommonConfig
import addJetsToSlimmingTool
280 addJetsToSlimmingTool(JETM7SlimmingHelper, jetOutputList, JETM7SlimmingHelper.SmartCollections)
283 JETM7ItemList = JETM7SlimmingHelper.GetItemList()
284 acc.merge(OutputStreamCfg(flags,
"DAOD_JETM7", ItemList=JETM7ItemList, AcceptAlgs=[
"JETM7Kernel"]))
285 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_JETM7", AcceptAlgs=[
"JETM7Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))