Repository navigation
Expand file tree
/
Copy pathMatchToWaist4D.html
More file actions
149 lines (144 loc) · 67.2 KB
/
Copy pathMatchToWaist4D.html
File metadata and controls
149 lines (144 loc) · 67.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,IE=9,chrome=1"><meta name="generator" content="MATLAB 2021a"><title>Match to a waist (Section 3.6.2)</title><style type="text/css">.rtcContent { padding: 30px; } .S0 { margin: 2px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: normal; text-align: left; }
.S1 { margin: 15px 10px 5px 4px; padding: 0px; line-height: 28.8px; min-height: 0px; white-space: pre-wrap; color: rgb(213, 80, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 24px; font-weight: normal; text-align: left; }
.CodeBlock { background-color: #F7F7F7; margin: 10px 0 10px 0;}
.S2 { border-left: 1px solid rgb(233, 233, 233); border-right: 1px solid rgb(233, 233, 233); border-top: 1px solid rgb(233, 233, 233); border-bottom: 0px none rgb(0, 0, 0); border-radius: 4px 4px 0px 0px; padding: 6px 45px 0px 13px; line-height: 17.234px; min-height: 18px; white-space: nowrap; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.S3 { border-left: 1px solid rgb(233, 233, 233); border-right: 1px solid rgb(233, 233, 233); border-top: 0px none rgb(0, 0, 0); border-bottom: 0px none rgb(0, 0, 0); border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 17.234px; min-height: 18px; white-space: nowrap; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.S4 { border-left: 1px solid rgb(233, 233, 233); border-right: 1px solid rgb(233, 233, 233); border-top: 0px none rgb(0, 0, 0); border-bottom: 1px solid rgb(233, 233, 233); border-radius: 0px; padding: 0px 45px 4px 13px; line-height: 17.234px; min-height: 18px; white-space: nowrap; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.S5 { color: rgb(64, 64, 64); padding: 10px 0px 6px 17px; background: rgb(255, 255, 255) none repeat scroll 0% 0% / auto padding-box border-box; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; overflow-x: hidden; line-height: 17.234px; }
.variableValue { width: 100% !important; }
.embeddedOutputsMatrixElement,.eoOutputWrapper .matrixElement { min-height: 18px; box-sizing: border-box;}
.embeddedOutputsMatrixElement .matrixElement,.eoOutputWrapper .matrixElement,.rtcDataTipElement .matrixElement { position: relative;}
.matrixElement .variableValue,.rtcDataTipElement .matrixElement .variableValue { white-space: pre; display: inline-block; vertical-align: top; overflow: hidden;}
.embeddedOutputsMatrixElement.inlineElement {}
.embeddedOutputsMatrixElement.inlineElement .topHeaderWrapper { display: none;}
.embeddedOutputsMatrixElement.inlineElement .veTable .body { padding-top: 0 !important; max-height: 100px;}
.inlineElement .matrixElement { max-height: 300px;}
.embeddedOutputsMatrixElement.rightPaneElement {}
.rightPaneElement .matrixElement,.rtcDataTipElement .matrixElement { overflow: hidden; padding-left: 9px;}
.rightPaneElement .matrixElement { margin-bottom: -1px;}
.embeddedOutputsMatrixElement .matrixElement .valueContainer,.eoOutputWrapper .matrixElement .valueContainer,.rtcDataTipElement .matrixElement .valueContainer { white-space: nowrap; margin-bottom: 3px;}
.embeddedOutputsMatrixElement .matrixElement .valueContainer .horizontalEllipsis.hide,.embeddedOutputsMatrixElement .matrixElement .verticalEllipsis.hide,.eoOutputWrapper .matrixElement .valueContainer .horizontalEllipsis.hide,.eoOutputWrapper .matrixElement .verticalEllipsis.hide,.rtcDataTipElement .matrixElement .valueContainer .horizontalEllipsis.hide,.rtcDataTipElement .matrixElement .verticalEllipsis.hide { display: none;}
.embeddedOutputsVariableMatrixElement .matrixElement .valueContainer.hideEllipses .verticalEllipsis, .embeddedOutputsVariableMatrixElement .matrixElement .valueContainer.hideEllipses .horizontalEllipsis { display:none;}
.embeddedOutputsMatrixElement .matrixElement .valueContainer .horizontalEllipsis,.eoOutputWrapper .matrixElement .valueContainer .horizontalEllipsis { margin-bottom: -3px;}
.eoOutputWrapper .embeddedOutputsVariableMatrixElement .matrixElement .valueContainer { cursor: default !important;}
.embeddedOutputsVariableElement { white-space: pre-wrap; word-wrap: break-word; min-height: 18px; max-height: 250px; overflow: auto;}
.variableElement {}
.embeddedOutputsVariableElement.inlineElement {}
.inlineElement .variableElement {}
.embeddedOutputsVariableElement.rightPaneElement { min-height: 16px;}
.rightPaneElement .variableElement { padding-top: 2px; padding-left: 9px;}
.variableNameElement { margin-bottom: 3px; display: inline-block;}
/* * Ellipses as base64 for HTML export. */.matrixElement .horizontalEllipsis,.rtcDataTipElement .matrixElement .horizontalEllipsis { display: inline-block; margin-top: 3px; /* base64 encoded version of images-liveeditor/HEllipsis.png */ width: 30px; height: 12px; background-repeat: no-repeat; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAJCAYAAADO1CeCAAAAJUlEQVR42mP4//8/A70xw0i29BUDFPxnAEtTW37wWDqakIa4pQDvOOG89lHX2gAAAABJRU5ErkJggg==");}
.matrixElement .verticalEllipsis,.textElement .verticalEllipsis,.rtcDataTipElement .matrixElement .verticalEllipsis,.rtcDataTipElement .textElement .verticalEllipsis { margin-left: 35px; /* base64 encoded version of images-liveeditor/VEllipsis.png */ width: 12px; height: 30px; background-repeat: no-repeat; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAZCAYAAAAIcL+IAAAALklEQVR42mP4//8/AzGYgWyFMECMwv8QddRS+P//KyimlmcGUOFoOI6GI/UVAgDnd8Dd4+NCwgAAAABJRU5ErkJggg==");}
.S6 { border-left: 1px solid rgb(233, 233, 233); border-right: 1px solid rgb(233, 233, 233); border-top: 0px none rgb(0, 0, 0); border-bottom: 1px solid rgb(233, 233, 233); border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 17.234px; min-height: 18px; white-space: nowrap; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.S7 { margin: 10px 10px 9px 4px; padding: 0px; line-height: 21px; min-height: 0px; white-space: pre-wrap; color: rgb(0, 0, 0); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 14px; font-weight: normal; text-align: left; }
.S8 { border-left: 1px solid rgb(233, 233, 233); border-right: 1px solid rgb(233, 233, 233); border-top: 1px solid rgb(233, 233, 233); border-bottom: 0px none rgb(0, 0, 0); border-radius: 0px; padding: 6px 45px 0px 13px; line-height: 17.234px; min-height: 18px; white-space: nowrap; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }
.S9 { margin: 3px 10px 5px 4px; padding: 0px; line-height: 20px; min-height: 0px; white-space: pre-wrap; color: rgb(60, 60, 60); font-family: Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: bold; text-align: left; }</style></head><body><div class = rtcContent><div class = 'S0'><span>Companion software for "Volker Ziemann, </span><span style=' font-style: italic;'>Hands-on Accelerator physics using MATLAB, CRCPress, 2019</span><span>" (https://www.crcpress.com/9781138589940)</span></div><h1 class = 'S1'><span>Match to a waist (Section 3.6.2)</span></h1><div class = 'S0'><span>Volker Ziemann, 211115, CC-BY-SA-4.0</span></div><div class = 'S0'><span style=' font-weight: bold;'>Important: </span><span>requires the functions for the 4D calculations, available in the </span><span style=' font-family: monospace;'>chap3/4D</span><span> subdirectory from the zip file with all MATLAB scripts. Needed for </span><span style=' font-family: monospace;'>calcmat()</span><span> and </span><span style=' font-family: monospace;'>plot_betas(). </span></div><div class = 'S0'><span>Here we use the FODO cell with phase advances 60 and 90 degrred from a previous live script and just assign in to the </span><span style=' font-family: monospace;'>beamline</span><span>, before calculating all transfer matrices and calculating the periodic beam matrix </span><span style=' font-family: monospace;'>sigma0</span><span> with emittances set to unity, such that </span><span style=' font-family: monospace;'>sigma0</span><span> contains the Twiss parameters </span><span style="font-family: STIXGeneral, STIXGeneral-webfont, serif; font-style: italic; font-weight: normal; color: rgb(0, 0, 0);">α</span><span>, </span><span style="font-family: STIXGeneral, STIXGeneral-webfont, serif; font-style: italic; font-weight: normal; color: rgb(0, 0, 0);">β</span><span>, and </span><span style="font-family: STIXGeneral, STIXGeneral-webfont, serif; font-style: italic; font-weight: normal; color: rgb(0, 0, 0);">γ</span><span>. </span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S2'><span style="white-space: pre"><span >clear </span><span style="color: rgb(170, 4, 249);">all</span><span >; close </span><span style="color: rgb(170, 4, 249);">all</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span style="color: rgb(14, 0, 255);">global </span><span >beamline sigma0</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >addpath </span><span style="color: rgb(170, 4, 249);">./4D</span><span > </span><span style="color: rgb(2, 128, 9);">% use the 4D software</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span style="color: rgb(2, 128, 9);">%beamline=dlmread('fodo6090.bl'); % use this file for one cell</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >fodo=[1, 5, 0.2, 0; </span><span style="color: rgb(2, 128, 9);">% just the contents of that file</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span > 2, 1, 0, -1.4748;</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span > 1, 10, 0.2, 0;</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span > 2, 1, 0, 1.8082;</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span > 1, 5, 0.2, 0];</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >beamline=fodo;</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >[Racc,spos,nmat,nlines]=calcmat(beamline); </span><span style="color: rgb(2, 128, 9);">% get matrices</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >Rturn=Racc(:,:,end); </span><span style="color: rgb(2, 128, 9);">% the last one</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >sigma0=periodic_beammatrix(Rturn,1,1); </span><span style="color: rgb(2, 128, 9);">% get betas</span></span></div></div><div class="inlineWrapper outputs"><div class = 'S4'><span style="white-space: pre"><span >beamline=repmat(fodo,3,1) </span><span style="color: rgb(2, 128, 9);">% three cells</span></span></div><div class = 'S5'><div class="inlineElement eoOutputWrapper embeddedOutputsVariableMatrixElement" uid="57DAA7DE" data-scroll-top="null" data-scroll-left="null" data-width="1334" data-testid="output_0" style="width: 1364px; white-space: normal; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"><div class="matrixElement veSpecifier" style="white-space: normal; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"><div class="veVariableName variableNameElement double" style="width: 1334px; white-space: normal; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"><div class="headerElementClickToInteract" style="white-space: normal; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"><span style="white-space: normal; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;">beamline = </span><span class="veVariableValueSummary veMetaSummary" style="white-space: normal; font-style: normal; color: rgb(179, 179, 179); font-size: 12px;">15×4</span></div></div><div class="valueContainer" data-layout="{"columnWidth":72,"totalColumns":4,"totalRows":15,"charsPerColumn":10}" style="white-space: nowrap; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"><div class="variableValue" style="width: 290px; white-space: pre; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"> 1.0000 5.0000 0.2000 0
2.0000 1.0000 0 -1.4748
1.0000 10.0000 0.2000 0
2.0000 1.0000 0 1.8082
1.0000 5.0000 0.2000 0
1.0000 5.0000 0.2000 0
2.0000 1.0000 0 -1.4748
1.0000 10.0000 0.2000 0
2.0000 1.0000 0 1.8082
1.0000 5.0000 0.2000 0
</div><div class="horizontalEllipsis hide" style="white-space: nowrap; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"></div><div class="verticalEllipsis" style="white-space: nowrap; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"></div></div></div></div></div></div></div><div class = 'S0'><span>Using this beamline will work, but some of the focal lengths will turn out to be rather small and, moreover, the beta functions in the last quads are very large. Often it helps to increase the space between the last quadrupole and the waist and we define the entire beamline to consist of three cells and the extra drift added to the end.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S2'><span style="white-space: pre"><span style="color: rgb(2, 128, 9);">% extra_drift=[1,5,0.2,0]; % define addl. drift</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: rgb(2, 128, 9);">% beamline=[repmat(fodo,3,1);extra_drift] % make beamline longer</span></span></div></div></div><div class = 'S7'><span>Uncomment these two lines and see how the beta functions become much smaller.</span></div><div class = 'S0'><span>The following two lines will change the repeat code of drift spaces, which would essentially move the quadrupoles closer together. Here 11 and 13 refer to the respective lines in the </span><span style=' font-family: monospace;'>beamline</span><span> where we change the repeat code. You can uncomment these lines to explore what happens later.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S2'><span style="white-space: pre"><span style="color: rgb(2, 128, 9);">% beamline(11,2)=13; % change quadrupole positions</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: rgb(2, 128, 9);">% beamline(13,2)=2;</span></span></div></div></div><div class = 'S0'><span>Now we are ready to find focal lengths of the four quadrupoles in the second and third fodo cell. Why do we need four quadrupoles? Well, we want to set the horizontal and vertical beta functions at the final position, which accounts for two degrees of freedom we want to control. That we want a waist additionally requires that </span><span texencoding="\alpha_x" style="vertical-align:-6px"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAoCAYAAACfKfiZAAACT0lEQVRYR+3XS6iNURQH8N9NDCh5zQy8n0kYECWJlDcZiCJRhBQTrww8QkxITBATr5T3K69IIqKUEIWJvFLIgCS0ah8dp++499zOvTf1fXU6X/usvdZ//fda/7VPjSZ+apo4vhxAzkDOQM5AzsB/w0BfTEAnvMJl3EtzpCUGpvfneFvJfKmNgV7YgQFYiBuYgy1Yha1Yim34hh4JYJ0x/AvAaBxDM4zA/SKv5zEG/XEa3RKYFXWOnAzLAYjM76I1Jqcgxb6XJGYuYCw+oSs+VgvAHQzGdYzMcDoeZ4vWV6ZjqTR+5n0gMj6ZPAXNUXClzyhcSYuv0R1fK45OJoDjmIpH6FfG6SLsSr/Nx576BI89pTUQBfcZrbAdy8o4PodxeJpA/qgWgI5FbTQX+zMcD8WttD4DR+obPIuBoPxhcjixpNAK9rcxJNkMx81qAmiPD8nhFJwqcT4TB/EdLTALBxD9H2y9rxRMlg48Rh+sxuYih10Q2X/BmkT9TqzDPkwqsm2LYDAAd06CFaBjX9RVrF/MOoJYm4ajeIFBKWDUxjW8xGz8TNnGd4jPdFzNyD5YPJHEKgq7efpcwrtyAGI91G052qWCi4wO4Qx+pUBBfcj1hqKWLMUQgyq6KvaFfO8tNahtGFV6pFn2Ielt0Dsx95dNYwA4nAZXhyL2/oBoaADDUpHGUcWd4kljHkFM0o3YhJgXC7AbPfGsAKQhGIg5ETejUNLFSVci8zdJQ+K9oKRV/3ccCT1IrRYtWMh0HtZifengaggGKuqcHEDOQM7AbxHcbimWAnN+AAAAAElFTkSuQmCC" width="16" height="20" /></span><span> and </span><span texencoding="\alpha_y" style="vertical-align:-6px"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAoCAYAAABw65OnAAACkUlEQVRYR+3WXejOZxgH8A8riVpGOVlZNjKSxoHlYMnLlPfXLBaNpEarOfGW0nIgHHiJImUllpb3tx2MSCKLIy9LDSfSGjVCJKFL16PfHs/f3//xf56snvvkebrv+3fd3/t7fa/vdbfxHow27wEGDRClLDSYaDBRXpENTTQ08b/WRB+MwSe4id9xPm/UAf3z/zX83dJ+1Fx19MIGfIHvcQrfYRWWYDV+xFo8Rs8E2SIcbwIxHHvwAQbjQiHyUYxAPxzEZwloUYtOz81NgQgG/sCHGJ8HFeP/kAz9hpG4i0/xb2uCOIeBOIkhFQKPxuHC/OJMUTUYKr4n4ub7M1pQHiIsH8NwLCdvoQceVYWAiiD2YiIuo28TgedhU67NxdZqAcR35ZoIEd5DR6zDgiaCH8EoXE2gT1sTxMeFEpuNnysEH4QzOT8Nu94FQCUmgv6LGXRsmfhK+8/iy9zzFU63NoguuJNBJ+BA2QHTsRNP0A4zsAPhD8HaP9UAquQTV9AbS7GyELQ7goX7WJZp2IifsA3jCnujrCOdQ9NZt+da2HuU9jdFBiuBmIxfcR0D8tDQygncwEw8y1vHbxhUBD1exkIwFal9mHFiuRNC1AFqS2l/U44ZLrgQnVOEH+EXHMLz/DjSENa+olCu5dmYj2ArespfuTgnAceFXo7mGlg1KS5+E1YenTWa3+ZciBRH83s1ag0iDgovuYRIczhrdOTd9QaxHuEnXbE80xdaqisTpbKemm+O0NV/Rj3S8Tn+TM8J73lt1ANEW9xOly1VSN2ZiFbwdT4BK1ZbrZmIbhyWHoIs+Utd0tENkxDv0G+xBg/eZDi1YGJK9pV9mNUcgFo6Zvssx7dy3Fow8VYH19usmgX1AuvHdSk6zIi9AAAAAElFTkSuQmCC" width="16.5" height="20" /></span><span> are zero. This accounts for two more degrees of freedom, which require two more quads to adjust. Thus we need four quadrupoles and </span><span style=' font-family: monospace;'>x0</span><span> contains the initial guesses. The call to fminsearch() in the next line minimizes the squared difference between the deesired and actual Twiss parameters, which is calculated in the function chisq_waist(). Finally we plot the beat functions with sigma0, the matched beam matrix for the 60-90 cells, used as starting beam.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S2'><span style="white-space: pre"><span >x0=[-1,2.,-2,2]; </span><span style="color: rgb(2, 128, 9);">% starting guesses</span></span></div></div><div class="inlineWrapper outputs"><div class = 'S4'><span style="white-space: pre"><span >[x,fval]=fminsearch(@chisq_waist,x0) </span><span style="color: rgb(2, 128, 9);">% minimze</span></span></div><div class = 'S5'><div class="inlineElement eoOutputWrapper embeddedOutputsVariableMatrixElement" uid="4D052A2B" data-scroll-top="null" data-scroll-left="null" data-width="1334" data-testid="output_1" style="width: 1364px; white-space: normal; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"><div class="matrixElement veSpecifier" style="white-space: normal; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"><div class="veVariableName variableNameElement double" style="width: 1334px; white-space: normal; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"><div class="headerElementClickToInteract" style="white-space: normal; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"><span style="white-space: normal; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;">x = </span><span class="veVariableValueSummary veMetaSummary" style="white-space: normal; font-style: normal; color: rgb(179, 179, 179); font-size: 12px;">1×4</span></div></div><div class="valueContainer" data-layout="{"columnWidth":72,"totalColumns":4,"totalRows":1,"charsPerColumn":10}" style="white-space: nowrap; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"><div class="variableValue" style="width: 290px; white-space: pre; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"> -2.1158 0.7894 -1.3240 0.7215
</div><div class="horizontalEllipsis hide" style="white-space: nowrap; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"></div><div class="verticalEllipsis hide" style="white-space: nowrap; font-style: normal; color: rgb(64, 64, 64); font-size: 12px;"></div></div></div></div><div class='variableElement' style='font-family: Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 12px; '>fval = 0.9839</div></div></div><div class="inlineWrapper"><div class = 'S8'><span style="white-space: pre"><span >plot_betas(beamline,sigma0) </span><span style="color: rgb(2, 128, 9);">% show betas</span></span></div></div><div class="inlineWrapper outputs"><div class = 'S4'><span style="white-space: pre"><span >drawmag(beamline,12,2)</span></span></div><div class = 'S5'><div class="inlineElement eoOutputWrapper embeddedOutputsFigure" uid="FB95E6E1" data-scroll-top="null" data-scroll-left="null" data-testid="output_3" style="width: 1364px;"><div class="figureElement"><div class="figureContainingNode" style="width: 560px; max-width: 100%; display: inline-block;"><div class="GraphicsView" data-dojo-attach-point="graphicsViewNode,backgroundColorNode" id="uniqName_333_0" widgetid="uniqName_333_0" style="width: 100%; height: auto;"><div class="ImageView" id="uniqName_333_2" widgetid="uniqName_333_2" style="width: 100%; height: auto;">
<canvas class="ImageView" data-dojo-attach-point="canvasViewNode" draggable="false" ondragstart="return false;" style="width: 100%; height: auto; display: none;"></canvas>
<img class="ImageView figureImage" data-dojo-attach-point="imageViewNode" draggable="false" ondragstart="return false;" style="width: 100%; height: auto; display: inline;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAYAAAAv7h+nAAAgAElEQVR4AezBDbDddWHm8W/+4FAvjERgmQZG8zsO+vDmgiKw1MA9OLQNO2KqWHkTw+rUgktwdIpIZpsUp9uWTcaBZifoUhuoQ9lW3lx2MaTZcE54mU2mNesSIw+XzfndTafgpJKUtSyI92bndOZ0bqlgXu5Ncm+ez6fZFRERETHNNERERERMMw0RERER00xDRERExDTTEBERETHNNERERERMMw0RERER00xDRERExDTTEBERETHNNERERERMMw0RERER00xDRERExDTTEBERETHNNERERERMMw0RERER00xDRERExDTTEBERETHNNERERERMMw0RERER00xDRERExDTTEBERETHNNERERERMMw0RERER00xDRERExDTTEBERETHNNERERERMMw0RERER00xDRERExDTTEBERETHNNERERERMMw0RERER00xD/FxXX301kpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISV199NTNRQ/xcGzduxDa2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9v02cY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sY5s+29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGObPtvYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWzTZxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW36bGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sc3GjRuZiRoiIiIippmGiIiIiGmmIWIfXX/99cQbu/7664k3d/311xNv7Prrryfe2PXXX08cehoi9tGiRYuIN7Zo0SLizS1atIh4Y4sWLSLe2KJFi4hDT0NERETENNMQERERMc00REREREwzDRERERHTTENERETENNMQERGxH1199dVIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQh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hCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCTOOeccDnUN09TOnTu5+eab+aM/+iMmGhsbY+nSpdx9990sW7aM++67j1WrVlFrpW9sbIylS5dy9913s2zZMu677z5WrVpFrZWIiJh63/zmN7GNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2OaEE07g2Wef5Sc/+Qm2sY1tbGMb29jGNo8++ijPPvsszz77LL/0S7+EbWxjG9vYxja2sY1tbGMb29jGNraxjW1sY5tvfvObHOoapqnbbruNY445ht/7vd9jovXr1zN79mxOOukk+o455hguuOACnnjiCfrWr1/P7NmzOemkk+g75phjuOCCC3jiiSeIiIh4I7VWOp0OfaUUfp5SCjF1GqapJUuWcOONN/LWt76ViXbu3MnJJ5/MREcddRTPPvssfTt37uTkk09moqOOOopnn32WiIiI3dFut4kDq2GaapqGn2VsbIymaZioaRrGx8fpGxsbo2kaJmqahvHxcd6MJCQhiRUrVhAREYeWWisDc+fOZXeUUuirtbK/rFixAklIQhIzVcMMc8QRRzA2NsZE4+PjHH744fQdccQRjI2NMdH4+DiHH344b8Y2trHNokWLiIiIQ0u322WglMLBatGiRdjGNraZqRpmmOOPP57Nmzcz0Y4dOzjrrLPoO/7449m8eTMT7dixg7POOouIiIg30ul0GGi32+yJWisxuRpmmLPPPpu+brdL38jICE899RTnnXcefWeffTZ93W6XvpGREZ566inOO+88IiIifp5SCrurlEJfrZWYXA0zTNM0LF++nMWLF7Nw4UKuuOIKbr31Vo477jj6mqZh+fLlLF68mIULF3LFFVdw6623ctxxxxEREfFGOp0OfaUUdlcphZgaDdPc8PAwjz/+OBOde+65PPnkk9xxxx1s3LiR+fPnM9G5557Lk08+yR133MHGjRuZP38+ERERb6TWykC73SYOvIYZbGhoiKZpeCNDQ0M0TUNERMSbqbWyr2qtxORpiIiIiDfV7XYZGB4eZneVUoip0RARERFvqtbKQCmF3TV37lwGaq3E5GmIiIiIN1Vrpa+UQimFvVFrJSZPQ0RERLypTqdDXymFODg0RERExBuqtTJQSmFPlFKIqdEQERERb6jWykAphb01OjpKTJ6GiIiIeEPdbpeB4eFh9kQphZgaDREREbFbSinsiVIKA7VWYvI0RERExBvqdDr0lVIopRAHh4aIiIh4Q7VW+kop7I1SCn21VmLyNERERMTPVGul1kocfBoiIiLiZ6q1MtBut9kXtVZi8jRERETEz1RrZWB4eJi9UUqhr9ZKTJ6GiIiI+JlGR0fZV6UUYvI1RERExM/U6XToK6XQbreJg0dDRERE/Ey1ViZTrZWYHA0RERHxz9RaqbXSV0phb5VSiMnXEBEREf9MrZWBdrvN3po7dy4DtVZicjRERETEmxoeHiYOLg0RERHxz3S7XSZbrZWYHA0RERHxz3Q6HfpKKbTbbfZWKYWYfA0RERGxX4yOjhKToyEiIiL+iVornU6HvlIK+6KUQky+hoiIiHhD7XabfVFKYaDWSkyOhoiIiPgnaq0MDA8PEwefhoiIiPgnut0uU6HWSkyOhoiIiPgnOp0OA+12m31VSiEmV0NERET8TKUUJlOtlZgcDREREfGPaq10Oh36SilMhlIKMbkaIiIi4mdqt9tMplorMTkaIiIi4h/VWhkYHh5mMpRSiMnVEBEREf+o2+0ylWqtxL5riIiIiH/U6XToK6XQbreZDKUUYnI1RERExD+qtTKVaq3EvmuIiIiIf1BrpdZKXymFyTJ37lxicjVERETEP6i1MtBut5kKtVZi3zVERETEP+h2uwwMDw8zWUopxORqiIiIiH9Qa2WglMJUGB0dJfZdQ0RERPyDWit9pRRKKUyWUgoxuRoiIiLiH3Q6HfpKKUyVWiux7xoiIiKCWisD7XabyVRKISZXQ0RERFBrZWDu3LnEwa1hBqu1snbtWn7wgx/wetu2bWPt2rXYJiIiotvtMlBKYbKVUuirtRL7rmGGWrVqFVdddRWPPvooX/jCF/h3/+7fMfDwww9z+eWX8+ijj3Lddddx++23ExERh7ZOp8NAu91mqtRaiX3XMAONj4+zfPly7rrrLpYtW8af//mf8+CDD/KDH/yAsbExli5dyt13382yZcu47777WLVqFbVWIiIiSilMhVIKMXkaZqhdu3bxC7/wC/S99a1vpWkafvKTn7B+/Xpmz57NSSedRN8xxxzDBRdcwBNPPEFERByaaq10Oh36SilMpVorse8aZqCmaVi6dCmf+9znuP322/nkJz/JZZddxhlnnMHOnTs5+eSTmeioo47i2WefJSIiDk21Vgba7TZToZRCTJ6GGeov//IvGRoa4l/8i3/B7Nmz+d//+3/z8ssvMzY2RtM0TNQ0DePj47wZSUhCEitWrCAiImam4eFhplqtlamyYsUKJCEJScxUDTPQunXr2LRpE3/6p3/KlVdeyde//nX6/viP/5gjjjiCsbExJhofH+fwww/nzdjGNrZZtGgRERExc3S7XaZaKYX9YdGiRdjGNraZqRpmoB07dvCe97yHww47jIG5c+eybds2jj/+eDZv3sxEO3bs4KyzziIiIg5NnU6HvlIK7XabOPg1zECnnnoqTz75JFu3bqXvpZde4i//8i8555xzOPvss+nrdrv0jYyM8NRTT3HeeecRERGHplorfaUUpsrcuXMZqLUS+6ZhBjrllFNYvHgxn/jEJ1i4cCEf+tCH+OAHP8ill15K0zQsX76cxYsXs3DhQq644gpuvfVWjjvuOCIi4tBTa6XWyv5UayX2TcMMddlll7Fx40buuOMONmzYwM0338zAueeey5NPPskdd9zBxo0bmT9/PhERcWiqtTLQbreJ6aFhBmuahqGhIQ477DB+lqGhIZqmISIiDl3dbpeB4eFhpkophZg8DREREYewWisDpRSmSimFgdHRUWLfNERERBzCaq30lVIopTBVSikM1FqJfdMQERFxCOt0OvSVUojpoyEiIuIQVWtloN1uM9VKKfTVWol90xAREXGIqrUyMHfuXPaXWiuxbxoiIiIOUd1ul4FSClOtlEJfrZXYNw0RERGHqE6nw0C73WaqlVKIydEwybZv38727dvZvn0727dvZ/v27Wzfvp3t27ezfft2tm/fzvbt29m+fTvbt29n+/btbN++nYiIiAOllML+Vmsl9l7DJLviiiuYN28e8+bNY968ecybN4958+Yxb9485s2bx7x585g3bx7z5s1j3rx5zJs3j+HhYSIiIvanWiudToe+Ugr7QymFmBwNU+A//+f/zKZNm9i0aRObNm1i06ZNbNq0iU2bNrFp0yY2bdrEpk2b2LRpE0888QQRERH7W62VgXa7zf4wd+5cBmqtxN5rmGStVoujjjqKoaEhhoaGGBoaYmhoiKGhIYaGhhgaGmJoaIihoSGGhoY48sgjKaUQERGxP9VaGRgeHmZ/q7USe69hkt155528+93vZuDpp5/mk5/8JFdeeSVXXnklV155JVdeeSWf/OQn6RsaGuKRRx4hIiJifxodHWWglML+UEohJkfDFPr85z/Pxz/+cbZt28YLL7zACy+8wAsvvMALL7zACy+8QERExIHS6XToK6VQSmF/Gx0dJfZewxTqdrv8p//0n+h2u6xbt45169axblgTt3kAACAASURBVN061q1bx9q1a4mIiDhQOp0OfaUU9pdSCgO1VmLvNUyhww8/nFNPPZWIiIiDSa2VgVIK+0sphZgcDVPot3/7t/nSl77E2NgYERERB4taKwOlFGL6aZhC8+fP56mnnuLUU0/lzDPP5Mwzz+TMM8/kzDPP5P3vfz8REREHQrfbZWB4eJj9qZRCX62V2HsNU2j+/Pm8/e1v55vf/Cb33nsv9957L/feey/33nsv99xzDxEREQdCp9NhoN1ucyDUWom91zCFXnzxRR588EHOOeccTjnlFE455RROOeUUTjnlFE455RQiIiIOhForfaUU9rdSCn21VmLvNUyhY489lv/zf/4PERERB4taK7VW+kop7G+lFGLfNUyhe+65h0996lPccccdbN26la1bt7J161a2bt3K1q1biYiI2N9qrQy0220OpForsXcaptDll19O32233cbFF1/MxRdfzMUXX8zFF1/Mhz/8YSIiIva3brfLwPDwMPtbKYXYdw1TqNvtYhvb2MY2trHNli1biIiI2N86nQ4D7Xab/W3u3LkM1FqJvdMwyS655BJGRkbYXS+//DLvf//7iYiI2B9qrfSVUjjQaq3E3mmYZP/v//0/bDMyMsLIyAgjIyOMjIwwMjLCyMgIIyMjjIyMMDIywsjICLZ55ZVXiIiImGq1Vmqt9JVSOBBKKcS+a5hkTdPwpS99iQULFrBgwQIWLFjAggULWLBgAQsWLGDBggUsWLCABQsWsGDBAq666ipmzZpFRETEVKu1MtButzkQSikMjI6OEnunYZKtWbOGLVu2sGXLFrZs2cKWLVvYsmULW7ZsYcuWLWzZsoUtW7awZcsWtmzZwpYtW/j+979PRETEVOt2uwwMDw9zIJRSGKi1EnunISIi4hDR6XQYaLfbxPTVEBERcYgppXAglVLoq7USe6chIiLiEFBrpdPp0FdK4WBQayX2TkNERMQhoNbKQLvd5kAqpRD7puEAev755/nN3/xNnn/+eSIiIqZS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">
</div></div></div></div></div></div></div></div><div class = 'S7'><span>If we run without the </span><span style=' font-family: monospace;'>extra_drift</span><span>, we find that</span><span style=' font-family: monospace;'> fval</span><span> </span><span texencoding="\approx 1" style="vertical-align:-5px"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAkCAYAAADLsGk3AAACAklEQVRYR+3Xy6tOYRQG8N8hkpBIIQO3GFImJkIGLqUMlEsGGEiSgUtG8g+YHJdQJjI0FVIyYeaaolBGJmLATIiW3lNfX/uc3bcv9v5Oe492e+/17udZz7uetd4Rk+QamSQ8dETapmSnSKdITRlo89aaj1NYjr15/NtIZB5O4gRm4z62DxuR41iDGTiQwA8lkWn4yb/+9h2zhlWR3h30EUubJrIRT/Arb29P8L4yIiHvaRzGArzCNdzOAbcErxFF+6dpIlNxAwczgDzEMbwbB2RY5g5sKUEiQitRJIBewXWM4gv24XzK9I90fwG/ewCHCm+TkreaJjIdH1KRHekDsxBXsSs9f4ZzeIy1uIy5WJncpwyX0opEod5JjvF1HCS7cRGL+t5/wya8LMMgxZYmEh11PfbngJmTRogYH0Kp5ziDpxWQqKRGwrujKX0qAWhdUqW3fgZdrrQiYz8sar+LU8FHrTRuv1OS/R4qYL8x8O3E5kEl6Pu+EkWOJncqYr9vcBY3myYSg9t7PMCg9nsp9ZkVbbDfDbiLZakRZiV2IvuNLfWipBoR/jmNRpHQrXnrZR2s4kwQZPY0aL/hemM2HrWyOk/hLCKrUlAs8L+vGIO2IRSf2fPz6FH3EHPeoyxQbTzqFkpeR6RQ2moM6hSpMbmFlu4UKZS2GoM6RWpMbqGl/wL0oXcl7JpVPgAAAABJRU5ErkJggg==" width="25" height="18" /></span><span>and the beta functions are very large. Now uncomment the lines with the </span><span style=' font-family: monospace;'>extra_drift</span><span> added to the end of </span><span style=' font-family: monospace;'>beamline</span><span> and run again. Now we observe that the minimization succeeds with</span><span style=' font-family: monospace;'> fval</span><span> </span><span texencoding="\approx 10^{-8}" style="vertical-align:-5px"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFkAAAAmCAYAAACvfze7AAAE5ElEQVRoQ+2ZechmcxTHP2MnZMYuWScKhUQIQ3YiabJnDyGyG2Uwyl72EMmgFEP2fd/Jmq0sSSIMZRSDsfXRubrz9LuL+7zvr/ete/566j73nvP73u8553vOnUBvo47AhFH30DugBzkDCXqQe5AzIJDBRc/kbiAvDpwMrAb8CqwJPAtcAfw1+Mge5G4g3wN8AZwUty8KvALcC8zoQe4Gavku2SvA2wNPly6cCRwDrNGDPDzIWwIvAccC15UeZ6nYO0rIfF7GcrlYFjgFWAvYryU2OwHHAavCv/J0YWBW1Mo5LZ/R9LclgS+jFu8GvA0sDbwF3ARcNB6YPCmaygnAUsCjwK4NJ18AuCoAvhSYBvwJbAg8BMwFBOSTJgRbXt8RuB/4GzgV2Ae4Abgjdf9YY/LxAcxiwEERcBuQzwXOAd4ANg+Ai/NuDTwPfAxsBowUo3eJRmfTewDYH/h5PIBses+LVP8JMDWbQF4H+BBYEJBhTyYO+loAfAlwRku2Nv3tYGAvYONodh8A2wGzx0O5KGL8PIJvAvlG4EjgN2CZqJWD57wQsPtbNlYCfIHaE8AOTWjGdbPs2vh9GrA7YA+QyXfHC7YhbpUL5CnRgf9oeYDU39qALHu/AZaLYUAmpWznyAivycDb4k+WkhVaxvgO8BmwHiBr9wXujHsXAe4DLCFbAK+Wn1lXk71mUT8cWB54F7geuKshKDv7e4ANzMbQ1dqAvD7wfjiw8Z1Y4WzFeBlevgU4rGtQwIHA7cAGAXbxqG2A54ADBhtgFcgyRDlyaCKYp0Ij2khSpuyykyvWh7E2IJcZeh5gA0yZKe34q8lI62hXk6kvB2sfKz1EJeOzN40G/N+lKpAV2tYfZcmVwPfRPe3gMtT65+/LBjq51z6KDChSsuth2oB8RJBBH464DgRV9gvgzsGzmJldTbloLTdLJdPv8SCx2Cjq9Hz7ixTI1pdPo4YdNRCJTcMpx66qvQmcDbwYDq6J5jM5VELXg3hfG5D1XewKLAGWgir7GlgZsE+oYoYx9ftZgOXKOq3k/BGwwRZNtZbJNq0Ho7P/UBHJ1BD/Bl02Nei2kTbDHKItyA4dF4SjQ4Bba5y6byi2ZjI6m6WY7KSloLeA15mjpPXXkVeGO1YqbRwIRsLaMFn23hzOjPvqGscyTAbKPDMtm6VAdovkQPDVEFFsEmx2tO1qbUB23H44HEwHzq9wtlCpfL0AqASy2WhIuFWi+TkY5JRwl8fOIwWeOrqYxNwvNGXpiL6AKpDtoEq4lJ5sknB+MdgjRsxhgm3DZOP/NtRC3WRY7C+Mx52vqimbVYFsIKqILhLOPYL7gZlDnqINyLpwQDo6ljMTK1RNsUBSWawOqDSyWQpk5Y0rwceB/yvhbDxq5bUzSTiBcsx1wjT73Bu4Pxg067DXVB+qkKyWAtnUspn4cVDhnrI6Cef+wEX2sPZdlAFftpNdnV0MnB4jv7vdsjmBuYWzJjuVuevIaimQ3TYJtAuQOhtNCac6KaSgZWPdhsww++whLn8sVU5fTl2uQa3VSwB7Aq9nRTecpUA2MCWch8ttLr7dZJkpAlOYGvwRwKb7TE1QTqJ+fipqs88wK10NZGdwEedY+zKS+6Vm8deDnAHmHuQe5AwIZHDRM7kHOQMCGVz0TO5BzoBABhc9kzOA/A+Oegk2XrpTkQAAAABJRU5ErkJggg==" width="44.5" height="19" /></span><span> and the plot shows that the beta functions are indeed close to 1 m. And finally, you can also uncomment the lines where we change the lengths of the drift spaces. Explore!</span></div><h2 class = 'S9'><span>chisq_waist()</span></h2><div class = 'S0'><span>This function receives the four focal lengths for the quadrupoles we use to adjust and sets these values in the appropriate slots of the beamline. Here line 7 refers to the first quad in the second cell and so forth. Once that is done, we calculate the transfer matrices with calcmat() and propagate the input beam sigma0 to the end. Finally, we calculate the chisq, which is the sum of the squared difference between sigma(1,1) and the desired beta function (1 m) and then adding the equivalent differences for the three other constraints.</span></div><div class="CodeBlock"><div class="inlineWrapper"><div class = 'S2'><span style="white-space: pre"><span style="color: rgb(14, 0, 255);">function </span><span >chisq=chisq_waist(x)</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span style="color: rgb(14, 0, 255);">global </span><span >beamline sigma0 </span><span style="color: rgb(2, 128, 9);">% need info about the beamline</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >beamline(7,4)=x(1); </span><span style="color: rgb(2, 128, 9);">% set quadrupole focal lengths </span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >beamline(9,4)=x(2);</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >beamline(12,4)=x(3); </span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >beamline(14,4)=x(4);</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >[Racc,spos,nmat,nlines]=calcmat(beamline); Rend=Racc(:,:,end); </span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >sigma=Rend*sigma0*Rend';</span></span></div></div><div class="inlineWrapper"><div class = 'S3'><span style="white-space: pre"><span >chisq=(sigma(1,1)-1)^2+(sigma(3,3)-1)^2+sigma(1,2)^2+sigma(3,4)^2;</span></span></div></div><div class="inlineWrapper"><div class = 'S6'><span style="white-space: pre"><span style="color: rgb(14, 0, 255);">end</span></span></div></div></div>
<br>
<!--
##### SOURCE BEGIN #####
%%
% Companion software for "Volker Ziemann, _Hands-on Accelerator physics using
% MATLAB, CRCPress, 2019_" (https://www.crcpress.com/9781138589940)
%% Match to a waist (Section 3.6.2)
% Volker Ziemann, 211115, CC-BY-SA-4.0
%
% *Important:* requires the functions for the 4D calculations, available in
% the |chap3/4D| subdirectory from the zip file with all MATLAB scripts. Needed
% for |calcmat()| and |plot_betas().|
%
% Here we use the FODO cell with phase advances 60 and 90 degrred from a previous
% live script and just assign in to the |beamline|, before calculating all transfer
% matrices and calculating the periodic beam matrix |sigma0| with emittances set
% to unity, such that |sigma0| contains the Twiss parameters $\alpha$, $\beta$,
% and $\gamma$.
clear all; close all
global beamline sigma0
addpath ./4D % use the 4D software
%beamline=dlmread('fodo6090.bl'); % use this file for one cell
fodo=[1, 5, 0.2, 0; % just the contents of that file
2, 1, 0, -1.4748;
1, 10, 0.2, 0;
2, 1, 0, 1.8082;
1, 5, 0.2, 0];
beamline=fodo;
[Racc,spos,nmat,nlines]=calcmat(beamline); % get matrices
Rturn=Racc(:,:,end); % the last one
sigma0=periodic_beammatrix(Rturn,1,1); % get betas
beamline=repmat(fodo,3,1) % three cells
%%
% Using this beamline will work, but some of the focal lengths will turn out
% to be rather small and, moreover, the beta functions in the last quads are very
% large. Often it helps to increase the space between the last quadrupole and
% the waist and we define the entire beamline to consist of three cells and the
% extra drift added to the end.
% extra_drift=[1,5,0.2,0]; % define addl. drift
% beamline=[repmat(fodo,3,1);extra_drift] % make beamline longer
%%
% Uncomment these two lines and see how the beta functions become much smaller.
%%
% The following two lines will change the repeat code of drift spaces, which
% would essentially move the quadrupoles closer together. Here 11 and 13 refer
% to the respective lines in the |beamline| where we change the repeat code. You
% can uncomment these lines to explore what happens later.
% beamline(11,2)=13; % change quadrupole positions
% beamline(13,2)=2;
%%
% Now we are ready to find focal lengths of the four quadrupoles in the second
% and third fodo cell. Why do we need four quadrupoles? Well, we want to set the
% horizontal and vertical beta functions at the final position, which accounts
% for two degrees of freedom we want to control. That we want a waist additionally
% requires that $\alpha_x$ and $\alpha_y$ are zero. This accounts for two more
% degrees of freedom, which require two more quads to adjust. Thus we need four
% quadrupoles and |x0| contains the initial guesses. The call to fminsearch()
% in the next line minimizes the squared difference between the deesired and actual
% Twiss parameters, which is calculated in the function chisq_waist(). Finally
% we plot the beat functions with sigma0, the matched beam matrix for the 60-90
% cells, used as starting beam.
x0=[-1,2.,-2,2]; % starting guesses
[x,fval]=fminsearch(@chisq_waist,x0) % minimze
plot_betas(beamline,sigma0) % show betas
drawmag(beamline,12,2)
%%
% If we run without the |extra_drift|, we find that |fval| $\approx 1$and the
% beta functions are very large. Now uncomment the lines with the |extra_drift|
% added to the end of |beamline| and run again. Now we observe that the minimization
% succeeds with |fval| $\approx 10^{-8}$ and the plot shows that the beta functions
% are indeed close to 1 m. And finally, you can also uncomment the lines where
% we change the lengths of the drift spaces. Explore!
%% chisq_waist()
% This function receives the four focal lengths for the quadrupoles we use to
% adjust and sets these values in the appropriate slots of the beamline. Here
% line 7 refers to the first quad in the second cell and so forth. Once that is
% done, we calculate the transfer matrices with calcmat() and propagate the input
% beam sigma0 to the end. Finally, we calculate the chisq, which is the sum of
% the squared difference between sigma(1,1) and the desired beta function (1 m)
% and then adding the equivalent differences for the three other constraints.
function chisq=chisq_waist(x)
global beamline sigma0 % need info about the beamline
beamline(7,4)=x(1); % set quadrupole focal lengths
beamline(9,4)=x(2);
beamline(12,4)=x(3);
beamline(14,4)=x(4);
[Racc,spos,nmat,nlines]=calcmat(beamline); Rend=Racc(:,:,end);
sigma=Rend*sigma0*Rend';
chisq=(sigma(1,1)-1)^2+(sigma(3,3)-1)^2+sigma(1,2)^2+sigma(3,4)^2;
end
##### SOURCE END #####
-->
</div></body></html>