Versions Compared

Key

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

...

Package

Implementation

Fast Feedback

Dealt with elsewhere

Configuration Control

Data Archiver

Exists in SLC for SLC devices ("History"). Data archiver for EPICS in LCLS is under discussion. Paul Chu reports that EPICS archiver itself considered too slow, so ; SNS experimenters use PVLogger when they can, but PVlogger is not an alternative archiver. AIDA can presently acquire both SLC and EPICS Archiver data. Propose: when LCLS EPICS archiver is decided, write AIDA server, and use EPICS Kasemir Channel Archive; improve Archive Browser performance; implement additions to browser so both sources can be accessed via AIDA. See Questions

Error Logging

See Error Handling, Logging and Viewing below

Watchdog

...

  1. SLC CAMAC Magnet control and SLC BPM data acquisition by XAL Applications. The SLC CA server does not presently support "set" operations, so there is not presently a way for XAL applications, which use EPICS Ca through JCA, to change the value of CAMAC magents. Possible solutions are to add set to SLC CA, or to change XAL applications to use AIDA, or to accept that XAL applications can not control SLC CAMAC magnets - that would be bad for orbit correction for instance, since most magnets in the linac will be SLC control system. Similarly, the SLC-aware-IOC and EPICS BPM acquisition API will allow both an XAL based application, or the SCP, to acquire IOC hosted BPMs, but are there "classical" SLC BPMs that must be acquirable by XAL applications.
    Anchor
    WindowsFilesystem
    WindowsFilesystem
  2. Windows filesystem.
    If we do require native execution on Windows that decision should be made clearly and early, and resources assigned to implement the common executable and configuration file distribution so that Unix and Windows running applications are in sync and see the same configuration files. Java Web Start and Eclipse update site technology may be places to find solutions.
    Anchor
    XAL_nocoupling
    XAL_nocoupling
  3. XAL Plane Coupled modeling.
    The existing XAL probes for calculating R-matrices, run on either the X-plane or Y-plane and returns only a 2x2 matrix for each element. That is, it's uncoupled. This is reflected in the fact that only the Twiss parameters can be stored into an XAL file - it only contains uncoupled optics. It may be that XAL is in fact tracking a plane coupled system, but only returning the X or Y plane block-matrices - need to verify. So, if plane coupled orbit correction is important for us, we need to verify what XAL is doing, add at least 4x4 probe API, also probably also 6x6 tracking.
  4. XAL Modelled acceleration and solenoid. XAL does not model acceleration nor solenoid field
  5. Archiver. Which one?
  6. XAL file generation directly from Oracle. Is there a mechanism to flag items in the oracle db for inclusion in the lattice? Danger is people will edit the Oracle db to say move an item to a new z location or include a dummy bpm, and the lattice will change.
  7. Scripting. It may be that the requirement for user-level scripting of complex operator procedures is a requirement that should not be minimized.

Anchor
additions
additions

REQUIRED ADDITIONS TO SLC CONTROL SYSTEM

...

  1. SQL script and other munging to get from Oracle db description of geometry and devices to a lattice description in an XAL input file.
  2. The XAL tracker. An XAL application which tracks the lattice and produces a 2nd XAL file containing the twiss parameters for each device, plus other per-element parameters.
  3. Add acceleration and solenoid elements to XAL.
  4. Check XAL's linear algebra support. Done: it uses JAMA -see ref.
  5. Create a Skills Matrix for applications, eg, XML and associated technologies (DOM, XSL etc), Oracle and associated technologies (SQL, PHP, persistence).

Anchor
qs
qs

QUESTIONS

This section lists outstanding questions. Questions that have been answered are listed below in Answered Questions.

Questions about requirements

  1. Anchor
    AnchorverifyAFSclientverifyAFSclient Verify AFS client for Windows is not workable. AnchorbestWindowsX11bestWindowsX11 Find best performing Windows X11 server for JFC/Swing clients.
    Anchor
    q_dbgeoonly
    q_dbgeoonly
    How complex is the conversion of Oracle DB to XAL lattice? Does the db contain enough to emit a lattice? Mark Woodley warns that there are probably many things necessary in the XAL lattice which need not be in the DB (marker points), and many things in the DB which should not be in the lattice. This latter class includes things like dummy BPMs, so not simply the case that everything of a given class should be in the lattice. People change the z of things in the DB. May be a good idea to have a "Skeleton" XAL file (maybe processed by xsl/php).
  2. Anchor
    kmodtobdes
    kmodtobdes
    Verify there is no "KMOD to BDES" requirement?
    1. That is, is there a Lattice Diagnostics requirement for online applications, and a need to keep magnet "fudge factors"?
    2. Which XAL applications allow one to update the EPICs magnet k-values after a successful model run?
  3. Does XAL really not model acceleration? If not how is it useful for SNS?
  4. Verify that XAL does not model a plane coupled system.
  5. Does XAL offer matrix manipulation, linear algebra and fitting adequate for the LCLS? Ans: yes, uses JAMA.
  6. How long does XAL take to parse an XAL beamline? It has to build a DOM tree, which can't be negligible. Since that is a requirement of every XAL application at initialization its an important performance bottleneck.
  7. Anchor
    q_numbeamlines
    q_numbeamlines
    How many beamline descriptions should there be?
  8. What is the canonical list of XAL physics apps?
  9. Does LCLS need SVD based orbit minimization? Is there an orbit minimization in XAL?

...

R&D

This section outlines some constrained R&D we should do to check architecture decisions.

Matlab

...

  1. Are we going to offer user-level scripting for automating complex procedures such as "turning on the Injector" (per Galayda)? see R&D scripting.
  2. Anchor
    q_slchist
    q_slchist
    Will SLC history data be streamed to the EPICS archiver and then turned off? This depends on whether there is an adequate viewer.

Questions about "Systems"

  1. Anchor
    verifyAFSclient
    verifyAFSclient
    Verify AFS client for Windows is not workable. If an AFS client for
  2. Anchor
    bestWindowsX11
    bestWindowsX11
    Find best performing Windows X11 server for JFC/Swing clients.

Anchor
rnd
rnd

R&D

This section outlines some constrained R&D we should do to check architecture decisions.

Matlab

Anchor
inv_at
inv_at

Accelerator Toolkit (AT)

See what applications are available in Accelerator Toolkit (AT). Use of matlab for applications depends on desirability of the functionality offered, responsiveness of the application in the context of a large accelerator's operations, and importantly, ability to secure licensing with manageable cost/benefit.

Specifically: Do AT applications appear to offer support for configurations necessary in a large machine (e.g. choosing from available bpms and correctors in an orbit correction package). How does it handle errors? Are bpm statuses communicated to the user interface and graphics?

Matlab Plotting

Can Matlab be used as a general purpose charting engine? This would be very much more desirable than XAL's charting if having charted the data for a plot one could easily "drop into matlab" to further analyse the data just plotted.

Anchor
inv_fs
inv_fs

Filesystem and distributing software releases

Should the production executables (XAL java jar files etc) and configuration files be on AFS or NFS? Operative points in the question are that both XAL and Eclipse require that the user specify a "workspace" at startup, which defines their particular configuration. This workspace must always be writable, so AFS token expiry after 25 hrs use, can be problematic. Simplest solution is makefile "install" to a mounted NFS directory - but that directory has to be accessible by all head nodes (that is, all linux desktops running the applications).

Eclipse includes two software distribution mechanisms: first requires "pull" (the user initiates the update), 2nd is Java Web Start, which checks for updates at predefined intervals.

Anchor
scripting
scripting

Scripting

Are we going to attempt to provide a scripting interface to the applications themselves? Clearly one can "script" EPICS and AIDA data exchanges, from say matlab, but this kind of scripting does not include canned user-level procedures as offered through the applications' APIs because the applications themselves incldue a lot of code which will not be available through the EPICS/AIDA interfaces. User level GUI scripting may be possible by direct interface to X11

...

Accelerator Toolkit (AT)

See what applications are available in Accelerator Toolkit (AT). Use of matlab for applications depends on desirability of the functionality offered, responsiveness of the application in the context of a large accelerator's operations, and importantly, ability to secure licensing with manageable cost/benefit.

Specifically: Do AT applications appear to offer support for configurations necessary in a large machine (e.g. choosing from available bpms and correctors in an orbit correction package). How does it handle errors? Are bpm statuses communicated to the user interface and graphics?

Matlab Plotting

Can Matlab be used as a general purpose charting engine? This would be very much more desirable than XAL's charting if having charted the data for a plot one could easily "drop into matlab" to further analyse the data just plotted.

...

Filesystem and distributing software releases

Should the production executables (XAL java jar files etc) and configuration files be on AFS or NFS? Operative points in the question are that both XAL and Eclipse require that the user specify a "workspace" at startup, which defines their particular configuration. This workspace must always be writable, so AFS token expiry after 25 hrs use, can be problematic. Simplest solution is makefile "install" to a mounted NFS directory - but that directory has to be accessible by all head nodes (that is, all linux desktops running the applications).

Eclipse includes two software distribution mechanisms: first requires "pull" (the user initiates the update), 2nd is Java Web Start, which checks for updates at predefined intervals.

Anchor
details
details

DETAILS

...

  1. XAL http://www.sns.gov/APGroup/appProg/xal/xal.htm
  2. XML entry in Wikipedia http://en.wikipedia.org/wiki/XML
  3. Anchor
    ref_latticefiles
    ref_latticefiles
    LCLS lattice files http://www-ssrl.slac.stanford.edu/lcls/linac/optics/
  4. JAMA http://math.nist.gov/javanumerics/jama/
  5. Anchor
    ref_XAL_applications
    ref_XAL_applications
    http://www.diamond.ac.uk/CMSWeb/Downloads/diamond/Events/EPICS/XAL_Applications_Correlator_Framework.pdf

...

Anchor
answers
answers

ANSWERED QUESTIONS

This section lists questions that have been answered since the birth of this document.

...