ATLAS Offline Software
HION7.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 #!/usr/bin/env python
3 # HION7.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  acc = ComponentAccumulator()
15  ExtraData = []
16  ExtraData += ['xAOD::JetContainer/AntiKt2HIJets']
17  ExtraData += ['xAOD::JetContainer/AntiKt4HIJets']
18 
19  acc.addSequence( seqAND("HION7Sequence") )
20  acc.getSequence("HION7Sequence").ExtraDataForDynamicConsumers = ExtraData
21  acc.getSequence("HION7Sequence").ProcessDynamicDataDependencies = True
22 
23  expression = "count(AntiKt2HIJets.pt > 25000) > 1 || count(AntiKt4HIJets.pt > 25000) > 1"
24 
25  from TrigDecisionTool.TrigDecisionToolConfig import TrigDecisionToolCfg
26  tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
27  acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "HION7StringSkimmingTool",
28  expression = expression,
29  TrigDecisionTool=tdt),
30  primary = True)
31 
32  return(acc)
33 
34 
35 def HION7KernelCfg(flags, name='HION7Kernel', **kwargs):
36  """Configure the derivation framework driving algorithm (kernel)"""
37  acc = ComponentAccumulator()
38 
39 
41  from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg,JetTrackParticleThinningCfg
42 
43  track_thinning_expression = "InDetTrackParticles.pt > 0.9*GeV"
44  TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
45  flags,
46  name = "PHYSTrackParticleThinningTool",
47  StreamName = kwargs['StreamName'],
48  SelectionString = track_thinning_expression,
49  InDetTrackParticlesKey = "InDetTrackParticles"))
50 
51  AntiKt2HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
52  flags,
53  name = "AntiKt2HIJetsThinningTool",
54  StreamName = kwargs['StreamName'],
55  JetKey = "AntiKt2HIJets",
56  SelectionString = "AntiKt2HIJets.pt > 20*GeV",
57  InDetTrackParticlesKey = "InDetTrackParticles"))
58 
59  AntiKt4HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
60  flags,
61  name = "AntiKt4HIJetsThinningTool",
62  StreamName = kwargs['StreamName'],
63  JetKey = "AntiKt4HIJets",
64  SelectionString = "AntiKt4HIJets.pt > 20*GeV",
65  InDetTrackParticlesKey = "InDetTrackParticles"))
66 
67 
68  thinningTools = [TrackParticleThinningTool,
69  AntiKt2HIJetsThinningTool,
70  AntiKt4HIJetsThinningTool]
71 
72  skimmingTool = acc.getPrimaryAndMerge(HION7SkimmingToolCfg(flags))
73  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name,ThinningTools = thinningTools, SkimmingTools = [skimmingTool]),sequenceName="HION7Sequence")
74  return acc
75 
76 
77 def HION7Cfg(flags):
78 
79  acc = ComponentAccumulator()
80  acc.merge(HION7KernelCfg(flags, name="HION7Kernel",StreamName = "StreamDAOD_HION7"))
81 
82  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
83  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
84  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
85 
86 
88  HION7SlimmingHelper = SlimmingHelper("HION7SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
89  HION7SlimmingHelper.SmartCollections = ["EventInfo",
90  "Electrons",
91  "Photons",
92  "Muons",
93  "PrimaryVertices",
94  "InDetTrackParticles"]
95  HION7SlimmingHelper.AllVariables =["AntiKt2HIJets",
96  "AntiKt4HIJets",
97  "CaloSums",
98  "ZdcModules",
99  "ZdcTriggerTowers",
100  "MBTSForwardEventInfo",
101  "MBTSModules"]
102  HION7ItemList = HION7SlimmingHelper.GetItemList()
103 
104  acc.merge(OutputStreamCfg(flags, "DAOD_HION7", ItemList=HION7ItemList, AcceptAlgs=["HION7Kernel"]))
105  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HION7", AcceptAlgs=["HION7Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
106 
107  return acc
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
python.InDetToolsConfig.TrackParticleThinningCfg
def TrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:424
python.CFElements.seqAND
def seqAND(name, subs=[])
Definition: CFElements.py:25
python.InDetToolsConfig.JetTrackParticleThinningCfg
def JetTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:526
HION7.HION7Cfg
def HION7Cfg(flags)
Definition: HION7.py:77
python.TriggerInterface.TrigDecisionToolCfg
def TrigDecisionToolCfg(flags)
Definition: TriggerInterface.py:14
HION7.HION7SkimmingToolCfg
def HION7SkimmingToolCfg(flags)
Skiming.
Definition: HION7.py:12
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:216
SlimmingHelper
Definition: SlimmingHelper.py:1
HION7.HION7KernelCfg
def HION7KernelCfg(flags, name='HION7Kernel', **kwargs)
Definition: HION7.py:35