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