This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
event_filter [2015/10/31 17:02] pereira [TPPACs packet] |
event_filter [2017/11/16 15:19] pereira [Mesytec TDC (MTDC) packet] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Event Filter (S800 Filter) ====== | + | ====== |
+ | This page describes the data format assembled by the S800 filter. The data is written in a series of 16-bit unsigned integers, subsequently referred to as '' | ||
+ | |||
+ | ===== General packet structure ===== | ||
+ | All data is written using the concept of " | ||
+ | |||
+ | ^ Length ^ Packet Tag ^ Packet Data | | ||
+ | |||
+ | Length: a count of the number of words in the packet, inclusive of the length word itself | ||
+ | |||
+ | Packet Tag: a predefined integer indicating the type of data found in the Packet Data | ||
+ | |||
+ | Packet Data: the data themselves. These can be data read from the modules or a sub packet. Sub packets have identical structure to main packets. Using this format all data can be placed in nested packets, and coding decisions on how to unpack the Packet Data can be made by examination of the preceding Packet Tag. Packets (including sub packets) can also be skipped by jumping ahead Length words in the buffer. | ||
- | The trigger bits words indicates which bits were set during the event. The encoding of the bits is the following: | ||
In this section, each 16-bit word sent by the Filter is described by a 16x3-table diagram. The first row includes the value, either in decimal or hexadecimal format, or a descriptive note. The second row shows the value in binary (" | In this section, each 16-bit word sent by the Filter is described by a 16x3-table diagram. The first row includes the value, either in decimal or hexadecimal format, or a descriptive note. The second row shows the value in binary (" | ||
Line 7: | Line 19: | ||
- | ==== Time-stamp packet ==== | + | |
+ | ===== Time-stamp packet | ||
The timestamp is encoded in the [[S800 USB DAQ data format#Tag 0x5803: XLM72 time stamp module|XLMV72 time-stamp module]] for each event as a 64-bit word. The Event Filter parses it as a set of four consecutive 16-bit words. | The timestamp is encoded in the [[S800 USB DAQ data format#Tag 0x5803: XLM72 time stamp module|XLMV72 time-stamp module]] for each event as a 64-bit word. The Event Filter parses it as a set of four consecutive 16-bit words. | ||
Line 13: | Line 26: | ||
* **Packet Length** (self-inclusive) | * **Packet Length** (self-inclusive) | ||
- | ^ | + | ^ |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | | ||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
Line 55: | Line 68: | ||
- | ==== Event-number packet ==== | + | ===== Event-number packet |
The event-number is given by the VMUSB scaler channels as a 48-bit word coded in two 32-bit words. The Event Filter parses it and re-formats it as a three 16-bit words. | The event-number is given by the VMUSB scaler channels as a 48-bit word coded in two 32-bit words. The Event Filter parses it and re-formats it as a three 16-bit words. | ||
Line 61: | Line 74: | ||
* **Packet Length** (self-inclusive) | * **Packet Length** (self-inclusive) | ||
- | ^ | + | ^ |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | | ||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
Line 97: | Line 110: | ||
- | ==== Trigger packet ==== | + | ===== Trigger packet |
The trigger packet includes a bit-pattern word (encoded | The trigger packet includes a bit-pattern word (encoded | ||
Line 151: | Line 164: | ||
- | ==== Time-of-flight packet ==== | + | ===== Time-of-flight packet |
The time-of-flight packet includes all the timing values encoded in the [[S800 USB DAQ data format#Tag 0x7186: Phillips 7186 TDC module for time-of-flights|Phillips TDC]] and the XFP-FP and OBJ-FP ToF from the ORTEC TACs encoded in the [[S800 USB DAQ data format#Tag 0x7167: Phillips 7164 ADC module for CRDC anodes (energies and TAC)|S800 Phillips 7164H ADC]]. | The time-of-flight packet includes all the timing values encoded in the [[S800 USB DAQ data format#Tag 0x7186: Phillips 7186 TDC module for time-of-flights|Phillips TDC]] and the XFP-FP and OBJ-FP ToF from the ORTEC TACs encoded in the [[S800 USB DAQ data format#Tag 0x7167: Phillips 7164 ADC module for CRDC anodes (energies and TAC)|S800 Phillips 7164H ADC]]. | ||
Line 194: | Line 207: | ||
- | ==== Scintillator packet ==== | + | ===== Scintillator packet |
The scintillator packet includes the energy (encoded in the [[S800 USB DAQ data format#Tag 0x4300: FERA module for plastic scintillator energies|FERA LeCroy module]]) and time (encoded in the [[S800 USB DAQ data format#Tag 0x7186: Phillips 7186 TDC module for time-of-flights|Phillips TDC]]) of the [[Detectors# | The scintillator packet includes the energy (encoded in the [[S800 USB DAQ data format#Tag 0x4300: FERA module for plastic scintillator energies|FERA LeCroy module]]) and time (encoded in the [[S800 USB DAQ data format#Tag 0x7186: Phillips 7186 TDC module for time-of-flights|Phillips TDC]]) of the [[Detectors# | ||
Line 239: | Line 252: | ||
- | ==== Ion-Chamber packet ==== | + | ===== Ion-Chamber packet |
The Ion-chamber packet includes the energies of the [[Detectors# | The Ion-chamber packet includes the energies of the [[Detectors# | ||
Line 245: | Line 258: | ||
* **Packet Length** (self-inclusive) | * **Packet Length** (self-inclusive) | ||
- | ^ A number from 4 to 18 | + | ^ A number from 4 to 20 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | X | X | X | X | | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | X | X | X | X | | ||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
Line 258: | Line 271: | ||
- | * **Sub-packet " | + | * **Sub-packet " |
- | ^ | + | ^ A number from 2 to 18 |
- | | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | | + | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | X | X | X | X | |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
- | * **Sub-packet " | + | * **Sub-packet " |
- | ^ A number from 2 to 16 | + | ^ |
- | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | X | X | X | X | | + | | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
+ | |||
+ | |||
Line 283: | Line 298: | ||
- | Where Ch is the segment number (from 0 to 15, being segment 0 the most upstream). The Filter gives an energy word for each segment as long as **energy** is greater than 0. | + | where Ch is the segment number (from 0 to 15, being segment 0 the most upstream). The Filter gives an energy word for each segment as long as **energy** is greater than 0. |
- | ==== CRDC packets ==== | + | ===== CRDC packets |
The Filter provides two CRDC packets: one for [[Detectors|Cathode Readout Drift Chambers (CRDC)|CRDC1]] and one for [[Detectors|Cathode Readout Drift Chambers (CRDC)|CRDC2]]. Each CRDC packet is divided in two sub-packets: | The Filter provides two CRDC packets: one for [[Detectors|Cathode Readout Drift Chambers (CRDC)|CRDC1]] and one for [[Detectors|Cathode Readout Drift Chambers (CRDC)|CRDC2]]. Each CRDC packet is divided in two sub-packets: | ||
Line 403: | Line 418: | ||
- | ==== Hodoscope packet ==== | + | ===== Hodoscope packet |
The Filter parses the [[Detectors# | The Filter parses the [[Detectors# | ||
[[S800 USB DAQ data format#Tag 0x7165: Phillips 7164 ADC module for hodoscope energies 0 through 15|Phillips 7164 ADCs]] and re-formats the data in three packets, two with the energies of the two groups crystals (from 1 to 16 and from 17 to 32), and the third one with the hit pattern recorded in the [[S800 USB DAQ data format#Tag 0x4448: LeCroy4448 coincidence register module for hodoscope hit pattern|LeCroy 4448 coincidence-register module]]. | [[S800 USB DAQ data format#Tag 0x7165: Phillips 7164 ADC module for hodoscope energies 0 through 15|Phillips 7164 ADCs]] and re-formats the data in three packets, two with the energies of the two groups crystals (from 1 to 16 and from 17 to 32), and the third one with the hit pattern recorded in the [[S800 USB DAQ data format#Tag 0x4448: LeCroy4448 coincidence register module for hodoscope hit pattern|LeCroy 4448 coincidence-register module]]. | ||
- | Each of the two first packets look like: | + | Each of the **two first packets** look like: |
* **Packet Length** (self-inclusive) | * **Packet Length** (self-inclusive) | ||
- | ^ A number from 5 to 325 | + | ^ A number from 3 to 19 |
- | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | X | X | X | X | X | X | X | X | | + | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | X | X | X | X | |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
Line 434: | Line 449: | ||
+ | * **Energy values** | ||
+ | The energy from each of the two Phillips 7164H ADC modules is given by a series of words that look like: | ||
+ | ^ ^^^ Ch ^ | ||
+ | | 0 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | X | X | X | | ||
+ | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
+ | where Ch is the crystal number in the packet (from 0 to 15). The Filter gives an energy word for each crystal as long as **energy** is greater than 0. | ||
+ | |||
+ | The **third hodoscope packet** with information from the coincidence register looks like: | ||
+ | |||
+ | * **Packet Length** (self-inclusive) | ||
+ | |||
+ | ^ 5 ^^^^^^^^^^^^^^^| | ||
+ | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | | ||
+ | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
+ | |||
+ | |||
+ | * **Packet Tag** | ||
+ | |||
+ | ^ 0x58B0 | ||
+ | | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | | ||
+ | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
+ | |||
+ | |||
+ | * **Hit pattern** | ||
+ | |||
+ | |||
+ | ^ hit pattern of first 16 crystals | ||
+ | | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | | ||
+ | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
+ | |||
+ | |||
+ | |||
+ | ^ hit pattern of crystals 16 to 32 | ||
+ | | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | | ||
+ | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
+ | |||
+ | |||
+ | |||
+ | * **Time** | ||
+ | The Hodoscope OR time (from an ORTEC TAC encoded in the [[S800 USB DAQ data format#Tag 0x7167: Phillips 7164 ADC module for CRDC anodes (energies and TAC)|S800 Phillips 7164H ADC]]) is given by: | ||
+ | |||
+ | ^ empty ^^^^ | ||
+ | | 0 | 0 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | X | X | | ||
+ | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
- | ==== TPPACs packet ==== | + | ===== TPPACs packet |
The Filter parses and re-formats information from the [[Detectors# | The Filter parses and re-formats information from the [[Detectors# | ||
Line 576: | Line 635: | ||
+ | ===== Mesytec TDC (MTDC) packet ===== | ||
+ | The MTDC packet includes the multiple timing values [[S800 USB DAQ data format#Tag 0x0DDC: Mesytec MTDC-32 module |encoded in the Mesytec MTDC]]. The packet looks like: | ||
+ | * **Packet Length** (self-inclusive) | ||
+ | ^ A number from 2 to 10 ^^^^^^^^^^^^^^^| | ||
+ | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | X | X | | ||
+ | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
+ | * **Packet Tag** | ||
+ | ^ 0x58F0 | ||
+ | | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | | ||
+ | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
- | ^ ^^^^^^^^^^^^^^^| | + | |
- | | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | | + | * **Time values** |
+ | Every time value encoded in the MTDC is sent by the Filter as a series of two 16-bit words: the first one provides information about the MTDC channel and the hit number; the second one gives the time value for that channel-hit. In the current version (Oct. 2015), the Filter processes up to 32 hits per channel. This value can be increased if necessary. | ||
+ | |||
+ | |||
+ | ^ | ||
+ | | 0 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | X | X | X | | ||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
- | |||
- | ^ ^^^^^^^^^^^^^^^| | + | |
- | | | | | | | | | | | | | | | | | | | + | ^ time ^^^^^^^^^^^^^^^| |
+ | | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | X | | ||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ||
Line 596: | Line 670: | ||
- | ^ Bit ^^^^^^^^^^^^^^^| | + | |
- | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | + | |
- | | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | + | |