15 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
16 from AthenaConfiguration.ComponentFactory
import CompFactory
17 from AthenaConfiguration.Enums
import MetadataCategory
18 from AthenaCommon.Logging
import logging
19 logSTDM6 = logging.getLogger(
'STDM6')
25 """Configure the derivation framework driving algorithm (kernel) for STDM6"""
29 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
32 TriggerListsHelper = kwargs[
'TriggerListsHelper'],
33 TauJets_EleRM_in_input = kwargs[
'TauJets_EleRM_in_input']
36 from DerivationFrameworkInDet.InDetToolsConfig
import 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
65 for key
in thinningToolsArgs:
66 thinningTools.append(acc.getPublicTool(thinningToolsArgs[key]))
69 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
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]
130 from JetRecConfig.JetRecConfig
import getConstitPJGAlg
131 from JetRecConfig.StandardJetConstits
import stdConstitDic
as cst
132 from JetRecConfig.JetInputConfig
import buildEventShapeAlg
143 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTopQuarkAndDownstreamParticlesCfg
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+
"." ] ))
165 def 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)
178 from DerivationFrameworkHiggs.HiggsPhysContent
import HiggsAugmentationAlgsCfg
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
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 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
217 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
219 if TauJets_EleRM_in_input:
220 STDM6SlimmingHelper.SmartCollections.append(
"TauJets_EleRM")
225 STDM6SlimmingHelper.AllVariables += [
"AFPSiHitContainer",
226 "AFPToFHitContainer",
227 "AFPSiHitsClusterContainer",
229 "AFPToFTrackContainer",
230 "AFPProtonContainer",
231 "AFPVertexContainer",
232 "CaloCalTopoClusters",
237 STDM6SlimmingHelper.AllVariables += [
"MuonSegments",
"EventInfo",
238 "Kt4EMTopoOriginEventShape",
"Kt4EMPFlowEventShape",
"Kt4EMPFlowPUSBEventShape",
"Kt4EMPFlowNeutEventShape",
"Kt4UFOCSSKEventShape",
"Kt4UFOCSSKNeutEventShape",
239 "AntiKt4EMPFlowJets"]
241 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
243 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
244 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
245 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
246 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
247 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
248 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
250 STDM6SlimmingHelper.StaticContent = StaticContent
253 STDM6SlimmingHelper.ExtraVariables += [
"AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
254 "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.isJvtHS.isJvtPU",
255 "TruthPrimaryVertices.t.x.y.z",
256 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
257 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification",
258 "TauJets.dRmax.etOverPtLeadTrk",
259 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
260 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
261 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
262 if TauJets_EleRM_in_input:
263 STDM6SlimmingHelper.ExtraVariables += [
"TauJets_EleRM.dRmax.etOverPtLeadTrk"]
267 STDM6SlimmingHelper.ExtraVariables += [
"AntiKt4EMTopoJets.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1",
268 "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1",
269 "AntiKt4EMPFlowJets.passOnlyBJVT.DFCommonJets_bJvt.isJvtHS.isJvtPU",
270 "InDetTrackParticles.truthMatchProbability",
271 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.zg.rg.NumTrkPt1000.TrackWidthPt1000.GhostMuonSegmentCount.EnergyPerSampling.GhostTrack",
272 "AntiKt10UFOCSSKJets.NumTrkPt1000.TrackWidthPt1000.GhostMuonSegmentCount.EnergyPerSampling.GhostTrack"]
277 for tagger
in [
"GN2Xv00",
"GN2XWithMassv00",
"GN2Xv01"]:
278 for score
in [
"phbb",
"phcc",
"ptop",
"pqcd"]:
279 extraList.append(f
"{tagger}_{score}")
280 STDM6SlimmingHelper.ExtraVariables += [
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets." +
".".
join(extraList)]
290 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
294 STDM6SlimmingHelper.AppendToDictionary.update({
'TruthParticles':
'xAOD::TruthParticleContainer',
295 'TruthParticlesAux':
'xAOD::TruthParticleAuxContainer'})
297 STDM6SlimmingHelper.AllVariables += [
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
298 STDM6SlimmingHelper.AllVariables += [
"TruthEvents",
"TruthParticles",
"TruthVertices",
"AntiKt4TruthJets",
"AntiKt4TruthWZJets"]
299 STDM6SlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
302 "AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
303 "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt",
304 "TruthPrimaryVertices.t.x.y.z",
305 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
306 "PrimaryVertices.x.y.z.covariance.trackWeights.vertexType.sumPt2",
310 STDM6SlimmingHelper.SmartCollections += [
"AntiKt4TruthWZJets"]
311 STDM6SlimmingHelper.AllVariables += [
"TruthTopQuarkWithDecayParticles",
"TruthTopQuarkWithDecayVertices",
312 "AntiKt4TruthJets",
"InTimeAntiKt4TruthJets",
"OutOfTimeAntiKt4TruthJets",
"TruthParticles"]
313 STDM6SlimmingHelper.ExtraVariables += [
"TruthVertices.uid.z"]
315 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTauAndDownstreamParticlesCfg
317 STDM6SlimmingHelper.AllVariables += [
'TruthTausWithDecayParticles',
'TruthTausWithDecayVertices']
319 STDM6SlimmingHelper.AppendToDictionary.update({
'Kt4UFOCSSKEventShape':
'xAOD::EventShape',
320 'Kt4UFOCSSKEventShapeAux':
'xAOD::EventShapeAuxInfo',
321 'Kt4UFOCSSKNeutEventShape':
'xAOD::EventShape',
322 'Kt4UFOCSSKNeutEventShapeAux':
'xAOD::EventShapeAuxInfo'})
325 from DerivationFrameworkHiggs.HiggsPhysContent
import setupHiggsSlimmingVariables
329 STDM6SlimmingHelper.IncludeTriggerNavigation =
False
331 STDM6SlimmingHelper.IncludeJetTriggerContent =
True
332 STDM6SlimmingHelper.IncludeMuonTriggerContent =
False
333 STDM6SlimmingHelper.IncludeEGammaTriggerContent =
False
334 STDM6SlimmingHelper.IncludeJetTauEtMissTriggerContent =
False
335 STDM6SlimmingHelper.IncludeTauTriggerContent =
False
336 STDM6SlimmingHelper.IncludeEtMissTriggerContent =
False
337 STDM6SlimmingHelper.IncludeBJetTriggerContent =
False
338 STDM6SlimmingHelper.IncludeBPhysTriggerContent =
False
339 STDM6SlimmingHelper.IncludeMinBiasTriggerContent =
False
343 if flags.Trigger.EDMVersion == 2:
344 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
346 OutputContainerPrefix =
"TrigMatch_",
347 TriggerList = TriggerListsHelper.Run2TriggerNamesTau)
349 OutputContainerPrefix =
"TrigMatch_",
350 TriggerList = TriggerListsHelper.Run2TriggerNamesNoTau)
351 triggerNames = [
"a4tcemsubjesFS",
"a4tcemsubjesISFS",
"a10tclcwsubjesFS",
"a10tclcwsubFS",
"a10ttclcwjesFS",
"GSCJet"]
352 for trigger
in triggerNames:
353 STDM6SlimmingHelper.FinalItemList.append(
'xAOD::AuxContainerBase!#HLT_xAOD__JetContainer_'+trigger+
'Aux.pt.eta.phi.m')
356 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
357 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
360 jetOutputList = [
"AntiKt4PV0TrackJets",
"AntiKt4UFOCSSKJets"]
362 jetOutputList = [
"AntiKt4PV0TrackJets",
"AntiKt4UFOCSSKNoPtCutJets",
"AntiKt4EMPFlowNoPtCutJets",
"AntiKt4EMTopoNoPtCutJets",
"AntiKt4EMPFlowMLJets"]
363 from DerivationFrameworkJetEtMiss.JetCommonConfig
import addJetsToSlimmingTool
368 STDM6ItemList = STDM6SlimmingHelper.GetItemList()
369 acc.merge(
OutputStreamCfg(flags,
"DAOD_"+name_tag, ItemList=STDM6ItemList, AcceptAlgs=[name_tag+
"Kernel"]))
370 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_"+name_tag, AcceptAlgs=[name_tag+
"Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
376 logSTDM6.info(
'****************** STARTING STDM6 *****************')
378 stream_name =
'StreamDAOD_STDM6'
385 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
386 STDM6TriggerListsHelper = TriggerListsHelper(flags)
389 TauJets_EleRM_in_input = (flags.Input.TypedCollections.count(
'xAOD::TauJetContainer#TauJets_EleRM') > 0)
390 if TauJets_EleRM_in_input:
391 logSTDM6.info(
"TauJets_EleRM is in the input AOD. Relevant containers will be scheduled")
393 logSTDM6.info(
"TauJets_EleRM is Not in the input AOD. No relevant containers will be written")
399 StreamName = stream_name,
400 TriggerListsHelper = STDM6TriggerListsHelper,
401 TauJets_EleRM_in_input=TauJets_EleRM_in_input
407 StreamName = stream_name,
408 TriggerListsHelper = STDM6TriggerListsHelper,
409 TauJets_EleRM_in_input=TauJets_EleRM_in_input