Skip to content
Snippets Groups Projects
Commit e920d9fc authored by preischig's avatar preischig
Browse files

gtGeoLabDefaultParameters: added detrefpos Y,Z computation here, instead of...

gtGeoLabDefaultParameters: added detrefpos Y,Z computation here, instead of being at the spot matching stage; changed order of code.

Signed-off-by: default avatarpreischig <preischig@gmail.com>
parent 7da89c77
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,29 @@ function par_labgeo = gtGeoLabDefaultParameters(acq)
par_labgeo = [];
% Pixel and detector size
par_labgeo.pixelsizeu = acq.pixelsize;
par_labgeo.pixelsizev = acq.pixelsize;
par_labgeo.detsizeu = acq.xdet; % number of pixels along the u direction
par_labgeo.detsizev = acq.ydet; % number of pixels along the v direction
% Beam direction, rot. axis position and detector properties
par_labgeo.beamdir = [1 0 0];
par_labgeo.rotpos = [0 0 0];
par_labgeo.detrefu = (par_labgeo.detsizeu/2) + 0.5;
par_labgeo.detrefv = (par_labgeo.detsizev/2) + 0.5;
% Coordinate axes definition and Lab unit (for records only)
par_labgeo.deflabX = 'Along the beam direction.';
par_labgeo.deflabY = 'Right-handed from Y=cross(Z,X).';
par_labgeo.deflabZ = 'Along rotation axis. Positive away from sample stage.';
par_labgeo.labunit = 'mm';
% Detector angular coverage limits (2theta) for entire sample volume
par_labgeo.detanglemin = 0;
par_labgeo.detanglemax = 45;
% Rotation axis direction
switch (acq.rotation_name)
case 'pmo'
par_labgeo.rotdir = [0 0 -1];
......@@ -48,6 +71,7 @@ if (acq.no_direct_beam && strcmp(acq.detector_definition, 'vertical'))
par_labgeo.samenvtop = [];
par_labgeo.samenvbot = [];
par_labgeo.samenvrad = [];
elseif (~acq.no_direct_beam)
% inline detector HR camera - suppose it on x-axis
disp('High resolution direct beam scan...')
......@@ -64,11 +88,13 @@ elseif (~acq.no_direct_beam)
% exists, otherwise in gtPreprocessing
if (isfield(acq, 'bb') && ~isempty(acq.bb))
par_labgeo = gtGeoSamEnvFromAcq(par_labgeo, acq);
par_labgeo.detrefpos(2:3) = sfDetrefpos(acq.bb, par_labgeo);
else
par_labgeo.samenvtop = [];
par_labgeo.samenvbot = [];
par_labgeo.samenvrad = [];
end
end
elseif (acq.no_direct_beam && strcmp(acq.detector_definition, 'inline'))
% inline detector - suppose it on x-axis
% taper scan (far field)
......@@ -83,36 +109,31 @@ elseif (acq.no_direct_beam && strcmp(acq.detector_definition, 'inline'))
% guess a sample bounding box
acq.bb = [acq.xdet/2-50 acq.ydet/2-50 100 100];
end
if (isfield(acq,'bb') && ~isempty(acq.bb))
par_labgeo.detrefpos(2:3) = sfDetrefpos(acq.bb, par_labgeo);
end
par_labgeo = gtGeoSamEnvFromAcq(par_labgeo, acq);
disp('Choose a squared sample bounding box in the center of the image...')
end
par_labgeo.pixelsizeu = acq.pixelsize;
par_labgeo.pixelsizev = acq.pixelsize;
par_labgeo.detsizeu = acq.xdet; % number of pixels along the u direction
par_labgeo.detsizev = acq.ydet; % number of pixels along the v direction
% Beam direction, rot. axis position and detector properties
par_labgeo.beamdir = [1 0 0];
par_labgeo.rotpos = [0 0 0];
par_labgeo.detrefu = (par_labgeo.detsizeu/2) + 0.5;
par_labgeo.detrefv = (par_labgeo.detsizev/2) + 0.5;
end % end of function
% Coordinate axes definition and Lab unit (for records only)
par_labgeo.deflabX = 'Along the beam direction.';
par_labgeo.deflabY = 'Right-handed from Y=cross(Z,X).';
par_labgeo.deflabZ = 'Along rotation axis. Positive away from sample stage.';
par_labgeo.labunit = 'mm';
% Correct for sample bounding box position - 07-01-2014 by LNervo
if ~isempty(acq.bb)
par_labgeo.detrefpos(3) = ((acq.bb(2) + acq.bb(4)/2) - par_labgeo.detsizev/2) * par_labgeo.pixelsizev;
par_labgeo.detrefpos(2) = -((acq.bb(1) + acq.bb(3)/2) - par_labgeo.detsizeu/2) * par_labgeo.pixelsizeu;
end
%%%%%%%%%%%%%%%%%%%%%
% SUB-FUNCTIONS
%%%%%%%%%%%%%%%%%%%%%
% Detector angular coverage limits (2theta) for entire sample volume
par_labgeo.detanglemin = 0;
par_labgeo.detanglemax = 45;
function [dy, dz] = sfDetrefpos(acq_bb, par_labgeo)
% Returns the detector lateral (Y) and vertical (Z) positions which approximately
% account for an offset of the sample bounding box position:
% Y lateral: It assumes that the projection of the rotation axis is at the
% center of the sample bounding box.
% Z vertical: set in a way that the vertical center of the sample bounding
% box will have coordinate Z=0.
% It assumes rotpos = [0 0 0] and view into the beam.
dy = -((acq_bb(1) + acq_bb(3)/2) - par_labgeo.detrefu) * par_labgeo.pixelsizeu;
dz = ((acq_bb(2) + acq_bb(4)/2) - par_labgeo.detrefv) * par_labgeo.pixelsizev;
end % end of function
end
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment