The TPC is broken into 70 million pixels. Simulations suggest that a single Au+Au event at RHIC will produce 8%-13% pixel occupancy . To avoid the large overhead with (1) tabulating the pixel data with no zero-suppression, or (2) associating a pixel identification field with each pixel ADC value, a pair of somewhat ``intertwined'' tables is employed to tabulate the zero-suppressed data. See Figure 3
Figure 3: Structures used for tabulating TPC pixel data.
The table TPPAD has one entry for each pad which has at least one pixel above threshold. It contains pad identification information, and points to the start of its data in the TPPIXEL table. The sequences on that pad then follow one another.
The TPPIXEL table has one entry for each above-threshold pixel. Its single field is an I*4 variable bit-encoded with the following information: ADC value, time bucket number (a.k.a. TDC), and the number of buckets in the sequence that the pixel belongs to.
Note that at this hit level, the STAR software standard of using primary keys, and not pointing to the index of a table structure, is violated. Therefore, shuffling the entries in the TPPIXEL table will render the data indecipherable. It was decided to break the SAS standard at this level because of the considerable overhead involved in giving each pixel entry an ID field, and because there was no reason forseen for shuffling the raw pixel data.
Note also that it is assumed that the pixel data is in sequence form, with pointers built to the beginning of data on the pad. This is the current output format of the slow simulator, and it is assumed that the ``table converter'' (see Figure 1) will perform this function for the real data.