ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
DerivationFramework
DerivationFrameworkExamples
python
TEST6.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2026 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
5
from
AthenaConfiguration.ComponentAccumulator
import
ComponentAccumulator
6
from
AthenaConfiguration.ComponentFactory
import
CompFactory
7
from
AthenaConfiguration.Enums
import
MetadataCategory
8
from
AthenaCommon.CFElements
import
seqAND
9
10
def
TEST6SkimmingToolCfg
(flags):
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
20
def
TEST6AugmentationToolCfg
(flags):
21
"""Configure the example augmentation tool"""
22
acc = ComponentAccumulator()
23
acc.addPublicTool(CompFactory.DerivationFramework.AugmentationToolExample(name=
"TEST6AugmentationTool"
),
24
primary =
True
)
25
return(acc)
26
27
def
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
43
def
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
TEST6ItemList = TEST6SlimmingHelper.GetItemList()
67
68
acc.merge(OutputStreamCfg(flags,
"DAOD_TEST6"
, ItemList=TEST6ItemList, AcceptAlgs=[
"TEST6Kernel"
]))
69
acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_TEST6"
, AcceptAlgs=[
"TEST6Kernel"
], createMetadata=[MetadataCategory.CutFlowMetaData]))
70
71
return
acc
python.TEST6.TEST6SkimmingToolCfg
TEST6SkimmingToolCfg(flags)
Definition
TEST6.py:10
python.TEST6.TEST6KernelCfg
TEST6KernelCfg(flags, name='TEST6Kernel', **kwargs)
Definition
TEST6.py:27
python.TEST6.TEST6AugmentationToolCfg
TEST6AugmentationToolCfg(flags)
Definition
TEST6.py:20
python.TEST6.TEST6Cfg
TEST6Cfg(flags)
Definition
TEST6.py:43
SlimmingHelper
Definition
getLabel.h:34
Generated on
for ATLAS Offline Software by
1.17.0