ATLAS Offline Software
HION4.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 # HION4.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 
16  ExtraData = []
17  ExtraData += ['xAOD::MuonContainer/Muons']
18  ExtraData += ['xAOD::ElectronContainer/Electrons']
19  ExtraData += ['xAOD::PhotonContainer/Photons']
20  ExtraData += ['xAOD::TrackParticleContainer/InDetTrackParticles']
21 
22  acc.addSequence( seqAND("HION4Sequence") )
23  acc.getSequence("HION4Sequence").ExtraDataForDynamicConsumers = ExtraData
24  acc.getSequence("HION4Sequence").ProcessDynamicDataDependencies = True
25 
26  muonsRequirements = '(Muons.pt >= 2.0*GeV) && (abs(Muons.eta) < 2.6)'
27  muonOnlySelection = 'count('+muonsRequirements+') >= 1'
28 
29  electronsRequirements = '(Electrons.pt > 2.0*GeV) && (abs(Electrons.eta) < 2.6)'
30  electronOnlySelection = 'count('+electronsRequirements+') >= 1'
31 
32  photonsRequirements = '(Photons.pt >= 2.0*GeV)'
33  photonOnlySelection = 'count('+photonsRequirements+') >=2'
34 
35  electronPhotonSelection = '(count('+electronsRequirements+') + count('+photonsRequirements+')) >= 2'
36 
37  trackRequirements = '(InDetTrackParticles.pt >= 0.2*GeV) && (abs(InDetTrackParticles.eta) < 2.5)'
38  trackOnlySelection = '( count('+trackRequirements+') >= 2 && 5 >= count('+trackRequirements+') )'
39 
40  tightTrackRequirements = '(InDetTrackParticles.pt >= 1*GeV) && (abs(InDetTrackParticles.eta) < 2.5)'
41  tightTrackOnlySelection = '( count('+tightTrackRequirements+') == 2 )'
42 
43  objectSelection = '('+muonOnlySelection+' || '+electronOnlySelection+' || '+photonOnlySelection+' || '+electronPhotonSelection+' || '+trackOnlySelection+')'
44 
45  from DerivationFrameworkHI import ListTriggers
48 
49  expression = '( (' + ' || '.join(triggers) + ') && '+objectSelection+') || ( '+ ' || '.join(VMtrigger)+ ' && '+tightTrackOnlySelection+')'
50 
51  from TrigDecisionTool.TrigDecisionToolConfig import TrigDecisionToolCfg
52  tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
53  acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "HION4StringSkimmingTool",
54  expression = expression,
55  TrigDecisionTool=tdt),
56  primary = True)
57 
58  return(acc)
59 
61  """Configure the example augmentation tool"""
62  acc = ComponentAccumulator()
63  acc.addPublicTool(CompFactory.DerivationFramework.AugmentationDeltaPoverP(name = "HION4AugmentationTool"),
64  primary = True)
65  return(acc)
66 
67 
68 def HION4KernelCfg(flags, name='HION4Kernel', **kwargs):
69  """Configure the derivation framework driving algorithm (kernel)"""
70  acc = ComponentAccumulator()
71 
72  skimmingTool = acc.getPrimaryAndMerge(HION4SkimmingToolCfg(flags))
73  acc.addEventAlgo(CompFactory.DerivationFramework.DerivationKernel(name, SkimmingTools = [skimmingTool]),
74  sequenceName="HION4Sequence")
75  return acc
76 
77 
78 def HION4Cfg(flags):
79 
80  acc = ComponentAccumulator()
81  acc.merge(HION4KernelCfg(flags, name="HION4Kernel",StreamName = "StreamDAOD_HION4"))
82 
83  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
84  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
85  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
86 
87 
89  from DerivationFrameworkHI import ListSlimming
90 
91  HION4SlimmingHelper = SlimmingHelper("HION4SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
92 
93  AllVariables = []
97 
98  HION4SlimmingHelper.SmartCollections = ListSlimming.HION4SmartCollections()
99  HION4SlimmingHelper.ExtraVariables = ListSlimming.HION4ExtraContentAll()
100  HION4SlimmingHelper.AllVariables = AllVariables
101 
102  # Add egamma trigger objects
103  HION4SlimmingHelper.IncludeEGammaTriggerContent = True
104  # Add muon trigger objects
105  HION4SlimmingHelper.IncludeMuonTriggerContent = True
106 
107  HION4ItemList = HION4SlimmingHelper.GetItemList()
108 
109  acc.merge(OutputStreamCfg(flags, "DAOD_HION4", ItemList=HION4ItemList, AcceptAlgs=["HION4Kernel"]))
110  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HION4", AcceptAlgs=["HION4Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
111 
112  return acc
HION4.HION4AugmentationToolCfg
def HION4AugmentationToolCfg(flags)
Definition: HION4.py:60
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
ListSlimming.HION4ExtraContainersElectrons
def HION4ExtraContainersElectrons()
Definition: ListSlimming.py:147
HION4.HION4SkimmingToolCfg
def HION4SkimmingToolCfg(flags)
Skiming.
Definition: HION4.py:12
ListSlimming.HION4SmartCollections
def HION4SmartCollections()
HION4.
Definition: ListSlimming.py:8
HION4.HION4Cfg
def HION4Cfg(flags)
Definition: HION4.py:78
ListSlimming.HION4ExtraContentAll
def HION4ExtraContentAll()
Definition: ListSlimming.py:119
python.CFElements.seqAND
def seqAND(name, subs=[])
Definition: CFElements.py:25
ListSlimming.HION4ExtraContainersTrigger
def HION4ExtraContainersTrigger()
Definition: ListSlimming.py:159
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
HION4.HION4KernelCfg
def HION4KernelCfg(flags, name='HION4Kernel', **kwargs)
Definition: HION4.py:68
ListTriggers.HION4SkimmingTriggersALL
def HION4SkimmingTriggersALL()
Definition: ListTriggers.py:229
python.TriggerInterface.TrigDecisionToolCfg
def TrigDecisionToolCfg(flags)
Definition: TriggerInterface.py:14
ListSlimming.HION4AllVariablesGeneral
def HION4AllVariablesGeneral()
Definition: ListSlimming.py:21
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:216
SlimmingHelper
Definition: SlimmingHelper.py:1
ListTriggers.HION4SkimmingTriggersVM
def HION4SkimmingTriggersVM()
Definition: ListTriggers.py:238