Versions Compared

Key

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

...

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.
  • 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
  •  LEM server + watcher conversion
LEMBuschmann2Waiting on model server deployment
  •  New Phase scan GUI
    •  L0 phase scan automation
Phase ScansBuschmannWIP2rudimentary functionality, needs with-beam testhttps://github.com/slaclab/facet-matlabTNG/pull/2
  •  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

...

  •  BC20 energy feedback no-op

...

  •  Matlab server revival

...

  •  Save previous magnet settings after loading new emittance msmt

...

  •  Add logbook button for LEM magnet settings

...

  •  Write waist position PV after trim, not after selection

...

  •  Sextupole GUI "fix offsets" button does nothing

...

  • 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...
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/4







Maintenance & Technical Debt

...

  •  Change default range of Schottky Scan GUI

...

  •  Feedbacks GUI has a typo in DL10 PV

...

  •  fix FC01 toggle on Schottky GUI

...

IssueApplication/areaPerson(s) ResponsibleStatusPriorityNotesGitHub/CATER/etc
  •  
Rebrand EPICS with fancy new orange
  • BC20 energy feedback no-op
Feedbacks
Global
BuschmannWIP1MD 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)
  •  Matlab server revival
GlobalBuschmanndone2

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 hard


  •  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







Minor Upgrades & Projects

IssueApplication/areaPerson(s) ResponsibleStatusPriorityNotesGitHub/CATER/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: 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

3discussing how to implement non-invasively with EED
  •  LAME GUI scan automation
LAMEParkerWIP3
  •  CUD reference image/orbits
CUDsBuschmann3update 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
  •  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
  •  Add Logbook feature to BSA GUI
BSAPerezDone2
  •  Add wire scan timestamps + skew + kurtosis to plot/logbook
Wire/Multi-WireBuschmann (+intrepid sidekick?)WIP1

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 CUDsBuschmann3
  •  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

    ...

    1. ssh to centos7, navigate to /u/gu/zack/github_relay/
    2. run python relay_setup.py <prod_repo_name> <github_repo_name> to setup a "relay repository" used to sync /afs/ and GitHub. This script will:
      1. git clone the repo into the github_relay directory
      2. git remote add remote github git@github.com:slaclab/<github_repo_name>.git
      3. add <repo_name> to /u/gu/zack/github_relay/tracked_repos.txt

    ...

    These are the HLA tasks as they existed as of 01/2024. This content is archival.

    Preferred development workflow with git repository:

    • Create new development branch for work in personal clone of repo
    • Do work and test
    • Merge in any recent changes from main branch
    • Push your branch, email Glen to evaluate & merge into main branch

    Generic tasks/ideas

    TaskStatusAssigned ByActively Worked on by...
    Full lists of PVs used in HLAs accessible from each help menu
    GlenSharon
    Complete documentation for each HLA & generic controls/modeling interface
    Glen
    Remove remaining dependencies on legacy Matlab2012 & "matlab model" code
    Glen
    Remove instances of direct use of LabCA - move everything over to using PV class in readiness for implementation of PVANeeds doing by mid-2023?Glen
    Faster list-based caget operations in PV class + improve first-time calls (speed up LiveModel initialization)
    Glen
    Implement asyn operations when move to >Matlab2021
    Glen
    Extend matlab server model to facet-srv01?
    Glen
    Change default range of Schottky Scan GUI
    LoneySharon
    Automation of 10-3/10-4 phase scans (in Schottky GUI or phase scan GUI)To be implemented into new phase scan GUILoneyBuschmann
    Add Logbook feature to BSA GUI
    LoneySharon

    AIDA-PVA

    TaskStatusAssigned byActively Worked on by...
    Larger # buffered BPM data acquisitions (up to 1000 @ 10Hz?)11/7/22: Tested, deployed in Wirescan app- appears to be working well.GlenCOMPLETE
    Asynchronous calls (especially for bufferedacq) from Matlab11/4/22: Tested, declared working.GlenCOMPLETE
    Implement interface to SCP corr plots10/22/22: Implemented by George, documentation on AIDA-PVA website, needs testingGlenGeorge, Glen
    Multi-device set (and asynchronous status return) on PMDL (and others...?)11/7/22: Tested, working well in MDLFF app for multi-set of PMDL values.GlenCOMPLETE
    Feedback HSTA bit control (be able to change Feedback → Compute)9/22/22: Implemented and tested ability to write raw HSTA bit values, matlab interface to toggle OFF, Compute, Feedback states written and tested. George to implement cleaner AIDA-level state change interface.GlenGeorge, Glen
    Fix AIDA service crashes on VAX (or be able to detect and self correct)9/22/22: Many potential non catching of errors found by George and changes to server-side code made, cannot induce server failures by testing. Need to operationally observe to see if fixes are good.GlenGeorge & Greg

    F2_Orbit

    TaskStatusAssigned ByActively Worked on by...
    Plotted orbit doesn't respect pre-selected BPM list when loading a Config with pre-measured BPM data
    Glen
    Indicate TRIM operation in progress by grey-out of "Do correction" button or similar
    Glen
    Make MIA tab functionality work
    Glen
    "Plot all" option doesn't work correctly when displaying corrected orbit after performing orbit correction calc
    Glen
    Re-instate some auto dispersion correct functionality (e.g. DL10 correction with Q10731)
    Glen
    Add kick and dispersion source fit functionality to orbit and dispersion tabs
    Glen
    Changing fit location should update plot and fit data- currently doesn't work
    Glen
    Link reference orbit saved to Python bpm orbit tool reference saves
    Glen
    Implement TMIT cuts for BPM orbit
    Glen
    Implement measured Rmat (as opposed to model Rmat) interface (including measurement tools?)
    Glen

    F2_LEM

    TaskStatusAssigned ByActively Worked on by...
    Store design L1,L2,L3 operating phases in EPICS PVs
    Glen
    Watcher version of LEM: info on when LEM needed etc + interface with CUD
    Glen
    Ignore CQ's & SQ's for purposes of Twiss parameter propagation (BMAG plot)
    Glen
    Make a way to flag "Matching Quads" and deal with them differently when "LEM to model"?
    Glen
    Fix BACT=0 causing "NaN"'s in BMAG propogation
    Glen
    Convert to server + watcher architecture
    BuschmannBuschmann

    F2_Matching

    TaskStatusAssigned ByActively Worked on by...
    On Multi-Wire matching tabs, wire names don't change when reading in data from different Linac section
    Glen
    Keep last vals in MW tab when switch back from other tab
    Glen
    Auto de-select CQ & SQ magnets from matching options
    Glen
    Add native quad scan functionality
    Glen
    Allow Undo button to retain old values after calculating new match
    Loney

    F2_Feedback

    TaskStatusAssigned ByActively Worked on by...
    Jitter button ON/OFF status not working properly
    Glen
    DL10 controller name "IN10"→"LI10" on GUI
    Glen
    Settings GUI plot to include line showing feedback desired offset value
    Glen
    Fix freezing of GUI when closing settings panels
    Glen
    Tie DL10 feedback stpoint directly to LLRF control → switch off "slow fb" on RF controller when feedback on and vice-versa, increase feedback gain
    Glen
    Implement full PID controller coefficients to each feedback, setup and test and include P or PID as option (at least for DL10)
    Glen
    Implement use of LI17 fast phase shifters for BC20 feedback through SCP multiknob controls
    Glen
    Auto-adjust gains for changes in beam rate
    Glen
    Add FFS transverse feedback
    GlenLauren




    MDL_FeedForward

    TaskStatusAssigned byActively Worked on by...
    Data collection: have watcher record each GOLD entry and associated data and save to disk
    Glen
    Make user-facing configuration GUI to examine training data & evaluate performance & tune NN or linear models or manually tweak
    Glen
    Implement multi-device write commands in AIDA for PMDL data

    10/7/22: AIDA software written to allow this
    11/7/22: Implemented in MDLFF app and tested.

    GlenCOMPLETE

    F2_Wirescanner

    TaskStatusAssigned byActively Worked on by...
    User access to PMT timing & gate widths
    Glen
    When selecting motor position units option- propagate changes to plot to see centroid of scan in motor units
    Glen
    Jitter correction for Linac wirescanners in L2 and L3

    9/19/22: Initial tests show buffered bpm acq with ~200 pulses works, initial code implemented, needs testing with beam
    10/7/22: AIDA now supports up to 1800 buffered data points
    11/7/22: Debugged jitter correction code with AIDA BPM in app, test worked well- all beam size measurements in L2 & L3 reduce when jitter correction selected.

    GlenCOMPLETE

    S20 Configurator

    TaskStatusAssigned byActively Worked on by...
    Write current IP waist position to a dedicated PV instead of sharing with desired waist position 
    RyanBuschmann

    S20 IP Waist from BPM Jitter

    TaskStatusAssigned byActively Worked on by...
    Create11/6/22: Tested, working. Results are unstable, assuming this is due to dispersion leakage and large energy jitter. Next job is to implement SVD algorithm to simultaneously fit dispersion functions and remove energy jitter component.GlenGlen


    SLC Control System Notes

    Ken Brobeck's How to restart some VMS processes guide.

    ...