NXellipsometry¶
Status:
application definition, extends NXobject
Description:
Ellipsometry, complex systems, up to variable angle spectroscopy.
Information on ellipsometry is provided, e.g. in:
H. Fujiwara, Spectroscopic ellipsometry: principles and applications, John Wiley & Sons, 2007.
R. M. A. Azzam and N. M. Bashara, Ellipsometry and Polarized Light, North-Holland Publishing Company, 1977.
H. G. Tompkins and E. A. Irene, Handbook of Ellipsometry, William Andrew, 2005.
Open access sources:
Review articles:
T. E. Jenkins, “Multiple-angle-of-incidence ellipsometry”, J. Phys. D: Appl. Phys. 32, R45 (1999), https://doi.org/10.1088/0022-3727/32/9/201
D. E. Aspnes, “Spectroscopic ellipsometry - Past, present, and future”, Thin Solid Films 571, 334-344 (2014), https://doi.org/10.1016/j.tsf.2014.03.056
R. M. A. Azzam, “Mueller-matrix ellipsometry: a review”, Proc. SPIE 3121, Polarization: Measurement, Analysis, and Remote Sensing, (3 October 1997), https://doi.org/10.1117/12.283870
E. A. Irene, “Applications of spectroscopic ellipsometry to microelectronics”, Thin Solid Films 233, 96-111 (1993), https://doi.org/10.1016/0040-6090(93)90069-2
S. Zollner et al., “Spectroscopic ellipsometry from 10 to 700 K”, Adv. Opt. Techn., (2022), https://doi.org/10.1515/aot-2022-0016
Symbols:
Variables used throughout the document, e.g. dimensions and important parameters
N_wavelength: Size of the energy or wavelength vector used, the length of NXinstrument/spectrometer/wavelength array
N_variables: How many variables are saved in a measurement. e.g. 2 for Psi and Delta, 16 for Mueller matrix elements, 15 for normalized Mueller matrix, 3 for NCS, the length of NXsample/column_names
N_angles: Number of incident angles used, the length of NXinstrument/angle_of_incidence array
N_p1: Number of sample parameters scanned, if you varied any of the parameters such as temperature, pressure, or pH, the maximal length of the arrays specified by NXsample/environment_conditions/SENSOR/value if it exists.
N_time: Number of time points measured, the length of NXsample/time_points
- Groups cited:
NXaperture, NXdata, NXdetector, NXentry, NXenvironment, NXgrating, NXinstrument, NXmonochromator, NXprocess, NXsample, NXsensor, NXslit, NXsource, NXsubentry, NXtransformations, NXuser
Structure:
ENTRY: (required) NXentry
This is the application definition describing ellipsometry experiments.
Such experiments may be as simple as identifying how a reflected beam of light with a single wavelength changes its polarization state, to a variable angle spectroscopic ellipsometry experiment.
The application definition defines:
elements of the experimental instrument
calibration information if available
parameters used to tune the state of the sample
sample description
definition: (required) NX_CHAR
An application definition for ellipsometry.
Obligatory value:
NXellipsometry
@version: (required) NX_CHAR
Version number to identify which definition of this application definition was used for this entry/data.
@url: (required) NX_CHAR
URL where to find further material (documentation, examples) relevant to the application definition
experiment_identifier: (required) NX_CHAR
Unique identifier of the experiment, such as a (globally persistent) unique identifier. i) The identifier is usually defined by the facility or principle investigator. ii) The identifier enables to link experiments to e.g. proposals.
experiment_description: (recommended) NX_CHAR
A free-text description of the experiment. What is the aim of the experiment? The general procedure.
start_time: (required) NX_DATE_TIME
Start time of the experiment. UTC offset should be specified.
acquisition_program: (optional) NXprocess
@url: (required) NX_CHAR
Website of the software.
program: (required) NX_CHAR
Commercial or otherwise defined given name to the program that was used to generate the result file(s) with measured data and metadata. This program converts the measured signals to ellipsometry data. If home written, one can provide the actual steps in the NOTE subfield here.
version: (required) NX_CHAR
Either version with build number, commit hash, or description of a (online) repository where the source code of the program and build instructions can be found so that the program can be configured in such a way that result files can be created ideally in a deterministic manner.
USER: (required) NXuser
Contact information of at least the user of the instrument or the investigator who performed this experiment. Adding multiple users if relevant is recommended.
name: (required) NX_CHAR
Name of the user.
affiliation: (required) NX_CHAR
Name of the affiliation of the user at the point in time when the experiment was performed.
address: (required) NX_CHAR
Full address (street, street number, ZIP, city, country) of the user’s affiliation.
email: (required) NX_CHAR
Email address of the user.
orcid: (recommended) NX_CHAR
Author ID defined by https://orcid.org/.
telephone_number: (recommended) NX_CHAR
Official telephone number of the user.
INSTRUMENT: (required) NXinstrument
General properties of the ellipsometry equipment
model: (required) NX_CHAR
The name of the instrument
@version: (required) NX_CHAR
The used version of the hardware if available. If not a commercial instrument use date of completion of the hardware.
company: (optional) NX_CHAR
Name of the company which build the instrument
construction_year: (optional) NX_DATE_TIME
ISO8601 date when the instrument was constructed. UTC offset should be specified.
firmware: (required) NX_CHAR
focussing_probes: (required) NX_BOOLEAN
Were focussing probes (lenses) used?
data_correction: (optional) NX_BOOLEAN
Were the recorded data corrected by the window effects of the lenses?
angular_spread: (optional) NX_NUMBER {units=NX_ANGLE}
Specify the angular spread caused by the focussing probes
ellipsometry_type: (required) NX_CHAR
What type of ellipsometry was used? See Fujiwara Table 4.2
Any of these values:
rotating analyzer
rotating analyzer with analyzer compensator
rotating analyzer with polarizer compensator
rotating polarizer
rotating compensator on polarizer side
rotating compensator on analyzer side
modulator on polarizer side
modulator on analyzer side
dual compensator
phase modulation
imaging ellipsometry
null ellipsometry
calibration_status: (required) NX_CHAR
Was a calibration performed? If yes, when was it done? If the calibration time is provided, it should be specified in calibration/calibration_time.
Any of these values:
calibration time provided
no calibration
within 1 hour
within 1 day
within 1 week
angle_of_incidence: (required) NX_NUMBER (Rank: 1, Dimensions: [N_angles]) {units=NX_ANGLE}
Incident angle of the beam vs. the normal of the bottom reflective (substrate) surface in the sample
light_source: (required) NXsource
Specify the used light source. Multiple selection possible.
calibration: (recommended) NXsubentry
Ellipsometers require regular calibration to adjust the hardware parameters for proper zero values and background light compensation.
calibration_time: (optional) NX_DATE_TIME
If calibtration status is ‘calibration time provided’, specify the ISO8601 date when calibration was last performed before this measurement. UTC offset should be specified.
calibration_sample: (required) NX_CHAR
Free-text to describe which sample was used for calibration, e.g. silicon wafer with 25 nm thermal oxide layer.
calibration_data: (required) NXsubentry
Arrays which provide the measured calibration data. Multiple sets are possible, e.g. Psi and delta measured on a e.g. silicon calibration wafer, and the straight-through data. We recommend to provide data that is measured under the same settings as the measurement was performed, that is if Psi and Delta are measured for your data, also provide Psi and Delta here and use the same wavelenghts as for the measured data.
calibration_data_type: (required) NX_CHAR
What data were recorded for the calibration? The number of variables (N_variables) have to be set to the number of provided data columns accordingly, e.g. psi/delta -> N_variables = 2, Jones vector -> N_variables = 4, Mueller martix -> N_variables = 16, etc.
Any of these values:
psi/delta
tan(psi)/cos(delta)
Jones matrix
Mueller matrix
not provided
calibration_angle_of_incidence: (required) NX_NUMBER (Rank: 1, Dimensions: [N_calibration_angles]) {units=NX_ANGLE}
Angle(s) of incidence used during the calibration measurement (excluding straight through mode)
calibration_wavelength: (required) NX_NUMBER (Rank: 1, Dimensions: [N_calibration_wavelength])
The wavelength or equivalent values (which are inter-convertible). The importer should convert all to one unit, and make the others accessible. Historically, energy is used in eV, but for visible spectroscopy wavelength is more common, for IR wave numbers in 1/cm units.
Possibly use the same type of data as for the measurement.
calibration_data: (required) NX_NUMBER (Rank: 3, Dimensions: [N_calibration_angles+1, N_variables, N_calibration_wavelength]) {units=NX_UNITLESS}
Calibration is performed on a reference surface (usually a silicon wafer with a well defined oxide layer) at a number of angles of incidence and in a straight through mode (transmission in air).
stage: (required) NXsubentry
Sample stage, holding the sample at a specific position in X,Y,Z (Cartesian) coordinate system and at an orientation defined by three Euler angles (alpha, beta, gamma). The stage may be motorized or manual, special for liquids or gas environment.
stage_type: (required) NX_CHAR
Specify what type of stage was used.
Any of these values:
manual stage
scanning stage
liquid stage
gas cell
cryostat
description: (recommended) NX_CHAR
A free-text field to provide information about the stage.
TRANSFORMATIONS: (recommended) NXtransformations
The stage coordinate system vs. the incident beam. The Z-axis of the stage is considered to point along the normal of the substrate (bottom reflecting surface) from the stage towards the general direction of the light source. The beam comes with the angle of incidence towards this Z-axis, but in opposite direction, thus they are connected with a rotation of 180 - angle of incidence (in degrees). This transformation brings us from the NEXUS coordinates to the stage coordinates. Then provide the set of translations (if there are any). These all have a vector defining their relative direction in the current coordinate system. (This current coordinate system changes with every transformation if you set the parameter ‘depends’ to the name of the previous step.) Last, provide the rotations of the sample
alternative: (optional) NX_CHAR
If there is no motorized stage, we should at least qualify where the beam hits the sample and in what direction the sample stands in a free-text description, e.g. ‘center of sample, long edge parallel to plane of incidence’.
window: (optional) NXaperture
For environmental measurements, the environment (liquid, vapor, vacuum etc.) is enclosed in a cell or cryostat, which has windows both in the direction of the source and the detector (looking from the sample). These windows also add a phase shift to the light altering the measured signal. This shift has to be corrected based on measuring a known sample in the environmental cell.
material: (required) NX_CHAR
The material of the window
Any of these values:
quartz
diamond
calcium fluoride
zinc selenide
thallium bromoiodide
alkali halide compound
Mylar
other
other_material: (optional) NX_CHAR
If you specified ‘other’ as window material, decsribe here what it is.
thickness: (required) NX_NUMBER {units=NX_LENGTH}
Thickness of the window
orientation_angle: (required) NX_NUMBER {units=NX_ANGLE}
Angle of the window normal (outer) vs. the substrate normal (similar to the angle of incidence).
reference_data: (required) NXsubentry
Recorded data that can be used to calculate the window effect. Typically this is the substrate (e.g. silicon with thermal oxide layer) in air without window and in a known medium with the window.
reference_sample: (required) NX_CHAR
What sample was used to estimate the window effect?
reference_wavelength: (required) NX_NUMBER (Rank: 1, Dimensions: [N_wavelength]) {units=NX_LENGTH}
Wavelength of the reference data. Use the same wavelengths at which all other measurements are recorded
data: (recommended) NX_NUMBER (Rank: 4, Dimensions: [2, N_angles, N_variables, N_wavelength]) {units=NX_UNITLESS}
Recorded data of a reference surface with and without window/medium.
DETECTOR: (required) NXdetector
Which type of detector was used, and what is known about it? A detector can be a photomultiplier (PMT), a CCD in a camera, or an array in a spectrometer. If so, the whole detector unit goes in here. Integration time is the count time field, or the real time field. See their definition.
detector_type: (required) NX_CHAR
What kind of detector module is used, e.g. CCD-spectrometer, CCD camera, PMT, photodiode, etc.
Any of these values:
PMT
photodiode
avalanche diode
CCD camera
CCD spectrometer
other
other_detector: (optional) NX_CHAR
If you specified ‘other’ as detector type, please write down what it is.
revolution: (optional) NX_NUMBER {units=NX_ANY}
Define how many rotations of the rotating element were taken into account per spectrum.
rotating_element: (required) NX_CHAR
Define which element rotates, e.g. polarizer or analyzer.
Any of these values:
polarizer (source side)
analyzer (detector side)
compensator (source side)
compensator (detector side)
fixed_revolution: (optional) NX_NUMBER {units=NX_FREQUENCY}
Rotation rate, if the revolution does not change during the measurement.
variable_revolution: (optional) NX_NUMBER (Rank: 1, Dimensions: [2])
Specify maximum and minimum values for the revolution.
intensity_threshold: (optional) NX_NUMBER {units=NX_UNITLESS}
Minimum signal for which dynamic averaging is performed.
min_intensity: (optional) NX_NUMBER {units=NX_UNITLESS}
Value for the minimum intensity chosen. Data points below this value might be skipped by the instrument
spectrometer: (required) NXmonochromator
The spectroscope element of the ellipsometer before the detector, but often integrated to form one closed unit. Information on the dispersive element can be specified in the subfield GRATING. Note that different gratings might be used for different wavelength ranges. The dispersion of the grating for each wavelength range can be stored in grating_dispersion.
wavelength: (required) NX_NUMBER (Rank: 1, Dimensions: [N_wavelength]) {units=NX_LENGTH}
Wavelength value(s) used for the measurement. An array of 1 or more elements. Length defines N_wavelength
spectral_resolution: (optional) NX_NUMBER {units=NX_WAVENUMBER}
Spectral resolution of the instrument.
GRATING: (optional) NXgrating
Diffraction grating, as could be used in a monochromator. If two or more gratings were used, define the angular dispersion and the wavelength range (min/max wavelength) for each grating and make sure that the wavelength ranges do not overlap. The dispersion should be defined for the entire wavelength range of the experiment.
angular_dispersion: (optional) NX_NUMBER
Dispersion of the grating in nm/mm used.
grating_wavelength_min: (optional) NX_NUMBER {units=NX_LENGTH}
Minimum wavelength of the grating.
grating_wavelength_max: (optional) NX_NUMBER {units=NX_LENGTH}
Maximum wavelength of the grating.
SLIT: (optional) NXslit
Define the width of the monochromator slit in the subfield x_gap.
fixed_slit: (optional) NX_BOOLEAN
Was the slit width fixed?
max_gap: (optional) NX_NUMBER {units=NX_LENGTH}
If slit width was not fixed, define the maximum slit width.
SAMPLE: (required) NXsample
Properties of the sample, its history, the sample environment and experimental conditions (e.g. surrounding medium, temperature, pressure etc.), along with the data (data type, wavelength array, measured data).
atom_types: (required) NX_CHAR
List of comma-separated elements from the periodic table that are contained in the sample. If the sample substance has multiple components, all elements from each component must be included in atom_types.
sample_name: (required) NX_CHAR
Descriptive name of the sample
sample_history: (required) NX_CHAR
Ideally, a reference to the location or a unique (globally persistent) identifier (e.g.) of e.g. another file which gives as many as possible details of the material, its microstructure, and its thermo-chemo-mechanical processing/preparation history. In the case that such a detailed history of the sample is not available, use this field as a free-text description to specify details of the sample and its preparation.
preparation_date: (recommended) NX_DATE_TIME
ISO8601 date with time zone (UTC offset) specified.
layer_structure: (required) NX_CHAR
Qualitative description of the layer structure for the sample. For example: Si/native oxide/thermal oxide/polymer/peptide
data_identifier: (required) NX_NUMBER
An identifier to correlate data to the experimental conditions, if several were used in this measurement; typically an index of 0 - N
data_type: (required) NX_CHAR
Select which type of data was recorded, for example Psi and Delta (see: https://en.wikipedia.org/wiki/Ellipsometry#Data_acquisition). It is possible to have multiple selections. Data types may also be converted to each other, e.g. a Mueller matrix contains N,C,S data as well. This selection defines how many columns (N_variables) are stored in the data array.
Any of these values:
psi/delta
tan(psi)/cos(delta)
Mueller matrix
Jones matrix
N/C/S
raw data
column_names: (required) NX_CHAR (Rank: 1, Dimensions: [N_variables])
Please list in this array the column names used in your actual data. That is [‘psi’, ‘delta’] or [‘MM1’, ‘MM2’, ‘MM3’, …, ‘MM16] for a full Mueller matrix, etc.
measured_data: (required) NX_NUMBER (Rank: 5, Dimensions: [N_time, N_p1, N_angles, N_variables, N_wavelength])
Resulting data from the measurement, described by data type. Minimum two columns containing Psi and Delta, or for the normalized Mueller matrix it may be 16 (or 15 if the element (1,1) is all 1).
data_error: (recommended) NX_NUMBER (Rank: 5, Dimensions: [N_time, N_p1, N_angles, N_variables, N_wavelength])
Specified uncertainties (errors) of the data described by data type. The structure is the same as for the measured data.
time_points: (optional) NX_NUMBER (Rank: 1, Dimensions: [N_time]) {units=NX_TIME}
An array of relative time points if a time series was recorded.
environment_conditions: (required) NXenvironment
Specify external parameters that have influenced the sample.
medium: (required) NX_CHAR
Describe what was the medium above or around the sample. The common model is built up from the substrate to the medium on the other side. Both boundaries are assumed infinite in the model. Here, define the name of the medium (e.g. water, air, UHV, etc.).
medium_refractive_indices: (optional) NX_NUMBER (Rank: 1, Dimensions: [N_wavelength]) {units=NX_UNITLESS}
Array of pairs of complex refractive indices of the medium for every measured wavelength. Only necessary if the measurement was performed not in air, or something very well known, e.g. high purity water. Specify the complex refractive index: n + ik
number_of_runs: (optional) NX_UINT {units=NX_DIMENSIONLESS}
How many measurements were done varying the parameters? This forms an extra dimension beyond incident angle, time points and energy/wavelength (this is the length of the 4th dimension of the data). Defaults to 1.
varied_parameters: (optional) NX_CHAR
Indicates which parameter was changed. Its definition must exist below. The specified variable has to be number_of_runs long, providing the parameters for each data set. If you vary more than one parameter simultaneously use one signal instance for each. Record every parameter value in a linear manner, so N_p1 is the number of measurements taken. For example, if you measure at two temperatures and three pressures the temperature signal value looks like [T1, T1, T1, T2, T2, T2] and the pressure signal value looks like [p1, p2, p3, p1, p2, p3], and N_p1 = 6.
Any of these values:
optical excitation
voltage
temperature
pH
stress
stage positions
optical_excitation: (optional) NXsource
Was the sample modified using an optical source? Describe in this group the parameters of the optical excitation used.
wavelength: (required) NX_NUMBER {units=NX_LENGTH}
Wavelength value(s) or the range used for excitation. In cases of continuous laser radiation, a value or a set of values may do but for other illumination types, such as pulsed lasers, or lamps, a range may describe the source better.
broadening: (optional) NX_NUMBER {units=NX_LENGTH}
Specify the FWHM of the excitation
duration: (optional) NX_NUMBER {units=NX_TIME}
How long was the sample excited.
pulse_energy: (optional) NX_NUMBER {units=NX_ENERGY}
The integrated energy of light pulse.
SENSOR: (optional) NXsensor
A sensor used to monitor an external condition. The value field contains the measured values. If it is constant within an error for every run then use only an array of length one.
derived_parameters: (optional) NXprocess
What parameters are derived from the above data.
depolarization: (optional) NX_NUMBER {units=NX_UNITLESS}
Light loss due to depolarization as a value in [0-1].
plot: (optional) NXdata
A default view of the data, in this case Psi vs. wavelength and the angles of incidence. If Psi does not exist, use other Mueller matrix elements, such as N, C and S.
@axes: (required) NX_CHAR
We recommend to use wavelength as a default attribute, but it can be replaced in the case of not full spectral ellipsometry to any suitable parameter along the X-axis.
Hypertext Anchors¶
List of hypertext anchors for all groups, fields, attributes, and links defined in this class.
/NXellipsometry/ENTRY/derived_parameters/depolarization-field
/NXellipsometry/ENTRY/INSTRUMENT/calibration/calibration_data-group
/NXellipsometry/ENTRY/INSTRUMENT/calibration/calibration_data/calibration_angle_of_incidence-field
/NXellipsometry/ENTRY/INSTRUMENT/calibration/calibration_data/calibration_data-field
/NXellipsometry/ENTRY/INSTRUMENT/calibration/calibration_data/calibration_data_type-field
/NXellipsometry/ENTRY/INSTRUMENT/calibration/calibration_data/calibration_wavelength-field
/NXellipsometry/ENTRY/INSTRUMENT/calibration/calibration_sample-field
/NXellipsometry/ENTRY/INSTRUMENT/calibration/calibration_time-field
/NXellipsometry/ENTRY/INSTRUMENT/DETECTOR/detector_type-field
/NXellipsometry/ENTRY/INSTRUMENT/DETECTOR/fixed_revolution-field
/NXellipsometry/ENTRY/INSTRUMENT/DETECTOR/intensity_threshold-field
/NXellipsometry/ENTRY/INSTRUMENT/DETECTOR/min_intensity-field
/NXellipsometry/ENTRY/INSTRUMENT/DETECTOR/other_detector-field
/NXellipsometry/ENTRY/INSTRUMENT/DETECTOR/rotating_element-field
/NXellipsometry/ENTRY/INSTRUMENT/DETECTOR/variable_revolution-field
/NXellipsometry/ENTRY/INSTRUMENT/spectrometer/GRATING/angular_dispersion-field
/NXellipsometry/ENTRY/INSTRUMENT/spectrometer/GRATING/grating_wavelength_max-field
/NXellipsometry/ENTRY/INSTRUMENT/spectrometer/GRATING/grating_wavelength_min-field
/NXellipsometry/ENTRY/INSTRUMENT/spectrometer/SLIT/fixed_slit-field
/NXellipsometry/ENTRY/INSTRUMENT/spectrometer/SLIT/max_gap-field
/NXellipsometry/ENTRY/INSTRUMENT/spectrometer/spectral_resolution-field
/NXellipsometry/ENTRY/INSTRUMENT/spectrometer/wavelength-field
/NXellipsometry/ENTRY/INSTRUMENT/stage/TRANSFORMATIONS-group
/NXellipsometry/ENTRY/INSTRUMENT/stage/TRANSFORMATIONS/alternative-field
/NXellipsometry/ENTRY/INSTRUMENT/window/orientation_angle-field
/NXellipsometry/ENTRY/INSTRUMENT/window/other_material-field
/NXellipsometry/ENTRY/INSTRUMENT/window/reference_data-group
/NXellipsometry/ENTRY/INSTRUMENT/window/reference_data/data-field
/NXellipsometry/ENTRY/INSTRUMENT/window/reference_data/reference_sample-field
/NXellipsometry/ENTRY/INSTRUMENT/window/reference_data/reference_wavelength-field
/NXellipsometry/ENTRY/SAMPLE/environment_conditions/medium-field
/NXellipsometry/ENTRY/SAMPLE/environment_conditions/medium_refractive_indices-field
/NXellipsometry/ENTRY/SAMPLE/environment_conditions/number_of_runs-field
/NXellipsometry/ENTRY/SAMPLE/environment_conditions/optical_excitation-group
/NXellipsometry/ENTRY/SAMPLE/environment_conditions/optical_excitation/broadening-field
/NXellipsometry/ENTRY/SAMPLE/environment_conditions/optical_excitation/duration-field
/NXellipsometry/ENTRY/SAMPLE/environment_conditions/optical_excitation/pulse_energy-field
/NXellipsometry/ENTRY/SAMPLE/environment_conditions/optical_excitation/wavelength-field
/NXellipsometry/ENTRY/SAMPLE/environment_conditions/SENSOR-group
/NXellipsometry/ENTRY/SAMPLE/environment_conditions/varied_parameters-field