Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | Related Pages

GOSEDPreferencesImpl.py

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')

Generated on Fri Jul 21 13:26:28 2006 for LATTE R04-12-00 by doxygen 1.4.3