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 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
95 "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"]
97 PHYSVALSlimmingHelper.AllVariables = [
"EventInfo",
98 "Electrons",
"ForwardElectrons",
"LRTElectrons",
100 "Muons",
"CombinedMuonTrackParticles",
"ExtrapolatedMuonTrackParticles",
102 "MuonSpectrometerTrackParticles",
"MSOnlyExtrapolatedMuonTrackParticles",
"MuonSegments",
104 "InDetTrackParticles",
"InDetForwardTrackParticles",
105 "InDetLargeD0TrackParticles",
107 "AntiKt4EMPFlowJets",
117 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets",
"AntiKt10LCTopoJets",
"AntiKt4LCTopoJets",
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
118 "TruthParticles",
"TruthEvents",
"TruthVertices",
"MuonTruthParticles",
"egammaTruthParticles",
120 "MET_Truth",
"MET_TruthRegions",
121 "TruthElectrons",
"TruthMuons",
"TruthPhotons",
"TruthTaus",
"TruthNeutrinos",
"TruthBSM",
"TruthTop",
"TruthBoson",
122 "CaloCalTopoClusters",
"EMOriginTopoClusters",
"LCOriginTopoClusters",
123 "JetETMissChargedParticleFlowObjects",
"JetETMissNeutralParticleFlowObjects"]
127 AddPseudoTracks =
False
129 PseudoTrackContainers = [
130 "InDetPseudoTrackParticles",
131 "InDetReplacedWithPseudoTrackParticles",
132 "InDetReplacedWithPseudoFromBTrackParticles",
133 "InDetReplacedWithPseudoNotFromBTrackParticles",
134 "InDetPlusPseudoTrackParticles",
135 "InDetPlusPseudoFromBTrackParticles",
136 "InDetPlusPseudoNotFromBTrackParticles",
137 "InDetNoFakesTrackParticles",
138 "InDetNoFakesFromBTrackParticles",
139 "InDetNoFakesNotFromBTrackParticles",
140 "InDetSiSPSeededTracksParticles"]
141 PHYSVALSlimmingHelper.SmartCollections += PseudoTrackContainers
142 PHYSVALSlimmingHelper.AllVariables += PseudoTrackContainers
144 excludedVertexAuxData =
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"
146 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
147 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
148 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
149 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
150 StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
151 StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]
152 StaticContent += [
"xAOD::TauJetContainer#TauJets_MuonRM"]
153 StaticContent += [
"xAOD::TauJetAuxContainer#TauJets_MuonRMAux.-VertexedClusters"]
154 StaticContent += [
"xAOD::VertexContainer#TauSecondaryVertices_MuonRM"]
155 StaticContent += [
"xAOD::VertexAuxContainer#TauSecondaryVertices_MuonRMAux.-vxTrackAtVertex"]
157 for wp
in [
"",
"_LeptonsMod_LRTR3_1p0"]:
158 StaticContent += [
"xAOD::VertexContainer#VrtSecInclusive_SecondaryVertices" + wp]
159 StaticContent += [
"xAOD::VertexAuxContainer#VrtSecInclusive_SecondaryVertices" + wp +
"Aux."]
162 PHYSVALSlimmingHelper.StaticContent = StaticContent
166 PHYSVALSlimmingHelper.AppendToDictionary = {
'TruthEvents':
'xAOD::TruthEventContainer',
'TruthEventsAux':
'xAOD::TruthEventAuxContainer',
167 'MET_Truth':
'xAOD::MissingETContainer',
'MET_TruthAux':
'xAOD::MissingETAuxContainer',
168 'TruthElectrons':
'xAOD::TruthParticleContainer',
'TruthElectronsAux':
'xAOD::TruthParticleAuxContainer',
169 'TruthMuons':
'xAOD::TruthParticleContainer',
'TruthMuonsAux':
'xAOD::TruthParticleAuxContainer',
170 'TruthPhotons':
'xAOD::TruthParticleContainer',
'TruthPhotonsAux':
'xAOD::TruthParticleAuxContainer',
171 'TruthTaus':
'xAOD::TruthParticleContainer',
'TruthTausAux':
'xAOD::TruthParticleAuxContainer',
172 'TruthNeutrinos':
'xAOD::TruthParticleContainer',
'TruthNeutrinosAux':
'xAOD::TruthParticleAuxContainer',
173 'TruthBSM':
'xAOD::TruthParticleContainer',
'TruthBSMAux':
'xAOD::TruthParticleAuxContainer',
174 'TruthBoson':
'xAOD::TruthParticleContainer',
'TruthBosonAux':
'xAOD::TruthParticleAuxContainer',
175 'TruthTop':
'xAOD::TruthParticleContainer',
'TruthTopAux':
'xAOD::TruthParticleAuxContainer',
176 'TruthForwardProtons':
'xAOD::TruthParticleContainer',
'TruthForwardProtonsAux':
'xAOD::TruthParticleAuxContainer',
177 'BornLeptons':
'xAOD::TruthParticleContainer',
'BornLeptonsAux':
'xAOD::TruthParticleAuxContainer',
178 'TruthBosonsWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBosonsWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
179 'TruthBosonsWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBosonsWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
180 'TruthBSMWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthBSMWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
181 'TruthBSMWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthBSMWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
182 'TruthHFWithDecayParticles':
'xAOD::TruthParticleContainer',
'TruthHFWithDecayParticlesAux':
'xAOD::TruthParticleAuxContainer',
183 'TruthHFWithDecayVertices':
'xAOD::TruthVertexContainer',
'TruthHFWithDecayVerticesAux':
'xAOD::TruthVertexAuxContainer',
184 'TruthCharm':
'xAOD::TruthParticleContainer',
'TruthCharmAux':
'xAOD::TruthParticleAuxContainer',
185 'TruthPrimaryVertices':
'xAOD::TruthVertexContainer',
'TruthPrimaryVerticesAux':
'xAOD::TruthVertexAuxContainer',
186 'AntiKt10TruthTrimmedPtFrac5SmallR20Jets':
'xAOD::JetContainer',
'AntiKt10TruthTrimmedPtFrac5SmallR20JetsAux':
'xAOD::JetAuxContainer',
187 'AntiKt10LCTopoJets':
'xAOD::JetContainer',
'AntiKt10LCTopoJetsAux':
'xAOD::JetAuxContainer',
188 'EMOriginTopoClusters':
'xAOD::CaloClusterContainer',
'EMOriginTopoClustersAux':
'xAOD::ShallowAuxContainer',
189 'LCOriginTopoClusters':
'xAOD::CaloClusterContainer',
'LCOriginTopoClustersAux':
'xAOD::ShallowAuxContainer',
190 'GlobalChargedParticleFlowObjects':
'xAOD::FlowElementContainer',
'GlobalChargedParticleFlowObjectsAux':
'xAOD::FlowElementAuxContainer',
191 'GlobalNeutralParticleFlowObjects':
'xAOD::FlowElementContainer',
'GlobalNeutralParticleFlowObjectsAux':
'xAOD::FlowElementAuxContainer',
192 'CHSGChargedParticleFlowObjects':
'xAOD::FlowElementContainer',
'CHSGChargedParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer',
193 'CHSGNeutralParticleFlowObjects':
'xAOD::FlowElementContainer',
'CHSGNeutralParticleFlowObjectsAux':
'xAOD::ShallowAuxContainer'}
195 from DerivationFrameworkMCTruth.MCTruthCommonConfig
import addTruth3ContentToSlimmerTool
196 addTruth3ContentToSlimmerTool(PHYSVALSlimmingHelper)
197 PHYSVALSlimmingHelper.AllVariables += [
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupEvents',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
198 PHYSVALSlimmingHelper.SmartCollections += [
'AntiKt4TruthJets']
200 if flags.Trigger.EDMVersion == 3:
202 from DerivationFrameworkFlavourTag.FtagDerivationConfig
import HLTJetFTagDecorationCfg
203 acc.merge(HLTJetFTagDecorationCfg(flags))
207 PHYSVALSlimmingHelper.ExtraVariables += [
"AntiKt10TruthTrimmedPtFrac5SmallR20Jets.Tau1_wta.Tau2_wta.Tau3_wta.D2.GhostBHadronsFinalCount",
208 "Electrons.TruthLink",
"LRTElectrons.TruthLink",
209 "Muons.TruthLink",
"MuonsLRT.TruthLink",
211 "AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.PartonTruthLabelID",
212 "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",
213 "TruthPrimaryVertices.t.x.y.z",
214 "TauNeutralParticleFlowObjects.pt.eta.phi.m.bdtPi0Score.nPi0Proto",
215 "TauChargedParticleFlowObjects.pt.eta.phi.m",
216 "TauNeutralParticleFlowObjects_MuonRM.pt.eta.phi.m.bdtPi0Score.nPi0Proto",
217 "TauChargedParticleFlowObjects_MuonRM.pt.eta.phi.m",
218 "TauNeutralParticleFlowObjects_EleRM.pt.eta.phi.m.bdtPi0Score.nPi0Proto",
219 "TauChargedParticleFlowObjects_EleRM.pt.eta.phi.m",
221 PHYSVALSlimmingHelper.ExtraVariables += GSFTracksCPDetailedContent
224 "is_selected",
"is_associated",
"is_svtrk_final",
"pt_wrtSV",
"eta_wrtSV",
225 "phi_wrtSV",
"d0_wrtSV",
"z0_wrtSV",
"errP_wrtSV",
"errd0_wrtSV",
226 "errz0_wrtSV",
"chi2_toSV"
229 for suffix
in [
"",
"_LeptonsMod_LRTR3_1p0"]:
230 PHYSVALSlimmingHelper.ExtraVariables += [
"InDetTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
231 PHYSVALSlimmingHelper.ExtraVariables += [
"InDetLargeD0TrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
232 PHYSVALSlimmingHelper.ExtraVariables += [
"GSFTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
233 PHYSVALSlimmingHelper.ExtraVariables += [
"LRTGSFTrackParticles." +
'.'.join( [ var + suffix
for var
in VSITrackAuxVars] ) ]
237 PHYSVALSlimmingHelper.IncludeTriggerNavigation =
True
238 PHYSVALSlimmingHelper.IncludeJetTriggerContent =
True
239 PHYSVALSlimmingHelper.IncludeMuonTriggerContent =
True
240 PHYSVALSlimmingHelper.IncludeEGammaTriggerContent =
True
241 PHYSVALSlimmingHelper.IncludeTauTriggerContent =
True
242 PHYSVALSlimmingHelper.IncludeEtMissTriggerContent =
True
243 PHYSVALSlimmingHelper.IncludeBJetTriggerContent =
True
244 PHYSVALSlimmingHelper.IncludeBPhysTriggerContent =
True
245 PHYSVALSlimmingHelper.IncludeMinBiasTriggerContent =
True
249 if flags.Trigger.EDMVersion == 2:
250 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
251 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = PHYSVALSlimmingHelper,
252 OutputContainerPrefix =
"TrigMatch_",
253 TriggerList = PHYSVALTriggerListsHelper.Run2TriggerNamesTau)
254 AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = PHYSVALSlimmingHelper,
255 OutputContainerPrefix =
"TrigMatch_",
256 TriggerList = PHYSVALTriggerListsHelper.Run2TriggerNamesNoTau)
258 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
259 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
260 AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(PHYSVALSlimmingHelper)
263 PHYSVALSlimmingHelper.IncludeFullTriggerEDMLevel =
"ESD"
266 PHYSVALItemList = PHYSVALSlimmingHelper.GetItemList()
267 acc.merge(OutputStreamCfg(flags,
"DAOD_PHYSVAL", ItemList=PHYSVALItemList, AcceptAlgs=[
"PHYSVALKernel"]))
268 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_PHYSVAL", AcceptAlgs=[
"PHYSVALKernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))