ATLAS Offline Software
Loading...
Searching...
No Matches
TEST6.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2# TEST6.py - derivation framework example demonstrating pre-selection, such that only
3# after passing the skimming do heavier augmentation tools run
4
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7from AthenaConfiguration.Enums import MetadataCategory
8from AthenaCommon.CFElements import seqAND
9
11 """Configure the example skimming tool"""
12 acc = ComponentAccumulator()
13 acc.addPublicTool(CompFactory.DerivationFramework.SkimmingToolExample(name = "TEST1SkimmingTool",
14 MuonContainerKey = "Muons",
15 NumberOfMuons = 1,
16 MuonPtCut = 1000.0),
17 primary = True)
18 return(acc)
19
21 """Configure the example augmentation tool"""
22 acc = ComponentAccumulator()
23 acc.addPublicTool(CompFactory.DerivationFramework.AugmentationToolExample(name= "TEST6AugmentationTool"),
24 primary = True)
25 return(acc)
26
27def TEST6KernelCfg(flags, name='TEST6Kernel', **kwargs):
28 """Configure the derivation framework driving algorithm (kernel)"""
29 acc = ComponentAccumulator()
30 # Subsequence
31 acc.addSequence( seqAND("TEST6Sequence") )
32 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
33 skimmingTool = acc.getPrimaryAndMerge(TEST6SkimmingToolCfg(flags))
34 skimmingKernel = DerivationKernel(kwargs["PreselectionName"], SkimmingTools = [skimmingTool])
35 # Add skimming tool to subsequence
36 acc.addEventAlgo( skimmingKernel, sequenceName="TEST6Sequence" )
37 augmentationTool = acc.getPrimaryAndMerge(TEST6AugmentationToolCfg(flags))
38 # Add augmentation tool to same subsequence
39 acc.addEventAlgo(DerivationKernel(name, AugmentationTools = [augmentationTool]), sequenceName="TEST6Sequence")
40 return(acc)
41
42
43def TEST6Cfg(flags):
44
45 acc = ComponentAccumulator()
46 acc.merge(TEST6KernelCfg(flags, name="TEST6Kernel", PreselectionName="TEST6PreselectionKernel"))
47
48 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
49 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
50 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
51 TEST6SlimmingHelper = SlimmingHelper("TEST6SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
52 TEST6SlimmingHelper.SmartCollections = ["EventInfo",
53 "Electrons",
54 "Photons",
55 "Muons",
56 "PrimaryVertices",
57 "InDetTrackParticles",
58 "AntiKt4EMTopoJets",
59 "AntiKt4EMPFlowJets",
60
61 "MET_Baseline_AntiKt4EMTopo",
62 "MET_Baseline_AntiKt4EMPFlow",
63 "TauJets",
64 "DiTauJets",
65 "DiTauJetsLowPt",
66 "AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets"]
67 TEST6ItemList = TEST6SlimmingHelper.GetItemList()
68
69 acc.merge(OutputStreamCfg(flags, "DAOD_TEST6", ItemList=TEST6ItemList, AcceptAlgs=["TEST6Kernel"]))
70 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_TEST6", AcceptAlgs=["TEST6Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
71
72 return acc
TEST6AugmentationToolCfg(flags)
Definition TEST6.py:20
TEST6SkimmingToolCfg(flags)
Definition TEST6.py:10
TEST6Cfg(flags)
Definition TEST6.py:43
TEST6KernelCfg(flags, name='TEST6Kernel', **kwargs)
Definition TEST6.py:27