﻿Dataset accompanying the publication: "Scanning in coherent Fourier scatterometry using Fresnel zone plate projection on a digital micro-mirror device"
Folders/filecontents
Figure_4_stepsize_calculation/
* step_size_calculation.py --> Python file to plot 2D data of the grating scan, calculate perpendicular, plot cross-section and calculate minima.
* data_analysis.py --> Python file to convert raw continuous data file to 2D
* X60_Y60_dx1_dy1_Xc-250_Yc0_Z-4.0_f150mm_DMD100Hz_output.npz --> Raw data from the quad detector (A,B,C,D channels)
* X60_Y60_dx1_dy1_Xc-250_Yc0_Z-4.0_f150mm_DMD100Hz_output_2D_0.png --> 2D .png file from the signal A+D - (B+C)
* X60_Y60_dx1_dy1_Xc-250_Yc0_Z-4.0_f150mm_DMD100Hz_output_2D_1.png --> 2D .png file from the signal A+B - (C+D)
* X60_Y60_dx1_dy1_Xc-250_Yc0_Z-4.0_f150mm_DMD100Hz_output_2D_2.png --> 2D .png file from the signal A+B+C+D
* X60_Y60_dx1_dy1_Xc-250_Yc0_Z-4.0_f150mm_DMD100Hz_output_2D_array.npy --> 2D numpy array
Figure_5_power_variation/
* power_variation.xlsx --> Input laser power measured at the sample plane. x, y refer to FZP center pixel on the DMD.
* intensity_in_imgplane.ipynb --> Python notebook file to plot 2D distribution of measured laser power in the sample plane
Figure_6_algorithm/
* scan_V9.py --> Python files associated with the iterative optimisation algorithm
* lens_generator.py --> Helper file
* data_analysis.py --> Helper file
Figure_7_focus_spot_improvement/
* data/
* xc40_yc0_corrected_cam.npy --> focus spot image after correction stored in .npy format
* xc40_yc0_final_coeffs.npy --> Zernike coefficients after optimisation
* xc40_yc0_passes_summary.npy --> Summary after each step
* xc40_yc0_reference_cam.npy --> focus spot image before correction stored in .npy format
* correction_phase_figure.py
* focus_spot_slice.py
Figure_8_improvement2D
* aberration_correction/
* xc{xc}_yc{xc}_corrected_cam.npy --> focus spot image after correction stored in .npy format
* xc{xc}_yc{xc}_final_coeffs.npy --> Zernike coefficients after optimisation
* xc{xc}_yc{xc}_passes_summary.npy --> Summary after each step
* xc{xc}_yc{xc}_reference_cam.npy --> focus spot image before correction stored in .npy format
* fwhm_peak_values.xlsx
* improved_focusspot_metrics.py
Figure_9_PSL_scan
* PSL_scan.py
* X120_Y120_dx2_dy2_Xc-30_Yc-30_f150mm_DMD100Hz_output_2D_1.png
* X120_Y120_dx2_dy2_Xc-30_Yc-30_f150mm_DMD100Hz_output_2D_2.png
* X120_Y120_dx2_dy2_Xc-30_Yc-30_f150mm_DMD100Hz_output_2D_array.npy
Figure_10_convergence
* data/
* xc100_yc0_corrected_cam.npy --> focus spot image after correction stored in .npy format
* xc100_yc0_final_coeffs.npy --> Zernike coefficients after optimisation
* xc100_yc0_passes_summary.npy --> Summary after each step
* xc100_yc0_reference_cam.npy --> focus spot image before correction stored in .npy format
* convergence.py
* aberration_opt_100_0_convergence.csv
Figure_11_coeffs
* data/
* xc100_yc0_corrected_cam.npy --> focus spot image after correction stored in .npy format
* xc100_yc0_final_coeffs.npy --> Zernike coefficients after optimisation
* xc100_yc0_passes_summary.npy --> Summary after each step
* xc100_yc0_reference_cam.npy --> focus spot image before correction stored in .npy format
* coeffs_plot.py
* aberration_opt_100_0_coeffs_fitting_original.csv
* aberration_opt_100_0_coeffs_fitting_fine.csv
* aberration_opt_100_0_coeffs_fitting_coeffs.csv
Figure_12_2Dcoeffs
* data/
* xc{xc}_yc{xc}_corrected_cam.npy --> focus spot image after correction stored in .npy format
* xc{xc}_yc{xc}_final_coeffs.npy --> Zernike coefficients after optimisation
* xc{xc}_yc{xc}_passes_summary.npy --> Summary after each step
* xc{xc}_yc{xc}_reference_cam.npy --> focus spot image before correction stored in .npy format
* coefficient_distribution_plots.py
Uncertainty_data
* DMD_stability_at_0.npz --> Rawdata recorded using the quad detector at the sample plane
* laser_2min.npz --> Laser intensity measurement