ATLAS Offline Software
TEST5.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 #!/usr/bin/env python
3 # TEST5.py - derivation framework example demonstrating the use of decorators
4 # Two decorations are done - one from an example tool (AugemntationToolExample)
5 # and one from a CP tool (muon selection tool). Decorations are added as ExtraVariables
6 
7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 from AthenaConfiguration.ComponentFactory import CompFactory
9 from AthenaConfiguration.Enums import MetadataCategory
10 
11 def TEST5CPToolCfg(flags):
12  """Configure the example muon CP tool"""
13  acc = ComponentAccumulator()
14  mst = CompFactory.CP.MuonSelectionTool(name = 'TEST5MuonSelectionTool',
15  TurnOffMomCorr = True,
16  AllowSettingGeometryOnTheFly = True)
17  acc.addPublicTool(mst, primary=True)
18  acc.addPublicTool(CompFactory.DerivationFramework.AsgSelectionToolWrapper(name = "TEST5MuonToolWrapper",
19  AsgSelectionTool = mst,
20  CutType = "IDHits",
21  StoreGateEntryName = "TEST5GoodMuons",
22  ContainerName = "Muons"),
23  primary = True)
24  return(acc)
25 
26 
28  """Configure the example augmentation tool"""
29  acc = ComponentAccumulator()
30  acc.addPublicTool(CompFactory.DerivationFramework.AugmentationToolExample(name = "TEST5AugmentationTool"),
31  primary = True)
32  return(acc)
33 
34 
35 def TEST5KernelCfg(flags, name='TEST5Kernel', **kwargs):
36  """Configure the derivation framework driving algorithm (kernel)"""
37  acc = ComponentAccumulator()
38  augmentationTool = acc.getPrimaryAndMerge(TEST5AugmentationToolCfg(flags))
39  cpTool = acc.getPrimaryAndMerge(TEST5CPToolCfg(flags))
40  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
41  acc.addEventAlgo(DerivationKernel(name, AugmentationTools = [augmentationTool,cpTool]))
42  return acc
43 
44 
45 def TEST5Cfg(flags):
46 
47  acc = ComponentAccumulator()
48  acc.merge(TEST5KernelCfg(flags, name="TEST5Kernel",StreamName = "OutputStreamDAOD_TEST5"))
49 
50  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
51  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
52  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
53  TEST5SlimmingHelper = SlimmingHelper("TEST5SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
54  TEST5SlimmingHelper.SmartCollections = ["EventInfo","InDetTrackParticles","PrimaryVertices","Muons"]
55  TEST5SlimmingHelper.ExtraVariables += ["InDetTrackParticles.DFDecoratorExample"]
56  TEST5SlimmingHelper.ExtraVariables += ["Muons.TEST5GoodMuons"]
57  TEST5SlimmingHelper.StaticContent += ["std::vector<float>#DFAugmentationExample"]
58  TEST5ItemList = TEST5SlimmingHelper.GetItemList()
59  acc.merge(OutputStreamCfg(flags, "DAOD_TEST5", ItemList=TEST5ItemList, AcceptAlgs=["TEST5Kernel"]))
60  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_TEST5", AcceptAlgs=["TEST5Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
61  return acc
python.TEST5.TEST5CPToolCfg
def TEST5CPToolCfg(flags)
Definition: TEST5.py:11
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.TEST5.TEST5AugmentationToolCfg
def TEST5AugmentationToolCfg(flags)
Definition: TEST5.py:27
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:12
HION12.DerivationKernel
DerivationKernel
Definition: HION12.py:67
python.TEST5.TEST5KernelCfg
def TEST5KernelCfg(flags, name='TEST5Kernel', **kwargs)
Definition: TEST5.py:35
python.TEST5.TEST5Cfg
def TEST5Cfg(flags)
Definition: TEST5.py:45
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:216
SlimmingHelper
Definition: SlimmingHelper.py:1