ATLAS Offline Software
L1CALOCore.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 #====================================================================
3 # L1CALOCore.py
4 # Define the list of containers for the L1Calo derivations
5 #====================================================================
6 
7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
9 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
10 from AthenaCommon.Constants import INFO
11 from AthenaConfiguration.ComponentFactory import CompFactory
12 from AthenaConfiguration.Enums import Format, MetadataCategory
13 
14 #
15 def L1CALOCoreCfg(flags, deriv='L1CALO1', **kwargs):
16  """
17  Core fragment for L1CALO derivations
18  """
19  from AthenaCommon.Logging import logging
20  log = logging.getLogger('L1CALO')
21  log.info('Called L1CaloCore config for derivation %s',deriv)
22 
23  streamNameStem = "DAOD_" + deriv
24  streamName = "Stream" + streamNameStem
25 
26  acc = ComponentAccumulator()
27 
28  # the derivation can also be run on pool files e.g. MC - need to switch off many decoders etc..
29  # Note: static content not allowed when running on pool
30  isNotPool = flags.Input.Format is not Format.POOL
31 
32  fillSuperCells=False
33 
34  # has the L1Calo simulation been configured by job flags
35  isL1CaloSim = flags.Trigger.L1.doeFex and flags.Trigger.L1.dojFex and flags.Trigger.L1.dogFex
36 
37  # decode the legacy L1Calo information - required because flags.Trigger.doLVL1 is False
38  if isNotPool:
39  from TrigT1CaloByteStream.LVL1CaloRun2ByteStreamConfig import LVL1CaloRun2ReadBSCfg
40  acc.merge(LVL1CaloRun2ReadBSCfg(flags))
41 
42  # set up thinning tools
43  thinningTools = []
44 
45  # set up legacy trigger tower thinning for L1CALO1
46  if 'L1CALO1' in deriv and isNotPool:
47  from TrigT1CaloCalibTools.L1CaloCalibToolsConfig import LegacyTriggerTowerThinningCfg
48  LegacyTowerThinningTool = acc.getPrimaryAndMerge(LegacyTriggerTowerThinningCfg(
49  flags,
50  name = "L1CALOCaloThinningTool",
51  StreamName = streamName,
52  TriggerTowerLocation = "xAODTriggerTowers",
53  MinCaloCellET = 0.8,
54  MinADC = 36,
55  UseRandom = True,
56  MinRandom = 0.01 ) )
57  thinningTools.append(LegacyTowerThinningTool)
58 
59  # set up decorators
60  # Legacy Trigger Tower decorator
61  if isNotPool:
62  from TrigT1CaloCalibTools.L1CaloCalibToolsConfig import LegacyTriggerTowerDecoratorCfg
63  acc.merge(LegacyTriggerTowerDecoratorCfg(flags, name = 'L1CaloTriggerTowerDecorator'))
64 
65  # setup skimming tool example (AOD data only)
66  skimmingTools = []
67  if not isNotPool and not flags.Input.isMC:
68  # example trigger skimming tool as with JETM10.py
69  skimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool(name = "L1CALOSkimmingTool1",
70  TriggerListOR = ["HLT_noalg_L1XE.*"] )
71  acc.addPublicTool(skimmingTool, primary = True)
72  skimmingTools.append(skimmingTool)
73 
74  #
75  augmentationTools = []
76 
77  # Set up the derivation kernel
78  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
79  acc.addEventAlgo(DerivationKernel(
80  name = "DFL1CALO_KERN",
81  AugmentationTools = augmentationTools,
82  ThinningTools = thinningTools,
83  SkimmingTools = skimmingTools,
84  RunSkimmingFirst = not isNotPool,
85  doChronoStat=(flags.Concurrency.NumThreads <= 1),
86  OutputLevel = INFO))
87 
88  # Phase 1 setup
89  # emulate/decorate the input towers
90  # first need to decode LATOME readout
91  if isNotPool:
92  from L1CaloFEXSim.L1CaloFEXSimCfg import ReadSCellFromByteStreamCfg
93  acc.merge(ReadSCellFromByteStreamCfg(flags))
94 
95  # Emulate jFEX input towers
96  emulatedDataTowersKey = "L1_jFexEmulatedTowers"
97  if flags.Trigger.L1.dojFex and isNotPool:
98  from L1CaloFEXAlgos.FexEmulatedTowersConfig import jFexEmulatedTowersCfg
99  acc.merge(jFexEmulatedTowersCfg(flags, writeKey=emulatedDataTowersKey))
100 
101  # Decorate any jFEX data towers
102  extraJfexInfo = False # for decorating with SCell inputs to the towers
103  if flags.Trigger.L1.dojFex and isNotPool:
104  from L1CaloFEXAlgos.L1CaloFEXAlgosConfig import L1CalojFEXDecoratorCfg
105  acc.merge(L1CalojFEXDecoratorCfg(flags, ExtraInfo=extraJfexInfo))
106 
107  # Decorate the emulated jFEX towers
108  if flags.Trigger.L1.dojFex and isNotPool:
109  acc.merge(L1CalojFEXDecoratorCfg(flags,name='jFexTower2SCellEmulatedDecorator',jTowersReadKey=emulatedDataTowersKey,ExtraInfo=extraJfexInfo))
110 
111  # Emulate eFEX input towers
112  if flags.Trigger.L1.doeFex and isNotPool:
113  from L1CaloFEXAlgos.FexEmulatedTowersConfig import eFexEmulatedTowersCfg
114  eFexEmulatedTool = eFexEmulatedTowersCfg(flags,'L1_eFexEmulatedTowers')
115  acc.merge(eFexEmulatedTool)
116 
117 
118  # Re-simulate from LATOME (for both data and POOL files with SCells)
119  from L1CaloFEXSim.L1CaloFEXSimCfg import L1CaloFEXSimCfg
120  if isNotPool:
121  acc.merge(L1CaloFEXSimCfg(flags, simulateAltTau=True))
122  elif isL1CaloSim:
123  SCellType = flags.Trigger.L1.L1CaloSuperCellContainerName
124  if SCellType in flags.Input.Collections:
125  acc.merge(L1CaloFEXSimCfg(flags, simulateAltTau=True))
126  # Need to deal with database for MC productions where L1Calo DB was not in global tag
127  if flags.Input.isMC:
128  from Campaigns.Utils import Campaign
129  print("campaign",flags.Input.MCCampaign)
130  if flags.Input.MCCampaign != Campaign.MC23e:
131  if flags.Trigger.L1.doeFex:
132  from IOVDbSvc.IOVDbSvcConfig import addOverride
133  acc.merge(addOverride(flags, '/TRIGGER/L1Calo/V1/Calibration/EfexNoiseCuts', 'EfexNoiseCuts-RUN3-MCDEFAULT-TEST-00'))
134  acc.merge(addOverride(flags, '/TRIGGER/L1Calo/V1/Calibration/EfexEnergyCalib', 'EfexEnergyCalib-RUN3-MCDEFAULT-TEST-00'))
135  if flags.Trigger.L1.dojFex:
136  from IOVDbSvc.IOVDbSvcConfig import addOverride
137  acc.merge(addOverride(flags, '/TRIGGER/L1Calo/V1/Calibration/JfexSystemSettings', 'JfexSystemSettings-RUN3-MCDEFAULT-TEST'))
138  acc.merge(addOverride(flags, '/TRIGGER/L1Calo/V1/Calibration/JfexModuleSettings', 'JfexModuleSettings-RUN3-MCDEFAULT-TEST'))
139  acc.merge(addOverride(flags, '/TRIGGER/L1Calo/V1/Calibration/JfexNoiseCuts', 'JfexNoiseCuts-RUN3-MCDEFAULT-TEST'))
140 
141  # decorate the eFEX TOBs
142  if flags.Trigger.L1.doeFex and isNotPool:
143  # Temporary fix to ensure the L1 TOBs are decoded by the Trigger
144  from TrigDecisionTool.TrigDecisionToolConfig import getRun3NavigationContainerFromInput
145  ExtraInputs = [('xAOD::TrigCompositeContainer', 'StoreGateSvc+'+getRun3NavigationContainerFromInput(flags))]
146  acc.addEventAlgo( CompFactory.LVL1.eFexTOBDecorator('eFexTOBDecorator',
147  eFexEMRoIContainer = 'L1_eEMRoI',
148  eFexTauRoIContainer = 'L1_eTauRoI',
149  ExtraInputs=ExtraInputs) )
150  acc.addEventAlgo( CompFactory.LVL1.eFexTOBDecorator('eFexTOBDecoratorSim',
151  eFexEMRoIContainer = 'L1_eEMRoISim',
152  eFexTauRoIContainer = 'L1_eTauRoIAltSim',
153  ExtraInputs=[]) )
154 
155  if fillSuperCells:
156  acc.addEventAlgo( CompFactory.LVL1.eFexTOBSuperCellDecorator('eFexTOBSuperCellDecoratorSim',
157  eFexEMRoIContainer = 'L1_eEMRoISim',
158  eFexTauRoIContainer = 'L1_eTauxRoISim') )
159 
160  # set up the slimming helper
161  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
162 
163  L1CaloSlimmingHelper = SlimmingHelper("L1CaloSlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
164 
165  AllVariables = []
166  StaticContent = []
167  SmartCollections = []
168  ExtraVariables = []
169 
170  L1CaloSlimmingHelper.IncludeTriggerNavigation = True # Trigger info is actually stored only when running on data...
171  L1CaloSlimmingHelper.IncludeAdditionalTriggerContent = False # precludes EGamma/Jet TriggerContent
172 
173  L1CaloSlimmingHelper.IncludeEGammaTriggerContent = True
174  L1CaloSlimmingHelper.IncludeJetTriggerContent = True
175  L1CaloSlimmingHelper.IncludeBJetTriggerContent = True
176  L1CaloSlimmingHelper.IncludeTauTriggerContent = True # does not select any Run3 HLT collections - added below
177  IncludeEtMissTriggerContent = True # very useful to have MET trigger info
178 
179  # Container selection based on share/L1CALO versions
180  # Note: if the container is in the on-the-fly list (ContainersOnTheFly.py) then we do not have to add it to the dictionary
181  # We can do smart slimming if the container is in the smart list (FullListOfSmartContainers.py)
182 
183  # if we do not run the simulation on MC, write SCells
184  if flags.Input.isMC and not isL1CaloSim:
185  L1CaloSlimmingHelper.AppendToDictionary.update({"SCell":"CaloCellContainer"})
186  AllVariables += ["SCell"]
187 
188  # some gymnastics for HLT from RAWD
189  if isNotPool and L1CaloSlimmingHelper.IncludeEGammaTriggerContent:
190  # replicate adding EGammaTriggerContent
191  # switch the eGamma Trigger off for RAW data - smart slimming not required
192  L1CaloSlimmingHelper.IncludeEGammaTriggerContent = False
193  ElToKeep = ['ptcone20', 'ptvarcone20', 'ptcone30', 'ptvarcone30', 'trk_d0','cl_eta2','cl_phi2', 'deltaEta1PearDistortion']
194  ElVars = '.'.join(ElToKeep)
195  StaticContent += ["xAOD::ElectronContainer#HLT_egamma_Electrons"]
196  StaticContent += ["xAOD::ElectronAuxContainer#HLT_egamma_ElectronsAux."+ElVars]
197  StaticContent += ["xAOD::ElectronContainer#HLT_egamma_Electrons_GSF"]
198  StaticContent += ["xAOD::ElectronAuxContainer#HLT_egamma_Electrons_GSFAux."+ElVars]
199  # non-slimmed
200  L1CaloSlimmingHelper.AppendToDictionary.update({"HLT_CaloEMClusters_Electron":"xAOD::CaloClusterContainer",
201  "HLT_CaloEMClusters_ElectronAux":"xAOD::CaloClusterAuxContainer"})
202  AllVariables += ["HLT_CaloEMClusters_Electron"]
203  L1CaloSlimmingHelper.AppendToDictionary.update({"HLT_IDTrack_Electron_IDTrig":"xAOD::TrackParticleContainer",
204  "HLT_IDTrack_Electron_IDTrigAux":"xAOD::TrackParticleAuxContainer"})
205  AllVariables += ["HLT_IDTrack_Electron_IDTrig"]
206  L1CaloSlimmingHelper.AppendToDictionary.update({"HLT_IDTrack_Electron_GSF":"xAOD::TrackParticleContainer",
207  "HLT_IDTrack_Electron_GSFAux":"xAOD::TrackParticleAuxContainer"})
208  AllVariables += ["HLT_IDTrack_Electron_GSF"]
209 
210  if isNotPool and L1CaloSlimmingHelper.IncludeJetTriggerContent:
211  # replicate adding JetTriggerContent - easier because this is genuine smart slimming
212  # Update the dictionary with the containers that will be smart slimmed
213  L1CaloSlimmingHelper.AppendToDictionary.update ({"HLT_AntiKt4EMTopoJets_nojcalib":"xAOD::JetContainer",
214  "HLT_AntiKt4EMTopoJets_nojcalibAux":"xAOD::JetAuxContainer",
215  "HLT_AntiKt4EMTopoJets_nojcalib_ftf":"xAOD::JetContainer",
216  "HLT_AntiKt4EMTopoJets_nojcalib_ftfAux":"xAOD::JetAuxContainer",
217  "HLT_AntiKt4EMTopoJets_subjesIS":"xAOD::JetContainer",
218  "HLT_AntiKt4EMTopoJets_subjesISAux":"xAOD::ShallowAuxContainer",
219  "HLT_AntiKt4EMPFlowJets_nojcalib_ftf":"xAOD::JetContainer",
220  "HLT_AntiKt4EMPFlowJets_nojcalib_ftfAux":"xAOD::JetAuxContainer",
221  "HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf":"xAOD::JetContainer",
222  "HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftfAux":"xAOD::ShallowAuxContainer",
223  "HLT_AntiKt4EMPFlowJets_subjesgscIS_ftf":"xAOD::JetContainer",
224  "HLT_AntiKt4EMPFlowJets_subjesgscIS_ftfAux":"xAOD::ShallowAuxContainer",
225  "HLT_AntiKt10EMPFlowCSSKSoftDropBeta100Zcut10Jets_jes_ftf":"xAOD::JetContainer",
226  "HLT_AntiKt10EMPFlowCSSKSoftDropBeta100Zcut10Jets_jes_ftfAux":"xAOD::JetAuxContainer",
227  "HLT_IDVertex_FS":"xAOD::VertexContainer",
228  "HLT_IDVertex_FSAux":"xAOD::VertexAuxContainer",
229  "HLT_TCEventInfo_jet":"xAOD::TrigCompositeContainer",
230  "HLT_TCEventInfo_jetAux":"xAOD::TrigCompositeAuxContainer",
231  "HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_BTagging": "xAOD::BTaggingContainer",
232  "HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_BTaggingAux": "xAOD::BTaggingAuxContainer",
233  "HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_bJets": "xAOD::JetContainer",
234  "HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_bJetsAux": "xAOD::JetAuxContainer"})
235 
236  AllVariables += ["HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_BTagging", "HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_bJets"]
237 
238  if L1CaloSlimmingHelper.IncludeTauTriggerContent:
239  L1CaloSlimmingHelper.AppendToDictionary.update ({"HLT_TrigTauRecMerged_MVA":"xAOD::TauJetContainer",
240  "HLT_TrigTauRecMerged_MVAAux":"xAOD::TauJetAuxContainer",
241  "HLT_TrigTauRecMerged_LLP":"xAOD::TauJetContainer",
242  "HLT_TrigTauRecMerged_LLPAux":"xAOD::TauJetAuxContainer",
243  "HLT_TrigTauRecMerged_LRT":"xAOD::TauJetContainer",
244  "HLT_TrigTauRecMerged_LRTAux":"xAOD::TauJetAuxContainer",
245  "HLT_TrigTauRecMerged_CaloMVAOnly":"xAOD::TauJetContainer",
246  "HLT_TrigTauRecMerged_CaloMVAOnlyAux":"xAOD::TauJetAuxContainer"})
247  AllVariables += ["HLT_TrigTauRecMerged_MVA", "HLT_TrigTauRecMerged_LLP", "HLT_TrigTauRecMerged_LRT", "HLT_TrigTauRecMerged_CaloMVAOnly"]
248 
249  if IncludeEtMissTriggerContent:
250  L1CaloSlimmingHelper.AppendToDictionary.update ({"HLT_MET_tcpufit":"xAOD::TrigMissingETContainer",
251  "HLT_MET_tcpufitAux":"xAOD::TrigMissingETAuxContainer",
252  "HLT_MET_cell":"xAOD::TrigMissingETContainer",
253  "HLT_MET_cellAux":"xAOD::TrigMissingETAuxContainer", # not present
254  "HLT_MET_trkmht":"xAOD::TrigMissingETContainer",
255  "HLT_MET_trkmhtAux":"xAOD::TrigMissingETAuxContainer",
256  "HLT_MET_cvfpufit":"xAOD::TrigMissingETContainer",
257  "HLT_MET_cvfpufitAux":"xAOD::TrigMissingETAuxContainer",
258  "HLT_MET_pfopufit":"xAOD::TrigMissingETContainer",
259  "HLT_MET_pfopufitAux":"xAOD::TrigMissingETAuxContainer",
260  "HLT_MET_mhtpufit_em":"xAOD::TrigMissingETContainer",
261  "HLT_MET_mhtpufit_emAux":"xAOD::TrigMissingETAuxContainer",
262  "HLT_MET_mhtpufit_pf":"xAOD::TrigMissingETContainer",
263  "HLT_MET_mhtpufit_pfAux":"xAOD::TrigMissingETAuxContainer",
264  "HLT_MET_pfsum":"xAOD::TrigMissingETContainer",
265  "HLT_MET_pfsumAux":"xAOD::TrigMissingETAuxContainer",
266  "HLT_MET_pfsum_vssk":"xAOD::TrigMissingETContainer",
267  "HLT_MET_pfsum_vsskAux":"xAOD::TrigMissingETAuxContainer",
268  "HLT_MET_pfsum_cssk":"xAOD::TrigMissingETContainer",
269  "HLT_MET_pfsum_csskAux":"xAOD::TrigMissingETAuxContainer",
270  "HLT_MET_nn":"xAOD::TrigMissingETContainer",
271  "HLT_MET_nnAux":"xAOD::TrigMissingETAuxContainer"})
272 
273  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"]
274 
275  # Generic event info
276  L1CaloSlimmingHelper.AppendToDictionary.update({"EventInfo":"xAOD::EventInfo","EventInfoAux":"xAOD::EventAuxInfo"})
277 
278  # We keep all of EventInfo rather than smart slim
279  AllVariables += ["EventInfo","Kt4EMPFlowEventShape"]
280 
281  # Physics Objects
282  # Those for which there is smart slimming but not in the on the fly list
283  L1CaloSlimmingHelper.AppendToDictionary.update (
284  {"Muons":"xAOD::MuonContainer", "MuonsAux":"xAOD::MuonAuxContainer",
285  "Photons":"xAOD::PhotonContainer", "PhotonsAux":"xAOD::PhotonAuxContainer",
286  "TauJets":"xAOD::TauJetContainer", "TauJetsAux":"xAOD::TauJetAuxContainer"}
287  )
288  AllVariables += ["AntiKt4EMPFlowJets","AntiKt10LCTopoJets","Muons","Photons"]
289  AllVariables += ["AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets"]
290  # TauJets require smart slimming in order not to cause issues
291  SmartCollections += ["TauJets"]
292 
293  # Use unslimmed electrons in order to use Likelihood qualities
294  L1CaloSlimmingHelper.AppendToDictionary.update (
295  {"Electrons":"xAOD::ElectronContainer", "ElectronsAux":"xAOD::ElectronAuxContainer"} )
296  AllVariables += ["Electrons"]
297 
298  L1CaloSlimmingHelper.AppendToDictionary.update (
299  {"ForwardElectrons":"xAOD::ElectronContainer", "ForwardElectronsAux":"xAOD::ElectronAuxContainer"} )
300  AllVariables += ["ForwardElectrons"]
301 
302  # Missing ET - unslimmed container
303  AllVariables += ["METAssoc_AntiKt4EMPFlow"]
304 
305  # using MET slimming as per share/L1CALOX.py
306  if isNotPool:
307  StaticContent += ["xAOD::MissingETContainer#MET_Reference_AntiKt4EMPFlow"]
308  StaticContent += ["xAOD::MissingETAuxContainer#MET_Reference_AntiKt4EMPFlowAux.-ConstitObjectLinks.-ConstitObjectWeights"]
309 
310  StaticContent += ["xAOD::MissingETContainer#MET_Core_AntiKt4EMPFlow"]
311  StaticContent += ["xAOD::MissingETAuxContainer#MET_Core_AntiKt4EMPFlowAux.name.mpx.mpy.sumet.source"]
312 
313  StaticContent += ["xAOD::MissingETContainer#MET_Track"]
314  StaticContent += ["xAOD::MissingETAuxContainer#MET_TrackAux.name.mpx.mpy"]
315  else:
316  AllVariables += ["MET_Reference_AntiKt4EMPFlow"]
317  AllVariables += ["MET_Core_AntiKt4EMPFlow"]
318  L1CaloSlimmingHelper.AppendToDictionary.update (
319  {"MET_Track":"xAOD::MissingETContainer", "MET_TrackAux":"xAOD::MissingETAuxContainer"} )
320  AllVariables += ["MET_Track"]
321 
322  # Primary vertices
323  if isNotPool:
324  StaticContent += ["xAOD::VertexContainer#PrimaryVertices"]
325  StaticContent += ["xAOD::VertexAuxContainer#PrimaryVerticesAux.-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV"]
326  else:
327  L1CaloSlimmingHelper.AppendToDictionary.update(
328  {"PrimaryVertices":"xAOD::VertexContainer","PrimaryVerticesAux":"xAOD::VertexAuxContainer"}
329  )
330  AllVariables += ["PrimaryVertices"]
331 
332 
333  # Egamma CP additions
334  L1CaloSlimmingHelper.AppendToDictionary.update (
335  {"egammaTopoSeededClusters":"xAOD::CaloClusterContainer","egammaTopoSeededClustersAux":"xAOD::CaloClusterAuxContainer"}
336  )
337  AllVariables += ["egammaTopoSeededClusters"]
338 
339  # GSF vertices and tracks
340  if isNotPool:
341  StaticContent += ["xAOD::VertexContainer#GSFConversionVertices"]
342  # we have to disable vxTrackAtVertex branch since it is not xAOD compatible
343  StaticContent += ["xAOD::VertexAuxContainer#GSFConversionVerticesAux.-vxTrackAtVertex"]
344  #
345  trackParticleAuxExclusions="-caloExtension.-cellAssociation.-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition"
346  StaticContent += ["xAOD::TrackParticleContainer#GSFTrackParticles"]
347  StaticContent += ["xAOD::TrackParticleAuxContainer#GSFTrackParticlesAux."+trackParticleAuxExclusions]
348  else:
349  L1CaloSlimmingHelper.AppendToDictionary.update (
350  {"GSFConversionVertices":"xAOD::VertexContainer",
351  "GSFConversionVerticesAux":"xAOD::VertexAuxContainer",
352  "GSFTrackParticles":"xAOD::TrackParticleContainer",
353  "GSFTrackParticlesAux":"xAOD::TrackParticleAuxContainer"}
354  )
355  AllVariables += ["GSFConversionVertices","GSFTrackParticles"]
356 
357  L1CaloSlimmingHelper.AppendToDictionary.update (
358  {"egammaClusters":"xAOD::CaloClusterContainer",
359  "egammaClustersAux":"xAOD::CaloClusterAuxContainer",
360  "TauPi0Clusters":"xAOD::CaloClusterContainer",
361  "TauPi0ClustersAux":"xAOD::CaloClusterAuxContainer",
362  "CaloCalTopoClusters":"xAOD::CaloClusterContainer",
363  "CaloCalTopoClustersAux":"xAOD::CaloClusterAuxContainer",
364  "MuonSegments":"xAOD::MuonSegmentContainer",
365  "MuonSegmentsAux":"xAOD::MuonSegmentAuxContainer"}
366  )
367  AllVariables += ["egammaClusters","TauPi0Clusters","CaloCalTopoClusters","MuonSegments"]
368 
369  # Add b-tagging information directly using ExtraVariables - as done for PHYSLITE
370  ExtraVariables += [
371  'BTagging_AntiKt4EMPFlow.DL1dv01_pu.DL1dv01_pc.DL1dv01_pb.GN2v00_pu.GN2v00_pc.GN2v00_pb'
372  ]
373 
374  # L1Calo information
375  # Legacy RoI Containers
376  L1CaloSlimmingHelper.AppendToDictionary.update (
377  {"LVL1EmTauRoIs":"xAOD::EmTauRoIContainer",
378  "LVL1EmTauRoIsAux":"xAOD::EmTauRoIAuxContainer",
379  "LVL1EnergySumRoI":"xAOD::EnergySumRoI",
380  "LVL1EnergySumRoIAux":"xAOD::EnergySumRoIAuxInfo",
381  "LVL1JetEtRoI":"xAOD::JetEtRoI",
382  "LVL1JetEtRoIAux":"xAOD::JetEtRoIAuxInfo",
383  "LVL1JetRoIs":"xAOD::JetRoIContainer",
384  "LVL1JetRoIsAux":"xAOD::JetRoIAuxContainer",
385  "LVL1MuonRoIs":"xAOD::MuonRoIContainer",
386  "LVL1MuonRoIsAux":"xAOD::MuonRoIAuxContainer"}
387  )
388  AllVariables += [ "LVL1EmTauRoIs","LVL1EnergySumRoI","LVL1JetEtRoI","LVL1JetRoIs","LVL1MuonRoIs"]
389 
390  # Legacy sub-systems
391  L1CaloSlimmingHelper.AppendToDictionary.update (
392  {"JEMTobRoIsRoIB":"xAOD::JEMTobRoIContainer",
393  "JEMTobRoIsRoIBAux":"xAOD::JEMTobRoIAuxContainer",
394  "JEMTobRoIs":"xAOD::JEMTobRoIContainer",
395  "JEMTobRoIsAux":"xAOD::JEMTobRoIAuxContainer",
396  "JEMEtSums":"xAOD::JEMEtSumsContainer",
397  "JEMEtSumsAux":"xAOD::JEMEtSumsAuxContainer"}
398  )
399  AllVariables += ["JEMTobRoIsRoIB",
400  "JEMTobRoIs",
401  "JEMEtSums"]
402 
403  L1CaloSlimmingHelper.AppendToDictionary.update (
404  {"CMXCPHits":"xAOD::CMXCPHitsContainer",
405  "CMXCPHitsAux":"xAOD::CMXCPHitsAuxContainer",
406  "CMXCPTobs":"xAOD::CMXCPTobContainer",
407  "CMXCPTobsAux":"xAOD::CMXCPTobAuxContainer",
408  "CMXEtSums":"xAOD::CMXEtSumsContainer",
409  "CMXEtSumsAux":"xAOD::CMXEtSumsAuxContainer",
410  "CMXJetHits":"xAOD::CMXJetHitsContainer",
411  "CMXJetHitsAux":"xAOD::CMXJetHitsAuxContainer",
412  "CMXJetTobs":"xAOD::CMXJetTobContainer",
413  "CMXJetTobsAux":"xAOD::CMXJetTobAuxContainer",
414  "CMXRoIs":"xAOD::CMXRoIContainer",
415  "CMXRoIsAux":"xAOD::CMXRoIAuxContainer"}
416  )
417  AllVariables += ["CMXCPHits",
418  "CMXCPTobs",
419  "CMXEtSums",
420  "CMXJetHits",
421  "CMXJetTobs",
422  "CMXRoIs"]
423 
424 
425  L1CaloSlimmingHelper.AppendToDictionary.update (
426  {"CPMTobRoIs":"xAOD::CPMTobRoIContainer",
427  "CPMTobRoIsAux":"xAOD::CPMTobRoIAuxContainer",
428  "CPMTobRoIsRoIB":"xAOD::CPMTobRoIContainer",
429  "CPMTobRoIsRoIBAux":"xAOD::CPMTobRoIAuxContainer",
430  "CPMTowers":"xAOD::CPMTowerContainer",
431  "CPMTowersAux":"xAOD::CPMTowerAuxContainer",
432  "CPMTowersOverlap":"xAOD::CPMTowerContainer",
433  "CPMTowersOverlapAux":"xAOD::CPMTowerAuxContainer",
434  "RODHeaders":"xAOD::RODHeaderContainer",
435  "RODHeadersAux":"xAOD::RODHeaderAuxContainer",
436  "xAODTriggerTowers":"xAOD::TriggerTowerContainer",
437  "xAODTriggerTowersAux":"xAOD::TriggerTowerAuxContainer",
438  "JetElements":"xAOD::JetElementContainer",
439  "JetElementsAux":"xAOD::JetElementAuxContainer",
440  "JetElementsOverlap":"xAOD::JetElementContainer",
441  "JetElementsOverlapAux":"xAOD::JetElementAuxContainer",
442  "L1TopoRawData":"xAOD::L1TopoRawDataContainer",
443  "L1TopoRawDataAux":"xAOD::L1TopoRawDataAuxContainer",
444  "L1_Phase1L1TopoRAWData":"xAOD::L1TopoRawDataContainer",
445  "L1_Phase1L1TopoRAWDataAux":"xAOD::L1TopoRawDataAuxContainer"}
446  )
447  AllVariables += ["CPMTobRoIs",
448  "CPMTobRoIsRoIB",
449  "CPMTowers",
450  "CPMTowersOverlap",
451  "RODHeaders",
452  "xAODTriggerTowers",
453  "JetElements",
454  "JetElementsOverlap",
455  "L1TopoRawData",
456  "L1_Phase1L1TopoRAWData"]
457 
458 
459  # Phase 1
460  # TOBs from HLT
461  L1CaloSlimmingHelper,AllVariables = addEfexTOBs(L1CaloSlimmingHelper, AllVariables)
462  L1CaloSlimmingHelper,AllVariables = addJfexTOBs(L1CaloSlimmingHelper, AllVariables)
463  L1CaloSlimmingHelper,AllVariables = addGfexTOBs(L1CaloSlimmingHelper, AllVariables)
464 
465  # re-simulated
466  L1CaloSlimmingHelper,AllVariables = addEfexTOBs(L1CaloSlimmingHelper, AllVariables, "Sim")
467  L1CaloSlimmingHelper,AllVariables = addJfexTOBs(L1CaloSlimmingHelper, AllVariables, "Sim")
468  L1CaloSlimmingHelper,AllVariables = addGfexTOBs(L1CaloSlimmingHelper, AllVariables, "Sim")
469 
470 
471  # FEX input data towers
472  L1CaloSlimmingHelper.AppendToDictionary.update (
473  {"L1_eFexDataTowers":"xAOD::eFexTowerContainer",
474  "L1_eFexDataTowersAux":"xAOD::eFexTowerAuxContainer",
475  "L1_jFexDataTowers":"xAOD::jFexTowerContainer",
476  "L1_jFexDataTowersAux":"xAOD::jFexTowerAuxContainer",
477  "L1_gFexDataTowers":"xAOD::gFexTowerContainer",
478  "L1_gFexDataTowersAux":"xAOD::gFexTowerAuxContainer",
479  "L1_gFexDataTowers50":"xAOD::gFexTowerContainer",
480  "L1_gFexDataTowers50Aux":"xAOD::gFexTowerAuxContainer"}
481  )
482  AllVariables += ["L1_eFexDataTowers","L1_jFexDataTowers","L1_gFexDataTowers","L1_gFexDataTowers50"]
483 
484  # Emulated eFEX input tower data from LATOME
485  L1CaloSlimmingHelper.AppendToDictionary.update (
486  {"L1_eFexEmulatedTowers":"xAOD::eFexTowerContainer",
487  "L1_eFexEmulatedTowersAux":"xAOD::eFexTowerAuxContainer"}
488  )
489  AllVariables += ["L1_eFexEmulatedTowers"]
490 
491  # Emulated jFEX input tower data from LATOME
492  L1CaloSlimmingHelper.AppendToDictionary.update (
493  {"L1_jFexEmulatedTowers":"xAOD::jFexTowerContainer",
494  "L1_jFexEmulatedTowersAux":"xAOD::jFexTowerAuxContainer"}
495  )
496  AllVariables += ["L1_jFexEmulatedTowers"]
497 
498  # For MC, add emulated gFEX input towers
499  if flags.Input.isMC:
500  L1CaloSlimmingHelper.AppendToDictionary.update (
501  {"L1_gFexEmulatedTowers":"xAOD::gFexTowerContainer",
502  "L1_gFexEmulatedTowersAux":"xAOD::gFexTowerAuxContainer"}
503  )
504  AllVariables += [ "L1_gFexEmulatedTowers" ]
505 
506  # In case MC has no jets, b-tagging or MET, schedule reconstruction
507  if flags.Input.isMC:
508  from JetRecConfig.StandardSmallRJets import AntiKt4EMPFlow
509  from JetRecConfig.StandardLargeRJets import AntiKt10LCTopo_noVR, AntiKt10UFOCSSKSoftDrop_trigger
510  jets_to_schedule = [jet for jet in (AntiKt4EMPFlow, AntiKt10LCTopo_noVR, AntiKt10UFOCSSKSoftDrop_trigger)
511  if jet.fullname() not in flags.Input.Collections]
512 
513  if jets_to_schedule:
514  from JetRecConfig.JetRecConfig import JetRecCfg
515  for container in jets_to_schedule:
516  acc.merge(JetRecCfg(flags, container))
517 
518  jet_collections = set([_.fullname().replace('Jets','') for _ in jets_to_schedule])
519  btag_jet_collections = set(['AntiKt4EMPFlow'])
520  met_jet_collections = set(['AntiKt4EMPFlow'])
521 
522  if jet_collections & btag_jet_collections:
523  log.info('Scheduling b-tagging of rebuilt jets')
524  from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
525  acc.merge(BeamSpotCondAlgCfg(flags))
526  from BTagging.BTagConfig import BTagRecoSplitCfg
527  #
528  for container in jet_collections & btag_jet_collections:
529  acc.merge(BTagRecoSplitCfg(flags, [container]))
530 
531  # MET
532  if jet_collections & met_jet_collections:
533  log.info('Scheduling rebuild of standard MET')
534  from METReconstruction.METAssociatorCfg import METAssociatorCfg
535  from METUtilities.METMakerConfig import getMETMakerAlg
536  for container in jet_collections & met_jet_collections:
537  if container == 'AntiKt4EMPFlow':
538  # build links between FlowElements and electrons, photons, muons and taus
539  log.info('Scheduling FlowElement linking')
540  from eflowRec.PFCfg import PFGlobalFlowElementLinkingCfg
541  acc.merge(PFGlobalFlowElementLinkingCfg(flags))
542  acc.merge(METAssociatorCfg(flags, container))
543  acc.addEventAlgo(getMETMakerAlg(container))
544  from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
545  acc.merge(CaloNoiseCondAlgCfg(flags)) # Prereq for Calo MET
546  from METReconstruction.METCalo_Cfg import METCalo_Cfg
547  acc.merge(METCalo_Cfg(flags))
548 
549 
550  # Truth collections
551  if flags.Input.isMC:
552  from DerivationFrameworkMCTruth.MCTruthCommonConfig import PreJetMCTruthAugmentationsCfg
553  from DerivationFrameworkMCTruth.MCTruthCommonConfig import AddTruthCollectionNavigationDecorationsCfg,AddBornLeptonCollectionCfg
554  from DerivationFrameworkMCTruth.MCTruthCommonConfig import PostJetMCTruthAugmentationsCfg
555 
556  acc.merge(PreJetMCTruthAugmentationsCfg(flags,decorationDressing = 'dressedPhoton'))
557  #
558  from JetRecConfig.StandardSmallRJets import AntiKt4Truth,AntiKt4TruthWZ,AntiKt4TruthDressedWZ,AntiKtVRTruthCharged
559  from JetRecConfig.StandardLargeRJets import AntiKt10TruthTrimmed,AntiKt10TruthSoftDrop
560  from JetRecConfig.JetRecConfig import JetRecCfg
561  jetList = [AntiKt4Truth,AntiKt4TruthWZ,AntiKt4TruthDressedWZ,AntiKtVRTruthCharged,
562  AntiKt10TruthTrimmed,AntiKt10TruthSoftDrop]
563 
564  for jd in jetList:
565  if jd.fullname() not in flags.Input.Collections:
566  acc.merge(JetRecCfg(flags,jd))
567 
568  if ( "xAOD::MissingETContainer#MET_Truth") not in flags.Input.TypedCollections:
569  from METReconstruction.METTruth_Cfg import METTruth_Cfg
570  acc.merge(METTruth_Cfg(flags))
571 
572  acc.merge(PostJetMCTruthAugmentationsCfg(flags, decorationDressing = 'dressedPhoton'))
573  acc.addEventAlgo(CompFactory.DerivationFramework.LockDecorations(name ="L1CALOTruthContentsLockDecoration", Decorations = ['TruthParticles.dressedPhoton']))
574  acc.merge(AddTruthCollectionNavigationDecorationsCfg(flags, ["TruthElectrons", "TruthMuons", "TruthPhotons", "TruthTaus", "TruthNeutrinos"]))
575  # Special collection for Born leptons
576  acc.merge(AddBornLeptonCollectionCfg(flags))
577 
578  L1CaloSlimmingHelper.AppendToDictionary.update (
579  {
580  'HardScatterParticles':'xAOD::TruthParticleContainer','HardScatterParticlesAux':'xAOD::TruthParticleAuxContainer'}
581  )
582 
583  AllVariables += [
584  "TruthElectrons",
585  "TruthMuons",
586  "TruthPhotons",
587  "TruthTaus",
588  "TruthNeutrinos",
589  "BornLeptons",
590  "HardScatterParticles",
591  "MET_Truth",
592  "AntiKt4TruthJets",
593  "AntiKt4TruthWZJets",
594  "AntiKt10TruthTrimmedPtFrac5SmallR20Jets",
595  "AntiKt10TruthSoftDropBeta100Zcut10Jets"
596  ]
597 
598  L1CaloSlimmingHelper.AllVariables = AllVariables
599  L1CaloSlimmingHelper.StaticContent = StaticContent
600  L1CaloSlimmingHelper.SmartCollections = SmartCollections
601  L1CaloSlimmingHelper.ExtraVariables = ExtraVariables
602 
603  # Output stream
604  L1CaloItemList = L1CaloSlimmingHelper.GetItemList()
605  acc.merge(OutputStreamCfg(flags, streamNameStem, ItemList=L1CaloItemList, AcceptAlgs=["DFL1CALO_KERN"]))
606  acc.merge(SetupMetaDataForStreamCfg(flags, streamNameStem, AcceptAlgs=["DFL1CALO_KERN"], createMetadata=[MetadataCategory.CutFlowMetaData,MetadataCategory.TriggerMenuMetaData]))
607 
608  return acc
609 
610 
611 def addEfexTOBs(slimminghelper, allVariables, postFix = ""):
612  """
613  add the list of eFEX containers for given postFix string
614  """
615  slimminghelper.AppendToDictionary.update (
616  {"L1_eEMRoI"+postFix : "xAOD::eFexEMRoIContainer",
617  "L1_eEMRoI"+postFix+"Aux" : "xAOD::eFexEMRoIAuxContainer",
618  "L1_eTauRoI"+postFix : "xAOD::eFexTauRoIContainer",
619  "L1_eTauRoI"+postFix+"Aux" : "xAOD::eFexTauRoIAuxContainer",
620  "L1_eTauRoIAlt"+postFix : "xAOD::eFexTauRoIContainer",
621  "L1_eTauRoIAlt"+postFix+"Aux" : "xAOD::eFexTauRoIAuxContainer",
622  "L1_cTauRoI"+postFix : "xAOD::eFexTauRoIContainer",
623  "L1_cTauRoI"+postFix+"Aux" : "xAOD::eFexTauRoIAuxContainer",
624  "L1_eEMxRoI"+postFix : "xAOD::eFexEMRoIContainer",
625  "L1_eEMxRoI"+postFix+"Aux" : "xAOD::eFexEMRoIAuxContainer",
626  "L1_eTauxRoI"+postFix : "xAOD::eFexTauRoIContainer",
627  "L1_eTauxRoI"+postFix+"Aux" : "xAOD::eFexTauRoIAuxContainer",
628  "L1_eTauxRoIAlt"+postFix : "xAOD::eFexTauRoIContainer",
629  "L1_eTauxRoIAlt"+postFix+"Aux" : "xAOD::eFexTauRoIAuxContainer"} )
630 
631  allVariables += ["L1_eEMRoI" + postFix,
632  "L1_eTauRoI" + postFix,
633  "L1_eTauRoIAlt" + postFix,
634  "L1_cTauRoI" + postFix,
635  "L1_eEMxRoI" + postFix,
636  "L1_eTauxRoI" + postFix,
637  "L1_eTauxRoIAlt" + postFix]
638 
639  return slimminghelper, allVariables
640 
641 
642 def addJfexTOBs(slimminghelper, allVariables, postFix = ""):
643  """
644  add the list of jFEX containers for given postFix string
645  """
646  slimminghelper.AppendToDictionary.update (
647  {"L1_jFexMETRoI"+postFix : "xAOD::jFexMETRoIContainer",
648  "L1_jFexMETRoI"+postFix+"Aux" : "xAOD::jFexMETRoIAuxContainer",
649  "L1_jFexTauRoI"+postFix : "xAOD::jFexTauRoIContainer",
650  "L1_jFexTauRoI"+postFix+"Aux" : "xAOD::jFexTauRoIAuxContainer",
651  "L1_jFexFwdElRoI"+postFix : "xAOD::jFexFwdElRoIContainer",
652  "L1_jFexFwdElRoI"+postFix+"Aux" : "xAOD::jFexFwdElRoIAuxContainer",
653  "L1_jFexSRJetRoI"+postFix : "xAOD::jFexSRJetRoIContainer",
654  "L1_jFexSRJetRoI"+postFix+"Aux" : "xAOD::jFexSRJetRoIAuxContainer",
655  "L1_jFexLRJetRoI"+postFix : "xAOD::jFexLRJetRoIContainer",
656  "L1_jFexLRJetRoI"+postFix+"Aux" : "xAOD::jFexLRJetRoIAuxContainer",
657  "L1_jFexSumETRoI"+postFix : "xAOD::jFexSumETRoIContainer",
658  "L1_jFexSumETRoI"+postFix+"Aux" : "xAOD::jFexSumETRoIAuxContainer",
659  "L1_jFexMETxRoI"+postFix : "xAOD::jFexMETRoIContainer",
660  "L1_jFexMETxRoI"+postFix+"Aux" : "xAOD::jFexMETRoIAuxContainer",
661  "L1_jFexTauxRoI"+postFix : "xAOD::jFexTauRoIContainer",
662  "L1_jFexTauxRoI"+postFix+"Aux" : "xAOD::jFexTauRoIAuxContainer",
663  "L1_jFexFwdElxRoI"+postFix : "xAOD::jFexFwdElRoIContainer",
664  "L1_jFexFwdElxRoI"+postFix+"Aux" : "xAOD::jFexFwdElRoIAuxContainer",
665  "L1_jFexSRJetxRoI"+postFix : "xAOD::jFexSRJetRoIContainer",
666  "L1_jFexSRJetxRoI"+postFix+"Aux" : "xAOD::jFexSRJetRoIAuxContainer",
667  "L1_jFexLRJetxRoI"+postFix : "xAOD::jFexLRJetRoIContainer",
668  "L1_jFexLRJetxRoI"+postFix+"Aux" : "xAOD::jFexLRJetRoIAuxContainer",
669  "L1_jFexSumETxRoI"+postFix : "xAOD::jFexSumETRoIContainer",
670  "L1_jFexSumETxRoI"+postFix+"Aux" : "xAOD::jFexSumETRoIAuxContainer"})
671 
672  allVariables += ["L1_jFexMETRoI" + postFix,
673  "L1_jFexTauRoI" + postFix,
674  "L1_jFexFwdElRoI" + postFix,
675  "L1_jFexSRJetRoI" + postFix,
676  "L1_jFexLRJetRoI" + postFix,
677  "L1_jFexSumETRoI" + postFix,
678  "L1_jFexMETxRoI" + postFix,
679  "L1_jFexTauxRoI" + postFix,
680  "L1_jFexFwdElxRoI" + postFix,
681  "L1_jFexSRJetxRoI" + postFix,
682  "L1_jFexLRJetxRoI" + postFix,
683  "L1_jFexSumETxRoI" + postFix]
684 
685  return slimminghelper, allVariables
686 
687 
688 def addGfexTOBs(slimminghelper, allVariables, postFix = ""):
689  """
690  add the list of gFEX containers for given postFix string
691  """
692  slimminghelper.AppendToDictionary.update (
693  {"L1_gFexRhoRoI"+postFix : "xAOD::gFexJetRoIContainer",
694  "L1_gFexRhoRoI"+postFix+"Aux" : "xAOD::gFexJetRoIAuxContainer",
695  "L1_gFexSRJetRoI"+postFix : "xAOD::gFexJetRoIContainer",
696  "L1_gFexSRJetRoI"+postFix+"Aux" : "xAOD::gFexJetRoIAuxContainer",
697  "L1_gScalarEJwoj"+postFix : "xAOD::gFexGlobalRoIContainer",
698  "L1_gScalarEJwoj"+postFix+"Aux" : "xAOD::gFexGlobalRoIAuxContainer",
699  "L1_gFexLRJetRoI"+postFix : "xAOD::gFexJetRoIContainer",
700  "L1_gFexLRJetRoI"+postFix+"Aux" : "xAOD::gFexJetRoIAuxContainer",
701  "L1_gMETComponentsJwoj"+postFix : "xAOD::gFexGlobalRoIContainer",
702  "L1_gMETComponentsJwoj"+postFix+"Aux" : "xAOD::gFexGlobalRoIAuxContainer",
703  "L1_gMHTComponentsJwoj"+postFix : "xAOD::gFexGlobalRoIContainer",
704  "L1_gMHTComponentsJwoj"+postFix+"Aux" : "xAOD::gFexGlobalRoIAuxContainer",
705  "L1_gMSTComponentsJwoj"+postFix : "xAOD::gFexGlobalRoIContainer",
706  "L1_gMSTComponentsJwoj"+postFix+"Aux" : "xAOD::gFexGlobalRoIAuxContainer"})
707 
708  allVariables += ["L1_gFexRhoRoI" + postFix,
709  "L1_gFexSRJetRoI" + postFix,
710  "L1_gScalarEJwoj" + postFix,
711  "L1_gFexLRJetRoI" + postFix,
712  "L1_gMETComponentsJwoj" + postFix,
713  "L1_gMHTComponentsJwoj" + postFix,
714  "L1_gMSTComponentsJwoj" + postFix]
715 
716  return slimminghelper, allVariables
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
L1CaloFEXSimCfg.ReadSCellFromByteStreamCfg
def ReadSCellFromByteStreamCfg(flags, key='SCell', SCmask=True)
Definition: L1CaloFEXSimCfg.py:24
L1CaloFEXAlgosConfig.L1CalojFEXDecoratorCfg
def L1CalojFEXDecoratorCfg(flags, name="jFexTower2SCellDecorator", jTowersReadKey="L1_jFexDataTowers", ExtraInfo=False, SCMasking=True)
Definition: L1CaloFEXAlgosConfig.py:12
METCalo_Cfg
Definition: METCalo_Cfg.py:1
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.BTagConfig.BTagRecoSplitCfg
def BTagRecoSplitCfg(flags, JetCollection=['AntiKt4EMPFlowJets'])
Definition: BTagConfig.py:114
python.BeamSpotConditionsConfig.BeamSpotCondAlgCfg
def BeamSpotCondAlgCfg(flags, name="BeamSpotCondAlg", **kwargs)
Definition: BeamSpotConditionsConfig.py:7
METMakerConfig.getMETMakerAlg
def getMETMakerAlg(suffix, jetSelection="Tier0", jetColl="")
Definition: METMakerConfig.py:59
L1CALOCore.L1CALOCoreCfg
def L1CALOCoreCfg(flags, deriv='L1CALO1', **kwargs)
Definition: L1CALOCore.py:15
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
L1CaloCalibToolsConfig.LegacyTriggerTowerDecoratorCfg
def LegacyTriggerTowerDecoratorCfg(flags, name, **kwargs)
Definition: L1CaloCalibToolsConfig.py:59
L1CALOCore.addGfexTOBs
def addGfexTOBs(slimminghelper, allVariables, postFix="")
Definition: L1CALOCore.py:688
L1CaloCalibToolsConfig.LegacyTriggerTowerThinningCfg
def LegacyTriggerTowerThinningCfg(flags, name, **kwargs)
Definition: L1CaloCalibToolsConfig.py:11
LVL1CaloRun2ByteStreamConfig.LVL1CaloRun2ReadBSCfg
def LVL1CaloRun2ReadBSCfg(flags, forRoIBResultToxAOD=False)
Definition: LVL1CaloRun2ByteStreamConfig.py:121
FexEmulatedTowersConfig.eFexEmulatedTowersCfg
def eFexEmulatedTowersCfg(flags, name, writeKey="L1_eFexEmulatedTowers")
Definition: FexEmulatedTowersConfig.py:38
METAssociatorCfg
Definition: METAssociatorCfg.py:1
python.MCTruthCommonConfig.AddBornLeptonCollectionCfg
def AddBornLeptonCollectionCfg(flags)
Definition: MCTruthCommonConfig.py:365
python.TrigDecisionToolConfig.getRun3NavigationContainerFromInput
def getRun3NavigationContainerFromInput(flags)
Definition: TrigDecisionToolConfig.py:63
python.JetRecConfig.JetRecCfg
def JetRecCfg(flags, jetdef, returnConfiguredDef=False)
Top level functions returning ComponentAccumulator out of JetDefinition.
Definition: JetRecConfig.py:36
python.CaloNoiseCondAlgConfig.CaloNoiseCondAlgCfg
def CaloNoiseCondAlgCfg(flags, noisetype="totalNoise")
Definition: CaloNoiseCondAlgConfig.py:11
python.MCTruthCommonConfig.PreJetMCTruthAugmentationsCfg
def PreJetMCTruthAugmentationsCfg(flags, **kwargs)
Definition: MCTruthCommonConfig.py:95
Constants
some useful constants -------------------------------------------------—
python.MCTruthCommonConfig.PostJetMCTruthAugmentationsCfg
def PostJetMCTruthAugmentationsCfg(flags, **kwargs)
Definition: MCTruthCommonConfig.py:131
L1CALOCore.addEfexTOBs
def addEfexTOBs(slimminghelper, allVariables, postFix="")
Definition: L1CALOCore.py:611
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
L1CALOCore.addJfexTOBs
def addJfexTOBs(slimminghelper, allVariables, postFix="")
Definition: L1CALOCore.py:642
python.MCTruthCommonConfig.AddTruthCollectionNavigationDecorationsCfg
def AddTruthCollectionNavigationDecorationsCfg(flags, TruthCollections=[], prefix='')
Definition: MCTruthCommonConfig.py:334
python.IOVDbSvcConfig.addOverride
def addOverride(flags, folder, tag, tagType="tag", db=None)
Definition: IOVDbSvcConfig.py:238
FexEmulatedTowersConfig.jFexEmulatedTowersCfg
def jFexEmulatedTowersCfg(flags, name="jFexEmulatedTowerMaker", writeKey="L1_jFexEmulatedTowers")
Definition: FexEmulatedTowersConfig.py:24
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222
SlimmingHelper
Definition: SlimmingHelper.py:1
METTruth_Cfg
Definition: METTruth_Cfg.py:1
python.HION12.DerivationKernel
DerivationKernel
Definition: HION12.py:66
L1CaloFEXSimCfg
Definition: L1CaloFEXSimCfg.py:1
PFCfg.PFGlobalFlowElementLinkingCfg
def PFGlobalFlowElementLinkingCfg(inputFlags, **kwargs)
Definition: PFCfg.py:472