source: MML/trunk/applications/doc_html/applications/orbit/sortbpms.html @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 6.3 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3<html>
4<head>
5  <title>Description of sortbpms</title>
6  <meta name="keywords" content="sortbpms">
7  <meta name="description" content="SORTBPMS - Compares vectors for several cases:">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
10  <meta name="robots" content="index, follow">
11  <link type="text/css" rel="stylesheet" href="../../m2html.css">
12</head>
13<body>
14<a name="_top"></a>
15<div><a href="../../index.html">Home</a> &gt;  <a href="#">applications</a> &gt; <a href="index.html">orbit</a> &gt; sortbpms.m</div>
16
17<!--<table width="100%"><tr><td align="left"><a href="../../index.html"><img alt="<" border="0" src="../../left.png">&nbsp;Master index</a></td>
18<td align="right"><a href="index.html">Index for applications/orbit&nbsp;<img alt=">" border="0" src="../../right.png"></a></td></tr></table>-->
19
20<h1>sortbpms
21</h1>
22
23<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
24<div class="box"><strong>SORTBPMS - Compares vectors for several cases:</strong></div>
25
26<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
27<div class="box"><strong>function varargout = sortbpms(varargin) </strong></div>
28
29<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
30<div class="fragment"><pre class="comment">SORTBPMS - Compares vectors for several cases:
31(1) available electronically (BPM.status)
32(2) available in reference orbit (BPM.iref)
33(3) available in response matrix (RSP.ib)
34*** BPM.avail requires reference, response matrix, status
35
36 INPUTS
37 1. Bpm structure
38 2. Response matrix structure
39
40 OUTPUTS
41 1. Updated BPM structure</pre></div>
42
43<!-- crossreference -->
44<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
45This function calls:
46<ul style="list-style-image:url(../../matlabicon.gif)">
47</ul>
48This function is called by:
49<ul style="list-style-image:url(../../matlabicon.gif)">
50<li><a href="readwrite.html" class="code" title="function readwrite(action, varargin)">readwrite</a>    READWRITE - Multipurpose read/write function for orbit correction applicaiton</li></ul>
51<!-- crossreference -->
52
53
54<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
55<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function varargout = sortbpms(varargin)</a>
560002 <span class="comment">%SORTBPMS - Compares vectors for several cases:</span>
570003 <span class="comment">%(1) available electronically (BPM.status)</span>
580004 <span class="comment">%(2) available in reference orbit (BPM.iref)</span>
590005 <span class="comment">%(3) available in response matrix (RSP.ib)</span>
600006 <span class="comment">%*** BPM.avail requires reference, response matrix, status</span>
610007 <span class="comment">%</span>
620008 <span class="comment">% INPUTS</span>
630009 <span class="comment">% 1. Bpm structure</span>
640010 <span class="comment">% 2. Response matrix structure</span>
650011 <span class="comment">%</span>
660012 <span class="comment">% OUTPUTS</span>
670013 <span class="comment">% 1. Updated BPM structure</span>
680014
690015 <span class="comment">%</span>
700016 <span class="comment">% Written by Jeff Corbett</span>
710017 <span class="comment">% Modified by Laurent S. Nadolski</span>
720018
730019 BPM = varargin{1};
740020 RSP = varargin{2};
750021
760022 <span class="comment">% [C,IA,IB] = INTERSECT(A,B) returns index vectors IA and IB</span>
770023 <span class="comment">% such that C = A(IA) and C = B(IB)</span>
780024 <span class="comment">% [C,I] = SETDIFF(...) returns an index vector I such that C = A(I)</span>
790025
800026 <span class="keyword">for</span> ip = 1:2
810027     <span class="comment">% compare status with reference orbit</span>
820028     [BPM(ip).avail,IA,IB] = intersect(BPM(ip).iref,BPM(ip).status); <span class="comment">%BPM.iref and BPM.status are compressed</span>
830029     [C,IA] = setdiff(BPM(ip).iref,BPM(ip).iref(IA));                <span class="comment">%check for rejected reference BPMs</span>
840030     <span class="keyword">if</span> ~isempty(IA)
850031         disp(<span class="string">'SortBPMs Warning 1A: BPMs in reference orbit do not have valid status'</span>);
860032         <span class="keyword">for</span> ii = IA
870033             disp(BPM(ip).name(ii,:));
880034         <span class="keyword">end</span>
890035     <span class="keyword">end</span>
900036
910037     <span class="comment">% compare result with response matrix</span>
920038     [BPM(ip).avail,IA,IB] = intersect(BPM(ip).avail,RSP(ip).ib);  <span class="comment">%BPM.avail and RSP.ib are compressed</span>
930039     [C,IA] = setdiff(BPM(ip).avail,BPM(ip).avail(IA));            <span class="comment">%check for rejected available BPMs</span>
940040     <span class="keyword">if</span> ~isempty(IA)
950041         disp(<span class="string">'SortBPMs Warning 2A: BPMs with valid status and in reference orbit not in response matrix'</span>);
960042         <span class="keyword">for</span> ii=IA
970043             disp(BPM(ip).name(ii,:));
980044         <span class="keyword">end</span>
990045     <span class="keyword">end</span>
1000046
1010047     <span class="comment">% compare result with fit selection</span>
1020048     [BPM(ip).ifit,IA,IB] = intersect(BPM(ip).avail,BPM(ip).ifit); <span class="comment">%BPM.avail and BPM.ifit are compressed</span>
1030049     [C,IA] = setdiff(BPM(ip).avail,BPM(ip).avail(IA));            <span class="comment">%check for rejected available BPMs</span>
1040050     <span class="keyword">if</span> ~isempty(IA)
1050051         disp(<span class="string">'SortBPMs Warning 3A: BPMs with valid status, in reference orbit, and in response matrix not in fit'</span>);
1060052         <span class="keyword">for</span> ii = IA
1070053             disp(BPM(ip).name(ii,:));
1080054         <span class="keyword">end</span>
1090055     <span class="keyword">end</span>
1100056
1110057 <span class="keyword">end</span>  <span class="comment">%end of plane loop</span>
1120058
1130059 varargout{1} = BPM;</pre></div>
114<hr><address>Generated on Mon 21-May-2007 15:32:41 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
115</body>
116</html>
Note: See TracBrowser for help on using the repository browser.