315 lines
12 KiB
Plaintext
315 lines
12 KiB
Plaintext
! matching scripts for SwissFEL reference
|
|
|
|
! into laser heater
|
|
Print,text='MATCH POINT: Match through laser heater';
|
|
MATCH,SEQUENCE=SwissFEL,range=#s/sinbc02$start,beta0 = Twiss0;
|
|
VARY,NAME=sinlh01.MQUA020.k1,STEP=0.0001;
|
|
VARY,NAME=sinlh01.MQUA040.k1,STEP=0.0001;
|
|
VARY,NAME=sinlh01.MQUA050.k1,STEP=0.0001;
|
|
VARY,NAME=sinlh01.MQUA070.k1,STEP=0.0001;
|
|
VARY,NAME=sinlh02.MQUA010.k1,STEP=0.0001;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinlh02.mqua410$start, alfx = TwissM1->ALFX;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinlh02.mqua410$start, alfy = TwissM1->ALFY;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinlh02.mqua410$start, betx = TwissM1->BETX;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinlh02.mqua410$start, bety = TwissM1->BETY;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua130$end, X < 10;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
SIMPLEX,CALLS=1000,TOLERANCE=1.e-21;
|
|
SIMPLEX,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
!---------------------------------------------------------------------------------
|
|
! match the periodic lattice of the S-band structure
|
|
|
|
|
|
sinsb04.mqua130.k1 :=0.7219189344;
|
|
sinsb04.mqua230.k1 :=-0.71562666978;
|
|
muInj := 0.1;
|
|
Print,text='MATCH POINT: FODO - Injector';
|
|
MATCH,SEQUENCE=swissfel,range=sinsb04$start/sinsb04$end;
|
|
VARY,NAME=sinsb04.MQUA130.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
VARY,NAME=sinsb04.MQUA230.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sinsb04$end,mux=muInj;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sinsb04$end,muy=muInj;
|
|
LMDIF,CALLS=100,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
twiss,SEQUENCE=swissfel,range=sinsb04$start/sinsb04$end;
|
|
nbetx=table(twiss,sinsb04$end,betx);
|
|
nalfx=table(twiss,sinsb04$end,alfx);
|
|
nbety=table(twiss,sinsb04$end,bety);
|
|
nalfy=table(twiss,sinsb04$end,alfy);
|
|
|
|
! Matching from Laser heater into S-band linac
|
|
|
|
|
|
SINLH02.MQUA410.k1= -1.1004699049013937;
|
|
SINLH03.MQUA030.k1= 1.214540293254702;
|
|
SINLH03.MQUA040.k1= 2.3655916310830505;
|
|
SINLH03.MQUA060.k1= -1.8720927342603897;
|
|
SINLH03.MQUA080.k1= -3.30357388716279;
|
|
SINSB03.MQUA130.k1= 1.705920260985911;
|
|
SINSB03.MQUA230.k1= -1.1958386267066743;
|
|
|
|
Print,text='MATCH POINT: Match into FODO - Injector';
|
|
MATCH,SEQUENCE=SwissFEL,range=#s/sinsb04$end,beta0 = Twiss0;
|
|
VARY,NAME=sinlh02.MQUA410.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sinlh03.MQUA030.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sinlh03.MQUA040.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sinlh03.MQUA060.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sinlh03.MQUA080.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sinsb03.MQUA130.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sinsb03.MQUA230.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04$start,betx=nbetx;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04$start,bety=nbety;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04$start,alfx=nalfx;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04$start,alfy=nalfy;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb03.mqua130$start,betx<50;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb03.mqua130$start,bety<50;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb03.mqua230$start,betx<50;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb03.mqua230$start,bety<50;
|
|
|
|
|
|
simplex,CALLS=1000,TOLERANCE=1.e-21;
|
|
jacobian,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
twiss,sequence=SwissFEL,range=#s/sinsb04$end,beta0 = twiss0;
|
|
plot,haxis=s,vaxis=betx,bety,colour=100;
|
|
|
|
sinsb05.mqua130.k1 := sinsb04.mqua130.k1;
|
|
sinsb05.mqua230.k1 := sinsb04.mqua230.k1;
|
|
|
|
SINBC01.MQUA020.k1= -0.46904024313911785;
|
|
SINBC01.MQUA050.k1= -0.18048692888559933;
|
|
SINBC01.MQUA070.k1= 0.03866457210745946;
|
|
SINBC01.MQUA090.k1= 0.21543435379513257;
|
|
SINBC01.MQUA110.k1= 0.8008417564740974;
|
|
|
|
Print,text='MATCH POINT: Match through BC1';
|
|
MATCH,SEQUENCE=SwissFEL,range=#s/sindi02$end,beta0=twiss0;
|
|
VARY,NAME=sinbc01.mqua020.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sinbc01.mqua050.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sinbc01.mqua070.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sinbc01.mqua090.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sinbc01.mqua110.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sindi01.mqua020.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
VARY,NAME=sindi01.mqua070.k1,STEP=0.0001,lower=-3.5,upper=3.5;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinbc01.mqua110$end,betx<120;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinbc02.mbnd400,bety<100;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sinbc02.mbnd400,betx<3.1;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sindi02.mqua020$start,bety=TwissM2->BETY;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sindi02.mqua020$start,alfy=TwissM2->ALFY;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sindi02.mqua020$start,betx=TwissM2->BETX;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range=sindi02.mqua020$start,alfx=TwissM2->ALFX;
|
|
SIMPLEX,CALLS=1000,TOLERANCE=1.e-21;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
twiss,sequence=SwissFEL,range=#s/SINDI02.MQUA020$START,beta0=twiss0;
|
|
plot,haxis=s,vaxis=betx,bety,colour=100;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!-------------------------------------
|
|
! match periodic lattice of Linac 1
|
|
|
|
muLin1 := 0.1883;
|
|
|
|
s10cb02.mqua230.k1 := -1.490961973;
|
|
s10cb02.mqua430.k1 := 1.490511125;
|
|
Print,text='MATCH POINT: FODO - Linac 1';
|
|
MATCH,SEQUENCE=swissfel,range=s10cb02$start/s10cb02$end;
|
|
VARY,NAME=s10cb02.MQUA230.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
VARY,NAME=s10cb02.MQUA430.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s10cb02$end,mux=muLin1;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s10cb02$end,muy=muLin1;
|
|
LMDIF,CALLS=100,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
twiss,SEQUENCE=swissfel,range=s10cb02$start/s10cb02$end;
|
|
nbetx=table(twiss,s10cb02$end,betx);
|
|
nalfx=table(twiss,s10cb02$end,alfx);
|
|
nbety=table(twiss,s10cb02$end,bety);
|
|
nalfy=table(twiss,s10cb02$end,alfy);
|
|
|
|
|
|
s10cb01.mqua230.k1 := s10cb02.mqua230.k1;
|
|
s10cb01.mqua430.k1 := s10cb02.mqua430.k1;
|
|
S10DI01.MQUA120.k1 :=S10CB02.MQUA230.k1;
|
|
S10CB03.MQUA230.k1 :=S10CB02.MQUA430.k1;
|
|
S10CB03.MQUA430.k1 :=S10CB02.MQUA230.k1;
|
|
S10CB04.MQUA230.k1 :=S10CB02.MQUA430.k1;
|
|
S10CB04.MQUA430.k1 :=S10CB02.MQUA230.k1;
|
|
S10CB05.MQUA230.k1 :=S10CB02.MQUA430.k1;
|
|
S10CB05.MQUA430.k1 :=S10CB02.MQUA230.k1;
|
|
S10CB06.MQUA230.k1 :=S10CB02.MQUA430.k1;
|
|
S10CB06.MQUA430.k1 :=S10CB02.MQUA230.k1;
|
|
S10CB07.MQUA230.k1 :=S10CB02.MQUA430.k1;
|
|
S10CB07.MQUA430.k1 :=S10CB02.MQUA230.k1;
|
|
S10CB08.MQUA230.k1 :=S10CB02.MQUA430.k1;
|
|
S10CB08.MQUA430.k1 :=S10CB02.MQUA230.k1;
|
|
S10CB09.MQUA230.k1 :=S10CB02.MQUA430.k1;
|
|
|
|
|
|
|
|
!-----------------------------------
|
|
! match into Linac 1st
|
|
|
|
sindi02.mqua020.k1=-1;
|
|
Print,text='MATCH POINT: Match into FODO - Linac 1';
|
|
MATCH,SEQUENCE=SwissFEL,range=#s/s10cb02$end,beta0=twiss0;
|
|
VARY,NAME=sindi02.mqua020.k1,STEP=0.0001,lower=-5.5,upper=5.5;
|
|
VARY,NAME=sindi02.mqua030.k1,STEP=0.0001,lower=-5.5,upper=5.5;
|
|
VARY,NAME=sindi02.mqua050.k1,STEP=0.0001,lower=-5.5,upper=5.5;
|
|
VARY,NAME=sindi02.mqua060.k1,STEP=0.0001,lower=-5.5,upper=5.5;
|
|
VARY,NAME=sindi02.mqua090.k1,STEP=0.0001,lower=-5.5,upper=5.5;
|
|
VARY,NAME=s10cb01.mqua230.k1,STEP=0.0001,lower=-5.5,upper=5.5;
|
|
VARY,NAME=s10cb01.mqua430.k1,STEP=0.0001,lower=-5.5,upper=5.5;
|
|
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s10cb02$start,betx=nbetx;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s10cb02$start,alfx=nalfx;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s10cb02$start,bety=nbety;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s10cb02$start,alfy=nalfy;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s10cb01$start,x=0;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s10cb01$start,y=0;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s10cb01$start,px=0;
|
|
!CONSTRAINT,SEQUENCE=swissfel,range=s10cb01$start,py=0;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
twiss,sequence=SwissFEL,range=#s/S10BC01$start,beta0=twiss0;
|
|
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
|
|
|
|
|
|
|
|
Print,text='MATCH POINT: Match before BC2';
|
|
MATCH,SEQUENCE=SwissFEL,range=#s/s20cb01$start,beta0=twiss0;
|
|
VARY,NAME=s10cb07.mqua430.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
VARY,NAME=s10cb08.mqua230.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
VARY,NAME=s10cb08.mqua430.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
VARY,NAME=s10cb09.mqua230.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
CONSTRAINT,SEQUENCE=swissFEL,range=s10bc01.mqua020$start,betx=TwissM3->BETX;
|
|
CONSTRAINT,SEQUENCE=swissFEL,range=s10bc01.mqua020$start,alfx=TwissM3->ALFX;
|
|
CONSTRAINT,SEQUENCE=swissFEL,range=s10bc01.mqua020$start,bety=TwissM3->BETY;
|
|
CONSTRAINT,SEQUENCE=swissFEL,range=s10bc01.mqua020$start,alfy=TwissM3->ALFY;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
!-------------------------------------------------
|
|
! Linac Bunch Compressor
|
|
! reference point s10ma01-mqua020
|
|
|
|
|
|
S10BC01.MQUA020.k1= 2.1236457315221373;
|
|
S10BC01.MQUA040.k1= -0.8332634315651051;
|
|
S10BC01.MQUA060.k1= -1.7337532980446841;
|
|
S10BC01.MQUA080.k1= 0.7800006260607678;
|
|
S10BC01.MQUA100.k1= 1.0388756300422775;
|
|
|
|
Print,text='MATCH POINT: Match through BC2';
|
|
MATCH,SEQUENCE=SwissFEL,range=#s/s20cb01$start,beta0 = twiss0;
|
|
VARY,NAME=s10bc01.mqua020.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
VARY,NAME=s10bc01.mqua040.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
VARY,NAME=s10bc01.mqua060.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
VARY,NAME=s10bc01.mqua080.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
VARY,NAME=s10bc01.mqua100.k1,STEP=0.0001,lower=-2.5,upper=2.5;
|
|
CONSTRAINT,SEQUENCE=swissFEL,range=s10ma01.mqua020$start,betx=TwissM4->BETX;
|
|
CONSTRAINT,SEQUENCE=swissFEL,range=s10ma01.mqua020$start,alfx=TwissM4->ALFX;
|
|
CONSTRAINT,SEQUENCE=swissFEL,range=s10ma01.mqua020$start,bety=TwissM4->BETY;
|
|
CONSTRAINT,SEQUENCE=swissFEL,range=s10ma01.mqua020$start,alfy=TwissM4->ALFY;
|
|
CONSTRAINT,SEQUENCE=swissFEL,range=s10ma01.mqua020$start,dx=0;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
!---------------------------------------
|
|
! Linac 2
|
|
|
|
|
|
s20cb01.mqua430.k1 = -0.8156528972;
|
|
s20cb02.mqua430.k1 = 0.8156479879;
|
|
|
|
muLin2=0.2;
|
|
|
|
Print,text='MATCH POINT: FODO - Linac 2';
|
|
match,SEQUENCE=swissfel,range=s20cb01$start/s20cb02$end;
|
|
Vary,name=S20CB01.MQUA430.k1,step=0.0001;
|
|
Vary,name=S20CB02.MQUA430.k1,step=0.0001;
|
|
constraint,sequence=swissfel,range=s20cb02$end,mux=muLin2;
|
|
constraint,sequence=swissfel,range=s20cb02$end,muy=muLin2;
|
|
lmdif,calls=100,tolerance=1e-21;
|
|
endmatch;
|
|
|
|
s20cb03.mqua430.k1 = s20cb01.mqua430.k1;
|
|
|
|
twiss,SEQUENCE=swissfel,range=s20cb01$start/s20cb02$end;
|
|
|
|
nbetx=table(twiss,s20cb02$end,betx);
|
|
nalfx=table(twiss,s20cb02$end,alfx);
|
|
nbety=table(twiss,s20cb02$end,bety);
|
|
nalfy=table(twiss,s20cb02$end,alfy);
|
|
|
|
|
|
|
|
!--------------------------------
|
|
! Linac Bunch Compressor and matching into Linac 2
|
|
Print,text='MATCH POINT: Match into FODO - Linac 2';
|
|
MATCH,SEQUENCE=swissfel,beta0=twiss0;
|
|
VARY,NAME=s10ma01.mqua020.k1,STEP=0.0001,lower=-2.4,upper=2.4;
|
|
VARY,NAME=s10ma01.mqua050.k1,STEP=0.0001,lower=-2.4,upper=2.4;
|
|
VARY,NAME=s10ma01.mqua070.k1,STEP=0.0001,lower=-2.4,upper=2.4;
|
|
VARY,NAME=s10ma01.mqua110.k1,STEP=0.0001,lower=-2.4,upper=2.4;
|
|
VARY,NAME=s10ma01.mqua130.k1,STEP=0.0001,lower=-2.4,upper=2.4;
|
|
CONSTRAINT,SEQUENCE=Swissfel,range=s20cb01$start,betx=nbetx;
|
|
CONSTRAINT,SEQUENCE=Swissfel,range=s20cb01$start,alfx=nalfx;
|
|
CONSTRAINT,SEQUENCE=Swissfel,range=s20cb01$start,bety=nbety;
|
|
CONSTRAINT,SEQUENCE=Swissfel,range=s20cb01$start,alfy=nalfy;
|
|
CONSTRAINT,SEQUENCE=Swissfel,range=s10ma01.mqua070$start,bety<100;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
!-----------------
|
|
! into septum
|
|
|
|
S20SY01.MQUA020.k1= -1.4084554435040675;
|
|
S20SY01.MQUA030.k1= 1.6527516900200674;
|
|
S20SY01.MQUA050.k1= -1.2455405678473916;
|
|
S20SY01.MQUA080.k1= 1.3915642831470632;
|
|
|
|
Print,text='MATCH POINT: Match before Switchyard';
|
|
MATCH,SEQUENCE=SwissFEL,range=#s/s20sy02$start,beta0 = Twiss0;
|
|
VARY,NAME=s20sy01.mqua020.k1,STEP=0.0001,lower=-2.2,upper=2.2;
|
|
VARY,NAME=s20sy01.mqua030.k1,STEP=0.0001,lower=-2.2,upper=2.2;
|
|
VARY,NAME=s20sy01.mqua050.k1,STEP=0.0001,lower=-2.2,upper=2.2;
|
|
VARY,NAME=s20sy01.mqua080.k1,STEP=0.0001,lower=-2.2,upper=2.2;
|
|
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s20sy01$end,betx=Twisssep->BETX;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s20sy01$end,alfx=Twisssep->ALFX;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s20sy01$end,bety=Twisssep->BETY;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s20sy01$end,alfy=Twisssep->ALFY;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
!
|
|
twiss,SEQUENCE=swissfel,range=#s/s20sy01$end,beta0 = Twiss0;
|
|
plot,haxis=s,vaxis=betx,bety,range=s10cb08$start/#e,colour=100;
|
|
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
|
|
|
|
|
|
|