17 """Configure the derivation framework driving algorithm (kernel) for PHYSVAL"""
18 acc = ComponentAccumulator()
21 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
22 acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs[
'TriggerListsHelper']))
25 from DerivationFrameworkLLP.PhysValLLPConfig
import PhysValLLPCfg
26 acc.merge(PhysValLLPCfg(flags))
28 if flags.Tracking.doLargeD0:
30 from DerivationFrameworkEGamma.EGammaLRTConfig
import EGammaLRTCfg
31 acc.merge(EGammaLRTCfg(flags))
33 from DerivationFrameworkLLP.LLPToolsConfig
import LRTElectronLHSelectorsCfg
34 acc.merge(LRTElectronLHSelectorsCfg(flags))
37 from DerivationFrameworkMuons.MuonsCommonConfig
import MuonsCommonCfg
38 acc.merge(MuonsCommonCfg(flags,
42 from JetRecConfig.StandardSmallRJets
import AntiKt4LCTopo
43 from JetRecConfig.JetRecConfig
import JetRecCfg
45 acc.merge(JetRecCfg(flags,AntiKt4LCTopo))
48 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
49 acc.addEventAlgo(DerivationKernel(name))
55 acc = ComponentAccumulator()
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 "MET_Baseline_AntiKt4EMTopo",
88 "MET_Baseline_AntiKt4EMPFlow",
94 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"]
96 PHYSVALSlimmingHelper.AllVariables = [
"EventInfo",
97 "Electrons",
"ForwardElectrons",
"LRTElectrons",
99 "Muons",
"CombinedMuonTrackParticles",
"ExtrapolatedMuonTrackParticles",
101 "MuonSpectrometerTrackParticles",
"MSOnlyExtrapolatedMuonTrackParticles",
"MuonSegments",
103 "InDetTrackParticles",
"InDetForwardTrackParticles",
104 "InDetLargeD0TrackParticles",
106 "AntiKt4EMPFlowJets",
116 "AntiKt10LCTopoJets",
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
117 "TruthParticles",
"TruthEvents",
"TruthVertices",
"MuonTruthParticles",
"egammaTruthParticles",
119 "MET_Truth",
"MET_TruthRegions",
120 "TruthElectrons",
"TruthMuons",
"TruthPhotons",
"TruthTaus",
"TruthNeutrinos",
"TruthBSM",
"TruthTop",
"TruthBoson",
121 "CaloCalTopoClusters",
"EMOriginTopoClusters",
"LCOriginTopoClusters",
122 "JetETMissChargedParticleFlowObjects",
"JetETMissNeutralParticleFlowObjects"]
126 AddPseudoTracks =
False
128 PseudoTrackContainers = [
129 "InDetPseudoTrackParticles",
130 "InDetReplacedWithPseudoTrackParticles",
131 "InDetReplacedWithPseudoFromBTrackParticles",
132 "InDetReplacedWithPseudoNotFromBTrackParticles",
133 "InDetPlusPseudoTrackParticles",
134 "InDetPlusPseudoFromBTrackParticles",
135 "InDetPlusPseudoNotFromBTrackParticles",
136 "InDetNoFakesTrackParticles",
137 "InDetNoFakesFromBTrackParticles",
138 "InDetNoFakesNotFromBTrackParticles",
139 "InDetSiSPSeededTracksParticles"]
140 PHYSVALSlimmingHelper.SmartCollections += PseudoTrackContainers
141 PHYSVALSlimmingHelper.AllVariables += PseudoTrackContainers
143 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
145 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
146 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
147 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
148 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
149 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
150 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
151 StaticContent += [
"xAOD::TauJetContainer#TauJets_MuonRM"]
152 StaticContent += [
"xAOD::TauJetAuxContainer#TauJets_MuonRMAux.-VertexedClusters"]
153 StaticContent += [
"xAOD::VertexContainer#TauSecondaryVertices_MuonRM"]
154 StaticContent += [
"xAOD::VertexAuxContainer#TauSecondaryVertices_MuonRMAux.-vxTrackAtVertex"]
156 for wp
in [
"",
"_LeptonsMod_LRTR3_1p0"]:
157 StaticContent += [
"xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices" + wp]
158 StaticContent += [
"xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVertices" + wp +
"Aux."]
161 PHYSVALSlimmingHelper.StaticContent = StaticContent
165 PHYSVALSlimmingHelper.AppendToDictionary = {
'TruthEvents':
'xAOD::TruthEventContainer',
'TruthEventsAux':
'xAOD::TruthEventAuxContainer',
166 'MET_Truth':
'xAOD::MissingETContainer',
'MET_TruthAux':
'xAOD::MissingETAuxContainer',
167 'TruthElectrons':
'xAOD::TruthParticleContainer',
'TruthElectronsAux':
'xAOD::TruthParticleAuxContainer',
168 'TruthMuons':
'xAOD::TruthParticleContainer',
'TruthMuonsAux':
'xAOD::TruthParticleAuxContainer',
169 'TruthPhotons':
'xAOD::TruthParticleContainer',
'TruthPhotonsAux':
'xAOD::TruthParticleAuxContainer',
170 'TruthTaus':
'xAOD::TruthParticleContainer',
'TruthTausAux':
'xAOD::TruthParticleAuxContainer',
171 'TruthNeutrinos':
'xAOD::TruthParticleContainer',
'TruthNeutrinosAux':
'xAOD::TruthParticleAuxContainer',
172 'TruthBSM':
'xAOD::TruthParticleContainer',
'TruthBSMAux':
'xAOD::TruthParticleAuxContainer',
173 'TruthBoson':
'xAOD::TruthParticleContainer',
'TruthBosonAux':
'xAOD::TruthParticleAuxContainer',
174 'TruthTop':
'xAOD::TruthParticleContainer',
'TruthTopAux':
'xAOD::TruthParticleAuxContainer',
175 'TruthForwardProtons':
'xAOD::TruthParticleContainer',
'TruthForwardProtonsAux':
'xAOD::TruthParticleAuxContainer',
176 'BornLeptons':
'xAOD::TruthParticleContainer',
'BornLeptonsAux':
'xAOD::TruthParticleAuxContainer',
177 'TruthBosonsWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBosonsWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
178 'TruthBosonsWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBosonsWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
179 'TruthBSMWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBSMWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
180 'TruthBSMWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBSMWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
181 'TruthHFWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthHFWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
182 'TruthHFWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthHFWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
183 'TruthCharm':
'xAOD::TruthParticleContainer',
'TruthCharmAux':
'xAOD::TruthParticleAuxContainer',
184 'TruthPrimaryVertices':
'xAOD::TruthVertexContainer',
'TruthPrimaryVerticesAux':
'xAOD::TruthVertexAuxContainer',
185 'AntiKt10LCTopoJets':
'xAOD::JetContainer',
'AntiKt10LCTopoJetsAux':
'xAOD::JetAuxContainer',
186 'EMOriginTopoClusters':
'xAOD::CaloClusterContainer',
'EMOriginTopoClustersAux':
'xAOD::ShallowAuxContainer',
187 'LCOriginTopoClusters':
'xAOD::CaloClusterContainer',
'LCOriginTopoClustersAux':
'xAOD::ShallowAuxContainer',
188 'GlobalChargedParticleFlowObjects':
'xAOD::FlowElementContainer',
'GlobalChargedParticleFlowObjectsAux':
'xAOD::FlowElementAuxContainer',
189 'GlobalNeutralParticleFlowObjects':
'xAOD::FlowElementContainer',
'GlobalNeutralParticleFlowObjectsAux':
'xAOD::FlowElementAuxContainer',
190 'CHSGChargedParticleFlowObjects':
'xAOD::FlowElementContainer',
'CHSGChargedParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
191 'CHSGNeutralParticleFlowObjects':
'xAOD::FlowElementContainer',
'CHSGNeutralParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer'}
193 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
194 addTruth3ContentToSlimmerTool(PHYSVALSlimmingHelper)
195 PHYSVALSlimmingHelper.AllVariables += [
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupEvents',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
196 PHYSVALSlimmingHelper.SmartCollections += [
'AntiKt4TruthJets']
198 if flags.Trigger.EDMVersion == 3:
200 from DerivationFrameworkFlavourTag.FtagDerivationConfig
import HLTJetFTagDecorationCfg
201 acc.merge(HLTJetFTagDecorationCfg(flags))
205 PHYSVALSlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
"LRTElectrons.TruthLink",
206 "Muons.TruthLink",
"MuonsLRT.TruthLink",
208 "TruthPrimaryVertices.t.x.y.z",
209 "TauNeutralParticleFlowObjects.pt.eta.phi.m.bdtPi0Score.nPi0Proto",
210 "TauChargedParticleFlowObjects.pt.eta.phi.m",
211 "TauNeutralParticleFlowObjects_MuonRM.pt.eta.phi.m.bdtPi0Score.nPi0Proto",
212 "TauChargedParticleFlowObjects_MuonRM.pt.eta.phi.m",
213 "TauNeutralParticleFlowObjects_EleRM.pt.eta.phi.m.bdtPi0Score.nPi0Proto",
214 "TauChargedParticleFlowObjects_EleRM.pt.eta.phi.m",
216 PHYSVALSlimmingHelper.ExtraVariables += GSFTracksCPDetailedContent
219 "is_selected",
"is_associated",
"is_svtrk_final",
"pt_wrtSV",
"eta_wrtSV",
220 "phi_wrtSV",
"d0_wrtSV",
"z0_wrtSV",
"errP_wrtSV",
"errd0_wrtSV",
221 "errz0_wrtSV",
"chi2_toSV"
224 for suffix
in [
"",
"_LeptonsMod_LRTR3_1p0"]:
225 PHYSVALSlimmingHelper.ExtraVariables += [
"InDetTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
226 PHYSVALSlimmingHelper.ExtraVariables += [
"InDetLargeD0TrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
227 PHYSVALSlimmingHelper.ExtraVariables += [
"GSFTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
228 PHYSVALSlimmingHelper.ExtraVariables += [
"LRTGSFTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
232 PHYSVALSlimmingHelper.IncludeTriggerNavigation =
True
233 PHYSVALSlimmingHelper.IncludeJetTriggerContent =
True
234 PHYSVALSlimmingHelper.IncludeMuonTriggerContent =
True
235 PHYSVALSlimmingHelper.IncludeEGammaTriggerContent =
True
236 PHYSVALSlimmingHelper.IncludeTauTriggerContent =
True
237 PHYSVALSlimmingHelper.IncludeEtMissTriggerContent =
True
238 PHYSVALSlimmingHelper.IncludeBJetTriggerContent =
True
239 PHYSVALSlimmingHelper.IncludeBPhysTriggerContent =
True
240 PHYSVALSlimmingHelper.IncludeMinBiasTriggerContent =
True
244 if flags.Trigger.EDMVersion == 2:
245 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
246 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = PHYSVALSlimmingHelper,
247 OutputContainerPrefix =
"TrigMatch_",
248 TriggerList = PHYSVALTriggerListsHelper.Run2TriggerNamesTau)
249 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = PHYSVALSlimmingHelper,
250 OutputContainerPrefix =
"TrigMatch_",
251 TriggerList = PHYSVALTriggerListsHelper.Run2TriggerNamesNoTau)
253 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
254 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
255 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(PHYSVALSlimmingHelper)
258 PHYSVALSlimmingHelper.IncludeFullTriggerEDMLevel =
"ESD"
261 PHYSVALItemList = PHYSVALSlimmingHelper.GetItemList()
262 acc.merge(OutputStreamCfg(flags,
"DAOD_PHYSVAL", ItemList=PHYSVALItemList, AcceptAlgs=[
"PHYSVALKernel"]))
263 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_PHYSVAL", AcceptAlgs=[
"PHYSVALKernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))