Versions Compared

Key

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

...

  • Giacomo is doing spatial, Ryan is spectral (roughly speaking)
    • both are interferometric, so the background we had in LCLS1 is mostly gone, but still have some background from stray light, for example
  • Formula that should work for both:  (S-B)/(S(goose)-B). (note: division is similar to normalized subtraction:  (S-G)/G = (S/G)-1
  • B is different for S and S(goose) (background at time goose is taken)
  • Giacomo thinks we won't need the Goose subtraction/division for 80% of the experiments
  • Giacomo will ensure that we run in a regime where (S(goose)-B) is not close to zero
  • sxrx34917 (being analyzed by Giacomo and Stefan Droste).  this data is "zoomed out" in the time dimension, but will be more zoomed-in for LCLS-II.
  • S(goose) comes from moving the laser out of the time window, and is done "offline" according to Giacomo every few hours
  • Giacomo wants a fit to the minimum of dI/dt (derivative of I-B) to a parabola
  • Giacomo thinks that the feedback will be slower (millisecond level).  Contradicts what we learned before where Joe Frisch was going to do fpga stuff with the laser-locking system
  • algorithm should be same for spatial/spectral
  • Giacomo wants a way to look at S-Goose when the timing edge is out of the window.  Tells them if it's on the "right" or the "left".
  • Questions for Giacomo:
    • the edge looks big in sxrx34917, do we definitely need to divide? Answer: no, as long as we can set an ROI.  i.e. don't need
    • does the goose contain background from stray light, for example?  Answer:  goose is the pump laser delayed off the end of the camera image
    • is B just pedestal, or does B include laser-pump?  If it's laser-pump, do we need to use IIR to compute B?  Answer:  B is remaining background (same as LCLS-I) not eliminated by interferometric approach.
    • do we use the same B in the numerator/denominator?  Answer: no

Conversation with Ben Reese (2/13/20)

feb fpga version on feb. 13 2020:
ClinkFebPgp2b_1ch built Tue 16 Jul 2019 10:39:15 AM PDT by ruckman on rdsrv222

_TimeToolKcu1500Root.py has register settings
https://github.com/slaclab/lcls2-timetool/blob/master/software/config/config_20200207_152212.yml

ConfigureXpmMiniSim
TimingRx->TimingPhyMonitor->UseMiniTpg (selects minitpg)
(check clock freq's under TimingPhyMonitor)
switching to real timing need an xpm txreset: see this as RxClkFreq not being the same at TxClkFreq
pipelinedepthfids=90
config_l0_select_ratesel=0x7
7 = 1Hz
5 or 4 is 100Hz
confg_l0_select_enabled=1 starts triggers
TriggerEventManager->TriggerEventBuffer[0]
- has l0 counts
- has xpmpause/xpmoverflow (too much data). xpmoverflow is a sign backpressure not working well enough: reduce pausethreshold. xpmoverflow is latched version of fifooverflow. permanently latch deadtime. needs a clearreadout to reset.
- missing clearreadout going to front end board
- pausethreshold sets when to send deadtime to XPM
XpmMessageCount increments @1MHz
clinkfeb[0]->->clinktop->trigcontrol[0] has a trigger rate
TriggerEventManager->TriggerEventBuffer[0]->masterenable enables triggers going to frontend
TriggerEventManager->TriggerEventBuffer[0]->eventbufferenable enables the fifo that receives the timing frames (and sends the\
m to the batcher eb)
mostly masterenable/eventbufferenable should go together?
eventbufferenable first, masterenable second

xpmmini is only partition(rog) 0.

to switch to realxpm:
- Kcu1500Hsio->TimingRx->ConfigLclsTimingV2
- toggle UseMiniTpg to false

watch kcu1500hsio->timingrx->timingframerx->RxDown (resets to 0 on ConfigLclsTimingV2, latches when link drops)

todo:
- clear readout (workaround TimeToolKcu1500->Application->AppLane[0]->EventBuilder->Blowoff)
- trigger 10us feedback
- edge calculation