• Main INDEX
  • Monthly INDEX
  • PREV
  • NEXT
    Make New Entry, Make Followup Entry

    User name R. Michaels

    Log entry time 09:45:03 on March10,2011

    Entry number 351187

    This entry is a followup to: 351172

    keyword=replay warnings in recent runs

    For run 2658 :

    First, a comment about the "standard" warnings. We've seen
    these before. They happen when you are not pedestal suppressing
    and you sometimes (rarely) get 65 words on an ADC instead of 64.
    If you examine the event in detail you should find that two of
    the words from that ADC are identical. No harm done. I did not
    check it this time because I'm too busy and as I said I've seen
    this many times. But you may want to check it yourself.

    21000
    THaSlotData: Warning in loadData: too many data words for crate/slot = 8 9: 64 seen.
    (I think the warning reports last one seen, so 64 is 65th since index starts at 0).

    ====================================

    Secondly, a comment about the "new" disease in ROC10. It looks like
    what happens is that the decoder finds the variable "dt2" resulting
    from the following CRL code. (I think Larry found this also.)

    dt2 = Read3800(0xab8000,1);
    *rol->dabufp++ = 0xdeaddead;
    *rol->dabufp++ = dt1;
    *rol->dabufp++ = dt2;

    And if dt2 has bits in the range of fastbus slot, then
    THaCodaDecoder::fastbus_decode will interpret it as a
    fastbus slot. E.g. in event 176999 near the end of ROC10:

    evbuffer 938 fabb0000
    evbuffer 939 deaddead
    evbuffer 940 8c36a09
    slot slotold model 1 25 1877
    header, wdcnt = 521

    The decoder thinks that 8c36a09 is slot 1 with 521 words in it,
    which is ridiculous. The next word is 8c36a1e and is interepreted
    as first data of that 1877 but chan 97 which is illegal.

    roc 10 slot 1 chan 97 data 27166 ipt 941 raw 8c36a1e device tdc
    THaSlotData: Warning in loadData: channel 97 out of bounds, ignored, on crate 10 slot 1

    The slot and the data are essentially random, resulting from
    this decoding.

    What to do ?

    Well, I was always very careful about putting words into the
    datastream but I didn't write bb_sfi3.crl ....

    E.g. you may see

    output 0xfabc0008

    The 'fabc' makes it impossible to be a fastbus slot (slot number
    too big) and the decoder now knows to skip 8 words. If, instead,
    you put words in a random location in the CRL, wierd things
    like this can happen. And you have to worry about the events
    for which there is no warning, because the decoder will silently
    over-write possibly legitimate fastbus data !!


    However, it should be fixable:

    I suppose we can fix it by skipping, in the analysis, all
    data after "0xdeaddead", which the authors put near the end
    of the ROC10 readout. "0xdeaddead" looks sufficiently unique
    that it may make a good flag.

    Other possible solutions to try:

    1. Remove the new lines in CRL that write these words.
    But I suggest to now scrutinize all this crate's data because
    more stuff like this may be happening. Essentially, the person
    who writes the CRL must also support the decoding !

    2. Put the lines underneath 0xfabc0008 with "8" increased to
    cover the new words. I *think* this will solve it but it
    needs to be checked.

    Ultimately it should be fixable. The 1877 and 1881 have header
    words which tell how much data follows. The 1875 (which we're
    not using) do not have headers, only data, so they are potentially
    more confusing. But from logical consistency we should be able
    to decode ROC10 eventually.