Versions Compared

Key

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

...

It's a common question to ask what are the rates that the accelerator can generate.  The table below lists the rates that are natural for the accelerator.  These are the periodic rates that repeat exactly at the ~0.98 second period of the timing/MPS system.  Of course, we can generate other rates as well that aren't exactly periodic by doing the sort of thing you described - dropping shots or irregular sequences.  This has been useful for the OPCPA laser development in deciding the exact frequencies they will support.

If a base accelerator rate is chosen (e.g. 33kHz) then other rates having the same prime factors as the accelerator rate are allowed, according to this table:

(python3_env) [weaver@lcls-dev3 lcls2-timing-patterns]$ python lcls/fixed_rate_table.py

Matt provides this example of how you can determine if various trigger rates overlap: 16kHz (16581 in the table) has factors (2,2,2,7).  102Hz has factors (2,2,5,5,7,13).  It's missing one factor of 2, so it only overlaps 1/2 of the time.  51Hz has (2,2,2,5,5,7,13), so it contains all the factors from 16kHz and thus overlaps 100%.

If a base accelerator rate is chosen (e.g. 33kHz) then other rates having the same prime factors as the accelerator rate are allowed, according to this table:

(python3_env) [weaver@lcls-dev3 lcls2-timing-patterns]$ python lcls/fixed_rate_table.py

 rate, Hz  | factor | factors
 rate, Hz  | factor | factors
 928571          1   1
 464285          2   (2,)
 232142          4   (2, 2)
 185714          5   (5,)
 132653          7   (7,)
 116071          8   (2, 2, 2)
  92857         10   (2, 5)
  71428         13   (13,)
  66326         14   (2, 7)
  58035         16   (2, 2, 2, 2)
  46428         20   (2, 2, 5)
  37142         25   (5, 5)
  35714         26   (2, 13)
  33163         28   (2, 2, 7)
  26530         35   (5, 7)
  23214         40   (2, 2, 2, 5)
  18571         50   (2, 5, 5)
  17857         52   (2, 2, 13)
  16581         56   (2, 2, 2, 7)
  14285         65   (5, 13)
  13265         70   (2, 5, 7)
  11607         80   (2, 2, 2, 2, 5)
  10204         91   (7, 13)
   9285        100   (2, 2, 5, 5)
   8928        104   (2, 2, 2, 13)
   8290        112   (2, 2, 2, 2, 7)
   7428        125   (5, 5, 5)
   7142        130   (2, 5, 13)
   6632        140   (2, 2, 5, 7)
   5306        175   (5, 5, 7)
   5102        182   (2, 7, 13)
   4642        200   (2, 2, 2, 5, 5)
   4464        208   (2, 2, 2, 2, 13)
   3714        250   (2, 5, 5, 5)
   3571        260   (2, 2, 5, 13)
   3316        280   (2, 2, 2, 5, 7)
   2857        325   (5, 5, 13)
   2653        350   (2, 5, 5, 7)
   2551        364   (2, 2, 7, 13)
   2321        400   (2, 2, 2, 2, 5, 5)
   2040        455   (5, 7, 13)
   1857        500   (2, 2, 5, 5, 5)
   1785        520   (2, 2, 2, 5, 13)
   1658        560   (2, 2, 2, 2, 5, 7)
   1485        625   (5, 5, 5, 5)
   1428        650   (2, 5, 5, 13)
   1326        700   (2, 2, 5, 5, 7)
   1275        728   (2, 2, 2, 7, 13)
   1061        875   (5, 5, 5, 7)
   1020        910   (2, 5, 7, 13)
    928       1000   (2, 2, 2, 5, 5, 5)
    892       1040   (2, 2, 2, 2, 5, 13)
    742       1250   (2, 5, 5, 5, 5)
    714       1300   (2, 2, 5, 5, 13)
    663       1400   (2, 2, 2, 5, 5, 7)
    637       1456   (2, 2, 2, 2, 7, 13)
    571       1625   (5, 5, 5, 13)
    530       1750   (2, 5, 5, 5, 7)
    510       1820   (2, 2, 5, 7, 13)
    464       2000   (2, 2, 2, 2, 5, 5, 5)
    408       2275   (5, 5, 7, 13)
    371       2500   (2, 2, 5, 5, 5, 5)
    357       2600   (2, 2, 2, 5, 5, 13)
    331       2800   (2, 2, 2, 2, 5, 5, 7)
    285       3250   (2, 5, 5, 5, 13)
    265       3500   (2, 2, 5, 5, 5, 7)
    255       3640   (2, 2, 2, 5, 7, 13)
    212       4375   (5, 5, 5, 5, 7)
    204       4550   (2, 5, 5, 7, 13)
    185       5000   (2, 2, 2, 5, 5, 5, 5)
    178       5200   (2, 2, 2, 2, 5, 5, 13)
    142       6500   (2, 2, 5, 5, 5, 13)
    132       7000   (2, 2, 2, 5, 5, 5, 7)
    127       7280   (2, 2, 2, 2, 5, 7, 13)
    114       8125   (5, 5, 5, 5, 13)
    106       8750   (2, 5, 5, 5, 5, 7)
    102       9100   (2, 2, 5, 5, 7, 13)
     92      10000   (2, 2, 2, 2, 5, 5, 5, 5)
     81      11375   (5, 5, 5, 7, 13)
     71      13000   (2, 2, 2, 5, 5, 5, 13)
     66      14000   (2, 2, 2, 2, 5, 5, 5, 7)
     57      16250   (2, 5, 5, 5, 5, 13)
     53      17500   (2, 2, 5, 5, 5, 5, 7)
     51      18200   (2, 2, 2, 5, 5, 7, 13)
     40      22750   (2, 5, 5, 5, 7, 13)
     35      26000   (2, 2, 2, 2, 5, 5, 5, 13)
     28      32500   (2, 2, 5, 5, 5, 5, 13)
     26      35000   (2, 2, 2, 5, 5, 5, 5, 7)
     25      36400   (2, 2, 2, 2, 5, 5, 7, 13)
     20      45500   (2, 2, 5, 5, 5, 7, 13)
     16      56875   (5, 5, 5, 5, 7, 13)
     14      65000   (2, 2, 2, 5, 5, 5, 5, 13)
     13      70000   (2, 2, 2, 2, 5, 5, 5, 5, 7)
     10      91000   (2, 2, 2, 5, 5, 5, 7, 13)
      8     113750   (2, 5, 5, 5, 5, 7, 13)
      7     130000   (2, 2, 2, 2, 5, 5, 5, 5, 13)
      5     182000   (2, 2, 2, 2, 5, 5, 5, 7, 13)
      4     227500   (2, 2, 5, 5, 5, 5, 7, 13)
      2     455000   (2, 2, 2, 5, 5, 5, 5, 7, 13)
      1     910000   (2, 2, 2, 2, 5, 5, 5, 5, 7, 13)

...

Another important method (used especially for low rate 1,10,100Hz triggers that are in-synch with the beam) is to use an event-code generated by ACR (see Control Sequence Bit for currently supported event codes). NOTE:  cpo thinks event codes like "SC_SXR BSA" (e.g. 100Hz is eventcode 30) on that page would be commonly used by the hutches. NOTE: We have seen empirically that these event codes do not include a destination setting, so it is necessary to also select destination 4 with the "select" field set to "inclusive" with them.  Matt writes: "Event code 30 will follow the offset used by SXR, but it isn't aware of MPS mitigating the beam rate.  We use the destination 4 filter to also pickup when MPS has inhibited the beam."

Some details:

  • there are 288 bits of "event codes" available
    • some have well-defined meanings, like the low-rate ones described above (in progress)
    • 16 highest bits are hutch specific for sequences (272-287)
    • DAQ readout groups are "extra bits" included at end of timing frame
  • timing frames have "destinations": e.g. bykiks, and bykikh both go to "bsy" dump
  • unlike LCLS1 we will not be using event-codes to understand when bykiks has fired: use destinations instead, in particular DumpBSY for "dropped" or "background" shots
  • some devices reference to "sequencer engineer number" and "sequence bit number" instead of "eventcode".  The formula to convert between the two: eventcode=(sequenceEngine#<<16 | sequencerBit#).

...

self.pv_xpm_part_base = pv_base + ':XPM:%d:PART:%d' % (xpm_master, platform)
self.pva.pv_put(self.pva.pvStepEnd, self.readoutCumulative)

Generating a Low Rate Sequence

From Matt.

periodicgenerator --period 1820000 --start_bucket 91000 --description 'Example 0.5Hz sequence' > 0.5Hseq.py
(ps-4.6.1) bash-4.2$ seqplot --seq 0:0.5Hseq.py --time 4.0
eng 0 fn 0.5Hseq.py
0: FixedRateSync(929kHz) # occ(2048)
1: Branch to line 0 until ctr3=43
2: FixedRateSync(929kHz) # occ(888)
3: ControlRequest word 0x1 [0]
4: FixedRateSync(929kHz) # occ(2048)
5: Branch to line 4 until ctr3=843
6: FixedRateSync(929kHz) # occ(488)
7: Branch unconditional to line 0
start, stop: 0,3640000
engine exited request 0  instr 1  returnaddr None  frame 3642047  ccnt [0, 0, 0, 0]

Should show eventcode 272 at bucket 91,000 and every 1,820,000 (2 seconds) after that.

Image Added