EDOC073

EUROGAM PROJECT

NSF DATA ACQUISITION SYSTEM Event Format [Sorting + Storage]

Edition 2.1 June 2001

Nuclear Structure Software Support Group Liverpool University Event Format [Sorting + Storage]

John Cresswell

Edition 2.1 June 2001

1 Introduction

The event data format described in this document differs from the format of the data stream output from the data acquisition electronics. The changes have been made basically for two reasons. The separation of data items into sub-events associated with each Readout Controller is an artificial division made necessary by features of the electronics and not the data itself. Therefore there is no separation within events related to readout methodology. Secondly, significant space savings can be achieved by re-formatting associated sets of parameters into the group format as described below.

This document describes the event format as written to magnetic tape storage and hence of interest to the experimenter. The data format output from the Eurogam Readout Controllers will not be visible to the experimenter.

2 Data Formats

The basic unit of data is the 32bit word consisting of a 16bit data value, a 14bit data address and a 2bit word-type. Data is written as separate 16bit words, each of which would be byteswapped if an endian change were required. Alignment is therefore kept to 32bit units. The defined data word format types are summarised in the final section of this document.

There may be many events in an event block. The length of an event block is variable and terminated by the end block token.

The grouped data word format is defined primarily for compactness. Groups of 1 or 2 items occupy the same space as simple words, but space savings occur for 3 items and more. The philosophy of groups is explained more fully in the next section.

3 Parameter Groupings

It has been noted that most modern detector systems consist of many similar detectors with several related parameters repeated for each detector. This natural grouping of related parameters can be exploited to make the user interface more understandable.

Each group maps onto a software record or structure. This makes it easy to process the information from a particular detector. With this scheme all parameters related to a particular detector are kept together. This allows access to individual parameters within a record, but also allows whole records to be accessed and moved around efficiently by using pointers.

Each data parameter has a unique 14bit address which is allocated when the data acquisition is setup. In order to make the processing of the data words easier, it has been decided to logically divide the address into two parts (an 8bit group number and a 6bit item). This subdivision is somewhat arbitary, but allows the group number to be extracted easily as a byte. The item numbers within a group are sequential starting from zero.

The main point to note is that whether event parameters are kept as simple variables or as groups, then each parameter still has a unique 14bit address. If a group with several items is defined, then each item within the group has a particular 14bit address which cannot also be allocated to another simple variable or another group item. Similarly, there cannot be more than one group with the same group number.

Since the item field is in the most significant 6 bits of the address, then the resultant addresses of items in a group will not be consecutive. However, when viewed as a hexadecimal number the address is trivially decoded into detector number and parameter offset.

Group 255 is defined as the system or trigger group. If present, it will normally be positioned immediately following the event header token. Others group numbers are freely available to be allocated as and when necessary for particular acquisition sub-systems (Ge/BGO,Clover,Cluster,...).

This ordering of parameters into associated groups should make event processing easier to accomplish. Several of the operations to be applied to each event will be group oriented. For example, the sum energy calculation will include the same words from each of the Ge groups. Also, a typical operation may be to filter on all Ge TDC words ... again the same operation performed on the same word from each group.

4 Variable length groups

The complex detectors (.eg. Clovers, Clusters,...) consist of more than one Ge segment enclosed within a BGO shield. The problem is whether a complex detector is best considered as a single detector grouping or as N separate detector groupings.

To treat a complex detector as a single group of parameters, we need a data format extension, since the detector group of parameters will now be of variable length - 1,2,3 or more segments may appear in an event.

The variable length group format allows for an initial fixed length section followed by one or more variable length sections. The user must know the number of parameters in both the fixed and the variable parts of the group.

5 Event Format Summary

There are four basic format word variants. For each event there is a unique separator word called the Start Event token. This is followed by an optional number of simple and group formatted data words. A data block will consist of one or more such events terminated by the End Block Token. Events will not be split across block boundaries.

All numeric values are given in hexadecimal.

1) Start Event Token ...

Field size  2  6  8  16
11 3f  ff  ELen

2) End Block Token ...

Field size  2  6  8  16
11 3f  ff  0000

3) Simple Data Word Format ...

Field size  2  14  16
00  Address  Data

4) Group Data Word Format ...

Field size  2  6  8  16
01 ic  g  Data1
+ optional further word(s)  Data2  Data3

5) Extended group format ...

For large detector systems it has become necessary to allow more than 256 groups. The extended group format is functional in the sort program, but ways of creating extended format data are currently limited. Group numbers of 256 and above are treated as extended format.

Field size  2  14  16
10  ic  ex-g
+ data word(s)  Data1  Data2

Although the item-count and group-number fields are much bigger in this format, there are smaller limits of 64 and 1024 respectively built into the sorting system, if this format is used for standard parameters.

This format may also be used to store array data, for example, as collected from flash adcs. In this case the item count may be much larger and is the data length in units of 16bits.

where ...
ELen    =   Total event length including header in bytes
i       =   Item number (0-63)
g       =   Group number (0-255)
ex-g    =   Extended group number (256-1023)
ic      =   Item count in group format. This is the number of data words
            following the 16bit header.
            If the number of data words is even, then a zero padding word
            forces 32bit alignment.
Address =   14bit parameter identifier
Data    =   Upto 16bit data value (unused high order bits zeroed)