Versions Compared

Key

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

...

Online Analysis Tutorial - presented at SSRL/LCLS User's conference, 20142014 

Online Analysis Design

Online Analysis Design - Presentation by Matt for January 2012 DAQ Meeting

...

 
Ebeam and Ipimb data view details


  

Correlation plots between 2 scalar data object

...

Some speciall function buttons on the calculator

Button

Function

a ∫ b

Integrate from a to b

a ⨍ b

1st moment from a to b

a ⨎ b

2nd moment from a to b

a ↔ b

Samples(bins) from a to b

Anchor
AMI plugin
AMI pluginWriting a plug-in to the Online Monitoring GUIWriting a plug-in to the Online Monitoring GUI

Writing a plug-in to the Online Monitoring GUI

...

The module names will also appear in the 'Event Filters' section of the online monitoring for selection as global filters, and any added variable names will appear in the 'Env' section of the monitoring for use as inputs to other plots. This should allow users to improve the generic monitoring for infrequent or specially classified events. It is also a testbed for how users may be able to reduce recorded data volumes, if so desired.


 

Anchor
Writing a AMI user applicationWriting a
AMI user application

Writing a user application that reads from shared memory

...

anchorOnline Monitoring and Simulation Using FilesOnline Monitoring and Simulation Using Files

If you wish to write a user application that reads from shared memory, it is recommended that you get in touch with the hutch point-of-contact for assistance.  AMI and psana can both read from shared memory and most analyses can be accomplished within one of the two frameworks.

...

The shared memory server can be restarted with a command similar to this:


/reg/g/pcds/dist/pds/tools/procmgr/procmgr restart /reg/g/pcds/dist/pds/cxi/scripts/cxi.cnf monshmsrvpsana


The last argument is the name of the process which can be found by reading the .cnf file (the previous argument).  This command must be run by the same user/machine that the DAQ used to start all its processes (e.g. for CXI it was user "cxiopr" on machine "cxi-daq").  If a shared-memory server is restarted, it loses its cached "configure/beginrun/begcalib" transitions, so the DAQ must redo those transitions for the server to function correctly.

To find out the name of the shared memory segment on a given monitoring node, do something similar to the following:


 

[cpo@daq-sxr-mon04 ~]$ ls -rtl /dev/shm
total 74240
-rw-rw-rw- 1 sxropr sxropr 1073741824 Oct 15 15:29 PdsMonitorSharedMemory_SXR
[cpo@daq-sxr-mon04 ~]$

There are shared-memory server log files that are available.   On a monitoring node do "ps -ef | grep monshm" you will see the DAQ command line that launched the monshmserver, which includes the name of the output log file.

Anchor
AMI files
AMI files
Online Monitoring and Simulation Using Files

The online monitoring system will interface the DAQ system to the monitoring software through a shared memory interface. The two sides communicate with each other via POSIX message queues. The DAQ system will fill the shared memory buffers with events which are also known as transitions. The DAQ system notifies the monitoring software that each buffer is ready by placing a message in the monitor output queue containing the index of the newly available event buffer.

...

Sample output from running the above can be found here.

To write your own monitoring software, all you have to do is subclass the XtcMonitorClient class and override the XtcMonitorClient::processDgram() method to supply your own client side processing of the DataGram events in the XTC stream or file supplied by the file server. Below is the example implemented by XtcMonClientExample.cc.

...

The "myana" analysis programs (more info) have a command-line paramater "-L" which directs them to read files still open for writing. This changes the behavior to wait for more data when end-of-file is reached until the end-of-run marker is encountered.

Anchor
XTC playback
XTC playback

XTC playback

...

(a.k.a Offline AMI)

Offline AMI is not yet fully working on S3DF.

There is a DAQ Offline Monitoring There is a DAQ Offline Monitoring program that operates just like the Online Monitoring program except that it includes an additional section at the top of the user interface that allows one to select offline runs stored in directories. To use it, log onto a machine that has access to the xtc directories you would like to use as input data. Then, run:

/reg/g/pcds/dist/pds/ami-current/build/ami-x.x.x-px.x.x/bin/x86_64-rhel7-opt/offline_ami

S3DF: /sdf/group/lcls/ds/daq/ami-current/build/ami/bin/x86_64-linuxrhel7-opt/offline_ami (not working well yet)

where ami-x.x.x-px.x.x current should be the most version in the pds directory (ami-8.2.8-p8.2.4 as of this writing). 

Click the Select button and the program will bring up a "Select Directory" dialog. Use that to navigate to the directory containing the xtc files you are interested in. For example:

...

There are some options that can be specified on the command line. These are listed when the --h option is given:

$ ami/bin/x86_64-linuxrhel7-opt/offline_ami -h

Usage: ami/bin/x86_64-linuxrhel7-opt/offline_ami

         [-p <xtc path>]

...