Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
SlimmingHelper.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 
36 
37 from DerivationFrameworkCore.CompulsoryContent import CompulsoryContent, CompulsoryTriggerNavigation, CompulsoryDynamicContent
38 from DerivationFrameworkCore.ContentHandler import ContentHandler
39 from DerivationFrameworkCore.ContainersOnTheFly import ContainersOnTheFly
40 from DerivationFrameworkCore.FullListOfSmartContainers import FullListOfSmartContainers
41 from AthenaConfiguration.Enums import LHCPeriod
42 import PyUtils.Logging as L
43 msg = L.logging.getLogger('DerivationFramework__SlimmingHelper')
44 msg.setLevel(L.logging.INFO)
45 
46 # This list base class allows the slimming helper to be locked after calling BuildFinalItemList
48  def __init__(self,data=[]):
49  list.__init__(self,data)
50  self.__dict__["_locked"] = False
51  def append(self,name):
52  if self._locked is True:
53  msg.error("Attempting to Modify SlimmingHelper after BuildFinalItemList has Been Called")
54  raise RuntimeError("Late Modification to SlimmingHelper do not modify after calling BuildFinalItemList")
55  else:
56  return list.append(self, name)
57  def __setattr__(self,name,value):
58  if self._locked is True:
59  msg.error("Attempting to Modify SlimmingHelper after BuildFinalItemList has Been Called")
60  raise RuntimeError("Late Modification to SlimmingHelper do not modify after calling BuildFinalItemList")
61  else:
62  self.__dict__[name] = value
63  def lock(self):
64  self.__dict__["_locked"] = True
65 
66 # Builds the "NamesAndTypes" map needed to set up the item list
67 def buildNamesAndTypes(*args):
68  namesAndTypes = {}
69  if len(args)==0:
70  from DerivationFrameworkCore.StaticNamesAndTypes import StaticNamesAndTypes
71  namesAndTypes = StaticNamesAndTypes
72  else:
73  for item in args[0]:
74  item = item.split('#')
75  namesAndTypes[item[1].strip('.')] = item[0]
76  return namesAndTypes
77 
79  def __init__(self, inputName, flags, **kwargs):
80  self.__dict__["_locked"] = False
81  self.name = inputName
82  self.FinalItemList = lockable_list() # The final item list that will be appended to the output stream
83  self.StaticContent = lockable_list() # Content added explicitly via old-style content lists
84  self.ExtraVariables = lockable_list() # Content added by users via variable names (dictionary type:[item1,item,..,N])
85  # Smart slimming (only variables needed for CP + kinematics)
87  self.AllVariables = lockable_list() # Containers for which all branches should be kept
89  self.flags = flags
102  self.IncludeFullTriggerEDMLevel = "" # Specify an AllowedOutputFormat from TriggerEDM.py
104  # Choice of whether user provided a typed container list or not (CA vs non-CA)
105  if "NamesAndTypes" in kwargs.keys(): self.NamesAndTypes = buildNamesAndTypes(kwargs["NamesAndTypes"])
106  else: self.NamesAndTypes = buildNamesAndTypes()
107  self.theHandler = ContentHandler(self.name+"Handler",self.NamesAndTypes)
108 
109  # This hack prevents any members from being modified after lock is set to true, this happens in AppendContentToStream
110  def __setattr__(self,name,value):
111  if self._locked is True:
112  msg.error("Attempting to Modify SlimmingHelper "+self.name+" After AppendContentToStream has Been Called")
113  raise RuntimeError("Late Modification to SlimmingHelper, do not modifiy after calling AppendContentToStream")
114  elif type(value)==list:
115  self.__dict__[name] = lockable_list(value)
116  else:
117  self.__dict__[name] = value
118 
119  # Function to check the configuration of the Smart Slimming List
120  def CheckList(self,masterList):
121  conflicted_items=[]
122  for item in CompulsoryContent:
123  if item.endswith("#*"):
124  compare_str=item[:-2].replace("xAOD::","")
125  for m_item in masterList:
126  if m_item.startswith(compare_str) and m_item.replace("Aux.","") not in CompulsoryDynamicContent:
127  conflicted_items.append(m_item)
128  if len(conflicted_items)!=0:
129  msg.error("Slimming list contains " +str(conflicted_items)+" which are already included in compulsory content: please remove these items from slimming list")
130  raise RuntimeError("Conflict in Slimming List and Compulsory Content")
131 
132 
133  # Loops over final ItemList and appends each item to the stream
134  # Used for jobs not set up in the component accumulator
135  def AppendContentToStream(self,Stream):
136  # Check if the SlimmingHelper is locked.
137  # If it is, just loop over the items and append.
138  # If not, build the item list and then append.
139  if self._locked is False:
140  self.BuildFinalItemList()
141  for item in self.FinalItemList:
142  Stream.AddItem(item)
143 
144  # Returns the final item list. Used for component accumulator jobs
145  def GetItemList(self):
146  # Check if the SlimmingHelper is locked.
147  # If it is, just return the item list.
148  # If not, build the item list and then return it.
149  if self._locked is False:
150  self.BuildFinalItemList()
151  return(self.FinalItemList)
152 
154  # Master item list: all items that must be passed to the ContentHandler for processing
155  # This will now be filled
156  masterItemList = []
157  # All variables list: where all variables are requested, no variable lists are needed
158  # This list ensures that variables are not added individually in such cases
159  allVariablesList = []
160  self.AllVariables += CompulsoryDynamicContent
161  # Add all-variable collections
162  if len(self.AllVariables)>0:
163  for item in self.AllVariables: masterItemList.extend(self.GetWholeContentItems(item))
164  for item in masterItemList:
165  if "Aux." in item:
166  allVariablesList.append(item)
167 
168  # Trigger objects: add them by hand to the smart collection list (to keep the previous interface)
169  triggerContent = False
170 
171  if (self.IncludeAdditionalTriggerContent is True):
172  triggerContent = True
173 
174  if (self.IncludeMuonTriggerContent is True):
175  triggerContent = True
176  self.SmartCollections.append("HLT_xAOD__MuonContainer_MuonEFInfo")
177 
178  if (self.IncludeEGammaTriggerContent is True):
179  triggerContent = True
180  self.SmartCollections.append("HLT_xAOD__PhotonContainer_egamma_Photons")
181 
182  if (self.IncludeJetTriggerContent is True):
183  triggerContent = True
184  self.SmartCollections.append("HLT_xAOD__JetContainer_a4tcemsubjesFS")
185  self.SmartCollections.append("HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf") # Run 3 jet collections
186  from DerivationFrameworkCore.JetTriggerFixContent import JetTriggerFixContent
187  for item in JetTriggerFixContent:
188  self.FinalItemList.append(item)
189 
190  if (self.IncludeTrackingTriggerContent is True):
191  triggerContent = True
192  self.SmartCollections.append("HLT_IDVertex_FS")
193  self.SmartCollections.append("HLT_IDTrack_FS_FTF")
194 
195  if (self.IncludeEtMissTriggerContent is True):
196  triggerContent = True
197  self.SmartCollections.append("HLT_xAOD__TrigMissingETContainer_TrigEFMissingET")
198  from DerivationFrameworkCore.EtMissTriggerFixContent import EtMissTriggerFixContent
199  for item in EtMissTriggerFixContent:
200  self.FinalItemList.append(item)
201 
202  if (self.IncludeTauTriggerContent is True):
203  triggerContent = True
204  if self.flags.Trigger.EDMVersion == 2:
205  self.SmartCollections.append("HLT_xAOD__TauJetContainer_TrigTauRecMerged")
206  elif self.flags.Trigger.EDMVersion == 3:
207  self.SmartCollections.append("HLT_TrigTauRecMerged_MVA")
208 
209  if (self.IncludeBJetTriggerContent is True):
210  triggerContent = True
211  self.SmartCollections.append("HLT_xAOD__BTaggingContainer_HLTBjetFex")
212 
213  if (self.IncludeBJetTriggerByYearContent is True):
214  triggerContent = True
215  self.SmartCollections.append("HLT_BJetTriggerByYearContent")
216 
217  if (self.IncludeBPhysTriggerContent is True):
218  triggerContent = True
219  self.SmartCollections.append("HLT_xAOD__TrigBphysContainer_EFBMuMuFex")
220 
221  if (self.IncludeMinBiasTriggerContent is True):
222  triggerContent = True
223  self.SmartCollections.append("HLT_xAOD__TrigVertexCountsContainer_vertexcounts")
224 
225  if (self.IncludeFullTriggerEDMLevel):
226  triggerContent = True
227  self.SmartCollections.append("HLT_FULL_EDM")
228 
229  # Smart items
230  if len(self.SmartCollections)>0:
231  for collection in self.SmartCollections:
232  masterItemList.extend(self.GetSmartItems(collection))
233 
234  # Run some basic tests to prevent clashes with CompulsoryContent content
235  self.CheckList(masterItemList)
236 
237  # Add extra variables
238  if len(self.ExtraVariables)>0:
239  for item in self.ExtraVariables:
240  masterItemList.extend(self.GetExtraItems(item))
241 
242  #Add on-the-fly containers to the dictionary
243  for _cont,_type in ContainersOnTheFly(self.flags):
244  if _cont not in self.AppendToDictionary:
245  self.AppendToDictionary[_cont]=_type
246 
247  # Process the master list...
248 
249  # Main containers (this is a simple list of lines, one per container X collection)
250  mainEntries = []
251  # Aux items (this is a dictionary: collection name and list of aux variables)
252  auxEntries = {}
253  self.theHandler.AppendToDictionary = self.AppendToDictionary
254  mainEntries,auxEntries = self.theHandler.GetContent(masterItemList,allVariablesList)
255 
256  # Add processed items to the stream
257  excludedAuxData = "-clusterAssociation.-PseudoJet"
258  excludedAuxEntries= [entry.strip("-") for entry in excludedAuxData.split(".")]
259  for item in mainEntries:
260  self.FinalItemList.append(item)
261  for item in auxEntries.keys():
262  theDictionary = self.NamesAndTypes.copy()
263  theDictionary.update (self.AppendToDictionary)
264  if item in theDictionary.keys():
265  if (theDictionary[item]=='xAOD::JetAuxContainer'):
266  entry = "xAOD::JetAuxContainer#"+item+"."
267  elif (theDictionary[item]=='xAOD::ShallowAuxContainer'):
268  entry = "xAOD::ShallowAuxContainer#"+item+"."
269  elif (theDictionary[item]=='xAOD::MissingETAuxAssociationMap'):
270  entry = "xAOD::MissingETAuxAssociationMap#"+item+"."
271  elif (theDictionary[item]=='xAOD::JetTrigAuxContainer'):
272  entry = "xAOD::JetTrigAuxContainer#"+item+"."
273  elif ("AuxInfo" in theDictionary[item]):
274  entry = "xAOD::AuxInfoBase!#"+item+"."
275  else:
276  entry = "xAOD::AuxContainerBase!#"+item+"."
277  for element in auxEntries[item]:
278  #Skip anything that shouldn't be written out to a DAOD for tracks or jets
279  if ('xAOD::TrackParticleContainer' in theDictionary[item]) and (element in excludedAuxEntries): continue
280  if ('xAOD::JetAuxContainer' in theDictionary[item]) and (element in excludedAuxEntries): continue
281  length = len(auxEntries[item])
282  if (element==(auxEntries[item])[length-1]):
283  entry += element
284  else:
285  entry += element+"."
286  if ('xAOD::TrackParticleContainer' in theDictionary[item] and auxEntries[item]==""):
287  entry+=excludedAuxData
288  if ('xAOD::JetAuxContainer' in theDictionary[item] and auxEntries[item]=="" and self.CheckDoubleTrigAuxInstruction(item)):
289  entry+=excludedAuxData
290  self.FinalItemList.append(entry)
291 
292  # Add compulsory items not covered by smart slimming (so no expansion)
293  for item in CompulsoryContent:
294  self.FinalItemList.append(item)
295 
296  # non xAOD collections for MinBias
297  if (self.IncludeMinBiasTriggerContent is True):
298  from DerivationFrameworkCore.MinBiasTrigger_nonxAOD_Content import MinBiasTrigger_nonxAOD_Content
299  for item in MinBiasTrigger_nonxAOD_Content:
300  self.FinalItemList.append(item)
301 
302  if (triggerContent and self.IncludeTriggerNavigation):
303  # Run2
304  for item in CompulsoryTriggerNavigation:
305  self.FinalItemList.append(item)
306  # Run3
307  from TrigDecisionTool.TrigDecisionToolHelpers import possible_keys
308  for item in possible_keys:
309  if item == "HLTNav_Summary": # This is not a compact navigation summary collection, unlike the others in this list
310  continue
311  self.FinalItemList.append('xAOD::TrigCompositeContainer#'+item)
312  self.FinalItemList.append('xAOD::TrigCompositeAuxContainer#'+item+'Aux.')
313 
314  # Add non-xAOD and on-the-fly content (not covered by smart slimming so no expansion)
315  badItemsWildcards = []
316  badItemsXAOD = []
317  for item in self.StaticContent:
318  if (self.ValidateStaticContent(item)=="OK"):
319  self.FinalItemList.append(item)
320  if (self.ValidateStaticContent(item)=="WILDCARD"):
321  badItemsWildcards.append(item)
322  if (self.ValidateStaticContent(item)=="XAOD"):
323  badItemsXAOD.append(item)
324  if (len(badItemsWildcards)>0):
325  msg.error("These static items contain wildcards: not permitted")
326  print (badItemsWildcards)
327  raise RuntimeError("Static content list contains wildcards")
328  if (len(badItemsXAOD)>0):
329  msg.error("These static items are xAOD collections: not permitted")
330  print (badItemsXAOD)
331  raise RuntimeError("Static content list contains xAOD collections")
332  #Prevent any more modifications As they will be completely ignored, and hard to debug
333  self.FinalItemList.lock()
334  self.StaticContent.lock()
335  self.ExtraVariables.lock()
336  self.SmartCollections.lock()
337  self.AllVariables.lock()
338  self._locked=True
339 
340 
342 
343 # Get full content (e.g. whole aux store) for this container
344  def GetWholeContentItems(self,collection):
345  items = [collection,collection+"Aux."]
346  return items
347 
348  # Get all branches associated with all tools needed for this container
349  def GetSmartItems(self,collectionName):
350  # Look up what is needed for this container type
351  items = []
352  if collectionName not in FullListOfSmartContainers(self.flags):
353  raise RuntimeError("Smart slimming container "+collectionName+" does not exist or does not have a smart slimming list")
354  if collectionName=="EventInfo":
355  from DerivationFrameworkCore.EventInfoContent import EventInfoContent
356  items.extend(EventInfoContent)
357  elif collectionName=="Electrons":
358  from DerivationFrameworkEGamma.ElectronsCPContent import ElectronsCPContent
359  items.extend(ElectronsCPContent)
360  elif collectionName=="LRTElectrons":
361  from DerivationFrameworkEGamma.LargeD0ElectronsCPContent import LargeD0ElectronsCPContent
362  items.extend(LargeD0ElectronsCPContent)
363  elif collectionName=="Photons":
364  from DerivationFrameworkEGamma.PhotonsCPContent import PhotonsCPContent
365  items.extend(PhotonsCPContent)
366  elif collectionName=="Muons":
367  if not self.flags:
368  raise RuntimeError("We're in the era of component accumulator. Please setup your job with CA if you want to have muons")
369  from DerivationFrameworkMuons.MuonsCommonConfig import MuonCPContentCfg
370  items.extend(MuonCPContentCfg(self.flags))
371  elif collectionName=="MuonsLRT":
372  if not self.flags:
373  raise RuntimeError("We're in the era of component accumulator. Please setup your job with CA if you want to have muons")
374  from DerivationFrameworkMuons.MuonsCommonConfig import MuonCPContentLRTCfg
375  items.extend(MuonCPContentLRTCfg(self.flags))
376  elif collectionName=="TauJets":
377  from DerivationFrameworkTau.TauJetsCPContent import TauJetsCPContent
378  items.extend(TauJetsCPContent)
379  elif collectionName=="DiTauJets":
380  from DerivationFrameworkTau.DiTauJetsCPContent import DiTauJetsCPContent
381  items.extend(DiTauJetsCPContent)
382  elif collectionName=="DiTauJetsLowPt":
383  from DerivationFrameworkTau.DiTauJetsCPContent import DiTauJetsLowPtCPContent
384  items.extend(DiTauJetsLowPtCPContent)
385  elif collectionName=="TauJets_MuonRM":
386  from DerivationFrameworkTau.TauJets_LepRMCPContent import TauJets_MuonRMCPContent
387  if "TauJets_MuonRM" not in self.AppendToDictionary:
388  self.AppendToDictionary["TauJets_MuonRM"] = 'xAOD::TauJetContainer'
389  self.AppendToDictionary["TauJets_MuonRMAux"] = 'xAOD::TauJetAuxContainer'
390  self.AppendToDictionary["TauTracks_MuonRM"] = 'xAOD::TauTrackContainer'
391  self.AppendToDictionary["TauTracks_MuonRMAux"] = 'xAOD::TauTrackAuxContainer'
392  self.AppendToDictionary["TauSecondaryVertices_MuonRM"] = 'xAOD::VertexContainer'
393  self.AppendToDictionary["TauSecondaryVertices_MuonRMAux"] = 'xAOD::VertexAuxContainer'
394  self.AppendToDictionary["TauNeutralParticleFlowObjects_MuonRM"] = 'xAOD::PFOContainer'
395  self.AppendToDictionary["TauNeutralParticleFlowObjects_MuonRMAux"] = 'xAOD::PFOAuxContainer'
396  items.extend(TauJets_MuonRMCPContent)
397  elif collectionName=="TauJets_EleRM":
398  from DerivationFrameworkTau.TauJets_LepRMCPContent import TauJets_EleRMCPContent
399  items.extend(TauJets_EleRMCPContent)
400  elif collectionName=="MET_Baseline_AntiKt4EMTopo":
401  from DerivationFrameworkJetEtMiss.MET_Baseline_AntiKt4EMTopoCPContent import MET_Baseline_AntiKt4EMTopoCPContent
402  items.extend(MET_Baseline_AntiKt4EMTopoCPContent)
403  elif collectionName=="MET_Baseline_AntiKt4EMPFlow":
404  from DerivationFrameworkJetEtMiss.MET_Baseline_AntiKt4EMPFlowCPContent import MET_Baseline_AntiKt4EMPFlowCPContent
405  items.extend(MET_Baseline_AntiKt4EMPFlowCPContent)
406  elif collectionName=="AntiKt2TruthJets":
407  from DerivationFrameworkJetEtMiss.AntiKt2TruthJetsCPContent import AntiKt2TruthJetsCPContent
408  items.extend(AntiKt2TruthJetsCPContent)
409  elif collectionName=="AntiKt4TruthJets":
410  from DerivationFrameworkJetEtMiss.AntiKt4TruthJetsCPContent import AntiKt4TruthJetsCPContent
411  items.extend(AntiKt4TruthJetsCPContent)
412  elif collectionName=="AntiKt4TruthWZJets":
413  from DerivationFrameworkJetEtMiss.AntiKt4TruthWZJetsCPContent import AntiKt4TruthWZJetsCPContent
414  items.extend(AntiKt4TruthWZJetsCPContent)
415  elif collectionName=="AntiKt4TruthDressedWZJets":
416  from DerivationFrameworkJetEtMiss.AntiKt4TruthDressedWZJetsCPContent import AntiKt4TruthDressedWZJetsCPContent
417  items.extend(AntiKt4TruthDressedWZJetsCPContent)
418  elif collectionName=="AntiKt2LCTopoJets":
419  from DerivationFrameworkJetEtMiss.AntiKt2LCTopoJetsCPContent import AntiKt2LCTopoJetsCPContent
420  items.extend(AntiKt2LCTopoJetsCPContent)
421  elif collectionName=="AntiKt4LCTopoJets":
422  from DerivationFrameworkJetEtMiss.AntiKt4LCTopoJetsCPContent import AntiKt4LCTopoJetsCPContent
423  items.extend(AntiKt4LCTopoJetsCPContent)
424  elif collectionName=="AntiKt4EMTopoJets":
425  from DerivationFrameworkJetEtMiss.AntiKt4EMTopoJetsCPContent import AntiKt4EMTopoJetsCPContent
426  items.extend(AntiKt4EMTopoJetsCPContent)
427  elif collectionName=="AntiKt4EMTopoLowPtJets":
428  from DerivationFrameworkJetEtMiss.AntiKt4EMTopoLowPtJetsCPContent import AntiKt4EMTopoLowPtJetsCPContent
429  items.extend(AntiKt4EMTopoLowPtJetsCPContent)
430  elif collectionName=="AntiKt4EMTopoNoPtCutJets":
431  from DerivationFrameworkJetEtMiss.AntiKt4EMTopoNoPtCutJetsCPContent import AntiKt4EMTopoNoPtCutJetsCPContent
432  items.extend(AntiKt4EMTopoNoPtCutJetsCPContent)
433  elif collectionName=="AntiKt4EMPFlowJets":
434  from DerivationFrameworkJetEtMiss.AntiKt4EMPFlowJetsCPContent import AntiKt4EMPFlowJetsCPContent
435  items.extend(AntiKt4EMPFlowJetsCPContent)
436  elif collectionName=="AntiKt4EMPFlowLowPtJets":
437  from DerivationFrameworkJetEtMiss.AntiKt4EMPFlowLowPtJetsCPContent import AntiKt4EMPFlowLowPtJetsCPContent
438  items.extend(AntiKt4EMPFlowLowPtJetsCPContent)
439  elif collectionName=="AntiKt4EMPFlowByVertexJets":
440  from DerivationFrameworkJetEtMiss.AntiKt4EMPFlowByVertexJetsCPContent import AntiKt4EMPFlowByVertexJetsCPContent
441  items.extend(AntiKt4EMPFlowByVertexJetsCPContent)
442  elif collectionName=="AntiKt4UFOCSSKJets":
443  from DerivationFrameworkJetEtMiss.AntiKt4UFOCSSKJetsCPContent import AntiKt4UFOCSSKJetsCPContent
444  items.extend(AntiKt4UFOCSSKJetsCPContent)
445  elif collectionName=="AntiKt4UFOCSSKLowPtJets":
446  from DerivationFrameworkJetEtMiss.AntiKt4UFOCSSKLowPtJetsCPContent import AntiKt4UFOCSSKLowPtJetsCPContent
447  items.extend(AntiKt4UFOCSSKLowPtJetsCPContent)
448  elif collectionName=="AntiKt10TruthJets":
449  from DerivationFrameworkJetEtMiss.AntiKt10TruthJetsCPContent import AntiKt10TruthJetsCPContent
450  items.extend(AntiKt10TruthJetsCPContent)
451  elif collectionName=="AntiKt10TruthWZJets":
452  from DerivationFrameworkJetEtMiss.AntiKt10TruthWZJetsCPContent import AntiKt10TruthWZJetsCPContent
453  items.extend(AntiKt10TruthWZJetsCPContent)
454  elif collectionName=="AntiKt10LCTopoJets":
455  from DerivationFrameworkJetEtMiss.AntiKt10LCTopoJetsCPContent import AntiKt10LCTopoJetsCPContent
456  items.extend(AntiKt10LCTopoJetsCPContent)
457  elif collectionName=="AntiKt10TrackCaloClusterJets":
458  from DerivationFrameworkJetEtMiss.AntiKt10TrackCaloClusterJetsCPContent import AntiKt10TrackCaloClusterJetsCPContent
459  items.extend(AntiKt10TrackCaloClusterJetsCPContent)
460  elif collectionName=="AntiKt10UFOCSSKJets":
461  from DerivationFrameworkJetEtMiss.AntiKt10UFOCSSKJetsCPContent import AntiKt10UFOCSSKJetsCPContent
462  items.extend(AntiKt10UFOCSSKJetsCPContent)
463  elif collectionName=="AntiKt10UFOCHSJets":
464  from DerivationFrameworkJetEtMiss.AntiKt10UFOCHSJetsCPContent import AntiKt10UFOCHSJetsCPContent
465  items.extend(AntiKt10UFOCHSJetsCPContent)
466  elif collectionName=="AntiKt10TruthTrimmedPtFrac5SmallR20Jets":
467  from DerivationFrameworkJetEtMiss.AntiKt10TruthTrimmedPtFrac5SmallR20JetsCPContent import AntiKt10TruthTrimmedPtFrac5SmallR20JetsCPContent
468  items.extend(AntiKt10TruthTrimmedPtFrac5SmallR20JetsCPContent)
469  elif collectionName=="AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets":
470  from DerivationFrameworkJetEtMiss.AntiKt10LCTopoTrimmedPtFrac5SmallR20JetsCPContent import AntiKt10LCTopoTrimmedPtFrac5SmallR20JetsCPContent
471  items.extend(AntiKt10LCTopoTrimmedPtFrac5SmallR20JetsCPContent)
472  elif collectionName=="AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20Jets":
473  from DerivationFrameworkJetEtMiss.AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20JetsCPContent import AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20JetsCPContent
474  if "AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20Jets" not in self.AppendToDictionary:
475  self.AppendToDictionary["AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20Jets"]='xAOD::JetContainer'
476  self.AppendToDictionary["AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20JetsAux"]='xAOD::JetAuxContainer'
477  items.extend(AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20JetsCPContent)
478  elif collectionName=="AntiKt10TruthSoftDropBeta100Zcut10Jets":
479  from DerivationFrameworkJetEtMiss.AntiKt10TruthSoftDropBeta100Zcut10JetsCPContent import AntiKt10TruthSoftDropBeta100Zcut10JetsCPContent
480  items.extend(AntiKt10TruthSoftDropBeta100Zcut10JetsCPContent)
481  elif collectionName=="AntiKt10TruthDressedWZSoftDropBeta100Zcut10Jets":
482  from DerivationFrameworkJetEtMiss.AntiKt10TruthDressedWZSoftDropBeta100Zcut10JetsCPContent import AntiKt10TruthDressedWZSoftDropBeta100Zcut10JetsCPContent
483  items.extend(AntiKt10TruthDressedWZSoftDropBeta100Zcut10JetsCPContent)
484  elif collectionName=="AntiKt10UFOCHSSoftDropBeta100Zcut10Jets":
485  from DerivationFrameworkJetEtMiss.AntiKt10UFOCHSSoftDropBeta100Zcut10JetsCPContent import AntiKt10UFOCHSSoftDropBeta100Zcut10JetsCPContent
486  items.extend(AntiKt10UFOCHSSoftDropBeta100Zcut10JetsCPContent)
487  elif collectionName=="AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets":
488  from DerivationFrameworkJetEtMiss.AntiKt10UFOCSSKSoftDropBeta100Zcut10JetsCPContent import AntiKt10UFOCSSKSoftDropBeta100Zcut10JetsCPContent
489  items.extend(AntiKt10UFOCSSKSoftDropBeta100Zcut10JetsCPContent)
490  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingLargeRContent
491  items.extend(BTaggingLargeRContent("AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets", self.flags))
492  elif collectionName=="AntiKtVR30Rmax4Rmin02PV0TrackJets":
493  from DerivationFrameworkJetEtMiss.AntiKtVR30Rmax4Rmin02PV0TrackJetsCPContent import AntiKtVR30Rmax4Rmin02PV0TrackJetsCPContent
494  items.extend(AntiKtVR30Rmax4Rmin02PV0TrackJetsCPContent)
495  elif collectionName=="BTagging_AntiKt4UFOCSSK":
496  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
497  items.extend(BTaggingStandardContent("AntiKt4UFOCSSKJets", self.flags))
498  elif collectionName=="BTagging_AntiKt4UFOCSSK_expert":
499  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
500  items.extend(BTaggingExpertContent("AntiKt4UFOCSSKJets", self.flags))
501  elif collectionName=="BTagging_AntiKt4EMPFlow":
502  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
503  items.extend(BTaggingStandardContent("AntiKt4EMPFlowJets", self.flags))
504  elif collectionName=="BTagging_AntiKt4EMPFlow_expert":
505  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
506  items.extend(BTaggingExpertContent("AntiKt4EMPFlowJets", self.flags))
507  elif collectionName=="AntiKt4EMPFlowJets_FTAG":
508  from DerivationFrameworkFlavourTag.BTaggingContent import BTagginglessContent
509  items.extend(BTagginglessContent("AntiKt4EMPFlowJets", self.flags))
510  elif collectionName=="BTagging_AntiKt4EMTopo":
511  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
512  items.extend(BTaggingStandardContent("AntiKt4EMTopoJets", self.flags))
513  elif collectionName=="BTagging_AntiKtVR30Rmax4Rmin02Track":
514  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
515  items.extend(BTaggingStandardContent("AntiKtVR30Rmax4Rmin02PV0TrackJets", self.flags))
516  elif collectionName=="BTagging_AntiKtVR30Rmax4Rmin02Track_expert":
517  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
518  items.extend(BTaggingExpertContent("AntiKtVR30Rmax4Rmin02PV0TrackJets", self.flags))
519  elif collectionName=="BTagging_AntiKt2Track":
520  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
521  items.extend(BTaggingStandardContent("AntiKt2PV0TrackJets", self.flags))
522  elif collectionName=="BTagging_AntiKt3Track":
523  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
524  items.extend(BTaggingStandardContent("AntiKt3PV0TrackJets", self.flags))
525  elif collectionName=="BTagging_AntiKt4Track":
526  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
527  items.extend(BTaggingStandardContent("AntiKt4PV0TrackJets", self.flags))
528  elif collectionName=="BTagging_AntiKt8EMTopoExKt2Sub":
529  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
530  items.extend(BTaggingExpertContent("AntiKt8EMTopoExKt2SubJets", self.flags))
531  elif collectionName=="BTagging_AntiKt8EMTopoExKt3Sub":
532  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
533  items.extend(BTaggingExpertContent("AntiKt8EMTopoExKt3SubJets", self.flags))
534  elif collectionName=="BTagging_AntiKt8EMTopoExCoM2Sub":
535  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
536  items.extend(BTaggingExpertContent("AntiKt8EMTopoExCoM2SubJets", self.flags))
537  elif collectionName=="BTagging_AntiKt8EMPFlowExKt2Sub":
538  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
539  items.extend(BTaggingExpertContent("AntiKt8EMPFlowExKt2SubJets", self.flags))
540  elif collectionName=="BTagging_AntiKt8EMPFlowExKt3Sub":
541  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
542  items.extend(BTaggingExpertContent("AntiKt8EMPFlowExKt3SubJets", self.flags))
543  elif collectionName=="BTagging_AntiKt8EMPFlowExKt2GASub":
544  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
545  items.extend(BTaggingExpertContent("AntiKt8EMPFlowExKt2GASubJets", self.flags))
546  elif collectionName=="BTagging_AntiKt8EMPFlowExKt3GASub":
547  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
548  items.extend(BTaggingExpertContent("AntiKt8EMPFlowExKt3GASubJets", self.flags))
549  elif collectionName=="BTagging_DFAntiKt4HI":
550  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
551  items.extend(BTaggingStandardContent("DFAntiKt4HIJets", self.flags))
552  elif collectionName=="BTagging_AntiKt4HI":
553  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
554  items.extend(BTaggingStandardContent("AntiKt4HIJets", self.flags))
555  elif collectionName=="InDetTrackParticles":
556  from DerivationFrameworkInDet.InDetTrackParticlesCPContent import InDetTrackParticlesCPContent
557  items.extend(InDetTrackParticlesCPContent)
558  if self.flags.GeoModel.Run >= LHCPeriod.Run4:
559  from DerivationFrameworkInDet.InDetTrackParticlesCPContentRun4 import InDetTrackParticlesCPContentRun4
560  items.extend(InDetTrackParticlesCPContentRun4)
561  elif collectionName=="InDetPseudoTrackParticles":
562  from DerivationFrameworkInDet.InDetPseudoTrackParticlesCPContent import InDetPseudoTrackParticlesCPContent
563  items.extend(InDetPseudoTrackParticlesCPContent)
564  elif collectionName=="InDetReplacedWithPseudoTrackParticles":
565  from DerivationFrameworkInDet.InDetReplacedWithPseudoTrackParticlesCPContent import InDetReplacedWithPseudoTrackParticlesCPContent
566  items.extend(InDetReplacedWithPseudoTrackParticlesCPContent)
567  elif collectionName=="InDetReplacedWithPseudoFromBTrackParticles":
568  from DerivationFrameworkInDet.InDetReplacedWithPseudoFromBTrackParticlesCPContent import InDetReplacedWithPseudoFromBTrackParticlesCPContent
569  items.extend(InDetReplacedWithPseudoFromBTrackParticlesCPContent)
570  elif collectionName=="InDetReplacedWithPseudoNotFromBTrackParticles":
571  from DerivationFrameworkInDet.InDetReplacedWithPseudoNotFromBTrackParticlesCPContent import InDetReplacedWithPseudoNotFromBTrackParticlesCPContent
572  items.extend(InDetReplacedWithPseudoNotFromBTrackParticlesCPContent)
573  elif collectionName=="InDetPlusPseudoTrackParticles":
574  from DerivationFrameworkInDet.InDetPlusPseudoTrackParticlesCPContent import InDetPlusPseudoTrackParticlesCPContent
575  items.extend(InDetPlusPseudoTrackParticlesCPContent)
576  elif collectionName=="InDetPlusPseudoFromBTrackParticles":
577  from DerivationFrameworkInDet.InDetPlusPseudoFromBTrackParticlesCPContent import InDetPlusPseudoFromBTrackParticlesCPContent
578  items.extend(InDetPlusPseudoFromBTrackParticlesCPContent)
579  elif collectionName=="InDetPlusPseudoNotFromBTrackParticles":
580  from DerivationFrameworkInDet.InDetPlusPseudoNotFromBTrackParticlesCPContent import InDetPlusPseudoNotFromBTrackParticlesCPContent
581  items.extend(InDetPlusPseudoNotFromBTrackParticlesCPContent)
582  elif collectionName=="InDetNoFakesTrackParticles":
583  from DerivationFrameworkInDet.InDetNoFakesTrackParticlesCPContent import InDetNoFakesTrackParticlesCPContent
584  items.extend(InDetNoFakesTrackParticlesCPContent)
585  elif collectionName=="InDetNoFakesFromBTrackParticles":
586  from DerivationFrameworkInDet.InDetNoFakesFromBTrackParticlesCPContent import InDetNoFakesFromBTrackParticlesCPContent
587  items.extend(InDetNoFakesFromBTrackParticlesCPContent)
588  elif collectionName=="InDetNoFakesNotFromBTrackParticles":
589  from DerivationFrameworkInDet.InDetNoFakesNotFromBTrackParticlesCPContent import InDetNoFakesNotFromBTrackParticlesCPContent
590  items.extend(InDetNoFakesNotFromBTrackParticlesCPContent)
591  elif collectionName=="InDetSiSPSeededTracksParticles":
592  from DerivationFrameworkInDet.InDetSiSPSeededTracksParticlesCPContent import InDetSiSPSeededTracksParticlesCPContent
593  items.extend(InDetSiSPSeededTracksParticlesCPContent)
594  elif collectionName=="InDetLargeD0TrackParticles":
595  from DerivationFrameworkInDet.InDetLargeD0TrackParticlesCPContent import InDetLargeD0TrackParticlesCPContent
596  items.extend(InDetLargeD0TrackParticlesCPContent)
597  elif collectionName=="PrimaryVertices":
598  from DerivationFrameworkInDet.PrimaryVerticesCPContent import PrimaryVerticesCPContent
599  items.extend(PrimaryVerticesCPContent)
600  if self.flags.GeoModel.Run >= LHCPeriod.Run4:
601  from DerivationFrameworkInDet.PrimaryVerticesCPContentRun4 import PrimaryVerticesCPContentRun4
602  items.extend(PrimaryVerticesCPContentRun4)
603  elif self.IncludeAdditionalTriggerContent is True:
604  from DerivationFrameworkCore.AdditionalTriggerContent import AdditionalTriggerContent
605  items.extend(AdditionalTriggerContent)
606  elif collectionName=="HLT_xAOD__MuonContainer_MuonEFInfo":
607  from DerivationFrameworkMuons.MuonTriggerContent import MuonTriggerContent
608  items.extend(MuonTriggerContent)
609  elif collectionName=="HLT_xAOD__PhotonContainer_egamma_Photons":
610  from DerivationFrameworkCore.EGammaTriggerContent import EGammaTriggerContent
611  items.extend(EGammaTriggerContent)
612  elif collectionName=="HLT_xAOD__JetContainer_a4tcemsubjesFS":
613  from DerivationFrameworkCore.JetTriggerContent import JetTriggerContent
614  items.extend(JetTriggerContent)
615  elif collectionName=="HLT_IDVertex_FS":
616  from DerivationFrameworkCore.TrackingTriggerContent import TrackingTriggerContent
617  items.extend(TrackingTriggerContent)
618  elif collectionName=="HLT_IDTrack_FS_FTF":
619  from DerivationFrameworkCore.TrackingTriggerContent import TrackingTriggerContent
620  items.extend(TrackingTriggerContent)
621  elif collectionName=="HLT_xAOD__TrigMissingETContainer_TrigEFMissingET":
622  from DerivationFrameworkCore.EtMissTriggerContent import EtMissTriggerContent
623  items.extend(EtMissTriggerContent)
624  elif collectionName=="HLT_xAOD__TauJetContainer_TrigTauRecMerged":
625  from DerivationFrameworkCore.TauTriggerContent import TauTriggerContentRun2
626  items.extend(TauTriggerContentRun2)
627  elif collectionName=="HLT_TrigTauRecMerged_MVA":
628  from DerivationFrameworkCore.TauTriggerContent import TauTriggerContentRun3
629  items.extend(TauTriggerContentRun3)
630  elif collectionName=="HLT_xAOD__BTaggingContainer_HLTBjetFex":
631  from DerivationFrameworkFlavourTag.BJetTriggerContent import BJetTriggerContent
632  items.extend(BJetTriggerContent)
633  elif collectionName=="HLT_xAOD__TrigBphysContainer_EFBMuMuFex":
634  from DerivationFrameworkCore.BPhysTriggerContent import BPhysTriggerContent
635  items.extend(BPhysTriggerContent)
636  elif collectionName=="HLT_xAOD__TrigVertexCountsContainer_vertexcounts":
637  from DerivationFrameworkCore.MinBiasTriggerContent import MinBiasTriggerContent
638  items.extend(MinBiasTriggerContent)
639  elif collectionName=="HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf":
640  from DerivationFrameworkCore.JetTriggerContentRun3 import JetTriggerContentRun3
641  from DerivationFrameworkCore.JetTriggerContentRun3TLA import JetTriggerContentRun3TLA
643  items.extend(JetTriggerContentRun3)
644  else:
645  items.extend(JetTriggerContentRun3TLA)
646  elif collectionName=="HLT_BJetTriggerByYearContent":
647  from DerivationFrameworkTrigger.BJetTriggerByYearContent import getBJetTriggerContent
648  items.extend(getBJetTriggerContent(self.flags))
649  elif collectionName=="HLT_FULL_EDM":
650  from DerivationFrameworkTrigger.TrigSlimmingHelper import addTrigEDMSetToOutput
651  items.extend(addTrigEDMSetToOutput(self.flags, self, edmSet=self.IncludeFullTriggerEDMLevel))
652 
653  else:
654  raise RuntimeError("Smart slimming container "+collectionName+" does not exist or does not have a smart slimming list")
655  return items
656 
657  # Kinematics content only
658  def GetKinematicsItems(self,collectionName):
659  # Content lines in the same style as is produced by the PrintStats
660  kinematicsLine = collectionName+"Aux."+"pt.eta.phi.m"
661  items = [collectionName,kinematicsLine]
662  return items
663 
664  # Extra content, listed via container
665  def GetExtraItems(self,userInput):
666  # Build up a content list in the same style as is produced by the PrintStats
667  splitup = userInput.split(".")
668  auxContainerName = splitup[0]+"Aux"
669  items = []
670  items.append(splitup[0])
671  auxLine = ""
672  length = len(splitup)
673  for string in splitup:
674  if string==splitup[0]:
675  auxLine = auxContainerName+"."
676  continue
677  if string==splitup[length-1]:
678  auxLine = auxLine+string
679  else:
680  auxLine = auxLine+string+"."
681  items.append(auxLine)
682  return items
683 
684  # Check that static content is legit
685  def ValidateStaticContent(self,item):
686  # No wildcards
687  if ("*" in item):
688  return "WILDCARD"
689  # No xAOD containers
690  sep = item.split("#")
691  if ("xAOD::" in item and sep[1] in self.NamesAndTypes.keys()):
692  return "XAOD"
693  return "OK"
694 
695  # Required to prevent:
696  # Mixing up negative and positive Aux selections is not supported: xAOD::JetAuxContainer#HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_bJetsAux. : {'-clusterAssociation.-PseudoJet', 'phi.eta.pt.m'}
697  # Where the negative rule comes from the above excludedAuxData loop, and the positive rule comes from the IncludeFullTriggerEDMLevel flag and "HLT_FULL_EDM" smart-collection.
698  # Results in all content being stored for this container (will write all attributes. Original selection was: {'', 'phi.m.eta.pt'}) which is OK as it does not have either of the above
699  # decorations which are not possible to include at the DAOD level. Current decorations: viewIndex, btaggingLink, JVFCorr, Jvt, SumPtTrkPt500
701  if self.IncludeFullTriggerEDMLevel and 'HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_bJetsAux' in aux:
702  return False
703  return True
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
SlimmingHelper.SlimmingHelper.FinalItemList
FinalItemList
Definition: SlimmingHelper.py:82
SlimmingHelper.SlimmingHelper.theHandler
theHandler
Definition: SlimmingHelper.py:107
SlimmingHelper.SlimmingHelper.GetItemList
def GetItemList(self)
Definition: SlimmingHelper.py:145
SlimmingHelper.lockable_list.__init__
def __init__(self, data=[])
Definition: SlimmingHelper.py:48
python.BTaggingContent.BTagginglessContent
def BTagginglessContent(jetcol, ConfigFlags=None)
Definition: BTaggingContent.py:204
SlimmingHelper.SlimmingHelper.IncludeMinBiasTriggerContent
IncludeMinBiasTriggerContent
Definition: SlimmingHelper.py:101
SlimmingHelper.SlimmingHelper.IncludeAdditionalTriggerContent
IncludeAdditionalTriggerContent
Definition: SlimmingHelper.py:91
SlimmingHelper.SlimmingHelper.flags
flags
Definition: SlimmingHelper.py:89
SlimmingHelper.SlimmingHelper.StaticContent
StaticContent
Definition: SlimmingHelper.py:83
SlimmingHelper.SlimmingHelper.AppendToDictionary
AppendToDictionary
Definition: SlimmingHelper.py:88
SlimmingHelper.SlimmingHelper.IncludeTrackingTriggerContent
IncludeTrackingTriggerContent
Definition: SlimmingHelper.py:95
SlimmingHelper.lockable_list.append
def append(self, name)
Definition: SlimmingHelper.py:51
SlimmingHelper.SlimmingHelper.ValidateStaticContent
def ValidateStaticContent(self, item)
Definition: SlimmingHelper.py:685
python.MuonsCommonConfig.MuonCPContentCfg
def MuonCPContentCfg(flags)
Definition: MuonsCommonConfig.py:201
SlimmingHelper.SlimmingHelper.NamesAndTypes
NamesAndTypes
Definition: SlimmingHelper.py:105
SlimmingHelper.lockable_list.__setattr__
def __setattr__(self, name, value)
Definition: SlimmingHelper.py:57
FullListOfSmartContainers
Definition: FullListOfSmartContainers.py:1
SlimmingHelper.SlimmingHelper.GetWholeContentItems
def GetWholeContentItems(self, collection)
Definition: SlimmingHelper.py:344
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
SlimmingHelper.SlimmingHelper.IncludeBJetTriggerByYearContent
IncludeBJetTriggerByYearContent
Definition: SlimmingHelper.py:99
SlimmingHelper.SlimmingHelper.GetKinematicsItems
def GetKinematicsItems(self, collectionName)
Definition: SlimmingHelper.py:658
ContainersOnTheFly
Definition: ContainersOnTheFly.py:1
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
python.BTaggingContent.BTaggingExpertContent
def BTaggingExpertContent(jetcol, ConfigFlags=None)
Definition: BTaggingContent.py:168
SlimmingHelper.SlimmingHelper.IncludeEGammaTriggerContent
IncludeEGammaTriggerContent
Definition: SlimmingHelper.py:93
SlimmingHelper.SlimmingHelper
Definition: SlimmingHelper.py:78
SlimmingHelper.SlimmingHelper.__setattr__
def __setattr__(self, name, value)
Definition: SlimmingHelper.py:110
SlimmingHelper.SlimmingHelper.SmartCollections
SmartCollections
Definition: SlimmingHelper.py:86
python.BTaggingContent.BTaggingStandardContent
def BTaggingStandardContent(jetcol, ConfigFlags=None)
Definition: BTaggingContent.py:183
SlimmingHelper.SlimmingHelper.CheckList
def CheckList(self, masterList)
Definition: SlimmingHelper.py:120
BJetTriggerByYearContent.getBJetTriggerContent
def getBJetTriggerContent(flags)
Definition: BJetTriggerByYearContent.py:28
TrigSlimmingHelper.addTrigEDMSetToOutput
def addTrigEDMSetToOutput(flags, SlimmingHelper helper, str edmSet, int edmVersion=None)
Definition: TrigSlimmingHelper.py:9
SlimmingHelper.buildNamesAndTypes
def buildNamesAndTypes(*args)
Definition: SlimmingHelper.py:67
SlimmingHelper.SlimmingHelper.IncludeBJetTriggerContent
IncludeBJetTriggerContent
Definition: SlimmingHelper.py:98
SlimmingHelper.SlimmingHelper.ExtraVariables
ExtraVariables
Definition: SlimmingHelper.py:84
SlimmingHelper.SlimmingHelper.IncludeEtMissTriggerContent
IncludeEtMissTriggerContent
Definition: SlimmingHelper.py:97
SlimmingHelper.SlimmingHelper.AllVariables
AllVariables
Definition: SlimmingHelper.py:87
SlimmingHelper.SlimmingHelper.IncludeFullTriggerEDMLevel
IncludeFullTriggerEDMLevel
Definition: SlimmingHelper.py:102
SlimmingHelper.SlimmingHelper.AppendContentToStream
def AppendContentToStream(self, Stream)
Definition: SlimmingHelper.py:135
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
SlimmingHelper.SlimmingHelper.GetSmartItems
def GetSmartItems(self, collectionName)
Definition: SlimmingHelper.py:349
SlimmingHelper.SlimmingHelper.CheckDoubleTrigAuxInstruction
def CheckDoubleTrigAuxInstruction(self, aux)
Definition: SlimmingHelper.py:700
SlimmingHelper.SlimmingHelper.IncludeMuonTriggerContent
IncludeMuonTriggerContent
Definition: SlimmingHelper.py:92
SlimmingHelper.SlimmingHelper.__init__
def __init__(self, inputName, flags, **kwargs)
Definition: SlimmingHelper.py:79
ContentHandler
Definition: ContentHandler.py:1
SlimmingHelper.SlimmingHelper.GetExtraItems
def GetExtraItems(self, userInput)
Definition: SlimmingHelper.py:665
SlimmingHelper.lockable_list.lock
def lock(self)
Definition: SlimmingHelper.py:63
python.BTaggingContent.BTaggingLargeRContent
def BTaggingLargeRContent(jetcol, ConfigFlags=None)
Definition: BTaggingContent.py:197
SlimmingHelper.SlimmingHelper.IncludeJetTriggerContent
IncludeJetTriggerContent
Definition: SlimmingHelper.py:94
SlimmingHelper.SlimmingHelper.IncludeBPhysTriggerContent
IncludeBPhysTriggerContent
Definition: SlimmingHelper.py:100
SlimmingHelper.SlimmingHelper.IncludeTriggerNavigation
IncludeTriggerNavigation
Definition: SlimmingHelper.py:90
str
Definition: BTagTrackIpAccessor.cxx:11
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
python.MuonsCommonConfig.MuonCPContentLRTCfg
def MuonCPContentLRTCfg(flags)
Definition: MuonsCommonConfig.py:225
SlimmingHelper.SlimmingHelper.OverrideJetTriggerContentWithTLAContent
OverrideJetTriggerContentWithTLAContent
Definition: SlimmingHelper.py:103
calibdata.copy
bool copy
Definition: calibdata.py:27
SlimmingHelper.SlimmingHelper.BuildFinalItemList
def BuildFinalItemList(self)
Definition: SlimmingHelper.py:153
SlimmingHelper.SlimmingHelper._locked
_locked
Definition: SlimmingHelper.py:338
SlimmingHelper.SlimmingHelper.name
name
Definition: SlimmingHelper.py:81
SlimmingHelper.SlimmingHelper.IncludeTauTriggerContent
IncludeTauTriggerContent
Definition: SlimmingHelper.py:96
SlimmingHelper.lockable_list
Definition: SlimmingHelper.py:47