Versions Compared

Key

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

This page describes the process of running an XAL model of the LCLS accelerator, and uploading that model to Oracle, from where it can be accessed by Matlab and Java applications through AIDA.

...

Running and Uploading the Online XAL Model

To run an XAL model, you can use the interactive matlab scripts xalRunModel.m or xalGetModel.m. These can be run directly from matlab, or from lclshome (as described below). The basic process is the same in either case - xalGetModel additionally plots dispersion, betas, and energy.

...

  1. Wiki Markup
    From lclshome -> User Dev Displays panel. !image:lclshome_userdevbtn.jpg|thumbnail!
  2. Wiki Markup
    Run one of the matlab scripts xalRunModel or xalGetModel.
     *xalRunModel* simply runs the model and creates the upload files
     *xalGetModel* is as xalRunModel, but additionally returns ("gets") the model data to your matlab session. It also creates model plots.
    !image:userDevPnl.jpg|thumbnail!
    The following is a run-through of running xalGetModel for the Extant machine. See the full transcript of this example below.   
    !image:xalGetModel.jpg|thumbnail!
    1. Wiki Markup
      *Select a beamline.* For example, select "Cathode to Dump" This runs the LCLS "Full Machine" model, from the LCLS Cathode to the main Dump. See [Why are all models from Cathode to some location|#whysameloc].
      !image:selectabeamline.jpg|thumbnail!
    2. Wiki Markup
      *Select whether to "Run extant machine or design model? (x/d) \[d\]:*". Hit x or d, and RETURN.
       Running the "design" model (choice "d") causes the XAL model to be run with the element setpoint values in the model input files. Those design setpoint values are, [to the extent possible, identical to the MAD design|#modeldiffs]. Running the "extant" model (choice "x") will cause the model execution to first replace the design values of beamline devices, with the actual readback values, as acquired through EPICS and AIDA, prior to running the envelope tracker.  That is, "extant" is equivalent to what was called "DATABASE" in the SLC modelling system; it describes the extant machine at the time the model is run.
      !image:xalGetModelextant|thumbnail!
      *Stages of running the (extant) model are as follows:*
      • Wiki Markup
        *1) "Initial Twiss"* is displayed. Check the initial conditions which will be used for the model run. These are presently taken from the SLC marker point 80. You can check these at any time with AIDAWeb ([MARK:VX80:80//twiss MODE=5|https://seal.slac.stanford.edu/aidaweb/dispatchQuery?Query=MARK%3AVX00%3A80%2F%2Ftwiss+MODE%3D5&Query+Action=Get+Data]; the values are Energy (GeV), psix, betax (m), alphax , etax (m), etax', psiy, betay (m), alphay, etay (m), etay')
        !image:extantinitconditions.jpg|thumbnail!
        If these appear fine, then confirm to continue.
      • 2) "Run LEM 'Lite'". This will calculate and display the fudge factors and predicted energy. When it has completed, check in particular that the final energy at the undulator (see Energy comlumn, and the row of output labelled "BSY") is reasonable, e.g. 9.25 GeV.
        If energy appears fine, then confirm to continue.
      • 3) "Run XAL machine model." This can take up to a minute to execute, so please be patient. When it has completed, if you ran xalGetModel, you should get 3 plots - the dispersion, betas, and energy vs Z. The plots may overlap, and the energy plot is on the bottom, so move the others to check it.
      • 4) "Create MAD patch file". This stage is always entered, you don't need to do anything. It only takes a moment to create these.
      • Wiki Markup
        "Create and upload XML model files to Oracle? (y/n) \[n\]: " If it all looks good, and you want to upload to Oracle, say "y".
      • 5) "Run XML writer." If you said y to create the upload files, you'll now see "Run XML writer." This is where the file containing the model results to be uploaded to Oracle, is created. This also takes half a minute or so.
        When it has completed, you should see that 3 files have been created: E.g.
        Code Block
        /u1/lcls/physics/onlinemodel/xal/xalElements_20090120_115855.xml created
        /u1/lcls/physics/onlinemodel/xal/xalDevices_20090120_115855.xml created
        /u1/lcls/physics/onlinemodel/xal/xalModel_20090120_115855.mat created
        
    3. Upload the XAL model online on the web. When the XML writer has completed, it will spawn a Firefox web browser. The browser should open at the login page of the Oraweb web application that helps you upload a model.

...

    1. .

      Uploading the XAL model files

      After running the models and creating the online model output files, we must upload their data to the Oracle model server. From there the data can be inspected, or retrieved through AIDA.
      At the end of running the model, xalGetModel or xalRunModel should have launched a Firefox browser, open at the web application you use to upload the model into Oracle. The Firefox page should look like this:
      Image Modified
      If you do NOT see this page (and unfortunately, sometimes Firefox does fail to start at the right page) you can use the "XAL Model" tab (see picture) in Firefox to take you to there.
      You can log into the web application at any time at the URL: https://oraweb.slac.stanford.edu/apex/slacprod/f?p=400Image Modified. (See note on supported hosts) You might want to do this to inspect the data
      The password for user name MACHINE_MODEL, is recorded in the physics logbook entry /lclselog/data/2009/02/06.01
      The procedure for uploading the model files into Oracle:
  1. Upload the model files.
    Once you're in the web application you should see "Select Device File" and "Select Elements File". These 2 files (of the 3) created by the above model running procedure must be uploaded to Oracle in unison. When a file has been entered for BOTH of these, you can hit "Submit" at the bottom of the dialog screen to start the process of Upload into Oracle.

      ...

        1. Select the Devices file.
          Hit the "Select Device File" button. You can either enter a full filename by hand, or use the filebrowser, to browse to /mccfs2/u1/lcls/physics/onlinemodel/xal/ and select the Devices file you created in the process above. in our example above this files was named "xalDevices_20090120_115855.xml". (Tip: since there are many files in this directory, hit "Last Modified" twice, to sort the files by date, latest first). Select the xalDevices file you created, and hit the Open icon (with a picture of a folder!) in the filebrowser dialog to make the selection. (It's a bit confusing using the word "Open" to mean "Select" - talk to Oracle about that - they went cheap and used the firefox file selection widget, designed for selecting a file to open, but they use it to mean "select").

      ...

        1. Select the Elements file.
          Hit the "Select Elements File". The filebrowser should open at the right directory - amazing! Hit "Last Modified" twice to sort the files again, and click on the xalElements file you created in step (question) above. Hit "Open".
          You do not need to upload the xalElements file at all.
        2. Enter a comment. Please include 2 items in your comment:
          • Your name, nickname, mark, catchphrase, or other distinguishing refrain from which your personal guilt can be established.
          • The Energy at the undulator predicted in step (question) above!
        3. Wiki Markup
          Hit "Submit".
          The time to upload is about 1 minute! Note that additional time is presently spent creating the screen which echos the upload data, but in fact the model data is available for use as soon as you see the XML Uplod Results table:
          !image:XMLUploadResults.jpg|thumbnail!

      Review the model data.

      Hit the "Run Data" tab to review the uploaded results of any model which has been uploaded, including the last. Hit the little spectacles icon next to a model upload to view the model parameters of each element calculated as part of that model. This interface takes a while to load the data, but it can do it for any uploaded model.
      Alternatively, use AIDA to check the Rmats of the model elements for the latest upload.

      Anchor
      model
      model
      Model Queries

      Aida Query

      Description

      modelRmats//Design.FullMachine

      Latest Design Full Machine (Cathode to Dump) model Rmats for all devices

      modelRmats//Design.CathodeToGunSpect

      Latest Design Cathode to Gun Spectrometer model Rmats for all devices

      modelRmats//Design.CathodeTo135MeVSpect

      Latest Design Cathode to 135 Mev Spectrometer model Rmats for all devices

      modelRmats//Design.CathodeTo52SL2

      Latest Design Cathode to 52 line model Rmats for all devices

      modelRmats//Extant.FullMachine

      Latest Extant (from actual device settings) Full Machine (Cathode to Dump) model Rmats for all devices

      modelRmats//Extant.CathodeToGunSpect

      Latest Extant (from actual device settings) Cathode to Gun Spectrometer model Rmats for all devices

      modelRmats//Extant.CathodeTo135MeVSpect

      Latest Extant (from actual device settings) Cathode to 135 Mev Spectrometer model Rmats for all devices

      modelRmats//Extant.CathodeTo52SL2

      Latest Extant (from actual device settings) Cathode to 52 line model Rmats for all devices

      Model Notes

      Anchor
      whysameloc
      whysameloc
      Why are all models from Cathode to some location?

      ...