
!-----------------------------------------------------------------------
! Transmute RFCAs into DRIFTs for getting rid of the RF voltage set up
!-----------------------------------------------------------------------

!&transmute_elements
	name = RFC*,
	type = RFCA,
	new_type = "DRIF",
!&end

&transmute_elements
	name = IDVC*,
	new_type = "DRIF",
&end

&transmute_elements
	name = CEN_IDVC*,
	new_type = "DRIF",
&end




&rpn_load
	filename=settings.sdds
	load_parameters=1
&end

&run_setup
	lattice = ./elettra_forum.lte
	rootname = elettra0
        default_order = "(order_transport)",
        use_beamline = RING,
        p_central = "(p_central)"
	centroid = %s.cen
	output = %s.out
	sigma = %s.sig
	final = %s.fin
	magnets = %s.mag
	parameters = %s.param
	semaphore_file = %s.done0
&end

&twiss_output
	filename="%s.twi"
	concat_order = "(order_transport)",
        matched = 1,
	radiation_integrals = 1
        output_at_each_step = 1,
	final_values_only = 0,
	statistics = 1
&end


&run_control
        n_steps = 1
	n_passes = 1
	n_indices = 0
&end


!-----------------------------------------------------------------------------------

! Below are normal quads for nux=14.3, nuy=8.2, and chromatic sextupoles for chromaticity correction
! Also included two families of skew quads in the short-short insertion in the DBA
!-----------------------------------------------------------------------------------

&alter_elements name=Q1_S* item=K1 value=-2.002846683009320e+000 &end
&alter_elements name=Q2_S* item=K1 value= 2.235214991504899e+000 &end
&alter_elements name=Q3_S* item=K1 value=-1.220588322271727e+000 &end
&alter_elements name=SF_S* item=K2 value= 3.624323e+001 &end
&alter_elements name=SD_S* item=K2 value=-3.001094e+001 &end

! NEW - skew quad
&alter_elements name=QS_S2.1 item=K1 value= 0.0 &end
&alter_elements name=QS_S1.1 item=K1 value= 0.0 &end


!-------------------------------------------------------------
! Compute closed orbit, just to be sure the optics is correct
!-------------------------------------------------------------

&closed_orbit
	output = %s.clo
	closed_orbit_accuracy = 1e-8
        closed_orbit_iterations = 500
	iteration_fraction = 0.25
&end


!--------------------------------------------------------------
! Computes equilibrium properties in the presence of coupling
!--------------------------------------------------------------

&moments_output
        filename = %s.bare.mom
        matched = 1
        equilibrium = 1
        radiation = 1
	output_at_each_step = 1
	final_values_only = 1
	n_slices = 30
	verbosity = 2
&end

&bunched_beam   &end

&track 
center_on_orbit = 0
center_momentum_also = 1
&end

&save_lattice filename = %s.new &end

!&stop




!------------------------------------------------------------------
! Add errors and physical apertures, then track over many turns 
! for dynamic aperture with radiation damping
!------------------------------------------------------------------

&rpn_load
	filename=settings.sdds
	load_parameters=1
&end

&run_setup 
        lattice        = elettra0.new,
        use_beamline   = ring,
	rootname       = elettra1
        p_central      =  "(p_central)",
        default_order  = "(order_transport)",
        magnets        = %s.mag
	centroid       = %s.cen
	sigma 	       = %s.sig
	semaphore_file = %s.done1
&end


&run_control
	n_passes = "(nturns)"
	n_steps = "(n_steps)"
&end


!----------------------------------------------
! Energy Offset
!----------------------------------------------

&alter_elements name=MAL item=DP value="(momentum_offset)" &end



!*** switch on below to MIS-align DIPOLES

&alter_elements name=B*_S1.1 item=DX value=270e-6 &end
&alter_elements name=B*_S1.1 item=DY value=50e-6 &end
&alter_elements name=B*_S1.1 item=ETILT value=100e-6 &end
&alter_elements name=B*_S1.2 item=DX value=170e-6 &end
&alter_elements name=B*_S1.2 item=DY value=10e-6 &end
&alter_elements name=B*_S1.2 item=ETILT value=-100e-6 &end
&alter_elements name=B*_S2.1 item=DX value=20e-6 &end
&alter_elements name=B*_S2.1 item=DY value=60e-6 &end
&alter_elements	name=B*_S2.1 item=ETILT value=200e-6 &end
&alter_elements name=B*_S2.2 item=DX value=50e-6 &end
&alter_elements name=B*_S2.2 item=DY value=190e-6 &end
&alter_elements name=B*_S2.2 item=ETILT value=-100e-6 &end
&alter_elements name=B*_S3.1 item=DX value=20e-6 &end
&alter_elements name=B*_S3.1 item=DY value=180e-6 &end
&alter_elements name=B*_S3.1 item=ETILT value=100e-6 &end
&alter_elements name=B*_S3.2 item=DX value=180e-6 &end
&alter_elements name=B*_S3.2 item=DY value=130e-6 &end
&alter_elements name=B*_S3.2 item=ETILT value=100e-6 &end
&alter_elements name=B*_S4.1 item=DX value=-20e-6 &end
&alter_elements name=B*_S4.1 item=DY value=-50e-6 &end
&alter_elements name=B*_S4.1 item=ETILT value=-100e-6 &end
&alter_elements name=B*_S4.2 item=DX value=-200e-6 &end
&alter_elements name=B*_S4.2 item=DY value=-150e-6 &end
&alter_elements name=B*_S4.2 item=ETILT value=100e-6 &end
&alter_elements name=B*_S5.1 item=DX value=-150e-6 &end
&alter_elements name=B*_S5.1 item=DY value=-220e-6 &end
&alter_elements name=B*_S5.1 item=ETILT value=100e-6 &end
&alter_elements name=B*_S5.2 item=DX value=-10e-6 &end
&alter_elements name=B*_S5.2 item=DY value=-190e-6 &end
&alter_elements name=B*_S5.2 item=ETILT value=-100e-6 &end
&alter_elements name=B*_S6.1 item=DX value=-180e-6 &end
&alter_elements name=B*_S6.1 item=DY value=-180e-6 &end
&alter_elements name=B*_S6.1 item=ETILT	value=-100e-6 &end
&alter_elements name=B*_S6.2 item=DX value=-100e-6 &end
&alter_elements name=B*_S6.2 item=DY value=-10e-6 &end
&alter_elements name=B*_S6.2 item=ETILT value=-100e-6 &end
&alter_elements name=B*_S7.1 item=DX value=-200e-6 &end
&alter_elements name=B*_S7.1 item=DY value=20e-6 &end
&alter_elements name=B*_S7.1 item=ETILT value=200e-6 &end
&alter_elements name=B*_S7.2 item=DX value=14e-6 &end
&alter_elements name=B*_S7.2 item=DY value=210e-6 &end
&alter_elements name=B*_S7.2 item=ETILT value=200e-6 &end
&alter_elements name=B*_S8.1 item=DX value=350e-6 &end
&alter_elements name=B*_S8.1 item=DY value=20e-6 &end
&alter_elements name=B*_S8.1 item=ETILT value=100e-6 &end
&alter_elements name=B*_S8.2 item=DX value=370e-6 &end
&alter_elements name=B*_S8.2 item=DY value=230e-6 &end
&alter_elements name=B*_S8.2 item=ETILT value=100e-6 &end
&alter_elements name=B*_S9.1 item=DX value=-30e-6 &end
&alter_elements name=B*_S9.1 item=DY value=110e-6 &end
&alter_elements name=B*_S9.1 item=ETILT value=-200e-6 &end
&alter_elements name=B*_S9.2 item=DX value=90e-6 &end
&alter_elements name=B*_S9.2 item=DY value=80e-6 &end
&alter_elements name=B*_S9.2 item=ETILT value=-100e-6 &end
&alter_elements name=B*_S10.1 item=DX value=80e-6 &end
&alter_elements name=B*_S10.1 item=DY value=-180e-6 &end
&alter_elements name=B*_S10.1 item=ETILT value=-100e-6 &end
&alter_elements name=B*_S10.2 item=DX value=-220e-6 &end
&alter_elements name=B*_S10.2 item=DY value=-280e-6 &end
&alter_elements name=B*_S10.2 item=ETILT value=-200e-6 &end
&alter_elements name=B*_S11.1 item=DX value=-320e-6 &end
&alter_elements name=B*_S11.1 item=DY value=-230e-6 &end
&alter_elements name=B*_S11.1 item=ETILT value=100e-6 &end
&alter_elements name=B*_S11.2 item=DX value=-310e-6 &end
&alter_elements name=B*_S11.2 item=DY value=-280e-6 &end
&alter_elements name=B*_S11.2 item=ETILT value=0e-6 &end
&alter_elements name=B*_S12.1 item=DX value=180e-6 &end
&alter_elements name=B*_S12.1 item=DY value=150e-6 &end
&alter_elements name=B*_S12.1 item=ETILT value=100e-6 &end
&alter_elements name=B*_S12.1 item=DX value=30e-6 &end
&alter_elements	name=B*_S12.1 item=DY value=60e-6 &end
&alter_elements name=B*_S12.1 item=ETILT value=100e-6 &end

!*** switch on below to MIS-align QUADRUPOLES

!** pessimistic setting from survey measurements
&alter_elements name=Q*_S1.* item=DX value=300e-6 &end
&alter_elements name=Q*_S1.* item=DY value=50e-6 &end
&alter_elements name=Q*_S2.* item=DX value=350e-6 &end
&alter_elements name=Q*_S2.* item=DY value=200e-6 &end
&alter_elements name=Q*_S3.* item=DX value=500e-6 &end
&alter_elements name=Q*_S3.* item=DY value=150e-6 &end
&alter_elements name=Q*_S4.* item=DX value=400e-6 &end
&alter_elements name=Q*_S4.* item=DY value=-150e-6 &end
&alter_elements name=Q*_S5.* item=DX value=0e-6 &end
&alter_elements name=Q*_S5.* item=DY value=-200e-6 &end
&alter_elements name=Q*_S6.* item=DX value=-200e-6 &end
&alter_elements name=Q*_S6.* item=DY value=-50e-6 &end
&alter_elements name=Q*_S7.* item=DX value=-550e-6 &end
&alter_elements name=Q*_S7.* item=DY value=200e-6 &end
&alter_elements name=Q*_S8.* item=DX value=300e-6 &end
&alter_elements name=Q*_S8.* item=DY value=150e-6 &end
&alter_elements name=Q*_S9.* item=DX value=550e-6 &end
&alter_elements name=Q*_S9.* item=DY value=100e-6 &end
&alter_elements name=Q*_S10.* item=DX value=200e-6 &end
&alter_elements name=Q*_S10.* item=DY value=-300e-6 &end
&alter_elements name=Q*_S11.* item=DX value=-450e-6 &end
&alter_elements name=Q*_S11.* item=DY value=-250e-6 &end
&alter_elements name=Q*_S12.* item=DX value=-200e-6 &end
&alter_elements name=Q*_S12.* item=DY 	value=50e-6 &end

!*** switch on below to MIS-align the SEXTUPOLES (same as quadrupoles)

&alter_elements name=S*_S1.* item=DX value=300e-6 &end
&alter_elements name=S*_S1.* item=DY value=100e-6 &end
&alter_elements name=S*_S2.* item=DX value=400e-6 &end
&alter_elements name=S*_S2.* item=DY value=200e-6 &end
&alter_elements name=S*_S3.* item=DX value=500e-6 &end
&alter_elements name=S*_S3.* item=DY value=200e-6 &end
&alter_elements name=S*_S4.* item=DX value=400e-6 &end
&alter_elements name=S*_S4.* item=DY value=-150e-6 &end
&alter_elements name=S*_S5.* item=DX value=0e-6 &end
&alter_elements name=S*_S5.* item=DY value=-250e-6 &end
&alter_elements name=S*_S6.* item=DX value=-50e-6 &end
&alter_elements name=S*_S6.* item=DY value=-250e-6 &end
&alter_elements name=S*_S7.* item=DX value=-400e-6 &end
&alter_elements name=S*_S7.* item=DY value=-50e-6 &end
&alter_elements name=S*_S8.* item=DX value=200e-6 &end
&alter_elements name=S*_S8.* item=DY value=300e-6 &end
&alter_elements name=S*_S9.* item=DX value=550e-6 &end
&alter_elements name=S*_S9.* item=DY value=100e-6 &end
&alter_elements name=S*_S10.* item=DX value=400e-6 &end
&alter_elements name=S*_S10.* item=DY value=-100e-6 &end
&alter_elements name=S*_S11.* item=DX value=-450e-6 &end
&alter_elements name=S*_S11.* item=DY value=-300e-6 &end
&alter_elements name=S*_S12.* item=DX value=-600e-6 &end
&alter_elements name=S*_S12.* item=DY value=100e-6 &end

!** tuning of the errors to match the experimental correctors' strengths

!&alter_elements name=Q*_S1.* item=DX value=50e-6 &end
!&alter_elements name=Q*_S1.* item=DY value=50e-6 &end
&alter_elements name=Q*_S2.* item=DX value=100e-6 &end
&alter_elements name=Q*_S2.* item=DY value=200e-6 &end
&alter_elements name=Q*_S3.* item=DX value=150e-6 &end
&alter_elements name=Q*_S3.* item=DY value=150e-6 &end
&alter_elements name=Q*_S4.* item=DX value=150e-6 &end
&alter_elements name=Q*_S4.* item=DY value=-150e-6 &end
!&alter_elements name=Q*_S5.* item=DX value=0e-6 &end
&alter_elements name=Q*_S5.* item=DY value=-200e-6 &end
!&alter_elements name=Q*_S6.* item=DX value=-50e-6 &end
&alter_elements name=Q*_S6.* item=DY value=-50e-6 &end
&alter_elements name=Q*_S7.* item=DX value=-200e-6 &end
&alter_elements name=Q*_S7.* item=DY value=200e-6 &end
!&alter_elements name=Q*_S8.* item=DX value=50e-6 &end
&alter_elements name=Q*_S8.* item=DY value=150e-6 &end
&alter_elements name=Q*_S9.* item=DX value=200e-6 &end
&alter_elements name=Q*_S9.* item=DY value=100e-6 &end
!&alter_elements name=Q*_S10.* item=DX value=50e-6 &end
&alter_elements name=Q*_S10.* item=DY value=-300e-6 &end
&alter_elements name=Q*_S11.* item=DX value=-200e-6 &end
&alter_elements name=Q*_S11.* item=DY value=-250e-6 &end
!&alter_elements name=Q*_S12.* item=DX value=-50e-6 &end
!&alter_elements name=Q*_S12.* item=DY 	value=50e-6 &end


!----------------------------------------------
! Error control: below is for machine ALIGNED
!----------------------------------------------

!*** switch on below to ALIGN the DIPOLES

!&alter_elements name=B_S* item=DX value=0e-6 &end
!&alter_elements name=B_S* item=DY value=0e-6 &end
!&alter_elements name=B_S* item=ETILT value=0e-6 &end

!*** switch on below to ALIGN the QUADRUPOLES

!&alter_elements name=Q*_S* item=DX value=0e-6 &end
!&alter_elements name=Q*_S* item=DY value=0e-6 &end
!&alter_elements name=Q*_S* item=TILT value=0e-6 &end

!&alter_elements name=QS_S* item=DX value=0e-6 &end
!&alter_elements name=QS_S* item=DY value=0e-6 &end
!&alter_elements name=QS_S* item=TILT value=0e-6 &end

!*** switch on below to ALIGN the SEXTUPOLES

!&alter_elements name=S*_S* exclude=SC* item=DX value=0e-6 &end
!&alter_elements name=S*_S* exclude=SC* item=DY value=0e-6 &end
!&alter_elements name=S*_S* exclude=SC* item=TILT value=0e-6 &end


!-------------------------------------------------
! Error control: Add alignment and strength error
!-------------------------------------------------

&error_control
	clear_error_settings = 1,
	error_log = %s.erl
&end

&error_element element_type=*QUAD*, item = TILT, type="gaussian", amplitude = 250e-6   &end
&error_element element_type=*SEXT*, item = TILT, type="gaussian", amplitude = 250e-6   &end

&error_element element_type=*MONI*, item = DX, type="gaussian",  amplitude = 150e-6   &end
&error_element element_type=*MONI*, item = DY, type="gaussian",  amplitude = 150e-6   &end
&error_element element_type=*MONI*, item = TILT, type="gaussian",amplitude = 300e-6   &end

&error_element element_type=*BEND*,item = FSE, type="gaussian", amplitude = 1e-3   &end
&error_element element_type=*QUAD*,item = FSE, type="gaussian", amplitude = 1e-3   &end
&error_element element_type=*SEXT*,item = FSE, type="gaussian", amplitude = 1e-3   &end


!----------------------------------------------
! Error control: below is for machine ALIGNED
!----------------------------------------------

&error_control
	summarize_error_settings = 1,
&end


!---------------------------------------------------------------------
! Correct closed orbit with BPMs noise and correctors' limit at 2 GeV
!---------------------------------------------------------------------

&correct
    mode = orbit
    method = global
    trajectory_output = %s.orb
    corrector_output = %s.cor
    statistics = %s.scor
    bpm_noise[0] = 5e-7
    bpm_noise[1] = 5e-7
    bpm_noise_distribution[0] = "gaussian" 
    bpm_noise_distribution[1] = "gaussian"
    corrector_limit[0] = 2e-3
    corrector_limit[1] = 2e-3
    correction_accuracy[0] = 1e-7
    correction_accuracy[1] = 1e-7
    n_xy_cycles = 10
    n_iterations = 10
    closed_orbit_accuracy = 1e-8
    closed_orbit_iterations = 500
    closed_orbit_iteration_fraction = 0.25
    use_perturbed_matrix = 1
    use_response_from_computed_orbits = 1
    track_before_and_after = 0
    verbose = 2
&end

!--------------------------------------------------------------------
! Define magnets' families: QF, QD, Q1, Q2, Q3, SF, SD, S1, QS1, QS2
!--------------------------------------------------------------------

&link_control
    clear_links = 1;
    summarize_links = 0;
    verbosity = 0;
&end

&link_elements target="QF_S*" exclude=QF_S1.1 item=K1 source=QF_S1.1 equation="K1" &end
&link_elements target="QD_S*" exclude=QD_S1.1 item=K1 source=QD_S1.1 equation="K1" &end
&link_elements target="Q1_S*" exclude=Q1_S1.1 item=K1 source=Q1_S1.1 equation="K1" &end
&link_elements target=Q2_S* exclude=Q2_S1.1 item=K1 source=Q2_S1.1 equation="K1" &end
&link_elements target=Q3_S* exclude=Q3_S1.1 item=K1 source=Q3_S1.1 equation="K1" &end

&link_elements target=QS_S3.1  item=K1 source=QS_S1.1 equation="K1" &end
&link_elements target=QS_S5.1  item=K1 source=QS_S1.1 equation="K1" &end
&link_elements target=QS_S7.1  item=K1 source=QS_S1.1 equation="K1" &end
&link_elements target=QS_S9.1  item=K1 source=QS_S1.1 equation="K1" &end
&link_elements target=QS_S11.1 item=K1 source=QS_S1.1 equation="K1" &end

&link_elements target=QS_S4.1  item=K1 source=QS_S2.1 equation="K1" &end
&link_elements target=QS_S6.1  item=K1 source=QS_S2.1 equation="K1" &end
&link_elements target=QS_S8.1  item=K1 source=QS_S2.1 equation="K1" &end
&link_elements target=QS_S10.1 item=K1 source=QS_S2.1 equation="K1" &end
&link_elements target=QS_S12.1 item=K1 source=QS_S2.1 equation="K1" &end

&link_elements target="SF_S*" exclude=SF_S1.1 item=K2 source=SF_S1.1 equation="K2" &end
&link_elements target="SD_S*" exclude=SD_S1.1 item=K2 source=SD_S1.1 equation="K2" &end
&link_elements target="S1_S*" exclude=S1_S1.1 item=K2 source=S1_S1.1 equation="K2" &end


!----------------------
! Correct tunes
!---------------------

&correct_tunes
    quadrupoles = "Q1_S1.1 Q2_S1.1 Q3_S1.1"
    tune_x = 14.300
    tune_y = 8.200
    n_iterations = 100
    correction_fraction = 0.1
    max_correction_fraction = 0.9
    step_up_interval = 0.1	
    tolerance = 1e-4
    strength_log = "%s.qst"
    use_perturbed_matrix = 0
    change_defined_values = 1
&end


!------------------------------
! Correct linear chromaticity
!------------------------------

&chromaticity
    sextupoles = "SF_S1.1 SD_S1.1"
    dnux_dp = 1
    dnuy_dp = 1
    correction_fraction = 0.9
    n_iterations = 5
    strength_log = %s.ssl
    change_defined_values = 1
    strength_limit = 40
    use_perturbed_matrix = 0
&end


!-------------------------------------------------------------
! Compute closed orbit, just to be sure the optics is correct
!-------------------------------------------------------------

&closed_orbit
	output = %s.clo
	closed_orbit_accuracy = 1e-8
        closed_orbit_iterations = 500
	iteration_fraction = 0.25
&end


!----------------------------------------------------------------------------------
! Computes equilibrium properties in the presence of coupling and orbit errors
!----------------------------------------------------------------------------------

&moments_output
        filename = %s.errors.mom
        matched = 1
        equilibrium = 1
        radiation = 1
	output_at_each_step = 1
	final_values_only = 1
	n_slices = 30
	verbosity = 2
&end

&twiss_output
	filename="%s.twi"
	concat_order = "(order_transport)",
	higher_order_chromaticity = 1
	quick_higher_order_chromaticity = 1
	leading_order_driving_terms_only = 1
        matched = 1,
	radiation_integrals = 1
        output_at_each_step = 1,
	statistics = 1
&end

&coupled_twiss_output
	filename="%s.ctwi"
	concat_order = "(order_transport)",
        output_at_each_step = 1,
&end


&bunched_beam &end

&track 
center_on_orbit=0
center_momentum_also = 1;
&end


&save_lattice filename = %s.new 
	output_seq = 1
&end

&stop





