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

In This Package:

TestDbiDataSvc.py

Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 #Run it like:
00003 #nuwa.py -A none --history=off -n 1 -m"DbiDataSvc.TestDbiDataSvc"
00004 
00005 from GaudiPython import *
00006 from DybPython.DybPythonAlg import DybPythonAlg
00007 
00008 import os
00009 os.environ['DBCONF'] = "offline_db"
00010 
00011 Detector = gbl.DayaBay.Detector
00012 ServiceMode = gbl.ServiceMode
00013 Context = gbl.Context
00014 Site = gbl.Site
00015 DetectorId = gbl.DetectorId
00016 SimFlag = gbl.SimFlag
00017 TimeStamp = gbl.TimeStamp
00018 
00019 class TestAlg(DybPythonAlg):
00020     def __init__(self,name):
00021         DybPythonAlg.__init__(self,name)
00022         self.cableSvcName = 'DbiCableSvc'
00023         self.calibDataSvcName = 'DbiCalibDataSvc'
00024         print "Making TestAlg",name
00025 
00026     def initialize(self):
00027         status = DybPythonAlg.initialize(self)
00028         print "Init TestAlg",self.name()
00029         if status.isFailure(): return status
00030         self.cableSvc = self.svc('ICableSvc',self.cableSvcName)
00031         self.pmtCalibSvc = self.svc('ICalibDataSvc',self.calibDataSvcName)
00032         print "===========================================================\n\n"
00033         # Select all sites
00034         context = Context()
00035         context.SetSite(Site.kSAB)
00036         context.SetDetId(DetectorId.kAD1)
00037         context.SetSimFlag(SimFlag.kData)
00038         timeStamp = TimeStamp(2010,8,1,0,0,0)
00039         context.SetTimeStamp(timeStamp);
00040         print context.AsString()
00041         svcMode = ServiceMode(context,0)
00042         adPmtSensors = self.cableSvc.adPmtSensors(svcMode)
00043         hrdwTypes = ["kUnknown","kPmt8inch","kPmt2inch","kRpc","kFee","kFec","kRot","kRom","kHighVoltage"]
00044         print "  number of sensors =",adPmtSensors.size()
00045         print "  Detector \t Ring \t Colmn \t HrdwType  PmtHrdwId \t DAQChannel \t ElecHrdwType \t FEEHrdwId FEEHrdwConnector"
00046         for sens in adPmtSensors:
00047             pmtHrdw = self.cableSvc.pmtHardwareId(sens, svcMode)
00048             chan = self.cableSvc.feeChannelId(sens, svcMode)
00049             feeHrdw = self.cableSvc.feeHardwareId(chan, svcMode)
00050 
00051             daqIndex = "%2d %2d" % (chan.board(), chan.connector())
00052             pmtHrdwId = "%4d" % pmtHrdw.id()
00053             print " ",sens.detName(),"\t ",sens.ring(),"\t ",sens.column(),"\t",hrdwTypes[pmtHrdw.type()]," ",pmtHrdwId,"\t ",daqIndex,"\t ",hrdwTypes[feeHrdw.type()],"\t\t ",feeHrdw.boardId(),"\t  ",feeHrdw.connector()
00054             
00055         print "\n\n==========================================================="
00056 
00057         print "  Sensor Status SpeHigh sigmaSpe SpeLow Toff Tspr Eff PreP AfterP Dark"
00058         for sens in adPmtSensors:
00059             pmtData = self.pmtCalibSvc.pmtCalibData(sens, svcMode)
00060             print ' '.join([ str(elem) for elem in [pmtData.m_pmtId.fullPackedData(),
00061                                                     pmtData.m_status,
00062                                                     pmtData.m_speHigh,
00063                                                     pmtData.m_sigmaSpeHigh,
00064                                                     pmtData.m_speLow,
00065                                                     pmtData.m_timeOffset,
00066                                                     pmtData.m_timeSpread,
00067                                                     pmtData.m_efficiency,
00068                                                     pmtData.m_prePulseProb,
00069                                                     pmtData.m_afterPulseProb,
00070                                                     pmtData.m_darkRate] ])
00071         print "\n\n==========================================================="
00072         return SUCCESS
00073 
00074     def execute(self):
00075         print "Executing TestAlg",self.name()
00076         return SUCCESS
00077 
00078     def finalize(self):
00079         print "Finalizing TestAlg",self.name()
00080         status = DybPythonAlg.finalize(self)
00081         return status
00082 
00083 cableSvcName = "DbiCableSvc"
00084 pmtCalibSvcName = "DbiCalibDataSvc"
00085 
00086 def configure(argv = []):
00087     global cableSvcName
00088     import getopt
00089     opts,args = getopt.getopt(argv,"",["cableSvc-name=","calibSvc-name="])
00090     for opt,arg in opts:
00091         if opt == "--cableSvc-name":
00092             cableSvcName = arg
00093         if opt == "--calibSvc-name":
00094             calibSvcName = arg
00095     import DataSvc
00096     DataSvc.Configure( cableSvc = cableSvcName, calibDataSvcName = pmtCalibSvcName )
00097     return
00098 
00099 def run(app):
00100     global cableSvcName
00101     global pmtCalibSvcName
00102     app.ExtSvc += [ cableSvcName ]
00103     app.ExtSvc += [ pmtCalibSvcName ]
00104     testAlg = TestAlg("TestAlg")
00105     testAlg.cableSvcName = cableSvcName
00106     testAlg.pmtCalibSvcName = pmtCalibSvcName 
00107     app.addAlgorithm( testAlg )
00108     return
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:21:48 2011 for DbiDataSvc by doxygen 1.4.7