ATLAS Offline Software
HION12.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 #!/usr/bin/env python
3 # HION12.py
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 
13  """Configure the example skimming tool"""
14  from TrigDecisionTool.TrigDecisionToolConfig import TrigDecisionToolCfg
15  acc = ComponentAccumulator()
16 
17  ExtraData = []
18  ExtraData += ['xAOD::VertexContainer/PrimaryVertices']
19  ExtraData += ['xAOD::JetContainer/AntiKt4EMTopoJets']
20  ExtraData += ['xAOD::JetContainer/AntiKt4LCTopoJets']
21  ExtraData += ['xAOD::JetContainer/AntiKt4EMPFlowJets']
22  ExtraData += ['xAOD::JetContainer/AntiKt4HIJets']
23  ExtraData += ['xAOD::JetContainer/AntiKt4HITrackJets']
24  ExtraData += ['xAOD::JetContainer/AntiKt10LCTopoJets']
25 
26  acc.addSequence( seqAND("HION12Sequence") )
27  acc.getSequence("HION12Sequence").ExtraDataForDynamicConsumers = ExtraData
28  acc.getSequence("HION12Sequence").ProcessDynamicDataDependencies = True
29 
30  #Building jet skimming triggers
31  from DerivationFrameworkHI import ListTriggers
32 
33  objectSelection = '(count(PrimaryVertices.z < 1000) < 10)'
35  MB_triggers = ListTriggers.HION12MBtriggers2018()
37 
38  expression = '( (' + ' || '.join(triggers+MB_triggers) + ') && '+objectSelection+ ' && ' + '(' + ' || '.join(nJetCuts) + ')' + ')'
39 
40  tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
41  acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "HION12StringSkimmingTool",
42  expression = expression,
43  TrigDecisionTool=tdt),
44  primary = True)
45  return(acc)
46 
47 
48 def HION12KernelCfg(flags, name='HION12Kernel', **kwargs):
49  """Configure the derivation framework driving algorithm (kernel)"""
50  acc = ComponentAccumulator()
51 
52 
54  from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg
55 
56  expression = "abs(InDetTrackParticles.d0)< 1000000000 && abs(InDetTrackParticles.z0*sin(InDetTrackParticles.theta)) < 1000000000 && InDetTrackParticles.pt > 200" #check limits
57  HION12TrackThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
58  flags,
59  name = "HION12TrackThinningTool",
60  StreamName = kwargs['StreamName'],
61  SelectionString = expression,
62  InDetTrackParticlesKey = "InDetTrackParticles"))
63 
64  thinningTools = [HION12TrackThinningTool]
65  skimmingTool = acc.getPrimaryAndMerge(HION12SkimmingToolCfg(flags))
66 
67  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
68  acc.addEventAlgo(DerivationKernel(name,
69  SkimmingTools = [skimmingTool],
70  ThinningTools = thinningTools),
71  sequenceName = "HION12Sequence")
72 
73  return acc
74 
75 def HION12Cfg(flags):
76 
77  acc = ComponentAccumulator()
78  acc.merge(HION12KernelCfg(flags, name="HION12Kernel",StreamName = "StreamDAOD_HION12"))
79 
80  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
81  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
82  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
83 
84 
86  from DerivationFrameworkHI import ListSlimming
87 
88  HION12SlimmingHelper = SlimmingHelper("HION12SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
89 
90  HION12SlimmingHelper.SmartCollections = ListSlimming.HION12SmartCollections()
91  HION12SlimmingHelper.AllVariables = ListSlimming.HION12AllVarContent()
92  HION12SlimmingHelper.ExtraVariables = ListSlimming.HION12Extra()
93 
94 
95  HION12ItemList = HION12SlimmingHelper.GetItemList()
96 
97  acc.merge(OutputStreamCfg(flags, "DAOD_HION12", ItemList=HION12ItemList, AcceptAlgs=["HION12Kernel"]))
98  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HION12", AcceptAlgs=["HION12Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
99 
100  return acc
ListTriggers.HION12nJetCuts2018
def HION12nJetCuts2018()
Definition: ListTriggers.py:319
ListSlimming.HION12SmartCollections
def HION12SmartCollections()
HION12.
Definition: ListSlimming.py:199
ListTriggers.HION12triggers2018
def HION12triggers2018()
Definition: ListTriggers.py:272
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:12
HION12.DerivationKernel
DerivationKernel
Definition: HION12.py:67
python.InDetToolsConfig.TrackParticleThinningCfg
def TrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:424
HION12.HION12KernelCfg
def HION12KernelCfg(flags, name='HION12Kernel', **kwargs)
Definition: HION12.py:48
ListSlimming.HION12AllVarContent
def HION12AllVarContent()
Definition: ListSlimming.py:208
python.CFElements.seqAND
def seqAND(name, subs=[])
Definition: CFElements.py:25
HION12.HION12SkimmingToolCfg
def HION12SkimmingToolCfg(flags)
Skiming.
Definition: HION12.py:12
HION12.HION12Cfg
def HION12Cfg(flags)
Definition: HION12.py:75
ListSlimming.HION12Extra
def HION12Extra()
Definition: ListSlimming.py:285
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.TriggerInterface.TrigDecisionToolCfg
def TrigDecisionToolCfg(flags)
Definition: TriggerInterface.py:14
ListTriggers.HION12MBtriggers2018
def HION12MBtriggers2018()
HION12.
Definition: ListTriggers.py:247
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:216
SlimmingHelper
Definition: SlimmingHelper.py:1