source: MML/trunk/mml/doc_html/mml/at/setradiation.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: 29.1 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 setradiation</title>
6  <meta name="keywords" content="setradiation">
7  <meta name="description" content="SETRADIATION - Sets the model PassMethod to include or exclude radiation ('On' / 'Off' {Default})">
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; <a href="index.html">at</a> &gt; setradiation.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/at&nbsp;<img alt=">" border="0" src="../../right.png"></a></td></tr></table>-->
19
20<h1>setradiation
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>SETRADIATION - Sets the model PassMethod to include or exclude radiation ('On' / 'Off' {Default})</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 [PassMethod, ATIndex, FamName, PassMethodOld, ATIndexOld, FamNameOld] = setradiation(InputString) </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">SETRADIATION - Sets the model PassMethod to include or exclude radiation ('On' / 'Off' {Default})
31  [PassMethod, PassMethodOld, ATIndex, FamName] = setradiation('On' or 'Off')
32
33  INPUTS
34  1. 'On' or 'Off'
35
36  OUTPUTS
37  New AT model parameters
38  1. PassMethod - AT PassMethod field (cell array)
39  2. ATIndex    - AT index in THERING
40  3. FamName    - AT family name (cell array)
41  Old AT model parameters
42  4. PassMethodOld - AT PassMethod field (cell array)
43  5. ATIndexOld    - AT index in THERING
44  6. FamNameOld    - AT family name (cell array)
45
46  NOTE
47  1. setpassmethod(ATIndexOld, PassMethodOld) can be used to restore old PassMethods.
48  2. This function is machine specific so it is prone to being out-of-date.  All machine get the
49     same passmethods for radiation on. The potential confusion occurs when turning the radiation off.
50     The following is the list for how this function is programmed.  Please email me if
51     it is not correct for your accelerator.
52
53  1. Spear, Diamond, Soleil, NSRRC, SSRF, and the X-Ray ring
54     Quadrupole magnets pass methods:
55     a. QuadLinearPass             - Radiation off
56     b. StrMPoleSymplectic4RadPass - Radiation on
57
58     Bend magnet pass methods:
59     a. BendLinearPass             - Radiation off
60     b. BndMPoleSymplectic4RadPass - Radiation on
61
62     Sextupoles magnets pass methods:
63     a. StrMPoleSymplectic4Pass    - Radiation off
64     b. StrMPoleSymplectic4RadPass - Radiation on
65
66  2. PLS and ASP
67     Quadrupole magnets pass methods:
68     a. QuadLinearPass             - Radiation off
69     b. StrMPoleSymplectic4RadPass - Radiation on
70
71     Bend magnet pass methods:
72     a. BndMPoleSymplectic4Pass    - Radiation off
73     b. BndMPoleSymplectic4RadPass - Radiation on
74
75     Sextupoles magnets pass methods:
76     a. StrMPoleSymplectic4Pass    - Radiation off
77     b. StrMPoleSymplectic4RadPass - Radiation on
78
79  3. ALS, CLS, ALBA, CAMD, VUV ring, and any ring not mentioned above
80     Quadrupole magnets pass methods:
81     a. StrMPoleSymplectic4Pass    - Radiation off
82     b. StrMPoleSymplectic4RadPass - Radiation on
83
84     Bend magnet pass methods:
85     a. BndMPoleSymplectic4Pass    - Radiation off
86     b. BndMPoleSymplectic4RadPass - Radiation on
87
88     Sextupoles magnets pass methods:
89     a. StrMPoleSymplectic4Pass    - Radiation off
90     b. StrMPoleSymplectic4RadPass - Radiation on
91
92  See also <a href="setpassmethod.html" class="code" title="function setpassmethod(ATIndex, PassMethod, DeviceList)">setpassmethod</a> <a href="getpassmethod.html" class="code" title="function [PassMethod, ATIndex, FamName] = getpassmethod(ATIndex, DeviceList)">getpassmethod</a> <a href="getcavity.html" class="code" title="function [CavityState, PassMethod, ATCavityIndex, RF, HarmNumber] = getcavity">getcavity</a> <a href="setcavity.html" class="code" title="function ATCavityIndex = setcavity(InputString)">setcavity</a>
93
94  Written by Greg Portmann</pre></div>
95
96<!-- crossreference -->
97<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
98This function calls:
99<ul style="list-style-image:url(../../matlabicon.gif)">
100</ul>
101This function is called by:
102<ul style="list-style-image:url(../../matlabicon.gif)">
103<li><a href="calccoupling.html" class="code" title="function [Tilt, Eta, Ratio, ENV, DP, DL] = calccoupling">calccoupling</a>   CALCCOUPLING - Calculates the coupling and tilt of the AT model</li><li><a href="getpvmodel.html" class="code" title="function [AM, tout, DataTime, ErrorFlag] = getpvmodel(varargin)">getpvmodel</a>   GETPVMODEL - Get the model value</li><li><a href="modeldisp.html" class="code" title="function [Dx, Dy, Sx, Sy] = modeldisp(varargin)">modeldisp</a>    MODELDISP - Returns the dispersion function of the model</li></ul>
104<!-- crossreference -->
105
106
107<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../up.png"></a></h2>
108<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [PassMethod, ATIndex, FamName, PassMethodOld, ATIndexOld, FamNameOld] = setradiation(InputString)</a>
1090002 <span class="comment">%SETRADIATION - Sets the model PassMethod to include or exclude radiation ('On' / 'Off' {Default})</span>
1100003 <span class="comment">%  [PassMethod, PassMethodOld, ATIndex, FamName] = setradiation('On' or 'Off')</span>
1110004 <span class="comment">%</span>
1120005 <span class="comment">%  INPUTS</span>
1130006 <span class="comment">%  1. 'On' or 'Off'</span>
1140007 <span class="comment">%</span>
1150008 <span class="comment">%  OUTPUTS</span>
1160009 <span class="comment">%  New AT model parameters</span>
1170010 <span class="comment">%  1. PassMethod - AT PassMethod field (cell array)</span>
1180011 <span class="comment">%  2. ATIndex    - AT index in THERING</span>
1190012 <span class="comment">%  3. FamName    - AT family name (cell array)</span>
1200013 <span class="comment">%  Old AT model parameters</span>
1210014 <span class="comment">%  4. PassMethodOld - AT PassMethod field (cell array)</span>
1220015 <span class="comment">%  5. ATIndexOld    - AT index in THERING</span>
1230016 <span class="comment">%  6. FamNameOld    - AT family name (cell array)</span>
1240017 <span class="comment">%</span>
1250018 <span class="comment">%  NOTE</span>
1260019 <span class="comment">%  1. setpassmethod(ATIndexOld, PassMethodOld) can be used to restore old PassMethods.</span>
1270020 <span class="comment">%  2. This function is machine specific so it is prone to being out-of-date.  All machine get the</span>
1280021 <span class="comment">%     same passmethods for radiation on. The potential confusion occurs when turning the radiation off.</span>
1290022 <span class="comment">%     The following is the list for how this function is programmed.  Please email me if</span>
1300023 <span class="comment">%     it is not correct for your accelerator.</span>
1310024 <span class="comment">%</span>
1320025 <span class="comment">%  1. Spear, Diamond, Soleil, NSRRC, SSRF, and the X-Ray ring</span>
1330026 <span class="comment">%     Quadrupole magnets pass methods:</span>
1340027 <span class="comment">%     a. QuadLinearPass             - Radiation off</span>
1350028 <span class="comment">%     b. StrMPoleSymplectic4RadPass - Radiation on</span>
1360029 <span class="comment">%</span>
1370030 <span class="comment">%     Bend magnet pass methods:</span>
1380031 <span class="comment">%     a. BendLinearPass             - Radiation off</span>
1390032 <span class="comment">%     b. BndMPoleSymplectic4RadPass - Radiation on</span>
1400033 <span class="comment">%</span>
1410034 <span class="comment">%     Sextupoles magnets pass methods:</span>
1420035 <span class="comment">%     a. StrMPoleSymplectic4Pass    - Radiation off</span>
1430036 <span class="comment">%     b. StrMPoleSymplectic4RadPass - Radiation on</span>
1440037 <span class="comment">%</span>
1450038 <span class="comment">%  2. PLS and ASP</span>
1460039 <span class="comment">%     Quadrupole magnets pass methods:</span>
1470040 <span class="comment">%     a. QuadLinearPass             - Radiation off</span>
1480041 <span class="comment">%     b. StrMPoleSymplectic4RadPass - Radiation on</span>
1490042 <span class="comment">%</span>
1500043 <span class="comment">%     Bend magnet pass methods:</span>
1510044 <span class="comment">%     a. BndMPoleSymplectic4Pass    - Radiation off</span>
1520045 <span class="comment">%     b. BndMPoleSymplectic4RadPass - Radiation on</span>
1530046 <span class="comment">%</span>
1540047 <span class="comment">%     Sextupoles magnets pass methods:</span>
1550048 <span class="comment">%     a. StrMPoleSymplectic4Pass    - Radiation off</span>
1560049 <span class="comment">%     b. StrMPoleSymplectic4RadPass - Radiation on</span>
1570050 <span class="comment">%</span>
1580051 <span class="comment">%  3. ALS, CLS, ALBA, CAMD, VUV ring, and any ring not mentioned above</span>
1590052 <span class="comment">%     Quadrupole magnets pass methods:</span>
1600053 <span class="comment">%     a. StrMPoleSymplectic4Pass    - Radiation off</span>
1610054 <span class="comment">%     b. StrMPoleSymplectic4RadPass - Radiation on</span>
1620055 <span class="comment">%</span>
1630056 <span class="comment">%     Bend magnet pass methods:</span>
1640057 <span class="comment">%     a. BndMPoleSymplectic4Pass    - Radiation off</span>
1650058 <span class="comment">%     b. BndMPoleSymplectic4RadPass - Radiation on</span>
1660059 <span class="comment">%</span>
1670060 <span class="comment">%     Sextupoles magnets pass methods:</span>
1680061 <span class="comment">%     a. StrMPoleSymplectic4Pass    - Radiation off</span>
1690062 <span class="comment">%     b. StrMPoleSymplectic4RadPass - Radiation on</span>
1700063 <span class="comment">%</span>
1710064 <span class="comment">%  See also setpassmethod getpassmethod getcavity setcavity</span>
1720065 <span class="comment">%</span>
1730066 <span class="comment">%  Written by Greg Portmann</span>
1740067
1750068
1760069
1770070 <span class="keyword">global</span> THERING
1780071
1790072 <span class="keyword">if</span> nargin == 0
1800073     InputString = <span class="string">'Off'</span>;
1810074 <span class="keyword">end</span>
1820075
1830076 ATIndex = [];
1840077 PassMethod = {};
1850078 FamName = {};
1860079
1870080 <span class="comment">% Old passmethods</span>
1880081 <span class="keyword">if</span> nargout &gt; 3
1890082     ATIndexOld = [];
1900083     PassMethodOld = {};
1910084     FamNameOld = {};
1920085     localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'QuadLinearPass'</span>);
1930086     <span class="keyword">if</span> ~isempty(localindex)
1940087         ATIndexOld = [ATIndexOld localindex(:)'];
1950088         PassMethodOld = [PassMethodOld; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
1960089         FamNameOld    = [FamNameOld;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
1970090     <span class="keyword">end</span>
1980091     localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'StrMPoleSymplectic4Pass'</span>);
1990092     <span class="keyword">if</span> ~isempty(localindex)
2000093         ATIndexOld = [ATIndexOld localindex(:)'];
2010094         PassMethodOld = [PassMethodOld; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
2020095         FamNameOld    = [FamNameOld;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
2030096     <span class="keyword">end</span>
2040097     localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'StrMPoleSymplectic4RadPass'</span>);
2050098     <span class="keyword">if</span> ~isempty(localindex)
2060099         ATIndexOld = [ATIndexOld localindex(:)'];
2070100         PassMethodOld = [PassMethodOld; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
2080101         FamNameOld    = [FamNameOld;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
2090102     <span class="keyword">end</span>
2100103
2110104     localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BendLinearPass'</span>);
2120105     <span class="keyword">if</span> ~isempty(localindex)
2130106         ATIndexOld = [ATIndexOld localindex(:)'];
2140107         PassMethodOld = [PassMethodOld; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
2150108         FamNameOld    = [FamNameOld;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
2160109     <span class="keyword">end</span>
2170110     localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BndMPoleSymplectic4Pass'</span>);
2180111     <span class="keyword">if</span> ~isempty(localindex)
2190112         ATIndexOld = [ATIndexOld localindex(:)'];
2200113         PassMethodOld = [PassMethodOld; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
2210114         FamNameOld    = [FamNameOld;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
2220115     <span class="keyword">end</span>
2230116     localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BndMPoleSymplectic4RadPass'</span>);
2240117     <span class="keyword">if</span> ~isempty(localindex)
2250118         ATIndexOld = [ATIndexOld localindex(:)'];
2260119         PassMethodOld = [PassMethodOld; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
2270120         FamNameOld    = [FamNameOld;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
2280121     <span class="keyword">end</span>
2290122     ATIndexOld = ATIndexOld(:);
2300123     <span class="keyword">if</span> length(PassMethodOld) == 1
2310124         PassMethodOld = PassMethodOld{1};
2320125         FamNameOld    = FamNameOld{1};
2330126     <span class="keyword">end</span>
2340127 <span class="keyword">end</span>
2350128
2360129
2370130 <span class="comment">% Main</span>
2380131 <span class="keyword">switch</span> lower(InputString)
2390132
2400133     <span class="keyword">case</span> <span class="string">'off'</span>
2410134       
2420135         MachineName = lower(getfamilydata(<span class="string">'Machine'</span>));
2430136         <span class="keyword">if</span> any([findstr(MachineName,<span class="string">'spear'</span>) findstr(MachineName,<span class="string">'x-ray'</span>) findstr(MachineName,<span class="string">'diamond'</span>) findstr(MachineName,<span class="string">'soleil'</span>) findstr(MachineName,<span class="string">'ssrf'</span>) findstr(MachineName,<span class="string">'NSRRC'</span>) findstr(MachineName,<span class="string">'sps'</span>)])
2440137
2450138             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'StrMPoleSymplectic4RadPass'</span>);
2460139             <span class="keyword">if</span> ~isempty(localindex)
2470140                 <span class="keyword">for</span> i = 1:length(localindex)
2480141                     <span class="keyword">if</span> isfield(THERING{localindex(i)},<span class="string">'K'</span>)
2490142                         <span class="comment">% Quadupoles</span>
2500143                         THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>, localindex(i), <span class="string">'QuadLinearPass'</span>);
2510144                     <span class="keyword">else</span>
2520145                         <span class="comment">% Sextupoles, etc.</span>
2530146                         THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>, localindex(i), <span class="string">'StrMPoleSymplectic4Pass'</span>);
2540147                     <span class="keyword">end</span>
2550148                     PassMethod{i,1} = THERING{localindex(i)}.PassMethod;
2560149                     FamName{i,1}    = THERING{localindex(i)}.FamName;
2570150                 <span class="keyword">end</span>
2580151                 ATIndex = localindex(:)';
2590152             <span class="keyword">end</span>
2600153
2610154             <span class="comment">% Bends</span>
2620155             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BndMPoleSymplectic4RadPass'</span>);
2630156             <span class="keyword">if</span> ~isempty(localindex)
2640157                 THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex, <span class="string">'BendLinearPass'</span>);
2650158                 ATIndex = [ATIndex localindex(:)'];
2660159                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
2670160                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
2680161             <span class="keyword">end</span>
2690162             
2700163             <span class="comment">% Output</span>
2710164             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'QuadLinearPass'</span>);
2720165             <span class="keyword">if</span> ~isempty(localindex)
2730166                 ATIndex = [ATIndex localindex(:)'];
2740167                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
2750168                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
2760169             <span class="keyword">end</span>
2770170             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'StrMPoleSymplectic4Pass'</span>);
2780171             <span class="keyword">if</span> ~isempty(localindex)
2790172                 ATIndex = [ATIndex localindex(:)'];
2800173                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
2810174                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
2820175             <span class="keyword">end</span>
2830176             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BendLinearPass'</span>);
2840177             <span class="keyword">if</span> ~isempty(localindex)
2850178                 ATIndex = [ATIndex localindex(:)'];
2860179                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
2870180                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
2880181             <span class="keyword">end</span>
2890182
2900183         <span class="keyword">elseif</span> any([findstr(MachineName,<span class="string">'pls'</span>) findstr(MachineName,<span class="string">'asp'</span>)])
2910184
2920185             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'StrMPoleSymplectic4RadPass'</span>);
2930186             <span class="keyword">if</span> ~isempty(localindex)
2940187                 <span class="keyword">for</span> i = 1:length(localindex)
2950188                     <span class="keyword">if</span> isfield(THERING{localindex(i)},<span class="string">'K'</span>)
2960189                         <span class="comment">% Quadupoles</span>
2970190                         THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>, localindex(i), <span class="string">'QuadLinearPass'</span>);
2980191                     <span class="keyword">else</span>
2990192                         <span class="comment">% Sextupoles, etc.</span>
3000193                         THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>, localindex(i), <span class="string">'StrMPoleSymplectic4Pass'</span>);
3010194                     <span class="keyword">end</span>
3020195                     PassMethod{i,1} = THERING{localindex(i)}.PassMethod;
3030196                     FamName{i,1}    = THERING{localindex(i)}.FamName;
3040197                 <span class="keyword">end</span>
3050198                 ATIndex = localindex(:)';
3060199             <span class="keyword">end</span>
3070200
3080201             <span class="comment">% Bends</span>
3090202             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BndMPoleSymplectic4RadPass'</span>);
3100203             <span class="keyword">if</span> ~isempty(localindex)
3110204                 THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex, <span class="string">'BndMPoleSymplectic4Pass'</span>);
3120205                 ATIndex = [ATIndex localindex(:)'];
3130206                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
3140207                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
3150208             <span class="keyword">end</span>
3160209
3170210             <span class="comment">% Output</span>
3180211             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'QuadLinearPass'</span>);
3190212             <span class="keyword">if</span> ~isempty(localindex)
3200213                 ATIndex = [ATIndex localindex(:)'];
3210214                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
3220215                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
3230216             <span class="keyword">end</span>
3240217             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'StrMPoleSymplectic4Pass'</span>);
3250218             <span class="keyword">if</span> ~isempty(localindex)
3260219                 ATIndex = [ATIndex localindex(:)'];
3270220                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
3280221                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
3290222             <span class="keyword">end</span>
3300223             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BndMPoleSymplectic4Pass'</span>);
3310224             <span class="keyword">if</span> ~isempty(localindex)
3320225                 ATIndex = [ATIndex localindex(:)'];
3330226                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
3340227                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
3350228             <span class="keyword">end</span>
3360229
3370230         <span class="keyword">else</span>
3380231
3390232             <span class="comment">% Quadupoles, Sextupoles, etc.</span>
3400233             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'StrMPoleSymplectic4RadPass'</span>);
3410234             <span class="keyword">if</span> ~isempty(localindex)
3420235                 THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex, <span class="string">'StrMPoleSymplectic4Pass'</span>);
3430236                 ATIndex = localindex(:)';
3440237                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
3450238                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
3460239             <span class="keyword">end</span>
3470240
3480241             <span class="comment">% Bends</span>
3490242             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BndMPoleSymplectic4RadPass'</span>);
3500243             <span class="keyword">if</span> ~isempty(localindex)
3510244                 THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex, <span class="string">'BndMPoleSymplectic4Pass'</span>);
3520245                 ATIndex = [ATIndex localindex(:)'];
3530246                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
3540247                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
3550248             <span class="keyword">end</span>
3560249
3570250             <span class="comment">% Output</span>
3580251             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'StrMPoleSymplectic4Pass'</span>);
3590252             <span class="keyword">if</span> ~isempty(localindex)
3600253                 ATIndex = [ATIndex localindex(:)'];
3610254                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
3620255                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
3630256             <span class="keyword">end</span>
3640257             localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BndMPoleSymplectic4Pass'</span>);
3650258             <span class="keyword">if</span> ~isempty(localindex)
3660259                 ATIndex = [ATIndex localindex(:)'];
3670260                 PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
3680261                 FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
3690262             <span class="keyword">end</span>
3700263
3710264         <span class="keyword">end</span>
3720265
3730266
3740267     <span class="keyword">case</span> <span class="string">'on'</span>
3750268         
3760269         <span class="comment">% Sextupoles, etc.</span>
3770270         localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'StrMPoleSymplectic4Pass'</span>);
3780271         <span class="keyword">if</span> ~isempty(localindex)
3790272             THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex, <span class="string">'StrMPoleSymplectic4RadPass'</span>);
3800273         <span class="keyword">end</span>
3810274
3820275         <span class="comment">% Quadupoles</span>
3830276         localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'QuadLinearPass'</span>);
3840277         <span class="keyword">if</span> ~isempty(localindex)
3850278             THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex, <span class="string">'StrMPoleSymplectic4RadPass'</span>);
3860279         <span class="keyword">end</span>
3870280
3880281         <span class="comment">% Bends</span>
3890282         localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BndMPoleSymplectic4Pass'</span>);
3900283         <span class="keyword">if</span> ~isempty(localindex)
3910284             THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex, <span class="string">'BndMPoleSymplectic4RadPass'</span>);
3920285         <span class="keyword">end</span>
3930286
3940287         localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BendLinearPass'</span>);
3950288         <span class="keyword">if</span> ~isempty(localindex)
3960289             THERING = setcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex, <span class="string">'BndMPoleSymplectic4RadPass'</span>);
3970290         <span class="keyword">end</span>
3980291
3990292         <span class="comment">% Output</span>
4000293         localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'StrMPoleSymplectic4RadPass'</span>);
4010294         <span class="keyword">if</span> ~isempty(localindex)
4020295             ATIndex = [ATIndex localindex(:)'];
4030296             PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
4040297             FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
4050298         <span class="keyword">end</span>
4060299         localindex = findcells(THERING,<span class="string">'PassMethod'</span>,<span class="string">'BndMPoleSymplectic4RadPass'</span>);
4070300         <span class="keyword">if</span> ~isempty(localindex)
4080301             ATIndex = [ATIndex localindex(:)'];
4090302             PassMethod = [PassMethod; getcellstruct(THERING,<span class="string">'PassMethod'</span>,localindex)];
4100303             FamName    = [FamName;    getcellstruct(THERING,<span class="string">'FamName'</span>,   localindex)];
4110304         <span class="keyword">end</span>
4120305         <span class="comment">%disp(['PassMethod was changed to include radiation in ',num2str(length(ATIndex)),  ' elements'])</span>
4130306 <span class="keyword">end</span>
4140307
4150308
4160309 ATIndex = ATIndex(:);
4170310
4180311
4190312 <span class="keyword">if</span> length(PassMethod) == 1
4200313     PassMethod = PassMethod{1};
4210314     FamName    = FamName{1};
4220315 <span class="keyword">end</span>
4230316</pre></div>
424<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>
425</body>
426</html>
Note: See TracBrowser for help on using the repository browser.