def parseExcludedDetFile(self, instrument, excldetfname): """ Parse excluded detectors file Return :: 2 -tuple (list/None, error message) """ if instrument.upper() == 'HB2A': excldetlist, errmsg = hutil.parseDetExclusionFile(excldetfname) else: raise NotImplementedError('Instrument %s is not supported for parsing excluded detectors file.'%(instrument)) return excldetlist, errmsg
def parseExcludedDetFile(self, instrument, excldetfname): """ Parse excluded detectors file Return :: 2 -tuple (list/None, error message) """ if instrument.upper() == 'HB2A': excldetlist, errmsg = hutil.parseDetExclusionFile(excldetfname) else: raise NotImplementedError( 'Instrument %s is not supported for parsing excluded detectors file.' % (instrument)) return excldetlist, errmsg
def parseDetEffCorrFile(self, instrument, vancorrfname): """ Parse detector efficiency correction file='HB2A Return :: 2-tuple (table workspace and or """ if instrument.upper() == 'HB2A': vancorrdict, errmsg = hutil.parseDetEffCorrFile(vancorrfname) if len(vancorrdict) > 0: detefftablews = self._generateTableWS(vancorrdict) else: detefftablews = None else: detefftablews = None errmsg = "Instrument %s is not supported for parsing vanadium (detector efficiency) correction." return (detefftablews, errmsg)
def retrieveCorrectionData(self, instrument, exp, scan, localdatadir): """ Retrieve including dowloading and/or local locating powder diffraction's correction files Arguments: - instrument :: name of powder diffractometer in upper case - exp :: integer as epxeriment number - scan :: integer as scan number Return :: 2-tuple (True, list of returned file names) or (False, error reason) """ if instrument.upper() == 'HB2A': # For HFIR HB2A only try: wsmanager = self._myWorkspaceDict[(exp, scan)] except KeyError as e: raise e # Get parameter m1 and colltrans m1 = self._getValueFromTable(wsmanager.getRawSpiceTable(), 'm1') colltrans = self._getValueFromTable(wsmanager.getRawSpiceTable(), 'colltrans') # detector efficiency file try: detefffname, deteffurl, wavelength = hutil.makeHB2ADetEfficiencyFileName(exp, m1, colltrans) except NotImplementedError as e: raise e if detefffname is not None: localdetefffname = os.path.join(localdatadir, detefffname) print "[DB] Detector efficiency file name: %s From %s" % (detefffname, deteffurl) if os.path.exists(localdetefffname) is False: downloadFile(deteffurl, localdetefffname) else: print "[Info] Detector efficiency file %s exists in directory %s." % (detefffname, localdatadir) else: localdetefffname = None # ENDIF # excluded detectors file excldetfname, exclurl = hutil.makeExcludedDetectorFileName(exp) localexcldetfname = os.path.join(localdatadir, excldetfname) print "[DB] Excluded det file name: %s From %s" % (excldetfname, exclurl) if os.path.exists(localexcldetfname) is False: downloadstatus, errmsg = downloadFile(exclurl, localexcldetfname) if downloadstatus is False: localexcldetfname = None print "[Error] %s" % (errmsg) else: print "[Info] Detector exclusion file %s exists in directory %s." % (excldetfname, localdatadir) # Set to ws manager wsmanager.setWavelength(wavelength) # wsmanager.setDetEfficencyFile() # wsmanager.setExcludedDetFile() else: # Other instruments raise NotImplementedError("Instrument %s is not supported to retrieve correction file." % (instrument)) return (True, [wavelength, localdetefffname, localexcldetfname])
def retrieveCorrectionData(self, instrument, exp, scan, localdatadir): """ Retrieve including dowloading and/or local locating powder diffraction's correction files Arguments: - instrument :: name of powder diffractometer in upper case - exp :: integer as epxeriment number - scan :: integer as scan number Return :: 2-tuple (True, list of returned file names) or (False, error reason) """ if instrument.upper() == 'HB2A': # For HFIR HB2A only try: wsmanager = self._myWorkspaceDict[(exp, scan)] except KeyError as e: raise e # Get parameter m1 and colltrans m1 = self._getValueFromTable(wsmanager.getRawSpiceTable(), 'm1') colltrans = self._getValueFromTable(wsmanager.getRawSpiceTable(), 'colltrans') # detector efficiency file try: detefffname, deteffurl, wavelength = hutil.makeHB2ADetEfficiencyFileName( exp, m1, colltrans) except NotImplementedError as e: raise e if detefffname is not None: localdetefffname = os.path.join(localdatadir, detefffname) print "[DB] Detector efficiency file name: %s From %s" % ( detefffname, deteffurl) if os.path.exists(localdetefffname) is False: downloadFile(deteffurl, localdetefffname) else: print "[Info] Detector efficiency file %s exists in directory %s." % ( detefffname, localdatadir) else: localdetefffname = None # ENDIF # excluded detectors file excldetfname, exclurl = hutil.makeExcludedDetectorFileName(exp) localexcldetfname = os.path.join(localdatadir, excldetfname) print "[DB] Excluded det file name: %s From %s" % (excldetfname, exclurl) if os.path.exists(localexcldetfname) is False: downloadstatus, errmsg = downloadFile(exclurl, localexcldetfname) if downloadstatus is False: localexcldetfname = None print "[Error] %s" % (errmsg) else: print "[Info] Detector exclusion file %s exists in directory %s." % ( excldetfname, localdatadir) # Set to ws manager wsmanager.setWavelength(wavelength) # wsmanager.setDetEfficencyFile() # wsmanager.setExcludedDetFile() else: # Other instruments raise NotImplementedError( "Instrument %s is not supported to retrieve correction file." % (instrument)) return (True, [wavelength, localdetefffname, localexcldetfname])