Files
fold_slice/ptycho/diagnosis/multislice_dof_summary.m
T
2026-08-07 15:56:42 +09:00

182 lines
7.5 KiB
Matlab
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
% multislice_dof_summary.m
% summarize depth of focus reported in x-ray multislice ptycho literature
addpath(fullfile(pwd,'utils'))
dof = [];
pixel_size = [];
thickness = [];
dz = [];
Nlayer = [];
label = {};
alpha = 4; % additional scaling coefficient
%% 1.1 Multislice ptychography enables highresolution measurements in extended chemical reactors
% https://doi.org/10.1038/s41598-020-80926-6
energy = 9.1; %kev
det_pixel = 75e-6; %detector pixel size (m)
det_N = 512; % number of pixels in the detector
distance = 4.16; % # sample to detector distance (m)
[dof(1),pixel_size(1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(1) = 100e-6;
dz(1) = 100e-6; % layer distance used in multi-slice reconstruction
Nlayer(1) = 2; % number of layers used in multi-slice reconstruction
label{1} = 'PETRA III-polyimide foil';
%% 1.2 Multislice ptychography enables highresolution measurements in extended chemical reactors
% https://doi.org/10.1038/s41598-020-80926-6
energy = 15.25; %kev
det_pixel = 75e-6; %detector pixel size (m)
det_N = 512; % number of pixels in the detector
distance = 3.435; % # sample to detector distance (m)
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = 650e-6;
dz(end+1) = 650e-6; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 2; % number of layers used in multi-slice reconstruction
label{end+1} = 'PETRA III-chemical reactor';
%% 2. Multi-slice ptychography with large numerical aperture multilayer Laue lenses
% https://doi.org/10.1364/OPTICA.5.000601
energy = 12; %kev
det_pixel = 55e-6; %detector pixel size (m)
det_N = 128; % number of pixels in the detector
distance = 0.5; % # sample to detector distance (m)
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = 10e-6;
dz(end+1) = 10e-6; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 2; % number of layers used in multi-slice reconstruction
label{end+1} = 'BNL';
%% 3.1 X-ray ptychography with extended depth of field - real data
% https://doi.org/10.1364/OE.24.029089
energy = 6.2; %kev
det_pixel = 172e-6; %detector pixel size (m)
det_N = 192; % number of pixels in the detector
distance = 7.2; % # sample to detector distance (m)
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = 200e-6;
dz(end+1) = 200e-6; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 2; % number of layers used in multi-slice reconstruction
label{end+1} = 'PSI';
%% 3.2 X-ray ptychography with extended depth of field - simulation
% https://doi.org/10.1364/OE.24.029089
energy = 6.2; %kev
det_pixel = 172e-6; %detector pixel size (m)
det_N = 512; % number of pixels in the detector
distance = 7.2; % # sample to detector distance (m)
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = [40e-6];
dz(end+1) = [20e-6]; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 3; % number of layers used in multi-slice reconstruction
label{end+1} = 'PSI-sim';
%% 4. High-Resolution Multislice X-Ray Ptychography of Extended Thick Objects
% https://doi.org/10.1103/PhysRevLett.112.053903
energy = 7; %kev
dx = 20e-9;
det_pixel = 75e-6; %detector pixel size (m). Not given in the paper
det_N = 606; % number of pixels in the detector
distance = dx*det_pixel*det_N/(1.23984193e-9/energy); % # sample to detector distance (m)
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = 105e-6;
dz(end+1) = 1e-9; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 1; % number of layers used in multi-slice reconstruction
label{end+1} = 'SPring 8';
%% 5. Resolving 500 nm axial separation by multi-slice X-ray ptychography
% https://doi.org/10.1107/S2053273318017229
energy = 12; %kev
det_pixel = 55e-6; %detector pixel size (m)
det_N = 300; % number of pixels in the detector
distance = 0.35; % # sample to detector distance (m)
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = 500e-9;
dz(end+1:end+1) = 500e-9; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 2; % number of layers used in multi-slice reconstruction
label{end+1} = 'BNL-XRF';
%% 6. 3D x-ray imaging of continuous objects beyond the depth of focus limit - simulation, tomography
% https://doi.org/10.1364/OE.24.029089
energy = 5; %kev
dx = 1e-9;
det_pixel = 75e-6; %detector pixel size (m). Not given in the paper
det_N = 72; % number of pixels in the detector
distance = dx*det_pixel*det_N/(1.23984193e-9/energy); % # sample to detector distance (m)
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = 160e-9;
dz(end+1:end+1) = 1e-9; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 1; % number of layers used in multi-slice reconstruction
label{end+1} = 'sim-tomo';
%% 7. Adorym: A multi-platform generic x-ray image reconstruction framework based on automatic differentiation
%%%%%%% I'm not sure if they really used multi-slice...
%{
% https://arxiv.org/abs/2012.12686
energy = 5.5; %kev
det_pixel = 172e-6; %detector pixel size (m). Not given in the paper
det_N = 64; % number of pixels in the detector
distance = 2; % # sample to detector distance (m)
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = 8e-6;
dz(end+1:end+1) = 1e-9; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 1; % number of layers used in multi-slice reconstruction
label{end+1} = 'APS-bnp-algae???';
%}
%% LCO
%
energy = 9.3; %kev
det_pixel = 75e-6; %detector pixel size (m)
det_N = 64; % number of pixels in the detector
distance = 1.92; % # sample to detector distance (m)
alpha = 4; % additional scaling coefficient
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = 25e-6;
dz(end+1) = 8e-6; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 5; % number of layers used in multi-slice reconstruction
label{end+1} = 'APS-velo-LCO';
%% IC Pillar
%
energy = 8.8; %kev
det_pixel = 75e-6; %detector pixel size (m)
det_N = 64; % number of pixels in the detector
distance = 1.92; % # sample to detector distance (m)
alpha = 4; % additional scaling coefficient
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = 20e-6;
dz(end+1) = 8e-6; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 5; % number of layers used in multi-slice reconstruction
label{end+1} = 'APS-velo-IC-pillar';
%% CIGS
%
energy = 9.3; %kev
det_pixel = 75e-6; %detector pixel size (m)
det_N = 64; % number of pixels in the detector
distance = 1.92; % # sample to detector distance (m)
alpha = 4; % additional scaling coefficient
[dof(end+1),pixel_size(end+1)] = DOF_calculator(energy, det_pixel, det_N, distance, alpha);
thickness(end+1) = 30e-6;
dz(end+1) = 8e-6; % layer distance used in multi-slice reconstruction
Nlayer(end+1) = 5; % number of layers used in multi-slice reconstruction
label{end+1} = 'APS-velo-CIGS';
%%
close all
figure1 = figure;
% Create axes
axes1 = axes('Parent',figure1);
hold(axes1,'on');
for i=1:length(thickness)
plot(i,thickness(i)./dof(i),'.','MarkerSize',15, 'DisplayName',label{i})
end
%hold on
line([1 length(dof)],[1 1],'LineWidth',1,'LineStyle','--','Color','r', 'DisplayName', 'DOF')
legend
set(axes1,'YMinorTick','on','YScale','log');