About this document

Tutorial 1

written by W.Theiss

W. Theiss – Hard- and Software for Optical Spectroscopy

Dr.-Bernhard-Klein-Str. 110, D-52078 Aachen, Germany

Phone: + 49 241 5661390     Fax:     + 49 241 9529100

e-mail: theiss@mtheiss.com     web: www.mtheiss.com

January 2012

This tutorial shows some introductory examples of SCOUT applications. It is to be used parallel to the SCOUT technical manual which should be consulted for details if necessary.

This text was written using the program Help&Manual (from EC Software). With this software we produce the printed manual as well as the online help and HTML code for internet documents - with exactly the same text input! This is a very productive feature and makes the development of the documentation quite easy. However, for this reason the printed manual sometimes contains some 'strange' text fragments which seem to have no relation to the rest of the text. These might be hypertext jumps in the online help system which - of course - lose there function in the printed version of the manual.

About Tutorial 1

The examples discussed in this tutorial show the basic features of SCOUT. You should go through them before you start your own 'real' SCOUT work.

Example 1: Carrier concentration from IR reflectance

Definition of a simple optical constant model, a simple layer stack and a simple infrared reflectance spectrum. Manual, visual and automatic parameter fitting.

Example 2: Epilayer thickness from IR reflectance

Modification of an existing SCOUT configuration. Thickness determination from interference pattern analysis.

Example 3: Silver layer on glass, thickness determination

Setting up a model making use of the database of optical constants. Treating thick substrates with incoherent superposition of partial waves. Simple thickness determination in the visible spectral range.

Example 4: Remote control by OLE automation

Control SCOUT from outside by OLE automation. Use VisualBasic as macro language to compute spectra and fill Excel tables with spectra data.

The problem

The doping of semiconductors leads to free charge carriers which can be investigated by IR spectroscopy. The response of free carriers to oscillating electric fields can be described to a good approximation by the simple Drude model. The parameters of that model relate the concentration of the charge carriers and their mobility to properties of the dielectric function. After a model parameter fit of the simulated spectrum to measured data the carrier concentration and the mobility or the resistivity of the material can be computed.

Background

The Drude model relates the macroscopic susceptibility to the microscopic quantities carrier concentration n and mobility μ:

e is the charge and m the effective mass of the charge carriers. The damping constant Ωτ and ΩP (which is called plasma frequency), are the two fit parameters of the model. Both are given in wavenumbers. Alternatively one can also compute the resistivity:

 .

For p-doped silicon the effective mass is 0.37 times the electron mass which leads to the following simpler versions of the relations given above:

These relations will be used to convert the fit parameters to the wanted carrier properties.

Overview

This part of the tutorial describes in detail the required steps to configure SCOUT for the given problem. Start the program and see the following main window:

In the following we will perform the 4 steps required for an analysis of optical spectra by simulation:

1.Define optical constants of all relevant materials

2.Setup the layer stack

3.Define which spectrum (or spectra) are to be computed

4.Declare the fit parameters and do the fit

Before we start we use the menu command File|New. This tells SCOUT to load the configuration new.sc2 located in the SCOUT program folder. This file has been installed with SCOUT. It is an almost empty configuration which is a good starting point for this tutorial. Loading a new configuration means to drop the current one:

Press OK to load new.sc2. When the configuration is loaded it looks like this:

As mentioned before - the configuration is almost empty.

Step 1: Define optical constants

The first thing you should do is to define optical constants for all materials relevant for the given problem. You have to do that in the list of materials which is an important part of every SCOUT configuration. Objects in SCOUT are managed in several lists which are all branches in the so-called object treeview. In order to modify SCOUT lists or objects you must select them in the treeview and then do your changes.

To get access to all SCOUT objects we have to switch from the main view (that we have seen up to now) to the treeview level by pressing F7 on your keyboard (Pressing F7 again leads you back to the main view). The treeview level looks like this:

Display this list of materials by a right mouse click on the treeview branch Materials:

In the following we will work in the list of materials, i.e. in the right part of the SCOUT window. Note that this is a subwindow with its own menu and buttons:

In our case we need vacuum and doped silicon only. Vacuum is already defined, so we just have to define an optical constant model for silicon. The term 'optical constants' is often used for both the so-called dielectric function as well as its square root, the complex refractive index. Press the speed button labeled as '+' to create a new dielectric function of type 'Dielectric function model'. The + button or the New command in a SCOUT list always generate a new object of the type currently selected in the dropdown box to the right of the + button. Now the list is a little longer:

Place the cursor to the name 'Dummy name' as shown above and start to type 'Doped silicon'. Hit the return key when you are finished. The list should be this now:

Now we have to setup the dielectric function model for the new material called 'Doped silicon'. Note that the treebranch Materials has now a new branch called 'Doped silicon' which you can open by clicking on the little + to the left of Materials:

Right-click the treeview branch 'Doped silicon'. The list of materials disappears and the new object 'Doped silicon' is shown:

First we define the spectral range that we are going to investigate in the following. The Range command of the 'Doped silicon' menu (underneath the title 'Doped silicon') opens the corresponding dialog where you should define a spectral range from 100 to 3000 1/cm using 100 data points. The dialog should look like this:

Now we define the dielectric function model by creating two susceptibilities in the so-called susceptibility list. Open this list by clicking the + to the left of the 'Doped silicon' branch of the treeview. The right-click the branch 'Susceptibilities':

Create a constant background susceptibility by pressing the '+' button to the left of the dropdown box which shows the new object type 'Dielectric background'. Change its name to DB (select the name column, type in DB and press Return). Set the real part of this susceptibility to 11.7 (which is a good number for silicon, just believe it) such that the susceptibility list appears as follows:

If you have problems changing values in such lists please consult the section 'List properties' in the 'Technical notes' section of the SCOUT help.

Secondly you have to add a Drude susceptibility which will describe the response of the free charge carriers. Select the susceptibility type 'Drude model' in the dropdown list and create with '+' a new Drude term. Change the name of the new susceptibility to 'Carriers' but leave the default values of the Drude parameters unchanged:

Now right-click the 'Doped silicon' treeview branch. This closes the susceptibility list and re-opens the graph that shows the dielectric function. Click on the menu command Recalc  to compute the dielectric function based on the two susceptibility terms that you have defined. The graph should now look like this:

We are seeing only part of the data. Press the 'a' key on the keyboard (which abbreviates 'Autoscale') and see that the full range of the data:

The red curve shows the imaginary part, the blue one the real part of your dielectric function model. If you prefer to see the complex refractive index apply the menu command Property|Refractive index. SCOUT will now display the refractive index (real part in blue, imaginary part in red) and do an automatic scaling:

This is a suitable moment to mention that the document 'Graphics course' delivered with SCOUT shows you how to master the program's graphics features. This is not repeated here, but it would be very helpful if you could handle at least the basic mechanisms to move around in your SCOUT graphs.

Now the optical constant model for doped silicon is complete. It is advisable to save your work from time to time. The most convenient way to do this is to save the complete program configuration in a binary SCOUT configuration file. This can be done by the command File|Save As in the main window. You can reload a SCOUT configuration file with File|Open any time and continue your work.

Step 2: Define the layer stack

This step of defining the geometric structure of the sample will be done quickly because we assume the most simple layer stack that is possible: The infrared radiation that probes the sample travels through vacuum and hits a vacuum-silicon interface. The spectrometer records the fraction of radiation that is reflected from this single interface. We neglect any radiation that is reflected from the backside of the sample which is often a good approximation (either the radiation passing through the silicon wafer is absorbed or scattered away at the rough backside).

Of course, there are also cases where the backside reflections have to be taken into account. In such a case optical modeling is much harder because with backside reflections you see many contributions from weak multiphonon and impurity absorption processes in silicon.These excitations can be successfully handled as well  but for this first example in the first tutorial we stick to the simple case of 'halfspace reflectance' with no backside effects.

To start the practical part, open the treeview branch Layer stacks by a right-click. This will open the list of layer stacks:

SCOUT can work with several layer stacks at a time which are managed in this list. For the present case we need only one layer stack, so we can use the already existing layer stack named 'Standard'. Click the + to the left of the treeview branch Layer stacks and right-click the branch Standard which has shown up:

The center of the Standard subwindow to the right represents the layer structure of the sample:

You see, there are just two adjacent vacuum halfspaces. The light is incident from the top halfspace. Any thin films or thick layers would be in between the two 'halfspaces' but since we don't have to take into account any layers in this problem we have just to replace the vacuum in the bottom halfspace by silicon. We can to the assignment of materials to layers in a layer stack by a drag&drop operation.

Here is what you have to do: Open in the treeview the branch which represents the wanted material. Keep this branch visible in the treeview. Then display the layer stack by a right-click on the Standard tree branch. Start a drag operation at the material item in the treeview  (i.e. press the left mouse button down and keep it down while you move the mouse) and drop it at the bottom halfspace of the 'Standard' layer stack as indicated by the red arrow below (release the mouse button at the wanted position):

Check that the wanted material appears in the 'Material' column of the layer. After this operation, the layer stack should be the following:

Now the sample's layer structure is defined and you can proceed with the next step.

Step 3: Define the simulated spectra

Now you have to tell SCOUT which spectra you want to simulate and compare to measured ones.

Open the treeview branch Simulated spectra by a right mouse click:

There is a pre-defined spectrum called 'Spectrum simulation' which is of type 'R,T,ATR'. As long as you just need to compute one spectrum you can use this pre-defined one. If you need more you have to create more.

In this example we are just going to compute one reflectance spectrum in the infrared. Select the name cell which says 'Spectrum simulation' at the moment and change its name to 'IR Reflectance'. Then click the + to the left of the treeview item Simulated spectra to open the corresponding subbranch. In this subbranch, right-click the branch named IR reflectance:

Here you can set the details of the spectrum that is to be computed. Leave the spectrum type 'Reflectance' unchanged, but set the angle (of incidence) to 30 degrees. All other settings can be used as they are except the spectral range. With the Range command you get the same dialog for specifying a spectral range for an object as we have used already in the definition of the dielectric function. Set the range to 100 ... 3000 1/cm with 100 data points. This range must not be the same as that used for the dielectric function, but it is reasonable to work with the same range in this case. After leaving the range dialog the spectrum is automatically computed. Whenever you change a parameter and you want a recomputation of the spectrum you can use the Recalc command.

Use the menu command Graphics|Edit plot parameters and set the graphics parameters as shown below (see the 'Graphics course' in the SCOUT documentation for a description of graphics parameters):

The spectrum should now look like the following:

Now, since the simulated spectrum is available, it is time to load the experimental data. With this tutorial a measured spectrum is distributed that we can use to practise. The filename is tu1_ex1_exp_data.spc and it is located in the subdirectory 'SCOUT tutorial 1'. After activating the menu command Import|from file of the reflectance spectrum object you have to select the SpectraCalc file type since the data are stored using this file format:

After this dialog the datafile is opened and some information about the found data is given in this dialog:

Do not change anything here except the unit if it is not correct. The units of the measured data and that of the simulation must agree (1/cm in this case).

After successful import the measured data are displayed in red together with the simulated spectrum in blue:

For the computation of the deviation between simulation and measurement it is important that for each simulated spectral point there are measured data (which may be obtained by interpolation, however). Hence you have to change the range of the computation, for example to the new range 600 ... 5000 1/cm. Instead of setting a new range  for the reflectance spectrum and also for the optical constant model individually you can due that in one step, globally in the main menu on top of the SCOUT window. There you find also a Range command which shows in a dialog the range of the first spectrum in the spectrum list. You can set the new range here and after you leave the dialog all spectra and all dielectric function models are re-computed using the new range. Set a new global range from 600 to 5000 1/cm with 100 points:

In addition, use the Graphics|Edit plot parameters command of the IR reflectance object to increase the range of the x-axis like the following:

Obviously, the agreement between model and measurement is poor and we have to change the model to improve it. We will do that now in the next step.

It would be nice to see the spectrum object in the main view which is displayed when you load a SCOUT method. Please read the 'Quick start ...' section of the SCOUT technical manual for a short introduction into view setups (or read the section about views for all details). In this first tutorial it is sufficient to see the spectrum object in the main view. You can achieve this by simply activating the main menu command Actions|Create view of spectra. Press F7 to switch from the treeview level to the main view level and convince yourself that the main view now looks like this:

Press F7 again to go back to the treeview level for the next step.

Step 4: Fitting parameters

To adjust the model to fit experimental data you could change the values of the model parameters in those lists where you defined them. It is more convenient, however, to collect these parameters in one single list which is called the list of fit parameters. Open this list by a right-click on the treeview branchFit parameters. The following (empty) list shows up:

Pressing the + button or using the menu command New of the list (i.e. in the local menu underneath the Fit parameters title) you get a dialog box listing all possible fit parameters. First the list displays all dielectric function parameters, followed by the layer parameters. Finally the parameters of the computed spectra and the so-called master parameters are given:

Press the Ctrl-key down and click on those parameters that you want to adjust. In our example, select the plasma frequency and the damping constant of the Drude susceptibility that was named 'Carriers':

Leave the dialog pressing Ok and see that the chosen parameters are now in the list of fit parameters:

Manual fitting

First you can try some values for the parameters by typing in new numbers in the 'Value' column and active the Update menu command. SCOUT recomputes all windows that may have changed and you can inspect the new model, e.g. by looking at the reflectance spectrum. Try 3000 1/cm for the plasma frequency. The new spectrum (visible by a right-click of the IR reflectance treeview item) is this:

With a value of 5000 1/cm for the plasma frequency you get this:

Keeping the 5000 1/cm for the plasma frequency and increasing the damping constant to 500 1/cm the model spectrum is already quite close to the measured data:

Visual fitting

There is a much more elegant way to adjust parameters, namely by using sliders. Select the plasma frequency in the fit parameter list and create a slider with the Slider command or clicking on the parameter with the right mouse button. A new small window pops up:

With the mouse you can drag the plasma frequency between the limits given in the upper left and right corners. The present value of the fit parameter is given by the center value. While you move the slider all windows which need an update are instantly following the new values (if your PC is fast enough).

You should create two sliders for the plasma frequency and the damping constant, place them beside or below each other on the screen and play for a while with different combinations of the parameters - this way you get a good insight into the influence of each parameter on the spectrum. In our case it would be very instructive, for example, to have the two sliders, the dielectric function of doped silicon and the reflectance spectrum all together on the screen.

Automatic fit

After you have found a reasonable agreement of model and measurement in the manual or visual way you can try a completely automatic fit. In a simple case like the present one the optimization routine used by SCOUT should have no problem to achieve the best fit solution in a very short time. Just activate the Start command in the main window of SCOUT to start the automatic parameters adjustment.

Starting with values of 5000 and 500 1/cm for the plasma frequency and the damping constant, respectively, it should be no problem to reach the following agreement in a very short  time:

If you like to pass the results to other programs, you can generate a table in the SCOUT workbook. Right-click the treeview branch Fit parameters and use the local menu command File|Report. The data are written to a workbook sheet and the workbook is opened:

In the workbook you can select the cells that you want to transfer and use the Copy menu command (note that the Windows command Ctrl-C may not work here).

From these numbers you can compute (following the expressions given above) the desired quantities characterizing the semiconductor's charge carriers.

If you want to continue with the next example you should save the SCOUT configuration that you have obtained up to now. We will need it later.

Results

Using the adjusted fit parameter values one gets a carrier concentration of

n = 1.03*1020 cm-3

and for the resistivity

ρ = 0.0017 Ωcm.

The problem

For the production of electronic devices one often needs a certain depth profile of a semiconductor's conductivity. To achieve this one growths epitaxially layers which differ from the substrate by their doping level. The obtained thickness of the so-called 'epilayer' can be checked non-destructively by infared analysis. This is the goal of this example. To make it simple we restrict ourselves to the case of an undoped epilayer on a highly doped substrate. Again, like in the previous section, we neglect any reflection from the wafer backside.

Background

As we have seen in the previous example the doping level of a semiconductor can be determined from an infrared reflectance spectrum. An undoped layer on a highly doped substrate leads to optical contrast in those spectral regions which carry information on the doping, i.e. the low wavenumber range.

At each interface the radiation is partially transmitted and reflected. The superposition of the partial waves reflected at the vacuum-epilayer interface and the epilayer-substrate interface to the total reflected wave leads to destructive and constructive interference: The spectral position of the maxima and mimina depends mainly on the thickness of the epilayer which determines the travelling time of the light waves through the epilayer and hence their phase shift.

If we can match the simulated interference patterns with the measured ones quantitatively we will get a very reliable thickness value from the simulation.

Step 1: Making use of previous work

As you can imagine if you have looked at  the previous example (and you should have done this before processing this one) the present case is an extension of the previous one: We need three materials (vacuum, doped and undoped silicon) instead of two (vacuum and doped silicon) and a layer in between two 'halfspaces' instead of just two adjacent semi-infinite materials.

In such a case it is useful to start with an existing SCOUT configuration and to do only the necessary modifications or extensions. If you saved your result of the previous example to a SCOUT configuration file, you should now load it with the command File|Open in the SCOUT main window.

From now on those steps will not be explained in full detail that have been explained in previous examples already. For example, you should now import a new experimental spectrum which we'll try to analyze in this section. You have already learned how to do that in the previous example. Open the spectrum object where the simulated and the measured reflectance spectra are compared and import (with the Import command) the spectrum stored in the file tu1_e2_exp_data1.spc. Use the file format type 'SpectraCalc' to do this as shown below:

After a successful import the situation is this:

We will now extend the model and try to adjust its parameters to fit the experimental spectrum.

Step 2: Extensions

We will now do the required extensions of the model.

First you should create a new dielectric function model in the list of materials. Name it 'Undoped silicon'. In its susceptibility list, create only one term of type dielectric background and set its real value to 11.7, very much the same way as you have done in the previous example. Since the 'epilayer silicon' is undoped you do not need to define a Drude model. The susceptibility list should look like this:

Set a new global range from 500 to 5000 1/cm with 200 points.

Now you have to modify the layer stack. Up to now we had this:

Select row 2 as indicated. In the dropdown box to the right of the + button, select the new object type 'Simple layer'. Then press the '+' button to create a new layer of type 'Simple layer'. Finally 'drag' the treeview material item 'Undoped silicon' to the new layer. The layer stack should be this now:

These are the required modifications of the model. You can recompute the simulation by the command Update in the main window. The model does not yet fit to the measurement, of course:

In the following the parameters of the model will be adjusted.

Step 3: Parameter adjustment

The model parameters that are unknown and that have to be determined from the spectrum analysis are the Drude parameters of the doped substrate and the epilayer thickness. The plasma frequency and the damping constant are already in the list of fit parameters, the thickness must be added now. Open the fit parameter list, press '+' to add fit parameters and select the thickness in the following dialog:

Now the fit parameter list is this:

To improve the agreement of model and measurement we now have to learn how the parameters must be changed to approach the experimental spectrum. We try the plasma frequency first. Create a slider for this and set the slider range to 0 ... 6000 1/cm. Change the slider position and watch the simulated reflectance spectrum's change. Stop roughly at the following situation:

A plasma frequency of about 2000 leads to a satisfying agreement of the interference envelope:

Now create a 'thickness slider' with a range 0 ... 8 microns and try to find a value with matching interference patterns:

This agreement is already very good! Nevertheless, press Start in the main window to do an automatic parameter optimization. The final picture is similar to the one shown above. The best fit parameters are given in the following SCOUT report (note that you can open the workbook within the main window by right-clicking the Workbook treeview item):

Exercise

As an exercise try to analyze the spectrum tu1_ex2_exp_data2.spc and compare your results with these:

The problem

For the controlled production of thin films it is very important to determine the deposition rate of the used device. The simplest way is to produce a set of films with different deposition times, find out their thickness and determine the slope of the - hopefully linear - thickness vs. time relation. In many cases the thickness of the produced films can be obtained with the help of optical spectroscopy.

Here we show a simple example, namely the determination of the deposition rate for sputtering silver on glass. The thickness is obtained analyzing measured reflectance spectra in the spectral range from 200 to 1100 nm. We will work with fixed optical constants for silver and glass that we take from the database. The only fit parameter will be the silver thickness. After the determination of the thickness for several spectra the sputtering rate can be computed.

Step 1: Importing optical constants from the database

First we will import the required optical constants from the database. The present example is one of the lucky cases where fixed datasets work quite well. In most cases deposited materials cannot be described well by literature data. You have to setup models by yourself which is much harder than a simple import of data found by others before.

Start SCOUT and use the menu command File|New to start with an empty configuration. Press F7 to enter the treeview level. Right-click the treeview item Optical constant database:

In the database grid at the lower right part of the window, move to the entry named 'Ag (Johnson & Christy)'. We will use this dielectric function in our example. To work with it in SCOUT you have to 'drag' the optical constant object to the list of materials in the treeview as indicated below:

Do it once more, this time for the entry named 'Glass (microscope slide), Vis'. This contains a reasonable model for the optical constants of microscope slides. Finally, your material list (open it with a right mouse click in the treeview) should look like this:

Save your configuration with File|SaveAs and proceed to the next step.

Step 2: Definition of the layer stack

Expand the treeview branch Layer stacks by a mouse click on the + to the left of it. Right-click the layer stack 'Standard' and generate to simple layers in between the vacuum halfspaces. Assign the materials by drag&drop as shown in the following example. Finally enter the thickness values 1000 micron for the glass substrate and 0.01 microns for the Ag layer:

We will come back to this window soon. Save your configuration and proceed to the next step.

Step 3: Reflectance spectrum and comparison to measured data

We are now ready to compute the reflectance spectrum of the model and compare it to measured data.

Open the list of spectra by right-clicking the treeview item 'Simulated spectra'. Rename the object 'Spectrum simulation' to 'Reflectance' by overwriting the entry in the name column.

The expand the list of spectra by a mouse click on the + to the left and open the 'Reflectance' object by a right-click. In the reflectance window, set the angle of incidence to 8°. Since the measurements have been done without polarizer you should set the polarization to mixed. In this case, s- and p-polarized spectra are computed and averaged with equal weight on both. Because there is no big difference between the s- and p-polarized cases at low angles of incidence you can just work with s-polarization for a little higher speed in the computation.

Set the Range to 200 ... 1100 nm using 100 data points and Recalc the spectrum. Modify the graphics parameters to achieve the following appearance:

This spectrum looks a little strange, doesn't it? Something seems to be wrong. Import the experimental spectrum first.spc (SpectraCalc format) for comparison. Check carefully that the imported data have the range 200 ... 1100 nm. You should get

Note that the measured spectrum is smooth whereas the simulated one seems to be very noisy. Well, the reason for the 'noise' is the following: The simulated spectrum contains very narrow interference fringes due to partial waves reflected at the top and bottom interface of the glass plate. With only 100 data points between 200 and 1100 nm wavelength you cannot resolve the fringes. Hence you see 'random numbers'.

If you compute with high resolution you can clearly identify the fringes. Select a Range from 600 to 610 nm with 1000 data points, Recalc the spectrum and zoom in:

Nicely regular interference patterns show up.

Why don't we see such patterns in the measured data? There are several reasons for their absence. First, the resolution of the spectrometer may have been too low. In this case we have averaged over several interference fringes and get almost a straight line. In addition, the microscope slide has certainly a thickness variation over the investigated sample spot. This would also suppress interference fringes since you average over slightly different periodicities. The same effect would be caused by a beam divergence of the probing radiation.

To summarize: We have the strong wish to average over interference fringes in the simulation very much the same way the spectrometer does it in reality. It has been shown that there is a simple way to do it: Just switch in the layer stack from the 'coherent' to the 'incoherent' superposition of partial waves. Here is what you have to do. Open the layer stack window and click on the word 'coherent' in the glass layer:

Press the F4 function key (or F5) on your keyboard. Note that the entry has switched to 'incoherent':

Close this window and go back to the reflectance spectrum. An Update shows that the noise is gone and we have hope to get something like the measured spectrum:

We are almost through: Select the silver layer thickness as the only fit parameter in the fit parameter list (you have learned in the previous examples how to do that) and Start immediately the automatic fit. Fitting the thickness in this case is so simple that the automatic fit works quite well:

Note the good agreement (except for a small remaining difference in the UV which is not important for the thickness results). The thickness that I found here is 20 nm.

As the final step you should use the main menu command Actions|Create view of spectra in order to show the reflectance spectrum in the main view.

Sputtering rate

Now our model can be used to analyze many spectra and obtain the film thickness vs. deposition time relation.

In the directory of example 3 of tutorial 1 you find 22 spectra named ag_1.std, ag_2.std, ... that contain the measured reflectance spectra after 1, 2 , 3, ... seconds of sputtering deposition. All files are in standard format. Try to load some of them and get the thickness from the automatic fit. Here are some values that I got:

 Deposition time        [s]                Thickness [nm]

 5                                6.3

 10                                13.0

 15                                20.0

 20                                26.6

I have processed all spectra completely automatic with the SCOUT batch control window and I get the following relation between film thickness and deposition time:

From the slope a sputtering rate of 1.3 nm/s is obtained.

Note that the thickness vs. time relation is not linear for small times (below 5 s). This is due to the fact that silver shows an inhomogeneous island growth in the beginning of the deposition. The model which assumes a homogeneous silver layer fails to reproduce the experimental spectra and the obtained thickness values are wrong. Here you need a suitable effective medium theory which will be the topic of another tutorial.

The task

This example shows how you can control SCOUT as OLE automation server from the outside. Using OLE automation you can save a lot of working steps if you have to process many spectra in always the same way. OLE automation is especially useful in combination with tables which store computed data like fit parameters or certain values of the spectra.

This example shows how you can create automatically a graph showing the angular dependence of the reflectivity of a layer stack. The automation controller is VisualBasic of Excel. A VisualBasic macro fills an Excel table with the spectral values for different angles of incidence and creates a 3D chart of the data.

For simplicity we are using here the same layer stack as in example 3.

The table

The Excel file angles.xls contains a table named 'Data' which collects the computed spectral values. For easy reference in macros the top left cell of this table is called 'top'.

The macros

The Excel file angle.xls contains the tables and macros used in this example. We need two macros: One for starting SCOUT and one doing the computation of the data.

Macro for starting SCOUT:

'              Start SCOUT

' Creates the automation object "Scout" that is used

' in the following

Sub create_server()

  Set scout = CreateObject("scout.scoutole")

  ' This creates the server, i.e. starts SCOUT

  scout.Show

  ' Display the main window such that the user has access to it

End Sub

Macro for computing the data:

Sub compute_data()

Dim angle, wavelength, wavenumber As Single

' Write the data header'

  Range("data!top").Offset(0, 1) = "Angle dependence of computed spectra"

  Range("data!top").Offset(2, 0) = "Index"

  Range("data!top").Offset(2, 1) = "Wavelength"

  Range("data!top").Offset(2, 2) = "Wavenumber"

  'Compute the wavelengths and wavenumbers of the data points (400 ... 900 nm)

  'We need the wavenumber for each wavelength since

  'SCOUT OLE commands need wavenumbers as input

  For i = 0 To 50

     'Loop through 50 data points

     Range("data!top").Offset(3 + i, 0) = i

     'Write the index in the column 0

     wavelength = 400 + i * 10

     'Compute the wavelength from the index

     Range("data!top").Offset(3 + i, 1) = wavelength

     'Write the wavelength in column 1

     Range("data!top").Offset(3 + i, 3) = wavelength

     'Write the wavelength in column 3 also, this will be used for the graph

     wavenumber = 10000000 / wavelength

     'Compute the wavenumber from the wavelength

     Range("data!top").Offset(3 + i, 2) = wavenumber

     'Write the wavenumber in column 2

  Next i

  'The angle range is from 0 to 90° in 3° steps

  For j = 0 To 30

   'Iterate through the angle index

     angle = 3 * j

     'Compute the angle from the index

     Range("data!top").Offset(2, 4 + j) = angle

     'Write the angle for each data column in row 2

     scout.incidence_angle(1) = angle

     'Set the angle of incidence for spectrum 1 in the SCOUT spectrum list

     scout.update_data

     'Compute the spectrum for this angle

     For i = 0 To 50

       'Iterate through the wavelength range

        wavenumber = 10000000 / (400 + i * 10)

        'Compute the wavenumber

        Range("data!top").Offset(3 + i, 4 + j) = scout.simulated_spectrum_value(1, wavenumber)

        'Get the simulated reflectivity for this wavenumber

    Next i

  Next j

End Sub

A sample session

Here is how you can work with the Excel/SCOUT combination:

•Start Excel and load the file angles.xls.

•With Alt-F11 switch to the VisualBasic editor. Run the routine 'Create_server'

•Change to the main window of SCOUT which appears on the screen. With File|Open load the last configuration of example 3 of this tutorial.

•Change back to Excel and start the macro compute_data. This will fill the Excel table with angle-dependent reflectance spectra calculated by SCOUT.

The Excel file contains a page called 'Graph' which shows a 3D view of the computed data:

In Excel, it is quite easy to change the type of graph. You could also display the data in a 2D view: