Versions Compared

Key

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

Table of Contents

Burst with 1 Slow Andor

...

export EPICS_PVA_ADDR_LIST=172.21.152.78 (allows rix-daq to talk to the XPM, e.g. to program sequences)

...

pvput DAQ:NEH:XPM:3:SeqReset 9

Infinite Sequence With 2 Different Slow Andor Rates

The Matt's higher level way of programming a burst with 2 slow andor rates.  Note that this generates an infinite sequence.  To generate a finite "burst" sequence one needs to use periodicgenerator.py and traingenerator.py above.  The only way to stop a running infinite sequence is to program another sequence.

python ~weaver/lcls2-new/psdaq/psdaq/seq/rixgeneratory.py --periods 1.0 0.01  (units in seconds). generates two  Generates three files beam.py, codes.py and codescodes2.py in the current directory which should be programmed with "seqprogram".

  • beam.py simulates the beam pattern with gaps left for reading out both the fast and slow andor (eventually programmed on the accelerator side)
  • codes.py generates periodic triggers for a low rate andor and a high rate andor, but the high rate andor continues (needlessly) reading out when the beam is stopped for the low rate andor (see next point for solution)
  • codes2.py generates periodic triggers for the high rate andor, but avoids triggering it when the beam is inhibited for the slow andor readout.  because of this it is called "fast gated andor" in codes2.py 

The output of "python tools/seqbrowser.py --seq 0:codes.py 1:codes2.py 3:beam.py --time 4.0" looks like this:

Image Added

Running a standalone daq step-scan (no hutch-python).  The number "9" corresponds to two bits: 9=8+1, or 9=(1<<3) | (1<<0), where 3 and 0 are the two sequence engines that have been programmed with seqprogram above.  The "-g" argument is for the readout groups in the partition (2,5): 36=(1<<5) | (1<<2).

...

In [4]: daq.configure(motors=[sim.fast_motor1],group_mask=36, events=0, detname='andor_dir_0', seq_ctl=['DAQ:NEH:XPM:3:SeqReset',9,'DAQ:NEH:XPM:3:SeqDone'])
INFO     configure - configure: 1 motors
INFO     configure - Found readout group 5 for andor_dir_0.
Out[4]: ({}, {})
In [5]: RE(bp.scan([daq], sim.fast_motor1, -10, 10, 5))matt's new way of setting up bursts (generates beam.py and codes.py)

A hutch-python scan where the sequence runs continuously, recording 1 slow-andor event per step.  In this case the start of the DAQ acquisition in each step is asynchronous to the running sequence.

...