source: MML/trunk/mml/doc_html/mml/quadgetdata.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: 12.5 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 quadgetdata</title>
6  <meta name="keywords" content="quadgetdata">
7  <meta name="description" content="QUADGETDATA - Collect the date from a quadrupole center run.">
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="index.html">mml</a> &gt; quadgetdata.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 mml&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
19
20<h1>quadgetdata
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>QUADGETDATA - Collect the date from a quadrupole center run.</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 [X, Y, BPMxFamily, QUADxFamily, BPMyFamily, QUADyFamily, DateMatX, DateMatY] = quadgetdata(DirName, PlotFlag) </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">QUADGETDATA - Collect the date from a quadrupole center run.
31              When all the quadrupole center data files are stored in a directory this function
32              will go through all the files and pull out some of the important information.
33
34  [X, Y, BPMxFamily, QUADxFamily, BPMyFamily, QUADyFamily, XfileDate, YfilesDate] = quadgetdata(DirName)
35
36  INPUTS
37  1. DirName - Directory name to look for quadrupole center files 
38               [] to browse {Default}
39  2. PlotFlag - 0 to just get data without plotting results, else, plot results
40 
41  OUTPUTS
42  1. X - Horizontal output matrix (format below)
43  2. Y - Vertical output matrix (format below)
44
45             1&amp;2     3       4        5     6       7         8         9
46  Output = [BPMDev Center CenterSTD BPMpos DCCT BPMATIndex Quadpos QuadATIndex]
47
48  3-6. BPMxFamily, QUADxFamily, BPMyFamily, QUADyFamily - Family name for each center measurement
49  7-8. XfileDate, YfilesDate - Date string for the file name
50
51  Written by Greg Portmann</pre></div>
52
53<!-- crossreference -->
54<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
55This function calls:
56<ul style="list-style-image:url(../matlabicon.gif)">
57<li><a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>  GETFAMILYDATA - Gets data associated with the accelerator control</li><li><a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>      GETSPOS - Returns the longitudinal position in meters</li></ul>
58This function is called by:
59<ul style="list-style-image:url(../matlabicon.gif)">
60<li><a href="quadplotall.html" class="code" title="function [Xnew, Ynew, BPMxFamily, QUADxFamily, BPMyFamily, QUADyFamily, DateMatX, DateMatY] = quadplotall(DirName, PlotFlag)">quadplotall</a>        QUADPLOTALL - Collect the date from a quadrupole center run.</li></ul>
61<!-- crossreference -->
62
63
64<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
65<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [X, Y, BPMxFamily, QUADxFamily, BPMyFamily, QUADyFamily, DateMatX, DateMatY] = quadgetdata(DirName, PlotFlag)</a>
660002 <span class="comment">%QUADGETDATA - Collect the date from a quadrupole center run.</span>
670003 <span class="comment">%              When all the quadrupole center data files are stored in a directory this function</span>
680004 <span class="comment">%              will go through all the files and pull out some of the important information.</span>
690005 <span class="comment">%</span>
700006 <span class="comment">%  [X, Y, BPMxFamily, QUADxFamily, BPMyFamily, QUADyFamily, XfileDate, YfilesDate] = quadgetdata(DirName)</span>
710007 <span class="comment">%</span>
720008 <span class="comment">%  INPUTS</span>
730009 <span class="comment">%  1. DirName - Directory name to look for quadrupole center files</span>
740010 <span class="comment">%               [] to browse {Default}</span>
750011 <span class="comment">%  2. PlotFlag - 0 to just get data without plotting results, else, plot results</span>
760012 <span class="comment">%</span>
770013 <span class="comment">%  OUTPUTS</span>
780014 <span class="comment">%  1. X - Horizontal output matrix (format below)</span>
790015 <span class="comment">%  2. Y - Vertical output matrix (format below)</span>
800016 <span class="comment">%</span>
810017 <span class="comment">%             1&amp;2     3       4        5     6       7         8         9</span>
820018 <span class="comment">%  Output = [BPMDev Center CenterSTD BPMpos DCCT BPMATIndex Quadpos QuadATIndex]</span>
830019 <span class="comment">%</span>
840020 <span class="comment">%  3-6. BPMxFamily, QUADxFamily, BPMyFamily, QUADyFamily - Family name for each center measurement</span>
850021 <span class="comment">%  7-8. XfileDate, YfilesDate - Date string for the file name</span>
860022 <span class="comment">%</span>
870023 <span class="comment">%  Written by Greg Portmann</span>
880024
890025
900026 <span class="keyword">if</span> nargin == 0
910027     DirName = <span class="string">''</span>;
920028 <span class="keyword">end</span>
930029
940030 <span class="keyword">if</span> nargin &lt; 2
950031     PlotFlag = 1;
960032 <span class="keyword">end</span>
970033
980034 <span class="keyword">if</span> isempty(DirName)
990035     DirName = [<a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(<span class="string">'Directory'</span>, <span class="string">'DataRoot'</span>),<span class="string">'QMS\'</span>];
1000036     DirName = uigetdir(DirName, <span class="string">'Select directory where the QMS data are located'</span>);
1010037 <span class="keyword">end</span>
1020038
1030039 StartDir = pwd;
1040040 cd(DirName);
1050041
1060042 Files = dir;
1070043
1080044 X = [];
1090045 Y = [];
1100046 BPMxFamily = [];
1110047 QUADxFamily = [];
1120048 BPMyFamily = [];
1130049 QUADyFamily = [];
1140050 DateMatX = [];
1150051 DateMatY = [];
1160052 <span class="keyword">for</span> i = 1:length(Files)
1170053     <span class="keyword">if</span> exist(Files(i).name) == 2
1180054         clear QMS DelHCM DelVCM
1190055         <span class="keyword">try</span>
1200056             load(Files(i).name)
1210057
1220058             <span class="comment">%Files(i).name</span>
1230059
1240060             <span class="comment">% Old middle layer</span>
1250061             <span class="keyword">if</span> exist(<span class="string">'DelHCM'</span>)
1260062                 clear q
1270063                 [q.Center, q.CenterSTD, ErrorString] = quadhplt(Files(i).name);
1280064                 q.BPMFamily = <span class="string">'BPMx'</span>;
1290065                 q.BPMDev = BPMnum + [0 1];
1300066                 q.DCCT = NaN;
1310067                 [q.QuadFamily, q.QuadDev] = bpm2quad(q.BPMFamily, q.BPMDev);
1320068
1330069                 X = [X; q.BPMDev q.Center q.CenterSTD <a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>(q.BPMFamily, q.BPMDev) min(q.DCCT) family2atindex(q.BPMFamily, q.BPMDev) <a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>(q.QuadFamily, q.QuadDev) family2atindex(q.QuadFamily, q.QuadDev)];
1340070                 BPMxFamily = strvcat(BPMxFamily, q.BPMFamily);
1350071                 QUADxFamily = strvcat(QUADxFamily, q.QuadFamily);
1360072                 DateMatX = [DateMatX; Files(i).date];
1370073                 
1380074             <span class="keyword">elseif</span> exist(<span class="string">'DelVCM'</span>)
1390075                 clear q
1400076                 [q.Center, q.CenterSTD, ErrorString] = quadvplt(Files(i).name);
1410077                 q.BPMFamily = <span class="string">'BPMy'</span>;
1420078                 q.BPMDev = BPMnum + [0 1];
1430079                 q.DCCT = NaN;
1440080                 [q.QuadFamily, q.QuadDev] = bpm2quad(q.BPMFamily, q.BPMDev);
1450081
1460082                 Y = [Y; q.BPMDev q.Center q.CenterSTD <a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>(q.BPMFamily, q.BPMDev) min(q.DCCT) family2atindex(q.BPMFamily, q.BPMDev) <a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>(q.QuadFamily, q.QuadDev) family2atindex(q.QuadFamily, q.QuadDev)];
1470083                 BPMyFamily = strvcat(BPMyFamily, q.BPMFamily);
1480084                 QUADyFamily = strvcat(QUADyFamily, q.QuadFamily);
1490085                 DateMatY = [DateMatY; Files(i).date];
1500086
1510087             <span class="keyword">else</span>
1520088
1530089                 <span class="comment">% New middle layer</span>
1540090                 q = QMS;
1550091
1560092                 <span class="comment">%fprintf('   %d.  %s(%d,%d)\n', i, q.QuadFamily, q.QuadDev);</span>
1570093
1580094                 <span class="keyword">if</span> q.QuadPlane == 1
1590095                     X = [X; q.BPMDev q.Center q.CenterSTD <a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>(q.BPMFamily, q.BPMDev) min(q.DCCT) family2atindex(q.BPMFamily, q.BPMDev) <a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>(q.QuadFamily, q.QuadDev) family2atindex(q.QuadFamily, q.QuadDev)];
1600096                     BPMxFamily = strvcat(BPMxFamily, q.BPMFamily);
1610097                     QUADxFamily = strvcat(QUADxFamily, q.QuadFamily);
1620098                     DateMatX = [DateMatX; Files(i).date];
1630099                 <span class="keyword">else</span>
1640100                     Y = [Y; q.BPMDev q.Center q.CenterSTD <a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>(q.BPMFamily, q.BPMDev) min(q.DCCT) family2atindex(q.BPMFamily, q.BPMDev) <a href="getspos.html" class="code" title="function S = getspos(Family, DeviceList)">getspos</a>(q.QuadFamily, q.QuadDev) family2atindex(q.QuadFamily, q.QuadDev)];
1650101                     BPMyFamily = strvcat(BPMyFamily, q.BPMFamily);
1660102                     QUADyFamily = strvcat(QUADyFamily, q.QuadFamily);
1670103                     DateMatY = [DateMatY; Files(i).date];
1680104                 <span class="keyword">end</span>
1690105                 <span class="keyword">if</span> any(q.DCCT&lt;5)
1700106                     fprintf(<span class="string">'   %s(%d,%d) (%s) shows a beam less than 5 mamps during the experiment!\n'</span>, q.BPMFamily, q.BPMDev, Files(i).name);
1710107                 <span class="keyword">end</span>
1720108             <span class="keyword">end</span>
1730109         <span class="keyword">catch</span>
1740110         <span class="keyword">end</span>
1750111     <span class="keyword">end</span>
1760112 <span class="keyword">end</span>
1770113
1780114 [DateMatX, iX] = sortrows(DateMatX);
1790115 [DateMatY, iY] = sortrows(DateMatY);
1800116 X = X(iX,:);
1810117 Y = Y(iY,:);
1820118 BPMxFamily = BPMxFamily(iX,:);
1830119 BPMyFamily = BPMyFamily(iY,:);
1840120 QUADxFamily = QUADxFamily(iX,:);
1850121 QUADyFamily = QUADyFamily(iY,:);
1860122
1870123 cd(StartDir);
1880124
1890125
1900126 <span class="keyword">if</span> PlotFlag
1910127
1920128     <span class="comment">% Plot data</span>
1930129     L = <a href="getfamilydata.html" class="code" title="function [Data, ErrorFlag] = getfamilydata(Family, Field1, Field2, DeviceList)">getfamilydata</a>(<span class="string">'Circumference'</span>);
1940130
1950131     figure;
1960132     subplot(2,1,1);
1970133     errorbar(X(:,5), X(:,3), X(:,4), <span class="string">'.b'</span>);
1980134     ylabel(<span class="string">'Horizontal [mm]'</span>);
1990135     xaxis([0 L]);
2000136     title(<span class="string">'BPM Offset'</span>);
2010137
2020138     subplot(2,1,2);
2030139     errorbar(Y(:,5), Y(:,3), Y(:,4), <span class="string">'.b'</span>);
2040140     xlabel(<span class="string">'BPM Position [meters]'</span>);
2050141     ylabel(<span class="string">'Vertical [mm]'</span>);
2060142     xaxis([0 L]);
2070143
2080144 <span class="keyword">end</span></pre></div>
209<hr><address>Generated on Mon 21-May-2007 15:29:18 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
210</body>
211</html>
Note: See TracBrowser for help on using the repository browser.