31 """Configure the derivation framework driving algorithm (kernel) for TOPQ7"""
32 acc = ComponentAccumulator()
34 from TrkConfig.VertexFindingFlags
import VertexSortingSetup
35 if flags.Tracking.PriVertex.sortingSetup
is VertexSortingSetup.GNNSorting:
36 from DerivationFrameworkPhys.GNNVertexConfig
import GNNVertexCfg
37 acc.merge(GNNVertexCfg(flags))
40 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
41 acc.merge(PhysCommonAugmentationsCfg(
43 TriggerListsHelper = kwargs[
'TriggerListsHelper']
48 nametag = name.replace(
'Kernel',
'')
50 'TrackParticleThinningToolName' : nametag+
"TrackParticleThinningTool",
51 'MuonTPThinningToolName' : nametag+
"MuonTPThinningTool",
52 'TauJetThinningToolName' : nametag+
"TauJetThinningTool",
53 'TauJets_MuonRMThinningToolName' : nametag+
"TauJets_MuonRMThinningTool",
54 'DiTauThinningToolName' : nametag+
"DiTauThinningTool",
55 'DiTauTPThinningToolName' : nametag+
"DiTauTPThinningTool",
56 'DiTauLowPtThinningToolName' : nametag+
"DiTauLowPtThinningTool",
57 'DiTauLowPtTPThinningToolName' : nametag+
"DiTauLowPtTPThinningTool",
60 if flags.Tau.TauEleRM_isAvailable:
61 thinningToolsArgs[
'TauJets_EleRMThinningToolName'] = nametag+
"TauJets_EleRMThinningTool"
63 from DerivationFrameworkPhys.PhysCommonThinningConfig
import PhysCommonThinningCfg
64 acc.merge(PhysCommonThinningCfg(flags, StreamName = kwargs[
'StreamName'], **thinningToolsArgs))
67 for key
in thinningToolsArgs:
68 thinningTools.append(acc.getPublicTool(thinningToolsArgs[key]))
73 augmentationTools = []
78 skimmingTools.append(skimmingTool)
81 partonTool = CompFactory.DerivationFramework.PartonJetAugmentationTool(
"TOPQ7PartonJetTool")
82 acc.addPublicTool(partonTool)
83 augmentationTools.append(partonTool)
87 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
91 ThinningTools = thinningTools,
92 SkimmingTools=skimmingTools,
93 AugmentationTools=augmentationTools
98def TOPQ7CoreCfg(flags, name_tag='TOPQ7', StreamName='StreamDAOD_TOPQ7', TriggerListsHelper=None, addExtraVariables=None):
100 if TriggerListsHelper
is None:
101 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
102 TriggerListsHelper = TriggerListsHelper(flags)
104 acc = ComponentAccumulator()
107 from DerivationFrameworkHiggs.HiggsPhysContent
import HiggsAugmentationAlgsCfg
108 acc.merge(HiggsAugmentationAlgsCfg(flags))
112 from IsolationSelection.IsolationSelectionConfig
import IsoCloseByAlgsCfg
113 acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite =
False, stream_name = StreamName))
116 from LeptonTaggers.LeptonTaggersConfig
import DecoratePLITAlgsCfg
117 acc.merge(DecoratePLITAlgsCfg(flags))
122 from DerivationFrameworkMCTruth.HFClassificationCommonConfig
import HFClassificationCommonCfg
123 acc.merge(HFClassificationCommonCfg(flags))
128 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
129 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
130 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
132 TOPQ7SlimmingHelper =
SlimmingHelper(name_tag+
"SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
133 TOPQ7SlimmingHelper.SmartCollections = [
"EventInfo",
138 "InDetTrackParticles",
140 "AntiKt4EMPFlowJets",
141 "MET_Baseline_AntiKt4EMTopo",
142 "MET_Baseline_AntiKt4EMPFlow",
147 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
148 "AntiKtVR30Rmax4Rmin02PV0TrackJets",
150 if flags.Tau.TauEleRM_isAvailable:
151 TOPQ7SlimmingHelper.SmartCollections.append(
"TauJets_EleRM")
153 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
155 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
156 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
157 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
158 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
159 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
160 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
161 StaticContent += [
"xAOD::VertexContainer#NVSI_SecVrt_Tight"]
162 StaticContent += [
"xAOD::VertexAuxContainer#NVSI_SecVrt_TightAux."+excludedVertexAuxData]
164 TOPQ7SlimmingHelper.StaticContent = StaticContent
167 TOPQ7SlimmingHelper.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.IsoFixedCone5PtPUsub",
168 "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.IsoFixedCone5PtPUsub",
169 "TruthPrimaryVertices.t.x.y.z",
170 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
171 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification.HF_ClassificationC5J20.HF_ClassificationC5J25.HF_ClassificationC15J20.HF_ClassificationC15J25",
172 "TauJets.dRmax.etOverPtLeadTrk",
173 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
174 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
175 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey",
176 "HLT_AnomDet_ComboHypo.adScore"]
178 if addExtraVariables:
179 TOPQ7SlimmingHelper.ExtraVariables += addExtraVariables
181 if flags.Tau.TauEleRM_isAvailable:
182 TOPQ7SlimmingHelper.ExtraVariables += [
"TauJets_EleRM.dRmax.etOverPtLeadTrk"]
185 from LeptonTaggers.LeptonTaggersConfig
import GetExtraPLITVariablesForDxAOD
186 TOPQ7SlimmingHelper.ExtraVariables += GetExtraPLITVariablesForDxAOD()
189 TOPQ7SlimmingHelper.ExtraVariables += [
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_TruthJetMass",
190 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_TruthJetPt",
191 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_TruthGroomedJetMass",
192 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_TruthGroomedJetPt",
193 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_TruthJetMass",
194 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_TruthJetPt",
195 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_TruthGroomedJetMass",
196 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_TruthGroomedJetPt"]
201 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
202 addTruth3ContentToSlimmerTool(TOPQ7SlimmingHelper)
203 TOPQ7SlimmingHelper.AllVariables += [
'TruthLHEParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
204 TOPQ7SlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
207 "AntiKt4TruthDressedWZJets.IsoFixedCone5Pt.HFHadronOriginID",
208 "TruthHFWithDecayParticles.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.parentLinks.childLinks.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status",
209 "TruthHFWithDecayVertices.incomingParticleLinks.outgoingParticleLinks.uid.status.x.y.z.t",
210 "TruthCharm.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.parentLinks.childLinks.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status.barcode.polarizationPhi.polarizationTheta",
211 "TruthPileupParticles.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status.barcode.PVz.pileupEventNumber.parentHadronID"]
213 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTauAndDownstreamParticlesCfg
214 acc.merge(AddTauAndDownstreamParticlesCfg(flags))
215 TOPQ7SlimmingHelper.ExtraVariables += [
"TruthTausWithDecayParticles.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status",
216 "TruthTausWithDecayVertices.incomingParticleLinks.outgoingParticleLinks.uid.status.x.y.z.t"]
219 TOPQ7SlimmingHelper.AppendToDictionary.update({
220 "PartonJets":
"xAOD::JetContainer",
221 "PartonJetsAux":
"xAOD::JetAuxContainer"
224 TOPQ7SlimmingHelper.AllVariables += [
"PartonJets"]
228 from DerivationFrameworkHiggs.HiggsPhysContent
import setupHiggsSlimmingVariables
229 setupHiggsSlimmingVariables(flags, TOPQ7SlimmingHelper)
232 TOPQ7SlimmingHelper.AllVariables += [
'AFPSiHitContainer',
'AFPToFHitContainer' ]
235 TOPQ7SlimmingHelper.AppendToDictionary.update({
'MET_Core_AntiKt4EMPFlowHR':
'xAOD::MissingETContainer',
'MET_Core_AntiKt4EMPFlowHRAux':
'xAOD::MissingETAuxContainer',
236 'METAssoc_AntiKt4EMPFlowHR':
'xAOD::MissingETAssociationMap',
'METAssoc_AntiKt4EMPFlowHRAux':
'xAOD::MissingETAuxAssociationMap'})
238 TOPQ7SlimmingHelper.AllVariables += [
'METAssoc_AntiKt4EMPFlowHR']
240 TOPQ7SlimmingHelper.ExtraVariables += [
'Muons.UEcorr_Pt',
'Electrons.UEcorr_Pt',
'MET_Core_AntiKt4EMPFlowHR.name.mpx.mpy.sumet.source']
243 TOPQ7SlimmingHelper.IncludeTriggerNavigation =
False
244 TOPQ7SlimmingHelper.IncludeJetTriggerContent =
False
245 TOPQ7SlimmingHelper.IncludeMuonTriggerContent =
False
246 TOPQ7SlimmingHelper.IncludeEGammaTriggerContent =
False
247 TOPQ7SlimmingHelper.IncludeTauTriggerContent =
False
248 TOPQ7SlimmingHelper.IncludeEtMissTriggerContent =
False
249 TOPQ7SlimmingHelper.IncludeBJetTriggerContent =
False
250 TOPQ7SlimmingHelper.IncludeBPhysTriggerContent =
False
251 TOPQ7SlimmingHelper.IncludeMinBiasTriggerContent =
False
253 TOPQ7SlimmingHelper.IncludeBJetTriggerByYearContent =
True
257 if flags.Trigger.EDMVersion == 2:
258 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
259 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = TOPQ7SlimmingHelper,
260 OutputContainerPrefix =
"TrigMatch_",
261 TriggerList = TriggerListsHelper.Run2TriggerNamesTau)
262 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = TOPQ7SlimmingHelper,
263 OutputContainerPrefix =
"TrigMatch_",
264 TriggerList = TriggerListsHelper.Run2TriggerNamesNoTau)
266 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
267 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
268 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(TOPQ7SlimmingHelper)
271 from Campaigns.Utils
import getDataYear
272 if getDataYear(flags) >= 2024:
274 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddjFexRoIsToSlimmingHelper
275 AddjFexRoIsToSlimmingHelper(SlimmingHelper = TOPQ7SlimmingHelper)
276 elif getDataYear(flags) >= 2015:
278 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddLegacyL1JetRoIsToSlimmingHelper
279 AddLegacyL1JetRoIsToSlimmingHelper(SlimmingHelper = TOPQ7SlimmingHelper)
282 TOPQ7ItemList = TOPQ7SlimmingHelper.GetItemList()
283 acc.merge(OutputStreamCfg(flags,
"DAOD_"+name_tag, ItemList=TOPQ7ItemList, AcceptAlgs=[name_tag+
"Kernel"]))
284 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_"+name_tag, AcceptAlgs=[name_tag+
"Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))