| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

PrintRunData.py

Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 #
00003 # Print Run Description Data to output log
00004 #
00005 #  Usage:
00006 #   nuwa.py RunDataSvc.PrintRunData data.root
00007 
00008 # Load DybPython
00009 from DybPython.DybPythonAlg import DybPythonAlg
00010 from GaudiPython import SUCCESS, FAILURE
00011 from GaudiPython import gbl
00012 import GaudiKernel.SystemOfUnits as units
00013 
00014 CalibSourceId = gbl.DayaBay.CalibSourceId
00015 RunType = gbl.DayaBay.RunType
00016 SourceType = gbl.DayaBay.Calibration.SourceType
00017 
00018 # Make your algorithm
00019 class PrintRunDataAlg(DybPythonAlg):
00020     "Print Run Data Algorithm"
00021     def __init__(self,name):
00022         DybPythonAlg.__init__(self,name)
00023         return
00024 
00025     def initialize(self):
00026         status = DybPythonAlg.initialize(self)
00027         if status.isFailure(): return status
00028         self.info("initializing")
00029 
00030         # Initialize run data service
00031         #  Statistics Service: Use for histograms, graphs, trees
00032         self.runDataSvc = self.svc('IRunDataSvc','RunDataSvc')
00033         if self.runDataSvc == None:
00034             self.error("Failed to initialize run data service.")
00035             return FAILURE        
00036 
00037         return SUCCESS
00038 
00039     def execute(self):
00040         self.info("executing")
00041         return SUCCESS
00042         
00043     def finalize(self):
00044         self.info("finalizing")
00045         # Print the run data
00046         self.info("===========================================================")
00047         runDataList = self.runDataSvc.cachedRunData()
00048         self.info("Service has cached data for %d runs." % len(runDataList))
00049         for runData in runDataList:
00050             self.info("   Run Number: "+str(runData.runNumber()))
00051             self.info("   Run Type:   "
00052                       +RunType.AsString(runData.runType()))
00053             self.info("   Active Detectors: "
00054                       +str([det.detName() for det in runData.detectors()]))
00055             self.info("   Start Time: "+runData.startTime().AsString())
00056             self.info("   End Time:   "+runData.endTime().AsString())
00057             self.info("   Calibration Sources:")
00058             for calibSource in runData.calibSources():
00059                 self.info("     "+calibSource.id().name())
00060                 if calibSource.id().type() == SourceType.kLED:
00061                     self.info("        LED Freq [Hz]:      "
00062                               +str(calibSource.ledFrequency()/units.hertz))
00063                 if calibSource.id().isAD():
00064                     self.info("        AD Z Position [mm]: "
00065                               +str(calibSource.adZPosition()/units.mm))
00066             self.info("")
00067         self.info("===========================================================")
00068         status = DybPythonAlg.finalize(self)
00069         return status
00070 
00071 
00072 #####  Job Configuration for nuwa.py ########################################
00073 
00074 def configure():
00075     return
00076 
00077 def run(app):
00078     '''
00079     Configure and add an algorithm to job
00080     '''
00081     app.ExtSvc += ["RunDataSvc"]
00082     printRunDataAlg = PrintRunDataAlg("PrintRunDataAlg")
00083     app.addAlgorithm(printRunDataAlg)
00084     pass
00085 
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:22:43 2011 for RunDataSvc by doxygen 1.4.7