10 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
11 from AthenaConfiguration.ComponentFactory
import CompFactory
12 from AthenaConfiguration.Enums
import MetadataCategory
14 from DerivationFrameworkEGamma.PhotonsCPDetailedContent
import (
15 PhotonsCPDetailedContent,
18 from DerivationFrameworkEGamma.TriggerContent
import (
25 electronRequirements =
" && ".
join(
27 "(Electrons.pt > 15*GeV)",
28 "(abs(Electrons.eta) < 2.5)",
29 "(Electrons.DFCommonElectronsLHLoose)",
32 photonRequirements =
" && ".
join(
33 [
"(DFCommonPhotons_et >= 15*GeV)",
"(abs(DFCommonPhotons_eta) < 2.5)"]
38 """Configure the EGAM10 skimming tool"""
42 photonSelection =
"(count(" + photonRequirements +
") >= 1)"
43 print(
"EGAM10 offline skimming expression: ", photonSelection)
44 EGAM10_OfflineSkimmingTool = CompFactory.DerivationFramework.xAODStringSkimmingTool(
45 name=
"EGAM10_OfflineSkimmingTool", expression=photonSelection
50 if flags.Trigger.EDMVersion == 2:
52 elif flags.Trigger.EDMVersion == 3:
57 singlePhotonTriggers[MenuType]
58 + diPhotonTriggers[MenuType]
59 + triPhotonTriggers[MenuType]
60 + noalgTriggers[MenuType]
63 allTriggers =
list(
set(allTriggers))
65 print(
"EGAM10 trigger skimming list (OR): ", allTriggers)
66 EGAM10_TriggerSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool(
67 name=
"EGAM10_TriggerSkimmingTool", TriggerListOR=allTriggers
71 print(
"EGAM10 skimming is logical AND of previous selections")
72 EGAM10_SkimmingTool = CompFactory.DerivationFramework.FilterCombinationAND(
73 name=
"EGAM10_SkimmingTool",
74 FilterList=[EGAM10_OfflineSkimmingTool, EGAM10_TriggerSkimmingTool],
77 acc.addPublicTool(EGAM10_OfflineSkimmingTool)
78 acc.addPublicTool(EGAM10_TriggerSkimmingTool)
79 acc.addPublicTool(EGAM10_SkimmingTool, primary=
True)
85 """Configure the derivation framework driving algorithm (kernel)
90 from DerivationFrameworkPhys.PhysCommonConfig
import PhysCommonAugmentationsCfg
94 flags, TriggerListsHelper=kwargs[
"TriggerListsHelper"]
99 augmentationTools = []
104 from DerivationFrameworkEGamma.EGammaToolsConfig
import (
105 PhotonVertexSelectionWrapperKernelCfg)
111 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import (
112 CaloDecoratorKernelCfg)
117 streamName = kwargs[
"StreamName"]
120 if flags.Derivation.Egamma.doTrackThinning:
121 TrackThinningKeepElectronTracks =
True
122 TrackThinningKeepPhotonTracks =
True
123 TrackThinningKeepAllElectronTracks =
True
126 if TrackThinningKeepElectronTracks:
127 EGAM10ElectronTPThinningTool = (
128 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
129 name=
"EGAM10ElectronTPThinningTool",
130 StreamName=streamName,
132 GSFTrackParticlesKey=
"GSFTrackParticles",
133 InDetTrackParticlesKey=
"InDetTrackParticles",
134 SelectionString=electronRequirements,
139 acc.addPublicTool(EGAM10ElectronTPThinningTool)
140 thinningTools.append(EGAM10ElectronTPThinningTool)
143 if TrackThinningKeepPhotonTracks:
144 EGAM10PhotonTPThinningTool = (
145 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
146 name=
"EGAM10PhotonTPThinningTool",
147 StreamName=streamName,
149 GSFTrackParticlesKey=
"GSFTrackParticles",
150 InDetTrackParticlesKey=
"InDetTrackParticles",
151 GSFConversionVerticesKey=
"GSFConversionVertices",
152 SelectionString=photonRequirements,
157 acc.addPublicTool(EGAM10PhotonTPThinningTool)
158 thinningTools.append(EGAM10PhotonTPThinningTool)
161 if TrackThinningKeepAllElectronTracks:
162 EGAM10ElectronTPThinningToolAR = (
163 CompFactory.DerivationFramework.EgammaTrackParticleThinning(
164 name=
"EGAM10ElectronTPThinningToolAR",
165 StreamName=streamName,
167 GSFTrackParticlesKey=
"GSFTrackParticles",
168 InDetTrackParticlesKey=
"InDetTrackParticles",
169 SelectionString=electronRequirements,
173 acc.addPublicTool(EGAM10ElectronTPThinningToolAR)
174 thinningTools.append(EGAM10ElectronTPThinningToolAR)
181 CompFactory.DerivationFramework.DerivationKernel(
183 SkimmingTools=[skimmingTool],
184 AugmentationTools=augmentationTools,
185 ThinningTools=thinningTools,
202 from DerivationFrameworkPhys.TriggerListsHelper
import TriggerListsHelper
204 EGAM10TriggerListsHelper = TriggerListsHelper(flags)
211 StreamName=
"StreamDAOD_EGAM10",
212 TriggerListsHelper=EGAM10TriggerListsHelper,
217 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
218 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
219 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
222 "EGAM10SlimmingHelper",
223 NamesAndTypes=flags.Input.TypedCollections,
232 EGAM10SlimmingHelper.AllVariables = [
"CaloCalTopoClusters"]
236 EGAM10SlimmingHelper.AppendToDictionary.update(
238 "TruthIsoCentralEventShape":
"xAOD::EventShape",
239 "TruthIsoCentralEventShapeAux":
"xAOD::EventShapeAuxInfo",
240 "TruthIsoForwardEventShape":
"xAOD::EventShape",
241 "TruthIsoForwardEventShapeAux":
"xAOD::EventShapeAuxInfo",
244 EGAM10SlimmingHelper.AllVariables += [
254 "AntiKt4TruthDressedWZJets",
255 "egammaTruthParticles",
256 "TruthIsoCentralEventShape",
257 "TruthIsoForwardEventShape",
270 EGAM10SlimmingHelper.SmartCollections = [
273 "InDetTrackParticles",
275 "AntiKt4EMPFlowJets",
279 EGAM10SlimmingHelper.SmartCollections += [
281 "AntiKt4TruthDressedWZJets",
287 EGAM10SlimmingHelper.ExtraVariables += [
288 "egammaClusters.PHI2CALOFRAME.ETA2CALOFRAME.phi_sampl"
292 EGAM10SlimmingHelper.ExtraVariables += [
293 "Photons.ptcone30.ptcone40.f3.f3core",
294 "Photons.maxEcell_time.maxEcell_energy.maxEcell_gain.maxEcell_onlId",
295 "Photons.maxEcell_x.maxEcell_y.maxEcell_z",
296 "Photons.ptcone40_Nonprompt_All_MaxWeightTTVA_pt1000",
297 "Photons.ptcone40_Nonprompt_All_MaxWeightTTVA_pt500",
298 "Photons.ptcone20_Nonprompt_All_MaxWeightTTVA_pt500",
299 "Photons.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000",
300 "Photons.ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500",
304 EGAM10SlimmingHelper.ExtraVariables += [
305 "Electrons.topoetcone30.topoetcone40.ptcone20.ptcone30",
306 "Electrons.ptcone40.maxEcell_time.maxEcell_energy.maxEcell_gain",
307 "Electrons.maxEcell_onlId.maxEcell_x.maxEcell_y.maxEcell_z",
311 EGAM10SlimmingHelper.ExtraVariables += [
312 "PrimaryVertices.covariance.trackWeights.sumPt2.sumPt",
313 "PrimaryVertices.pt.eta.phi",
317 EGAM10SlimmingHelper.ExtraVariables += [
318 "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights"
322 EGAM10SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
325 from DerivationFrameworkCalo.DerivationFrameworkCaloConfig
import (
327 getClusterEnergyPerLayerDecorations,
331 print(
"EGAM10 gain decorations: ", gainDecorations)
332 EGAM10SlimmingHelper.ExtraVariables.extend(gainDecorations)
334 print(
"EGAM10 cluster energy decorations: ", clusterEnergyDecorations)
335 EGAM10SlimmingHelper.ExtraVariables.extend(clusterEnergyDecorations)
338 EGAM10SlimmingHelper.ExtraVariables += [
339 "TopoClusterIsoCentralEventShape.Density",
340 "TopoClusterIsoForwardEventShape.Density",
343 from DerivationFrameworkEGamma
import EGammaIsoConfig
350 ) = EGammaIsoConfig.makeEGammaCommonIsoCfg(flags)
352 EGAM10SlimmingHelper.AppendToDictionary.update(densityDict)
353 EGAM10SlimmingHelper.ExtraVariables += densityList + [f
"Photons{pflowIsoVar}"]
356 from IsolationAlgs.DerivationTrackIsoConfig
import DerivationTrackIsoCfg
360 flags, object_types=(
"Photons",), ptCuts=(500, 1000), postfix=
"Extra"
366 EGAM10SlimmingHelper.ExtraVariables += [
367 "Electrons.truthOrigin.truthType.truthParticleLink.truthPdgId",
368 "Electrons.lastEgMotherTruthType.lastEgMotherTruthOrigin",
369 "Electrons.lastEgMotherTruthParticleLink.lastEgMotherPdgId",
370 "Electrons.firstEgMotherTruthType.firstEgMotherTruthOrigin",
371 "Electrons.firstEgMotherTruthParticleLink.firstEgMotherPdgId",
374 EGAM10SlimmingHelper.ExtraVariables += [
375 "Photons.truthOrigin.truthType.truthParticleLink"
378 EGAM10SlimmingHelper.ExtraVariables += [
379 "TruthIsoCentralEventShape.DensitySigma.Density.DensityArea",
380 "TruthIsoForwardEventShape.DensitySigma.Density.DensityArea",
384 if flags.Derivation.Egamma.doEventInfoSlimming:
385 EGAM10SlimmingHelper.SmartCollections.append(
"EventInfo")
387 EGAM10SlimmingHelper.AllVariables += [
"EventInfo"]
390 EGAM10SlimmingHelper.IncludeEGammaTriggerContent =
True
394 if flags.Trigger.EDMVersion == 2:
395 from DerivationFrameworkPhys.TriggerMatchingCommonConfig
import AddRun2TriggerMatchingToSlimmingHelper
397 OutputContainerPrefix =
"TrigMatch_",
398 TriggerList = EGAM10TriggerListsHelper.Run2TriggerNamesNoTau)
400 if flags.Trigger.EDMVersion == 3
or (flags.Trigger.EDMVersion == 2
and flags.Trigger.doEDMVersionConversion):
401 from TrigNavSlimmingMT.TrigNavSlimmingMTConfig
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
404 EGAM10ItemList = EGAM10SlimmingHelper.GetItemList()
409 ItemList=EGAM10ItemList,
410 AcceptAlgs=[
"EGAM10Kernel"],
417 AcceptAlgs=[
"EGAM10Kernel"],
419 MetadataCategory.CutFlowMetaData,
420 MetadataCategory.TruthMetaData,