/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

TestSimDataSvc.py
Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 
00003 from GaudiPython import *
00004 from DybPython.DybPythonAlg import DybPythonAlg
00005 import GaudiKernel.SystemOfUnits as units
00006 
00007 from DataSvc.TestCommon import get_sensors, service_mode
00008 
00009 GSimPmtSpec = gbl.GSimPmtSpec
00010 
00011 class TestAlg(DybPythonAlg):
00012     def __init__(self,name):
00013         DybPythonAlg.__init__(self,name)
00014         print "Making TestAlg",name
00015 
00016     def initialize(self):
00017         status = DybPythonAlg.initialize(self)
00018         print "Init TestAlg",self.name()
00019         if status.isFailure(): return status
00020         self.cableSvc = self.svc('ICableSvc','CableSvc')
00021         self.pmtSimSvc = self.svc('ISimDataSvc','SimDataSvc')
00022         print "===========================================================\n\n"
00023 
00024         svcMode = service_mode()
00025         adPmtSensors = get_sensors(self.cableSvc,svcMode)
00026 
00027         hrdwTypes = ["kUnknown","kPmt8inch","kPmt2inch","kRpc","kFee","kFec","kRot","kRom","kHighVoltage"]
00028         print "  number of sensors =",adPmtSensors.size()
00029         print "  Sensor  Gain FWHM Toff Tspr Eff PreP AfterP Dark"
00030         for sens in adPmtSensors:
00031             pmtData = self.pmtSimSvc.pmtSimData(sens, svcMode)
00032             if not pmtData:
00033                 print "No calibration data for PMT ring=%d,column=%d" % (sens.ring(),sens.column()) 
00034                 continue
00035             print ' '.join([ str(elem) for elem in [pmtData.m_pmtId.fullPackedData(),
00036                                                     pmtData.m_gain,
00037                                                     pmtData.m_sigmaGain,
00038                                                     pmtData.m_timeOffset/units.ns,
00039                                                     pmtData.m_timeSpread/units.ns,
00040                                                     pmtData.m_efficiency,
00041                                                     pmtData.m_prePulseProb,
00042                                                     pmtData.m_afterPulseProb,
00043                                                     pmtData.m_darkRate/units.hertz] ])
00044         print "\n\n==========================================================="
00045         return SUCCESS
00046 
00047     def execute(self):
00048         print "Executing TestAlg",self.name()
00049         return SUCCESS
00050 
00051     def finalize(self):
00052         print "Finalizing TestAlg",self.name()
00053         status = DybPythonAlg.finalize(self)
00054         return status
00055 
00056 def run(app):
00057     testAlg = TestAlg("TestAlg")
00058     app.addAlgorithm( testAlg )
00059     return
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 09:59:23 for DataSvc by doxygen 1.7.4