Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Waiting on model server deployment

  • 3/13/24: current plan is to deploy a second PVA server that writes LEM EREF/EACT/BDES etc to an NTTTable, then the ModelReceiver can be updated in-kind to provide those quantities
    • python PVA will make it straightforward to build a LEM CUD
Phase Scans
TaskApplication/areaPerson(s) ResponsibleStatusPriorityNotesGitHub/CATER/etc
  •  Lucretia Bmad model server conversion
    •  python PVA service
    •  matlab interface class GUI conversion?
GlobalCesar, Perez, BuschmannS2E group + Buschmann + moreWIP1

Lattice files for Brad already exist. Current high-level goals are:

  • Establish agreement with Lucretia (S2E et al)
  • Implement interface to live machine parameters (Buschmann)
  • Add Bmad model to python PVA server
  • (TBD) Convert GUIs
    • Depends on tao→matlab compatibility
    • alternative: PyTao would let us rejoin the LCLS shared application ecosystem in some areas (emittance GUI, wires)



  •  Lucretia model server conversion
    •  python PVA service
    •  matlab interface class
    •  GUI conversion
GlobalCesar, Perez, BuschmannWIP1
  • 1/12/24: demo PVA server works, writing live/design Rs and twiss params, but matlab pvaGet not working yet. next step: document lucretia dependencies across matlabTNG to determine what the matlab interface needs to do
  • 1/23/24: matlab PVA access works with a python workaround (good enough for now, likely need a better long-term solution) Cesar prepped draft interface design document. reviewed
  • 1/12/24: demo PVA server works, writing live/design Rs and twiss params, but matlab pvaGet not working yet. next step: document lucretia dependencies across matlabTNG to determine what the matlab interface needs to do
  • 1/23/24: matlab PVA access works with a python workaround (good enough for now, likely need a better long-term solution) Cesar prepped draft interface design document. reviewed high-priority GUI model uses. 
  • 2/8/24: PVA server is running but not deployed to prod yet. Drafting implementation of matlab class F2_ModelReceiver - once the lucretia functions GetRmats, RmatAtoB and GetTwiss are replicated we can proceed to test GUIs. Need to check w/ controls deputes to get some watcher PVs set up
  • 3/12/24: draft version of receiver on GitHub, testing for correctness and use by GUI controllers
  • 4/9/24: F2_ModelReceiver 0.1 version is ready for deployment, unfortunately the python models service has some errors in it, but the mechanics of the interface are mostly stable
  • 4/18/24: live model is currently starting from the gun, which produces very unrealistic twiss parameters. Need to start sim downstream at some treaty point
  • live model GUI gets marginally more realistic outputs starting from L0BFBEG, one option...
  • more realistic: take the latest PR10571 emittance measurement, back propagate to initial twiss at L0AFBEG – there are some kind of hooks in place for this already. but I'm not 100% on if they ever worked.
  • and use by GUI controllers
  • 4/9/24: F2_ModelReceiver 0.1 version is ready for deployment, unfortunately the python models service has some errors in it, but the mechanics of the interface are mostly stable
  • 4/18/24: live model is currently starting from the gun, which produces very unrealistic twiss parameters. Need to start sim downstream at some treaty point
    • live model GUI gets marginally more realistic outputs starting from L0BFBEG, one option...
    • more realistic: take the latest PR10571 emittance measurement, back propagate to initial twiss at L0AFBEG – there are some kind of hooks in place for this already. but I'm not 100% on if they ever worked...
https://github.com/slaclab/facet-matlabTNG/pull/3
  •  LEM server + watcher conversion
LEMBuschmann
2

Waiting on model server deployment

  • 3/13/24: current plan is to deploy a second PVA server that writes LEM EREF/EACT/BDES etc to an NTTTable, then the ModelReceiver can be updated in-kind to provide those quantities
    • python PVA will make it straightforward to build a LEM CUD



  •  Add quad scan emittance measurement function (for L0)
Optics MatchingPerez
3last step needed to migrate off of the LCLS-side emittance application. seems to be already partially implemented, so the challenge here is partially archeological in nature.
  •  RTBSA for FACET-II
    •  python class for streaming BSA data
    •  python class for real-time BSA time series & correlation plots
    •  GUI
BSABuschmannWIP2
  • 07/05/2024: Developed proof-of-concept GUI using lcls BSA PVs - works for us as well since our BSA encodes pulse IDs the same way. Corr plot with fitting, time series and FFT are all working.
    • still need to optimize syncing for network performance
    • likely can replace the current RTBSA GUI for lcls as well

  •  New Phase scan GUI
    •  L0 phase scan automation
Phase ScansBuschmannDONE2

rudimentary functionality, needs with-beam test

update 05/06/24: tested with beam L0, L1 and L2-3 are working, deployment soon...

https://github.com/slaclab/facet-matlabTNG/pull/3
  •  LEM server + watcher conversion
LEMBuschmann2
  •  New Phase scan GUI
    •  L0 phase scan automation
4







Maintenance & Technical Debt

IssueApplication/areaPerson(s) ResponsibleStatusPriorityNotesGitHub/CATER/etc
  •  BC20 energy feedback no-op
FeedbacksBuschmannWIP
2rudimentary functionality, needs with-beam testhttps://github.com/slaclab/facet-matlabTNG/pull/4
  •  Add quad scan emittance measurement function (for L0)
Optics MatchingPerez3last step needed to migrate off of the LCLS-side emittance application. seems to be already partially implemented, so the challenge here is partially archeological in nature.

Maintenance & Technical Debt

166749
1MD plan for debugging is ready to go166749
  •  Save previous magnet settings after loading new emittance msmt
OpticsBuschmann
2
166714
  •  Add logbook button for LEM magnet settings
LEMBuschmann
2
166618
  •  Schottky GUI updates
Schottky ScanLoneyWIP3Option to use laser timing, fix plotting issues, various other bugs158479 (ish)
IssueApplication/areaPerson(s) ResponsibleStatusPriorityNotesGitHub/CATER/etc
  •  BC20 energy feedback no-op
FeedbacksBuschmannWIP1MD plan for debugging is ready to go
  •  Matlab server revival
GlobalBuschmannWIPdone2

managed to launch server, but haven't figured out how to launch GUIs yet

update 4/24: done. added a button to launch from the ops dashboard – only a few OPIs supported at the moment, but adding support from new machines isn't hardfrom new machines isn't hard


  •  
  •  Save previous magnet settings after loading new emittance msmt
OpticsBuschmann2166714
  •  Add logbook button for LEM magnet settings
LEMBuschmann2166618
  •  Write waist position PV after trim, not after selection
S20 ConfigBuschmannDone3

  •  Sextupole GUI "fix offsets" button does nothing
SextupoleBuschmanndone3

ancient CATER - maybe not an issue anymore? needs discussion

update 06/2024: real issue, fixed now!

117540
  •  Change default range of Schottky Scan GUI
Schottky ScanPerezDone3changed to  [ -50 10 ]
  •  Feedbacks GUI has a typo in DL10 PV
FeedbacksBuschmannDone3trivial fix157790
  •  fix FC01 toggle on Schottky GUI
Schottky ScanLoneydone3(should be) trivial fix, also change default range and add gun offset167704







...

update infrastructure exists to set new references remotely and update CUDs remotely, but the callbacks for each type of reference data are not complete – i.e. need to save DTOTR2 to a PNG, so CUDs can display, or save BPM data to a .mat etc etc
IssueApplication/areaPerson(s) ResponsibleStatusPriorityNotesGitHub/CATER/etc
  •  Rebrand EPICS with fancy new orange
GlobalBuschmannWIP3discussing how to implement non-invasively with EED
  •  LAME GUI scan automation
LAMEParkerWIP3
  •  CUD reference image/orbits
CUDsBuschmann3/etc
  •  LAME GUI scan automation
LAMEParkerWIP3

  •  Full lists of PVs used in HLAs accessible from each help menu
GlobalPerezWIP3F2_Feedbacks does this already with a hardcoded list, something similar could be done in other GUIs than have a lot of anonymous matlab PVs – ideally this could be automated by parsing the GUIs internal list of PVs
  •  Implement real-time rms energy spread PV with SYAG stats

Buschmann/ParkerWIP2Camera is serving stats. Just need a way to measure a conversion factor of MeV/pixel, then write both the calibration and the sigmaE to matlab PVC
  •  update 2/28/24:
  •  Full lists of PVs used in HLAs accessible from each help menu
GlobalPerezWIP3F2_Feedbacks does this already with a hardcoded list, something similar could be done in other GUIs than have a lot of anonymous matlab PVs – ideally this could be automated by parsing the GUIs internal list of PVs
  • need to better understand what AD plugin stats actually calculate, the quantity I thought was the Xrms is not
  • simpler solution: measure the MeV/mm calibration and make an MeV axis so the sigE can be eyeballed

  •  Create tool to display corrector strength relative to beam energy vs Z.

KalsiWIP1

  •  python machine state summary script

Buschmann
3I'm imagining a script that gets 10571 + 10711 + SYAG + DTOTR2 images, and logbooks the most recent set of emittance/S20 measurements
  •  Linac bump maker

LoneyWIP1
  • simple version: matlab script that takes a BPM and an offset/angle as arguments
  • fancier version: GUI where one can select a BPM, preview corrector settings and undo

  •  convert wirescan plot Y axis to counts instead of charge
wirescansBuschmann
3

  •  IPWS1 Auto wire finder

LoneyWIP3

  •  Change default screen to 711 for injector TCAV measurements 
TCAV GUI




  •  Rebrand EPICS with fancy new orange
GlobalBuschmanndone3nice
  •  CUD reference image/orbits
CUDsBuschmanndone3update 2/28/24: infrastructure exists to set new references remotely and update CUDs remotely, but the callbacks for each type of reference data are not complete – i.e. need to save DTOTR2 to a PNG, so CUDs can display, or save BPM data to a .mat etc etc
  •  Add Logbook feature to BSA GUI
BSAPerezDone2

  •  Add wire scan timestamps + skew + kurtosis to plot/logbook
Wire/Multi-WireBuschmann (+intrepid sidekick?)Done1

Both wire GUIs use the F2_WirescanApp object – save fit data/timestamps etc there, then GUIs can log & display that info as needed

  • update 3/5/2024: got the skew/kurt calculation implemented and have GUI frontends updated in-kind. still need to do some correctness checks and add timestamps

  •  FB CUD running flag (fix or remove)
F2 CUDsBuschmanndone3

update 4/9/24: working on updates to this display

5/24: done, v2 released

  •  Add Logbook feature to BSA GUI
BSAPerezDone2
  •  Add wire scan timestamps + skew + kurtosis to plot/logbook
Wire/Multi-WireBuschmann (+intrepid sidekick?)Done1

Both wire GUIs use the F2_WirescanApp object – save fit data/timestamps etc there, then GUIs can log & display that info as needed

  • update 3/5/2024: got the skew/kurt calculation implemented and have GUI frontends updated in-kind. still need to do some correctness checks and add timestamps
  •  Implement real-time rms energy spread PV with SYAG stats
Buschmann/ParkerWIP2Camera is serving stats. Just need a way to measure a conversion factor of MeV/pixel, then write both the calibration and the sigmaE to matlab PVC
  •  update 2/28/24: need to better understand what AD plugin stats actually calculate, the quantity I thought was the Xrms is not
  • simpler solution: measure the MeV/mm calibration and make an MeV axis so the sigE can be eyeballed
  •  Create tool to display corrector strength relative to beam energy vs Z.
KalsiWIP1
  •  FB CUD running flag (fix or remove)
F2 CUDsBuschmann3update 4/9/24: working on updates to this display
  •  python machine state summary script
Buschmann3I'm imagining a script that gets 10571 + 10711 + SYAG + DTOTR2 images, and logbooks the most recent set of emittance/S20 measurements
  •  linac bump maker
LoneyWIP1
  • simple version: matlab script that takes a BPM and an offset/angle as arguments
  • fancier version: GUI where one can select a BPM, preview corrector settings and undo









    Standby Tasks / Wishlist / Brainstorm

    ...

    • Remove remaining dependencies on legacy Matlab2012 & "matlab model" code
    • Remove instances of direct use of LabCA - move everything over to using PV class in readiness for implementation of PVA
    • Beam stay clear plot vs Z (beam aperture vs Z, or acceptance vs delta E)
    • Automation/tools to facilitate 7-hole alignment 
    • Injector RF waveform generator tool
    • MPS interlocking for EOS
    • Klystron jitter report 

    LEM

    • write L1-L3 design phases to PVs
    • ignore CQs/SQs when propagating twins parameters. (BMAG plot)
    • flag "matching quads" and handle separately when "Lem to model"
    • fix BACT=0 causing NaNs in BMAG propagation

    ...

    • indicate TRIM operation in progress by disabling UI
    • Orbit fitting tools
    • Allow reference orbits to have names changed in Python Orbit Display Reference Orbit list

    Optics

    • wire names don't update in multiwire matching tabs after changing linac selection
    • automatically de-select CQ/SQs from matching options
    • native quad scans → ultimate goal of fully migrating off of the LCLS emittance GUI

    ...