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)
 
def CheckDoubleTrigAuxInstruction (self, aux)
 

Public Attributes

 name
 
 FinalItemList
 
 StaticContent
 
 ExtraVariables
 
 SmartCollections
 
 AllVariables
 
 AppendToDictionary
 
 flags
 
 IncludeTriggerNavigation
 
 IncludeAdditionalTriggerContent
 
 IncludeMuonTriggerContent
 
 IncludeEGammaTriggerContent
 
 IncludeJetTriggerContent
 
 IncludeTrackingTriggerContent
 
 IncludeTauTriggerContent
 
 IncludeDiTauTriggerContent
 
 IncludeEtMissTriggerContent
 
 IncludeBJetTriggerContent
 
 IncludeBJetTriggerByYearContent
 
 IncludeBPhysTriggerContent
 
 IncludeMinBiasTriggerContent
 
 IncludeFullTriggerEDMLevel
 
 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.IncludeJetTriggerContent = False
95  self.IncludeTrackingTriggerContent = False
96  self.IncludeTauTriggerContent = False
97  self.IncludeDiTauTriggerContent = False
98  self.IncludeEtMissTriggerContent = False
99  self.IncludeBJetTriggerContent = False
100  self.IncludeBJetTriggerByYearContent = False
101  self.IncludeBPhysTriggerContent = False
102  self.IncludeMinBiasTriggerContent = False
103  self.IncludeFullTriggerEDMLevel = "" # Specify an AllowedOutputFormat from TriggerEDM.py
104  self.OverrideJetTriggerContentWithTLAContent = False
105  # Choice of whether user provided a typed container list or not (CA vs non-CA)
106  if "NamesAndTypes" in kwargs.keys(): self.NamesAndTypes = buildNamesAndTypes(kwargs["NamesAndTypes"])
107  else: self.NamesAndTypes = buildNamesAndTypes()
108  self.theHandler = ContentHandler(self.name+"Handler",self.NamesAndTypes)
109 

Member Function Documentation

◆ __setattr__()

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

Definition at line 111 of file SlimmingHelper.py.

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

◆ AppendContentToStream()

def SlimmingHelper.SlimmingHelper.AppendContentToStream (   self,
  Stream 
)

Definition at line 136 of file SlimmingHelper.py.

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

◆ BuildFinalItemList()

def SlimmingHelper.SlimmingHelper.BuildFinalItemList (   self)

Definition at line 154 of file SlimmingHelper.py.

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

◆ CheckDoubleTrigAuxInstruction()

def SlimmingHelper.SlimmingHelper.CheckDoubleTrigAuxInstruction (   self,
  aux 
)

Definition at line 659 of file SlimmingHelper.py.

659  def CheckDoubleTrigAuxInstruction(self, aux):
660  if self.IncludeFullTriggerEDMLevel and 'HLT_AntiKt4EMPFlowJets_subresjesgscIS_ftf_bJetsAux' in aux:
661  return False
662  return True

◆ CheckList()

def SlimmingHelper.SlimmingHelper.CheckList (   self,
  masterList 
)

Definition at line 121 of file SlimmingHelper.py.

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

◆ GetExtraItems()

def SlimmingHelper.SlimmingHelper.GetExtraItems (   self,
  userInput 
)

Definition at line 624 of file SlimmingHelper.py.

624  def GetExtraItems(self,userInput):
625  # Build up a content list in the same style as is produced by the PrintStats
626  splitup = userInput.split(".")
627  auxContainerName = splitup[0]+"Aux"
628  items = []
629  items.append(splitup[0])
630  auxLine = ""
631  length = len(splitup)
632  for string in splitup:
633  if string==splitup[0]:
634  auxLine = auxContainerName+"."
635  continue
636  if string==splitup[length-1]:
637  auxLine = auxLine+string
638  else:
639  auxLine = auxLine+string+"."
640  items.append(auxLine)
641  return items
642 

◆ GetItemList()

def SlimmingHelper.SlimmingHelper.GetItemList (   self)

Definition at line 146 of file SlimmingHelper.py.

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

◆ GetKinematicsItems()

def SlimmingHelper.SlimmingHelper.GetKinematicsItems (   self,
  collectionName 
)

Definition at line 617 of file SlimmingHelper.py.

617  def GetKinematicsItems(self,collectionName):
618  # Content lines in the same style as is produced by the PrintStats
619  kinematicsLine = collectionName+"Aux."+"pt.eta.phi.m"
620  items = [collectionName,kinematicsLine]
621  return items
622 

◆ GetSmartItems()

def SlimmingHelper.SlimmingHelper.GetSmartItems (   self,
  collectionName 
)

Definition at line 353 of file SlimmingHelper.py.

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

◆ GetWholeContentItems()

def SlimmingHelper.SlimmingHelper.GetWholeContentItems (   self,
  collection 
)

Definition at line 348 of file SlimmingHelper.py.

348  def GetWholeContentItems(self,collection):
349  items = [collection,collection+"Aux."]
350  return items
351 

◆ ValidateStaticContent()

def SlimmingHelper.SlimmingHelper.ValidateStaticContent (   self,
  item 
)

Definition at line 644 of file SlimmingHelper.py.

644  def ValidateStaticContent(self,item):
645  # No wildcards
646  if ("*" in item):
647  return "WILDCARD"
648  # No xAOD containers
649  sep = item.split("#")
650  if ("xAOD::" in item and sep[1] in self.NamesAndTypes.keys()):
651  return "XAOD"
652  return "OK"
653 

Member Data Documentation

◆ _locked

SlimmingHelper.SlimmingHelper._locked
private

Definition at line 342 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.

◆ IncludeBJetTriggerByYearContent

SlimmingHelper.SlimmingHelper.IncludeBJetTriggerByYearContent

Definition at line 100 of file SlimmingHelper.py.

◆ IncludeBJetTriggerContent

SlimmingHelper.SlimmingHelper.IncludeBJetTriggerContent

Definition at line 99 of file SlimmingHelper.py.

◆ IncludeBPhysTriggerContent

SlimmingHelper.SlimmingHelper.IncludeBPhysTriggerContent

Definition at line 101 of file SlimmingHelper.py.

◆ IncludeDiTauTriggerContent

SlimmingHelper.SlimmingHelper.IncludeDiTauTriggerContent

Definition at line 97 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.

◆ IncludeFullTriggerEDMLevel

SlimmingHelper.SlimmingHelper.IncludeFullTriggerEDMLevel

Definition at line 103 of file SlimmingHelper.py.

◆ IncludeJetTriggerContent

SlimmingHelper.SlimmingHelper.IncludeJetTriggerContent

Definition at line 94 of file SlimmingHelper.py.

◆ IncludeMinBiasTriggerContent

SlimmingHelper.SlimmingHelper.IncludeMinBiasTriggerContent

Definition at line 102 of file SlimmingHelper.py.

◆ IncludeMuonTriggerContent

SlimmingHelper.SlimmingHelper.IncludeMuonTriggerContent

Definition at line 92 of file SlimmingHelper.py.

◆ IncludeTauTriggerContent

SlimmingHelper.SlimmingHelper.IncludeTauTriggerContent

Definition at line 96 of file SlimmingHelper.py.

◆ IncludeTrackingTriggerContent

SlimmingHelper.SlimmingHelper.IncludeTrackingTriggerContent

Definition at line 95 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 106 of file SlimmingHelper.py.

◆ OverrideJetTriggerContentWithTLAContent

SlimmingHelper.SlimmingHelper.OverrideJetTriggerContentWithTLAContent

Definition at line 104 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 108 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:310
python.BTaggingContent.BTaggingStandardContent
def BTaggingStandardContent(flags, jetcol)
Definition: BTaggingContent.py:79
python.MuonsCommonConfig.MuonCPContentCfg
def MuonCPContentCfg(flags)
Definition: MuonsCommonConfig.py:201
FullListOfSmartContainers
Definition: FullListOfSmartContainers.py:1
python.processes.powheg.ZZj_MiNNLO.ZZj_MiNNLO.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZj_MiNNLO.py:18
python.RatesEmulationExample.lock
lock
Definition: RatesEmulationExample.py:148
dumpHVPathFromNtuple.append
bool append
Definition: dumpHVPathFromNtuple.py:91
ContainersOnTheFly
Definition: ContainersOnTheFly.py:1
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
python.BTaggingContent.BTaggingExpertContent
def BTaggingExpertContent(flags, jetcol)
Definition: BTaggingContent.py:125
python.BTaggingContent.BTaggingLargeRContent
def BTaggingLargeRContent(flags, jetcol)
Definition: BTaggingContent.py:57
BJetTriggerByYearContent.getBJetTriggerContent
def getBJetTriggerContent(flags)
Definition: BJetTriggerByYearContent.py:8
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
ContentHandler
Definition: ContentHandler.py:1
str
Definition: BTagTrackIpAccessor.cxx:11
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
python.MuonsCommonConfig.MuonCPContentLRTCfg
def MuonCPContentLRTCfg(flags)
Definition: MuonsCommonConfig.py:225
python.PyAthenaComps.__setattr__
__setattr__
Definition: PyAthenaComps.py:39
calibdata.copy
bool copy
Definition: calibdata.py:26