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