diff --git a/OpticsTools.py b/OpticsTools.py index 6d4dced..c7ae160 100644 --- a/OpticsTools.py +++ b/OpticsTools.py @@ -41,7 +41,10 @@ class OpticsTools(QtWidgets.QMainWindow, QtCore.QObject, Ui_OpticsGUI): self.UIMatchOpticsSelect.clear() for key in self.match.matchlist.keys(): self.UIMatchOpticsSelect.addItem(key) - self.UIMatchOpticsSelect.setCurrentIndex(0) + if phase == 0: + self.UIMatchOpticsSelect.setCurrentIndex(0) + else: + self.UIMatchOpticsSelect.setCurrentIndex(1) self.updateMatchingCase() @@ -95,6 +98,8 @@ class OpticsTools(QtWidgets.QMainWindow, QtCore.QObject, Ui_OpticsGUI): if self.UISaveMatchSettings.isChecked(): fileName = self.match.scriptdir+'/settings.json' self.saveSettingsdirect(fileName) + if self.UIReportMatchStrength.isChecked(): + self.model.checkMagnetLimit() def updateMatchingCase(self): diff --git a/Scripts/Reference-SwissFEL/matchInjector.madx b/Scripts/Reference-SwissFEL/matchInjector.madx index df8737e..a69c03b 100644 --- a/Scripts/Reference-SwissFEL/matchInjector.madx +++ b/Scripts/Reference-SwissFEL/matchInjector.madx @@ -271,11 +271,17 @@ ENDMATCH; !----------------- ! into septum +S20SY01.MQUA020.k1= -1.4084554435040675; +S20SY01.MQUA030.k1= 1.6527516900200674; +S20SY01.MQUA050.k1= -1.2455405678473916; +S20SY01.MQUA080.k1= 1.3915642831470632; + + 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; +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; diff --git a/Scripts/SFPlus/initTwiss.madx b/Scripts/SFPlus/initTwiss.madx index de079a1..befddc7 100644 --- a/Scripts/SFPlus/initTwiss.madx +++ b/Scripts/SFPlus/initTwiss.madx @@ -1,4 +1,16 @@ option,-echo; ! starting condition -Twiss0: beta0,betx=10,alfx=0,bety=10,alfy=0; -Twisssep: beta0,betx=10,alfx=-0.2,bety=15,alfy=1; \ No newline at end of file +Twiss0: beta0,betx=10,alfx=0,bety=10,alfy=0; ! location:swissfel$start +TwissM1: beta0,betx=8.72,alfx=1,bety=8.72,alfy=1; ! location:sinsb04.mqua230$end +TwissM2: beta0, betx = 11.1557, alfx = -1.17, bety = 50, alfy = 0.; ! label: After BC1 location:sindi02.mqua020$start +Twisssep: beta0,betx=10,alfx=-0.2,bety=20,alfy=1.0; ! label: Septum location:s20sy02$start + + +TwissAT1: beta0,betx=34.45,alfx=1,bety=34.45,alfy=1; ! label: Switchyard - Drift location:satsy02.mqua230 +TwissAT2: beta0,betx=5,alfx=1.77,bety=4,alfy=-1.04; ! label: Switchyard - Double Bend location:satsy03.mqua110 +TwissAT3: beta0,betx=14,alfx=0.7,bety=14,alfy=0.7; ! label: Beam Stopper location:satcb01.mqua430$end +twissee: beta0,betx=7,bety=30,alfx=0.5,alfy=1.5; ! label: EEHG location:satma01.mqua250$end +twisspor: beta0, betx=3.9036,alfx=-0.05021,bety=37.6374,alfy=4.4433; ! label: Porthos Septum location:s30cb15$end +twissARECOL:beta0, betx = 2.304, alfx = -1.4045, bety = 25.929, alfy = -6.363; ! label: Aramis ECOL location:sarma01.mqua010$start +! variables +ECOLasBC = 0; ! Description: Flag to configure Aramis Energy collimator as a bunch compressor \ No newline at end of file diff --git a/Scripts/SFPlus/matchAramis.madx b/Scripts/SFPlus/matchAramis.madx index 29b1359..3d59dbd 100644 --- a/Scripts/SFPlus/matchAramis.madx +++ b/Scripts/SFPlus/matchAramis.madx @@ -1,48 +1,12 @@ - - - -y_sep=0.01; -py_sep=0.0; - - - -S20SY02.MKDC010.cory := SYKICK*2; -S20SY02.MKAC020.cory := SYKICK*3; -S20SY02.MKDC030.cory := SYKICK*2; -S20SY02.MKAC040.cory := SYKICK*3; -S20SY02.MKDC050.cory := SYKICK*2; - - - -use,sequence=swissfel; -select,flag=Error,pattern="SAT.*"; -ealign,DY=0.01; - -MATCH,SEQUENCE=swissfel,range=s20sy02$start/s20sy02$end,beta0=Twisssep; -VARY,NAME=s20sy02.mqua070.k1,STEP=0.0001,lower=-3,upper=3; -VARY,NAME=s20sy02.mqua100.k1,STEP=0.0001,lower=-3,upper=3; -VARY,NAME=s20sy02.mqua140.k1,STEP=0.0001,lower=-3,upper=3; -VARY,NAME=s20sy02.mqua180.k1,STEP=0.0001,lower=-3,upper=3; -VARY,NAME=SYKICK,STEP=0.0001; -CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mbnd200,y=y_sep; -CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mbnd200,py=py_sep; -CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mbnd200,dy=-0.007; -CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mbnd200,dpy=1.7e-3; -CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mqua180, BETY < 60; -LMDIF,CALLS=8000,TOLERANCE=1.e-21; -ENDMATCH; - - - ! this statements are needed to have explicit values in the output file SYKICK=0; -S20SY02.MKDC010.c1:= SYKICK*2; -S20SY02.MKAC020.c1:= SYKICK*3; -S20SY02.MKDC030.c1:= SYKICK*2; -S20SY02.MKAC040.c1:= SYKICK*3; -S20SY02.MKDC050.c1:= SYKICK*2; +S20SY02.MKDC010.cory:= SYKICK*2; +S20SY02.MKAC020.cory:= SYKICK*3; +S20SY02.MKDC030.cory:= SYKICK*2; +S20SY02.MKAC040.cory:= SYKICK*3; +S20SY02.MKDC050.cory:= SYKICK*2; s20bc01.mqua010.k1:=1.; @@ -135,32 +99,13 @@ LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; -!L = 9; -!alpha = 1.5; -!beta = alpha*L; -!MATCH,SEQUENCE=Swissfel,range=s20sy02$start/s30cb14$end,beta0=twisssep; -!VARY,NAME=s30cb10.mqua430.k1,STEP=0.0001; -!VARY,NAME=s30cb11.mqua430.k1,STEP=0.0001; -!VARY,NAME=s30cb12.mqua430.k1,STEP=0.0001; -!VARY,NAME=s30cb13.mqua430.k1,STEP=0.0001; -!VARY,NAME=s30cb14.mqua430.k1,STEP=0.0001; -!CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb14.mqua430$end,betx=beta; -!CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb14.mqua430$end,bety=beta; -!CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb14.mqua430$end,alfx=alpha; -!CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb14.mqua430$end,alfy=alpha; -!CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb14.mqua430$end,X<1; -!LMDIF,CALLS=1000,TOLERANCE=1.e-21; -!ENDMATCH; - twiss,SEQUENCE=swissfel,range=s20sy02$start/S30cb14$END,beta0=twisssep; plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; -Select,flag=Error,pattern="SPO.*"; -EALIGN,DY=0.01; PSYKICK:=0.1; @@ -183,27 +128,21 @@ LMDIF, CALLS=1000, TOLERANCE=1.E-21; ENDMATCH; -pbetx=3.9036; -palfx=-0.05021; -pbety=37.6374; -palfy=4.4433; - -twisspor: beta0, betx=pbetx,alfx=palfx, bety=pbety,alfy=palfy; - s30cb13.mqua430.k1 = 0.456; s30cb14.mqua430.k1 = -1.741; s30cb15.mqua010.k1 = 1.1533; s30cb15.mqua020.k1 = -0.0961; + MATCH,SEQUENCE=Swissfel,range=s20sy02$start/s30sy01$end,beta0=twisssep; VARY,NAME=s30cb13.mqua430.k1,STEP=0.0001; VARY,NAME=s30cb14.mqua430.k1,STEP=0.0001; VARY,NAME=s30cb15.mqua010.k1,STEP=0.0001; VARY,NAME=s30cb15.mqua020.k1,STEP=0.0001; -CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,betx=pbetx; -CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,bety=pbety; -CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,alfx=palfx; -CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,alfy=palfy; +CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,betx=twisspor->betx; +CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,bety=twisspor->bety; +CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,alfx=twisspor->alfx; +CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,alfy=twisspor->alfy; !LMDIF, CALLS=1000, TOLERANCE=1.E-21; Simplex, CALLS=1000, TOLERANCE=1.E-21; ENDMATCH; @@ -214,76 +153,147 @@ plot,haxis=s,vaxis=y,dy,range=s30cb15$start/#e,colour=100; - S30cb15.MKDC010.cory := 0; S30cb15.MKAC020.cory := 0; S30cb15.MKDC030.cory := 0; S30cb15.MKAC040.cory := 0; S30CB15.MKDC050.cory := 0; -R56 = -000e-6; - -MATCH,RMATRIX,SEQUENCE=swissFEL,range=SARCL02$start/SARCL02$end,betx=10,alfx=0,bety=10,alfy=0; -VARY,NAME=sarcl02.mqua130.k1,STEP=0.0001; -CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.mqua210,re56=R56*0.5; -LMDIF,CALLS=100,TOLERANCE=1.e-21; -ENDMATCH; - - -sarcl02.mqua210.k1=-sarcl02.mqua130.k1*0.9; - -MATCH,SEQUENCE=swissfel,range=sarcl02$start/sarma01.mqua010,betx=10,alfx=0,bety=10,alfy=0; -VARY,NAME=sarcl02.mqua250.k1,STEP=0.0001; -CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dbpm260$end,dpx=0; -LMDIF,CALLS=100,TOLERANCE=1.e-21; -ENDMATCH; - - -sarcl02.mqua310.k1=sarcl02.mqua250.k1; -sarcl02.mqua350.k1=sarcl02.mqua210.k1; -sarcl02.mqua460.k1=sarcl02.mqua130.k1; - - -dL=0.625+0.25; -bx0=25; -bx=bx0+dL*dL/bx0; -ax=-dL/bx0; -by0=0.8; -by=by0+dL*dL/by0; -ay=-dL/by0; - - -twiss,sequence=swissfel,range=sarcl02.mqsk300/sarma01.mqua010,betx=bx,alfx=ax,bety=by,alfy=ay; - -nbetx= table(twiss,sarma01$start,betx); -nalfx=-table(twiss,sarma01$start,alfx); -nbety= table(twiss,sarma01$start,bety); -nalfy=-table(twiss,sarma01$start,alfy); -MATCH,SEQUENCE=swissfel,range=S30SY01$start/sarma01.mqua010,beta0=twisspor; +!-------------------------------------------------- +! Match ecol + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 +! energy collimator +if (ECOLasBC ==0.) { + sarcl02.mqua130.k1=1.8; + R56 = -000e-6; + + MATCH,RMATRIX,SEQUENCE=swissfel,range=SARCL02$START/SARCL02$END,betx=10,alfx=0,bety=10,alfy=0; + VARY,NAME=sarcl02.mqua130.k1,STEP=0.0001; + CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.mqua210,re56=R56*0.5; + LMDIF,CALLS=100,TOLERANCE=1.e-21; + ENDMATCH; + + sarcl02.mqua210.k1=-sarcl02.mqua130.k1*0.9; + sarcl02.mqua250.k1= sarcl02.mqua130.k1; + + MATCH,SEQUENCE=swissfel,range=SARCL02$START/SARCL02$END,betx=10,alfx=0,bety=10,alfy=0; + VARY,NAME=sarcl02.mqua250.k1,STEP=0.0001; + CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dbpm260$end,dpx=0; + LMDIF,CALLS=100,TOLERANCE=1.e-21; + ENDMATCH; + + sarcl02.mqua310.k1=sarcl02.mqua250.k1; + sarcl02.mqua350.k1=sarcl02.mqua210.k1; + sarcl02.mqua460.k1=sarcl02.mqua130.k1; + + dL=0.625+0.25; + bx0=25; + bx=bx0+dL*dL/bx0; + ax=-dL/bx0; + by0=0.8; + by=by0+dL*dL/by0; + ay=-dL/by0; + + twiss,sequence=swissfel,range=sarcl02.mqsk300/sarcl02$end,betx=bx,alfx=ax,bety=by,alfy=ay; + plot,haxis=s,vaxis=betx,bety,colour=100; + + nbetx= table(twiss,sarcl02$end,betx); + nalfx=-table(twiss,sarcl02$end,alfx); + nbety= table(twiss,sarcl02$end,bety); + nalfy=-table(twiss,sarcl02$end,alfy); + + + sarcl02.msex255.k2:=110; + sarcl02.msex305.k2:=110; + + + MATCH,chrom,SEQUENCE=sarcl02,range=#s/#e,betx=nbetx,alfx=nalfx,bety=nbety,alfy=nalfy; + VARY,NAME=ecol_k2,STEP=0.0001; + CONSTRAINT,SEQUENCE=Sarcl02,range=#e,ddx=0; + LMDIF,CALLS=100,TOLERANCE=1.e-21; + ENDMATCH; + + sarcl02.msex255.k2=ecol_k2; + sarcl02.msex305.k2=ecol_k2; + + twiss,chrom,rmatrix,range=SARCL02$START/SARCL02$END,betx=nbetx,alfx=nalfx,bety=nbety,alfy=nalfy; + plot,haxis=s,vaxis=betx,colour=100; + plot,haxis=s,vaxis=bety,colour=100; + plot,haxis=s,vaxis=dx,colour=100; + plot,haxis=s,vaxis=ddx,colour=100; + plot,haxis=s,vaxis=re56,colour=100; + + +} else { + sarcl02.mqua130.k1=0; + sarcl02.mqua210.k1=0; + sarcl02.mqua250.k1=0; + sarcl02.mqua310.k1=0; + sarcl02.mqua350.k1=0; + sarcl02.mqua460.k1=0; + sarcl02.msex255.k2=0; + sarcl02.msex305.k2=0; +} + + + + + + + +!--------------------------------- +! match into energy collimator +! reference point is sarma01-mqua010 + + +sarcl01.mqua020.k1 := 0.4550820417; +sarcl01.mqua050.k1 := -0.02350776516; +sarcl01.mqua080.k1 := -0.3705426893; +sarcl01.mqua100.k1 := 0.3937186328; +sarcl01.mqua140.k1 := 1.214406656; +sarcl01.mqua190.k1 := -1.475278354; + + +use,sequence=swissfel; +MATCH,SEQUENCE=swissfel,range=s20SY02$start/sarma02$start,beta0=twisssep; VARY,NAME=sarcl01.mqua020.k1,STEP=0.0001; VARY,NAME=sarcl01.mqua050.k1,STEP=0.0001; VARY,NAME=sarcl01.mqua080.k1,STEP=0.0001; VARY,NAME=sarcl01.mqua100.k1,STEP=0.0001; VARY,NAME=sarcl01.mqua140.k1,STEP=0.0001; VARY,NAME=sarcl01.mqua190.k1,STEP=0.0001; -!CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua080,betx=beta; -!CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua080,alfx=alpha; -!CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua080,bety=beta; -!CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua080,alfy=alpha; - -CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,betx=nbetx; -CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,alfx=nalfx; -CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,bety=nbety; -CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,alfy=nalfy; -CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua050,bety<30; -CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua190,betx<30; +if (ECOLasBC ==0.){ + CONSTRAINT,SEQUENCE=swissfel,range=sarma01.mqua010$start,betx=twissARECOL->BETX; + CONSTRAINT,SEQUENCE=swissfel,range=sarma01.mqua010$start,alfx=twissARECOL->ALFX; + CONSTRAINT,SEQUENCE=swissfel,range=sarma01.mqua010$start,bety=twissARECOL->BETY; + CONSTRAINT,SEQUENCE=swissfel,range=sarma01.mqua010$start,alfy=twissARECOL->ALFY; + CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua050,bety<30; + CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua190,betx<30; + } else { + CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dscr280$start,betx = 10; + CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dscr280$start,alfx=0.14; + CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dscr280$start,bety = 10; + CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dscr280$start,alfy=0.14; + CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua050,bety<70; + CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua190,betx<70; + } LMDIF,CALLS=100,TOLERANCE=1.e-21; ENDMATCH; + +twiss,sequence=swissfel,range=s20SY02$start/sarcl01$start,beta0=twisssep; +plot,haxis=s,vaxis=betx,bety,range=S30CB15$START/SARCL02$END,colour=100; + + + + + +!----------------- muAR=0.17; match,SEQUENCE=swissfel,range=sarun02$start/sarun03$end; Vary,name=sarun02.mqua080.k1,step=0.0001; @@ -342,9 +352,20 @@ CONSTRAINT,SEQUENCE=swissfel,range=sarun02$start,x<5; LMDIF,CALLS=100,TOLERANCE=1.e-21; ENDMATCH; +! from eduard +SARUN18.MQUA080.K1= -6.305232722687153e-01; +SARUN19.MQUA080.K1= 1.167256186348939e+00; +SARUN20.mqua220.K1= 8.363412365675689e-01; +SARBD01.MQUA010.K1= -2.099999992065428e+00; +SARBD01.MQUA020.K1= -2.099998228837625e+00; +SARBD02.MQUA030.K1= -2.099998942347312e+00; +!The matching routine imposes bx=50 and ax=0 at the TDS, +!sin(mux)~1 between the TDS and the dump screen, +!and minimization of by/dispy^2 at the dump screen. +!I find a solution fulfilling the conditions with by=1.136313m and dispy= 2.534262e-01 m at the screen. -twiss,SEQUENCE=swissfel,range=#s/sarun19$end,beta0=twiss0; +twiss,SEQUENCE=swissfel,range=#s/sarbd02.dscr050$end,beta0=twiss0; plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; plot,haxis=s,vaxis=dx,dy,range=#s/#e,colour=100; diff --git a/Scripts/SFPlus/matchAthos.madx b/Scripts/SFPlus/matchAthos.madx index 3af9c2c..30b25ab 100644 --- a/Scripts/SFPlus/matchAthos.madx +++ b/Scripts/SFPlus/matchAthos.madx @@ -46,27 +46,28 @@ plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; plot,haxis=s,vaxis=y,dy,range=#s/#e,colour=100; +satsy01.mqua110.k1=-0.7; + -satsy01.mqua040.k1=0.7; MATCH,SEQUENCE=Swissfel,range=s20sy02$start/satsy02$end,beta0=twisssep; -VARY,NAME=satsy01.mqua010.k1,STEP=0.0001; VARY,NAME=satsy01.mqua020.k1,STEP=0.0001; -VARY,NAME=satsy01.mqua030.k1,STEP=0.0001; +VARY,NAME=satsy01.mqua050.k1,STEP=0.0001; +VARY,NAME=satsy01.mqua080.k1,STEP=0.0001; VARY,NAME=satsy02.mqua010.k1,STEP=0.0001; - - +!VARY,NAME=satsy01.mqua110.k1,STEP=0.0001; CONSTRAINT,SEQUENCE=SwissFEL,range= satsy01$end,DX=0.0; CONSTRAINT,SEQUENCE=SwissFEL,range= satsy01$end,DPX=0.0; CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mbnd200,DY=0.0; CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mbnd200,DPY=0.0; -LMDIF,CALLS=1000,TOLERANCE=1.e-21; +JACOBIAN,CALLS=1000,TOLERANCE=1.e-21; +SIMPLEX,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; -twiss,SEQUENCE=swissfel,range=s20sy02$start/Satsy02.mbnd200,beta0=twisssep; +twiss,SEQUENCE=swissfel,range=s20sy02$start/Satsy02.mqua210$start,beta0=twisssep; plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; plot,haxis=s,vaxis=dx,dy,range=#s/#e,colour=100; @@ -74,24 +75,25 @@ plot,haxis=s,vaxis=dx,dy,range=#s/#e,colour=100; MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satsy03$end,beta0=twisssep; -VARY,NAME=satsy03.mqua110.k1,STEP=0.0001; +VARY,NAME=satsy03.mqua120.k1,STEP=0.0001; CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mbnd200,DX=0.0; LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; -L = 38-9.8+6.25; +satsy02.mqua210.k1=1; +satsy02.mqua230.k1=0; +satsy02.mqua240.k1=0; +satsy02.mqua260.k1=0; -alpha=1.0; -beta = L*alpha; MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satsy03$end,beta0=twisssep; -VARY,NAME=satsy02.mqua205.k1,STEP=0.0001; VARY,NAME=satsy02.mqua210.k1,STEP=0.0001; -VARY,NAME=satsy02.mqua220.k1,STEP=0.0001; VARY,NAME=satsy02.mqua230.k1,STEP=0.0001; -CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua230,betx=beta; -CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua230,bety=beta; -CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua230,alfx=alpha; -CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua230,alfy=alpha; +VARY,NAME=satsy02.mqua240.k1,STEP=0.0001; +VARY,NAME=satsy02.mqua260.k1,STEP=0.0001; +CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua260$end,betx=twissAT1->BETX; +CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua260$end,bety=twissAT1->BETY; +CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua260$end,alfx=twissAT1->ALFX; +CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua260$end,alfy=twissAT1->ALFY; LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; @@ -99,13 +101,13 @@ ENDMATCH; MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satsy03$end,beta0=twisssep; VARY,NAME=satsy02.mqua300.k1,STEP=0.0001; VARY,NAME=satsy02.mqua310.k1,STEP=0.0001; -VARY,NAME=satsy02.mqua320.k1,STEP=0.0001; VARY,NAME=satsy02.mqua330.k1,STEP=0.0001; +VARY,NAME=satsy02.mqua340.k1,STEP=0.0001; -CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua110,betx=5; -CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua110,bety=4; -CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua110,alfx=1.77; -CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua110,alfy=-1.04; +CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua120,betx=twissAT2->BETX; +CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua120,bety=twissAT2->BETY; +CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua120,alfx=twissAT2->ALFX; +CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua120,alfy=twissAT2->ALFY; LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; @@ -115,12 +117,12 @@ twiss,SEQUENCE=swissfel,range=s20sy02$start/Satsy03.mbnd200,beta0=twisssep; plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; plot,haxis=s,vaxis=dx,dy,range=#s/#e,colour=100; - +exit; MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satbc01$end,beta0=twisssep; -VARY,NAME=satsy03.mqua210.k1,STEP=0.0001; +VARY,NAME=satsy03.mqua220.k1,STEP=0.0001; VARY,NAME=satsy03.mqua310.k1,STEP=0.0001; -VARY,NAME=satsy03.mqua410.k1,STEP=0.0001; +VARY,NAME=satsy03.mqua430.k1,STEP=0.0001; CONSTRAINT,SEQUENCE=SwissFEL,range= satbc01.mbnd400,BETX<5; CONSTRAINT,SEQUENCE=SwissFEL,range= satbc01.mbnd400,BETY<60; CONSTRAINT,SEQUENCE=SwissFEL,range= satbc01.mbnd100,BETX<80; @@ -149,9 +151,9 @@ ENDMATCH; MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satcl01$end,beta0=twisssep; VARY,NAME=satbc01.mqua410.k1,STEP=0.0001; -VARY,NAME=satbc01.mqua420.k1,STEP=0.0001; VARY,NAME=satbc01.mqua430.k1,STEP=0.0001; -VARY,NAME=satbc01.mqua440.k1,STEP=0.0001; +VARY,NAME=satbc01.mqua450.k1,STEP=0.0001; +VARY,NAME=satbc01.mqua470.k1,STEP=0.0001; CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01.msex160, alfx = 0; CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01.msex160, alfy = 0; @@ -162,8 +164,8 @@ ENDMATCH; MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satdi01$end,beta0=twisssep; VARY,NAME=satdi01.mqua025.k1,STEP=0.0001; -CONSTRAINT,SEQUENCE=SwissFEL,range= satdi01.dscr065$start, betx<18; -CONSTRAINT,SEQUENCE=SwissFEL,range= satdi01.dscr065$start, bety<18; +CONSTRAINT,SEQUENCE=SwissFEL,range= satdi01.dscr065$start, betx<19; +CONSTRAINT,SEQUENCE=SwissFEL,range= satdi01.dscr065$start, bety<19; LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; @@ -174,19 +176,6 @@ plot,haxis=s,vaxis=re56,range=#s/#e,colour=100; - - - - - - - - - - - - - scl:=1.5; ss:=0.83; @@ -210,10 +199,10 @@ VARY,NAME=satdi01.mqua230.k1,STEP=0.0001,lower=-1.8,upper=1.8; VARY,NAME=satdi01.mqua250.k1,STEP=0.0001,lower=-1.8,upper=1.8; VARY,NAME=satcb01.mqua230.k1,STEP=0.0001,lower=-1.8,upper=1.8; VARY,NAME=satcb01.mqua430.k1,STEP=0.0001,lower=-1.8,upper=1.8; -CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$end,betx=beta; -CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$end,alfx=alpha; -CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$end,bety=beta; -CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$end,alfy=alpha; +CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$end,betx=twissAT3->BETX; +CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$end,alfx=twissAT3->ALFX; +CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$end,bety=twissAT3->BETY; +CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$end,alfy=twissAT3->ALFY; CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$start,x<10; CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$start,y<10; CONSTRAINT,SEQUENCE=swissfel,range=satcb01.mqua430$start,DX<10; @@ -298,13 +287,10 @@ ENDMATCH; - - twiss,SEQUENCE=swissfel,range=satma01.mqua250$end/satun11$end,beta0=twissee; plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; - scl=4; satcb02.mqua230.k1=scl*0.2; satcb02.mqua430.k1=-scl*0.2; @@ -313,14 +299,6 @@ satcb03.mqua430.k1=-scl*0.2; -satma01.mqua120.k1=0; -satma01.mqua140.k1=0; -satma01.mqua160.k1=0; -satma01.mqua180.k1=0; -satma01.mqua230.k1=0; -satma01.mqua250.k1=0; - - MATCH, SEQUENCE=swissfel,range=s20sy02$start/satma01$end,beta0=twisssep; VARY,NAME=satcb03.mqua430.k1,STEP=0.0001,lower=-3.8,upper=3.8; VARY,NAME=satma01.mqua120.k1,STEP=0.0001,lower=-3.8,upper=3.8; @@ -329,10 +307,10 @@ VARY,NAME=satma01.mqua160.k1,STEP=0.0001,lower=-3.8,upper=3.8; VARY,NAME=satma01.mqua180.k1,STEP=0.0001,lower=-3.8,upper=3.8; VARY,NAME=satma01.mqua230.k1,STEP=0.0001,lower=-3.0,upper=3.0; VARY,NAME=satma01.mqua250.k1,STEP=0.0001,lower=-3.0,upper=3.0; -CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,betx=eebetx; -CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,bety=eebety; -CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,alfx=eealfx; -CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,alfy=eealfy; +CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,betx=twissee->BETX; +CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,bety=twissee->BETY; +CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,alfx=twissee->ALFX; +CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,alfy=twissee->ALFY; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua120$start, betx <70; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua120$start, bety <70; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua140$start, betx <70; diff --git a/Scripts/SFPlus/matchInjector.madx b/Scripts/SFPlus/matchInjector.madx index 3d40296..7028c97 100644 --- a/Scripts/SFPlus/matchInjector.madx +++ b/Scripts/SFPlus/matchInjector.madx @@ -1,14 +1,7 @@ -! reg filter for updated variables -updateInjector := "S[I1].*k1;S20SY01.*k1"; ! into laser heater -sinlh01.mqua020.k1 = 0; -sinlh01.mqua040.k1 = 0; -sinlh01.mqua070.k1 = 0; -sinsb03.mqua130.k1 = 0; -sinsb03.mqua230.k1 = 0; L = 8.72; alpha = 1; @@ -25,10 +18,10 @@ VARY,NAME=sinsb03.MQUA230.k1,STEP=0.0001; VARY,NAME=sinsb04.MQUA130.k1,STEP=0.0001; VARY,NAME=sinsb04.MQUA230.k1,STEP=0.0001; -CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua230$end, alfx = alpha; -CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua230$end, alfy = alpha; -CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua230$end, betx = beta; -CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua230$end, bety = beta; +CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua230$end, alfx = TwissM1->ALFX; +CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua230$end, alfy = TwissM1->ALFY; +CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua230$end, betx = TwissM1->BETX; +CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua230$end, bety = TwissM1->BETY; CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua130$end, betx < 100; CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb04.mqua130$end, bety < 100; CONSTRAINT,SEQUENCE=SwissFEL,range=sinlh01.mqua070$end, betx < 100; @@ -37,11 +30,7 @@ LMDIF,CALLS=1000,TOLERANCE=1.e-21; SIMPLEX,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; -sinbc01.mqua020.k1=0.0; -sinbc01.mqua050.k1=0; -sinbc01.mqua070.k1=0; -sinbc01.mqua090.k1=0; -sinbc01.mqua110.k1=0; + twiss,SEQUENCE=swissfel,range=#s/sinbc01$end,beta0 = Twiss0; plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; @@ -64,27 +53,7 @@ twiss,SEQUENCE=swissfel,range=#s/sinbc02$end,beta0 = Twiss0; plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; sinma01.mqua020.k1=-0.1; -sinma01.mqua030.k1=0; -sinma01.mqua050.k1=0; -sincb01.mqua230.k1=0; -sincb01.mqua430.k1=0; - -sindi01.mqua020.k1=0; -sindi01.mqua070.k1=0; - -sindi02.mqua020.k1=0.0; -sindi02.mqua030.k1=0.0; -sindi02.mqua050.k1=0; -sindi02.mqua060.k1=0; -sindi02.mqua090.k1=0; - -bc1betx=11.1557; -bc1alfx=-1.17; -bc1bety=50; -bc1alfy=0; - -beta=50; MATCH,SEQUENCE=SwissFEL,range=#s/sindi02$end,beta0 = Twiss0; VARY,NAME=sinma01.MQUA020.k1,STEP=0.0001; VARY,NAME=sinma01.MQUA030.k1,STEP=0.0001; @@ -93,10 +62,10 @@ VARY,NAME=sincb01.MQUA230.k1,STEP=0.0001; VARY,NAME=sincb01.MQUA430.k1,STEP=0.0001; 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=sindi02.mqua020$start,bety=bc1bety; -CONSTRAINT,SEQUENCE=SwissFEL,range=sindi02.mqua020$start,alfy=bc1alfy; -CONSTRAINT,SEQUENCE=SwissFEL,range=sindi02.mqua020$start,betx=bc1betx; -CONSTRAINT,SEQUENCE=SwissFEL,range=sindi02.mqua020$start,alfx=bc1alfx; +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; CONSTRAINT,SEQUENCE=SwissFEL,range=sinma01$end, betx < 100; CONSTRAINT,SEQUENCE=SwissFEL,range=sinma01$end, bety < 100; CONSTRAINT,SEQUENCE=SwissFEL,range=sincb01$end, betx < 100; @@ -110,28 +79,28 @@ twiss,SEQUENCE=swissfel,range=#s/sindi02$end,beta0 = Twiss0; plot,haxis=s,vaxis=betx,bety,range=sinbc02$start/#e,colour=100; -s10cb01.mqua230.k1=0.2; -s10cb01.mqua430.k1=-0.2; +s10cb02.mqua230.k1=0.2; +s10cb02.mqua430.k1=-0.2; muLin1=0.2; -match,SEQUENCE=swissfel,range=S10cb01$start/s10cb01$end; -Vary,name=S10CB01.MQUA230.k1,step=0.0001; -Vary,name=S10CB01.MQUA430.k1,step=0.0001; -constraint,sequence=swissfel,range=s10cb01$end,mux=muLin1; -constraint,sequence=swissfel,range=s10cb01$end,muy=muLin1; +match,SEQUENCE=swissfel,range=S10cb02$start/s10cb02$end; +Vary,name=S10CB02.MQUA230.k1,step=0.0001; +Vary,name=S10CB02.MQUA430.k1,step=0.0001; +constraint,sequence=swissfel,range=s10cb02$end,mux=muLin1; +constraint,sequence=swissfel,range=s10cb02$end,muy=muLin1; lmdif,calls=100,tolerance=1e-21; endmatch; -s10cb02.mqua230.k1 = s10cb01.mqua230.k1; -s10cb02.mqua430.k1 = s10cb01.mqua430.k1; +s10cb01.mqua230.k1 = s10cb02.mqua230.k1; +s10cb01.mqua430.k1 = s10cb02.mqua430.k1; -twiss,SEQUENCE=swissfel,range=s10cb01$start/s10cb01$end; +twiss,SEQUENCE=swissfel,range=s10cb02$start/s10cb02$end; -nbetx=table(twiss,s10cb01$end,betx); -nalfx=table(twiss,s10cb01$end,alfx); -nbety=table(twiss,s10cb01$end,bety); -nalfy=table(twiss,s10cb01$end,alfy); +nbetx=table(twiss,s10cb02$end,betx); +nalfx=table(twiss,s10cb02$end,alfx); +nbety=table(twiss,s10cb02$end,bety); +nalfy=table(twiss,s10cb02$end,alfy); plot,haxis=s,vaxis=betx,bety,colour=100; @@ -178,33 +147,24 @@ S10CB10.MQUA430.k1=S10CB02.MQUA230.k1; S10CB11.MQUA230.k1=S10CB02.MQUA430.k1; - - twiss,SEQUENCE=swissfel,range=#s/s10cb10$end,beta0 = Twiss0; plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; -s20sy01.mqua010.k1:=0; -s20sy01.mqua020.k1:=0; -s20sy01.mqua030.k1:=0; -s20sy01.mqua040.k1:=0; - MATCH,SEQUENCE=SwissFEL,range=#s/s20sy02$start,beta0 = Twiss0; VARY,NAME=s20sy01.mqua010.k1,STEP=0.0001,lower=-5.5,upper=5.5; -VARY,NAME=s20sy01.mqua020.k1,STEP=0.0001,lower=-5.5,upper=5.5; +VARY,NAME=s20sy01.mqua060.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.mqua040.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=10; -CONSTRAINT,SEQUENCE=swissfel,range=s20sy01$end,alfx=-0.2; -CONSTRAINT,SEQUENCE=swissfel,range=s20sy01$end,bety=15; -CONSTRAINT,SEQUENCE=swissfel,range=s20sy01$end,alfy=1; +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; !CONSTRAINT,SEQUENCE=swissfel,range=s20sy01.mqua020$end,bety<80; LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; -!Twisssep: beta0,betx=20,alfx=-0.5,bety=15,alfy=1; twiss,SEQUENCE=swissfel,range=#s/s20sy01$end,beta0 = Twiss0; plot,haxis=s,vaxis=betx,bety,range=s10cb08$start/#e,colour=100; diff --git a/matchmaker.py b/matchmaker.py index 12efb9f..6b42526 100644 --- a/matchmaker.py +++ b/matchmaker.py @@ -57,9 +57,9 @@ class MatchMaker: def match(self, om, variables = None, Injector=True, Athos = True, Aramis = False, Porthos = False): if Athos: - target = 'SATBD01' + target = 'SATBD02' else: - target = 'SARBD01' + target = 'SARBD02' f = io.StringIO() madx = CMadX(f) diff --git a/model.py b/model.py index 84ce3fa..97f5bf9 100644 --- a/model.py +++ b/model.py @@ -305,3 +305,44 @@ class Model: return start,end +########################################3 + def checkMagnetLimit(self): + # using magnet calibration + quad={} + quad['QFA'] = [0.15, 0.173, 150.0, 91.1, 0.0, 0.74521, -0.00813, -0.03542, + 22.5e-3] # From MEASUREMENT. Documentation: https://intranet.psi.ch/pub/Swiss_FEL/FinQuadrupoles/QFA.pdf + quad['QFB'] = [0.08, 0.11, 10.0, 4.9, 0.0, 0.03815, -1.8e-4, -0.7e-3, + 22.5e-3] # From MEASUREMENT(?). Documentation(Implementaion): the matlab version Injector on-line model, Curr2KLquad.m + quad['QFC'] = [0.08, 0.11, 10.0, 10.1, 0.0, 0.5, 0.0, 0.0, + 1.0] # From DESIGN(?). Documentation: Injector wiki, Subsystems (as of 14th Aug 2014) + quad['QFD'] = [0.15, 0.1628, 10.0, 5.6, 0.0, 0.23313, -27.6e-4, 15.5e-4, + 0.011] # From Measurement. Documentation: FEL-SS88-007-7.pdf (found in Alfresco: Company Home > Projects > SwissFEL > Facility > 8850 Magnets) + quad['QFF'] = [0.08, 0.0875, 10.0, 2.9, 0.0, 0.32897, -0.5e-4, -42.9e-4, + 0.006] # From Measurement. Documentation: FEL-SS88-008-8.pdf (found in Alfresco) + quad['QFM'] = [0.3, 0.311, 50.0, 21.1, 0.0, 0.64541, -0.00296, -0.00617, 0.011] # From Measurement + + k1brho={} + for key in quad.keys(): + [PhysicalLength, MagneticLength, Imax, Ilin, b0, b1, b2, b3, R] = quad[key] # quick conversion for quadrupoles and sextupoles + if abs(Imax) < Ilin: + B = b0 + b1 + else: + B = b0 + b1 + b2 +b3 + k1brho[key]= B * MagneticLength/R/PhysicalLength + #k1 = val/brho + + elements=self.getElements() + print('Relative Magnet Strength') + for ele in elements: + if 'MQUA' in ele.Name.upper(): + bg = ele.Baugruppe + Energy = self.om.EnergyAt(ele.Name)[0]*1e-6 + gamma = (Energy + 0.511) / 0.511 # Energy in units of MeV since 29.06.2015 + beta = np.sqrt(1 - 1 / gamma ** 2) + p = 511e3 * beta * gamma / 1e9 # momentum in GeV/c + brho = p / 0.299792 # P[GeV/c]=0.3*Brho[T.m] + if bg in k1brho.keys(): + k1max=k1brho[bg]/brho + rat=np.abs(ele.k1/k1max)*100. + print('%s: %5.1f (percent)' % (ele.Name.replace('.','-'),rat)) + diff --git a/ui/OpticsToolsGui.py b/ui/OpticsToolsGui.py index d666b16..c317936 100644 --- a/ui/OpticsToolsGui.py +++ b/ui/OpticsToolsGui.py @@ -356,9 +356,9 @@ class Ui_OpticsGUI(object): self.UIInitAllMagnets = QtWidgets.QCheckBox(self.widget) self.UIInitAllMagnets.setObjectName("UIInitAllMagnets") self.verticalLayout_3.addWidget(self.UIInitAllMagnets) - self.UIModifyKnobs = QtWidgets.QCheckBox(self.widget) - self.UIModifyKnobs.setObjectName("UIModifyKnobs") - self.verticalLayout_3.addWidget(self.UIModifyKnobs) + self.UIReportMatchStrength = QtWidgets.QCheckBox(self.widget) + self.UIReportMatchStrength.setObjectName("UIReportMatchStrength") + self.verticalLayout_3.addWidget(self.UIReportMatchStrength) self.label_19 = QtWidgets.QLabel(self.widget) font = QtGui.QFont() font.setBold(True) @@ -366,6 +366,9 @@ class Ui_OpticsGUI(object): self.label_19.setFont(font) self.label_19.setObjectName("label_19") self.verticalLayout_3.addWidget(self.label_19) + self.UIModifyKnobs = QtWidgets.QCheckBox(self.widget) + self.UIModifyKnobs.setObjectName("UIModifyKnobs") + self.verticalLayout_3.addWidget(self.UIModifyKnobs) self.UIMatchKnobs = QtWidgets.QTableWidget(self.widget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(0) @@ -657,8 +660,9 @@ class Ui_OpticsGUI(object): self.UIMatchAramis.setText(_translate("OpticsGUI", "Aramis")) self.UISaveMatchSettings.setText(_translate("OpticsGUI", "Save matched machine settings automtically")) self.UIInitAllMagnets.setText(_translate("OpticsGUI", "Initialize all magnets to zero before matching")) - self.UIModifyKnobs.setText(_translate("OpticsGUI", "Overwrite default values for matching variables ")) + self.UIReportMatchStrength.setText(_translate("OpticsGUI", "Report matched quadrupole strength")) self.label_19.setText(_translate("OpticsGUI", "Matching Variables")) + self.UIModifyKnobs.setText(_translate("OpticsGUI", "Overwrite default values for matching variables ")) item = self.UIMatchKnobs.horizontalHeaderItem(0) item.setText(_translate("OpticsGUI", "Parameter")) item = self.UIMatchKnobs.horizontalHeaderItem(1) diff --git a/ui/OpticsToolsGui.ui b/ui/OpticsToolsGui.ui index c6e344b..8326cea 100644 --- a/ui/OpticsToolsGui.ui +++ b/ui/OpticsToolsGui.ui @@ -582,9 +582,9 @@ - + - Overwrite default values for matching variables + Report matched quadrupole strength @@ -601,6 +601,13 @@ + + + + Overwrite default values for matching variables + + +