Emulation of input to DSM-0 , miniDaq run2003 taken on March 22.
I started with the masks:

CRATE3  BD1     BD2     BD3     BD4     BD5
JP1     0x0000  0x0000  0xf8f8  0x0000  0x0000
JP2     0x0000  0x0000  0x0707  0xff00  0x0000
JP3     0x0000  0xf8f8  0x0000  0x00ff  0x0000
JP4     0x0000  0x0707  0x0000  0x0000  0x0000
CRATE4  BD1     BD2     BD3     BD4     BD5
JP1     0xf8f8  0xf8f8  0xf8f8  0x00ff  0x0000
JP2     0x0707  0x0707  0x0707  0xff00  0x0000
JP3     0xf8f8  0xf8f8  0x00ff  0x00ff  0x0000
JP4     0x0707  0x0707  0xff00  0x0000  0x0000
CRATE5  BD1     BD2     BD3     BD4     BD5
JP1     0xf8f8  0xf8f8  0x0000  0x00ff  0x0000
JP2     0x0707  0x0707  0x0000  0xff00  0x0000
JP3     0xf8f8  0xf8f8  0x00ff  0x0000  0x0000
JP4     0x0707  0x0707  0xff00  0x0000  0x0000

For a given crate, we have a 4x4 array, mapping 128 ADC channels
to 16 trigger patches in the unique way.

Three lookup tables converting 
 chan--> trigger patch ID
 were created base on this masks.
The dump of this lookup tables is in the note:#257.
The patches name are just {Crate# xJP# X BD# }. There is 48 patches.

Now I emulate FEE operation:
A set of 48 histograms is created for every trigger patch.

For every event :
1) an array  sum[48] integers is cleared.
2) there is a loop over all adc channels in all crates:
   - for every channel the patch ID is found
   - ADC value is shifted by 4 bits (i.e. divided by 16)
      X=ADC>>4;
   - an element of array corresponding to the patch ID gets incremented by 'X'
      sum[ID]=sum[ID]+X

3) the accumulated content of sum[] is added to 48 histograms
I did not applied 12-->6 bit reduction done by LUT.
So my results differ from  input to DSM-0 and
 histograms have also entries above 64.


4) the plots below show 8 histograms per panel, stepping each time 
  2 lines of the table with mask.   

My idea was to find the pedestals for each trigger patch,
so we can add proper offset to 48 LUTs.
It could be also done by adding pedestals from individual ADC channels,
but this method may is simpler, also takes care of any correlated
change of pedestals (if exist and of any significance).

In reality some of the spectra are empty other have different shape then
just pedestal, so perhaps after this fix of cables made by Jim 
we should have another look at it.


Formula:

  Loop over crates, channels:
       int val=adc>>4;
       FeeMask *fom=&feeMask[crateID-3];
       int k=fom->patch[chan] +16*(crateID-3);
       sum[k]+=val;  // <<--- accumulate sum
  } end of loop


  for(k=0;k<48;k++){
    hDsm0[k]->Fill(sum[k]);  <<---  fill histo
  }


Crate 3 JP1 & 2

Crate 3 JP3 & 4

Crate 4 JP1 & 2

Crate 4 JP3 & 4

Crate 5 JP1 & 2

Crate 5 JP3 & 4