10 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
11 from AthenaConfiguration.ComponentFactory
import CompFactory
12 from DerivationFrameworkEGamma.ElectronsCPDetailedContent
import GSFTracksCPDetailedContent
13 from AthenaConfiguration.Enums
import LHCPeriod, MetadataCategory
17 """Configure the derivation framework driving algorithm (kernel) for PHYSVAL"""
21 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
25 if flags.Tracking.doLargeD0:
26 from DerivationFrameworkLLP.PhysValLLPConfig
import PhysValLLPCfg
30 from DerivationFrameworkEGamma.EGammaLRTConfig
import EGammaLRTCfg
33 from DerivationFrameworkLLP.LLPToolsConfig
import LRTElectronLHSelectorsCfg
37 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
42 from JetRecConfig.StandardSmallRJets
import AntiKt4LCTopo
43 from JetRecConfig.JetRecConfig
import JetRecCfg
48 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
61 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
62 PHYSVALTriggerListsHelper = TriggerListsHelper(flags)
65 acc.merge(
PHYSVALKernelCfg(flags, name=
"PHYSVALKernel", StreamName =
'StreamDAOD_PHYSVAL', TriggerListsHelper = PHYSVALTriggerListsHelper))
70 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
71 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
72 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
74 PHYSVALSlimmingHelper =
SlimmingHelper(
"PHYSVALSlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
75 PHYSVALSlimmingHelper.SmartCollections = [
"EventInfo",
82 "InDetTrackParticles",
83 "InDetLargeD0TrackParticles",
87 "BTagging_AntiKt4EMPFlow",
88 "BTagging_AntiKtVR30Rmax4Rmin02Track",
89 "MET_Baseline_AntiKt4EMTopo",
90 "MET_Baseline_AntiKt4EMPFlow",
96 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
97 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
98 "AntiKtVR30Rmax4Rmin02PV0TrackJets"]
100 PHYSVALSlimmingHelper.AllVariables = [
"EventInfo",
101 "Electrons",
"ForwardElectrons",
"LRTElectrons",
103 "Muons",
"CombinedMuonTrackParticles",
"ExtrapolatedMuonTrackParticles",
105 "MuonSpectrometerTrackParticles",
"MSOnlyExtrapolatedMuonTrackParticles",
"MuonSegments",
107 "InDetTrackParticles",
"InDetForwardTrackParticles",
108 "InDetLargeD0TrackParticles",
110 "AntiKt4EMPFlowJets",
112 "BTagging_AntiKt4EMPFlow",
113 "BTagging_AntiKt4EMTopo",
114 "BTagging_AntiKtVR30Rmax4Rmin02Track",
115 "BTagging_AntiKt4EMPFlowJFVtx",
116 "BTagging_AntiKt4EMPFlowJFVtxFlip",
117 "BTagging_AntiKt4EMPFlowSecVtx",
118 "BTagging_AntiKt4EMPFlowSecVtxFlip",
127 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
"AntiKt10LCTopoJets",
"AntiKt4LCTopoJets",
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
128 "TruthParticles",
"TruthEvents",
"TruthVertices",
"MuonTruthParticles",
"egammaTruthParticles",
130 "MET_Truth",
"MET_TruthRegions",
131 "TruthElectrons",
"TruthMuons",
"TruthPhotons",
"TruthTaus",
"TruthNeutrinos",
"TruthBSM",
"TruthTop",
"TruthBoson",
132 "CaloCalTopoClusters",
"EMOriginTopoClusters",
"LCOriginTopoClusters",
133 "JetETMissChargedParticleFlowObjects",
"JetETMissNeutralParticleFlowObjects"]
135 if flags.GeoModel.Run >= LHCPeriod.Run4:
136 PHYSVALSlimmingHelper.AllVariables += [
"BTagging_AntiKt4EMTopoJFVtx",
137 "BTagging_AntiKt4EMTopoJFVtxFlip",
138 "BTagging_AntiKt4EMTopoSecVtx",
139 "BTagging_AntiKt4EMTopoSecVtxFlip"]
142 AddPseudoTracks =
False
144 PseudoTrackContainers = [
145 "InDetPseudoTrackParticles",
146 "InDetReplacedWithPseudoTrackParticles",
147 "InDetReplacedWithPseudoFromBTrackParticles",
148 "InDetReplacedWithPseudoNotFromBTrackParticles",
149 "InDetPlusPseudoTrackParticles",
150 "InDetPlusPseudoFromBTrackParticles",
151 "InDetPlusPseudoNotFromBTrackParticles",
152 "InDetNoFakesTrackParticles",
153 "InDetNoFakesFromBTrackParticles",
154 "InDetNoFakesNotFromBTrackParticles",
155 "InDetSiSPSeededTracksParticles"]
156 PHYSVALSlimmingHelper.SmartCollections += PseudoTrackContainers
157 PHYSVALSlimmingHelper.AllVariables += PseudoTrackContainers
159 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
161 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
162 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
163 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
164 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
165 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
166 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
167 StaticContent += [
"xAOD::VertexAuxContainer#BTagging_AntiKt4EMPFlowSecVtxAux.-vxTrackAtVertex"]
168 StaticContent += [
"xAOD::TauJetContainer#TauJets_MuonRM"]
169 StaticContent += [
"xAOD::TauJetAuxContainer#TauJets_MuonRMAux.-VertexedClusters"]
170 StaticContent += [
"xAOD::VertexContainer#TauSecondaryVertices_MuonRM"]
171 StaticContent += [
"xAOD::VertexAuxContainer#TauSecondaryVertices_MuonRMAux.-vxTrackAtVertex"]
173 for wp
in [
"",
"_LeptonsMod_LRTR3_1p0"]:
174 StaticContent += [
"xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices" + wp]
175 StaticContent += [
"xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVertices" + wp +
"Aux."]
177 if flags.BTagging.RunFlipTaggers
is True:
178 StaticContent += [
"xAOD::VertexAuxContainer#BTagging_AntiKt4EMPFlowSecVtxFlipAux.-vxTrackAtVertex"]
180 if flags.GeoModel.Run >= LHCPeriod.Run4:
181 StaticContent += [
"xAOD::VertexAuxContainer#BTagging_AntiKt4EMTopoSecVtxAux.-vxTrackAtVertex"]
182 if flags.BTagging.RunFlipTaggers
is True:
183 StaticContent += [
"xAOD::VertexAuxContainer#BTagging_AntiKt4EMTopoSecVtxFlipAux.-vxTrackAtVertex"]
186 PHYSVALSlimmingHelper.StaticContent = StaticContent
190 PHYSVALSlimmingHelper.AppendToDictionary = {
'TruthEvents':
'xAOD::TruthEventContainer',
'TruthEventsAux':
'xAOD::TruthEventAuxContainer',
191 'MET_Truth':
'xAOD::MissingETContainer',
'MET_TruthAux':
'xAOD::MissingETAuxContainer',
192 'TruthElectrons':
'xAOD::TruthParticleContainer',
'TruthElectronsAux':
'xAOD::TruthParticleAuxContainer',
193 'TruthMuons':
'xAOD::TruthParticleContainer',
'TruthMuonsAux':
'xAOD::TruthParticleAuxContainer',
194 'TruthPhotons':
'xAOD::TruthParticleContainer',
'TruthPhotonsAux':
'xAOD::TruthParticleAuxContainer',
195 'TruthTaus':
'xAOD::TruthParticleContainer',
'TruthTausAux':
'xAOD::TruthParticleAuxContainer',
196 'TruthNeutrinos':
'xAOD::TruthParticleContainer',
'TruthNeutrinosAux':
'xAOD::TruthParticleAuxContainer',
197 'TruthBSM':
'xAOD::TruthParticleContainer',
'TruthBSMAux':
'xAOD::TruthParticleAuxContainer',
198 'TruthBoson':
'xAOD::TruthParticleContainer',
'TruthBosonAux':
'xAOD::TruthParticleAuxContainer',
199 'TruthTop':
'xAOD::TruthParticleContainer',
'TruthTopAux':
'xAOD::TruthParticleAuxContainer',
200 'TruthForwardProtons':
'xAOD::TruthParticleContainer',
'TruthForwardProtonsAux':
'xAOD::TruthParticleAuxContainer',
201 'BornLeptons':
'xAOD::TruthParticleContainer',
'BornLeptonsAux':
'xAOD::TruthParticleAuxContainer',
202 'TruthBosonsWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBosonsWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
203 'TruthBosonsWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBosonsWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
204 'TruthBSMWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBSMWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
205 'TruthBSMWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBSMWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
206 'TruthHFWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthHFWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
207 'TruthHFWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthHFWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
208 'TruthCharm':
'xAOD::TruthParticleContainer',
'TruthCharmAux':
'xAOD::TruthParticleAuxContainer',
209 'TruthPrimaryVertices':
'xAOD::TruthVertexContainer',
'TruthPrimaryVerticesAux':
'xAOD::TruthVertexAuxContainer',
210 'AntiKt10TruthTrimmedPtFrac5SmallR20Jets':
'xAOD::JetContainer',
'AntiKt10TruthTrimmedPtFrac5SmallR20JetsAux':
'xAOD::JetAuxContainer',
211 'AntiKt10LCTopoJets':
'xAOD::JetContainer',
'AntiKt10LCTopoJetsAux':
'xAOD::JetAuxContainer',
212 'BTagging_AntiKtVR30Rmax4Rmin02Track':
'xAOD::BTaggingContainer',
'BTagging_AntiKtVR30Rmax4Rmin02TrackAux':
'xAOD::BTaggingAuxContainer',
213 'EMOriginTopoClusters':
'xAOD::CaloClusterContainer',
'EMOriginTopoClustersAux':
'xAOD::ShallowAuxContainer',
214 'LCOriginTopoClusters':
'xAOD::CaloClusterContainer',
'LCOriginTopoClustersAux':
'xAOD::ShallowAuxContainer',
215 'BTagging_AntiKt4EMPFlowJFVtx':
'xAOD::BTagVertexContainer',
'BTagging_AntiKt4EMPFlowJFVtxAux':
'xAOD::BTagVertexAuxContainer',
216 'BTagging_AntiKt4EMPFlowSecVtx':
'xAOD::VertexContainer',
'BTagging_AntiKt4EMPFlowSecVtxAux':
'xAOD::VertexAuxContainer',
217 'GlobalChargedParticleFlowObjects':
'xAOD::FlowElementContainer',
'GlobalChargedParticleFlowObjectsAux':
'xAOD::FlowElementAuxContainer',
218 'GlobalNeutralParticleFlowObjects':
'xAOD::FlowElementContainer',
'GlobalNeutralParticleFlowObjectsAux':
'xAOD::FlowElementAuxContainer',
219 'CHSGChargedParticleFlowObjects':
'xAOD::FlowElementContainer',
'CHSGChargedParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
220 'CHSGNeutralParticleFlowObjects':
'xAOD::FlowElementContainer',
'CHSGNeutralParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
221 'BTagging_AntiKt4EMPFlowJFVtxFlip':
'xAOD::BTagVertexContainer',
'BTagging_AntiKt4EMPFlowJFVtxFlipAux':
'xAOD::BTagVertexAuxContainer',
222 'BTagging_AntiKt4EMPFlowSecVtxFlip':
'xAOD::VertexContainer',
'BTagging_AntiKt4EMPFlowSecVtxFlipAux':
'xAOD::VertexAuxContainer'}
224 if flags.GeoModel.Run >= LHCPeriod.Run4:
225 PHYSVALSlimmingHelper.AppendToDictionary.update({
'BTagging_AntiKt4EMTopoJFVtx':
'xAOD::BTagVertexContainer',
'BTagging_AntiKt4EMTopoJFVtxAux':
'xAOD::BTagVertexAuxContainer',
226 'BTagging_AntiKt4EMTopoSecVtx':
'xAOD::VertexContainer',
'BTagging_AntiKt4EMTopoSecVtxAux':
'xAOD::VertexAuxContainer',
227 'BTagging_AntiKt4EMTopoJFVtxFlip':
'xAOD::BTagVertexContainer',
'BTagging_AntiKt4EMTopoJFVtxFlipAux':
'xAOD::BTagVertexAuxContainer',
228 'BTagging_AntiKt4EMTopoSecVtxFlip':
'xAOD::VertexContainer',
'BTagging_AntiKt4EMTopoSecVtxFlipAux':
'xAOD::VertexAuxContainer'})
230 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
232 PHYSVALSlimmingHelper.AllVariables += [
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupEvents',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
233 PHYSVALSlimmingHelper.SmartCollections += [
'AntiKt4TruthJets']
235 if flags.Trigger.EDMVersion == 3:
237 from DerivationFrameworkFlavourTag.FtagDerivationConfig
import HLTJetFTagDecorationCfg
242 PHYSVALSlimmingHelper.ExtraVariables += [
"AntiKt10TruthTrimmedPtFrac5SmallR20Jets.Tau1_wta.Tau2_wta.Tau3_wta.D2.GhostBHadronsFinalCount",
243 "Electrons.TruthLink",
"LRTElectrons.TruthLink",
244 "Muons.TruthLink",
"MuonsLRT.TruthLink",
246 "AntiKt2PV0TrackJets.pt.eta.phi.m",
247 "AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID",
248 "AntiKt4EMPFlowJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID.DFCommonJets_fJvt",
249 "TruthPrimaryVertices.t.x.y.z",
250 "TauNeutralParticleFlowObjects.pt.eta.phi.m.bdtPi0Score.nPi0Proto",
251 "TauChargedParticleFlowObjects.pt.eta.phi.m",
252 "TauNeutralParticleFlowObjects_MuonRM.pt.eta.phi.m.bdtPi0Score.nPi0Proto",
253 "TauChargedParticleFlowObjects_MuonRM.pt.eta.phi.m",
254 "TauNeutralParticleFlowObjects_EleRM.pt.eta.phi.m.bdtPi0Score.nPi0Proto",
255 "TauChargedParticleFlowObjects_EleRM.pt.eta.phi.m",
257 PHYSVALSlimmingHelper.ExtraVariables += GSFTracksCPDetailedContent
260 "is_selected",
"is_associated",
"is_svtrk_final",
"pt_wrtSV",
"eta_wrtSV",
261 "phi_wrtSV",
"d0_wrtSV",
"z0_wrtSV",
"errP_wrtSV",
"errd0_wrtSV",
262 "errz0_wrtSV",
"chi2_toSV"
265 for suffix
in [
"",
"_LeptonsMod_LRTR3_1p0"]:
266 PHYSVALSlimmingHelper.ExtraVariables += [
"InDetTrackParticles." +
'.'.
join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
267 PHYSVALSlimmingHelper.ExtraVariables += [
"InDetLargeD0TrackParticles." +
'.'.
join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
268 PHYSVALSlimmingHelper.ExtraVariables += [
"GSFTrackParticles." +
'.'.
join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
269 PHYSVALSlimmingHelper.ExtraVariables += [
"LRTGSFTrackParticles." +
'.'.
join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
273 PHYSVALSlimmingHelper.IncludeTriggerNavigation =
True
274 PHYSVALSlimmingHelper.IncludeJetTriggerContent =
True
275 PHYSVALSlimmingHelper.IncludeMuonTriggerContent =
True
276 PHYSVALSlimmingHelper.IncludeEGammaTriggerContent =
True
277 PHYSVALSlimmingHelper.IncludeTauTriggerContent =
True
278 PHYSVALSlimmingHelper.IncludeEtMissTriggerContent =
True
279 PHYSVALSlimmingHelper.IncludeBJetTriggerContent =
True
280 PHYSVALSlimmingHelper.IncludeBPhysTriggerContent =
True
281 PHYSVALSlimmingHelper.IncludeMinBiasTriggerContent =
True
285 if flags.Trigger.EDMVersion == 2:
286 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
288 OutputContainerPrefix =
"TrigMatch_",
289 TriggerList = PHYSVALTriggerListsHelper.Run2TriggerNamesTau)
291 OutputContainerPrefix =
"TrigMatch_",
292 TriggerList = PHYSVALTriggerListsHelper.Run2TriggerNamesNoTau)
294 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
295 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
299 PHYSVALSlimmingHelper.IncludeFullTriggerEDMLevel =
"ESD"
302 PHYSVALItemList = PHYSVALSlimmingHelper.GetItemList()
303 acc.merge(
OutputStreamCfg(flags,
"DAOD_PHYSVAL", ItemList=PHYSVALItemList, AcceptAlgs=[
"PHYSVALKernel"]))
304 acc.merge(
SetupMetaDataForStreamCfg(flags,
"DAOD_PHYSVAL", AcceptAlgs=[
"PHYSVALKernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))