0001 function rerr=SetExistingError(rerr,magindex,indBPM,X0,Y0,S0,T0,R0,P0,bpm0)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 nsig=2;
0012
0013 if iscell(X0)
0014 [X,Y,S,T,R,P,bpm]=GetExistingErrors(X0,magindex);
0015 rerr=SetExistingError(rerr,magindex,indBPM,X,Y,S,T,R,P,bpm);
0016 else
0017 if ~isempty(magindex)
0018
0019 if nargin>3
0020 errfun=@(r,po,er)setANYshift(r,po,1,er);
0021 rerr=seterrorrand(rerr,magindex,errfun,0,0,nsig,X0);
0022 end
0023
0024 if nargin>4
0025 errfun=@(r,po,er)setANYshift(r,po,3,er);
0026 rerr=seterrorrand(rerr,magindex,errfun,0,0,nsig,Y0);
0027 end
0028
0029 if nargin>5
0030 errfun=@(r,po,er)atset_s_shift(r,po,er);
0031 rerr=seterrorrand(rerr,magindex,errfun,0,0,nsig,S0);
0032 end
0033
0034
0035 if nargin>6
0036 errfun=@(r,po,er)atsettiltdipole(r,po,er);
0037 rerr=seterrorrand(rerr,magindex,errfun,0,0,nsig,T0);
0038 end
0039
0040
0041 if nargin>7
0042
0043
0044 end
0045
0046 if nargin>8
0047
0048
0049 end
0050 end
0051
0052
0053 if nargin>9
0054 errfun=@(r,po,er)setcellstruct(r,'Offset',po,er,1,1);
0055 rerr=seterrorrand(rerr,indBPM,errfun,0,0,nsig,bpm0.offsetx);
0056 errfun=@(r,po,er)setcellstruct(r,'Offset',po,er,1,2);
0057 rerr=seterrorrand(rerr,indBPM,errfun,0,0,nsig,bpm0.offsety);
0058 errfun=@(r,po,er)setcellstruct(r,'Rotation',po,er,1,1);
0059 rerr=seterrorrand(rerr,indBPM,errfun,0,0,nsig,bpm0.rotation);
0060 end
0061 end
0062
0063 return