00001 # -*- coding: utf-8 -*- 00002 #!/usr/local/bin/python 00003 # 00004 # Copyright 2003 00005 # by 00006 # The Board of Trustees of the 00007 # Leland Stanford Junior University. 00008 # All rights reserved. 00009 # 00010 00011 __facility__ = "Online" 00012 __abstract__ = "GLAST Online Single Event Display preferences handler" 00013 __author__ = "A. Kavelaars <aliciak@SLAC.Stanford.edu> SLAC - GLAST LAT I&T/Online" 00014 __date__ = "12/12/2003" 00015 __version__ = "$Revision: 1.18 $" 00016 __credits__ = "SLAC" 00017 00018 import LATTE.copyright_SLAC 00019 00020 import sys 00021 import os, string 00022 from qt import * 00023 import Numeric 00024 import logging as myLog 00025 from GOSEDPreferences import GOSEDPreferences 00026 import ConfigParser 00027 00028 00029 class GOSEDPreferencesImpl(GOSEDPreferences): 00030 """! 00031 \brief Class for managing a GOSED user's preferences 00032 00033 GOSED keeps a user's preferences information in a file that is called 00034 .gosedrc when os.name returns 'posix', and gosed.cfg otherwise, e.g. Windows. 00035 If the file doesn't exist, a set of defaults are used. These will be written 00036 to a file in the gosed source directory if it is writable. GOSED searches 00037 for the preferences file in the following directories in the order specified: 00038 the current directory, the directory pointed to by the HOME environment 00039 variable, and the gosed source directory. 00040 """ 00041 # Revisit: A button should be provided for the user to save the preferences 00042 # file. No attempt should be made to save the file otherwise. The 00043 # user should be able to select where this file is saved. 00044 # Revisit: If the gosed source directory is write protected, the user has no 00045 # way to obtain or create a preferences file, unless he can copy one 00046 # from somewhere else. 00047 def __init__(self, confParser, parent = None,name = None,modal = 0,fl = 0): 00048 GOSEDPreferences.__init__(self,parent,name,modal,fl) 00049 00050 self.__gui = parent 00051 00052 self.__twr = True 00053 self.__calTkr = True 00054 self.__data = True 00055 self.__tkr = False 00056 self.__acd = False 00057 self.__cal = False 00058 self.__ted = False 00059 self.__acdPeds = None 00060 self.__calPeds = None 00061 00062 self.timestepValue.setText("1") 00063 self.connect(self.timestepSlider, SIGNAL('valueChanged(int)'), self.changeStepValue) 00064 self.connect(self.scaleBox, SIGNAL('clicked(int)'), self.selectScale) 00065 self.connect(self.scaleBox2, SIGNAL('clicked(int)'), self.selectScale2) 00066 self.connect(self.scaleBoxACD, SIGNAL('clicked(int)'), self.selectScaleACD) 00067 00068 self.connect(self.pedsBoxACD, SIGNAL('clicked(int)'), self.selectACDPeds) 00069 self.connect(self.pedsBoxCAL, SIGNAL('clicked(int)'), self.selectCALPeds) 00070 self.connect(self.acdPedsButton, SIGNAL('clicked()'), self.selectACDPedsFile) 00071 self.connect(self.calPedsButton, SIGNAL('clicked()'), self.selectCALPedsFile) 00072 00073 self.connect(self.buttonOk, SIGNAL('clicked()'), self.saveGOSED) 00074 00075 self.__confParser = confParser 00076 00077 # Revisit: Should check --config option and use that, if supplied 00078 if os.name == "posix": 00079 configName = ".gosedrc" 00080 else: 00081 configName = "gosed.cfg" 00082 00083 configFile = "./" + configName # Current directory 00084 if not os.path.exists(configFile): 00085 try: 00086 home = os.environ['HOME'] 00087 configFile = os.path.join(home, configName) # Home directory 00088 except KeyError: 00089 pass 00090 if not os.path.exists(configFile): 00091 configFile = os.path.join(os.environ['ONLINE_ROOT'], # Source directory 00092 'LATTE/gosed/' + configName) 00093 self.__configFile = configFile 00094 00095 cp = self.__confParser 00096 if os.path.exists(self.__configFile): 00097 cp.read(self.__configFile) 00098 try: 00099 self.timestepValue.setText(cp.get("gosed options", "timestep")) 00100 preferredLimits = cp.get("gosed options", "preferredlimits") 00101 preferredLimits2 = cp.get("gosed options", "preferredlimits2") 00102 self.minEdit.setText(cp.get("gosed options", "min")) 00103 self.maxEdit.setText(cp.get("gosed options", "max")) 00104 self.minEdit2.setText(cp.get("gosed options", "min2")) 00105 self.maxEdit2.setText(cp.get("gosed options", "max2")) 00106 #~ if preferredLimits == "Event": 00107 #~ self.EventlimitsButton.setChecked(1) 00108 if preferredLimits == "Custom": 00109 self.CustomlimitsButton.setChecked(1) 00110 self.selectScale() 00111 else:# preferredLimits == "Default": 00112 self.CALlimitsButton.setChecked(1) 00113 if preferredLimits2 == "Custom": 00114 self.CustomlimitsButton2.setChecked(1) 00115 self.selectScale2() 00116 else:# preferredLimits == "Default": 00117 self.CALlimitsButton2.setChecked(1) 00118 00119 preferredLimits = cp.get("gosed options", "ACDpreferredLimits") 00120 self.minEditACD.setText(cp.get("gosed options", "minacd")) 00121 self.maxEditACD.setText(cp.get("gosed options", "maxacd")) 00122 if preferredLimits == "Default": 00123 self.ACDlimitsButton.setChecked(1) 00124 elif preferredLimits == "Custom": 00125 self.ACDCustomlimitsButton.setChecked(1) 00126 self.selectScaleACD() 00127 00128 mainWidth = int(cp.get("gosed options", "mainWidth")) 00129 mainHeight = int(cp.get("gosed options", "mainHeight")) 00130 self.__gui.resize(mainWidth, mainHeight) 00131 00132 acdPedsFile = cp.get("gosed options", "acdpeds") 00133 if acdPedsFile == "Default": 00134 self.ACDDefaultPedsButton.setChecked(1) 00135 else: 00136 self.ACDCustomPedsButton.setChecked(1) 00137 self.acdPeds.setText(acdPedsFile) 00138 self.selectACDPeds() 00139 00140 calPedsFile = cp.get("gosed options", "calpeds") 00141 if calPedsFile == "Default": 00142 self.CALDefaultPedsButton.setChecked(1) 00143 else: 00144 self.CALCustomPedsButton.setChecked(1) 00145 self.calPeds.setText(calPedsFile) 00146 self.selectCALPeds() 00147 00148 self.__twr = str(cp.get("gosed options", "twr")) == 'True' 00149 self.__calTkr = str(cp.get("gosed options", "caltkr")) == 'True' 00150 self.__data = str(cp.get("gosed options", "data")) == 'True' 00151 self.__tkr = str(cp.get("gosed options", "tkr")) == 'True' 00152 self.__acd = str(cp.get("gosed options", "acd")) == 'True' 00153 self.__cal = str(cp.get("gosed options", "cal")) == 'True' 00154 self.__ted = str(cp.get("gosed options", "ted")) == 'True' 00155 except ConfigParser.NoSectionError: 00156 # Old behaviour 00157 self.CALlimitsButton.setChecked(1) 00158 self.CALlimitsButton2.setChecked(1) 00159 self.ACDlimitsButton.setChecked(1) 00160 self.ACDDefaultPedsButton.setChecked(1) 00161 self.CALDefaultPedsButton.setChecked(1) 00162 cp.add_section("gosed options") 00163 self.__defaults() 00164 except ConfigParser.NoOptionError: 00165 self.CALlimitsButton.setChecked(1) 00166 self.CALlimitsButton2.setChecked(1) 00167 self.ACDlimitsButton.setChecked(1) 00168 self.ACDDefaultPedsButton.setChecked(1) 00169 self.CALDefaultPedsButton.setChecked(1) 00170 self.__defaults() 00171 00172 else: 00173 cp.add_section("gosed options") 00174 self.CALlimitsButton.setChecked(1) 00175 self.CALlimitsButton2.setChecked(1) 00176 self.ACDlimitsButton.setChecked(1) 00177 self.ACDDefaultPedsButton.setChecked(1) 00178 self.CALDefaultPedsButton.setChecked(1) 00179 self.__defaults() 00180 00181 self.readPedestals() 00182 00183 def __defaults(self): 00184 cp = self.__confParser 00185 cp.set("gosed options", "timestep", '1') 00186 cp.set("gosed options", "preferredLimits", 'Default') 00187 cp.set("gosed options", "min", str(0)) 00188 cp.set("gosed options", "max", str(1000)) 00189 cp.set("gosed options", "preferredLimits2", 'Default') 00190 cp.set("gosed options", "min2", str(0)) 00191 cp.set("gosed options", "max2", str(1000)) 00192 cp.set("gosed options", "ACDpreferredLimits", 'Default') 00193 cp.set("gosed options", "minACD", str(0)) 00194 cp.set("gosed options", "maxACD", str(4000)) 00195 cp.set("gosed options", "acdpeds", 'Default') 00196 cp.set("gosed options", "calpeds", 'Default') 00197 #~ cp.set("gosed options", "mainWidth", self.__gui.width()) 00198 #~ cp.set("gosed options", "mainHeight", self.__gui.height()) 00199 00200 def changeStepValue(self): 00201 self.timestepValue.setText(str(float(self.timestepSlider.value())/10.)) 00202 00203 def setCustomEnabled(self, status): 00204 if status == 1: 00205 self.CustomlimitsButton.setEnabled(1) 00206 else: 00207 self.CustomlimitsButton.setEnabled(0) 00208 00209 def setCustomEnabled2(self, status): 00210 if status == 1: 00211 self.CustomlimitsButton2.setEnabled(1) 00212 else: 00213 self.CustomlimitsButton2.setEnabled(0) 00214 00215 def setACDCustomEnabled(self, status): 00216 if status == 1: 00217 self.ACDCustomlimitsButton.setEnabled(1) 00218 else: 00219 self.ACDCustomlimitsButton.setEnabled(0) 00220 00221 def selectScale(self): 00222 if self.CustomlimitsButton.isChecked(): 00223 self.minEdit.setEnabled(1) 00224 self.maxEdit.setEnabled(1) 00225 self.minLbl.setEnabled(1) 00226 self.maxLbl.setEnabled(1) 00227 else: 00228 self.minEdit.setEnabled(0) 00229 self.maxEdit.setEnabled(0) 00230 self.minLbl.setEnabled(0) 00231 self.maxLbl.setEnabled(0) 00232 self.minEdit.setText("0") 00233 self.maxEdit.setText("1000") 00234 00235 def selectScale2(self): 00236 if self.CustomlimitsButton2.isChecked(): 00237 self.minEdit2.setEnabled(1) 00238 self.maxEdit2.setEnabled(1) 00239 self.minLbl2.setEnabled(1) 00240 self.maxLbl2.setEnabled(1) 00241 else: 00242 self.minEdit2.setEnabled(0) 00243 self.maxEdit2.setEnabled(0) 00244 self.minLbl2.setEnabled(0) 00245 self.maxLbl2.setEnabled(0) 00246 self.minEdit2.setText("0") 00247 self.maxEdit2.setText("1000") 00248 00249 def selectScaleACD(self): 00250 if self.ACDCustomlimitsButton.isChecked(): 00251 self.minEditACD.setEnabled(1) 00252 self.maxEditACD.setEnabled(1) 00253 self.minLblACD.setEnabled(1) 00254 self.maxLblACD.setEnabled(1) 00255 else: 00256 self.minEditACD.setEnabled(0) 00257 self.maxEditACD.setEnabled(0) 00258 self.minLblACD.setEnabled(0) 00259 self.maxLblACD.setEnabled(0) 00260 self.minEditACD.setText("0") 00261 self.maxEditACD.setText("4000") 00262 00263 def minCAL(self): 00264 min = 0 00265 if self.CustomlimitsButton.isChecked(): 00266 try: 00267 min = int(str(self.__gui.GOSEDPreferencesGUI.minEdit.text())) 00268 except ValueError: 00269 print "CAL Window scale min value %s is not a number" % \ 00270 str(self.__gui.GOSEDPreferencesGUI.minEdit.text()) 00271 self.__gui.GOSEDPreferencesGUI.minEdit.setText(str(min)) 00272 return min 00273 00274 def maxCAL(self): 00275 max = 1000 00276 if self.CustomlimitsButton.isChecked(): 00277 try: 00278 max = int(str(self.__gui.GOSEDPreferencesGUI.maxEdit.text())) 00279 except ValueError: 00280 print "CAL Window scale max value %s is not a number" % \ 00281 str(self.__gui.GOSEDPreferencesGUI.maxEdit.text()) 00282 self.__gui.GOSEDPreferencesGUI.maxEdit.setText(str(max)) 00283 return max 00284 00285 def minCAL2(self): 00286 min2 = 0 00287 if self.CustomlimitsButton2.isChecked(): 00288 try: 00289 min2 = int(str(self.__gui.GOSEDPreferencesGUI.minEdit2.text())) 00290 except ValueError: 00291 print "CAL and TKR Window scale min value %s is not a number" % \ 00292 str(self.__gui.GOSEDPreferencesGUI.minEdit2.text()) 00293 self.__gui.GOSEDPreferencesGUI.minEdit2.setText(str(min2)) 00294 return min2 00295 00296 def maxCAL2(self): 00297 max2 = 1000 00298 if self.CustomlimitsButton2.isChecked(): 00299 try: 00300 max2 = int(str(self.__gui.GOSEDPreferencesGUI.maxEdit2.text())) 00301 except ValueError: 00302 print "CAL and TKR Window scale max value %s is not a number" % \ 00303 str(self.__gui.GOSEDPreferencesGUI.maxEdit2.text()) 00304 self.__gui.GOSEDPreferencesGUI.maxEdit2.setText(str(max2)) 00305 return max2 00306 00307 def minACD(self): 00308 min = 0 00309 if self.ACDCustomlimitsButton.isChecked(): 00310 try: 00311 min = int(str(self.__gui.GOSEDPreferencesGUI.minEditACD.text())) 00312 except ValueError: 00313 print "ACD min value %s is not a number" % \ 00314 str(self.__gui.GOSEDPreferencesGUI.minEditACD.text()) 00315 self.__gui.GOSEDPreferencesGUI.minEditACD.setText(str(min)) 00316 return min 00317 00318 def maxACD(self): 00319 max = 4000 00320 if self.ACDCustomlimitsButton.isChecked(): 00321 try: 00322 max = int(str(self.__gui.GOSEDPreferencesGUI.maxEditACD.text())) 00323 except ValueError: 00324 print "ACD max value %s is not a number" % \ 00325 str(self.__gui.GOSEDPreferencesGUI.maxEditACD.text()) 00326 self.__gui.GOSEDPreferencesGUI.maxEditACD.setText(str(max)) 00327 return max 00328 00329 def twr(self, hide = None): 00330 value = self.__twr 00331 if hide is not None: self.__twr = hide 00332 return value 00333 00334 def calTkr(self, hide = None): 00335 value = self.__calTkr 00336 if hide is not None: self.__calTkr = hide 00337 return value 00338 00339 def data(self, hide = None): 00340 value = self.__data 00341 if hide is not None: self.__data = hide 00342 return value 00343 00344 def tkr(self, hide = None): 00345 value = self.__tkr 00346 if hide is not None: self.__tkr = hide 00347 return value 00348 00349 def acd(self, hide = None): 00350 value = self.__acd 00351 if hide is not None: self.__acd = hide 00352 return value 00353 00354 def cal(self, hide = None): 00355 value = self.__cal 00356 if hide is not None: self.__cal = hide 00357 return value 00358 00359 def ted(self, hide = None): 00360 value = self.__ted 00361 if hide is not None: self.__ted = hide 00362 return value 00363 00364 def selectACDPeds(self): 00365 """ Operates the widget behaviour for the ACD Pedestal File 00366 type selection, default or custom. 00367 """ 00368 if self.ACDDefaultPedsButton.isChecked(): 00369 self.acdPeds.setEnabled(0) 00370 self.acdPedsButton.setEnabled(0) 00371 else: 00372 self.acdPeds.setEnabled(1) 00373 self.acdPedsButton.setEnabled(1) 00374 00375 def selectCALPeds(self): 00376 """ Operates the widget behaviour for the CAL Pedestal File 00377 type selection, default or custom. 00378 """ 00379 if self.CALDefaultPedsButton.isChecked(): 00380 self.calPeds.setEnabled(0) 00381 self.calPedsButton.setEnabled(0) 00382 else: 00383 self.calPeds.setEnabled(1) 00384 self.calPedsButton.setEnabled(1) 00385 00386 def selectACDPedsFile(self): 00387 """ Calls getPedsFile to obtain the ACD Pedestal File name 00388 and passes it to the corresponding widget. 00389 """ 00390 acdPedsFile = self.getPedsFile() 00391 self.acdPeds.setText(acdPedsFile) 00392 00393 def selectCALPedsFile(self): 00394 """ Calls getPedsFile to obtain the CAL Pedestal File name 00395 and passes it to the corresponding widget. 00396 """ 00397 calPedsFile = self.getPedsFile() 00398 self.calPeds.setText(calPedsFile) 00399 00400 def getPedsFile(self): 00401 """ Calls getOpenFileName() with 'ANCILLARY_ROOT' as default 00402 to pick up the Pedestal File name. 00403 """ 00404 if 'ANCILLARY_ROOT' in os.environ: 00405 path = os.path.join(os.environ['ANCILLARY_ROOT'],'Consumer') 00406 else: 00407 path = QString.null 00408 fn = QFileDialog.getOpenFileName(path, "(*.txt)", self) 00409 00410 if not fn.endsWith(".txt"): 00411 self.__gui.statusBar().message("Can't select a Pedestal File without extension .txt", 2000) 00412 fn = "" 00413 return fn 00414 00415 def saveGOSED(self): 00416 cp = self.__confParser 00417 cp.set("gosed options", "timestep", str(self.timestepValue.text())) 00418 #~ if self.EventlimitsButton.isChecked(): 00419 #~ preferredLimits = "Event" 00420 if self.CALlimitsButton.isChecked(): 00421 preferredLimits = "Default" 00422 else:# self.CustomlimitsButton.isChecked(): 00423 preferredLimits = "Custom" 00424 cp.set("gosed options", "min", self.minCAL()) 00425 cp.set("gosed options", "max", self.maxCAL()) 00426 #~ self.__gui.drawGOSEDCAL.relabel() 00427 self.__gui.drawGOSEDCAL.relabel() 00428 #~ else: 00429 #~ preferredLimits = "Event" 00430 cp.set("gosed options", "preferredlimits", preferredLimits) 00431 00432 if self.CALlimitsButton2.isChecked(): 00433 preferredLimits2 = "Default" 00434 else:# self.CustomlimitsButton.isChecked(): 00435 preferredLimits2 = "Custom" 00436 cp.set("gosed options", "min2", self.minCAL2()) 00437 cp.set("gosed options", "max2", self.maxCAL2()) 00438 self.__gui.drawGOSEDCAL.relabel() 00439 self.__gui.drawGOSEDCALTKR.relabel() 00440 #~ else: 00441 #~ preferredLimits = "Event" 00442 cp.set("gosed options", "preferredlimits2", preferredLimits2) 00443 00444 if self.ACDlimitsButton.isChecked(): 00445 preferredLimits = "Default" 00446 elif self.ACDCustomlimitsButton.isChecked(): 00447 preferredLimits = "Custom" 00448 cp.set("gosed options", "minacd", self.minACD()) 00449 cp.set("gosed options", "maxacd", self.maxACD()) 00450 self.__gui.drawGOSEDACD.relabel() 00451 else: 00452 preferredLimits = "Default" 00453 cp.set("gosed options", "acdpreferredlimits", preferredLimits) 00454 00455 if self.ACDDefaultPedsButton.isChecked(): 00456 acdPedsFile = "Default" 00457 elif self.ACDCustomPedsButton.isChecked(): 00458 acdPedsFile = str(self.acdPeds.text()) 00459 if acdPedsFile == "": 00460 acdPedsFile = "Default" 00461 else: 00462 acdPedsFile = "Default" 00463 cp.set("gosed options", "acdPeds", acdPedsFile) 00464 00465 if self.CALDefaultPedsButton.isChecked(): 00466 calPedsFile = "Default" 00467 elif self.CALCustomPedsButton.isChecked(): 00468 calPedsFile = str(self.calPeds.text()) 00469 if calPedsFile == "": 00470 calPedsFile = "Default" 00471 else: 00472 calPedsFile = "Default" 00473 cp.set("gosed options", "calPeds", calPedsFile) 00474 00475 # Write it out 00476 try: 00477 cp.write(file(self.__configFile, "w+")) 00478 except IOError, e: 00479 myLog.warning("Preferences file not saved due to: %s" % e) 00480 00481 self.readPedestals() 00482 00483 # Redraw screen using new settings 00484 self.__gui.replot() 00485 00486 def saveViews(self): 00487 cp = self.__confParser 00488 cp.set("gosed options", "twr", self.__twr) 00489 cp.set("gosed options", "caltkr", self.__calTkr) 00490 cp.set("gosed options", "data", self.__data) 00491 cp.set("gosed options", "tkr", self.__tkr) 00492 cp.set("gosed options", "acd", self.__acd) 00493 cp.set("gosed options", "cal", self.__cal) 00494 cp.set("gosed options", "ted", self.__ted) 00495 00496 try: 00497 cp.write(file(self.__configFile, "w+")) 00498 except IOError, e: 00499 myLog.warning("Preferences file not saved due to: %s" % e) 00500 00501 def saveGOSEDSize(self): 00502 cp = self.__confParser 00503 cp.set("gosed options", "mainWidth", self.__gui.width()) 00504 cp.set("gosed options", "mainHeight", self.__gui.height()) 00505 00506 try: 00507 cp.write(file(self.__configFile, "w+")) 00508 except IOError, e: 00509 myLog.warning("Preferences file not saved due to: %s" % e) 00510 00511 def getAcdPeds(self): 00512 """ Returns the numarray of Acd pedestals 00513 Array shape is (12,18,2,2) (cable, channel, range, mean/rms) 00514 """ 00515 return self.__acdPeds 00516 00517 def getCalPeds(self): 00518 """ Returns the numarray of Cal pedestals 00519 Array shape is (16,8,12,2,4,2) (tower, layer, column, end, range, mean/rms) 00520 """ 00521 return self.__calPeds 00522 00523 def readPedestals(self): 00524 """ Retrieve pedestals from file. Needs ANCILLARY_ROOT in environment 00525 and assumes pedestal files are in ${ANCILLARY_ROOT}/Consumer/acdPeds.txt 00526 and calPeds.txt 00527 """ 00528 (acdPedsFile, calPedsFile) = self.__obtainPedsFiles() 00529 00530 self.__readAcdPedestals(acdPedsFile) 00531 self.__readCalPedestals(calPedsFile) 00532 00533 def __readAcdPedestals(self, acdPedsFile): 00534 if acdPedsFile == 'Default': 00535 if 'ANCILLARY_ROOT' in os.environ: 00536 ifname = os.path.join(os.environ['ANCILLARY_ROOT'],'Consumer/acdPeds.txt') 00537 else: 00538 ifname = "" 00539 else: 00540 ifname = acdPedsFile 00541 00542 self.__acdPeds = None 00543 try: 00544 infile = open(ifname) 00545 except: 00546 return 00547 self.__acdPeds = Numeric.zeros((12,18,2,2)) 00548 for line in infile.xreadlines(): 00549 if line[0]=='!': 00550 continue 00551 # cable channel range mean rms 00552 entries = string.split(line) 00553 if len(entries)==5: 00554 self.__acdPeds[int(entries[0]),int(entries[1]),int(entries[2]),0] = float(entries[3]) 00555 self.__acdPeds[int(entries[0]),int(entries[1]),int(entries[2]),1] = float(entries[4]) 00556 infile.close() 00557 myLog.info('GOSEDPreferencesImpl.__readAcdPedestals: Read in ACD pedestals from %s'%(ifname)) 00558 00559 def __readCalPedestals(self, calPedsFile): 00560 if calPedsFile == 'Default': 00561 if 'ANCILLARY_ROOT' in os.environ: 00562 ifname = os.path.join(os.environ['ANCILLARY_ROOT'],'Consumer/calPeds.txt') 00563 else: 00564 ifname = "" 00565 else: 00566 ifname = calPedsFile 00567 00568 self.__calPeds = None 00569 try: 00570 infile = open(ifname) 00571 except: 00572 return 00573 self.__calPeds = Numeric.zeros((16,8,12,2,4,2)) 00574 for line in infile.xreadlines(): 00575 if line[0]=='!': 00576 continue 00577 # tower layer column end range mean rms 00578 entries = string.split(line) 00579 if len(entries)==7: 00580 self.__calPeds[int(entries[0]),int(entries[1]),int(entries[2]),int(entries[3]),int(entries[4]),0] = float(entries[5]) 00581 self.__calPeds[int(entries[0]),int(entries[1]),int(entries[2]),int(entries[3]),int(entries[4]),1] = float(entries[6]) 00582 infile.close() 00583 myLog.info('GOSEDPreferencesImpl.__readCalPedestals: Read in CAL pedestals from %s'%(ifname)) 00584 00585 def __obtainPedsFiles(self): 00586 cp = self.__confParser 00587 if os.path.exists(self.__configFile): 00588 cp.read(self.__configFile) 00589 try: 00590 acdPeds = cp.get("gosed options", "acdpeds") 00591 calPeds = cp.get("gosed options", "calpeds") 00592 except ConfigParser.NoSectionError: 00593 cp.add_section("gosed options") 00594 self.__pedDefaults() 00595 except ConfigParser.NoOptionError: 00596 self.__pedDefaults() 00597 else: 00598 self.__pedDefaults() 00599 00600 acdPedsFile = cp.get("gosed options", "acdpeds") 00601 calPedsFile = cp.get("gosed options", "calpeds") 00602 return (acdPedsFile, calPedsFile) 00603 00604 def __pedDefaults(self): 00605 cp = self.__confParser 00606 cp.set("gosed options", "acdpeds", 'Default') 00607 cp.set("gosed options", "calpeds", 'Default')