! matching scripts for SwissFEL reference ! into 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; ENDMATCH; !--------------------------------------------------------------------------------- ! match the periodic lattice of the S-band structure sinsb04.mqua130.k1 :=0.7219189344; sinsb04.mqua230.k1 :=-0.71562666978; muInj := 0.2; 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=#e,mux=muInj; CONSTRAINT,SEQUENCE=swissfel,range=#e,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 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; LMDIF,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; 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<100; CONSTRAINT,SEQUENCE=SwissFEL,range=sinbc02.mbnd400,bety<100; CONSTRAINT,SEQUENCE=SwissFEL,range=sinbc02.mbnd400,betx<5.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->ALFY; 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; MATCH,SEQUENCE=swissfel,range=s10cb02$start/s10cb02$end; VARY,NAME=s10cb02.MQUA130.k1,STEP=0.0001,lower=-2.5,upper=2.5; VARY,NAME=s10cb02.MQUA230.k1,STEP=0.0001,lower=-2.5,upper=2.5; CONSTRAINT,SEQUENCE=swissfel,range=#e,mux=muLin1; CONSTRAINT,SEQUENCE=swissfel,range=#e,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 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; USE,SEQUENCE=SwissFEL; 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 USE,SEQUENCE=SwissFEL; 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; 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=linac2,range=#e,mux=muLin2; constraint,sequence=linac2,range=#e,muy=muLin2; lmdif,calls=100,tolerance=1e-21; endmatch; s20cb03.mqua430.k1 = s20cb01.mqua430.k1; s20cb04.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 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 MATCH,SEQUENCE=SwissFEL,range=#s/s20sy02$start,beta0 = Twiss0; VARY,NAME=s20sy01.mqua020.k1,STEP=0.0001,lower=-5.5,upper=5.5; VARY,NAME=s20sy01.mqua030.k1,STEP=0.0001,lower=-5.5,upper=5.5; VARY,NAME=s20sy01.mqua050.k1,STEP=0.0001,lower=-5.5,upper=5.5; VARY,NAME=s20sy01.mqua080.k1,STEP=0.0001,lower=-5.5,upper=5.5; 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;