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)