pxar Satellite#
Name |
pxar |
---|---|
Description |
CMSPixel Phase 1 Detector |
Category |
External |
Language |
C++ |
Website |
Description#
The PxarSatellite integrates the pxarCore library with Constellation. It provides the interface functions for the satellite finite state machine to allow integrated data acquisition with other satellites. When running a DAQ with a TBM and multiple ROCs configured, the PxarSatellite will automatically assemble all ROCs found in the readout stream to a module-like pixel plane for both online monitoring and correlation as well as for the conversion to other formats.
All functions provided by pxarCore are supported, including operation of all sorts of PSI46 devices such as analog PSI46V2 ROCs as well as custom-built telescopes using PSI46 devices as telescope planes. Even beam telescopes with several planes consisting of full CMS Pixel modules featuring 16 ROCs each have been successfully operated. The PxarSatellite checks all supplied configuration parameters for consistency and catches exceptions thrown by pxarCore. Error messages are sent via the Constellation logging facilities. This allows to identify improper detector configuration already at initialization stage before the actual data acquisition starts. Important parameters for offline interpretation of the data recorded such as the type and the number of ROCs operated, all DAC parameters as well as the TBM type are written into the begin-of-run (BOR) message in form of tags consisting of a name-value pair. These tags can be read from the stored data files and used for correct interpretation of the data.
Following the paradigm of the Constellation framework, the detector data read during data taking is stored as-is, meaning that no data decoding is performed online prior to storing the data to disk. This has the advantage that possible flaws in the decoding methods do not affect the data taken, but the conversion to other event formats can just be re-run on the raw and unaltered detector data.
For compatibility with the EudaqNativeWriter
satellite, the following message tags are set:
The BOR message tag
eudaq_event
is set to either ofCMSPixelDUT
,CMSPixelREF
,CMSPixelTRP
,CMSPixelQUAD
depending on thedetector
configuration key.The BOR message tag
frames_as_blocks
set to false.The data message tag
trigger_number
is set to the respective message sequence number.The data message tag
flag_trigger
is set totrue
.
Building#
Building requires:
CMake
pkg-config
Constellation v0.3 or newer
If Constellation is not installed in a default system directory such as /usr/local
, the directory needs to be exported in
order to be found by pkg-config
:
export CNSTLN_PREFIX="/opt/constellation"
export PKG_CONFIG_PATH="$CNSTLN_PREFIX/share/pkgconfig:$CNSTLN_PREFIX/lib64/pkgconfig:$CNSTLN_PREFIX/lib/x86_64-linux-gnu/pkgconfig"
Then, the PxarSatellite can be built with CMake:
mkdir build && cd build
cmake .. -DBUILD_CNSTLN_SATELLITE=ON
make -j$(nproc)
make install
Hint
To disable building the pxar UI, add -DBUILD_pxarui=OFF
to the CMake call.
Parameters#
The following parameters are read and interpreted by this satellite. Parameters without a default value are required.
Parameter |
Description |
Type |
Default Value |
---|---|---|---|
|
Verbosity setting of the pxarCore library. All verbosity levels and their outputs are described in Section 5.8 of the pxar manual. The following mapping to Constellation log levels is used: |
String |
|
|
Type of detector this satellite should operate. Can be either |
String |
- |
|
The device type of the ROC to be operated. This will be fed to the function |
String |
|
|
… |
||
|
Type of the carrier printed circuit board (PCB) the ROC is mounted on. Content of this is free and it can be used to keep track of different PCB types, e.g. distinguishing different material budgets. If the PCB type parameter contains the pattern -rot indicating a PCB with the ROC mounted in a 90 degree rotated position, columns and rows will automatically be swapped |
String |
|
|
This is an optional parameter for specifying non-standard (non-0) I2 C addresses the devices are listening on. This parameter takes a vector of integers which allows to run more than one ROC attached to a single DTB such as token-chained ROCs in beam telescopes, or full CMS Pixel modules. For this, the I2C address of every ROC has to be specified, e.g. |
Array of integers |
- |
|
standard formatted pxar configuration file containing all DAC parameters for the ROC. These values will be provided to the |
String |
- |
|
standard formatted pxar configuration file containing all register parameters for one TBM core. These values will be provided to the |
String |
- |
|
standard formatted pxar configuration file containing the trim bits for all 4160 pixels of the ROC. These values will be provided to the |
String |
- |
|
global, standard formatted pxar configuration file containing a list of masked pixels for all ROCs attached. Pixels which appear in this list will be masked during data acquisition. Pixels have to be specified with the pattern |
String |
- |
|
Boolean switch to select running on externally supplied clock (via the DTB LEMO connector, see Section 3.1 of the pxar manual) or the DTB-internally generated clock. This calls the function |
Boolean |
|
|
String literal to select the trigger source to be set up in the DTB. It is also possible to activate more than one trigger source by concatenating them using the semicolon |
String |
|
|
USB identification string of the DTB to be connected. It is recommended to always specify this parameter instead of supplying the wildcard |
String |
|
|
Hub address the DUT is attached to. See Section 5.1.2 of the pxar manual for more information. This value is required by |
Integer |
31 |
|
Expects a string literal as value. Allows setting the DTB LEMO outputs to the selected signal. For more information see Section 3.1 of the pxar manual. The default setting (no parameter given) is off. A full list of available signal outputs it given in Table 7 of the manual. |
String |
- |
|
Mandatory parameters representing the DTB current limits ( |
Floating point number |
- |
|
Phase settings for DTB output signals. A more detailed description is given in Section 5.1.1 of the pxar manual. |
Integer |
4, 4, 19 and 9, respectively |
|
Signal gain of the above signals, with 0 being off and 15 being maximum gain. Section 5.1.1 of the pxar manual provides more information on these configuration parameters. |
Integer |
15 |
|
Relative phase of the 160 MHz deserializer module clock to the 40 MHz clock. More information can be found in Section 3.2 of the pxar manual |
Integer |
4 |
|
Additional delay for the trigger to match the overall trigger latency including WBC. This setting can be used to match the actual trigger latency from the trigger logic unit (TLU) and cabling to the ROC’s WBC setting and thus allows to run with different WBC settings. |
Integer |
86 |
|
ADC DAQ only (analog PSI46v2 chips): delay for the ADC to start sampling the incoming data after the token in has been sent out. For more information see Section 5.11 of the pxar manual. |
Integer |
13 |
|
ADC DAQ only (analog PSI46v2 chips): delay for the ADC to stop sampling the incoming data after the token out from the DUT has been received back. For more information see Section 5.11 of the pxar manual. |
Integer |
8 |
|
Boolean parameter which allows to run the DUT with test pulses and the pattern generator instead of external triggers. The trigger source parameter has to be set accordingly. In addition, the delays in 40 MHz clock cycles after the different signals contained in the pattern generator setup can be changed using the parameters |
Boolean |
|
|
Parameter allowing to send a periodic reset signal to the ROC. The value is given in Milliseconds, a value of 0 turns the periodic reset off. Internally this uses the direct signal trigger mode, switching on this source in addition to the one selected by the trigger source parameter. However, there is no guarantee that the two signals will not coincide, and some triggers might get lost while sending the reset. This leads to a loss of synchronization between the DUT and other detectors in the DAQ. This feature should be used with caution and only when really necessary! |
Integer |
0 |
In addition to the above parameters, it is also possible to overwrite DAC parameters. This is useful in cases when several DAC files (e.g. with different threshold settings) have been prepared in the laboratory beforehand, but the WBC is only known at time of the test beam. Instead of changing this parameter in all DAC files which is error prone and cumbersome, the DAC in question can be set as parameter in the EUDAQ configuration file. A list of all possible DAC parameters can be found in Table 5 of the pxar manual. To overwrite a DAC parameter, its name and the desired value have to be specified in lower case in the configuration file, e.g.
[satellites.Pxar.CMSPixel]
wbc = 186
First, all parameters from the DAC file are read in, and then their values are updated and potentially overwritten by settings from the global configuration file. It has to be noted that only DACs present in the DAC file will be updated, while DACs missing from the file will not be taken into account even if specified in the configuration file. In case a DAC parameter has been overwritten by a configuration file setting, this will be noted in the logs.
Framework Parameters#
This satellite inherits the following framework parameters from its base classes:
Parameters inherited from TransmitterSatellite
#
Parameter |
Type |
Description |
Default Value |
---|---|---|---|
|
Unsigned integer |
Timeout in seconds to send the BOR message. The satellite will attempt for this interval to send the message and goes into |
10 |
|
Unsigned integer |
Timeout in seconds to send the EOR message. The satellite will attempt for this interval to send the message and goes into |
10 |
|
Unsigned integer |
Timeout in seconds to send the data message. The satellite will attempt for this interval to send the message and goes into |
10 |
Parameters inherited from Satellite
#
Parameter |
Type |
Description |
Default Value |
---|---|---|---|
|
Bool |
If |
|
|
Unsigned integer |
Interval in seconds between heartbeats to be sent to other Constellation components |
|
Framework Metrics#
This satellite inherits the following framework metrics from its base classes:
Metrics inherited from TransmitterSatellite
#
Metric |
Description |
Value Type |
Metric Type |
Interval |
---|---|---|---|---|
|
Amount of bytes transmitted |
Integer |
|
10s |
|
Number of payload frames transmitted during current run |
Integer |
|
3s |
Metrics inherited from Satellite
#
None