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

Public Member Functions

def __init__ (self, StreamName, FileName)
 
def SetOutputFileName (self, name)
 
def SetSimpleFileName (self, name)
 
def SetOutputDirName (self, name)
 
def AddItem (self, item)
 
def RemoveItem (self, item)
 
def AddMetaDataItem (self, item)
 
def RemoveMetaDataItem (self, item)
 
def Print (self)
 
def AddAcceptAlgs (self, algs)
 Accept Algs. More...
 
def RemoveAcceptAlgs (self, algs)
 
def GetAcceptAlgs (self)
 
def AddRequireAlgs (self, algs)
 Require Algs. More...
 
def RemoveRequireAlgs (self, algs)
 
def GetRequireAlgs (self)
 
def AddVetoAlgs (self, algs)
 Veto Algs (ignored by prescaler for now) More...
 
def RemoveVetoAlgs (self, algs)
 
def GetVetoAlgs (self)
 
def AddOtherAlgsToBookkeep (self, algs)
 Other Algs (e.g. More...
 
def RemoveOtherAlgsToBookkeep (self, algs)
 
def GetOtherAlgsToBookkeep (self)
 
def GetSkimDecisionsWriter (self)
 Skim decisions writer. More...
 
def SetPrescale (self, value)
 Master prescale. More...
 
def GetPrescale (self)
 

Public Attributes

 bsCopyTool
 
 bsOutputSvc
 
 Stream
 
 Name
 
 OtherAlgs
 

Private Member Functions

def _ItemInList (self, item, aList)
 
def _AddValidItemToList (self, item, aList)
 
def _RemoveValidItemFromList (self, item, aList)
 

Private Attributes

 _Prescaler
 

Detailed Description

Definition at line 287 of file MultipleStreamManager.py.

Constructor & Destructor Documentation

◆ __init__()

def python.MultipleStreamManager.AugmentedByteStream.__init__ (   self,
  StreamName,
  FileName 
)

Definition at line 288 of file MultipleStreamManager.py.

288  def __init__(self, StreamName,FileName):
289  AugmentedStreamBase.__init__(self,StreamName)
290 
291  #General setup
292  from AthenaCommon.AppMgr import theApp
293  svcMgr = theApp.serviceMgr()
294 
295  # BS OutputStream Tool
296  from ByteStreamCnvSvc.ByteStreamCnvSvcConf import ByteStreamEventStorageOutputSvc,ByteStreamOutputStreamCopyTool
297  self.bsCopyTool = ByteStreamOutputStreamCopyTool("OutputStreamBSCopyTool")
298  svcMgr.ToolSvc += self.bsCopyTool
299 
300  #default output directory
301  outDir = os.getcwd()
302  outDir+="/"
303 
304  # BS output Svc
305  self.bsOutputSvc=ByteStreamEventStorageOutputSvc("BSESOutputSvc"+StreamName,
306  OutputDirectory=outDir,
307  SimpleFileName=FileName )
308  svcMgr += self.bsOutputSvc
309 
310  # Set BS OutputSvc/InputSvc to BS OutputStream Tool
311  self.bsCopyTool.ByteStreamOutputSvc=self.bsOutputSvc
312  self.bsCopyTool.ByteStreamInputSvc=svcMgr.ByteStreamInputSvc
313 
314  # create AthenaOutputStream for BS Copy
315  from AthenaServices.AthenaServicesConf import AthenaOutputStream
316  self.Stream = AthenaOutputStream( StreamName, WritingTool=self.bsCopyTool )
317 
318  # add the stream to the output sequence
319  from AthenaCommon.AlgSequence import AthSequencer
320  outSequence = AthSequencer("AthOutSeq")
321  outSequence += self.Stream
322  return
323 

Member Function Documentation

◆ _AddValidItemToList()

def python.MultipleStreamManager.AugmentedStreamBase._AddValidItemToList (   self,
  item,
  aList 
)
privateinherited

Definition at line 35 of file MultipleStreamManager.py.

35  def _AddValidItemToList(self,item,aList):
36  #Recursive loop if item is a list
37  if isinstance(item,list):
38  for i in item:
39  self._AddValidItemToList(i,aList)
40  #Add to list if item is a string and not already in the list
41  elif isinstance(item, str):
42  if not self._ItemInList(item,aList):
43  aList += [item]
44  else:
45  raise TypeError("AugmentedPoolStream._AddValidItemToList() does not support item of type %s"%type(item))
46  return
47 

◆ _ItemInList()

def python.MultipleStreamManager.AugmentedStreamBase._ItemInList (   self,
  item,
  aList 
)
privateinherited

Definition at line 24 of file MultipleStreamManager.py.

24  def _ItemInList(self,item,aList):
25  #Make sure aList is a list
26  if not isinstance(aList, list):
27  raise TypeError("AugmentedPoolStream._ItemInList() does not support aList of type %s"%type(aList))
28 
29  isInList=False
30  for i in aList:
31  if i==item:
32  isInList=True
33  return isInList
34 

◆ _RemoveValidItemFromList()

def python.MultipleStreamManager.AugmentedStreamBase._RemoveValidItemFromList (   self,
  item,
  aList 
)
privateinherited

Definition at line 48 of file MultipleStreamManager.py.

48  def _RemoveValidItemFromList(self,item,aList):
49  #Recursive loop if item is a list
50  if isinstance(item,list):
51  for i in item:
52  self._RemoveValidItemFromList(i,aList)
53  #Remove from list if item is a string and already in list
54  elif isinstance(item, str):
55  if self._ItemInList(item,aList):
56  aList.remove(item)
57  else:
58  print(self.Name,": WARNING you asked to remove item '%s' but this item is not present",item)
59  else:
60  raise TypeError("AugmentedPoolStream._RemoveValidItemFromList() does not support item of type %s"%type(item))
61  return
62 

◆ AddAcceptAlgs()

def python.MultipleStreamManager.AugmentedStreamBase.AddAcceptAlgs (   self,
  algs 
)
inherited

Accept Algs.

Definition at line 65 of file MultipleStreamManager.py.

65  def AddAcceptAlgs(self, algs):
66  self._AddValidItemToList(algs, self.Stream.AcceptAlgs)
67  return
68 

◆ AddItem()

def python.MultipleStreamManager.AugmentedByteStream.AddItem (   self,
  item 
)

Definition at line 337 of file MultipleStreamManager.py.

337  def AddItem(self, item): pass

◆ AddMetaDataItem()

def python.MultipleStreamManager.AugmentedByteStream.AddMetaDataItem (   self,
  item 
)

Definition at line 339 of file MultipleStreamManager.py.

339  def AddMetaDataItem(self, item): pass

◆ AddOtherAlgsToBookkeep()

def python.MultipleStreamManager.AugmentedStreamBase.AddOtherAlgsToBookkeep (   self,
  algs 
)
inherited

Other Algs (e.g.

those used by a FilterCombiner, but ignored by everybody else)

Definition at line 104 of file MultipleStreamManager.py.

104  def AddOtherAlgsToBookkeep(self, algs):
105  self._AddValidItemToList(algs, self.OtherAlgs)
106  return
107 

◆ AddRequireAlgs()

def python.MultipleStreamManager.AugmentedStreamBase.AddRequireAlgs (   self,
  algs 
)
inherited

Require Algs.

Definition at line 78 of file MultipleStreamManager.py.

78  def AddRequireAlgs(self, algs):
79  self._AddValidItemToList(algs, self.Stream.RequireAlgs)
80  return
81 

◆ AddVetoAlgs()

def python.MultipleStreamManager.AugmentedStreamBase.AddVetoAlgs (   self,
  algs 
)
inherited

Veto Algs (ignored by prescaler for now)

Definition at line 91 of file MultipleStreamManager.py.

91  def AddVetoAlgs(self, algs):
92  self._AddValidItemToList(algs, self.Stream.VetoAlgs)
93  return
94 

◆ GetAcceptAlgs()

def python.MultipleStreamManager.AugmentedStreamBase.GetAcceptAlgs (   self)
inherited

Definition at line 73 of file MultipleStreamManager.py.

73  def GetAcceptAlgs(self):
74  return self.Stream.AcceptAlgs
75 

◆ GetOtherAlgsToBookkeep()

def python.MultipleStreamManager.AugmentedStreamBase.GetOtherAlgsToBookkeep (   self)
inherited

Definition at line 112 of file MultipleStreamManager.py.

112  def GetOtherAlgsToBookkeep(self):
113  return self.OtherAlgs
114 

◆ GetPrescale()

def python.MultipleStreamManager.AugmentedStreamBase.GetPrescale (   self)
inherited

Definition at line 156 of file MultipleStreamManager.py.

156  def GetPrescale(self):
157  if hasattr(self,"_Prescaler"):
158  return self._Prescaler.Prescale
159  else:
160  return "NONE"
161 
162 
163 

◆ GetRequireAlgs()

def python.MultipleStreamManager.AugmentedStreamBase.GetRequireAlgs (   self)
inherited

Definition at line 86 of file MultipleStreamManager.py.

86  def GetRequireAlgs(self):
87  return self.Stream.RequireAlgs
88 

◆ GetSkimDecisionsWriter()

def python.MultipleStreamManager.AugmentedStreamBase.GetSkimDecisionsWriter (   self)
inherited

Skim decisions writer.

Definition at line 117 of file MultipleStreamManager.py.

117  def GetSkimDecisionsWriter(self):
118  from EventBookkeeperTools.BookkeepingInfoWriter import SkimDecisionsWriter
119  sdw=SkimDecisionsWriter(self.Name+"_SkimDecisionsWriter")
120  newContainerName=self.Name+"_"+sdw.SkimDecisionsContainerName
121  sdw.SkimDecisionsContainerName=newContainerName
122  #sdw.OutputLevel=2
123  for a in self.GetRequireAlgs():
124  sdw.addRequireAlg(a)
125  for a in self.GetAcceptAlgs():
126  sdw.addAcceptAlg(a)
127  for a in self.GetVetoAlgs():
128  sdw.addVetoAlg(a)
129  for a in self.GetOtherAlgsToBookkeep():
130  sdw.addOtherAlg(a)
131  return sdw
132 

◆ GetVetoAlgs()

def python.MultipleStreamManager.AugmentedStreamBase.GetVetoAlgs (   self)
inherited

Definition at line 99 of file MultipleStreamManager.py.

99  def GetVetoAlgs(self):
100  return self.Stream.VetoAlgs
101 

◆ Print()

def python.MultipleStreamManager.AugmentedByteStream.Print (   self)

Definition at line 342 of file MultipleStreamManager.py.

342  def Print(self):
343  print("**** AugmentedByteStream",self.Name,"****")
344  print("Output file:")
345  print(self.bsOutputSvc.OutputDirectory+self.bsOutputSvc.SimpleFileName)
346  print("AcceptAlgs:")
347  print(self.Stream.AcceptAlgs)
348  print("RequireAlgs:")
349  print(self.Stream.RequireAlgs)
350  print("VetoAlgs:")
351  print(self.Stream.VetoAlgs)
352  print("OtherAlgs to bookkeep (but not directly used by the Stream):")
353  print(self.OtherAlgs)
354  print("Master prescale:")
355  print(self.GetPrescale())
356  print("ItemList:")
357  print("Not available for bytestream")
358  return
359 

◆ RemoveAcceptAlgs()

def python.MultipleStreamManager.AugmentedStreamBase.RemoveAcceptAlgs (   self,
  algs 
)
inherited

Definition at line 69 of file MultipleStreamManager.py.

69  def RemoveAcceptAlgs(self, algs):
70  self._RemoveValidItemFromList(algs, self.Stream.AcceptAlgs)
71  return
72 

◆ RemoveItem()

def python.MultipleStreamManager.AugmentedByteStream.RemoveItem (   self,
  item 
)

Definition at line 338 of file MultipleStreamManager.py.

338  def RemoveItem(self, item): pass

◆ RemoveMetaDataItem()

def python.MultipleStreamManager.AugmentedByteStream.RemoveMetaDataItem (   self,
  item 
)

Definition at line 340 of file MultipleStreamManager.py.

340  def RemoveMetaDataItem(self, item): pass
341 

◆ RemoveOtherAlgsToBookkeep()

def python.MultipleStreamManager.AugmentedStreamBase.RemoveOtherAlgsToBookkeep (   self,
  algs 
)
inherited

Definition at line 108 of file MultipleStreamManager.py.

108  def RemoveOtherAlgsToBookkeep(self, algs):
109  self._RemoveValidItemFromList(algs, self.OtherAlgs)
110  return
111 

◆ RemoveRequireAlgs()

def python.MultipleStreamManager.AugmentedStreamBase.RemoveRequireAlgs (   self,
  algs 
)
inherited

Definition at line 82 of file MultipleStreamManager.py.

82  def RemoveRequireAlgs(self, algs):
83  self._RemoveValidItemFromList(algs, self.Stream.RequireAlgs)
84  return
85 

◆ RemoveVetoAlgs()

def python.MultipleStreamManager.AugmentedStreamBase.RemoveVetoAlgs (   self,
  algs 
)
inherited

Definition at line 95 of file MultipleStreamManager.py.

95  def RemoveVetoAlgs(self, algs):
96  self._RemoveValidItemFromList(algs, self.Stream.VetoAlgs)
97  return
98 

◆ SetOutputDirName()

def python.MultipleStreamManager.AugmentedByteStream.SetOutputDirName (   self,
  name 
)

Definition at line 333 of file MultipleStreamManager.py.

333  def SetOutputDirName(self, name):
334  self.bsOutputSvc.OutputDirectory = name
335  return
336 

◆ SetOutputFileName()

def python.MultipleStreamManager.AugmentedByteStream.SetOutputFileName (   self,
  name 
)

Definition at line 324 of file MultipleStreamManager.py.

324  def SetOutputFileName(self, name):
325  #Method name for coherence with Pool stream, but warning: it's only a file name suffix, not the full name
326  self.bsOutputSvc.SimpleFileName = name
327  return
328 

◆ SetPrescale()

def python.MultipleStreamManager.AugmentedStreamBase.SetPrescale (   self,
  value 
)
inherited

Master prescale.

Definition at line 135 of file MultipleStreamManager.py.

135  def SetPrescale(self,value):
136  #Set a master prescale to given value. Create the Prescaler tool if necessary.
137  if not hasattr(self,"_Prescaler"):
138  from PrimaryDPDMaker.PrimaryDPDMakerConf import PrimaryDPDPrescaler
139  prescalerName="MasterPrescale_"+self.Name
140  self._Prescaler = PrimaryDPDPrescaler(prescalerName)
141  #Deep copies of the Require and Accept algs lists considered by the Master prescaler
142  #Notes:
143  # 1) deep copy is necessary because the Master prescaler itself will be added to the RequireAlgs list\
144  # 2) this implies that SetPrescale must be the *last* algorithm added to the stream
145  self._Prescaler.RequireAlgs = self.Stream.RequireAlgs[:]
146  self._Prescaler.AcceptAlgs = self.Stream.AcceptAlgs[:]
147 
148  from AthenaCommon.AlgSequence import AlgSequence
149  topSequence = AlgSequence()
150  topSequence += self._Prescaler
151  self.AddRequireAlgs(prescalerName)
152 
153  self._Prescaler.Prescale=value
154  return
155 

◆ SetSimpleFileName()

def python.MultipleStreamManager.AugmentedByteStream.SetSimpleFileName (   self,
  name 
)

Definition at line 329 of file MultipleStreamManager.py.

329  def SetSimpleFileName(self, name):
330  self.bsOutputSvc.SimpleFileName = name
331  return
332 

Member Data Documentation

◆ _Prescaler

python.MultipleStreamManager.AugmentedStreamBase._Prescaler
privateinherited

Definition at line 140 of file MultipleStreamManager.py.

◆ bsCopyTool

python.MultipleStreamManager.AugmentedByteStream.bsCopyTool

Definition at line 297 of file MultipleStreamManager.py.

◆ bsOutputSvc

python.MultipleStreamManager.AugmentedByteStream.bsOutputSvc

Definition at line 305 of file MultipleStreamManager.py.

◆ Name

python.MultipleStreamManager.AugmentedStreamBase.Name
inherited

Definition at line 14 of file MultipleStreamManager.py.

◆ OtherAlgs

python.MultipleStreamManager.AugmentedStreamBase.OtherAlgs
inherited

Definition at line 15 of file MultipleStreamManager.py.

◆ Stream

python.MultipleStreamManager.AugmentedByteStream.Stream

Definition at line 316 of file MultipleStreamManager.py.


The documentation for this class was generated from the following file:
AthSequencer
ClassName: AthSequencer.
Definition: AthSequencer.h:40
python.AlgSequence.AlgSequence
AlgSequence
Definition: PhysicsAnalysis/D3PDTools/AnaAlgorithm/python/AlgSequence.py:7
PrimaryDPDPrescaler
Definition: PrimaryDPDPrescaler.h:17
ByteStreamEventStorageOutputSvc
This class provides the services for writing FullEventFragment into file. This class implements the i...
Definition: ByteStreamEventStorageOutputSvc.h:47
ByteStreamOutputStreamCopyTool
This is a tool that implements the IAthenaOutputStreamTool for copying ByteStream from input.
Definition: ByteStreamOutputStreamCopyTool.h:38
python.processes.powheg.ZZ.ZZ.__init__
def __init__(self, base_directory, **kwargs)
Constructor: all process options are set here.
Definition: ZZ.py:18
AthenaOutputStream
algorithm that marks for write data objects in SG
Definition: AthenaOutputStream.h:58
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
dqm_persistency::Print
void Print(const PParameter *param, TDirectory *topdir, Option_t *opt="")
Definition: dqm_persistency_impl.cxx:161