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.
The dialog that sets the parameters for ‘rating’ has been updated in object generation 5.12.
‘Rating’ is the transformation of the fit deviation (a floating point number) to a text-based category like ‘Good’, ‘Bad’ or ‘Perfect’.
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).
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.
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.
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.
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.
When you load a new configuration, SCOUT adjusts its main window dimensions (position and size) according to the values stored when the configuration was saved.
On the other hand, position and size of the main window of CODE are not changed when you load a new configuration.
Starting with object generation 5.08 you can now have both behaviors in both applications. You can use the menu command ‘File/Options/Appearance/Ignore main window settings after import of configuration file’ to change the behavior – it works like a checkbox. The state of the checkbox is saved to the file ‘additional_default_settings.ini’ in the user’s application folder when you close the application. The file is read when the application starts and the behavior us adjusted according to the settings found in the file.
The BREIN cleaner tool now compresses complete product folders of the BREIN archive. This is done on demand, like it is possible for user-selected day or month folders.
The current day folder is compressed automatically as long as the cleaner tool is active.
Starting with object generation 5.05 the list of spectra offers a new object type called ‘Function fit’. It allows the user to define a function which may contain terms that retrieve optical functions, fit parameters and integral quantities (the latter in CODE only, but not in SCOUT). The function value is computed based on the current model and compared to a user-defined target value, or an interval of allowed target values. The fit deviation of the object is the absolute difference between current value and target value (or closest limit of the target range), taken to a user-defined power. If the function value stays within the target interval the deviation is zero.
Objects of this type can be used to impose restrictions to the model. If, for example, an optical function returns the real part n of the refractive index at a certain wavelength, you can define a target interval for n and generate a large deviation outside the target interval. This forces the fit to look for solutions that are compatible with the given range of refractive index values.