source: MML/trunk/machine/SOLEIL/doc_html/machine/Soleil/StorageRing/updateatindex.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: 9.2 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 updateatindex</title>
6  <meta name="keywords" content="updateatindex">
7  <meta name="description" content="UPDATEATINDEX - Updates the AT indices in the MiddleLayer with the present AT lattice (THERING)">
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="#">machine</a> &gt; <a href="#">Soleil</a> &gt; <a href="index.html">StorageRing</a> &gt; updateatindex.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 machine/Soleil/StorageRing&nbsp;<img alt=">" border="0" src="../../../right.png"></a></td></tr></table>-->
19
20<h1>updateatindex
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>UPDATEATINDEX - Updates the AT indices in the MiddleLayer with the present AT lattice (THERING)</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 updateatindex </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">UPDATEATINDEX - Updates the AT indices in the MiddleLayer with the present AT lattice (THERING)</pre></div>
31
32<!-- crossreference -->
33<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
34This function calls:
35<ul style="list-style-image:url(../../../matlabicon.gif)">
36</ul>
37This function is called by:
38<ul style="list-style-image:url(../../../matlabicon.gif)">
39<li><a href="setoperationalmode.html" class="code" title="function setoperationalmode(ModeNumber)">setoperationalmode</a>       SETOPERATIONALMODE - Switches between the various operational modes</li></ul>
40<!-- crossreference -->
41
42
43<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
44<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function updateatindex</a>
450002 <span class="comment">%UPDATEATINDEX - Updates the AT indices in the MiddleLayer with the present AT lattice (THERING)</span>
460003
470004 <span class="comment">%</span>
480005 <span class="comment">% Adapted by Laurent S. Nadolski</span>
490006
500007 <span class="keyword">global</span> THERING
510008
520009 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
530010 <span class="comment">% Append Accelerator Toolbox information %</span>
540011 <span class="comment">%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</span>
550012
560013 <span class="comment">% Since changes in the AT model could change the AT indexes, etc,</span>
570014 <span class="comment">% It's best to regenerate all the model indices whenever a model is loaded</span>
580015
590016 <span class="comment">% Sort by family first (findcells is linear and slow)</span>
600017 Indices = atindex(THERING);
610018
620019 AO = getao;
630020
640021 <span class="comment">% BPMS</span>
650022 <span class="keyword">try</span>
660023     ifam = <span class="string">'BPMx'</span>;
670024     AO.(ifam).AT.ATType = <span class="string">'X'</span>;
680025     AO.(ifam).AT.ATIndex = Indices.BPM(:); <span class="comment">% findcells(THERING,'FamName','BPM')';</span>
690026     AO.(ifam).Position = findspos(THERING, AO.(ifam).AT.ATIndex)';
700027
710028     ifam = <span class="string">'BPMz'</span>;
720029     AO.(ifam).AT.ATType = <span class="string">'Z'</span>;
730030     AO.(ifam).AT.ATIndex = Indices.BPM(:); <span class="comment">% findcells(THERING,'FamName','BPM')';</span>
740031     AO.(ifam).Position = findspos(THERING, AO.(ifam).AT.ATIndex)';
750032 <span class="keyword">catch</span>
760033     warning(<span class="string">'BPM family not found in the model.'</span>);
770034 <span class="keyword">end</span>
780035
790036
800037 <span class="comment">% CORRECTORS</span>
810038 <span class="keyword">try</span>
820039     ifam = <span class="string">'HCOR'</span>;
830040     <span class="comment">% Horizontal correctors are at every AT corrector</span>
840041     AO.(ifam).AT.ATType = ifam;
850042     AO.(ifam).AT.ATIndex = buildatindex(AO.(ifam).FamilyName, Indices.COR);
860043     AO.(ifam).Position = findspos(THERING, AO.(ifam).AT.ATIndex(:,1))';
870044
880045     <span class="comment">% Vertical correctors are at every AT corrector</span>
890046     ifam = <span class="string">'VCOR'</span>;
900047     AO.(ifam).AT.ATType = ifam;
910048     AO.(ifam).AT.ATIndex = buildatindex(AO.(ifam).FamilyName, Indices.COR);
920049     AO.(ifam).Position = findspos(THERING, AO.(ifam).AT.ATIndex(:,1))';
930050
940051     <span class="comment">% Fast Horizontal correctors are at every AT corrector</span>
950052     ifam = <span class="string">'FHCOR'</span>;
960053     AO.(ifam).AT.ATType = ifam;
970054     AO.(ifam).AT.ATIndex = buildatindex(AO.(ifam).FamilyName, Indices.COR);
980055     AO.(ifam).Position = findspos(THERING, AO.(ifam).AT.ATIndex(:,1))';
990056
1000057     <span class="comment">% Fast vertical correctors are at every AT corrector</span>
1010058     ifam = <span class="string">'FVCOR'</span>;
1020059     AO.(ifam).AT.ATType = ifam;
1030060     AO.(ifam).AT.ATIndex = buildatindex(AO.(ifam).FamilyName, Indices.COR);
1040061     AO.(ifam).Position = findspos(THERING, AO.(ifam).AT.ATIndex(:,1))';
1050062 <span class="keyword">catch</span>
1060063     warning(<span class="string">'Corrector family not found in the model.'</span>);
1070064 <span class="keyword">end</span>
1080065
1090066
1100067 <span class="comment">% QUADRUPOLES</span>
1110068 <span class="keyword">try</span>
1120069     <span class="keyword">for</span> k = 1:10,
1130070         ifam = [<span class="string">'Q'</span> num2str(k)];
1140071         AO.(ifam).AT.ATType = <span class="string">'QUAD'</span>;
1150072         AO.(ifam).AT.ATIndex = buildatindex(AO.(ifam).FamilyName, Indices.(ifam));
1160073         AO.(ifam).Position = findspos(THERING, AO.(ifam).AT.ATIndex(:,1))';
1170074     <span class="keyword">end</span>
1180075 <span class="keyword">catch</span>
1190076     warning(<span class="string">'%s family not found in the model.'</span>,ifam);
1200077 <span class="keyword">end</span>
1210078
1220079
1230080 <span class="comment">% SEXTUPOLES</span>
1240081 <span class="keyword">try</span>
1250082     <span class="keyword">for</span> k = 1:10,
1260083         ifam = [<span class="string">'S'</span> num2str(k)];
1270084         AO.(ifam).AT.ATType = <span class="string">'SEXT'</span>;
1280085         AO.(ifam).AT.ATIndex = buildatindex(AO.(ifam).FamilyName, Indices.(ifam));
1290086         AO.(ifam).Position = findspos(THERING, AO.(ifam).AT.ATIndex(:,1))';
1300087     <span class="keyword">end</span>
1310088 <span class="keyword">catch</span>
1320089     warning(<span class="string">'Sextupole families not found in the model.'</span>);
1330090 <span class="keyword">end</span>
1340091
1350092
1360093 <span class="comment">% BEND</span>
1370094
1380095 <span class="keyword">try</span>
1390096     <span class="comment">% Combine BEND</span>
1400097     AO.BEND.AT.ATType = <span class="string">'BEND'</span>;
1410098     ATIndex = Indices.BEND(:);
1420099     AO.BEND.AT.ATIndex = buildatindex(AO.BEND.FamilyName, sort(ATIndex));
1430100     AO.BEND.Position = findspos(THERING, AO.BEND.AT.ATIndex(:,1))';
1440101 <span class="keyword">catch</span>
1450102     warning(<span class="string">'BEND family not found in the model.'</span>);
1460103 <span class="keyword">end</span>
1470104
1480105 <span class="comment">% RF CAVITY</span>
1490106 <span class="keyword">try</span>
1500107     AO.RF.AT.ATType = <span class="string">'RF Cavity'</span>;
1510108     AO.RF.AT.ATIndex = findcells(THERING,<span class="string">'Frequency'</span>)';
1520109     AO.RF.Position = findspos(THERING, AO.RF.AT.ATIndex(:,1))';
1530110 <span class="keyword">catch</span>
1540111     warning(<span class="string">'RF cavity not found in the model.'</span>);
1550112 <span class="keyword">end</span>
1560113
1570114 setao(AO);
1580115
1590116 <span class="comment">% Set TwissData at the start of the storage ring</span>
1600117 <span class="keyword">try</span>
1610118
1620119     <span class="comment">% BTS twiss parameters at the input</span>
1630120     TwissData.alpha = [0 0]';
1640121     TwissData.beta  = [13.8467 2.2582]';
1650122     TwissData.mu    = [0 0]';
1660123     TwissData.ClosedOrbit = [0 0 0 0]';
1670124     TwissData.dP = 0;
1680125     TwissData.dL = 0;
1690126     TwissData.Dispersion  = [.06 0 0 0]';
1700127
1710128     setpvmodel(<span class="string">'TwissData'</span>, <span class="string">''</span>, TwissData);  <span class="comment">% Same as, THERING{1}.TwissData = TwissData;</span>
1720129
1730130 <span class="keyword">catch</span>
1740131     warning(<span class="string">'Setting the twiss data parameters in the MML failed.'</span>);
1750132 <span class="keyword">end</span></pre></div>
176<hr><address>Generated on Mon 21-May-2007 15:35:27 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
177</body>
178</html>
Note: See TracBrowser for help on using the repository browser.