TITLE, "AD_ACCEL (January 22, 2021)" ! superconducting linac ! *** OPTICS=AD_ACCEL-22JAN21 *** OPTION, -ECHO, INFO, WARN, VERIFY, DOUBLE ASSIGN, ECHO="LCLS2sc.echo" ASSIGN, PRINT="LCLS2sc.print" ! ============================================================================== ! Modification History ! ------------------------------------------------------------------------------ ! 07-AUG-2019, M. Woodley ! * remove "h" from names of split elements ! * create "_full" sub-LINEs for split elements ! ------------------------------------------------------------------------------ ! 28-MAY-2019, M. Woodley ! * rematch through SXR undulator (self-seeding chicane moved from cell 33 ! to cell 35) ! ------------------------------------------------------------------------------ ! 19-JUL-2017, M. Woodley ! * structural changes in deck to accomodate MAD-to-BMAD ! ------------------------------------------------------------------------------ ! 28-NOV-2016, M. Woodley ! * merge LCLS-II' version 28NOV16 with LCLS2sc version 04NOV16 ! ------------------------------------------------------------------------------ ! **************************** NEW LCLS2sc BASELINE **************************** ! ------------------------------------------------------------------------------ ! 26-FEB-2016, M. Woodley / Y. Nosochkov ! * replace the HXR undulator with HGVPU undulator ! 01-FEB-2016, M. Woodley ! * new 100 pC input beams from J. Qiang/C. Mitchell ! 01-NOV-2015, M. Woodley ! * new 100 pC input beam from F. Zhou (Twiss from P. Emma) ! ------------------------------------------------------------------------------ ! 01-OCT-2015, M. Woodley / Y. Nosochkov ! * update boundary Z-locations (Z0end, Z2end) ! * see list of changes in .xsif files and in file MADdeckChanges.pdf ! * add BKR (rolled kicker) to the list of defined element name prefixes ! * update initial Twiss in LTU dogleg with stronger R56 chicanes ! * load ALINE.xsif before LTU.xsif ! ------------------------------------------------------------------------------ ! 20-MAR-2015, M. Woodley ! * list of changes ... ! 12-MAR-2015, Y. Nosochkov ! * update quad/BPM/corrector positions in the spreader (per T. O'Heron) ! * add dogleg connection from CuRF to SXR ! * add kicker/septum in BSY to connect with the existing A-line ! * update existing LCLS-I devices in the HXR (per updated LCLS-I lattice) ! * change quad type "1.97Q10" to "2Q10" ! ------------------------------------------------------------------------------ ! 12-DEC-2014, M. Woodley ! * change name prefix for cryomodule BPMs from "BPMCM" to "CMB" ! * assign BPM TYPE attributes per PRD LCLSII-2.4-PR-0136 ! * change deferral level for some diagnostic devices per T. Taubenheimer ! * change some RFBs (defer>0) to BPMs (defer=0) ! 09-DEC-2014, Y. Nosochkov ! * add safety dump lines based on LCLS1 design and PRD LCLSII-3.5-PR-0111 ! * update types of various magnets ! * add radiation physics collimators and ACMs ! * move D10 dump inside the muon wall ! ------------------------------------------------------------------------------ ! 28-OCT-2014, M. Woodley ! * new 1.3 GHz cryomodule layout from FNAL ! * move GUN-L3 upstream 30 m to align 3.9 GHz CMs with NLTR tunnel (tweak ! matching section between LH and COL0 to put gun at Z= -10.0 m exactly) ! * lengthen EXT FODO cells by 12 m (57 m to 69 m) ! * rematch EXT (layout and optics) ! ------------------------------------------------------------------------------ ! 15-OCT-2014, M. Woodley ! * shortened inter-linac warm sections ... gun moved 30 m d/s (to Z=20m ... ! there is now 40 m from present location of CID gun to location of LCLS-II ! gun) ! * various cost-cutting changes ... see individual xsif-files ! ------------------------------------------------------------------------------ ! 07-AUG-2014, M. Woodley ! * add emittance measurement in L0-to-laser-heater matching section ! * laser heater chicane lengthened to reduce R56 to 3.5 mm ! * collimation systems (COL0, COL1, and COL2) now consist of four 45 degree ! FODO cells with 3 pairs of collimators separated by 45 degrees (22 m betas ! at collimators); FODO cell length is 12 m ! * added a wire scanner at the end of COL0 for "tomographic" emittance ! measurement ! * L1 phase advance per cell lowered to 45 degrees ! * DIAG1 beamline (post-BC1 off-axis diagnostics line) removed ! * in-line emittance measurement systems incorporated into COL1 and COL2 ! * TCAV(Y), vertical kicker, and lambertson septum added d/s of BC1 ! * change bending direction in BC2 chicane ... toward the aisle ! * TCAV(Y) added d/s of BC2 ! * EXT FODO cell length doubled, phase advance per cell lowered to 60 degrees ! * 1.259Q12 quadrupoles replaced by QWs or QEs ! * BC3 removed ! * diagnostics complement per "Electron Beam Diagnostics Systems" PRD ! (LCLSII-2.7-PR-0170) ! * TYPE attribute of "deprecated" devices is now "decorated" ... see below ! 31-JUL-2014, Y. Nosochkov ! * implement magnetic kicker with two 2-hole septa in the spreader ! * remove QBP37 and adjust positions of QBP31, QBP32, QBP35, QBP36 ! * remove unnecessary diagnostics (per J. Frisch) ! * move TDUNDb 2.8 m d/s, QUM1b 2.0 m d/s, QDL11-QDL19 2.5 m d/s ! (per J. Stieber) ! * move markers ENDSXR, BEGDMPS and ENDHXR, BEGDMPH to include ! RFBSX51 and RFBHX51 into the SXR and HXR areas (per D. Hanquist) ! ------------------------------------------------------------------------------ ! 02-MAY-2014, M. Woodley ! * update 1.3 GHz cryomodule layout (including end caps) per H. Alvarez ! * update baseline compression setup per P. Emma ! * remove DIAG1 beamline ... prepare COL1 for inline emittance diagnostics ! * add "CNT" to list of defined element name prefixes (MARKER element) ! * add "HOMCM" to list of defined element name prefixes (MARKER element) ! ------------------------------------------------------------------------------ ! 31-MAR-2014, M. Woodley ! * add list of beamline area names (per document LCLSII-2.1-PR-0134) ! * add list of element name prefixes (per document LCLSII-1.1-TS-0159) ! * add beamline area boundary MARKer points ! 26-MAR-2014, Y. Nosochkov ! * put phase shifter and RFBPM positions back to 03/14 version ! * remove PCTDKIK1,2,3,4 from HXR LTU ! 25-MAR-2014, Y. Nosochkov ! * add insertable beam stoppers STSP6ha, STSP6hb, STSP6hc in HXR spreader ! * remove existing BYKIK, TDKIK and SPOILER from HXR LTU ! * add missing ST60, ST61 stoppers in the BSY ! * add marker D10Js for location of D10 dump face in SXR line ! * remove BYKIKb, SPOILERb, TDKIKb, SPOILD2b from SXR ! * change names: D2b -> STBP33a, ST60b -> STBP33b, ST61b -> STBP33c ! 21-MAR-2014, Y. Nosochkov ! * update positions of phase shifters and RFBPMs in undulator cells ! * add Y-corrector to each undulator ! * update phase shifter parameters (per H-D. Nuhn) ! 14-MAR-2014, Y. Nosochkov ! * add/update names for area boundary markers ! 07-MAR-2014, Y. Nosochkov ! * increase main dump length to 1.5 m (to be confirmed) ! * remove transverse deflecting cavities from SXR dumpline ! 06-MAR-2014, Y. Nosochkov ! * add a soft bend upstream of the dump bends ! * roll the dumpline starting from the soft bend by 10 deg ! to reduce HXR to SXR x-separation at the dumps to ~1.88 m and ! adjust the vertical position at the dumps ! ------------------------------------------------------------------------------ ! 01-MAR-2014, M. Woodley ! * move cathode 10 m downstream ... now at Z= -10 m ! * updated cryomodule layout ! - 11 lambda CM-to-CM spacing ! - add special short end cap at upstream end of L0 ! > SOL02 -> CAV011 center-to-center = 1.606 m ! - include L0/L1/L2 feed boxes, L3 vacuum break box, and L3 end box ! > use XFEL feed and end box lengths (~3.5 m) ! > use XFEL "string connection box" length (23 lambda) for L3 break box ! * add DIAG0 diagnostic line and X/Y collimation section after laser heater ! * add BC3 chicane after dogleg to bypass line ! * complete XCOR/YCOR/BPM additions in injector and linac areas ! 28-FEB-2014, Y. Nosochkov ! * update undulators for reduced cell length of 4.4 m, rematch ! 26-FEB-2014, Y. Nosochkov ! * update magnet types in the spreader, rematch ! 14-FEB-2014, Y. Nosochkov ! * add a dumpline from the spreader to D10 dump including optics ! for energy diagnostic ! 17-JAN-2014, Y. Nosochkov ! * modify HXR spreader from 1-step to 2-step dogleg for tunable R56 ! and better magnet separation ! 18-DEC-2013, Y. Nosochkov ! * adjust magnet positions in the spreader for less magnet interference ! 18-DEC-2013, M. Woodley ! * name change: CE11B -> C1XE, CE21B -> C2XE ! 16-DEC-2013, Y. Nosochkov ! * 3-way spreader design with low R56 ! 03-DEC-2013, Y. Nosochkov ! * make HXR BSY compatible with the existing divergent and biconcave chambers ! * modify the spreader to reduce R56 and match to the updated BSY ! 21-NOV-2013, Y. Nosochkov ! * replace the 2-way spreader (TLINE) with a 3-way spreader in BSY ! ------------------------------------------------------------------------------ ! 04-NOV-2013, M. Woodley ! * assign X or Y correctors to cryomodules ! * redefine linac axis in LI00-LI10 ... modify bypass dogleg geometry ! * update quadrupole type 1.26Q12 in HXR ! * laser heater undulator parameters per M. Venturini ! * latest compression setup per P. Emma ! 26-OCT-2013, Y. Nosochkov ! * update quadrupole type 1.26Q12 in SXR ! * update SXR and HXR undulator design, rematch optics ! * update LTU match ! 21-OCT-2013, M. Woodley ! * LCLS2sc v1.1 ! * input Twiss from C. Papadopoulos (Parameters_GUN2013_10_08v3.docx) ... ! use "avg. beta" and "avg. alpha" parameters ! * everything downstream of QBP13 from Yuri's LCLS2sc_2013_10_16 files ! 15-OCT-2013, M. Woodley ! * LCLS2sc v1.0 ! * input Twiss from C. Papadopoulos (Parameters_GUN2013_10_08v3.docx) ! 07-OCT-2013, M. Woodley ! * LCLS2sc v0.1 ! * initial beam parameters from C. Papadopoulos ! * change 4-quad match to 6-quad match between L0 and laser heater ! * increase laser heater chicane dispersion to 7.5 cm ... matching requires ! inner/outer bend separation to increase ! * increase laser heater chicane inner bend separation by 1.0 m and add an ! energy collimator ! 06-OCT-2013, M. Woodley ! * initial bare-bones lattice ... LCLS2sc v0 ! 30-SEP-2013, M. Woodley ! * from XFEL and NGLS designs ! ------------------------------------------------------------------------------ ! ============================================================================== ! Deferred devices ! ------------------------------------------------------------------------------ ! see: https://slacspace.slac.stanford.edu/sites/lcls/lcls-2/ap/InjSim/ ! 150129%20Deferment%20Levels.xlsx ! ------------------------------------------------------------------------------ ! Device TYPE attributes have been prefixed by a 2-character deferment ! indicator. If the first character of a device's TYPE attribute is not "@" (or ! if a device has no defined TYPE attribute), the device is baseline. If the ! first character of a device's TYPE attribute is "@", the device is deferred. ! The level of deferral is indicated by the second character of the TYPE ! attribute: ! ! TYPE="@0..." : level 0 (required for CD4-Threshold with >100 pC/bunch and ! 50 kHz operation) ! TYPE="@1..." : level 1 (required to approach CD4-Objective, but limited to ! ~100 pC/bunch) ! TYPE="@2..." : level 2 (required to meet science objectives across parameter ! range) ! TYPE="@3..." : level 3 (component to improve tuning time) ! TYPE="@4..." : level 4 (space for future components that may be needed) ! TYPE="@5..." : level 5 (probably not needed ... leave space in beamline for ! future installation) ! TYPE="@9..." : level 9 (previously baseline (costed) ... removed but might ! return) ! ! The remaining characters of TYPE define the device's engineering type. ! ------------------------------------------------------------------------------ ! ============================================================================== ! Beamline area names (see LCLSII-2.1-PR-0134) ! see: https://docs.slac.stanford.edu/sites/pub/Publications/ ! Beamline Boundaries.pdf ! ------------------------------------------------------------------------------ ! SC linac common areas ! ------------------------------------------------------------------------------ ! GUNB : cathode to L0 ! L0B : L0 (end cap, CM01, end cap, mechanical stay-clear) ! HTR : laser heater (emittance measurement, chicane, extraction to DIAG0) ! COL0 : collimation 0 ! L1B : L1 (differential pumping, mechanical stay-clear, end cap, CM02-03, ! HCM01-02, end cap, mechanical stay-clear, differential pumping) ! BC1B : BC1 chicane ! COL1 : collimation 1 (includes in-line emittance measurement) ! L2B : L2 (differential pumping, mechanical stay-clear, end cap, CM04-15, ! end cap, mechanical stay-clear, differential pumping) ! BC2B : BC2 chicane ! EMIT2 : match BC2 to L3 (includes quad-scan emittance measurement station) ! L3B : L3 (differential pumping, mechanical stay-clear, end cap, CM16-25, ! vacuum break, CM26-23, end cap, mechanical stay-clear, differential ! pumping) ! EXT : L3B-to-dogleg matching ! DOG : dogleg to PEP-II e- bypass line ! BYP : bypass line (NIT) ! ------------------------------------------------------------------------------ ! SC linac to SXR areas ! ------------------------------------------------------------------------------ ! SPS : SXR spreader kickers to start of BSY ! SLTS : start of BSY to Cu/SC linac merge ! BSYS : Cu/SC merge to end of BSY ! LTUS : SXR LTU (from d/s end of muon wall) ! UNDS : SXR extension + SXR undulator ! DMPS_1 : SXR post-undulator line ! DMPS_2 : SXR dump line ! SFTS_1 : BYDSS u/s face to BXPM1B u/s face ! SFTS_2 : BXPM1B u/s face to SXR safety dump ! SXTES : SXR XTES system (BSY coordinate SURVEY only) ! ------------------------------------------------------------------------------ ! SC linac to HXR areas ! ------------------------------------------------------------------------------ ! SPH : HXR spreader kickers to start of BSY ! SLTH : start of BSY to SC/Cu linac merge ! BSYH_1 : SC/Cu linac merge to A-line kickers ! BSYH_2 : A-line kickers to end of BSY ! LTUH : HXR LTU (from d/s end of muon wall) ! UNDH : HXR undulator ! DMPH_1 : HXR post-undulator line ! DMPH_2 : HXR dump line ! SFTH_1 : BYDSH u/s face to BXPM1 u/s face ! SFTH_2 : BXPM1 u/s face to HXR safety dump ! HXTES : HXR XTES system (BSY coordinate SURVEY only) ! ------------------------------------------------------------------------------ ! SC linac to BSY dump areas ! ------------------------------------------------------------------------------ ! SPD_1 : HXR spreader kickers to SXR spreader kickers ! SPD_2 : SXR spreader kickers to DASEL kickers ! SPD_3 : DASEL kickers to start of BSY ! SLTD : start of BSY to BSY dump ! ------------------------------------------------------------------------------ ! SC linac to other areas ! ------------------------------------------------------------------------------ ! DIAG0 : post laser heater diagnostics line ! DASEL : DASEL kickers to A-line merge ... deferred ! ============================================================================== ! ============================================================================== ! Element naming conventions with the first few characters meaning: ! ------------------------------------------------------------------------------ ! CAVL.... = 1.3 GHz RF cavity (superconducting) ! CAVC.... = 3.9 GHz RF cavity (superconducting) ! CAVS.... = 2.856 GHz RF structure (warm copper) ! CSP..... = cryomodule support post ! BUN..... = RF buncher (warm) ! TCX..... = transverse deflecting structure (horizontal deflection) ! TCY..... = transverse deflecting structure (vertical deflection) ! BX...... = horizontal bend (split in two (suffixes "a" and "b")) ! BY...... = vertical bend (split in two (suffixes "a" and "b")) ! BR...... = rolled bend (split in two (suffixes "a" and "b")) ! BCX..... = horizontal chicane bend (split in two (suffixes "a" and "b")) ! BLX..... = horizontal Lambertson septum (split in two (suffixes "a" and "b")) ! BLY..... = vertical Lambertson septum (split in two (suffixes "a" and "b")) ! BLR..... = rolled Lambertson septum (split in two (suffixes "a" and "b")) ! BKX..... = horizontal kicker ((split in two (suffixes "a" and "b")) ! BKY..... = vertical kicker (split in two (suffixes "a" and "b")) ! BKR..... = rolled kicker (split in two (suffixes "a" and "b")) ! Q....... = quadrupole (normal quad, split in half) ! QCM..... = standard cryomodule quadrupole (normal quad, split in half) ! QSX..... = undulator quadrupole (normal quad, split in half ... SXR) ! QHX..... = undulator quadrupole (normal quad, split in half ... HXR) ! CQ...... = correction quadrupole (normal quad, split in half) ! SQ...... = skew quadrupole (skew quad, split in half) ! SOL..... = solenoid (split in half) ! UM...... = undulator magnet (full undulator segment) ! PS...... = phase shifter undulator ! CX...... = horizontal collimator (vertical jaws, adjustable) ! CY...... = vertical collimator (horizontal jaws, adjustable) ! CE...... = momentum collimator (adjustable) ! PC...... = protection collimator (fixed aperture) when keyword=ECOL ! PC...... = RP spot shielding (external plates) when keyword=INST ! RO...... = coordinate rotation (non-physical element) ! XC...... = horizontal steering dipole ! XCM..... = standard cryomodule horizontal steering dipole ! YC...... = vertical steering dipole ! YCM..... = standard cryomodule vertical steering dipole ! SC...... = steering coil package (horizontal and vertical dipole correctors) ! BPM..... = beam position monitor (stripline, various resolutions) ! RFB..... = RF beam position monitor (<1 micron rms resolution) ! CMB..... = standard cryomodule button beam position monitor ! WS...... = wire scanner ! YAG..... = YAG screen profile monitor ! OTR..... = optical transition radiation profile monitor ! IM...... = bunch charge monitor (ICT, DCCT, ACM, etc.) ! FC...... = Faraday cup ! BZ...... = bunch length monitor (various types) ! BTM..... = burn-through monitor (PPS device) ! PH...... = beam phase detector ! TD...... = tune-up dump (insertable copper block) ! SP...... = beam spoiler ! ST...... = beam stopper ! TR...... = transition radiator ! DUMP.... = beam dump ! BOD..... = beam overlap monitor ! VV...... = vacuum valve (not all valves are in the MAD deck) ! MIR..... = laser insertion mirror ! BLM..... = beam loss monitor (undulator areas) ! CNT..... = ELEGANT centering element ! HOMCM... = standard cryomodule HOM absorber ! S....... = sextupole (normal or rolled sextupole, split in half) ! ============================================================================== ! ------------------------------------------------------------------------------ ! deflector switch definitions ! ------------------------------------------------------------------------------ SETSP := 0 !deflector switch for HXR/SXR/BSYD spreader SETCUS := 0 !deflector switch for HXR/CUSXR SETAL := 0 !deflector switch for HXR/Aline SETDA := 0 !deflector switch for BSYD/DASEL SETXLEAP2 := 0 !selector switch for XLEAP-II components SETHXRSS := 0 !ON/OFF switch for HXR self-seeding chicane SETSXRSS := 0 !ON/OFF switch for SXR self-seeding chicane ! ------------------------------------------------------------------------------ ! integrated gradients for undulator quadrupoles ! ------------------------------------------------------------------------------ IntgSX := 30.0 !kG IntgHX := 30.0 !kG ! ------------------------------------------------------------------------------ ! element and line definitions ! ------------------------------------------------------------------------------ CALL, FILENAME="LCLS2sc_master.xsif" ! ------------------------------------------------------------------------------ ! input beam definitions (at BEAM0) ! ------------------------------------------------------------------------------ BEAM, PARTICLE=ELECTRON, NPART=QBNCH/QELEC, & EX=EMITX, EY=EMITY, SIGT=sig_z, SIGE=sig_dp SIG0i : SIGMA0, SIGX=SQRT(SIG11), SIGPX=SQRT(SIG22), R21=C21, & SIGY=SQRT(SIG33), SIGPY=SQRT(SIG44), R43=C43, & SIGT=sig_z , SIGPT=sig_dp ! ------------------------------------------------------------------------------ ! BETA0 block definitions ! ------------------------------------------------------------------------------ TWSS0 : BETA0, ENERGY=E0, BETX=BX0, ALFX=AX0, BETY=BY0, ALFY=AY0 TWSSa : BETA0, ENERGY=Ei, BETX=BXa, ALFX=AXa, BETY=BYa, ALFY=AYa TWSSi : BETA0, ENERGY=Ei, BETX=BXi, ALFX=AXi, BETY=BYi, ALFY=AYi TWSSms : BETA0, ENERGY=Ef, BETX=MBETXs, ALFX=MALFXs, BETY=MBETYs, ALFY=MALFYs TWSSmh : BETA0, ENERGY=Ef, BETX=MBETXh, ALFX=MALFXh, BETY=MBETYh, ALFY=MALFYh TWSSP : BETA0, BETX=TBXSP, BETY=TBYSP, ALFX=TAXSP, ALFY=TAYSP ! temporary TWSSm : BETA0 ! ============================================================================== ! SUBROUTINEs ! ------------------------------------------------------------------------------ ! quad settings in A-line SETK2scA : SUBROUTINE !for LCLS2scA SET, KQ10, 0.04078118414 SET, KQ11, -0.035978491015 SET, KQ19, 0.0288935235 SET, KQ20, 0.011673337852 SET, KQ27, -0.069796542848 SET, KQ28, 0.029206357304 SET, KQ30, -0.029497355276 SET, KQ38, 0.034805766493 ENDSUBROUTINE ! quad settings in DASEL SETK2scDA : SUBROUTINE !for LCLS2scDA SET, KQ10, 0.04034296448 SET, KQ11, -0.03865438496 SET, KQ19, 0.030550055348 SET, KQ20, -0.125475886882E-2 SET, KQ27, -0.074785603391 SET, KQ28, 0.041188876983 SET, KQ30, -0.029276530035 SET, KQ38, 0.034027229146 ENDSUBROUTINE ! ============================================================================== ! for testing the online Matlab model ! ------------------------------------------------------------------------------ COMMENT BEAM, ENERGY=E0 USE, SC_EIC TWISS, COUPLE, BETA0=TWSS0, TAPE="EIC_twiss.tape", & RTAPE="EIC_rmat.tape" BEAM, ENERGY=E0 USE, SC_DIAG0 TWISS, COUPLE, SAVE, BETA0=TWSS0, TAPE="DIAG0_twiss.tape", & RTAPE="DIAG0_rmat.tape" BEAM, ENERGY=Ei USE, SC_DIAG0i TWISS, BETA0=TWSSi, TAPE="DIAG0i_twiss.tape", & RTAPE="DIAG0i_rmat.tape" SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF BEAM, ENERGY=E0 USE, SC_SXR TWISS, COUPLE, BETA0=TWSS0, TAPE="LCLS2scS_twiss.tape", & RTAPE="LCLS2scS_rmat.tape" BEAM, ENERGY=Ei USE, SC_SXRi TWISS, BETA0=TWSSi, TAPE="LCLS2scSi_twiss.tape", & RTAPE="LCLS2scSi_rmat.tape" SET, SETSP, SETSPh ; SET, SETAL, ALOFF BEAM, ENERGY=E0 USE, SC_HXR TWISS, COUPLE, BETA0=TWSS0, TAPE="LCLS2scH_twiss.tape", & RTAPE="LCLS2scH_rmat.tape" BEAM, ENERGY=Ei USE, SC_HXRi TWISS, BETA0=TWSSi, TAPE="LCLS2scHi_twiss.tape", & RTAPE="LCLS2scHi_rmat.tape" SET, SETSP, SETSPd ; SET, SETDA, DAOFF BEAM, ENERGY=E0 USE, SC_BSYD TWISS, COUPLE, BETA0=TWSS0, TAPE="LCLS2scD_twiss.tape", & RTAPE="LCLS2scD_rmat.tape" BEAM, ENERGY=Ei USE, SC_BSYDi TWISS, BETA0=TWSSi, TAPE="LCLS2scDi_twiss.tape", & RTAPE="LCLS2scDi_rmat.tape" SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF BEAM, ENERGY=E0 USE, SC_SXR TWISS, COUPLE, BETA0=TWSS0, TAPE="LCLS2scS-XL2_twiss.tape", & RTAPE="LCLS2scS-XL2_rmat.tape" BEAM, ENERGY=Ei USE, SC_SXRi TWISS, BETA0=TWSSi, TAPE="LCLS2scSi-XL2_twiss.tape", & RTAPE="LCLS2scSi-XL2_rmat.tape" STOP ENDCOMMENT ! ============================================================================== ! COMMANDs ! ------------------------------------------------------------------------------ SETPLOT, XSIZE=25.4, YSIZE=20.32 SETPLOT, LWIDTH=5, LSCALE=1.5, SSCALE=1.5, RSCALE=1.5 OPTION, ECHO ! ------------------------------------------------------------------------------ !CALL, FILENAME="LCLS2sc_beams.mad8" !alternate beams & configurations !CALL, FILENAME="LCLS2sc_match.mad8" !CALL, FILENAME="LCLS2sc_XLEAP.mad8" !CALL, FILENAME="RDB/LCLS2sc_makeSymbols.mad8" !CALL, FILENAME="elegant/LCLS2sc_makeElegant.mad8" !STOP ! ------------------------------------------------------------------------------ ! SURVEY in linac coordinates ! ------------------------------------------------------------------------------ ! EIC (Early Injector Commissioning) COMMENT ASSIGN, PRINT="EIC.print" BEAM, ENERGY=E0 USE, SC_EIC PRINT, FULL SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun TWISS, COUPLE, BETA0=TWSS0, TAPE="EIC_twiss.tape", RTAPE="EIC_rmat.tape" ENDCOMMENT ! ------------------------------------------------------------------------------ ! SXR !COMMENT ASSIGN, PRINT="LCLS2scS.print" BEAM, ENERGY=E0 SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF USE, SC_SXR !SAVELINE, NAME="SC_SXR", FILENAME="LCLS2scS.saveline" PRINT, FULL SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scS_survey.tape" BEAM, ENERGY=Ei USE, SC_SXRi PRINT, FULL TWISS, SAVE, BETA0=TWSSi, TAPE="LCLS2scS_twiss.tape" !, & ! RTAPE="LCLS2scS_rmat.tape" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=5, & STYLE=100, SPLINE, RANGE=BEAM0/DUMPFACEB, FILE="LCLS2scS", & TITLE="SC-linac to SXR dump" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & STYLE=100, SPLINE, RANGE=BEAM0/DUMPFACEB, FILE="LCLS2scS", & TITLE="SC-linac to SXR dump" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, & STYLE=100, SPLINE, RANGE=BEAM0/DUMPFACEB, FILE="LCLS2scS", & TITLE="SC-linac to SXR dump" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & STYLE=100, SPLINE, RANGE=WS31B/DU7S[31], FILE="LCLS2scS", & TITLE="UNDS (SC beam, 4 GeV)" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! SXR safety dump COMMENT ASSIGN, PRINT="LCLS2scSS.print" BEAM, ENERGY=E0 SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF USE, SC_SFTS !SAVELINE, NAME="SC_SFTS", FILENAME="LCLS2scSS.saveline" PRINT, FULL SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scSS_survey.tape" BEAM, ENERGY=Ei USE, SC_SFTSi PRINT, FULL TWISS, SAVE, BETA0=TWSSi, TAPE="LCLS2scSS_twiss.tape" !, & ! RTAPE="LCLS2scSS_rmat.tape" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=5, & STYLE=100, SPLINE, RANGE=BEAM0/SFTDMPB, FILE="LCLS2scSS", & TITLE="SC-linac to SXR safety dump" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & STYLE=100, SPLINE, RANGE=BEAM0/SFTDMPB, FILE="LCLS2scSS", & TITLE="SC-linac to SXR safety dump" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, & STYLE=100, SPLINE, RANGE=BEAM0/SFTDMPB, FILE="LCLS2scSS", & TITLE="SC-linac to SXR safety dump" ENDCOMMENT ! ------------------------------------------------------------------------------ ! HXR !COMMENT ASSIGN, PRINT="LCLS2scH.print" BEAM, ENERGY=E0 SET, SETSP, SETSPh ; SET, SETAL, ALOFF USE, SC_HXR !SAVELINE, NAME="SC_HXR", FILENAME="LCLS2scH.saveline" PRINT, FULL SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scH_survey.tape" BEAM, ENERGY=Ei USE, SC_HXRi PRINT, FULL TWISS, SAVE, BETA0=TWSSi, TAPE="LCLS2scH_twiss.tape" !, & ! RTAPE="LCLS2scH_rmat.tape" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=5, & STYLE=100, SPLINE, RANGE=BEAM0/DUMPFACE, FILE="LCLS2scH", & TITLE="SC-linac to HXR dump" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & STYLE=100, SPLINE, RANGE=BEAM0/DUMPFACE, FILE="LCLS2scH", & TITLE="SC-linac to HXR dump" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, & STYLE=100, SPLINE, RANGE=BEAM0/DUMPFACE, FILE="LCLS2scH", & TITLE="SC-linac to HXR dump" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & STYLE=100, SPLINE, RANGE=WS31/DU7H[25], FILE="LCLS2scH", & TITLE="UNDH (SC beam, 4 GeV)" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! BSY dump !COMMENT ASSIGN, PRINT="LCLS2scD.print" BEAM, ENERGY=E0 SET, SETSP, SETSPd ; SET, SETDA, DAOFF USE, SC_BSYD !SAVELINE, NAME="SC_BSYD", FILENAME="LCLS2scD.saveline" PRINT, FULL SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scD_survey.tape" BEAM, ENERGY=Ei USE, SC_BSYDi PRINT, FULL TWISS, SAVE, BETA0=TWSSi, TAPE="LCLS2scD_twiss.tape" !, & ! RTAPE="LCLS2scD_rmat.tape" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=5, & STYLE=100, SPLINE, RANGE=BEAM0/DUMPBSY, FILE="LCLS2scD", & TITLE="SC-linac to BSY dump" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & STYLE=100, SPLINE, RANGE=BEAM0/DUMPBSY, FILE="LCLS2scD", & TITLE="SC-linac to BSY dump" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, & STYLE=100, SPLINE, RANGE=BEAM0/DUMPBSY, FILE="LCLS2scD", & TITLE="SC-linac to BSY dump" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! DIAG0 !COMMENT ASSIGN, PRINT="DIAG0.print" BEAM, ENERGY=E0 USE, SC_DIAG0 !SAVELINE, NAME="SC_DIAG0", FILENAME="DIAG0.saveline" PRINT, FULL SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="DIAG0_survey.tape" BEAM, ENERGY=Ei USE, SC_DIAG0i PRINT, FULL TWISS, SAVE, BETA0=TWSSi, TAPE="DIAG0_twiss.tape" !, & ! RTAPE="DIAG0_rmat.tape" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & STYLE=100, SPLINE, RANGE=BEAM0/ENDDIAG0, FILE="DIAG0", & TITLE="SC-linac to DIAG0" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, & STYLE=100, SPLINE, RANGE=BEAM0/ENDDIAG0, FILE="DIAG0", & TITLE="SC-linac to DIAG0" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! DASEL (deferred) !COMMENT ASSIGN, PRINT="LCLS2scDA.print" BEAM, ENERGY=E0 SET, SETSP, SETSPd ; SET, SETDA, DAON ; SET, ROLLRC, +1 SETK2scDA USE, SC_DASEL !SAVELINE, NAME="SC_DASEL", FILENAME="LCLS2scDA.saveline" PRINT, FULL SURVEY, X0=Xgun, Y0=Ygun, Z0=Zgun, TAPE="LCLS2scDA_survey.tape" BEAM, ENERGY=Ei SET, ROLLRC, 0 USE, SC_DASELi PRINT, FULL TWISS, SAVE, BETA0=TWSSi, TAPE="LCLS2scDA_twiss.tape" !, & ! RTAPE="LCLS2scDA_rmat.tape" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=5, & STYLE=100, SPLINE, RANGE=BEAM0/ENDBSYA_2, FILE="LCLS2scDA", & TITLE="SC-linac to DASEL" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=rBETX,rBETY, & STYLE=100, SPLINE, RANGE=BEAM0/ENDBSYA_2, FILE="LCLS2scDA", & TITLE="SC-linac to DASEL" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=DX,DY, & STYLE=100, SPLINE, RANGE=BEAM0/ENDBSYA_2, FILE="LCLS2scDA", & TITLE="SC-linac to DASEL" SET, ROLLRC, +1 !ENDCOMMENT ! ------------------------------------------------------------------------------ ! SURVEY in BSY coordinates (from start of spreader) ! ------------------------------------------------------------------------------ ! SXR !COMMENT ASSIGN, PRINT="BSY-LCLS2scS.print" BEAM, ENERGY=Ef SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF USE, BSYLCLS2scS PRINT, FULL SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, & TAPE="BSY-LCLS2scS_survey.tape" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! SXR safety dump !COMMENT ASSIGN, PRINT="BSY-LCLS2scSS.print" BEAM, ENERGY=Ef SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF USE, BSYLCLS2scSS PRINT, FULL SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, & TAPE="BSY-LCLS2scSS_survey.tape" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! SXR 2_X !"2.X" !COMMENT ASSIGN, PRINT="BSY-LCLS2scS2_X.print" BEAM, ENERGY=Ef SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF USE, BSYLCLS2scS2_X PRINT, FULL SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, & TAPE="BSY-LCLS2scS2_X_survey.tape" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! SXR TXI !COMMENT ASSIGN, PRINT="BSY-LCLS2scSTXI.print" BEAM, ENERGY=Ef SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF USE, BSYLCLS2scSTXI PRINT, FULL SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, & TAPE="BSY-LCLS2scSTXI_survey.tape" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! SXR TMO !COMMENT ASSIGN, PRINT="BSY-LCLS2scSTMO.print" BEAM, ENERGY=Ef SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF USE, BSYLCLS2scSTMO PRINT, FULL SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, & TAPE="BSY-LCLS2scSTMO_survey.tape" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! HXR !COMMENT ASSIGN, PRINT="BSY-LCLS2scH.print" BEAM, ENERGY=Ef SET, SETSP, SETSPh ; SET, SETAL, ALOFF USE, BSYLCLS2scH PRINT, FULL SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, & TAPE="BSY-LCLS2scH_survey.tape" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! BSY dump !COMMENT ASSIGN, PRINT="BSY-LCLS2scD.print" BEAM, ENERGY=Ef SET, SETSP, SETSPd ; SET, SETDA, DAOFF USE, BSYLCLS2scD PRINT, FULL SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, & TAPE="BSY-LCLS2scD_survey.tape" !ENDCOMMENT ! ------------------------------------------------------------------------------ ! S30XL (a.k.a. DASEL) !COMMENT ASSIGN, PRINT="BSY-LCLS2scDA.print" BEAM, ENERGY=Ef SET, SETSP, SETSPd ; SET, SETDA, DAON ; SET, ROLLRC, +1 SETK2scDA USE, BSYLCLS2scDA PRINT, FULL SURVEY, X0=Xf, Y0=Yf, Z0=Zf, THETA0=THETAf, PHI0=PHIf, PSI0=PSIf, & TAPE="BSY-LCLS2scDA_survey.tape" !ENDCOMMENT ! ============================================================================== ! Twiss plots !COMMENT ASSIGN, PRINT="LCLS2sc.print" ! Cathode to BEAM0 BEAM, ENERGY=E0 USE, (GUN,L0) PRINT, FULL TWISS, SAVE, COUPLE, BETA0=TWSS0 PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=0.12, & COLOUR=100, -SPLINE, RANGE=CATHODEB/ENDL0B, FILE="LCLS2sc_color", & TITLE="GUNB + L0B" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, VMIN=0, VMAX=20, & COLOUR=100, -SPLINE, RANGE=CATHODEB/ENDL0B, FILE="LCLS2sc_color", & TITLE="GUNB + L0B" ! BEAM0 to SXR Main Dump BEAM, ENERGY=Ei SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF USE, SC_SXRi TWISS, SAVE, BETA0=TWSSi PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, & COLOUR=100, SPLINE, RANGE=BEAM0/ENDL1B, FILE="LCLS2sc_color", & TITLE="Laser Heater + Coll0 + L1B" PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEAM0/ENDL1B, FILE="LCLS2sc_color", & TITLE="Laser Heater + Coll0 + L1B" PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGBC1B/ENDCOL1, FILE="LCLS2sc_color", & TITLE="BC1B + Coll1" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, & COLOUR=100, SPLINE, RANGE=BEGL2B/ENDL2B, FILE="LCLS2sc_color", & TITLE="L2B" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & COLOUR=100, SPLINE, RANGE=BEGL2B/ENDL2B, FILE="LCLS2sc_color", & TITLE="L2B" PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGBC2B/ENDEMIT2, FILE="LCLS2sc_color", & TITLE="BC2B + Emit2" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=ENERGY, VMIN=0, VMAX=5, & COLOUR=100, SPLINE, RANGE=BEGL3B/ENDEXT, FILE="LCLS2sc_color", & TITLE="L3B + Extension" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & COLOUR=100, SPLINE, RANGE=BEGL3B/ENDEXT, FILE="LCLS2sc_color", & TITLE="L3B + Extension" PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGDOG/MQBP13, FILE="LCLS2sc_color", & TITLE="Dogleg + Match to Bypass + NIT Extension" PLOT, TABLE=TWISS, HAXIS=S, VAXIS=BETX,BETY, & COLOUR=100, SPLINE, RANGE=MQBP13/ENDSPD_1, FILE="LCLS2sc_color", & TITLE="Bypass Line to Spreader" PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGSPS/ENDLTUS, FILE="LCLS2sc_color", & TITLE="Spreader + LTUS" PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGUNDS/DUMPFACEB, FILE="LCLS2sc_color", & TITLE="SXR Undulator to Dump" ! SXR Safety Dump BEAM, ENERGY=Ei SET, SETSP, SETSPs ; SET, SETCUS, CUSOFF USE, SC_SFTSi TWISS, SAVE, BETA0=TWSSi PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGSFTS_1/SFTDMPB, FILE="LCLS2sc_color", & TITLE="SXR Safety Dump" ! Spreader to HXR Main Dump BEAM, ENERGY=Ei SET, SETSP, SETSPh ; SET, SETAL, ALOFF USE, SC_HXRi TWISS, SAVE, BETA0=TWSSi PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGSPH/ENDLTUH, FILE="LCLS2sc_color", & TITLE="Spreader + LTUH" PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGUNDH/DUMPFACE, FILE="LCLS2sc_color", & TITLE="HXR Undulator to Dump" ! Spreader to BSY Dump BEAM, ENERGY=Ei SET, SETSP, SETSPd ; SET, SETDA, DAOFF USE, SC_BSYDi TWISS, SAVE, BETA0=TWSSi PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGSPD_1/DUMPBSY, FILE="LCLS2sc_color", & TITLE="Spreader to BSY Dump" ! DIAG0 BEAM, ENERGY=Ei USE, SC_DIAG0i TWISS, SAVE, BETA0=TWSSi PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=BETX,BETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGDIAG0/ENDDIAG0, FILE="LCLS2sc_color", & TITLE="DIAG0" ! DASEL (deferred) BEAM, ENERGY=Ei SET, SETSP, SETSPd ; SET, SETDA, DAON ; SET, ROLLRC, 0 SETK2scDA USE, SC_DASELi TWISS, SAVE, BETA0=TWSSi PLOT, TABLE=TWISS, HAXIS=S, VAXIS1=rBETX,rBETY, VAXIS2=DX,DY, & COLOUR=100, SPLINE, RANGE=BEGDASEL/ENDBSYA_2, FILE="LCLS2sc_color", & TITLE="DASEL to A-line" SET, ROLLRC, +1 !ENDCOMMENT ! ------------------------------------------------------------------------------ !CALL "LCLS2sc_area_plots.mad8" ! ------------------------------------------------------------------------------ STOP