JeffersonLab / coatjava

1 stars 17 forks source link

Fix helicity decoder. #173

Closed mholtrop closed 7 months ago

mholtrop commented 8 months ago

The CodaEventDecoder::getDataEntriesHelicityDecoder only works correctly when the EVIO data is corrupted and puts 40 helicity decoder board banks once every 40 events. In the correct DAQ configuration there should be a single 57651 Helicity Decoder Board bank in every_ event. In this case the EVIO bank does not have the 'BLKHDR' word, so decoding is incorrect and causes a crash.

Run 019400 and 019401 had the helicity data in every event. The first event from file clas_019400.evio.00040 decoded with evio2xml has for bank 57651 (= 0xe133):

     <uint32 data_type="0x1" tag="57651" padding="0" num="39" length="19" ndata="18">
        0x94f4de10  0x9d2815ef  0x000004f5  0xc000000e  
        0x0ec76249  0x0004b336  0x0004b337  0x00012cce  
        0x0002599c  0x0027d519  0x0026e0fa  0x0000f41e  
        0x003f926a  0x00000130  0xeeeeeeee  0xaaaaaaaa  
        0xd2cd3332  0x8ec76249  
     </uint32>

First word is "EVTHDR", second and third are "TRGTIME", forth is "DECODER DATA", indicating the next 14 (0x0e) words are the readout of the Helicity Decoder.

This issue is related to issue #171

baltzell commented 7 months ago

closed by #174