/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #!/usr/bin/env python 00002 00003 __all__ = ['Configure'] 00004 00005 from DybPython.Tools import realpath 00006 00007 class DataSvcConfigure: 00008 ''' 00009 Setup configuration for DataSvc. 00010 ''' 00011 00012 # Define default configuration common for all instances 00013 def __init__(self): 00014 ''' 00015 Setup default configuration of DataSvc. 00016 ''' 00017 cableSvcName = "StaticCableSvc" 00018 simDataSvcName = "StaticSimDataSvc" 00019 calibDataSvcName = "StaticCalibDataSvc" 00020 #feeCableMapPath = '$DATASVCROOT/share/feeCableMap.txt' 00021 feeCableMapPath = '' 00022 pmtSimDataPath = '$DATASVCROOT/share/pmtDataTable.txt' 00023 feeSimDataPath = '$DATASVCROOT/share/feeDataTable.txt' 00024 pmtCalibDataPath = '$DATASVCROOT/share/pmtCalibTable.txt' 00025 feeCalibDataPath = '$DATASVCROOT/share/feeCalibTable.txt' 00026 00027 self.setCableSvc( cableSvcName ) 00028 self.setFeeCableMap( feeCableMapPath ) 00029 00030 self.setSimDataSvc( simDataSvcName ) 00031 self.setPmtSimData( pmtSimDataPath ) 00032 self.setFeeSimData( feeSimDataPath ) 00033 00034 self.setCalibDataSvc( calibDataSvcName ) 00035 self.setPmtCalibData( pmtCalibDataPath ) 00036 self.setFeeCalibData( feeCalibDataPath ) 00037 return 00038 00039 def applyArgs(self,args,kwd): 00040 ''' Generic function for setting members based on arguments ''' 00041 memberNames = kwd.keys() 00042 # I could use some python tricks to shorten this, but then no 00043 # one would understand it. 00044 for member in memberNames: 00045 value = kwd[member] 00046 if member == "cableSvc": 00047 self.setCableSvc( value ) 00048 elif member == "simDataSvc": 00049 self.setSimDataSvc( value ) 00050 elif member == "calibDataSvc": 00051 self.setCalibDataSvc( value ) 00052 elif member == "feeCableMapPath": 00053 self.setFeeCableMap( value ) 00054 elif member == "pmtSimDataPath": 00055 self.setPmtSimData( value ) 00056 elif member == "feeSimDataPath": 00057 self.setFeeSimData( value ) 00058 elif member == "pmtCalibDataPath": 00059 self.setPmtCalibData( value ) 00060 elif member == "feeCalibDataPath": 00061 self.setFeeCalibData( value ) 00062 else: 00063 print "Error: DataSvc: Unknown option \"%s\"" % (member) 00064 00065 def setCableSvc(self, cableSvcName): 00066 if cableSvcName == "StaticCableSvc": 00067 from DataSvc.DataSvcConf import StaticCableSvc 00068 self.cableSvc = StaticCableSvc() 00069 elif cableSvcName == "DbiCableSvc": 00070 from DbiDataSvc.DbiDataSvcConf import DbiCableSvc 00071 self.cableSvc = DbiCableSvc() 00072 else: 00073 print "Error: DataSvc: Unknown cable service \"%s\"" % ( 00074 cableSvcName) 00075 00076 def setSimDataSvc(self, simDataSvcName): 00077 if simDataSvcName == "StaticSimDataSvc": 00078 from DataSvc.DataSvcConf import StaticSimDataSvc 00079 self.simDataSvc = StaticSimDataSvc() 00080 elif simDataSvcName == "DbiSimDataSvc": 00081 from DbiDataSvc.DbiDataSvcConf import DbiSimDataSvc 00082 self.simDataSvc = DbiSimDataSvc() 00083 else: 00084 print "Error: DataSvc: Unknown sim data service \"%s\"" % ( 00085 simDataSvcName) 00086 00087 def setCalibDataSvc(self, calibDataSvcName): 00088 print 'setCalibDataSvc(',calibDataSvcName,')' 00089 if calibDataSvcName == "StaticCalibDataSvc": 00090 from DataSvc.DataSvcConf import StaticCalibDataSvc 00091 self.calibDataSvc = StaticCalibDataSvc() 00092 elif calibDataSvcName == "DbiCalibDataSvc": 00093 from DbiDataSvc.DbiDataSvcConf import DbiCalibDataSvc 00094 self.calibDataSvc = DbiCalibDataSvc() 00095 else: 00096 print "Error: DataSvc: Unknown calib data service \"%s\"" % ( 00097 calibDataSvcName) 00098 00099 def setFeeCableMap(self, feeCableMapPath): 00100 ''' Set the FEE/PMT/Hardware cable connections data file''' 00101 #self.cableSvc.FeeCableMap = realpath( feeCableMapPath ) 00102 self.cableSvc.FeeCableMap = feeCableMapPath 00103 return 00104 00105 def setPmtSimData(self, pmtSimDataPath): 00106 ''' Set the simulation input parameter data file''' 00107 self.simDataSvc.PmtDataFile = realpath( pmtSimDataPath ) 00108 return 00109 00110 def setFeeSimData(self, feeSimDataPath): 00111 ''' Set the simulation input parameter data file''' 00112 self.simDataSvc.FeeDataFile = realpath( feeSimDataPath ) 00113 return 00114 00115 def setPmtCalibData(self, pmtCalibDataPath): 00116 ''' Set the calibration input parameter data file''' 00117 print 'DataSvc.Configure',self.__doc__,pmtCalibDataPath 00118 self.calibDataSvc.PmtDataFile = realpath( pmtCalibDataPath ) 00119 return 00120 00121 def setFeeCalibData(self, feeCalibDataPath): 00122 ''' Set the calibration input parameter data file''' 00123 self.calibDataSvc.FeeDataFile = realpath( feeCalibDataPath ) 00124 return 00125 00126 configureObject = None 00127 00128 def Configure(*args,**kwd): 00129 global configureObject 00130 # Make a configure object if one hasn't been created 00131 if configureObject == None: 00132 configureObject = DataSvcConfigure() 00133 # Apply any arguments passed by user 00134 configureObject.applyArgs(args,kwd) 00135 return configureObject