Faster Scan Routines
This MR is related to the discussion started in #309 (closed). The addition of TLU trigger words upon changing the scan param id, in combination with a tlu_trigger_number to scan_param_id table in the raw_data.h5 file eliminates a lot of waiting times in higher level scans. The limiting factor in accelerating the scans even further is the slowness of a stabilizing capacitance between the VCAL_HIGH and ground. Whenever the capacitance is not present (via desoldering, wafer probing, RD53B SCC, etc.) The masking and vcal injection loops can be reversed and the speed increases even further.
The current benchmark:
-
Old Threshold scan: 153 Seconds
-
New Threshold scan (safe): 141 Seconds
-
New Threshold scan (no cap): 113 Seconds
-
--> Realized speed gain ~10%.
-
--> Possible speed gain ~40%.
This MR has therefore modified:
- The firmware, to send a pulse whenever the firmware command module starts writing a sequence.
- The scan_base.py to implement the mapping table from ext_trigger_id to Scan_param_id.
- The analysis to reconstruct the scan_param_id based on the new mapping table (if present).
- The scan_threshold.py routine to activate the external_trigger_id, lower injection latency and easy loop change between vcal and mask steps.
Further more the variable trigger function from https://gitlab.cern.ch/silab/bdaq53/tree/injection_speed in plotting.py, analysis.py and rd53a.py has been included.
In addition to that the latency in inject_analog_single has been modified to match 20kHz.
Also this closes #144 (closed)