diff --git a/synchro/Reference_Results/compareOptics.m b/synchro/Reference_Results/compareOptics.m index af3b98d..0e9a677 100644 --- a/synchro/Reference_Results/compareOptics.m +++ b/synchro/Reference_Results/compareOptics.m @@ -6,18 +6,18 @@ addpath(genpath(pathToLibrary)); opticsFileNames=[... - "..\extraction_030mm_optics.tfs" ... - "..\extraction_320mm_optics.tfs" ... - "..\extraction_030mm_noHbump_optics.tfs" ... - "..\extraction_320mm_noHbump_optics.tfs" ... + "..\original_start_at_crystal\extraction_carbon_270mm_optics.tfs" ... + "..\bumped\extraction_carbon_270mm_optics.tfs" ... + "..\bumped_with_crystal\extraction_carbon_270mm_optics.tfs" ... +% "..\extraction_carbon_270mm_optics.tfs" ... +% "..\original\extraction_carbon_270mm_optics.tfs" ... ]; labels=[... - "p-30mm" ... - "p-320mm" ... - "p-30mm, no H bump" ... - "p-320mm, no H bump" ... + "original" ... + "bump at crystal" ... + "bump at crystal + channelled beam" ... ]; -geometryFileName="..\extraction_030mm_geometry.tfs"; +geometryFileName="..\original_start_at_crystal\extraction_carbon_270mm_geometry.tfs"; optics = ParseTfsTable(opticsFileNames,'optics'); [Qx,Qy,Chrx,Chry,Laccel,headerNames,headerValues] = ... @@ -25,10 +25,10 @@ % read geometry file geometry = ParseTfsTable(geometryFileName,'geometry'); -title="synchro, protons"; +title="TM, Carbon ions, 270 mm, extraction"; CompareOptics(optics,labels,geometry,"BET",title); -% CompareOptics(optics,labels,geometry,"D",title); -% CompareOptics(optics,labels,geometry,"CO",title); +CompareOptics(optics,labels,geometry,"D",title); +CompareOptics(optics,labels,geometry,"CO",title); % CompareOptics(optics,labels,geometry,"ENV",title); diff --git a/synchro/Reference_Results/showMyOptics.m b/synchro/Reference_Results/showMyOptics.m index 5591a8a..44719d6 100644 --- a/synchro/Reference_Results/showMyOptics.m +++ b/synchro/Reference_Results/showMyOptics.m @@ -4,8 +4,11 @@ % - include Matlab library pathToLibrary="..\..\..\MatLabTools"; addpath(genpath(pathToLibrary)); -opticsFileName="..\extraction_optics.tfs"; -geometryFileName="..\extraction_geometry.tfs"; +opticsFileName="..\bumped_with_crystal\extraction_carbon_270mm_optics.tfs"; +geometryFileName="..\bumped_with_crystal\extraction_carbon_270mm_geometry.tfs"; +myTitle="TM - Carbon - 270 mm - bump at crystals and channelled beam"; +emig=1.0E-06; % [m rad] +sigdpp=0.0; % [] % acquire data optics = ParseTfsTable(opticsFileName,'optics'); @@ -14,4 +17,35 @@ geometry = ParseTfsTable(geometryFileName,'geometry'); % show the optics -ShowOptics(optics,geometry,"RFKO - Carbon - 270 mm",Laccel,Qx,Qy,Chrx,Chry); \ No newline at end of file +ShowOptics(optics,geometry,myTitle,Laccel,Qx,Qy,Chrx,Chry); + +% show beam envelop +ShowEnvelopAperture(optics,geometry,myTitle,Laccel,Qx,Qy,Chrx,Chry,emig,sigdpp); + +% % +% f1=figure('Name','phase advance','NumberTitle','off'); +% % - geometry +% ax1=subplot(2,1,1); +% PlotLattice(geometry); +% % - hor phase advance +% ax2=subplot(2,1,2); +% PlotOptics(optics,"MUX"); +% grid on; +% linkaxes([ax1 ax2],'x'); +% +% % +% f1=figure('Name','sigmas','NumberTitle','off'); +% % - geometry +% ax1=subplot(3,1,1); +% PlotLattice(geometry); +% xlim([0 Laccel]); +% % - hor sigma +% ax2=subplot(3,1,2); +% PlotOptics(optics,"SIGX",emig,sigdpp); +% grid on; +% % - ver sigma +% ax3=subplot(3,1,3); +% PlotOptics(optics,"SIGPX",emig,sigdpp); +% grid on; +% % +% linkaxes([ax1 ax2 ax3],'x'); diff --git a/synchro/explore_christals.cmdx b/synchro/explore_christals.cmdx new file mode 100644 index 0000000..bbeb539 --- /dev/null +++ b/synchro/explore_christals.cmdx @@ -0,0 +1,105 @@ +! parse table +if ( is_carbon==0 ) { ! protons + READTABLE, file="RampGen/TM_Protons.tfs", table=table_settings; +} else { + if ( mMode==1 ) { ! carbon ions + ! RFKO + READTABLE, file="RampGen/KmachinephotoCarbRFKO.tfs", table=table_settings; + }else{ + ! TM + READTABLE, file="RampGen/TM_Carbon.tfs", table=table_settings; + }; +}; +lunghezza=table(table_settings,tablelength); +n=lunghezza; + +SETVARS, TABLE=table_settings, ROW=n; +call, file="settings_from_rampGen_table.str"; + +! overwrite settings read: +K0MB=K0MB_ref; +! hk_s0 = 0.0 ; +! hk_s2 = 0.0 ; +! hk_sc0 = 0.0 ; +! hk_sc = 0.0 ; +! hk_se = 0.0 ; +! - injection bump +! Ibumper=161.0; ! [A] (by LFalbo) + +! notify user where we are +PRINTF, TEXT="at Ek = %g MeV/u- BP = %g mm - row = %.0f ...", VALUE= Ek,BP,n; + +exec, setRigidity(); + +! set injection bumper k from the specified current +exec, I2K_InjBump(); ! input: Ibumper[A],Brho[Tm]; + +! set sextupole families from the specified current +exec, I2K_sextupoles_S6_SR(); ! input: Is_SR[A],Brho[Tm]; +exec, I2K_sextupoles_S8_S1(); ! input: Is_SR[A],Brho[Tm]; +exec, I2K_sextupoles_S9_S0(); ! input: Is_SR[A],Brho[Tm]; + +! insert crystal +S2_017A_CRY: KICKER, L= 0.0, HKICK:=CRY_HK, VKICK:=CRY_VK; +SEQEDIT, sequence=MUXL; +Install, element=S2_017A_CRY, at=0.5*S2_013A_SVA->L+0.2, from=S2_013A_SVA; +ENDEDIT; + +/* +USE, sequence=MUXL; +MATCH, sequence=MUXL; +CONSTRAINT, SEQUENCE=MUXL, RANGE=SE_010A_ESP, X=-0.012, PX=-31.44E-6; +CONSTRAINT, SEQUENCE=MUXL, RANGE=S0_016A_MSP, PX=1.395E-3; +! CONSTRAINT, SEQUENCE=MUXL, RANGE=S2_008A_CSH, X=0.0, PX=0.0; +CONSTRAINT, SEQUENCE=MUXL, RANGE=S6_014A_CSH, X=0.0, PX=0.0; +CONSTRAINT, SEQUENCE=MUXL, RANGE=S2_017A_CRY, X=0.035, PX=0.0; +VARY, NAME=HK_S0 , STEP=1E-5; +VARY, NAME=HK_S2 , STEP=1E-5; +VARY, NAME=HK_S4 , STEP=1E-5; +VARY, NAME=HK_S6 , STEP=1E-5; +VARY, NAME=HK_SC0, STEP=1E-5; +VARY, NAME=HK_SC , STEP=1E-5; +VARY, NAME=HK_SE , STEP=1E-5; +LMDIF, CALLS=1000, TOLERANCE=1.0E-12; +!JACOBIAN, CALLS=100, TOLERANCE=1.0E-6; +ENDMATCH; + +! save betas at crystal +USE, sequence=MUXL; +SAVEBETA, LABEL=initial, PLACE=S2_017A_CRY, SEQUENCE=MUXL; +Twiss; +! reset some of the initial conditions +initial->mux=0.0; +initial->muy=0.0; +initial->t=0.0; +! show, initial; +! stop; +*/ + +! start at crystal +USE, sequence=MUXL; +SEQEDIT, sequence=MUXL; +FLATTEN; +CYCLE, start=S2_017A_CRY; +FLATTEN; +ENDEDIT; + +/* +! give the crystal a kick +! CRY_HK=1E-3; +is_open=1; +USE, sequence=MUXL; +MATCH, sequence=MUXL, beta0=initial; +CONSTRAINT, SEQUENCE=MUXL, RANGE=SE_010A_ESP, X=0.035; +VARY, NAME=CRY_HK, STEP=1E-5; +LMDIF, CALLS=1000, TOLERANCE=1.0E-12; +!JACOBIAN, CALLS=100, TOLERANCE=1.0E-6; +ENDMATCH; +*/ + +use,sequence=MUXL; +exec, saveOpticsTFS(extraction_carbon_270mm); +exec, saveGeometryTFS(extraction_carbon_270mm); +exec, save_strengths(extraction_carbon_270mm); +is_open=0; + diff --git a/synchro/synchro.madx b/synchro/synchro.madx index 2becd8e..19f6025 100644 --- a/synchro/synchro.madx +++ b/synchro/synchro.madx @@ -68,7 +68,7 @@ call, file="synchro.aper"; ! ============================================================================== ! a simple example ! ============================================================================== - +/* ! set some additional beam properties exec, setRigidity(); @@ -89,6 +89,9 @@ exec, saveOpticsTFS(extraction); exec, saveGeometryTFS(extraction); ! save strengths exec, save_strengths(myOptics); +*/ + +call, file="explore_christals.cmdx"; ! ============================================================================== ! specific tasks