Skip to content

New data converter and analysis scripts

Daniel Spitzbart requested to merge data_dump into master

Draft of a more scalable ETROC2 data converter and simple analysis script.

The workflow will basically be:

  • Set up and configure ETROC / RB with test_ETROC script
  • Start DAQ with a defined run number for a certain time
  • Send triggers / qinj pulses

Right now, the DAQ script daq.py can also set up the KCU-internal L1A generator (however, automatic charge injection generation is not yet tested / fully implemented).

Internal L1A mode

Set the ETROC into internal data generation mode:

python3 test_ETROC.py --test_chip --hard_reset --module 1 --internal_data

Then run the DAQ script with internal L1A generator, e.g. for 10s with a L1A rate of 10kHz like

python3 daq.py --run_time 10 --l1a_rate 10000 --run 123

This will produce an output_run_RUN_time_TIMESTAMP.dat file, which can be converted into awkward array / json format with

ipython3 -i data_dumper.py -- --input output_run_123_time_TIMESTAMP

Finally, plots can be made with

cd analysis
ipython3 -i timing_plot.py -- --input output_run_123_time_TIMESTAMP

External L1A

Set the ETROC into internal data generation mode:

python3 test_ETROC.py --test_chip --hard_reset --module 1 --internal_data

Start the DAQ script in the background and set the internal L1A generator to 0, for a run that lasts 200s.

python3 daq.py --run_time 200 --l1a_rate 0 --kcu 192.168.0.10 --run 129 &

Send 1000 triggers in short spills, then wait until 10s total have passed before starting the next spill, for 15 times.

python3 qinj_trigger.py --kcu 192.168.0.10 --cycle_time 10 --cycles 15 --trigger --pulses 1000

Charge injection

Set the ETROC into internal data generation mode:

python3 test_ETROC.py --test_chip --hard_reset --module 1 --qinj

Start the DAQ script in the background and set the internal L1A generator to 0, for a run that lasts 200s.

python3 daq.py --run_time 200 --l1a_rate 0 --kcu 192.168.0.10 --run 129 &

Send 1000 triggers in short spills, then wait until 10s total have passed before starting the next spill, for 15 times.

python3 qinj_trigger.py --kcu 192.168.0.10 --cycle_time 10 --cycles 15 --pulses 1000

Meta data storage

Tbd. Should be implemented into the daq.py script whenever a run finishes. Planning to dump the entire ETROC configurations.

Edited by Daniel Spitzbart

Merge request reports