00001 from DybPython.DybPythonAlg import DybPythonAlg
00002 from GaudiPython import SUCCESS, FAILURE, gbl
00003
00004 class DaqXmlDump(DybPythonAlg):
00005 "Print Raw Data Example Algorithm"
00006 def __init__(self,name):
00007 DybPythonAlg.__init__(self,name)
00008 return
00009
00010 def initialize(self):
00011 status = DybPythonAlg.initialize(self)
00012 if status.isFailure():
00013 return status
00014 self.info("initializing")
00015 return SUCCESS
00016
00017 def execute(self):
00018 evt = self.evtSvc()
00019 readoutHdr = evt["/Event/Readout/ReadoutHeader"]
00020 if readoutHdr == None:
00021 self.error("Failed to get current readout header")
00022 return FAILURE
00023
00024 readout = readoutHdr.readout()
00025 if readout == None:
00026 daqReadout = readoutHdr.daqReadout()
00027 if daqReadout == None:
00028 self.error("Failed to get readout from header")
00029 return FAILURE
00030 daqXmlStream = gbl.DybDaq.DaqXmlStream(gbl.cout,
00031 " ",
00032 True)
00033 daqXmlStream.dumpElement(daqReadout.eventReadout())
00034 return SUCCESS
00035 pass
00036 return SUCCESS
00037
00038 def finalize(self):
00039 self.info("finalizing")
00040 status = DybPythonAlg.finalize(self)
00041 return status
00042
00043 dumpOpts = None
00044
00045 def configure( argv=[] ):
00046 '''
00047 Example python algorithm
00048 '''
00049 from optparse import OptionParser, OptionGroup, IndentedHelpFormatter
00050 parser = OptionParser(usage="-m \"DaqXmlDump [-p]\"",
00051 version="%prog 1.0")
00052 parser.add_option('-p',
00053 '--python',
00054 dest='USE_PYTHON',
00055 action='store_true',
00056 help='Use the python implementation, not the C++ one.',
00057 default = False)
00058 global dumpOpts
00059 (dumpOpts, args) = parser.parse_args(argv)
00060
00061 from Gaudi.Configuration import ApplicationMgr
00062 app = ApplicationMgr()
00063 if not dumpOpts.USE_PYTHON:
00064 from DaqFormatModules.DaqFormatModulesConf import DybDaq__DaqXmlDump
00065 daqXmlDump = DybDaq__DaqXmlDump("DaqXmlDump - C++")
00066 app.TopAlg.append(daqXmlDump)
00067
00068
00069 def run(app):
00070 '''
00071 Configure and add the algorithm to job
00072 '''
00073 global dumpOpts
00074 if dumpOpts.USE_PYTHON:
00075 daqXmlDump = DaqXmlDump("DaqXmlDump Python")
00076 app.addAlgorithm(daqXmlDump)