ATLAS Offline Software
Loading...
Searching...
No Matches
HION12.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2# HION12.py
3
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory import CompFactory
6from AthenaConfiguration.Enums import MetadataCategory
7from AthenaCommon.CFElements import seqAND
8
9
12 """Configure the example skimming tool"""
13 acc = ComponentAccumulator()
14
15 ExtraData = []
16 ExtraData += ['xAOD::VertexContainer/PrimaryVertices']
17 ExtraData += ['xAOD::JetContainer/AntiKt4EMTopoJets']
18 ExtraData += ['xAOD::JetContainer/AntiKt4LCTopoJets']
19 ExtraData += ['xAOD::JetContainer/AntiKt4EMPFlowJets']
20 ExtraData += ['xAOD::JetContainer/AntiKt4HIJets']
21 ExtraData += ['xAOD::JetContainer/AntiKt4HITrackJets']
22 ExtraData += ['xAOD::JetContainer/AntiKt10LCTopoJets']
23
24 acc.addSequence( seqAND("HION12Sequence") )
25 acc.getSequence("HION12Sequence").ExtraDataForDynamicConsumers = ExtraData
26 acc.getSequence("HION12Sequence").ProcessDynamicDataDependencies = True
27
28 #Building jet skimming triggers
29 from DerivationFrameworkHI import ListTriggers
30
31 objectSelection = '(count(PrimaryVertices.z < 1000) < 10)'
32 nJetCuts = ListTriggers.HION12nJetCuts2018()
33 MB_triggers = ListTriggers.HION12MBtriggers2018()
34 triggers = ListTriggers.HION12triggers2018()
35
36 expression = '( (' + ' || '.join(triggers+MB_triggers) + ') && '+objectSelection+ ' && ' + '(' + ' || '.join(nJetCuts) + ')' + ')'
37
38 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (
39 xAODStringSkimmingToolCfg)
40 acc.addPublicTool(acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
41 flags, name = "HION12StringSkimmingTool", expression = expression)), primary=True)
42 return(acc)
43
44
45def HION12KernelCfg(flags, name='HION12Kernel', **kwargs):
46 """Configure the derivation framework driving algorithm (kernel)"""
47 acc = ComponentAccumulator()
48
49
51 from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg
52
53 expression = "abs(InDetTrackParticles.d0)< 1000000000 && abs(InDetTrackParticles.z0*sin(InDetTrackParticles.theta)) < 1000000000 && InDetTrackParticles.pt > 200" #check limits
54 HION12TrackThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
55 flags,
56 name = "HION12TrackThinningTool",
57 StreamName = kwargs['StreamName'],
58 SelectionString = expression,
59 InDetTrackParticlesKey = "InDetTrackParticles"))
60
61 thinningTools = [HION12TrackThinningTool]
62 skimmingTool = acc.getPrimaryAndMerge(HION12SkimmingToolCfg(flags))
63
64 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
65 acc.addEventAlgo(DerivationKernel(name,
66 SkimmingTools = [skimmingTool],
67 ThinningTools = thinningTools),
68 sequenceName = "HION12Sequence")
69
70 return acc
71
72def HION12Cfg(flags):
73
74 acc = ComponentAccumulator()
75 acc.merge(HION12KernelCfg(flags, name="HION12Kernel",StreamName = "StreamDAOD_HION12"))
76
77 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
78 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
79 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
80
81
83 from DerivationFrameworkHI import ListSlimming
84
85 HION12SlimmingHelper = SlimmingHelper("HION12SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
86
87 HION12SlimmingHelper.SmartCollections = ListSlimming.HION12SmartCollections()
88 HION12SlimmingHelper.AllVariables = ListSlimming.HION12AllVarContent()
89 HION12SlimmingHelper.ExtraVariables = ListSlimming.HION12Extra()
90
91
92 HION12ItemList = HION12SlimmingHelper.GetItemList()
93
94 acc.merge(OutputStreamCfg(flags, "DAOD_HION12", ItemList=HION12ItemList, AcceptAlgs=["HION12Kernel"]))
95 acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HION12", AcceptAlgs=["HION12Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
96
97 return acc
HION12SkimmingToolCfg(flags)
Skiming.
Definition HION12.py:11
HION12KernelCfg(flags, name='HION12Kernel', **kwargs)
Definition HION12.py:45
HION12Cfg(flags)
Definition HION12.py:72