#include #include int main() { FILE *data_file,*output_file; char infile[20] = ("inRaw"); char outfile[20] = ("outTup"); int data1,data2,data3,adcdata[16]; int i,j; int TAC1data,TAC2data,TAC3data; int foundTAC1,foundTAC2,foundTAC3; int ioret; int countMultiTAC1=0, countMultiTAC2=0, countMultiTAC3=0; int count4300Header=0; data_file = fopen(infile,"r"); if ( data_file == NULL ) { printf("Failed to open an input file!\n"); return 1;} output_file = fopen(outfile,"w"); if ( output_file == NULL ) { printf("Failed to open an output file!\n"); return 1;} adcdata[2]=0; adcdata[3]=0; TAC1data=0; TAC2data=0; TAC3data=0; foundTAC1=0; foundTAC2=0; foundTAC3=0; fprintf(output_file, "adc1 adc2 tac1 tac2 tac3\n"); /* Begin event reading */ for(i=0;i<200000;i++){ ioret = fscanf(data_file,"%d %x %d",&data1,&data2,&data3); if ( ioret == EOF ) break; if(data3==32773){ /* Found new 4300 ADC data - print out last event */ count4300Header++; /* printf(" For last event: \n"); printf(" adc1 = %d, adc2 = %d \n",adcdata[2],adcdata[3]); printf(" TAC1 = %d, TAC2 = %d, TAC3 = %d \n", TAC1data,TAC2data,TAC3data); printf("\n"); */ fprintf(output_file,"%d %d %d %d %d\n", adcdata[2],adcdata[3],TAC1data,TAC2data,TAC3data); /* reset event */ TAC1data=0; TAC2data=0; TAC3data=0; foundTAC1=0; foundTAC2=0; foundTAC3=0; /* Read in new ADC data */ for(j=0;j<16;j++){ fscanf(data_file,"%d %x %d",&data1,&data2,&adcdata[j]); adcdata[j]=adcdata[j] & 0x3FF; if((data3==34817 || data3==34818 || data3==34819)) { printf(" Error!! Found header in middle of ADC = %x",data3); return 2; } } } /* Look for TAC headers. If found already, and no new 4300 data, then something wrong with event and set to 0 */ if(data3==34817){ fscanf(data_file,"%d %x %d",&data1,&data2,&data3); if(foundTAC1) { TAC1data=0; printf(" Multiple TAC1 \n"); countMultiTAC1++; } else TAC1data=data3; foundTAC1 = 1; } if(data3==34818){ fscanf(data_file,"%d %x %d",&data1,&data2,&data3); if(foundTAC2) { TAC2data=0; printf(" Multiple TAC2 \n"); countMultiTAC2++; } else TAC2data=data3; foundTAC2 = 1; } if(data3==34819){ fscanf(data_file,"%d %x %d",&data1,&data2,&data3); if(foundTAC3) { TAC3data=0; printf(" Multiple TAC3 \n"); countMultiTAC3++; } else TAC3data=data3; foundTAC3 = 1; } } printf("Found %d 4300 headers\n", count4300Header); printf("Found %d MultiTAC1headers\n", countMultiTAC1); printf("Found %d MultiTAC2headers\n", countMultiTAC2); printf("Found %d MultiTAC3headers\n", countMultiTAC3); printf("Found EOF...exiting.\n"); }