ATLAS Offline Software
Public Member Functions | Public Attributes | Private Attributes | List of all members
SlimmingHelper.SlimmingHelper Class Reference
Collaboration diagram for SlimmingHelper.SlimmingHelper:

Public Member Functions

def __init__ (self, inputName, flags, **kwargs)
 
def __setattr__ (self, name, value)
 
def CheckList (self, masterList)
 
def AppendContentToStream (self, Stream)
 
def GetItemList (self)
 
def BuildFinalItemList (self)
 
def GetWholeContentItems (self, collection)
 
def GetSmartItems (self, collectionName)
 
def GetKinematicsItems (self, collectionName)
 
def GetExtraItems (self, userInput)
 
def ValidateStaticContent (self, item)
 

Public Attributes

 name
 
 FinalItemList
 
 StaticContent
 
 ExtraVariables
 
 SmartCollections
 
 AllVariables
 
 AppendToDictionary
 
 flags
 
 IncludeTriggerNavigation
 
 IncludeAdditionalTriggerContent
 
 IncludeMuonTriggerContent
 
 IncludeEGammaTriggerContent
 
 IncludeJetTauEtMissTriggerContent
 
 IncludeJetTriggerContent
 
 IncludeTrackingTriggerContent
 
 IncludeTauTriggerContent
 
 IncludeEtMissTriggerContent
 
 IncludeBJetTriggerContent
 
 IncludeBPhysTriggerContent
 
 IncludeMinBiasTriggerContent
 
 OverrideJetTriggerContentWithTLAContent
 
 NamesAndTypes
 
 theHandler
 

Private Attributes

 _locked
 

Detailed Description

Definition at line 78 of file SlimmingHelper.py.

Constructor & Destructor Documentation

◆ __init__()

def SlimmingHelper.SlimmingHelper.__init__ (   self,
  inputName,
  flags,
**  kwargs 
)

Definition at line 79 of file SlimmingHelper.py.

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)
86  self.SmartCollections = lockable_list()
87  self.AllVariables = lockable_list() # Containers for which all branches should be kept
88  self.AppendToDictionary = {}
89  self.flags = flags
90  self.IncludeTriggerNavigation = True
91  self.IncludeAdditionalTriggerContent = False
92  self.IncludeMuonTriggerContent = False
93  self.IncludeEGammaTriggerContent = False
94  self.IncludeJetTauEtMissTriggerContent = False
95  self.IncludeJetTriggerContent = False
96  self.IncludeTrackingTriggerContent = False
97  self.IncludeTauTriggerContent = False
98  self.IncludeEtMissTriggerContent = False
99  self.IncludeBJetTriggerContent = False
100  self.IncludeBPhysTriggerContent = False
101  self.IncludeMinBiasTriggerContent = False
102  self.OverrideJetTriggerContentWithTLAContent = False
103  # Choice of whether user provided a typed container list or not (CA vs non-CA)
104  if "NamesAndTypes" in kwargs.keys(): self.NamesAndTypes = buildNamesAndTypes(kwargs["NamesAndTypes"])
105  else: self.NamesAndTypes = buildNamesAndTypes()
106  self.theHandler = ContentHandler(self.name+"Handler",self.NamesAndTypes)
107 

Member Function Documentation

◆ __setattr__()

def SlimmingHelper.SlimmingHelper.__setattr__ (   self,
  name,
  value 
)

Definition at line 109 of file SlimmingHelper.py.

109  def __setattr__(self,name,value):
110  if self._locked is True:
111  msg.error("Attempting to Modify SlimmingHelper "+self.name+" After AppendContentToStream has Been Called")
112  raise RuntimeError("Late Modification to SlimmingHelper, do not modifiy after calling AppendContentToStream")
113  elif type(value)==list:
114  self.__dict__[name] = lockable_list(value)
115  else:
116  self.__dict__[name] = value
117 

◆ AppendContentToStream()

def SlimmingHelper.SlimmingHelper.AppendContentToStream (   self,
  Stream 
)

Definition at line 134 of file SlimmingHelper.py.

134  def AppendContentToStream(self,Stream):
135  # Check if the SlimmingHelper is locked.
136  # If it is, just loop over the items and append.
137  # If not, build the item list and then append.
138  if self._locked is False:
139  self.BuildFinalItemList()
140  for item in self.FinalItemList:
141  Stream.AddItem(item)
142 

◆ BuildFinalItemList()

def SlimmingHelper.SlimmingHelper.BuildFinalItemList (   self)

Definition at line 152 of file SlimmingHelper.py.

152  def BuildFinalItemList(self):
153  # Master item list: all items that must be passed to the ContentHandler for processing
154  # This will now be filled
155  masterItemList = []
156  # All variables list: where all variables are requested, no variable lists are needed
157  # This list ensures that variables are not added individually in such cases
158  allVariablesList = []
159  self.AllVariables += CompulsoryDynamicContent
160  # Add all-variable collections
161  if len(self.AllVariables)>0:
162  for item in self.AllVariables: masterItemList.extend(self.GetWholeContentItems(item))
163  for item in masterItemList:
164  if "Aux." in item:
165  allVariablesList.append(item)
166 
167  # Trigger objects: add them by hand to the smart collection list (to keep the previous interface)
168  triggerContent = False
169 
170  if (self.IncludeAdditionalTriggerContent is True):
171  triggerContent = True
172 
173  if (self.IncludeMuonTriggerContent is True):
174  triggerContent = True
175  self.SmartCollections.append("HLT_xAOD__MuonContainer_MuonEFInfo")
176 
177  if (self.IncludeEGammaTriggerContent is True):
178  triggerContent = True
179  self.SmartCollections.append("HLT_xAOD__PhotonContainer_egamma_Photons")
180 
181  if (self.IncludeJetTriggerContent is True):
182  triggerContent = True
183  self.SmartCollections.append("HLT_xAOD__JetContainer_a4tcemsubjesFS")
184  self.SmartCollections.append("HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf") # Run 3 jet collections
185  from DerivationFrameworkCore.JetTriggerFixContent import JetTriggerFixContent
186  for item in JetTriggerFixContent:
187  self.FinalItemList.append(item)
188 
189  if (self.IncludeTrackingTriggerContent is True):
190  triggerContent = True
191  self.SmartCollections.append("HLT_IDVertex_FS")
192  self.SmartCollections.append("HLT_IDTrack_FS_FTF")
193 
194  if (self.IncludeEtMissTriggerContent is True):
195  triggerContent = True
196  self.SmartCollections.append("HLT_xAOD__TrigMissingETContainer_TrigEFMissingET")
197  from DerivationFrameworkCore.EtMissTriggerFixContent import EtMissTriggerFixContent
198  for item in EtMissTriggerFixContent:
199  self.FinalItemList.append(item)
200 
201  if (self.IncludeTauTriggerContent is True):
202  triggerContent = True
203  if self.flags.Trigger.EDMVersion == 2:
204  self.SmartCollections.append("HLT_xAOD__TauJetContainer_TrigTauRecMerged")
205  elif self.flags.Trigger.EDMVersion == 3:
206  self.SmartCollections.append("HLT_TrigTauRecMerged_MVA")
207 
208  if (self.IncludeBJetTriggerContent is True):
209  triggerContent = True
210  self.SmartCollections.append("HLT_xAOD__BTaggingContainer_HLTBjetFex")
211 
212  if (self.IncludeBPhysTriggerContent is True):
213  triggerContent = True
214  self.SmartCollections.append("HLT_xAOD__TrigBphysContainer_EFBMuMuFex")
215 
216  if (self.IncludeMinBiasTriggerContent is True):
217  triggerContent = True
218  self.SmartCollections.append("HLT_xAOD__TrigVertexCountsContainer_vertexcounts")
219 
220  # Smart items
221  if len(self.SmartCollections)>0:
222  for collection in self.SmartCollections:
223  masterItemList.extend(self.GetSmartItems(collection))
224 
225  # Run some basic tests to prevent clashes with CompulsoryContent content
226  self.CheckList(masterItemList)
227 
228  # Add extra variables
229  if len(self.ExtraVariables)>0:
230  for item in self.ExtraVariables:
231  masterItemList.extend(self.GetExtraItems(item))
232 
233  #Add on-the-fly containers to the dictionary
234  for _cont,_type in ContainersOnTheFly(self.flags):
235  if _cont not in self.AppendToDictionary:
236  self.AppendToDictionary[_cont]=_type
237 
238  # Process the master list...
239 
240  # Main containers (this is a simple list of lines, one per container X collection)
241  mainEntries = []
242  # Aux items (this is a dictionary: collection name and list of aux variables)
243  auxEntries = {}
244  self.theHandler.AppendToDictionary = self.AppendToDictionary
245  mainEntries,auxEntries = self.theHandler.GetContent(masterItemList,allVariablesList)
246 
247  # Add processed items to the stream
248  excludedAuxData = "-clusterAssociation.-PseudoJet"
249  excludedAuxEntries= [entry.strip("-") for entry in excludedAuxData.split(".")]
250  for item in mainEntries:
251  self.FinalItemList.append(item)
252  for item in auxEntries.keys():
253  theDictionary = self.NamesAndTypes.copy()
254  theDictionary.update (self.AppendToDictionary)
255  if item in theDictionary.keys():
256  if (theDictionary[item]=='xAOD::JetAuxContainer'):
257  entry = "xAOD::JetAuxContainer#"+item+"."
258  elif (theDictionary[item]=='xAOD::ShallowAuxContainer'):
259  entry = "xAOD::ShallowAuxContainer#"+item+"."
260  elif (theDictionary[item]=='xAOD::MissingETAuxAssociationMap'):
261  entry = "xAOD::MissingETAuxAssociationMap#"+item+"."
262  elif (theDictionary[item]=='xAOD::JetTrigAuxContainer'):
263  entry = "xAOD::JetTrigAuxContainer#"+item+"."
264  elif ("AuxInfo" in theDictionary[item]):
265  entry = "xAOD::AuxInfoBase!#"+item+"."
266  else:
267  entry = "xAOD::AuxContainerBase!#"+item+"."
268  for element in auxEntries[item]:
269  #Skip anything that shouldn't be written out to a DAOD for tracks or jets
270  if ('xAOD::TrackParticleContainer' in theDictionary[item]) and (element in excludedAuxEntries): continue
271  if ('xAOD::JetAuxContainer' in theDictionary[item]) and (element in excludedAuxEntries): continue
272  length = len(auxEntries[item])
273  if (element==(auxEntries[item])[length-1]):
274  entry += element
275  else:
276  entry += element+"."
277  if ('xAOD::TrackParticleContainer' in theDictionary[item] and auxEntries[item]==""):
278  entry+=excludedAuxData
279  if ('xAOD::JetAuxContainer' in theDictionary[item] and auxEntries[item]==""):
280  entry+=excludedAuxData
281  self.FinalItemList.append(entry)
282 
283  # Add compulsory items not covered by smart slimming (so no expansion)
284  for item in CompulsoryContent:
285  self.FinalItemList.append(item)
286 
287  # Add trigger item (not covered by smart slimming so no expansion)
288  # Old, will be removed (kept just to not break some deriavtions)
289  if (self.IncludeJetTauEtMissTriggerContent is True):
290  from DerivationFrameworkCore.JetTauEtMissTriggerContent import JetTauEtMissTriggerContent
291  for item in JetTauEtMissTriggerContent:
292  self.FinalItemList.append(item)
293 
294  # non xAOD collections for MinBias
295  if (self.IncludeMinBiasTriggerContent is True):
296  from DerivationFrameworkCore.MinBiasTrigger_nonxAOD_Content import MinBiasTrigger_nonxAOD_Content
297  for item in MinBiasTrigger_nonxAOD_Content:
298  self.FinalItemList.append(item)
299 
300  if (triggerContent and self.IncludeTriggerNavigation):
301  # Run2
302  for item in CompulsoryTriggerNavigation:
303  self.FinalItemList.append(item)
304  # Run3
305  from TrigDecisionTool.TrigDecisionToolConfig import possible_keys
306  for item in possible_keys:
307  if item == "HLTNav_Summary": # This is not a compact navigation summary collection, unlike the others in this list
308  continue
309  self.FinalItemList.append('xAOD::TrigCompositeContainer#'+item)
310  self.FinalItemList.append('xAOD::TrigCompositeAuxContainer#'+item+'Aux.')
311 
312  # Add non-xAOD and on-the-fly content (not covered by smart slimming so no expansion)
313  badItemsWildcards = []
314  badItemsXAOD = []
315  for item in self.StaticContent:
316  if (self.ValidateStaticContent(item)=="OK"):
317  self.FinalItemList.append(item)
318  if (self.ValidateStaticContent(item)=="WILDCARD"):
319  badItemsWildcards.append(item)
320  if (self.ValidateStaticContent(item)=="XAOD"):
321  badItemsXAOD.append(item)
322  if (len(badItemsWildcards)>0):
323  msg.error("These static items contain wildcards: not permitted")
324  print (badItemsWildcards)
325  raise RuntimeError("Static content list contains wildcards")
326  if (len(badItemsXAOD)>0):
327  msg.error("These static items are xAOD collections: not permitted")
328  print (badItemsXAOD)
329  raise RuntimeError("Static content list contains xAOD collections")
330  #Prevent any more modifications As they will be completely ignored, and hard to debug
331  self.FinalItemList.lock()
332  self.StaticContent.lock()
333  self.ExtraVariables.lock()
334  self.SmartCollections.lock()
335  self.AllVariables.lock()
336  self._locked=True
337 

◆ CheckList()

def SlimmingHelper.SlimmingHelper.CheckList (   self,
  masterList 
)

Definition at line 119 of file SlimmingHelper.py.

119  def CheckList(self,masterList):
120  conflicted_items=[]
121  for item in CompulsoryContent:
122  if item.endswith("#*"):
123  compare_str=item[:-2].replace("xAOD::","")
124  for m_item in masterList:
125  if m_item.startswith(compare_str) and m_item.replace("Aux.","") not in CompulsoryDynamicContent:
126  conflicted_items.append(m_item)
127  if len(conflicted_items)!=0:
128  msg.error("Slimming list contains " +str(conflicted_items)+" which are already included in compulsory content: please remove these items from slimming list")
129  raise RuntimeError("Conflict in Slimming List and Compulsory Content")
130 
131 

◆ GetExtraItems()

def SlimmingHelper.SlimmingHelper.GetExtraItems (   self,
  userInput 
)

Definition at line 652 of file SlimmingHelper.py.

652  def GetExtraItems(self,userInput):
653  # Build up a content list in the same style as is produced by the PrintStats
654  splitup = userInput.split(".")
655  auxContainerName = splitup[0]+"Aux"
656  items = []
657  items.append(splitup[0])
658  auxLine = ""
659  length = len(splitup)
660  for string in splitup:
661  if string==splitup[0]:
662  auxLine = auxContainerName+"."
663  continue
664  if string==splitup[length-1]:
665  auxLine = auxLine+string
666  else:
667  auxLine = auxLine+string+"."
668  items.append(auxLine)
669  return items
670 

◆ GetItemList()

def SlimmingHelper.SlimmingHelper.GetItemList (   self)

Definition at line 144 of file SlimmingHelper.py.

144  def GetItemList(self):
145  # Check if the SlimmingHelper is locked.
146  # If it is, just return the item list.
147  # If not, build the item list and then return it.
148  if self._locked is False:
149  self.BuildFinalItemList()
150  return(self.FinalItemList)
151 

◆ GetKinematicsItems()

def SlimmingHelper.SlimmingHelper.GetKinematicsItems (   self,
  collectionName 
)

Definition at line 645 of file SlimmingHelper.py.

645  def GetKinematicsItems(self,collectionName):
646  # Content lines in the same style as is produced by the PrintStats
647  kinematicsLine = collectionName+"Aux."+"pt.eta.phi.m"
648  items = [collectionName,kinematicsLine]
649  return items
650 

◆ GetSmartItems()

def SlimmingHelper.SlimmingHelper.GetSmartItems (   self,
  collectionName 
)

Definition at line 347 of file SlimmingHelper.py.

347  def GetSmartItems(self,collectionName):
348  # Look up what is needed for this container type
349  items = []
350  if collectionName not in FullListOfSmartContainers(self.flags):
351  raise RuntimeError("Smart slimming container "+collectionName+" does not exist or does not have a smart slimming list")
352  if collectionName=="EventInfo":
353  from DerivationFrameworkCore.EventInfoContent import EventInfoContent
354  items.extend(EventInfoContent)
355  elif collectionName=="Electrons":
356  from DerivationFrameworkEGamma.ElectronsCPContent import ElectronsCPContent
357  items.extend(ElectronsCPContent)
358  elif collectionName=="LRTElectrons":
359  from DerivationFrameworkEGamma.LargeD0ElectronsCPContent import LargeD0ElectronsCPContent
360  items.extend(LargeD0ElectronsCPContent)
361  elif collectionName=="Photons":
362  from DerivationFrameworkEGamma.PhotonsCPContent import PhotonsCPContent
363  items.extend(PhotonsCPContent)
364  elif collectionName=="Muons":
365  if not self.flags:
366  raise RuntimeError("We're in the era of component accumulator. Please setup your job with CA if you want to have muons")
367  from DerivationFrameworkMuons.MuonsCommonConfig import MuonCPContentCfg
368  items.extend(MuonCPContentCfg(self.flags))
369  elif collectionName=="MuonsLRT":
370  if not self.flags:
371  raise RuntimeError("We're in the era of component accumulator. Please setup your job with CA if you want to have muons")
372  from DerivationFrameworkMuons.MuonsCommonConfig import MuonCPContentLRTCfg
373  items.extend(MuonCPContentLRTCfg(self.flags))
374  elif collectionName=="TauJets":
375  from DerivationFrameworkTau.TauJetsCPContent import TauJetsCPContent
376  items.extend(TauJetsCPContent)
377  elif collectionName=="DiTauJets":
378  from DerivationFrameworkTau.DiTauJetsCPContent import DiTauJetsCPContent
379  items.extend(DiTauJetsCPContent)
380  elif collectionName=="DiTauJetsLowPt":
381  from DerivationFrameworkTau.DiTauJetsLowPtCPContent import DiTauJetsLowPtCPContent
382  items.extend(DiTauJetsLowPtCPContent)
383  elif collectionName=="TauJets_MuonRM":
384  from DerivationFrameworkTau.TauJets_MuonRMCPContent import TauJets_MuonRMCPContent
385  if "TauJets_MuonRM" not in self.AppendToDictionary:
386  self.AppendToDictionary["TauJets_MuonRM"] = 'xAOD::TauJetContainer'
387  self.AppendToDictionary["TauJets_MuonRMAux"] = 'xAOD::TauJetAuxContainer'
388  self.AppendToDictionary["TauTracks_MuonRM"] = 'xAOD::TauTrackContainer'
389  self.AppendToDictionary["TauTracks_MuonRMAux"] = 'xAOD::TauTrackAuxContainer'
390  self.AppendToDictionary["TauSecondaryVertices_MuonRM"] = 'xAOD::VertexContainer'
391  self.AppendToDictionary["TauSecondaryVertices_MuonRMAux"] = 'xAOD::VertexAuxContainer'
392  self.AppendToDictionary["TauNeutralParticleFlowObjects_MuonRM"] = 'xAOD::PFOContainer'
393  self.AppendToDictionary["TauNeutralParticleFlowObjects_MuonRMAux"] = 'xAOD::PFOAuxContainer'
394  items.extend(TauJets_MuonRMCPContent)
395  elif collectionName=="TauJets_EleRM":
396  from DerivationFrameworkTau.TauJets_EleRMCPContent import TauJets_EleRMCPContent
397  items.extend(TauJets_EleRMCPContent)
398  elif collectionName=="MET_Baseline_AntiKt4EMTopo":
399  from DerivationFrameworkJetEtMiss.MET_Baseline_AntiKt4EMTopoCPContent import MET_Baseline_AntiKt4EMTopoCPContent
400  items.extend(MET_Baseline_AntiKt4EMTopoCPContent)
401  elif collectionName=="MET_Baseline_AntiKt4EMPFlow":
402  from DerivationFrameworkJetEtMiss.MET_Baseline_AntiKt4EMPFlowCPContent import MET_Baseline_AntiKt4EMPFlowCPContent
403  items.extend(MET_Baseline_AntiKt4EMPFlowCPContent)
404  elif collectionName=="AntiKt2TruthJets":
405  from DerivationFrameworkJetEtMiss.AntiKt2TruthJetsCPContent import AntiKt2TruthJetsCPContent
406  items.extend(AntiKt2TruthJetsCPContent)
407  elif collectionName=="AntiKt4TruthJets":
408  from DerivationFrameworkJetEtMiss.AntiKt4TruthJetsCPContent import AntiKt4TruthJetsCPContent
409  items.extend(AntiKt4TruthJetsCPContent)
410  elif collectionName=="AntiKt4TruthWZJets":
411  from DerivationFrameworkJetEtMiss.AntiKt4TruthWZJetsCPContent import AntiKt4TruthWZJetsCPContent
412  items.extend(AntiKt4TruthWZJetsCPContent)
413  elif collectionName=="AntiKt4TruthDressedWZJets":
414  from DerivationFrameworkJetEtMiss.AntiKt4TruthDressedWZJetsCPContent import AntiKt4TruthDressedWZJetsCPContent
415  items.extend(AntiKt4TruthDressedWZJetsCPContent)
416  elif collectionName=="AntiKt2LCTopoJets":
417  from DerivationFrameworkJetEtMiss.AntiKt2LCTopoJetsCPContent import AntiKt2LCTopoJetsCPContent
418  items.extend(AntiKt2LCTopoJetsCPContent)
419  elif collectionName=="AntiKt4LCTopoJets":
420  from DerivationFrameworkJetEtMiss.AntiKt4LCTopoJetsCPContent import AntiKt4LCTopoJetsCPContent
421  items.extend(AntiKt4LCTopoJetsCPContent)
422  elif collectionName=="AntiKt4EMTopoJets":
423  from DerivationFrameworkJetEtMiss.AntiKt4EMTopoJetsCPContent import AntiKt4EMTopoJetsCPContent
424  items.extend(AntiKt4EMTopoJetsCPContent)
425  elif collectionName=="AntiKt4EMTopoLowPtJets":
426  from DerivationFrameworkJetEtMiss.AntiKt4EMTopoLowPtJetsCPContent import AntiKt4EMTopoLowPtJetsCPContent
427  items.extend(AntiKt4EMTopoLowPtJetsCPContent)
428  elif collectionName=="AntiKt4EMTopoNoPtCutJets":
429  from DerivationFrameworkJetEtMiss.AntiKt4EMTopoNoPtCutJetsCPContent import AntiKt4EMTopoNoPtCutJetsCPContent
430  items.extend(AntiKt4EMTopoNoPtCutJetsCPContent)
431  elif collectionName=="AntiKt4EMPFlowJets":
432  from DerivationFrameworkJetEtMiss.AntiKt4EMPFlowJetsCPContent import AntiKt4EMPFlowJetsCPContent
433  items.extend(AntiKt4EMPFlowJetsCPContent)
434  elif collectionName=="AntiKt4EMPFlowLowPtJets":
435  from DerivationFrameworkJetEtMiss.AntiKt4EMPFlowLowPtJetsCPContent import AntiKt4EMPFlowLowPtJetsCPContent
436  items.extend(AntiKt4EMPFlowLowPtJetsCPContent)
437  elif collectionName=="AntiKt4EMPFlowByVertexJets":
438  from DerivationFrameworkJetEtMiss.AntiKt4EMPFlowByVertexJetsCPContent import AntiKt4EMPFlowByVertexJetsCPContent
439  items.extend(AntiKt4EMPFlowByVertexJetsCPContent)
440  elif collectionName=="AntiKt4UFOCSSKJets":
441  from DerivationFrameworkJetEtMiss.AntiKt4UFOCSSKJetsCPContent import AntiKt4UFOCSSKJetsCPContent
442  items.extend(AntiKt4UFOCSSKJetsCPContent)
443  elif collectionName=="AntiKt4UFOCSSKLowPtJets":
444  from DerivationFrameworkJetEtMiss.AntiKt4UFOCSSKLowPtJetsCPContent import AntiKt4UFOCSSKLowPtJetsCPContent
445  items.extend(AntiKt4UFOCSSKLowPtJetsCPContent)
446  elif collectionName=="AntiKt10TruthJets":
447  from DerivationFrameworkJetEtMiss.AntiKt10TruthJetsCPContent import AntiKt10TruthJetsCPContent
448  items.extend(AntiKt10TruthJetsCPContent)
449  elif collectionName=="AntiKt10TruthWZJets":
450  from DerivationFrameworkJetEtMiss.AntiKt10TruthWZJetsCPContent import AntiKt10TruthWZJetsCPContent
451  items.extend(AntiKt10TruthWZJetsCPContent)
452  elif collectionName=="AntiKt10LCTopoJets":
453  from DerivationFrameworkJetEtMiss.AntiKt10LCTopoJetsCPContent import AntiKt10LCTopoJetsCPContent
454  items.extend(AntiKt10LCTopoJetsCPContent)
455  elif collectionName=="AntiKt10TrackCaloClusterJets":
456  from DerivationFrameworkJetEtMiss.AntiKt10TrackCaloClusterJetsCPContent import AntiKt10TrackCaloClusterJetsCPContent
457  items.extend(AntiKt10TrackCaloClusterJetsCPContent)
458  elif collectionName=="AntiKt10UFOCSSKJets":
459  from DerivationFrameworkJetEtMiss.AntiKt10UFOCSSKJetsCPContent import AntiKt10UFOCSSKJetsCPContent
460  items.extend(AntiKt10UFOCSSKJetsCPContent)
461  elif collectionName=="AntiKt10UFOCHSJets":
462  from DerivationFrameworkJetEtMiss.AntiKt10UFOCHSJetsCPContent import AntiKt10UFOCHSJetsCPContent
463  items.extend(AntiKt10UFOCHSJetsCPContent)
464  elif collectionName=="AntiKt10TruthTrimmedPtFrac5SmallR20Jets":
465  from DerivationFrameworkJetEtMiss.AntiKt10TruthTrimmedPtFrac5SmallR20JetsCPContent import AntiKt10TruthTrimmedPtFrac5SmallR20JetsCPContent
466  items.extend(AntiKt10TruthTrimmedPtFrac5SmallR20JetsCPContent)
467  elif collectionName=="AntiKt10LCTopoTrimmedPtFrac5SmallR20Jets":
468  from DerivationFrameworkJetEtMiss.AntiKt10LCTopoTrimmedPtFrac5SmallR20JetsCPContent import AntiKt10LCTopoTrimmedPtFrac5SmallR20JetsCPContent
469  items.extend(AntiKt10LCTopoTrimmedPtFrac5SmallR20JetsCPContent)
470  elif collectionName=="AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20Jets":
471  from DerivationFrameworkJetEtMiss.AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20JetsCPContent import AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20JetsCPContent
472  if "AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20Jets" not in self.AppendToDictionary:
473  self.AppendToDictionary["AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20Jets"]='xAOD::JetContainer'
474  self.AppendToDictionary["AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20JetsAux"]='xAOD::JetAuxContainer'
475  items.extend(AntiKt10TrackCaloClusterTrimmedPtFrac5SmallR20JetsCPContent)
476  elif collectionName=="AntiKt10TruthSoftDropBeta100Zcut10Jets":
477  from DerivationFrameworkJetEtMiss.AntiKt10TruthSoftDropBeta100Zcut10JetsCPContent import AntiKt10TruthSoftDropBeta100Zcut10JetsCPContent
478  items.extend(AntiKt10TruthSoftDropBeta100Zcut10JetsCPContent)
479  elif collectionName=="AntiKt10TruthDressedWZSoftDropBeta100Zcut10Jets":
480  from DerivationFrameworkJetEtMiss.AntiKt10TruthDressedWZSoftDropBeta100Zcut10JetsCPContent import AntiKt10TruthDressedWZSoftDropBeta100Zcut10JetsCPContent
481  items.extend(AntiKt10TruthDressedWZSoftDropBeta100Zcut10JetsCPContent)
482  elif collectionName=="AntiKt10UFOCHSSoftDropBeta100Zcut10Jets":
483  from DerivationFrameworkJetEtMiss.AntiKt10UFOCHSSoftDropBeta100Zcut10JetsCPContent import AntiKt10UFOCHSSoftDropBeta100Zcut10JetsCPContent
484  items.extend(AntiKt10UFOCHSSoftDropBeta100Zcut10JetsCPContent)
485  elif collectionName=="AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets":
486  from DerivationFrameworkJetEtMiss.AntiKt10UFOCSSKSoftDropBeta100Zcut10JetsCPContent import AntiKt10UFOCSSKSoftDropBeta100Zcut10JetsCPContent
487  items.extend(AntiKt10UFOCSSKSoftDropBeta100Zcut10JetsCPContent)
488  elif collectionName=="AntiKtVR30Rmax4Rmin02PV0TrackJets":
489  from DerivationFrameworkJetEtMiss.AntiKtVR30Rmax4Rmin02PV0TrackJetsCPContent import AntiKtVR30Rmax4Rmin02PV0TrackJetsCPContent
490  items.extend(AntiKtVR30Rmax4Rmin02PV0TrackJetsCPContent)
491  elif collectionName=="BTagging_AntiKt4UFOCSSK":
492  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
493  items.extend(BTaggingStandardContent("AntiKt4UFOCSSKJets", self.flags))
494  elif collectionName=="BTagging_AntiKt4UFOCSSK_expert":
495  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
496  items.extend(BTaggingExpertContent("AntiKt4UFOCSSKJets", self.flags))
497  elif collectionName=="BTagging_AntiKt4EMPFlow":
498  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
499  items.extend(BTaggingStandardContent("AntiKt4EMPFlowJets", self.flags))
500  elif collectionName=="BTagging_AntiKt4EMPFlow_expert":
501  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
502  items.extend(BTaggingExpertContent("AntiKt4EMPFlowJets", self.flags))
503  elif collectionName=="BTagging_AntiKt4EMTopo":
504  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
505  items.extend(BTaggingStandardContent("AntiKt4EMTopoJets", self.flags))
506  elif collectionName=="BTagging_AntiKtVR30Rmax4Rmin02Track":
507  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
508  items.extend(BTaggingStandardContent("AntiKtVR30Rmax4Rmin02PV0TrackJets", self.flags))
509  elif collectionName=="BTagging_AntiKtVR30Rmax4Rmin02Track_expert":
510  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
511  items.extend(BTaggingExpertContent("AntiKtVR30Rmax4Rmin02PV0TrackJets", self.flags))
512  elif collectionName=="BTagging_AntiKt2Track":
513  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
514  items.extend(BTaggingStandardContent("AntiKt2PV0TrackJets", self.flags))
515  elif collectionName=="BTagging_AntiKt3Track":
516  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
517  items.extend(BTaggingStandardContent("AntiKt3PV0TrackJets", self.flags))
518  elif collectionName=="BTagging_AntiKt4Track":
519  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
520  items.extend(BTaggingStandardContent("AntiKt4PV0TrackJets", self.flags))
521  elif collectionName=="BTagging_AntiKt8EMTopoExKt2Sub":
522  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
523  items.extend(BTaggingExpertContent("AntiKt8EMTopoExKt2SubJets", self.flags))
524  elif collectionName=="BTagging_AntiKt8EMTopoExKt3Sub":
525  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
526  items.extend(BTaggingExpertContent("AntiKt8EMTopoExKt3SubJets", self.flags))
527  elif collectionName=="BTagging_AntiKt8EMTopoExCoM2Sub":
528  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
529  items.extend(BTaggingExpertContent("AntiKt8EMTopoExCoM2SubJets", self.flags))
530  elif collectionName=="BTagging_AntiKt8EMPFlowExKt2Sub":
531  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
532  items.extend(BTaggingExpertContent("AntiKt8EMPFlowExKt2SubJets", self.flags))
533  elif collectionName=="BTagging_AntiKt8EMPFlowExKt3Sub":
534  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
535  items.extend(BTaggingExpertContent("AntiKt8EMPFlowExKt3SubJets", self.flags))
536  elif collectionName=="BTagging_AntiKt8EMPFlowExKt2GASub":
537  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
538  items.extend(BTaggingExpertContent("AntiKt8EMPFlowExKt2GASubJets", self.flags))
539  elif collectionName=="BTagging_AntiKt8EMPFlowExKt3GASub":
540  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingExpertContent
541  items.extend(BTaggingExpertContent("AntiKt8EMPFlowExKt3GASubJets", self.flags))
542  elif collectionName=="BTagging_DFAntiKt4HI":
543  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
544  items.extend(BTaggingStandardContent("DFAntiKt4HIJets", self.flags))
545  elif collectionName=="BTagging_AntiKt4HI":
546  from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent
547  items.extend(BTaggingStandardContent("AntiKt4HIJets", self.flags))
548  elif collectionName=="InDetTrackParticles":
549  from DerivationFrameworkInDet.InDetTrackParticlesCPContent import InDetTrackParticlesCPContent
550  items.extend(InDetTrackParticlesCPContent)
551  if self.flags.GeoModel.Run >= LHCPeriod.Run4:
552  from DerivationFrameworkInDet.InDetTrackParticlesCPContentRun4 import InDetTrackParticlesCPContentRun4
553  items.extend(InDetTrackParticlesCPContentRun4)
554  elif collectionName=="InDetPseudoTrackParticles":
555  from DerivationFrameworkInDet.InDetPseudoTrackParticlesCPContent import InDetPseudoTrackParticlesCPContent
556  items.extend(InDetPseudoTrackParticlesCPContent)
557  elif collectionName=="InDetReplacedWithPseudoTrackParticles":
558  from DerivationFrameworkInDet.InDetReplacedWithPseudoTrackParticlesCPContent import InDetReplacedWithPseudoTrackParticlesCPContent
559  items.extend(InDetReplacedWithPseudoTrackParticlesCPContent)
560  elif collectionName=="InDetReplacedWithPseudoFromBTrackParticles":
561  from DerivationFrameworkInDet.InDetReplacedWithPseudoFromBTrackParticlesCPContent import InDetReplacedWithPseudoFromBTrackParticlesCPContent
562  items.extend(InDetReplacedWithPseudoFromBTrackParticlesCPContent)
563  elif collectionName=="InDetReplacedWithPseudoNotFromBTrackParticles":
564  from DerivationFrameworkInDet.InDetReplacedWithPseudoNotFromBTrackParticlesCPContent import InDetReplacedWithPseudoNotFromBTrackParticlesCPContent
565  items.extend(InDetReplacedWithPseudoNotFromBTrackParticlesCPContent)
566  elif collectionName=="InDetPlusPseudoTrackParticles":
567  from DerivationFrameworkInDet.InDetPlusPseudoTrackParticlesCPContent import InDetPlusPseudoTrackParticlesCPContent
568  items.extend(InDetPlusPseudoTrackParticlesCPContent)
569  elif collectionName=="InDetPlusPseudoFromBTrackParticles":
570  from DerivationFrameworkInDet.InDetPlusPseudoFromBTrackParticlesCPContent import InDetPlusPseudoFromBTrackParticlesCPContent
571  items.extend(InDetPlusPseudoFromBTrackParticlesCPContent)
572  elif collectionName=="InDetPlusPseudoNotFromBTrackParticles":
573  from DerivationFrameworkInDet.InDetPlusPseudoNotFromBTrackParticlesCPContent import InDetPlusPseudoNotFromBTrackParticlesCPContent
574  items.extend(InDetPlusPseudoNotFromBTrackParticlesCPContent)
575  elif collectionName=="InDetNoFakesTrackParticles":
576  from DerivationFrameworkInDet.InDetNoFakesTrackParticlesCPContent import InDetNoFakesTrackParticlesCPContent
577  items.extend(InDetNoFakesTrackParticlesCPContent)
578  elif collectionName=="InDetNoFakesFromBTrackParticles":
579  from DerivationFrameworkInDet.InDetNoFakesFromBTrackParticlesCPContent import InDetNoFakesFromBTrackParticlesCPContent
580  items.extend(InDetNoFakesFromBTrackParticlesCPContent)
581  elif collectionName=="InDetNoFakesNotFromBTrackParticles":
582  from DerivationFrameworkInDet.InDetNoFakesNotFromBTrackParticlesCPContent import InDetNoFakesNotFromBTrackParticlesCPContent
583  items.extend(InDetNoFakesNotFromBTrackParticlesCPContent)
584  elif collectionName=="InDetSiSPSeededTracksParticles":
585  from DerivationFrameworkInDet.InDetSiSPSeededTracksParticlesCPContent import InDetSiSPSeededTracksParticlesCPContent
586  items.extend(InDetSiSPSeededTracksParticlesCPContent)
587  elif collectionName=="InDetLargeD0TrackParticles":
588  from DerivationFrameworkInDet.InDetLargeD0TrackParticlesCPContent import InDetLargeD0TrackParticlesCPContent
589  items.extend(InDetLargeD0TrackParticlesCPContent)
590  elif collectionName=="PrimaryVertices":
591  from DerivationFrameworkInDet.PrimaryVerticesCPContent import PrimaryVerticesCPContent
592  items.extend(PrimaryVerticesCPContent)
593  if self.flags.GeoModel.Run >= LHCPeriod.Run4:
594  from DerivationFrameworkInDet.PrimaryVerticesCPContentRun4 import PrimaryVerticesCPContentRun4
595  items.extend(PrimaryVerticesCPContentRun4)
596  elif self.IncludeAdditionalTriggerContent is True:
597  from DerivationFrameworkCore.AdditionalTriggerContent import AdditionalTriggerContent
598  items.extend(AdditionalTriggerContent)
599  elif collectionName=="HLT_xAOD__MuonContainer_MuonEFInfo":
600  from DerivationFrameworkMuons.MuonTriggerContent import MuonTriggerContent
601  items.extend(MuonTriggerContent)
602  elif collectionName=="HLT_xAOD__PhotonContainer_egamma_Photons":
603  from DerivationFrameworkCore.EGammaTriggerContent import EGammaTriggerContent
604  items.extend(EGammaTriggerContent)
605  elif collectionName=="HLT_xAOD__JetContainer_a4tcemsubjesFS":
606  from DerivationFrameworkCore.JetTriggerContent import JetTriggerContent
607  items.extend(JetTriggerContent)
608  elif collectionName=="HLT_IDVertex_FS":
609  from DerivationFrameworkCore.TrackingTriggerContent import TrackingTriggerContent
610  items.extend(TrackingTriggerContent)
611  elif collectionName=="HLT_IDTrack_FS_FTF":
612  from DerivationFrameworkCore.TrackingTriggerContent import TrackingTriggerContent
613  items.extend(TrackingTriggerContent)
614  elif collectionName=="HLT_xAOD__TrigMissingETContainer_TrigEFMissingET":
615  from DerivationFrameworkCore.EtMissTriggerContent import EtMissTriggerContent
616  items.extend(EtMissTriggerContent)
617  elif collectionName=="HLT_xAOD__TauJetContainer_TrigTauRecMerged":
618  from DerivationFrameworkCore.TauTriggerContent import TauTriggerContentRun2
619  items.extend(TauTriggerContentRun2)
620  elif collectionName=="HLT_TrigTauRecMerged_MVA":
621  from DerivationFrameworkCore.TauTriggerContent import TauTriggerContentRun3
622  items.extend(TauTriggerContentRun3)
623  elif collectionName=="HLT_xAOD__BTaggingContainer_HLTBjetFex":
624  from DerivationFrameworkFlavourTag.BJetTriggerContent import BJetTriggerContent
625  items.extend(BJetTriggerContent)
626  elif collectionName=="HLT_xAOD__TrigBphysContainer_EFBMuMuFex":
627  from DerivationFrameworkCore.BPhysTriggerContent import BPhysTriggerContent
628  items.extend(BPhysTriggerContent)
629  elif collectionName=="HLT_xAOD__TrigVertexCountsContainer_vertexcounts":
630  from DerivationFrameworkCore.MinBiasTriggerContent import MinBiasTriggerContent
631  items.extend(MinBiasTriggerContent)
632  elif collectionName=="HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf":
633  from DerivationFrameworkCore.JetTriggerContentRun3 import JetTriggerContentRun3
634  from DerivationFrameworkCore.JetTriggerContentRun3TLA import JetTriggerContentRun3TLA
635  if not self.OverrideJetTriggerContentWithTLAContent:
636  items.extend(JetTriggerContentRun3)
637  else:
638  items.extend(JetTriggerContentRun3TLA)
639 
640  else:
641  raise RuntimeError("Smart slimming container "+collectionName+" does not exist or does not have a smart slimming list")
642  return items
643 

◆ GetWholeContentItems()

def SlimmingHelper.SlimmingHelper.GetWholeContentItems (   self,
  collection 
)

Definition at line 342 of file SlimmingHelper.py.

342  def GetWholeContentItems(self,collection):
343  items = [collection,collection+"Aux."]
344  return items
345 

◆ ValidateStaticContent()

def SlimmingHelper.SlimmingHelper.ValidateStaticContent (   self,
  item 
)

Definition at line 672 of file SlimmingHelper.py.

672  def ValidateStaticContent(self,item):
673  # No wildcards
674  if ("*" in item):
675  return "WILDCARD"
676  # No xAOD containers
677  sep = item.split("#")
678  if ("xAOD::" in item and sep[1] in self.NamesAndTypes.keys()):
679  return "XAOD"
680  return "OK"

Member Data Documentation

◆ _locked

SlimmingHelper.SlimmingHelper._locked
private

Definition at line 336 of file SlimmingHelper.py.

◆ AllVariables

SlimmingHelper.SlimmingHelper.AllVariables

Definition at line 87 of file SlimmingHelper.py.

◆ AppendToDictionary

SlimmingHelper.SlimmingHelper.AppendToDictionary

Definition at line 88 of file SlimmingHelper.py.

◆ ExtraVariables

SlimmingHelper.SlimmingHelper.ExtraVariables

Definition at line 84 of file SlimmingHelper.py.

◆ FinalItemList

SlimmingHelper.SlimmingHelper.FinalItemList

Definition at line 82 of file SlimmingHelper.py.

◆ flags

SlimmingHelper.SlimmingHelper.flags

Definition at line 89 of file SlimmingHelper.py.

◆ IncludeAdditionalTriggerContent

SlimmingHelper.SlimmingHelper.IncludeAdditionalTriggerContent

Definition at line 91 of file SlimmingHelper.py.

◆ IncludeBJetTriggerContent

SlimmingHelper.SlimmingHelper.IncludeBJetTriggerContent

Definition at line 99 of file SlimmingHelper.py.

◆ IncludeBPhysTriggerContent

SlimmingHelper.SlimmingHelper.IncludeBPhysTriggerContent

Definition at line 100 of file SlimmingHelper.py.

◆ IncludeEGammaTriggerContent

SlimmingHelper.SlimmingHelper.IncludeEGammaTriggerContent

Definition at line 93 of file SlimmingHelper.py.

◆ IncludeEtMissTriggerContent

SlimmingHelper.SlimmingHelper.IncludeEtMissTriggerContent

Definition at line 98 of file SlimmingHelper.py.

◆ IncludeJetTauEtMissTriggerContent

SlimmingHelper.SlimmingHelper.IncludeJetTauEtMissTriggerContent

Definition at line 94 of file SlimmingHelper.py.

◆ IncludeJetTriggerContent

SlimmingHelper.SlimmingHelper.IncludeJetTriggerContent

Definition at line 95 of file SlimmingHelper.py.

◆ IncludeMinBiasTriggerContent

SlimmingHelper.SlimmingHelper.IncludeMinBiasTriggerContent

Definition at line 101 of file SlimmingHelper.py.

◆ IncludeMuonTriggerContent

SlimmingHelper.SlimmingHelper.IncludeMuonTriggerContent

Definition at line 92 of file SlimmingHelper.py.

◆ IncludeTauTriggerContent

SlimmingHelper.SlimmingHelper.IncludeTauTriggerContent

Definition at line 97 of file SlimmingHelper.py.

◆ IncludeTrackingTriggerContent

SlimmingHelper.SlimmingHelper.IncludeTrackingTriggerContent

Definition at line 96 of file SlimmingHelper.py.

◆ IncludeTriggerNavigation

SlimmingHelper.SlimmingHelper.IncludeTriggerNavigation

Definition at line 90 of file SlimmingHelper.py.

◆ name

SlimmingHelper.SlimmingHelper.name

Definition at line 81 of file SlimmingHelper.py.

◆ NamesAndTypes

SlimmingHelper.SlimmingHelper.NamesAndTypes

Definition at line 104 of file SlimmingHelper.py.

◆ OverrideJetTriggerContentWithTLAContent

SlimmingHelper.SlimmingHelper.OverrideJetTriggerContentWithTLAContent

Definition at line 102 of file SlimmingHelper.py.

◆ SmartCollections

SlimmingHelper.SlimmingHelper.SmartCollections

Definition at line 86 of file SlimmingHelper.py.

◆ StaticContent

SlimmingHelper.SlimmingHelper.StaticContent

Definition at line 83 of file SlimmingHelper.py.

◆ theHandler

SlimmingHelper.SlimmingHelper.theHandler

Definition at line 106 of file SlimmingHelper.py.


The documentation for this class was generated from the following file:
replace
std::string replace(std::string s, const std::string &s2, const std::string &s3)
Definition: hcg.cxx:307
python.MuonsCommonConfig.MuonCPContentCfg
def MuonCPContentCfg(flags)
Definition: MuonsCommonConfig.py:201
FullListOfSmartContainers
Definition: FullListOfSmartContainers.py:1
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
ContainersOnTheFly
Definition: ContainersOnTheFly.py:1
python.BTaggingContent.BTaggingExpertContent
def BTaggingExpertContent(jetcol, ConfigFlags=None)
Definition: BTaggingContent.py:153
python.BTaggingContent.BTaggingStandardContent
def BTaggingStandardContent(jetcol, ConfigFlags=None)
Definition: BTaggingContent.py:168
SlimmingHelper.buildNamesAndTypes
def buildNamesAndTypes(*args)
Definition: SlimmingHelper.py:67
ContentHandler
Definition: ContentHandler.py:1
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
str
Definition: BTagTrackIpAccessor.cxx:11
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
python.MuonsCommonConfig.MuonCPContentLRTCfg
def MuonCPContentLRTCfg(flags)
Definition: MuonsCommonConfig.py:225
python.PyAthenaComps.__setattr__
__setattr__
Definition: PyAthenaComps.py:41
calibdata.copy
bool copy
Definition: calibdata.py:27