def postProcess(self, _edObject=None): EDPluginExecProcessScript.postProcess(self) strRaddoseError = self.readProcessErrorLogFile() if((strRaddoseError is not None) and (strRaddoseError != "")): errorMessage = EDMessage.ERROR_EXECUTION_03 % ('EDPluginRaddosev10.postProcess', 'EDPluginRaddosev10', strRaddoseError) EDVerbose.error(errorMessage) self.addErrorMessage(errorMessage) raise RuntimeError, errorMessage resultDict = self.analyseScriptLogFileName(os.path.join(self.getWorkingDirectory(), self.getScriptLogFileName())) strSolvent = self.__dictResults[ EDPluginRaddosev10.__strSOLVENT ] # ugly workaround while waiting for RADDOSE XML output file strAbsorbedDose = None for strAbsorbedDoseKeyword in EDPluginRaddosev10.__listABSORBED_DOSE: strAbsorbedDose = self.__dictResults[ strAbsorbedDoseKeyword ] if (strAbsorbedDose is not None): break if(strSolvent is None): errorMessage = EDMessage.ERROR_EXECUTION_03 % ('EDPluginRaddosev10.postProcess', "Raddose", "No Result for Keyword [" + EDPluginRaddosev10.__strSOLVENT + "] see: " + self.getScriptLogFileName()) EDVerbose.error(errorMessage) self.addErrorMessage(errorMessage) raise RuntimeError, errorMessage if(strAbsorbedDose is None): errorMessage = EDMessage.ERROR_EXECUTION_03 % ('EDPluginRaddosev10.postProcess', "Raddose", "No Result for Keyword [" + strAbsorbedDoseKeyword + "] see: " + self.getScriptLogFileName()) EDVerbose.error(errorMessage) self.addErrorMessage(errorMessage) raise RuntimeError, errorMessage self.__fSolvent = float(strSolvent) if(self.__fSolvent < EDPluginRaddosev10.__iMIN_SOLVENT_PERCENTAGE or self.__fSolvent > EDPluginRaddosev10.__iMAX_SOLVENT_PERCENTAGE): warningMessage = "Inconsistent solvent percentage value: %.1f" % self.__fSolvent EDVerbose.warning(warningMessage) self.addWarningMessage(warningMessage) iNumberOfImages = self.getDataInput().getNumberOfImages().getValue() fExposureTimePerImageInSec = self.getDataInput().getBeamExposureTime().getValue() fTotalExposureTime = iNumberOfImages * fExposureTimePerImageInSec fAbsorbedDoseSpeed = float(strAbsorbedDose) / fTotalExposureTime xsDataAbsorbedDoseRate = XSDataAbsorbedDoseRate(fAbsorbedDoseSpeed) xsDataAbsorbedDose = XSDataDouble(float(strAbsorbedDose)) self.__fTimeToReachHendersonLimit = EDPluginRaddosev10.__fHENDERSON_LIMIT / fAbsorbedDoseSpeed xsDataRaddosev10Output = XSDataRaddoseOutput() xsDataRaddosev10Output.setAbsorbedDose(xsDataAbsorbedDose) xsDataRaddosev10Output.setAbsorbedDoseRate(xsDataAbsorbedDoseRate) xsDataRaddosev10Output.setTimeToReachHendersonLimit(XSDataTime(self.__fTimeToReachHendersonLimit)) xsDataFilePathToLog = XSDataFile(XSDataString(os.path.join(self.getWorkingDirectory(), self.getScriptLogFileName()))) xsDataRaddosev10Output.setPathToLogFile(xsDataFilePathToLog) self.setDataOutput(xsDataRaddosev10Output)
def postProcess(self, _edObject=None): EDPluginExecProcessScript.postProcess(self) strRaddoseError = self.readProcessErrorLogFile() if ((strRaddoseError is not None) and (strRaddoseError != "")): errorMessage = EDMessage.ERROR_EXECUTION_03 % ( 'EDPluginRaddosev10.postProcess', 'EDPluginRaddosev10', strRaddoseError) self.error(errorMessage) self.addErrorMessage(errorMessage) raise RuntimeError(errorMessage) resultDict = self.analyseScriptLogFileName( os.path.join(self.getWorkingDirectory(), self.getScriptLogFileName())) strSolvent = self.__dictResults[EDPluginRaddosev10.__strSOLVENT] # ugly workaround while waiting for RADDOSE XML output file strAbsorbedDose = None for strAbsorbedDoseKeyword in EDPluginRaddosev10.__listABSORBED_DOSE: strAbsorbedDose = self.__dictResults[strAbsorbedDoseKeyword] if (strAbsorbedDose is not None): break if (strSolvent is None): errorMessage = EDMessage.ERROR_EXECUTION_03 % ( 'EDPluginRaddosev10.postProcess', "Raddose", "No Result for Keyword [" + EDPluginRaddosev10.__strSOLVENT + "] see: " + self.getScriptLogFileName()) self.error(errorMessage) self.addErrorMessage(errorMessage) raise RuntimeError(errorMessage) if (strAbsorbedDose is None): errorMessage = EDMessage.ERROR_EXECUTION_03 % ( 'EDPluginRaddosev10.postProcess', "Raddose", "No Result for Keyword [" + strAbsorbedDoseKeyword + "] see: " + self.getScriptLogFileName()) self.error(errorMessage) self.addErrorMessage(errorMessage) raise RuntimeError(errorMessage) self.__fSolvent = float(strSolvent) if (self.__fSolvent < EDPluginRaddosev10.__iMIN_SOLVENT_PERCENTAGE or self.__fSolvent > EDPluginRaddosev10.__iMAX_SOLVENT_PERCENTAGE): warningMessage = "Inconsistent solvent percentage value: %.1f" % self.__fSolvent self.warning(warningMessage) self.addWarningMessage(warningMessage) iNumberOfImages = self.getDataInput().getNumberOfImages().getValue() fExposureTimePerImageInSec = self.getDataInput().getBeamExposureTime( ).getValue() fTotalExposureTime = iNumberOfImages * fExposureTimePerImageInSec fAbsorbedDoseSpeed = float(strAbsorbedDose) / fTotalExposureTime xsDataAbsorbedDoseRate = XSDataAbsorbedDoseRate(fAbsorbedDoseSpeed) xsDataAbsorbedDose = XSDataDouble(float(strAbsorbedDose)) self.__fTimeToReachHendersonLimit = EDPluginRaddosev10.__fHENDERSON_LIMIT / fAbsorbedDoseSpeed xsDataRaddosev10Output = XSDataRaddoseOutput() xsDataRaddosev10Output.setAbsorbedDose(xsDataAbsorbedDose) xsDataRaddosev10Output.setAbsorbedDoseRate(xsDataAbsorbedDoseRate) xsDataRaddosev10Output.setTimeToReachHendersonLimit( XSDataTime(self.__fTimeToReachHendersonLimit)) xsDataFilePathToLog = XSDataFile( XSDataString( os.path.join(self.getWorkingDirectory(), self.getScriptLogFileName()))) xsDataRaddosev10Output.setPathToLogFile(xsDataFilePathToLog) self.setDataOutput(xsDataRaddosev10Output)