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, 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, 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 "BTagging_AntiKt4EMPFlow",
211 "BTagging_AntiKtVR30Rmax4Rmin02Track",
212 "MET_Baseline_AntiKt4EMTopo",
213 "MET_Baseline_AntiKt4EMPFlow",
218 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
219 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
220 "AntiKtVR30Rmax4Rmin02PV0TrackJets",
222 if TauJets_EleRM_in_input:
223 STDM6SlimmingHelper.SmartCollections.append(
"TauJets_EleRM")
228 STDM6SlimmingHelper.AllVariables += [
"AFPSiHitContainer",
229 "AFPToFHitContainer",
230 "AFPSiHitsClusterContainer",
232 "AFPToFTrackContainer",
233 "AFPProtonContainer",
234 "AFPVertexContainer",
235 "CaloCalTopoClusters",
240 STDM6SlimmingHelper.AllVariables += [
"MuonSegments",
"EventInfo",
241 "Kt4EMTopoOriginEventShape",
"Kt4EMPFlowEventShape",
"Kt4EMPFlowPUSBEventShape",
"Kt4EMPFlowNeutEventShape",
"Kt4UFOCSSKEventShape",
"Kt4UFOCSSKNeutEventShape",
242 "AntiKt4EMPFlowJets"]
244 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
246 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
247 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
248 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
249 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
250 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
251 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
253 STDM6SlimmingHelper.StaticContent = StaticContent
256 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",
257 "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",
258 "TruthPrimaryVertices.t.x.y.z",
259 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
260 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification",
261 "TauJets.dRmax.etOverPtLeadTrk",
262 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
263 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
264 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
265 if TauJets_EleRM_in_input:
266 STDM6SlimmingHelper.ExtraVariables += [
"TauJets_EleRM.dRmax.etOverPtLeadTrk"]
270 STDM6SlimmingHelper.ExtraVariables += [
"AntiKt4EMTopoJets.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1",
271 "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1",
272 "AntiKt4EMPFlowJets.passOnlyBJVT.DFCommonJets_bJvt.isJvtHS.isJvtPU",
273 "InDetTrackParticles.truthMatchProbability",
274 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.zg.rg.NumTrkPt1000.TrackWidthPt1000.GhostMuonSegmentCount.EnergyPerSampling.GhostTrack",
275 "AntiKt10UFOCSSKJets.NumTrkPt1000.TrackWidthPt1000.GhostMuonSegmentCount.EnergyPerSampling.GhostTrack"]
280 for tagger
in [
"GN2Xv00",
"GN2XWithMassv00",
"GN2Xv01"]:
281 for score
in [
"phbb",
"phcc",
"ptop",
"pqcd"]:
282 extraList.append(f
"{tagger}_{score}")
283 STDM6SlimmingHelper.ExtraVariables += [
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets." +
".".
join(extraList)]
293 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
297 STDM6SlimmingHelper.AppendToDictionary.update({
'TruthParticles':
'xAOD::TruthParticleContainer',
298 'TruthParticlesAux':
'xAOD::TruthParticleAuxContainer'})
300 STDM6SlimmingHelper.AllVariables += [
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
301 STDM6SlimmingHelper.AllVariables += [
"TruthEvents",
"TruthParticles",
"TruthVertices",
"AntiKt4TruthJets",
"AntiKt4TruthWZJets"]
302 STDM6SlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
305 "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",
306 "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",
307 "TruthPrimaryVertices.t.x.y.z",
308 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
309 "PrimaryVertices.x.y.z.covariance.trackWeights.vertexType.sumPt2",
313 STDM6SlimmingHelper.SmartCollections += [
"AntiKt4TruthWZJets"]
314 STDM6SlimmingHelper.AllVariables += [
"TruthTopQuarkWithDecayParticles",
"TruthTopQuarkWithDecayVertices",
315 "AntiKt4TruthJets",
"InTimeAntiKt4TruthJets",
"OutOfTimeAntiKt4TruthJets",
"TruthParticles"]
316 STDM6SlimmingHelper.ExtraVariables += [
"TruthVertices.uid.z"]
318 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTauAndDownstreamParticlesCfg
320 STDM6SlimmingHelper.AllVariables += [
'TruthTausWithDecayParticles',
'TruthTausWithDecayVertices']
322 STDM6SlimmingHelper.AppendToDictionary.update({
'Kt4UFOCSSKEventShape':
'xAOD::EventShape',
323 'Kt4UFOCSSKEventShapeAux':
'xAOD::EventShapeAuxInfo',
324 'Kt4UFOCSSKNeutEventShape':
'xAOD::EventShape',
325 'Kt4UFOCSSKNeutEventShapeAux':
'xAOD::EventShapeAuxInfo'})
328 from DerivationFrameworkHiggs.HiggsPhysContent
import setupHiggsSlimmingVariables
332 STDM6SlimmingHelper.IncludeTriggerNavigation =
False
334 STDM6SlimmingHelper.IncludeJetTriggerContent =
True
335 STDM6SlimmingHelper.IncludeMuonTriggerContent =
False
336 STDM6SlimmingHelper.IncludeEGammaTriggerContent =
False
337 STDM6SlimmingHelper.IncludeJetTauEtMissTriggerContent =
False
338 STDM6SlimmingHelper.IncludeTauTriggerContent =
False
339 STDM6SlimmingHelper.IncludeEtMissTriggerContent =
False
340 STDM6SlimmingHelper.IncludeBJetTriggerContent =
False
341 STDM6SlimmingHelper.IncludeBPhysTriggerContent =
False
342 STDM6SlimmingHelper.IncludeMinBiasTriggerContent =
False
346 if flags.Trigger.EDMVersion == 2:
347 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
349 OutputContainerPrefix =
"TrigMatch_",
350 TriggerList = TriggerListsHelper.Run2TriggerNamesTau)
352 OutputContainerPrefix =
"TrigMatch_",
353 TriggerList = TriggerListsHelper.Run2TriggerNamesNoTau)
354 triggerNames = [
"a4tcemsubjesFS",
"a4tcemsubjesISFS",
"a10tclcwsubjesFS",
"a10tclcwsubFS",
"a10ttclcwjesFS",
"GSCJet"]
355 for trigger
in triggerNames:
356 STDM6SlimmingHelper.FinalItemList.append(
'xAOD::AuxContainerBase!#HLT_xAOD__JetContainer_'+trigger+
'Aux.pt.eta.phi.m')
359 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
360 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
363 jetOutputList = [
"AntiKt4PV0TrackJets",
"AntiKt4UFOCSSKJets"]
365 jetOutputList = [
"AntiKt4PV0TrackJets",
"AntiKt4UFOCSSKNoPtCutJets",
"AntiKt4EMPFlowNoPtCutJets",
"AntiKt4EMTopoNoPtCutJets"]
366 from DerivationFrameworkJetEtMiss.JetCommonConfig
import addJetsToSlimmingTool
371 STDM6ItemList = STDM6SlimmingHelper.GetItemList()
372 acc.merge(
OutputStreamCfg(flags,
"DAOD_"+name_tag, ItemList=STDM6ItemList, AcceptAlgs=[name_tag+
"Kernel"]))
373 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_"+name_tag, AcceptAlgs=[name_tag+
"Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
379 logSTDM6.info(
'****************** STARTING STDM6 *****************')
381 stream_name =
'StreamDAOD_STDM6'
388 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
389 STDM6TriggerListsHelper = TriggerListsHelper(flags)
392 TauJets_EleRM_in_input = (flags.Input.TypedCollections.count(
'xAOD::TauJetContainer#TauJets_EleRM') > 0)
393 if TauJets_EleRM_in_input:
394 logSTDM6.info(
"TauJets_EleRM is in the input AOD. Relevant containers will be scheduled")
396 logSTDM6.info(
"TauJets_EleRM is Not in the input AOD. No relevant containers will be written")
402 StreamName = stream_name,
403 TriggerListsHelper = STDM6TriggerListsHelper,
404 TauJets_EleRM_in_input=TauJets_EleRM_in_input
410 StreamName = stream_name,
411 TriggerListsHelper = STDM6TriggerListsHelper,
412 TauJets_EleRM_in_input=TauJets_EleRM_in_input