All posts by Wolfgang

New OLE commands exporting spectra

The new OLE command export_spectra_via_variants has been introduced in both SCOUT and CODE (object generation 5.14). The command takes 5 parameters:

  • input: the index of the spectrum object in the list of spectra (counting 1, 2, 3, …)
  • output: a variant array holding the spectral positions (e.g. wavelengths)
  • output: a variant array with simulated spectral values
  • output: a variant array with measured spectral values at the same spectral positions as the simulated values, obtained by linear interpolation between the closest available points
  • output: a string with the spectral unit

 

Fit parameter sets embedded in configuration file

Starting with object generation 5.12, you can store fit parameter sets in a list called ‘Fit parameter pool’.  This list is stored as part of the SCOUT or CODE configuration file. Using fit parameter sets from the pool avoids the necessity to load them from separate files.

Instead of specifying a filename for the fit parameter set (which is still possible) you can use phrases like ‘pool(step 1)’ or ‘pool(oscillator strengths only)’ to load fit parameter sets with names ‘step 1’ or ‘oscillator strengths only’.

Using file based fit parameter sets is possible after all, of course.

Polarizer for R and T measurements

We have added a polarizer to our desktop R and T measurement system. The same polarizer can be used for all systems recording R and T for shiny, non-scattering samples.

The desktop system records the 100% signal when detector and light source are positioned directly opposite to each other:

After this measurement you can do absolute reflectance measurements at arbitrary angles of incidence. We have generated tools to conveniently set fixed angles of incidence – here we have used 45° and 60°.

The graph below shows 4 absolute spectra of a silicon wafer (45°, 60°, s- and p-polarization). We could achieve almost perfect match of simulated spectra based on literature data of the optical constants, fitting a thickness of 6.2 nm of the native SiO2 layer on the wafer. Data acquisition for each spectrum took less than 1 second (averaging 18 spectra using an integration time of 50 ms).

Angle of incidence distribution

Spectroscopic experiments can never realize single angle of incidence but have to work with a (continuous) distribution of angles. Although in most cases the assumption of a single angle of incidence is a very good approximation there are cases where we need to take into account more details in producing simulated spectra. One example is taking reflectance spectra of small spots with a microscope objective, using a large cone of incident radiation.

For a long time our software packages can compute spectra averaged for a set of incidence angles, each one defined by the value of the angle and a weight. We have now implemented new features to simplify work in this field.

If you have prepared a list of angles of incidence you can now connect these angles to the angle of incidence that you have defined for spectrum object which owns the list of angles. You can check the option as shown here:

If you have activated this option you can use a set of angles with positive and negative values (centered around 0) as shown here:

If the angle of the parent object is 50° the computation of the spectrum is done for the 3 angles 45°, 50° and 55°, with weights 0.3, 0.4 and 0.3, respectively. If you have declared the angle of the parent object to be a fit parameter the set of 3 angles is moved automatically when the value of the center angle changes during the fit. This helps to adjust the distribution of angles to match the experimental settings.

Finally, there is a new fit parameter called ‘Scaling factor of angle range’. This number scales the distance of the individual angles to the center angle: If the factor is 1.0 the original angles are used. If the factor is 0.1, for example, a value of 5° becomes 0.5°. Varying the factor between 0.1 and 2 in the example shown above, you can compute spectra for a distributions between -0.5° … 0.5° to -10° … 10°.

We hope that this new flexibility helps to achieve better fitting results for spectra measured with microscopes or other systems with spectra features depending critically on the angle of incidence.

New spectrum type

Starting with object generation 5.11 we have introduced a new spectrum type called ‘Rp/Rs’. If you select this option the spectrum object computes the ratio of the intensity reflectance for p-polarized light and s-polarized light. This ratio can be directly fitted to experimental data if your measurement system produces this quantity as final result.

Optoplex NGQ import more flexible

Zeiss Optoplex NGQ files may have a row with explicit wavelength values – or not.

If wavelength information is present there is an empty line before and after the row with wavelength values. We rely on the assumption that the generated wavelength values are equidistant.

In the case of missing wavelength information we count the number of spectral points. It is assumed that the first one belongs to a wavelength of 380 nm, and that the difference between neighbored points is always 5 nm.

Our software can now import NGQ files  both with and without wavelength row.

Bugfix for corrupted configuration files

Having investigated a case where CODE stopped working after importing an older method, we found that a data field contained numbers marked as NAN (= not a number). Up to now we don’t know how this situation can arise – probably it was caused by a failing import of measured data.

The following mechanisms have been implemented to make the software survive this situation (active starting with object generation 5.09):

  • Directly after loading numbers marked as NAN are replaced by zeroes. This check is done for configurations stored with generations lower than 5.09.
  • Starting with object generation 5.09, numbers of data fields are checked for NAN status (and replaced by zeroes if necessary) before they are saved in a configuration file.
  • After each import of measured data the relevant data field is checked for NAN status and eventually corrected.