centre des éléments =
QP1 5005
QP2 5350
QP3 5701
yag 7700
LQP= 0.15731 (magnétique)
----------------------------------------------------------------------------------------
function varargout = TL_SLlattice
% Lattice definition file
% Lattice for ThomX transfer line for the drift line until the SST1
%
global FAMLIST THERING GLOBVAL
GLOBVAL.E0 = 50e6; % Ring energy
GLOBVAL.LatticeFile = mfilename;
FAMLIST = cell(0);
disp(['** Loading THOMX transfer line lattice for the drift line until the SST1 ', mfilename]);
%%=======================
% BPM
%========================
% horizontal
BPMx = marker('BPMx', 'IdentityPass');
% vertical
BPMz = marker('BPMz', 'IdentityPass');
%%=======================
% correctors
%========================
HCOR = corrector('HCOR',1.0e-6,[0, 0],'CorrectorPass');
VCOR = corrector('VCOR',1.0e-6,[0, 0],'CorrectorPass');
%% DRIFT SPACES
SD1L1 = drift('SD1L1', 0.263E+00,'DriftPass');
SD1L2 = drift('SD1L2', 0.133345E+00+5e-3,'DriftPass');
SD2L = drift('SD2L', 0.19269E+00-5e-3,'DriftPass');
SD3L = drift('SD3L', 0.196845E+00+1e-3,'DriftPass');
%SD4L = drift('SD4L', 0.25E+00,'DriftPass');
SD3L2 = drift('SD3L2', 1.7235E+00,'DriftPass');
%SDSL = drift('SDDL', 0.405E+00,'DriftPass');
SDSL = drift('SDDL', 0.0E+00,'DriftPass');
%% QUADRUPOLES
LQP= 0.15731; %Quadrupole length
QPassMethod = 'StrMPoleSymplectic4Pass'; % tracking method
QP1L = quadrupole('QP1L', LQP, -2.5470, QPassMethod);
QP2L = quadrupole('QP2L', LQP, 5.3724, QPassMethod);
QP3L = quadrupole('QP3L', LQP, -1.5797, QPassMethod);
%% Marker
DEBUT = drift('DEBUT',0.0,'DriftPass');
FIN = drift('FIN',0.0,'DriftPass');
TLSST1 = marker('yag', 'IdentityPass');
% Lattice
% definition of BPMX must be followed by BPMz
ELIST =[DEBUT ...
SD1L1 HCOR VCOR SD1L2 QP1L SD2L QP2L SD2L QP3L ...
SD3L BPMx BPMz SD3L2 TLSST1 SDSL ...
FIN];
buildlat(ELIST);
% Set all magnets to same energy
THERING = setcellstruct(THERING,'Energy',1:length(THERING),GLOBVAL.E0);
evalin('caller','global THERING FAMLIST GLOBVAL');
disp('** Done **');
|
Les twiss initiaux sont écrit dans le fichiers updateatindex.m sous machine/ThomX/TL.
Je propose de créer une variable tango dans laquelle on pourra écrire les parametres de Twiss mesurées par le scan d'emittance sur le première station linac. Une commande tango dans le fichier nous permettra de récupérer les dernières valeurs. Il faudra prévoir le cas tango, et le cas simulators.
TwissData.alpha = [-4.24,-4.34]';
TwissData.beta = [34.46,33.94]';
TwissData.mu = [0 0]';
TwissData.ClosedOrbit = [0 0 0 0]'; %initial 4-D COD
TwissData.dP = 0; %initial dP
TwissData.dL = 0; % initial dL
TwissData.Dispersion = [0 0 0 0]';
setpvmodel('TwissData', '', TwissData); % Same as, THERING{1}.TwissData = TwissData; |