Package: libhreels
HREELS data handling and simulationSet of data analysis routines for surface vibrational spectroscopy based on a Delta05 spectrometer with software from VSI or SPECS.Simple data reading and plotting routines are provided, but also advanced routines for in depth analysis.
A fast data browser as graphical user interface is included asViewHREELS.py. It can also take command line arguments.Additional a python interface to a Fortran-based calculation of full HREEL spectra is provided inclass lambin(incalcHREELS20.py). Note that this part requires a local compilation (via "f2py3 -c -m myEels20 myEels20.f90") from the Fortran90 files. Only for the Linux-based python version 3.8, there are complied files provided. For details see below.Most of the routines are within theclass HREELS(HREELS.py). A simple command line program is "showHREELS.py", which reads one data file and plots the spectrum with a second amplified trace.Usage:  >python showHREELS.py filename [factor wavenumber]

    E.g.: python showHREELS.py H9H03 100 53More general usage:Read dataset by calling the HREELS class:data1 = HREELS('filename', datapath='datapath')# Here you can omit the extension '.gph'
# The second argument is optionalThis will assign/calculate the following properties:

data1.filename
data1.datapath
data1.startTime
data1.stopTime
data1.totalTime
data1.timePerChannel
data1.numberOfSegments
data1.energy    # Electron kinetic energy
data1.filament  # Filament current in Ampere
data1.segments  # list of segment info
data1.data      # [(-100.1021616, 259.5), (-98.5374352, 264.5), ...]
data1.xdata
data1.ydata
data1.maxIntensity  # Count rate of elastic peak
data1.resolution    # width of elastic peakThe following methods are defined within the class:info()      :   Print information about the spectrum
plot()      :   Draws the spectrum. Optional arguments are:
                (xmin=None, xmax=None, factor=1, label='x', normalized=False, color="b-",marker=True)

plotInfoAmp()   Draws spectrum together with amplified trace.
pickPeak()  :   Select peak by mouse cursor. The call of figure() is required before.
selectData():   Returns the data between wavenumbers x1 and x2
findIndex(lossenergy): Returns the data array index for a given energy loss
setMarker(x, y, ymin=0, size=None): Sets vertical marker with text label 
plotWaterFall(...):calcHREELS20These routines are based on the publication "Computation of the surface electron-energy-loss spectrum in specular geometry for an arbitrary plane-stratified medium" by P. Lambin, J.-P. Vigneron, and A. A. Lucas, in the Journal "Computer Physics Communications 60, 351-64(1990)".It allows to handle a heterostructure of different materials in a easy way. The code is modified to comply with Fortran90 and wraped to python functions. See the example in Examples/calcHREELS1.py for NiO(001).Complex calculations for perovskite oxides are provided in the examples calcHREELS2.py and calcHREELS3.py.dielectrics20These routines allow to model the dielectric properties of materials described by different oscillators and Drude responses. Quantities as real and imaginary part of the dielectric function, optical conductivity, IR reflectivity, and surface loss are calculated. The sum rules of optical conductivity can be analyzed.