diff --git a/AUG/sxrbgeometry.m b/AUG/sxrbgeometry.m new file mode 100644 index 0000000000000000000000000000000000000000..b81452977badfc69e86151cf51e5244f5fcfa3dc --- /dev/null +++ b/AUG/sxrbgeometry.m @@ -0,0 +1,70 @@ +function [R_B, Z_B, ang_B,varargout]=sxrbgeometry(varargin); +% +% [R_B, Z_B, ang_B]=sxrbgeometry; +% +% returns angles for B SXR camera from AUG +% The R values at a given z=zmag are then given by: +% zmag>Z_B: only ang_B<180 +% R= R_B - (zmag-Z_B)./tan(pi-ang_B.*pi/180); +% zmag<Z_B: only ang_B>180 +% R= R_B - (zmag-Z_B)./tan(pi-ang_B.*pi/180); +% +% varargin{1}: zmag(t) (scalar or array) +% +% output +% R_B, Z_B scalars +% ang_B(nbchannels,1); +% varargout: R(nbchannels,time), with NaN depending on conditions above +% + +R_B=2.351; +Z_B=-0.271; +ang_B= [... + 107.955, ... + 111.645, ... + 115.555, ... + 119.245, ... + 123.155, ... + 126.845, ... + 130.755, ... + 134.445, ... + 138.355, ... + 142.045, ... + 145.955, ... + 149.645, ... + 153.555, ... + 157.245, ... + 161.155, ... + 164.845, ... + 168.755, ... + 172.445, ... + 176.355, ... + 180.045, ... + 183.955, ... + 187.645, ... + 191.555, ... + 195.245, ... + 199.155, ... + 202.845, ... + 206.755, ... + 210.445, ... + 214.355, ... + 218.045]'; + +varargout{1}=[]; +if nargin <1 | isempty(varargin{1}) + return +end + +% compute R +zmag=varargin{1}; +varargout{1}=NaN*ones(length(ang_B),length(zmag)); +for i=1:length(zmag) + if zmag(i)>Z_B + ii=find(ang_B<((pi-atan((zmag(i)-Z_B)/(R_B-0.)))*180/pi)); + varargout{1}(ii,i) = R_B - (zmag(i)-Z_B)./tan(pi-ang_B(ii).*pi/180); + elseif zmag(i)<Z_B + ii=find(ang_B>((pi-atan((zmag(i)-Z_B)/(R_B-0.)))*180/pi)); + varargout{1}(ii,i) = R_B - (zmag(i)-Z_B)./tan(pi-ang_B(ii).*pi/180); + end +end