The basic unit of data is the 32bit word consisting of a 16bit data value, a 14bit data address and a 2bit word-type. 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.
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.
Start Event Token ...
16bits = 0xffff
16bits = Total event length including header in bytes
End Block Token ...
16bits = 0xffff
16bits = 0x0000
Simple Data Word Format ...
2bits = 00
14bits = <address>
16bits = <data-word>
Group Data Word Format ...
2bits= 01
6bits= <item-count> (number of data words following the 16bit header)
8bits= <group-number>
16bits = <data-word-1>
16bits = <data-word-2>
16bits = <data-word-3> etc ...
2bits= 10
14bits= <item-count> (number of data words following the 32bit header)
16bits= <group-number>
16bits = <data-word-1>
16bits = <data-word-2>
16bits = <data-word-3> etc ...
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.