Source code for casinotools.fileformat.casino3.OptionsAdvBackSet

#!/usr/bin/env python
""" """

# Script information for the file.
__author__ = "Hendrix Demers (hendrix.demers@mail.mcgill.ca)"
__version__ = ""
__date__ = ""
__copyright__ = "Copyright (c) 2009 Hendrix Demers"
__license__ = ""

# Standard library modules.

# Third party modules.

# Local modules.
import casinotools.fileformat.FileReaderWriterTools as FileReaderWriterTools

# Globals and constants variables.

##-----------------------------------------------------------------------------
##/ Minimum angle for energy filter
##-----------------------------------------------------------------------------
#    double BEMin_Angle
##-----------------------------------------------------------------------------
##/ Maximum angle for Energy filter
##-----------------------------------------------------------------------------
#    double BEMax_Angle
##-----------------------------------------------------------------------------
##/ Maximum value of energy filter
##-----------------------------------------------------------------------------
#    double EFilterMax
##-----------------------------------------------------------------------------
##/ Minimum value of energy filter
##-----------------------------------------------------------------------------
#    double EFilterMin
##-----------------------------------------------------------------------------
##/ Middle values of energy filter
##-----------------------------------------------------------------------------
#    double EFilterVal[101]
##-----------------------------------------------------------------------------
##/ flag for doing filtration by energy(added to filter by position)
##-----------------------------------------------------------------------------
#    int FEFilter
##-----------------------------------------------------------------------------
#
##-------------------------------------------
## Setting of Backscattered electron detector
## Permit the setting of the sensibility of the backscattered electron detector
##-------------------------------------------
#
##-----------------------------------------------------------------------------
##/ Determine if using the advanced backscattered electron sensor settings :
##/ -true : Use them
##/ -false : Do not use them.
##-----------------------------------------------------------------------------
#    bool UseEnBack
##-----------------------------------------------------------------------------
##/ Backscattered electron sensor matrix setting
##-----------------------------------------------------------------------------
# TODO: implement the MatrixDetect variable and read data from file.
#    Matrix2d<double> MatrixDetect
##-----------------------------------------------------------------------------
##/ Working distance of the backscattered electron sensor.
##-----------------------------------------------------------------------------
#    double WorkDist
##-----------------------------------------------------------------------------
##/ Scale in X of one division of the sensor, in nm.
##-----------------------------------------------------------------------------
#    double DetectScaleX
##-----------------------------------------------------------------------------
##/ Scale in Y of one division of the sensor, in nm
##-----------------------------------------------------------------------------
#    double DetectScaleY
##-----------------------------------------------------------------------------
##/ Determine if the backscattered sensor matrix (MatrixDetect) is valid
##-----------------------------------------------------------------------------
#    bool ValidMatrix
##-----------------------------------------------------------------------------
##/ Name of the matrix file (and the path).
##-----------------------------------------------------------------------------
#    std::string pathToMatrix
##-----------------------------------------------------------------------------
[docs]class OptionsAdvBackSet(FileReaderWriterTools.FileReaderWriterTools): def __init__(self): self.reset()
[docs] def write(self, file): assert getattr(file, 'mode', 'wb') == 'wb' pass
# Tags::AddTag(file,"*MATRX_SET_BEG", 15) # OptionsGroup::writeVersion(file) # # safewrite<bool>(file, UseEnBack) # safewrite<double>(file, WorkDist) # safewrite<double>(file, DetectScaleX) # safewrite<double>(file, DetectScaleY) # safewrite<bool>(file, ValidMatrix) # # if(ValidMatrix == true) # # for(int i = 0 i < 101 i++) # # for(int j = 0 j < 101 j++) # # safewrite<double>(file, MatrixDetect.get(i, j)) # # # # # safewrite<double>(file, BEMin_Angle) # safewrite<double>(file, BEMax_Angle) # safewrite<double>(file, EFilterMax) # safewrite<double>(file, EFilterMin) # # for(int i = 0 i < 101 i++) # # safewrite<double>(file, EFilterVal[i]) # # safewrite<int>(file, FEFilter) # # Tags::AddTag(file,"*MATRX_SET_END", 15)
[docs] def read(self, file): tagID = b"*MATRX_SET_BEG" self.findTag(file, tagID) self._version = self.readInt(file) self.UseEnBack = self.readBool(file) self.WorkDist = self.readDouble(file) self.DetectScaleX = self.readDouble(file) self.DetectScaleY = self.readDouble(file) self.ValidMatrix = self.readBool(file) if self.ValidMatrix: raise NotImplementedError # for(int i = 0 i < 101 i++) # for(int j = 0 j < 101 j++) # double value # saferead<double>(file, value = self.readDouble(file) # MatrixDetect.set(i, j, value) self.BEMin_Angle = self.readDouble(file) self.BEMax_Angle = self.readDouble(file) self.EFilterMax = self.readDouble(file) self.EFilterMin = self.readDouble(file) for i in range(101): self.EFilterVal[i] = self.readDouble(file) self.FEFilter = self.readInt(file) tagID = b"*MATRX_SET_END" self.findTag(file, tagID)
[docs] def reset(self): self.BEMin_Angle = 0.0 self.BEMax_Angle = 0.0 self.EFilterMax = 0.0 self.EFilterMin = 0.0 self.EFilterVal = [] for dummy in range(101): self.EFilterVal.append(1.0) self.FEFilter = 0 self.UseEnBack = False self.MatrixDetect = None self.WorkDist = 10.0 self.DetectScaleX = 1.0 self.DetectScaleY = 1.0 self.ValidMatrix = False