00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 from DybPython.DybPythonAlg import DybPythonAlg
00012 from GaudiPython import SUCCESS, FAILURE
00013 from GaudiPython import gbl
00014 import ROOT
00015
00016
00017 class PrintJobInfoAlg(DybPythonAlg):
00018 "Print Job Info Algorithm"
00019 def __init__(self,name):
00020 DybPythonAlg.__init__(self,name)
00021 return
00022
00023 def initialize(self):
00024 status = DybPythonAlg.initialize(self)
00025 if status.isFailure(): return status
00026 self.info("initializing")
00027
00028
00029 self.jobInfoSvc = self.svc('IJobInfoSvc','JobInfoSvc')
00030 jobInfo = self.jobInfoSvc.currentJobInfo()
00031 import time
00032 print "\n"
00033 print "Current Job Information:"
00034 jobInfo.fillStream(ROOT.cout)
00035 print "\n"
00036
00037 for jobInfoHist in self.jobInfoSvc.cachedJobInfo():
00038 print "\n"
00039 print "Cached Job Information:"
00040 jobInfoHist.fillStream(ROOT.cout)
00041 print "\n"
00042 return SUCCESS
00043
00044 def execute(self):
00045 self.info("executing")
00046
00047 evt = self.evtSvc()
00048 genHeader = evt["/Event/Gen/GenHeader"]
00049 if genHeader:
00050 jobInfo = self.jobInfoSvc.jobInfo(genHeader.jobId())
00051 print "Kinematics at time ",genHeader.timeStamp().AsString()," generated by job ",jobInfo.jobId()," with command: ", jobInfo.get('command')
00052
00053 return SUCCESS
00054
00055 def finalize(self):
00056 self.info("finalizing")
00057 status = DybPythonAlg.finalize(self)
00058 return status
00059
00060
00061
00062 def configure( argv=[] ):
00063 """ Example module for printing job info """
00064 return
00065
00066 def run(app):
00067 '''
00068 Configure and add the algorithm to job
00069 '''
00070 myAlg = PrintJobInfoAlg("MyPrintJobInfoAlg")
00071 app.addAlgorithm(myAlg)
00072 pass
00073