Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
TRIG10.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 #====================================================================
4 # DAOD_TRIG10.py
5 #====================================================================
6 
7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 from AthenaConfiguration.ComponentFactory import CompFactory
9 from AthenaConfiguration.Enums import MetadataCategory
10 
11 # Main algorithm config
13  """Configure the skimming tool"""
14  acc = ComponentAccumulator()
15 
16  TRIG10MetTrigSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool( name = "TRIG10MetTrigSkimmingTool1",
17  TriggerListOR = ["HLT_noalg_L1XE.*","HLT_noalg_L1jXE.*","HLT.*ZeroBias","HLT.*zb.*","HLT.*_eb_.*","HLT.*noPS.*","HLT_noalg_L1RD3.*","HLT_j70_j50a_j0_DJMASS1000j50dphi200x400deta.*"] )
18  acc.addPublicTool(TRIG10MetTrigSkimmingTool, primary = True)
19 
20  return(acc)
21 
23  """Configure the trigger skimming tool"""
24  acc = ComponentAccumulator()
25 
26  from TriggerMenuMT.TriggerAPI.TriggerAPI import TriggerAPI
27  from TriggerMenuMT.TriggerAPI.TriggerEnums import TriggerPeriod, TriggerType
28  TriggerAPI.setConfigFlags(flags)
29  singleMuTriggers = TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2015, TriggerType.mu_single) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2016, TriggerType.mu_single) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2017, TriggerType.mu_single) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2018, TriggerType.mu_single) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.future, TriggerType.mu_single)
30  singleElTriggers = TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2015, TriggerType.el_single) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2016, TriggerType.el_single) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2017, TriggerType.el_single) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.y2018, TriggerType.el_single) + TriggerAPI.getLowestUnprescaled(TriggerPeriod.future, TriggerType.el_single)
31 
32 
33 
34  TRIG10LepTrigSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool( name = "TRIG10LepTrigSkimmingTool1",
35  TriggerListOR = singleMuTriggers+singleElTriggers)
36 
37  acc.addPublicTool(TRIG10LepTrigSkimmingTool, primary = True)
38 
39  return acc
40 
42  """Configure the string skimming tool"""
43 
44  acc = ComponentAccumulator()
45 
46  cutExpression = "(count(Electrons.DFCommonElectronsLHLoose && Electrons.pt > (24 * GeV) && abs(Electrons.eta) < 2.47) + count(Muons.DFCommonMuonPassPreselection && Muons.pt > (24*GeV) && abs(Muons.eta) < 2.47) ) >= 1"
47 
48  TRIG10StringSkimmingTool = CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "TRIG10StringSkimmingTool",
49  expression = cutExpression)
50 
51  acc.addPublicTool(TRIG10StringSkimmingTool, primary = True)
52 
53  return(acc)
54 
55 
56 # Main algorithm config
57 def TRIG10KernelCfg(flags, name='TRIG10Kernel', **kwargs):
58  """Configure the derivation framework driving algorithm (kernel) for TRIG10"""
59  acc = ComponentAccumulator()
60 
61  # Skimming
62  TRIG10MetTrigSkimmingTool = acc.getPrimaryAndMerge(TRIG10MetTrigSkimmingToolCfg(flags))
63  TRIG10LepTrigSkimmingTool = acc.getPrimaryAndMerge(TRIG10LepTrigSkimmingToolCfg(flags))
64  TRIG10StringSkimmingTool = acc.getPrimaryAndMerge(TRIG10StringSkimmingToolCfg(flags))
65 
66  TRIG10LepTrigStringSkimmingTool = CompFactory.DerivationFramework.FilterCombinationAND(name="TRIG10LepTrigStringSkimmingTool", FilterList=[TRIG10LepTrigSkimmingTool, TRIG10StringSkimmingTool] )
67  acc.addPublicTool(TRIG10LepTrigStringSkimmingTool)
68  TRIG10SkimmingTool = CompFactory.DerivationFramework.FilterCombinationOR(name="TRIG10SkimmingTool",
69  FilterList=[TRIG10LepTrigStringSkimmingTool, TRIG10MetTrigSkimmingTool])
70  acc.addPublicTool(TRIG10SkimmingTool, primary = True)
71 
72  # Common augmentations
73  from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
74  acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
75 
76  from DerivationFrameworkInDet.InDetToolsConfig import MuonTrackParticleThinningCfg, EgammaTrackParticleThinningCfg, TauTrackParticleThinningCfg
77 
78  muonTPThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
79  flags,
80  name = kwargs['StreamName']+"MuonTPThinningTool",
81  StreamName = kwargs['StreamName'],
82  MuonKey = "Muons",
83  InDetTrackParticlesKey = "InDetTrackParticles"))
84 
85  electronTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
86  flags,
87  name = kwargs['StreamName']+"ElectronTPThinningTool",
88  StreamName = kwargs['StreamName'],
89  SGKey = "Electrons",
90  InDetTrackParticlesKey = "InDetTrackParticles"))
91 
92  photonTPThinningTool = acc.getPrimaryAndMerge(EgammaTrackParticleThinningCfg(
93  flags,
94  name = kwargs['StreamName']+"PhotonTPThinningTool",
95  StreamName = kwargs['StreamName'],
96  SGKey = "Photons",
97  InDetTrackParticlesKey = "InDetTrackParticles",
98  GSFConversionVerticesKey = "GSFConversionVertices"))
99 
100  tauTPThinningTool = acc.getPrimaryAndMerge(TauTrackParticleThinningCfg(
101  flags,
102  name = kwargs['StreamName']+"TauTPThinningTool",
103  StreamName = kwargs['StreamName'],
104  TauKey = "TauJets",
105  InDetTrackParticlesKey = "InDetTrackParticles",
106  DoTauTracksThinning = True,
107  TauTracksKey = "TauTracks"))
108 
109  thinningTools = [muonTPThinningTool,
110  electronTPThinningTool,
111  photonTPThinningTool,
112  tauTPThinningTool]
113 
114 
115  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
116  acc.addEventAlgo(DerivationKernel(name="TRIG10Kernel",
117  ThinningTools = thinningTools,
118  SkimmingTools = [TRIG10SkimmingTool]))
119 
120  return acc
121 
122 
123 def TRIG10Cfg(flags):
124 
125  acc = ComponentAccumulator()
126 
127  # Get the lists of triggers needed for trigger matching.
128  # This is needed at this scope (for the slimming) and further down in the config chain
129  # for actually configuring the matching, so we create it here and pass it down
130  # TODO: this should ideally be called higher up to avoid it being run multiple times in a train
131  from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
132  TRIG10TriggerListsHelper = TriggerListsHelper(flags)
133 
134  # Skimming, thinning, augmentation
135  acc.merge(TRIG10KernelCfg(flags, name="TRIG10Kernel", StreamName = 'StreamDAOD_TRIG10', TriggerListsHelper = TRIG10TriggerListsHelper))
136 
137  # ============================
138  # Define contents of the format
139  # =============================
140  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
141  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
142  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
143 
144  TRIG10SlimmingHelper = SlimmingHelper("TRIG10SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
145 
146 
147  TRIG10SlimmingHelper.SmartCollections = ["Electrons", "Muons", "Photons", "TauJets", "PrimaryVertices", "EventInfo",
148  "AntiKt4EMTopoJets", "AntiKt4EMPFlowJets", "BTagging_AntiKt4EMPFlow",
149  "MET_Baseline_AntiKt4EMTopo","MET_Baseline_AntiKt4EMPFlow","InDetTrackParticles"]
150 
151 
152  TRIG10SlimmingHelper.AllVariables = ["HLT_xAOD__TrigMissingETContainer_TrigEFMissingET",
153  "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht",
154  "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl_PS",
155  "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl_PUC",
156  "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl",
157  "LVL1EnergySumRoI",
158  "LVL1JetRoIs",
159  "LVL1JetEtRoI",
160  "MET_Core_AntiKt4EMTopo", "MET_Core_AntiKt4EMPFlow",
161  "METAssoc_AntiKt4EMTopo", "METAssoc_AntiKt4EMPFlow"]
162 
163  TRIG10SlimmingHelper.ExtraVariables = ["AntiKt4EMTopoJets.Timing", "AntiKt4EMPFlowJets.Timing",
164  "InDetTrackParticles.DFMETTrigNominalTVA"]
165 
166  # Trigger content
167  TRIG10SlimmingHelper.IncludeTriggerNavigation = False
168  TRIG10SlimmingHelper.IncludeJetTriggerContent = False
169  TRIG10SlimmingHelper.IncludeMuonTriggerContent = False
170  TRIG10SlimmingHelper.IncludeEGammaTriggerContent = False
171  TRIG10SlimmingHelper.IncludeTauTriggerContent = False
172  TRIG10SlimmingHelper.IncludeEtMissTriggerContent = False
173  TRIG10SlimmingHelper.IncludeBJetTriggerContent = False
174  TRIG10SlimmingHelper.IncludeBPhysTriggerContent = False
175  TRIG10SlimmingHelper.IncludeMinBiasTriggerContent = False
176 
177  TRIG10SlimmingHelper.AllVariables += ['HLT_MET_tcpufit','HLT_MET_cell','HLT_MET_trkmht','HLT_MET_cvfpufit','HLT_MET_pfopufit','HLT_MET_mhtpufit_em','HLT_MET_mhtpufit_pf','HLT_MET_pfsum','HLT_MET_pfsum_vssk','HLT_MET_pfsum_cssk','HLT_MET_nn','L1_jFexMETRoI','L1_jFexMETxRoI','L1_gMETComponentsJwoj','L1_gMETComponentsRms','L1_gMETComponentsNoiseCut']
178 
179  # Output stream
180  TRIG10ItemList = TRIG10SlimmingHelper.GetItemList()
181  acc.merge(OutputStreamCfg(flags, "DAOD_TRIG10", ItemList=TRIG10ItemList, AcceptAlgs=["TRIG10Kernel"]))
182  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_TRIG10", AcceptAlgs=["TRIG10Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
183 
184  return acc
185 
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, keepProvenanceTagsRegEx=None, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:16
TRIG10.TRIG10KernelCfg
def TRIG10KernelCfg(flags, name='TRIG10Kernel', **kwargs)
Definition: TRIG10.py:57
TRIG10.TRIG10Cfg
def TRIG10Cfg(flags)
Definition: TRIG10.py:123
TRIG10.TRIG10StringSkimmingToolCfg
def TRIG10StringSkimmingToolCfg(flags)
Definition: TRIG10.py:41
python.InDetToolsConfig.MuonTrackParticleThinningCfg
def MuonTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:542
python.InDetToolsConfig.TauTrackParticleThinningCfg
def TauTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:553
TRIG10.TRIG10LepTrigSkimmingToolCfg
def TRIG10LepTrigSkimmingToolCfg(flags)
Definition: TRIG10.py:22
TRIG10.TRIG10MetTrigSkimmingToolCfg
def TRIG10MetTrigSkimmingToolCfg(flags)
Definition: TRIG10.py:12
python.InDetToolsConfig.EgammaTrackParticleThinningCfg
def EgammaTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:593
python.PhysCommonConfig.PhysCommonAugmentationsCfg
def PhysCommonAugmentationsCfg(flags, **kwargs)
Definition: PhysCommonConfig.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.HION12.DerivationKernel
DerivationKernel
Definition: HION12.py:66