diff --git a/4_grains/gtCalculateGrain.m b/4_grains/gtCalculateGrain.m index 10d28f6672fe692dad78149d41dfd9659b3275a1..b3a292c2c7e28885f8e81a45953c03b6747249f1 100644 --- a/4_grains/gtCalculateGrain.m +++ b/4_grains/gtCalculateGrain.m @@ -191,12 +191,25 @@ for det_ind = app.det_ind % Use the Sample -> Lab orientation transformation assuming omega=0; % (vector length preserved for free vectors) if (is_dct) - pl_labd = gtGeoSam2Lab(pl_samd', eye(3), labgeo, samgeo, true)'; + if (isfield(parameters, 'diffractometer') ... + && numel(parameters.diffractometer) >= det_ind ... + && ~isempty(acq.sample_tilts)) + diff = parameters.diffractometer(det_ind); + tilts = acq.sample_tilts; + t = gtGeoDiffractometerTensor(diff, 'sam2lab', true, 'angles_sam_tilt', tilts); + else + t = eye(3); + end + pl_labd = gtGeoSam2Lab(pl_samd', t, labgeo, samgeo, true)'; rotcomp = gtMathsRotationMatrixComp(labgeo.rotdir', 'col'); rotdir = labgeo.rotdir'; elseif (is_topotomo) - diff = parameters.diffractometer; + if (numel(parameters.diffractometer) > 1) + diff = parameters.diffractometer(det_ind); + else + diff = parameters.diffractometer; + end if (isfield(acq, 'sample_tilts') && ~isempty(acq.sample_tilts)) tilts = acq.sample_tilts; diff --git a/4_grains/gtCalculateGrain_p.m b/4_grains/gtCalculateGrain_p.m index e38d47c1c54bf943da8ed3a1e784a7c8ce6d7ab9..a171c40b543601af3d51c368579458d6f105ea6e 100644 --- a/4_grains/gtCalculateGrain_p.m +++ b/4_grains/gtCalculateGrain_p.m @@ -144,7 +144,6 @@ for det_ind = app.det_ind 'When mode is "topotomo", "pl_ind" should also be pased'); continue; end - diff = parameters.diffractometer; end omstep = gtAcqGetOmegaStep(parameters, det_ind); @@ -222,11 +221,26 @@ for det_ind = app.det_ind % Use the Sample -> Lab orientation transformation assuming omega=0; % (vector length preserved for free vectors) if (is_dct) - pl_labd = gtGeoSam2Lab(pl_samd', eye(3), labgeo, samgeo, true)'; + if (isfield(parameters, 'diffractometer') ... + && numel(parameters.diffractometer) >= det_ind ... + && ~isempty(acq.sample_tilts)) + diff = parameters.diffractometer(det_ind); + tilts = acq.sample_tilts; + t = gtGeoDiffractometerTensor(diff, 'sam2lab', true, 'angles_sam_tilt', tilts); + else + t = eye(3); + end + pl_labd = gtGeoSam2Lab(pl_samd', t, labgeo, samgeo, true)'; rotcomp = gtMathsRotationMatrixComp(labgeo.rotdir', 'col'); rotdir = labgeo.rotdir'; elseif (is_topotomo) + if (numel(parameters.diffractometer) > 1) + diff = parameters.diffractometer(det_ind); + else + diff = parameters.diffractometer; + end + if (isfield(acq, 'sample_tilts') && ~isempty(acq.sample_tilts)) tilts = acq.sample_tilts; else