25 """Configure the derivation framework driving algorithm (kernel) for STDM6"""
26 acc = ComponentAccumulator()
29 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
30 acc.merge(PhysCommonAugmentationsCfg(
32 TriggerListsHelper = kwargs[
'TriggerListsHelper'],
33 TauJets_EleRM_in_input = kwargs[
'TauJets_EleRM_in_input']
36 from DerivationFrameworkInDet.InDetToolsConfig
import InDetTrackSelectionToolWrapperCfg
37 DFCommonTrackSelection = acc.getPrimaryAndMerge(InDetTrackSelectionToolWrapperCfg(
39 name =
"DFJETM1CommonTrackSelectionLoose",
41 DecorationName =
"DFJETM1Loose"))
43 acc.addEventAlgo(CompFactory.DerivationFramework.CommonAugmentation(
"JETM1CommonKernel", AugmentationTools = [DFCommonTrackSelection]))
48 'TrackParticleThinningToolName' :
"STDM6TrackParticleThinningTool",
49 'MuonTPThinningToolName' :
"STDM6MuonTPThinningTool",
50 'TauJetThinningToolName' :
"STDM6TauJetThinningTool",
51 'TauJets_MuonRMThinningToolName' :
"STDM6TauJets_MuonRMThinningTool",
52 'DiTauThinningToolName' :
"STDM6DiTauThinningTool",
53 'DiTauTPThinningToolName' :
"STDM6DiTauTPThinningTool",
54 'DiTauLowPtThinningToolName' :
"STDM6DiTauLowPtThinningTool",
55 'DiTauLowPtTPThinningToolName' :
"STDM6DiTauLowPtTPThinningTool",
58 if kwargs.get(
'TauJets_EleRM_in_input',
False):
59 thinningToolsArgs[
'TauJets_EleRMThinningToolName'] =
"STDM6TauJets_EleRMThinningTool"
61 from DerivationFrameworkPhys.PhysCommonThinningConfig
import PhysCommonThinningCfg
62 acc.merge(PhysCommonThinningCfg(flags, StreamName = kwargs[
'StreamName'], **thinningToolsArgs))
65 for key
in thinningToolsArgs:
66 thinningTools.append(acc.getPublicTool(thinningToolsArgs[key]))
69 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
70 acc.addEventAlgo(DerivationKernel(name, ThinningTools = thinningTools))
81 acc = ComponentAccumulator()
83 from JetRecConfig.JetRecConfig
import JetRecCfg, getModifier
84 from JetRecConfig.StandardJetMods
import stdJetModifiers
85 from JetRecConfig.StandardSmallRJets
import AntiKt4PV0Track, AntiKt4EMPFlow, AntiKt4EMPFlowNoPtCut, AntiKt4EMPFlowML, AntiKt4EMTopoNoPtCut
90 bJVTTool = getModifier(AntiKt4EMPFlow, stdJetModifiers[
'bJVT'], stdJetModifiers[
'bJVT'].modspec, flags=flags)
91 acc.addEventAlgo(CompFactory.JetDecorationAlg(name=
'bJVTAlg',
92 JetContainer=
'AntiKt4EMPFlowJets',
93 Decorators=[bJVTTool]))
98 jetList = [AntiKt4PV0Track]
104 jetList += [AntiKt4EMPFlowNoPtCut, AntiKt4EMPFlowML, AntiKt4EMTopoNoPtCut]
110 from JetRecConfig.StandardSmallRJets
import AntiKt4UFOCSSKNoPtCut
111 AntiKt4UFOCSSKNoPtCut_JETM1 = AntiKt4UFOCSSKNoPtCut.clone(
112 modifiers = AntiKt4UFOCSSKNoPtCut.modifiers+(
"NNJVT",)
114 jetList += [AntiKt4UFOCSSKNoPtCut_JETM1]
116 from JetRecConfig.StandardSmallRJets
import AntiKt4UFOCSSK
117 AntiKt4UFOCSSK_JETM1 = AntiKt4UFOCSSK.clone(
118 modifiers = AntiKt4UFOCSSK.modifiers+(
"NNJVT",)
120 jetList += [AntiKt4UFOCSSK_JETM1]
124 acc.merge(JetRecCfg(flags,jd))
130 from JetRecConfig.JetRecConfig
import getConstitPJGAlg
131 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
132 from JetRecConfig.JetInputConfig
import buildEventShapeAlg
134 acc.addEventAlgo(buildEventShapeAlg(cst.UFOCSSK,
'', suffix=
None))
135 acc.addEventAlgo(getConstitPJGAlg(cst.UFOCSSK, suffix=
'Neut'))
136 acc.addEventAlgo(buildEventShapeAlg(cst.UFOCSSK,
'', suffix=
'Neut'))
143 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTopQuarkAndDownstreamParticlesCfg
144 acc.merge(AddTopQuarkAndDownstreamParticlesCfg(flags, generations=4,rejectHadronChildren=
True))
152 if flags.Trigger.EDMVersion == 2:
153 triggerNames = [
"JetContainer_a4tcemsubjesFS",
"JetContainer_a4tcemsubjesISFS",
"JetContainer_GSCJet",
154 "JetContainer_a10tclcwsubjesFS",
"JetContainer_a10tclcwsubFS",
"JetContainer_a10ttclcwjesFS"]
156 for trigger
in triggerNames:
157 wrapperName = trigger+
'AuxWrapper'
158 auxContainerName =
'HLT_xAOD__'+trigger+
'Aux'
160 acc.addEventAlgo(CompFactory.xAODMaker.AuxStoreWrapper( wrapperName, SGKeys = [ auxContainerName+
"." ] ))
165def STDM6CoreCfg(flags, name_tag='STDM6', StreamName='StreamDAOD_STDM6', TriggerListsHelper=None, TauJets_EleRM_in_input=None):
167 if TriggerListsHelper
is None:
168 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
169 TriggerListsHelper = TriggerListsHelper(flags)
171 if TauJets_EleRM_in_input
is None:
173 TauJets_EleRM_in_input = (flags.Input.TypedCollections.count(
'xAOD::TauJetContainer#TauJets_EleRM') > 0)
175 acc = ComponentAccumulator()
178 from DerivationFrameworkHiggs.HiggsPhysContent
import HiggsAugmentationAlgsCfg
179 acc.merge(HiggsAugmentationAlgsCfg(flags))
183 from IsolationSelection.IsolationSelectionConfig
import IsoCloseByAlgsCfg
184 acc.merge(IsoCloseByAlgsCfg(flags, suff =
"_"+name_tag, isPhysLite =
False, stream_name = StreamName))
189 from DerivationFrameworkMCTruth.HFClassificationCommonConfig
import HFClassificationCommonCfg
190 acc.merge(HFClassificationCommonCfg(flags))
195 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
196 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
197 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
199 STDM6SlimmingHelper =
SlimmingHelper(name_tag+
"SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
200 STDM6SlimmingHelper.SmartCollections = [
"EventInfo",
205 "InDetTrackParticles",
207 "AntiKt4EMPFlowJets",
208 "AntiKt10UFOCSSKJets",
209 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
210 "MET_Baseline_AntiKt4EMTopo",
211 "MET_Baseline_AntiKt4EMPFlow",
216 if TauJets_EleRM_in_input:
217 STDM6SlimmingHelper.SmartCollections.append(
"TauJets_EleRM")
222 STDM6SlimmingHelper.AllVariables += [
"AFPSiHitContainer",
223 "AFPToFHitContainer",
224 "AFPSiHitsClusterContainer",
226 "AFPToFTrackContainer",
227 "AFPProtonContainer",
228 "AFPVertexContainer",
229 "CaloCalTopoClusters",
234 STDM6SlimmingHelper.AllVariables += [
"MuonSegments",
"EventInfo",
235 "Kt4EMTopoOriginEventShape",
"Kt4EMPFlowEventShape",
"Kt4EMPFlowNeutEventShape",
"Kt4UFOCSSKEventShape",
"Kt4UFOCSSKNeutEventShape",
236 "AntiKt4EMPFlowJets"]
238 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
240 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
241 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
242 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
243 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
244 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
245 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
247 STDM6SlimmingHelper.StaticContent = StaticContent
250 STDM6SlimmingHelper.ExtraVariables += [
"AntiKt4EMTopoJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.constituentLinks",
251 "AntiKt4EMPFlowJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.isJvtHS.isJvtPU",
252 "TruthPrimaryVertices.t.x.y.z",
253 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
254 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification",
255 "TauJets.dRmax.etOverPtLeadTrk",
256 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
257 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
258 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
259 if TauJets_EleRM_in_input:
260 STDM6SlimmingHelper.ExtraVariables += [
"TauJets_EleRM.dRmax.etOverPtLeadTrk"]
264 STDM6SlimmingHelper.ExtraVariables += [
"AntiKt4EMPFlowJets.passOnlyBJVT.DFCommonJets_bJvt.isJvtHS.isJvtPU",
265 "InDetTrackParticles.truthMatchProbability",
266 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.zg.rg.NumTrkPt1000.TrackWidthPt1000.GhostMuonSegmentCount.EnergyPerSampling.GhostTrack",
267 "AntiKt10UFOCSSKJets.NumTrkPt1000.TrackWidthPt1000.GhostMuonSegmentCount.EnergyPerSampling.GhostTrack"]
272 for tagger
in [
"GN2Xv00",
"GN2XWithMassv00",
"GN2Xv01"]:
273 for score
in [
"phbb",
"phcc",
"ptop",
"pqcd"]:
274 extraList.append(f
"{tagger}_{score}")
275 STDM6SlimmingHelper.ExtraVariables += [
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets." +
".".join(extraList)]
285 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
286 addTruth3ContentToSlimmerTool(STDM6SlimmingHelper)
289 STDM6SlimmingHelper.AppendToDictionary.update({
'TruthParticles':
'xAOD::TruthParticleContainer',
290 'TruthParticlesAux':
'xAOD::TruthParticleAuxContainer'})
292 STDM6SlimmingHelper.AllVariables += [
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
293 STDM6SlimmingHelper.AllVariables += [
"TruthEvents",
"TruthParticles",
"TruthVertices",
"AntiKt4TruthJets",
"AntiKt4TruthWZJets"]
294 STDM6SlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
297 "AntiKt4EMTopoJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
298 "AntiKt4EMPFlowJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
299 "TruthPrimaryVertices.t.x.y.z",
300 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
301 "PrimaryVertices.x.y.z.covariance.trackWeights.vertexType.sumPt2",
305 STDM6SlimmingHelper.SmartCollections += [
"AntiKt4TruthWZJets"]
306 STDM6SlimmingHelper.AllVariables += [
"TruthTopQuarkWithDecayParticles",
"TruthTopQuarkWithDecayVertices",
307 "AntiKt4TruthJets",
"InTimeAntiKt4TruthJets",
"OutOfTimeAntiKt4TruthJets",
"TruthParticles"]
308 STDM6SlimmingHelper.ExtraVariables += [
"TruthVertices.uid.z"]
310 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTauAndDownstreamParticlesCfg
311 acc.merge(AddTauAndDownstreamParticlesCfg(flags))
312 STDM6SlimmingHelper.AllVariables += [
'TruthTausWithDecayParticles',
'TruthTausWithDecayVertices']
314 STDM6SlimmingHelper.AppendToDictionary.update({
'Kt4UFOCSSKEventShape':
'xAOD::EventShape',
315 'Kt4UFOCSSKEventShapeAux':
'xAOD::EventShapeAuxInfo',
316 'Kt4UFOCSSKNeutEventShape':
'xAOD::EventShape',
317 'Kt4UFOCSSKNeutEventShapeAux':
'xAOD::EventShapeAuxInfo'})
320 from DerivationFrameworkHiggs.HiggsPhysContent
import setupHiggsSlimmingVariables
321 setupHiggsSlimmingVariables(flags, STDM6SlimmingHelper)
324 STDM6SlimmingHelper.IncludeTriggerNavigation =
False
326 STDM6SlimmingHelper.IncludeJetTriggerContent =
True
327 STDM6SlimmingHelper.IncludeMuonTriggerContent =
False
328 STDM6SlimmingHelper.IncludeEGammaTriggerContent =
False
329 STDM6SlimmingHelper.IncludeJetTauEtMissTriggerContent =
False
330 STDM6SlimmingHelper.IncludeTauTriggerContent =
False
331 STDM6SlimmingHelper.IncludeEtMissTriggerContent =
False
332 STDM6SlimmingHelper.IncludeBJetTriggerContent =
False
333 STDM6SlimmingHelper.IncludeBPhysTriggerContent =
False
334 STDM6SlimmingHelper.IncludeMinBiasTriggerContent =
False
338 if flags.Trigger.EDMVersion == 2:
339 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
340 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = STDM6SlimmingHelper,
341 OutputContainerPrefix =
"TrigMatch_",
342 TriggerList = TriggerListsHelper.Run2TriggerNamesTau)
343 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = STDM6SlimmingHelper,
344 OutputContainerPrefix =
"TrigMatch_",
345 TriggerList = TriggerListsHelper.Run2TriggerNamesNoTau)
346 triggerNames = [
"a4tcemsubjesFS",
"a4tcemsubjesISFS",
"a10tclcwsubjesFS",
"a10tclcwsubFS",
"a10ttclcwjesFS",
"GSCJet"]
347 for trigger
in triggerNames:
348 STDM6SlimmingHelper.FinalItemList.append(
'xAOD::AuxContainerBase!#HLT_xAOD__JetContainer_'+trigger+
'Aux.pt.eta.phi.m')
351 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
352 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
353 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(STDM6SlimmingHelper)
355 jetOutputList = [
"AntiKt4PV0TrackJets",
"AntiKt4UFOCSSKJets"]
357 jetOutputList = [
"AntiKt4PV0TrackJets",
"AntiKt4UFOCSSKNoPtCutJets",
"AntiKt4EMPFlowNoPtCutJets",
"AntiKt4EMTopoNoPtCutJets",
"AntiKt4EMPFlowMLJets"]
358 from DerivationFrameworkJetEtMiss.JetCommonConfig
import addJetsToSlimmingTool
359 addJetsToSlimmingTool(STDM6SlimmingHelper, jetOutputList, STDM6SlimmingHelper.SmartCollections)
363 STDM6ItemList = STDM6SlimmingHelper.GetItemList()
364 acc.merge(OutputStreamCfg(flags,
"DAOD_"+name_tag, ItemList=STDM6ItemList, AcceptAlgs=[name_tag+
"Kernel"]))
365 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_"+name_tag, AcceptAlgs=[name_tag+
"Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))