User Tools

Site Tools


sweeper_usb_daq_data_format

The Sweeper USB DAQ data format

Two crates are read by the Sweeper DAQ software, one CAMAC and one VME. Data from each of these controllers are pushed into ring buffers (rawccusb for CCUSB and rawvmusb for VMUSB). The Sweeper Event Builder (EVB) reads data from these ring-buffers, correlates them on the basis of their time stamps, and outputs the resulting data stream on the ring buffer sweeper. According to the NSCLDAQ 11.x format, data in the ring buffer sweeper will be organized in ring items, each consisting of two fragments, one for each controller.

The structure of the data from the Sweeper EVB is schematically illustrated in the figure below: Schematic representation of data format from Sweeper EVB

Events from the Sweeper EVB will be encapsulated in ring items, consisting of header, a body header, and a body. The body part contains two fragments, one from each controller. Each fragment has a header, followed, again, by a ring item (with its corresponding header, body header, and body).

The structure from the body of each fragment is described below in some detail. Please, note that this data format is irrelevant for the user; this is so because the USB data are “pre-unpacked” by the Sweeper Pre-unpacker software before being distributed to the user.

CAMAC Crate data format

The CCUSB controller used to read data out of the CAMAC crate generates buffers of variable length. The first two words (16 bits each) are the buffer headers where information about the buffer is encoded. Events then follow until a single word 0xFFFF which is the buffer terminator. The format is as follows:

Header1 Header2 Events… 0xFFFF

Header1 codes the number of events in bits 0-11. Bit14=1 indicates a scaler buffer, while bit15=1 indicates a watchdog buffer (not used in this implementation).

Header2 codes the number of words in the buffer in bits 0-11.

The format of events is as follows:

Length 0xC801 Event counter bits 0-15 Event counter bits 16-23 Event counter bits 24-39 Event counter bits 40-47 Tag Data… End Tag Tag Data… End Tag

The length is the number of words following in the event. Note that IT IS NOT SELF-INCLUSIVE!

The word 0xC801 identifies the origin of the event as from the Sweeper CAMAC crate

The following 6 words encode the 48 bit event number

The tags and end tags identify the modules being read and encapsulate the data from each. The tags, end tags and their corresponding modules are listed below:

  • 0x2367, 0xf367: LeCroy ULM2367 Trigger module
  • 0x4300, 0xf300: LeCroy4300B FERA module for plastic scintillator energies
  • 0x7164, 0xf164: Phillips7164 ADC module for ion chamber energies
  • 0x7167, 0xf167: Phillips7164 ADC module for CRDC anodes (energies and TAC)
  • 0x7186, 0xf168: Phillips7186 TDC module for time-of-flights (DISCONTINUED)

Tag 0x2367: Trigger module

The ULM trigger module provides a bit mask with information about the trigger sources, and a time-stamp value

0x2367 Trigger bits TS 0-15 TS 16-31 TS 32-47 TS 48-63 0xf367

The trigger bits words indicates which bits were set during the event. The encoding of the bits is the following:

Bit Source
0 Sweeper
1 Coincidence
2 External 1
3 External 2
4 Secondary

The 64 bit time stamp (TS) follows from least significant word to most.

Tag 0x4300: FERA module for plastic scintillator energies

0x4300 FERA data… 0xf300

The data following the tag is the standard sparse FERA data as shown in the figure below:

Format of LeCroy 4300B FERA data

At present (Oct 2015), the FERA channel assignments are:

Channel Source
0 FP Thin SCI Left, Up
1 FP Thin SCI Left, Down
2 FP Thin SCI Right, Up
3 FP Thin SCI Right, Down
4-7 Free
8 Pot SCI
9-15 Free

Tag 0x7164: Phillips 7164 ADC module for ion chamber energies

0x7164 hit pattern ADC data… 0xf164

The ADC data contains all channels for which the hit pattern bit is set. The channel number is encoded in bits 12-15, while the data is in bits 0-11. The ion chamber has 16 segments, channel 0 corresponding to the most upstream segment while channel 15 corresponding to the most downstream segment.

Tag 0x7167: Phillips 7164 ADC module for CRDC anodes (energies and TAC)

0x7167 hit pattern ADC data… 0xf167

The ADC data contains all channels for which the hit pattern bit is set. The channel number is encoded in bits 12-15, while the data is in bits 0-11. The table below shows the channel assignments.

Channel Assignment
0 Available
1 CRDC1 Anode
2 CRDC2 Anode
3 CRDC1 TAC
4 CRDC2 TAC
5-15 Available

VME Crate data format

The VMUSB controller used to read data out of the VME crate generates buffers of variable length. The first two words (16 bits each) are the buffer headers where information about the buffer is encoded. Events then follow until two word 0xFFFF which are the buffer terminators. The format is as follows:

Header1 Header2 Events… 0xFFFF 0xFFFF

Header1 codes the number of events in bits 0-11. Bit14=1 indicates a scaler buffer, while bit15=1 indicates a watchdog buffer (not used in this implementation).

Header2 codes the number of words in the buffer in bits 0-11.

The format of events is as follows:

Length 0xE801 Event counter bits 0-15 Event counter bits 16-31 Event counter bits 32-47 Event counter bits 48-63 Tag Data… End Tag Tag Data… End Tag

The length is the number of words following in the event. Note that IT IS NOT SELF-INCLUSIVE! This word also contains information about the stack that generated the data as well as a continuation bit indicating that the data spans more than the 2 kwords limit of the internal FIFO of the VMUSB. This bit is set for each contiguous fragment of the data until the last fragment for which it is not set. The mapping of the length word is the following:

15-13 12 11-0
Stack ID Continuation bit Length

The word 0xE801 identifies the origin of the event as from the Sweeper VME crate

The following 4 16-bit words encode the 64 bit event number

The tags and end tags identify the modules being read, and encapsulate their data. The tags, end tags and their corresponding modules are listed below:

  • 0x5901, 0xf901: trigger pattern from Level-3 trigger module (XLM72)
  • 0x5903, 0xf903: time stamp pattern from Level-3 trigger module (XLM72)
  • 0xcfdc, 0xffdc: XLM72 module configure to read CRDC1 pad signals
  • 0xcfdd, 0xffdd: XLM72 module configure to read CRDC2 pad signals
  • 0x59b0, 0xf9b0: MADC-32 module for Hodoscope
  • 0x59b0, 0xf9b0: MADC-32 module for Segmented Target
  • 0x0ddc, 0xfddc: MTDC-32 module for time-of-flights
sweeper_usb_daq_data_format.txt · Last modified: 2017/06/11 17:26 by pereira