Overview

The beamtime is taking place at MFX. The detector being tested is the ePixHR v2 ASIC. While the detector is installed at MFX, the detector will be run from the RIXS DAQ. There are 5 primary objectives for this beamtime:

  1. Evaluate if MFX can be used as a testing and calibration beamline for the ePixHR and ePixM detectors;
  2. Can we accurately measure and characterise the transfer window (and CompEnOn windows) for these faster detectors, and do they stay the same as we change the run trigger (later on we can not do these measurements at the intended speeds);
  3. Do we see any ghosting;
  4. Are there any differences in the detector response (linearity, switching, gain) when we run at different RT speeds (especially for the calibrations), i.e trigger scheme 1; and is the detector response the same if we have a set RT and change the DT, i.e. trigger scheme 2;
  5. How is the switching behaviour and can these detectors be accurately calibrated using our previous calibration schemes?

To do:

  1. scan user.start_ns to find the integration window (RT=DT=120Hz);
  2. Compare timing scan RT=120 and RT = 2400;
  3. Evaluate the CompEnOn window and how it changes;
  4. Check for persistence;
  5. Evaluate detector behaviour (linearity, gains, and switching) at different RT (RT = 4920Hz vs RT = 2400; both DT = 120Hz) and for different run modes (add RT = 2400Hz, but with DT = 360 Hz and compare the two). The first shows if we can just change run trigger to match the daq trigger without any problems with the calibrations; the second if we can calibrate the detector at one speed and then use that calibration for the other allowed DAQ trigger rates (DT= not RT; this mode allows us constantly to run the detector at the same speed and make the thermal stability optimum).


Beamtime prep list:

The following beamtime preparation division was discussed:



taskdue dateownercommentStatus
installationInstall a mounting bracket and stands8-OctKoerber, Conny, Kaz
X

install detector13-OctKoerber, Conny, Kaz


Install wave 8 diodes and oscilloscope setup13-OctConny, KazWe might need new cables if we need to reach all the way back to the spent beam location.

Ensure we can run the detector from MFX control room8-OctConny, Kazaccess to RIX for Bhavna and Conny

ensure we can hold bias on the detector8-OctConny, Kaz
X
software and scriptingensure we can run our standard visualisation scripts for the beamtime13-OctPhilip, Bhavna, Xavierlinearity, timing, single photon, ROI finding done; persistence, extracting 5 pedestals, doing full single photon analysis, plotting wave-8 (data makes sense, can't plot yet).

Ensure we can run the basic DAQ scanning scripts13-OctPhilip, Bhavna, Xavierpedestal (to be checked, getting applied), timing (user.start_ns; looks good), timing ACQ+RO (data works, need to understand the values), timing R0 (values unclear).

Ensure we can run the AMI13-OctPhilip, Bhavna, XavierPhilip check with O'Grady;

Train new people in visualisation script13-OctPhilip, Bhavna, XavierXavier and Bhavna to set up meetting and train.
Configurations and administrationEnsure we have the correct configurations and yml files loaded13-OctDionisioFollow up with Dionisio.

Follow up to get an experiment folder, and people have access to remote into RIXS DAQ13-OctConnySilke about getting an experiement set up (Conny)

Staffing schedule11-OctConnyChech about extra staff from TID.

Negotiate final shift with Sebastien11-OctConny17th, Philip might have conflict with MEC beamtime (to be confirmed);
Longer termGet RS and Keithley IOC's and controlls so we can remote control them from the hutch and not need access

Bring up at the next CDS meeting; R&S has Jira ticket, bring up Keithley later.


Proposed beamtime staffing:

14-Sep-23time slotstaff
shift 16pm-1amDionisio, Kaz, Philip, Gabriel
shift 211pm-6amConny, Xavier, Bhavna, Julian, Christos

Measurement plan

Measurementplan v3(1).xlsx

Detector timing (here RT = not DT) and relevant registers:

using the user.ns_delay register the timing will shift as seen below (in case we need to shift the timing to hit the pulse):

additionally, there are registers to shift the run and daq triggers separately (RunTriggerDelay and DaqTrigger_delay) - verify with Matt that this is how it works.

If we run the triggers so that Run trigger (RT) is not the same as DAQ trigger (DT), then for a set RT the following DAQ triggers are allowed (based on the machine clock):

Allowed ACQ trigger rates for set Run trigger rate(2).xlsx

These have been calculated using the following Matlab script:

ePixHR_allowed_ACQ_triggers.m

Detector readout cycle and relevant registers:

The default R0 period should be 12 us (1200); the default ACQ period should be 24 us (2400). R0delay should be kept as small as possible. The Serdes clock for the v2 of the ASIC is 260MHz, for v4 of the ASIC 320MHz.


Get all relevant register settings from Dionisio!


Readout time as a function of Serdes clock:


Description of the LCLS-II DAQ, the GUI interfaces, and how to set the Run trigger and DAQ trigger:

How to launch the LCLS-II DAQ for the ePixHR in the ASC, and the windows that show up when launching the DAQ is described here: 1.3.2 Running detector in ASC using LCLS-II DAQ. Hopefully it will be very similar from the RIXS DAQ during the beamtime. In its current configuration, the run trigger and daq trigger are under group 6 and 2 respectively as can be seein in the image below:

Fig. Groups controlling runtrigger and daq trigger. group 6 = runtrigger; group 2 = DAQ trigger.


Which event code these are looking at can be changed for group 6 by changing the event code field under the Group 6 tab. For group 2, you have to go in under the edit button, choose the timing object, and under user, Cu, group2_code change the event number it is pointing to as can be seen in the figure below:

Fig. where you change the event code for group 2.


The standard event codes are:

evcode 40 = 120Hz

evcode 41 = 60Hz

evcode 42 = 30Hz

evcode 9 = 360Hz

To be able to set the runtrigger and daq trigger to what values we would want, Matt has made a script for us that allows us to program event code 272 and 273. The script is called seq_multiply.py. This program takes the targeted frequency as an input as well as a divisor:

python seq_multiple.py --rate 4920 --div 41

the code above would program event code 272 to be 4920 Hz and eventcode 243 to be 120Hz, which can then be pointed to by the groups above to set the desired run and daq triggers.


How to load in yml files to change settings and SERDES rate in ASC:

In case it is the same at the beamtime, the following is how this is done at the ASC:

Full sets of register settings can be loaded into the detector without the need to change each register manually as described in Appendix A. Relevant yml files have so far been provided by dionisio to change between different Serdes frequencies and symmetrical and assymetrical baseline and signal integration windows. The yml files are loaded in using a script that was provided by Matt Weaver and can be found under the scripts folder. The script is epixhr_config_from_yaml_set.py. All parameters for this script is set internally, and the script is run in the command line as python script is epixhr_config_from_yaml_set.py.

To change the yml files being loaded into the detector, the user has to 1. specify the path from where the yml will be taken; 2. which yml files correspond to a specific handle, and what handle should be loaded. This is done on line 6 for the path, between line 20 and 106 for what files correspond to what handle, and line 112 for which handle to load in. The lines can be seen below:

Fig. How to set the variables in the script to load specific settings incl. SERDES rate.

Notes from beamtime:

Relationship between groups, runcodes:

DAQ triggerRun trigger
code 281code 280
group 2 (Cu linac)group 6 (DAQ:NEH)



For timing scans bld has to be out (remove from partition).

For intensity scans it has to be in (this is wave-8).

########## if not running DT and RT at 120Hz #################

bld + epics - group 5 (has to be set to 137)

epixHR - group 3 (has to be set to 281)

timing - group 2 (has to be set to 280)

start_ns has to be 14,000.

2400/360 - seq_epixhr --rate 2400 --f360 --tgt 0.834e-3 (has to be run on drp-srfc-mon001)

2400/120 - seq_epixhr --rate 2400 --tgt 0.834e-3 (has to be run on drp-srfc-mon001)

3600/120 - seq_epixhr --rate 3600 --tgt 0.834e-3 (has to be run on drp-srfc-mon001)


######### if running DT and RT at 120Hz###################

for 120 120 all groups 2 (has to be set to 40) in partition.

start_ns = 845000

120/120 - group 2 for all, group 6 to event code 40;


for timing scans:

epixhr_timing_scan --linear 2000 40000 2000 -- events 7200 --record 1 (run trigger above 120)

epixhr_timing_scan --linear 800000 880000 2000 -- events 1200 --record 1 (run trigger for 120)


For intensity scan:

mfx3 t get to hutch python

attenutaor_scan_single_run.


Pedestal script

epixhr_pedestal_scan --record 1

Matts instruction on running the Frankenstein DAQ for second round of beamtimes

Results:

Results from ePixHR detector testing at MFX/RIXS (October-November 2023)

Relevant presentations:

Beamtime 1 logbook:

beamtime ePixHR at MFX 17Sept2023.xlsx

beamtime ePixHR at MFX 14Sept2023.xlsx

BEamtime ePixHR MFX 10_23_2023.xlsx

loggbook_ePixHR_20231117.xlsx

Breakdown of beamtime measurements 10_23_2023:

Breakdown of measurements performed.xlsx

Conny's original testing on the ePixHR detector.

Initial testing of the ePixHR and bringing up the LCLS-II DAQ in ASC v2.pptx

Matt's presentation about the DAQ (video):

https://stanford.zoom.us/rec/share/FeYRRi9eK_mNyxsAxIoRja0oPOgwDML9Yx0eCfwz5NS0OuLgMBBnOCaoIqpUUXkn.ElMZxqMmEJ9pWBEd

GMT20230907-170500_Recording_1988x1118.mp4

Matt's presentation about the DAQ (.ppt):

EpixHR Beam Test in MFX.pptx

Kaz's notes from Matt's presentation:

here

Dionisio's slides from the beamtime:

Timing in an ePixHR detector with LCLS-II timing system.pptx

Testing of the ePixHR v4 camera no. 1 (cant hold more then 80V bias):

ePixHR v4 no. 1 50V bias.pptx

Notes on running the Frankenstein DAQ and analysis priority:

Running the frankenstein DAQ and analysis priority.pptx






  • No labels