0xff00 nn --> number of external FERA data words
The following three words are ALWAYS present:
1 hpid bgo hit pattern (0xfe00) |1111|1110|0000|0000| [1] and ge hit bit (0x0100) |0000|0001|0000|0000| and id register (0x00ff) |0000|0000|1111|1111| 2 ge_high 14 bit high res ge (0x3fff) |0011|1111|1111|1111| and over-range bit (0x4000) |0100|0000|0000|0000| and Pileup bit (0x8000) |1000|0000|0000|0000| 3 ge_side 12 bit side ch ge (0x0fff) |0000|1111|1111|1111| [2]The appropriate mask to extract the information is shown both in hex and binary formats.
The rest of the events depend on what EFF write out options are on:
If the "writeget" [4] (germanium time) or "writegef" [5] (trap + lowres signals) are set
4 ge_time 12/13 bit[5] ge time (0x1fff) |0001|1111|1111|1111|If "writegef" [5] (trap + lowres signals) is set:
5 ge_trap 12 bit trap corr (0x0fff) |0000|1111|1111|1111| 6 ge_low 12 bit low res ge (0x0fff) |0000|1111|1111|1111|If "writebgo" [6] (clean bgo) is set:
7 bgo_time 12 bit bgo time (0x0fff) |0000|1111|1111|1111| [3] 8 bgo_low 12 bit bgo energy (0x0fff) |0000|1111|1111|1111| [3](The dirty germaniums are only written out if the writeallge[7] bit is set)
1 hpid bgo hit pattern (0xfe00) |1111|1110|0000|0000| and ge hit bit (0x0100) |0000|0001|0000|0000| and id register (0x00ff) |0000|0000|1111|1111| 2 ge_high 14 bit high res ge (0x3fff) |0011|1111|1111|1111| [4] and over-range bit (0x4000) |0100|0000|0000|0000| and Pileup bit (0x8000) |1000|0000|0000|0000| 3 ge_side 12 bit side ch ge (0x0fff) |0000|1111|1111|1111| [4] 4 ge_time 12/13 bit[5] ge time (0x1fff) |0001|1111|1111|1111| [4] 5 ge_trap 12 bit trap corr (0x0fff) |0000|1111|1111|1111| [4] 6 ge_low 12 bit low res ge (0x0fff) |0000|1111|1111|1111| [4] 7 bgo_time 12 bit bgo time (0x0fff) |0000|1111|1111|1111| 8 bgo_low 12 bit bgo energy (0x0fff) |0000|1111|1111|1111|no matter what "writeget"[4], "writegef"[5] or "writebgo" [6] are set to (but these bits still control how clean and dirty ge data are written out).
[1] if any of the upper 7 bits are set in a clean event it means that the event was honeycomb Compton-suppressed by the EFF processors.
NEW: Above statement is not totally true! While looking throughh the EFF code in April 2005, it was discovered that events where there was a 'suppression', but either the germanium time or BGO detector time was outside the prompt time limits, are marked in the bgo hit pattern as well. Thus, to do the proper honeycomb suppression one should only honeycomb suppress IF the BGO bit pattern shows a number from 1 to 110 (the suppressing detector number). If you see other numbers (like 125 and 126) one should probably NOT honeycomb suppress!
If you want to use honeycomb suppression you should be very careful about setting proper prompt time windows both for the germanium and BGO detectors. Don't forget to do the same for the calibration runs afterwards when the time might come out differently.
[2] the side channel is attached to the upstream side of the split detectors! (except detector 57 which has it's side channel attached to the downstream side).
[3] not written out for clean germanium detectors if RecordVer=1, see update note below. They are written out for dirty germaniums.
[4] not written out if RecordVer=1, see update note below
[5] If the RF time subtraction is on, another 12 bit word (the TAC2 word from the data header) is subtracted from the original time and 4096 is added. Hence, on the tape this data word will appear to have 13 bits.
--------------
WARNING: on 98/4/1 it was discovered that there was a prompt time
condition of the dirty germanium and clean bgo counters in the event
header. Thus, as opposed to what the documentation says, you cannot use
these counters to figure out the what events are what (dirty ge and
clean bgo's that is) on your data tape. This is only a problem if you
do write out dirty germanium data and clean BGO data though. If you run
writing out only clean GS germanium data, there is no problem. This
change was made apparently made on 4/14/97 -- long time before the array
was moved to ANL. We are still pondering what to do about this
problem.
98/4/10: The fix to the above problem was suggested by Mike: If we write dirty germaniums out then we change the dirty germanium counter in the header to the actual number of dirty germaniums without the time gate. We do the same for the clean BGO events. This way there will be no problems reading the data. The only thing is that if you do write dirty germaniums or clean BGO data out - you must yourself set the time gates (you now have the data to do that) in order to find the time gated K. This is in line with the write out of the clean germanium events where you must also yourself apply a time gate to get the prompt K. This change in the eff code took place just before the GSFMA14 run. The problem with the junk after the buffer header was fixed as well. There should now be one more valid event per buffer since the header for the first event now is written to tape correctly.