18 """Configure the derivation framework driving algorithm (kernel) for PHYS"""
19 acc = ComponentAccumulator()
21 from TrkConfig.VertexFindingFlags
import VertexSortingSetup
22 if flags.Tracking.PriVertex.sortingSetup
is VertexSortingSetup.GNNSorting:
23 from DerivationFrameworkPhys.GNNVertexConfig
import GNNVertexCfg
24 acc.merge(GNNVertexCfg(flags))
27 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
28 acc.merge(PhysCommonAugmentationsCfg(
30 TriggerListsHelper = kwargs[
'TriggerListsHelper']
35 nametag = name.replace(
'Kernel',
'')
37 'TrackParticleThinningToolName' : nametag+
"TrackParticleThinningTool",
38 'MuonTPThinningToolName' : nametag+
"MuonTPThinningTool",
39 'TauJetThinningToolName' : nametag+
"TauJetThinningTool",
40 'TauJets_MuonRMThinningToolName' : nametag+
"TauJets_MuonRMThinningTool",
41 'DiTauThinningToolName' : nametag+
"DiTauThinningTool",
42 'DiTauTPThinningToolName' : nametag+
"DiTauTPThinningTool",
43 'DiTauLowPtThinningToolName' : nametag+
"DiTauLowPtThinningTool",
44 'DiTauLowPtTPThinningToolName' : nametag+
"DiTauLowPtTPThinningTool",
47 if flags.Tau.TauEleRM_isAvailable:
48 thinningToolsArgs[
'TauJets_EleRMThinningToolName'] = nametag+
"TauJets_EleRMThinningTool"
50 from DerivationFrameworkPhys.PhysCommonThinningConfig
import PhysCommonThinningCfg
51 acc.merge(PhysCommonThinningCfg(flags, StreamName = kwargs[
'StreamName'], **thinningToolsArgs))
54 for key
in thinningToolsArgs:
55 thinningTools.append(acc.getPublicTool(thinningToolsArgs[key]))
58 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
59 acc.addEventAlgo(DerivationKernel(name, ThinningTools = thinningTools))
63def PHYSCoreCfg(flags, name_tag='PHYS', StreamName='StreamDAOD_PHYS', TriggerListsHelper=None, addExtraVariables=None):
65 if TriggerListsHelper
is None:
66 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
67 TriggerListsHelper = TriggerListsHelper(flags)
69 acc = ComponentAccumulator()
72 from DerivationFrameworkHiggs.HiggsPhysContent
import HiggsAugmentationAlgsCfg
73 acc.merge(HiggsAugmentationAlgsCfg(flags))
77 from IsolationSelection.IsolationSelectionConfig
import IsoCloseByAlgsCfg
78 acc.merge(IsoCloseByAlgsCfg(flags, isPhysLite =
False, stream_name = StreamName))
81 from LeptonTaggers.LeptonTaggersConfig
import DecoratePLITAlgsCfg
82 acc.merge(DecoratePLITAlgsCfg(flags))
87 from DerivationFrameworkMCTruth.HFClassificationCommonConfig
import HFClassificationCommonCfg
88 acc.merge(HFClassificationCommonCfg(flags))
93 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
94 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
95 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
97 PHYSSlimmingHelper =
SlimmingHelper(name_tag+
"SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
98 PHYSSlimmingHelper.SmartCollections = [
"EventInfo",
103 "InDetTrackParticles",
105 "AntiKt4EMPFlowJets",
106 "MET_Baseline_AntiKt4EMTopo",
107 "MET_Baseline_AntiKt4EMPFlow",
112 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
113 "AntiKtVR30Rmax4Rmin02PV0TrackJets",
115 if flags.Tau.TauEleRM_isAvailable:
116 PHYSSlimmingHelper.SmartCollections.append(
"TauJets_EleRM")
118 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
120 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
121 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
122 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
123 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
124 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
125 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
126 StaticContent += [
"xAOD::VertexContainer#NVSI_SecVrt_Tight"]
127 StaticContent += [
"xAOD::VertexAuxContainer#NVSI_SecVrt_TightAux."+excludedVertexAuxData]
129 PHYSSlimmingHelper.StaticContent = StaticContent
132 PHYSSlimmingHelper.ExtraVariables += [
"AntiKt4EMTopoJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.IsoFixedCone5PtPUsub",
133 "AntiKt4EMPFlowJets.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.isJvtHS.isJvtPU.IsoFixedCone5PtPUsub",
134 "TruthPrimaryVertices.t.x.y.z",
135 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
136 "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification.HF_ClassificationC5J20.HF_ClassificationC5J25.HF_ClassificationC15J20.HF_ClassificationC15J25",
137 "TauJets.dRmax.etOverPtLeadTrk",
138 "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
139 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
140 "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey",
141 "HLT_AnomDet_ComboHypo.adScore"]
143 if addExtraVariables:
144 PHYSSlimmingHelper.ExtraVariables += addExtraVariables
147 from TrkConfig.VertexFindingFlags
import VertexSortingSetup
148 if flags.Tracking.PriVertex.sortingSetup
is VertexSortingSetup.GNNSorting:
149 PHYSSlimmingHelper.ExtraVariables += [
"PrimaryVertices.gnnScore"]
151 if flags.Tau.TauEleRM_isAvailable:
152 PHYSSlimmingHelper.ExtraVariables += [
"TauJets_EleRM.dRmax.etOverPtLeadTrk"]
155 from LeptonTaggers.LeptonTaggersConfig
import GetExtraPLITVariablesForDxAOD
156 PHYSSlimmingHelper.ExtraVariables += GetExtraPLITVariablesForDxAOD()
161 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
162 addTruth3ContentToSlimmerTool(PHYSSlimmingHelper)
163 PHYSSlimmingHelper.AllVariables += [
'TruthLHEParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
164 PHYSSlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
167 "AntiKt4TruthDressedWZJets.IsoFixedCone5Pt.HFHadronOriginID",
168 "TruthHFWithDecayParticles.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.parentLinks.childLinks.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status",
169 "TruthHFWithDecayVertices.incomingParticleLinks.outgoingParticleLinks.uid.status.x.y.z.t",
170 "TruthCharm.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.parentLinks.childLinks.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status.barcode.polarizationPhi.polarizationTheta",
171 "TruthPileupParticles.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status.barcode.PVz.pileupEventNumber.parentHadronID"]
173 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import AddTauAndDownstreamParticlesCfg
174 acc.merge(AddTauAndDownstreamParticlesCfg(flags))
175 PHYSSlimmingHelper.ExtraVariables += [
"TruthTausWithDecayParticles.prodVtxLink.prodVtxLink.prodVtxLink.decayVtxLink.decayVtxLink.decayVtxLink.m.px.py.pz.e.pdgId.Classification.uid.classifierParticleOrigin.classifierParticleType.classifierParticleOutCome.status",
176 "TruthTausWithDecayVertices.incomingParticleLinks.outgoingParticleLinks.uid.status.x.y.z.t"]
179 PHYSSlimmingHelper.ExtraVariables += [
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_MatchedTruthJetMass",
180 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_MatchedTruthJetPt",
181 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_MatchedTruthJetEta",
182 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_MatchedTruthJetPhi",
183 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_MatchedTruthJetDR",
184 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_MatchedTruthJetGF",
185 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_MatchedTruthGroomedJetMass",
186 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10TruthLabel_R22v1_MatchedTruthGroomedJetPt",
187 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_MatchedTruthJetMass",
188 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_MatchedTruthJetPt",
189 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_MatchedTruthJetEta",
190 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_MatchedTruthJetPhi",
191 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_MatchedTruthJetDR",
192 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_MatchedTruthJetGF",
193 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_MatchedTruthGroomedJetMass",
194 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.R10WZTruthLabel_R22v1_MatchedTruthGroomedJetPt"]
197 PHYSSlimmingHelper.ExtraVariables += [
"AntiKt4EMPFlowJets.R4TruthLabel_MatchedTruthJetMass",
198 "AntiKt4EMPFlowJets.R4TruthLabel_MatchedTruthJetPt",
199 "AntiKt4EMPFlowJets.R4TruthLabel_MatchedTruthJetEta",
200 "AntiKt4EMPFlowJets.R4TruthLabel_MatchedTruthJetPhi",
201 "AntiKt4EMPFlowJets.R4TruthLabel_MatchedTruthJetDR",
202 "AntiKt4EMPFlowJets.R4TruthLabel_MatchedTruthJetGF"]
205 from DerivationFrameworkHiggs.HiggsPhysContent
import setupHiggsSlimmingVariables
206 setupHiggsSlimmingVariables(flags, PHYSSlimmingHelper)
209 PHYSSlimmingHelper.AllVariables += [
'AFPSiHitContainer',
'AFPToFHitContainer' ]
212 PHYSSlimmingHelper.AppendToDictionary.update({
'MET_Core_AntiKt4EMPFlowHR':
'xAOD::MissingETContainer',
'MET_Core_AntiKt4EMPFlowHRAux':
'xAOD::MissingETAuxContainer',
213 'METAssoc_AntiKt4EMPFlowHR':
'xAOD::MissingETAssociationMap',
'METAssoc_AntiKt4EMPFlowHRAux':
'xAOD::MissingETAuxAssociationMap'})
215 PHYSSlimmingHelper.AllVariables += [
'METAssoc_AntiKt4EMPFlowHR']
217 PHYSSlimmingHelper.ExtraVariables += [
'Muons.UEcorr_Pt',
'Electrons.UEcorr_Pt',
'MET_Core_AntiKt4EMPFlowHR.name.mpx.mpy.sumet.source']
220 PHYSSlimmingHelper.IncludeTriggerNavigation =
False
221 PHYSSlimmingHelper.IncludeJetTriggerContent =
False
222 PHYSSlimmingHelper.IncludeMuonTriggerContent =
False
223 PHYSSlimmingHelper.IncludeEGammaTriggerContent =
False
224 PHYSSlimmingHelper.IncludeTauTriggerContent =
False
225 PHYSSlimmingHelper.IncludeEtMissTriggerContent =
False
226 PHYSSlimmingHelper.IncludeBJetTriggerContent =
False
227 PHYSSlimmingHelper.IncludeBPhysTriggerContent =
False
228 PHYSSlimmingHelper.IncludeMinBiasTriggerContent =
False
230 PHYSSlimmingHelper.IncludeBJetTriggerByYearContent =
True
234 if flags.Trigger.EDMVersion == 2:
235 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
236 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = PHYSSlimmingHelper,
237 OutputContainerPrefix =
"TrigMatch_",
238 TriggerList = TriggerListsHelper.Run2TriggerNamesTau)
239 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = PHYSSlimmingHelper,
240 OutputContainerPrefix =
"TrigMatch_",
241 TriggerList = TriggerListsHelper.Run2TriggerNamesNoTau)
243 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
244 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
245 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(PHYSSlimmingHelper)
248 from Campaigns.Utils
import getDataYear
249 if getDataYear(flags) >= 2024:
251 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddjFexRoIsToSlimmingHelper
252 AddjFexRoIsToSlimmingHelper(SlimmingHelper = PHYSSlimmingHelper)
253 elif getDataYear(flags) >= 2015:
255 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddLegacyL1JetRoIsToSlimmingHelper
256 AddLegacyL1JetRoIsToSlimmingHelper(SlimmingHelper = PHYSSlimmingHelper)
259 PHYSItemList = PHYSSlimmingHelper.GetItemList()
260 acc.merge(OutputStreamCfg(flags,
"DAOD_"+name_tag, ItemList=PHYSItemList, AcceptAlgs=[name_tag+
"Kernel"]))
261 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_"+name_tag, AcceptAlgs=[name_tag+
"Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))