Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
HION7.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 # HION7.py
3 
4 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.Enums import MetadataCategory
7 from AthenaCommon.CFElements import seqAND
8 
9 
12  """Configure the example skimming tool"""
13  acc = ComponentAccumulator()
14  ExtraData = []
15  ExtraData += ['xAOD::JetContainer/AntiKt2HIJets']
16  ExtraData += ['xAOD::JetContainer/AntiKt4HIJets']
17 
18  acc.addSequence( seqAND("HION7Sequence") )
19  acc.getSequence("HION7Sequence").ExtraDataForDynamicConsumers = ExtraData
20  acc.getSequence("HION7Sequence").ProcessDynamicDataDependencies = True
21 
22  expression = "count(AntiKt2HIJets.pt > 25000) > 1 || count(AntiKt4HIJets.pt > 25000) > 1"
23 
24  from TrigDecisionTool.TrigDecisionToolConfig import TrigDecisionToolCfg
25  tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
26  acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "HION7StringSkimmingTool",
27  expression = expression,
28  TrigDecisionTool=tdt),
29  primary = True)
30 
31  return(acc)
32 
33 
34 def HION7KernelCfg(flags, name='HION7Kernel', **kwargs):
35  """Configure the derivation framework driving algorithm (kernel)"""
36  acc = ComponentAccumulator()
37 
38 
40  from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg,JetTrackParticleThinningCfg
41 
42  track_thinning_expression = "InDetTrackParticles.pt > 0.9*GeV"
43  TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
44  flags,
45  name = "PHYSTrackParticleThinningTool",
46  StreamName = kwargs['StreamName'],
47  SelectionString = track_thinning_expression,
48  InDetTrackParticlesKey = "InDetTrackParticles"))
49 
50  AntiKt2HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
51  flags,
52  name = "AntiKt2HIJetsThinningTool",
53  StreamName = kwargs['StreamName'],
54  JetKey = "AntiKt2HIJets",
55  SelectionString = "AntiKt2HIJets.pt > 20*GeV",
56  InDetTrackParticlesKey = "InDetTrackParticles"))
57 
58  AntiKt4HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
59  flags,
60  name = "AntiKt4HIJetsThinningTool",
61  StreamName = kwargs['StreamName'],
62  JetKey = "AntiKt4HIJets",
63  SelectionString = "AntiKt4HIJets.pt > 20*GeV",
64  InDetTrackParticlesKey = "InDetTrackParticles"))
65 
66 
67  thinningTools = [TrackParticleThinningTool,
68  AntiKt2HIJetsThinningTool,
69  AntiKt4HIJetsThinningTool]
70 
71  skimmingTool = acc.getPrimaryAndMerge(HION7SkimmingToolCfg(flags))
72  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name,ThinningTools = thinningTools, SkimmingTools = [skimmingTool]),sequenceName="HION7Sequence")
73  return acc
74 
75 
76 def HION7Cfg(flags):
77 
78  acc = ComponentAccumulator()
79  acc.merge(HION7KernelCfg(flags, name="HION7Kernel",StreamName = "StreamDAOD_HION7"))
80 
81  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
82  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
83  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
84 
85 
87  HION7SlimmingHelper = SlimmingHelper("HION7SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
88  HION7SlimmingHelper.SmartCollections = ["EventInfo",
89  "Electrons",
90  "Photons",
91  "Muons",
92  "PrimaryVertices",
93  "InDetTrackParticles"]
94  HION7SlimmingHelper.AllVariables =["AntiKt2HIJets",
95  "AntiKt4HIJets",
96  "CaloSums",
97  "ZdcModules",
98  "ZdcTriggerTowers",
99  "MBTSForwardEventInfo",
100  "MBTSModules"]
101  HION7ItemList = HION7SlimmingHelper.GetItemList()
102 
103  acc.merge(OutputStreamCfg(flags, "DAOD_HION7", ItemList=HION7ItemList, AcceptAlgs=["HION7Kernel"]))
104  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HION7", AcceptAlgs=["HION7Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
105 
106  return acc
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.HION7.HION7Cfg
def HION7Cfg(flags)
Definition: HION7.py:76
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:16
python.InDetToolsConfig.TrackParticleThinningCfg
def TrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:458
python.CFElements.seqAND
def seqAND(name, subs=[])
Definition: CFElements.py:25
python.HION7.HION7KernelCfg
def HION7KernelCfg(flags, name='HION7Kernel', **kwargs)
Definition: HION7.py:34
python.InDetToolsConfig.JetTrackParticleThinningCfg
def JetTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:574
python.TriggerInterface.TrigDecisionToolCfg
def TrigDecisionToolCfg(flags)
Definition: TriggerInterface.py:14
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222
SlimmingHelper
Definition: SlimmingHelper.py:1
python.HION7.HION7SkimmingToolCfg
def HION7SkimmingToolCfg(flags)
Skiming.
Definition: HION7.py:11