AidaTLU Satellite#
Name |
AidaTLU |
---|---|
Description |
Satellite for the AIDA-2020 TLU using a Python based control software |
Language |
Python |
Category |
External |
Website |
Description#
The AIDA-2020 Trigger Logic Unit is designed to provide flexible trigger configurations in test beam setups (doi.org/10.48550/arXiv.2005.00310).
The Python-based control software for the AIDA-2020 TLU provides a comprehensive interface for controlling the TLU. The software establishes a connection to the hardware and allows for easy configuration of different trigger setups. Information over each individual trigger signal is saved in a compressed and human-readable HDF5 format.
The satellite connects the AIDA-2020 TLU to the Constellation control and data acquisition framework.
Building#
After installing IPbus, with Python bindings (uhal)
, install the Aida-TLU package with the constellation requirement.
pip install .[constellation]
A more detailed description of the prerequisites can also be found here.
Usage#
Add the chosen cactus library path, where the default installation location is /opt/cactus/
:
export LD_LIBRARY_PATH=<install_location>/lib
You also need to start the control hub:
<install_location>/bin/controlhub_start
Finally, start the satellite with:
SatelliteAidaTLU -g testbeam -n TLU
[!NOTE] The TLU configuration resets during launching and landing. This means DUT interface signals (e.g. clock signals) are disrupted during these transitions.
Parameters#
Configuration |
Description |
Type |
Default Value |
---|---|---|---|
|
(Optional) Generates internal triggers with a given frequency given in Hz |
Integer |
0 |
|
(Required) Specify the operation mode of the DUT interface ( |
List |
None |
|
(Required) Threshold setting of each individual trigger input channel given in V |
List |
None |
|
(Required) Trigger Logic configuration accept a Python expression for the trigger inputs. The logic is set by using the variables for the input channels |
String |
None |
|
(Optional) TLU can trigger on a rising or falling edge. Set to |
String |
|
|
(Required) Stretches each individual trigger input by a given number of clock cycles (corresponds to |
List |
None |
|
(Required) Delays each individual trigger input by a given number of clock cycles (corresponds to |
List |
None |
|
(Optional) Enable the LEMO clock output. |
String |
False |
|
(Required) Sets the four PMT control voltages in V |
List |
None |
|
(Optional) Specify a custom clock configuration. If no path is provided the TLU uses the default configuration. |
String |
|
Configuration Example#
An example configuration for the AIDA-TLU satellite which could be dropped into a Constellation configuration as a starting point.
[satellites.AidaTLU]
internal_trigger_rate = 0
dut_interfaces = ['aida', 'aida', 'eudet', 'off']
trigger_threshold = [-0.1, -0.1, -0.1, -0.1, -0.1, -0.1]
trigger_inputs_logic = 'CH1 and CH2'
trigger_polarity = 'falling'
trigger_signal_stretch = [2, 2, 2, 2, 2, 2]
trigger_signal_delay = [0, 0, 0, 0, 0, 0]
enable_clock_lemo_output = false
pmt_power = [0.8, 0.8, 0.0, 0.0]
Metrics#
The following metrics are distributed by this satellite and can be subscribed to. Timed metrics provide an interval in units of time, triggered metrics in number of calls.
Metric |
Description |
Value Type |
Metric Type |
Interval |
---|---|---|---|---|
|
Trigger rate after trigger logic (before DUT veto) in Hertz |
Integer |
|
1s |
|
Outgoing trigger rate to the devices (after DUT veto) in Hertz |
Integer |
|
1s |
|
Total number of pre veto trigger |
Integer |
|
1s |
|
Total number of post veto trigger |
Integer |
|
1s |
|
Total number that trigger input 1 received a valid signal |
Integer |
|
1s |
|
Total number that trigger input 2 received a valid signal |
Integer |
|
1s |
|
Total number that trigger input 3 received a valid signal |
Integer |
|
1s |
|
Total number that trigger input 4 received a valid signal |
Integer |
|
1s |
|
Total number that trigger input 5 received a valid signal |
Integer |
|
1s |
|
Total number that trigger input 6 received a valid signal |
Integer |
|
1s |
Data#
This satellite sends the raw data read from the TLU FIFO, consisting of six 32bit words with the following data:
event type:
(word0 >> 28) & 0xf
trigger flag, input 0:
(word0 >> 16) & 0x1
trigger flag, input 1:
(word0 >> 17) & 0x1
trigger flag, input 2:
(word0 >> 18) & 0x1
trigger flag, input 3:
(word0 >> 19) & 0x1
trigger flag, input 4:
(word0 >> 20) & 0x1
trigger flag, input 5:
(word0 >> 21) & 0x1
timestamp:
((word0 & 0x0000ffff) << 32) + word1
fine timestamp, input 0:
(word2 >> 24) & 0xff
fine timestamp, input 1:
(word2 >> 16) & 0xff
fine timestamp, input 2:
(word2 >> 8) & 0xff
fine timestamp, input 3:
word2 & 0xff
fine timestamp, input 4:
(word4 >> 24) & 0xff
fine timestamp, input 5:
(word4 >> 16) & 0xff
event number:
word3