4from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory
import CompFactory
6from AthenaConfiguration.Enums
import MetadataCategory
7from AthenaCommon.CFElements
import seqAND
12 """Configure the example skimming tool"""
13 from TrigDecisionTool.TrigDecisionToolConfig
import TrigDecisionToolCfg
14 acc = ComponentAccumulator()
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']
25 acc.addSequence( seqAND(
"HION12Sequence") )
26 acc.getSequence(
"HION12Sequence").ExtraDataForDynamicConsumers = ExtraData
27 acc.getSequence(
"HION12Sequence").ProcessDynamicDataDependencies =
True
30 from DerivationFrameworkHI
import ListTriggers
32 objectSelection =
'(count(PrimaryVertices.z < 1000) < 10)'
33 nJetCuts = ListTriggers.HION12nJetCuts2018()
34 MB_triggers = ListTriggers.HION12MBtriggers2018()
35 triggers = ListTriggers.HION12triggers2018()
37 expression =
'( (' +
' || '.join(triggers+MB_triggers) +
') && '+objectSelection+
' && ' +
'(' +
' || '.join(nJetCuts) +
')' +
')'
39 tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
40 acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"HION12StringSkimmingTool",
41 expression = expression,
42 TrigDecisionTool=tdt),
48 """Configure the derivation framework driving algorithm (kernel)"""
49 acc = ComponentAccumulator()
53 from DerivationFrameworkInDet.InDetToolsConfig
import TrackParticleThinningCfg
55 expression =
"abs(InDetTrackParticles.d0)< 1000000000 && abs(InDetTrackParticles.z0*sin(InDetTrackParticles.theta)) < 1000000000 && InDetTrackParticles.pt > 200"
56 HION12TrackThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
58 name =
"HION12TrackThinningTool",
59 StreamName = kwargs[
'StreamName'],
60 SelectionString = expression,
61 InDetTrackParticlesKey =
"InDetTrackParticles"))
63 thinningTools = [HION12TrackThinningTool]
66 DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
68 SkimmingTools = [skimmingTool],
69 ThinningTools = thinningTools),
70 sequenceName =
"HION12Sequence")
76 acc = ComponentAccumulator()
77 acc.merge(
HION12KernelCfg(flags, name=
"HION12Kernel",StreamName =
"StreamDAOD_HION12"))
79 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
80 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
81 from DerivationFrameworkCore.SlimmingHelper
import SlimmingHelper
85 from DerivationFrameworkHI
import ListSlimming
87 HION12SlimmingHelper =
SlimmingHelper(
"HION12SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
89 HION12SlimmingHelper.SmartCollections = ListSlimming.HION12SmartCollections()
90 HION12SlimmingHelper.AllVariables = ListSlimming.HION12AllVarContent()
91 HION12SlimmingHelper.ExtraVariables = ListSlimming.HION12Extra()
94 HION12ItemList = HION12SlimmingHelper.GetItemList()
96 acc.merge(OutputStreamCfg(flags,
"DAOD_HION12", ItemList=HION12ItemList, AcceptAlgs=[
"HION12Kernel"]))
97 acc.merge(SetupMetaDataForStreamCfg(flags,
"DAOD_HION12", AcceptAlgs=[
"HION12Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
HION12SkimmingToolCfg(flags)
Skiming.
HION12KernelCfg(flags, name='HION12Kernel', **kwargs)