! Marks for optimizing, watchs for phase-space plots
M00: MARK,FITPOINT=1
M01: MARK,FITPOINT=1
M02: MARK,FITPOINT=1
M03: MARK,FITPOINT=1
M04: MARK,FITPOINT=1
M05: MARK,FITPOINT=1
M06: MARK,FITPOINT=1
M07: MARK,FITPOINT=1
M08: MARK,FITPOINT=1
M09: MARK,FITPOINT=1
M10: MARK,FITPOINT=1
M11: MARK,FITPOINT=1
M12: MARK,FITPOINT=1
M13: MARK,FITPOINT=1
M14: MARK,FITPOINT=1
M15: MARK,FITPOINT=1
M16: MARK,FITPOINT=1
M17: MARK,FITPOINT=1
M18: MARK,FITPOINT=1
M19: MARK,FITPOINT=1

M20: MARK,FITPOINT=1
M50: MARK,FITPOINT=1

A00: MARK,FITPOINT=1
A01: MARK,FITPOINT=1
A02: MARK,FITPOINT=1
A03: MARK,FITPOINT=1
A04: MARK,FITPOINT=1
A05: MARK,FITPOINT=1
A06: MARK,FITPOINT=1
A07: MARK,FITPOINT=1
A08: MARK,FITPOINT=1
A09: MARK,FITPOINT=1
A10: MARK,FITPOINT=1
A11: MARK,FITPOINT=1
A12: MARK,FITPOINT=1
A13: MARK,FITPOINT=1
A14: MARK,FITPOINT=1
A15: MARK,FITPOINT=1
A16: MARK,FITPOINT=1
A17: MARK,FITPOINT=1
A18: MARK,FITPOINT=1
A19: MARK,FITPOINT=1
A20: MARK,FITPOINT=1


R00: MARK,FITPOINT=1
R01: MARK,FITPOINT=1
R02: MARK,FITPOINT=1
R03: MARK,FITPOINT=1
R04: MARK,FITPOINT=1
R05: MARK,FITPOINT=1
R06: MARK,FITPOINT=1
R07: MARK,FITPOINT=1
R08: MARK,FITPOINT=1
R09: MARK,FITPOINT=1
R10: MARK,FITPOINT=1
R11: MARK,FITPOINT=1
R12: MARK,FITPOINT=1
R13: MARK,FITPOINT=1
R14: MARK,FITPOINT=1
R15: MARK,FITPOINT=1
R16: MARK,FITPOINT=1
R17: MARK,FITPOINT=1
R18: MARK,FITPOINT=1
R19: MARK,FITPOINT=1

R20: MARK,FITPOINT=1

K00: MARK,FITPOINT=1
K01: MARK,FITPOINT=1
K02: MARK,FITPOINT=1
K03: MARK,FITPOINT=1
K04: MARK,FITPOINT=1
K05: MARK,FITPOINT=1
K06: MARK,FITPOINT=1
K07: MARK,FITPOINT=1
K08: MARK,FITPOINT=1
K09: MARK,FITPOINT=1
K10: MARK,FITPOINT=1
K11: MARK,FITPOINT=1
K12: MARK,FITPOINT=1
K13: MARK,FITPOINT=1
K14: MARK,FITPOINT=1
K15: MARK,FITPOINT=1
K16: MARK,FITPOINT=1
K17: MARK,FITPOINT=1
K18: MARK,FITPOINT=1
K19: MARK,FITPOINT=1

K20: MARK,FITPOINT=1







W00: WATCH,FILENAME="%s.w00",MODE="COORD",DISABLE=1
W01: WATCH,FILENAME="%s.w01",MODE="COORD",DISABLE=1
W02: WATCH,FILENAME="%s.w02",MODE="COORD",DISABLE=1
W03: WATCH,FILENAME="%s.w03",MODE="COORD",DISABLE=1
W04: WATCH,FILENAME="%s.w04",MODE="COORD",DISABLE=1
W05: WATCH,FILENAME="%s.w05",MODE="COORD",DISABLE=1
W06: WATCH,FILENAME="%s.w06",MODE="COORD",DISABLE=1
W07: WATCH,FILENAME="%s.w07",MODE="COORD",DISABLE=1
W08: WATCH,FILENAME="%s.w08",MODE="COORD",DISABLE=1
W09: WATCH,FILENAME="%s.w09",MODE="COORD",DISABLE=1
W10: WATCH,FILENAME="%s.w10",MODE="COORD",DISABLE=1
W11: WATCH,FILENAME="%s.w11",MODE="COORD",DISABLE=1
W12: WATCH,FILENAME="%s.w12",MODE="COORD",DISABLE=1
W13: WATCH,FILENAME="%s.w13",MODE="COORD",DISABLE=1
W14: WATCH,FILENAME="%s.w14",MODE="COORD",DISABLE=1
W15: WATCH,FILENAME="%s.w15",MODE="COORD",DISABLE=1
W16: WATCH,FILENAME="%s.w16",MODE="COORD",DISABLE=1
W17: WATCH,FILENAME="%s.w17",MODE="COORD",DISABLE=1
W18: WATCH,FILENAME="%s.w18",MODE="COORD",DISABLE=1
W19: WATCH,FILENAME="%s.w19",MODE="COORD",DISABLE=1

W20: WATCH,FILENAME="%s.w20",MODE="COORD",DISABLE=1
W50: WATCH,FILENAME="%s.w50",MODE="COORD",DISABLE=1


T00: WATCH,FILENAME="%s.t00",MODE="COORD",DISABLE=1
T01: WATCH,FILENAME="%s.t01",MODE="COORD",DISABLE=1
T02: WATCH,FILENAME="%s.t02",MODE="COORD",DISABLE=1
T03: WATCH,FILENAME="%s.t03",MODE="COORD",DISABLE=1
T04: WATCH,FILENAME="%s.t04",MODE="COORD",DISABLE=1
T05: WATCH,FILENAME="%s.t05",MODE="COORD",DISABLE=1
T06: WATCH,FILENAME="%s.t06",MODE="COORD",DISABLE=1
T07: WATCH,FILENAME="%s.t07",MODE="COORD",DISABLE=1
T08: WATCH,FILENAME="%s.t08",MODE="COORD",DISABLE=1
T09: WATCH,FILENAME="%s.t09",MODE="COORD",DISABLE=1
T10: WATCH,FILENAME="%s.t10",MODE="COORD",DISABLE=1
T11: WATCH,FILENAME="%s.t11",MODE="COORD",DISABLE=1
T12: WATCH,FILENAME="%s.t12",MODE="COORD",DISABLE=1
T13: WATCH,FILENAME="%s.t13",MODE="COORD",DISABLE=1
T14: WATCH,FILENAME="%s.t14",MODE="COORD",DISABLE=1
T15: WATCH,FILENAME="%s.t15",MODE="COORD",DISABLE=1
T16: WATCH,FILENAME="%s.t16",MODE="COORD",DISABLE=1
T17: WATCH,FILENAME="%s.t17",MODE="COORD",DISABLE=1
T18: WATCH,FILENAME="%s.t18",MODE="COORD",DISABLE=1
T19: WATCH,FILENAME="%s.t19",MODE="COORD",DISABLE=1
T20: WATCH,FILENAME="%s.t20",MODE="COORD",DISABLE=1

C00: WATCH,FILENAME="%s.c00",MODE="COORD",DISABLE=1
C01: WATCH,FILENAME="%s.c01",MODE="COORD",DISABLE=1
C02: WATCH,FILENAME="%s.c02",MODE="COORD",DISABLE=1
C03: WATCH,FILENAME="%s.c03",MODE="COORD",DISABLE=1
C04: WATCH,FILENAME="%s.c04",MODE="COORD",DISABLE=1
C05: WATCH,FILENAME="%s.c05",MODE="COORD",DISABLE=1
C06: WATCH,FILENAME="%s.c06",MODE="COORD",DISABLE=1
C07: WATCH,FILENAME="%s.c07",MODE="COORD",DISABLE=1
C08: WATCH,FILENAME="%s.c08",MODE="COORD",DISABLE=1
C09: WATCH,FILENAME="%s.c09",MODE="COORD",DISABLE=1
C10: WATCH,FILENAME="%s.c10",MODE="COORD",DISABLE=1
C11: WATCH,FILENAME="%s.c11",MODE="COORD",DISABLE=1
C12: WATCH,FILENAME="%s.c12",MODE="COORD",DISABLE=1
C13: WATCH,FILENAME="%s.c13",MODE="COORD",DISABLE=1
C14: WATCH,FILENAME="%s.c14",MODE="COORD",DISABLE=1
C15: WATCH,FILENAME="%s.c15",MODE="COORD",DISABLE=1
C16: WATCH,FILENAME="%s.c16",MODE="COORD",DISABLE=1
C17: WATCH,FILENAME="%s.c17",MODE="COORD",DISABLE=1
C18: WATCH,FILENAME="%s.c18",MODE="COORD",DISABLE=1
C19: WATCH,FILENAME="%s.c19",MODE="COORD",DISABLE=1
C20: WATCH,FILENAME="%s.c20",MODE="COORD",DISABLE=1


H00: WATCH,FILENAME="%s.h00",MODE="COORD",DISABLE=1
H01: WATCH,FILENAME="%s.h01",MODE="COORD",DISABLE=1
H02: WATCH,FILENAME="%s.h02",MODE="COORD",DISABLE=1
H03: WATCH,FILENAME="%s.h03",MODE="COORD",DISABLE=1
H04: WATCH,FILENAME="%s.h04",MODE="COORD",DISABLE=1
H05: WATCH,FILENAME="%s.h05",MODE="COORD",DISABLE=1
H06: WATCH,FILENAME="%s.h06",MODE="COORD",DISABLE=1
H07: WATCH,FILENAME="%s.h07",MODE="COORD",DISABLE=1
H08: WATCH,FILENAME="%s.h08",MODE="COORD",DISABLE=1
H09: WATCH,FILENAME="%s.h09",MODE="COORD",DISABLE=1
H10: WATCH,FILENAME="%s.h10",MODE="COORD",DISABLE=1
H11: WATCH,FILENAME="%s.h11",MODE="COORD",DISABLE=1
H12: WATCH,FILENAME="%s.h12",MODE="COORD",DISABLE=1
H13: WATCH,FILENAME="%s.h13",MODE="COORD",DISABLE=1
H14: WATCH,FILENAME="%s.h14",MODE="COORD",DISABLE=1
H15: WATCH,FILENAME="%s.h15",MODE="COORD",DISABLE=1
H16: WATCH,FILENAME="%s.h16",MODE="COORD",DISABLE=1
H17: WATCH,FILENAME="%s.h17",MODE="COORD",DISABLE=1
H18: WATCH,FILENAME="%s.h18",MODE="COORD",DISABLE=1
H19: WATCH,FILENAME="%s.h19",MODE="COORD",DISABLE=1
H20: WATCH,FILENAME="%s.h20",MODE="COORD",DISABLE=1






!-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

% 45           sto PHASE 

! Definition of injector arc 14.90656940649559
INJECTORARCLENGTH: DRIF,L=10.58 ! Since simulation deals with longitudinal phase space only, real sections without change of momentum can be defines as drift section combined with a matrix element for R56
IMATRIX: EMATRIX,R11=1,R22=1,R33=1,R44=1,R55=1,R66=1 ! EMATRIX to implement R56. Initially, R56 is zero, which will be changed later.
M1: MARK,FITPOINT=1 ! MARK element as flag to use optimization algorithm
W1: WATCH,FILENAME="%s.w01",MODE="COORD",DISABLE=1 ! WATCH element to observe particle distribution
INJECTORARC: LINE=(M00,W00,INJECTORARCLENGTH,IMATRIX,M1,W1) ! LINE links elements to a beamline


! Definition of main LINAC

"CRYO_DRIFT_A": DRIF,L=0.1557
"DRIFT_BL_LINAC_A": DRIF,L=0.5348
CELL1: RFCA,L=0.2563,VOLT=2180000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=1,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
 BODY_FOCUS_MODEL="SRS",N_KICKS=520, STANDING_WAVE=1,
CELL2: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=2,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
 BODY_FOCUS_MODEL="SRS",N_KICKS=520, STANDING_WAVE=1,
CELL3: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=3,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
 BODY_FOCUS_MODEL="SRS",N_KICKS=520, STANDING_WAVE=1,
CELL4: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=4,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
 BODY_FOCUS_MODEL="SRS",N_KICKS=520, STANDING_WAVE=1,
CELL5: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=5,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
 BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,
CELL6: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=6,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
 BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,
CELL7: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=7,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
 BODY_FOCUS_MODEL="SRS",N_KICKS=520, STANDING_WAVE=1,
CELL8: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=8,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
 BODY_FOCUS_MODEL="SRS",N_KICKS=520, STANDING_WAVE=1,
CELL9: RFCA,L=0.2193,VOLT=2150000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=9,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
 BODY_FOCUS_MODEL="SRS",N_KICKS=520, STANDING_WAVE=1,

 
"FIRST_LINAC_A1": LINE=(CELL1,M01,W01,CELL2,M02,W02,CELL3,M03,W03,CELL4,M04,W04,CELL5,M05,W05,CELL6,M06,W06,CELL7,M07,W07,CELL8,M08,W08,CELL9,M09,W09)

"FIRST_LINAC_A2": LINE=(CELL1,A01,T01,CELL2,A02,T02,CELL3,A03,T03,CELL4,A04,T04,CELL5,A05,T05,CELL6,A06,T06,CELL7,A07,T07,CELL8,A08,T08,CELL9,A09,T09)

"FIRST_LINAC_A3": LINE=(CELL1,R01,C01,CELL2,R02,C02,CELL3,R03,C03,CELL4,R04,C04,CELL5,R05,C05,CELL6,R06,C06,CELL7,R07,C07,CELL8,R08,C08,CELL9,R09,C09)

"FIRST_LINAC_A4": LINE=(CELL1,K01,H01,CELL2,K02,H02,CELL3,K03,H03,CELL4,K04,H04,CELL5,K05,H05,CELL6,K06,H06,CELL7,K07,H07,CELL8,K08,H08,CELL9,K09,H09)

!!-----------------------------------------------------------------------------------------------------------------------------------------------------------------!!

CEL01: RFCA,L=0.2193,VOLT=2150000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=10,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,
CEL02: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=11,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,
CEL03: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=12,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,
CEL04: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=13,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,
CEL05: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=14,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,
CEL06: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=15,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,
CEL07: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=16,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,
CEL08: RFCA,L=0.1154,VOLT=1820000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=17,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,
CEL09: RFCA,L=0.2563,VOLT=2180000,PHASE=90,FREQ=1300000000,PHASE_REFERENCE=18,CHANGE_P0=1,END1_FOCUS=1,END2_FOCUS=1,&
BODY_FOCUS_MODEL="SRS",N_KICKS=520,STANDING_WAVE=1,




"SECOND_LINAC_B1": LINE=(CEL01,M10,W10,CEL02,M11,W11,CEL03,M12,W12,CEL04,M13,W13,CEL05,M14,W14,CEL06,M15,W15,CEL07,M16,W16,CEL08,M17,W17,CEL09,M18,W18)

"SECOND_LINAC_B2": LINE=(CEL01,A10,T10,CEL02,A11,T11,CEL03,A12,T12,CEL04,A13,T13,CEL05,A14,T14,CEL06,A15,T15,CEL07,A16,T16,CEL08,A17,T17,CEL09,A18,T18)

"SECOND_LINAC_B3": LINE=(CEL01,R10,C10,CEL02,R11,C11,CEL03,R12,C12,CEL04,R13,C13,CEL05,R14,C14,CEL06,R15,C15,CEL07,R16,C16,CEL08,R17,C17,CEL09,R18,C18)

"SECOND_LINAC_B4": LINE=(CEL01,K10,H10,CEL02,K11,H11,CEL03,K12,H12,CEL04,K13,H13,CEL05,K14,H14,CEL06,K15,H15,CEL07,K16,H16,CEL08,K17,H17,CEL09,K18,H18)
!!---------------------------------------------------------------------------------------------------------------------------------------------------------------------------!!


!______________________________________
MAINLINACPASS1: LINE=(DRIFT_BL_LINAC_A,M00,W00,FIRST_LINAC_A1,M19,W19,CRYO_DRIFT_A,CRYO_DRIFT_A,SECOND_LINAC_B1,M20,W20,DRIFT_BL_LINAC_A) 
MAINLINACPASS2: LINE=(DRIFT_BL_LINAC_A,A00,T00,FIRST_LINAC_A2,A19,T19,CRYO_DRIFT_A,CRYO_DRIFT_A,SECOND_LINAC_B2,A20,T20,DRIFT_BL_LINAC_A)
MAINLINACPASS3: LINE=(DRIFT_BL_LINAC_A,R00,C00,FIRST_LINAC_A3,R19,C19,CRYO_DRIFT_A,CRYO_DRIFT_A,SECOND_LINAC_B3,R20,C20,DRIFT_BL_LINAC_A)
MAINLINACPASS4: LINE=(DRIFT_BL_LINAC_A,K00,H00,FIRST_LINAC_A4,K19,H19,CRYO_DRIFT_A,CRYO_DRIFT_A,SECOND_LINAC_B4,K20,H20,DRIFT_BL_LINAC_A)





! Definition of first recirculation beamline
FRECIRCULATIONSLENGTH: DRIF,L=37.14561319459999 ! length of entire first recirculation beamline if FPLAS has minimum value (=zero)
FPLAS: DRIF,L=0  !! ??? 
FMATRIX: EMATRIX,R11=1,R22=1,R33=1,R44=1,R55=1,R66=1
FRECIRCULATION: LINE=(FRECIRCULATIONSLENGTH,FPLAS,FMATRIX)

! Definition of second recirculation beamline
SRECIRCULATIONSLENGTH: DRIF,L=48.36492001420000 ! length of entire second recirculation beamline if SPLAS has minimum value (=zero), path length adjustment system
SPLAS: DRIF,L=0.005  !! ???
SMATRIX: EMATRIX,R11=1,R22=1,R33=1,R44=1,R55=1,R66=1
SRECIRCULATION: LINE=(SRECIRCULATIONSLENGTH,SPLAS,SMATRIX)


! Definition of third recirculation beamline
TRECIRCULATIONSLENGTH: DRIF,L=33.70799521180000 ! length of entire second recirculation beamline if SPLAS has minimum value (=zero)
TPLAS: DRIF,L=0  !!  ??
TMATRIX: EMATRIX,R11=1,R22=1,R33=1,R44=1,R55=1,R66=1
TRECIRCULATION: LINE=(TRECIRCULATIONSLENGTH,TPLAS,TMATRIX)

! Definition of low-energy beam-dump branch
DISTANCETOCUP: DRIF,L=1.229 !! missing 
RMATRIX: EMATRIX,R11=1,R22=1,R33=1,R44=1,R55=1,R56=0.05,R66=1  
RBRANCH: LINE=(DISTANCETOCUP,RMATRIX,M50,W50)




! Definition of start-to-temporary-end beamlines
STARTTOENDOFLINACPASS1:    LINE=(INJECTORARC,MAINLINACPASS1)
STARTTOENDOFLINACPASS2:    LINE=(INJECTORARC,MAINLINACPASS1,FRECIRCULATION,MAINLINACPASS2)
STARTTOENDOFLINACPASS3:    LINE=(INJECTORARC,MAINLINACPASS1,FRECIRCULATION,MAINLINACPASS2,SRECIRCULATION,MAINLINACPASS3)
STARTTOENDOFLINACPASS4:    LINE=(INJECTORARC,MAINLINACPASS1,FRECIRCULATION,MAINLINACPASS2,SRECIRCULATION,MAINLINACPASS3,TRECIRCULATION,MAINLINACPASS4)
STARTTOENDOFLOWENERGYDUMP: LINE=(INJECTORARC,MAINLINACPASS1,FRECIRCULATION,MAINLINACPASS2,SRECIRCULATION,MAINLINACPASS3,TRECIRCULATION,MAINLINACPASS4,RBRANCH)
























