This example generates just 2 histograms. One is a histogram of the data item labels in the data. This is a very useful visualization of the data sources (adcs and tdcs) being used. The other is a histogram of the number of data items in each event.
*trigger
128
*oned
1 stat 16384 /* for VXI data change 16384 => 65536 */
2 mult 1024
*twod
*vars
*sort
#include < stdio.h >
#include < stdlib.h >
int events;
int init(void)
{
events=0;
return 0;
}
/* This procedure is called once for each good event decoded */
/* mult contains the number of data items in the event */
/* The gid array contains the label (high 16 bits) part of the item word */
/* The gdata array contains the data (low 16 bits) part of the item word */
int sortin(void)
{
int i;
int group, item;
events++;
if ( mult > 0 && mult < 1024 )
{
inc1d( MULT, mult );
}
for ( i = 0; i < mult; i++ )
{
group = gid[i] & 255;
item = (gid[i] >> 8) & 63; /* for VXI data change 63 => 255 to handle Q bits */
inc1d( STAT, (group*64)+item); /* for VXI data change 64 => 256 */
}
return 0;
}
int finish(void)
{
printf("\nSorted %d events\n", events);
return 0;
}