/* ls -1 | grep 4618 | grep -v "\-0" | sed 's/$/\/csv/' Compile with: gcc -Wall -o csvall csvall.c ./csvall --dirs --infile ./csvall --dirs indirs.txt --infile infiles.csv list of directories to scan ex: 4618897/csv 4618898/csv 4618899/csv 4618901/csv 4618902/csv 4618903/csv 4618904/csv 4618905/csv a file in scanned directory with list of csvfiles in directory #TestType,csvfile 1,lvcard.csv 2,saltro3017025-mcm0-c7-ramp-p1.csv 2,saltro3017025-mcm0-c7-ramp-p2.csv 3,saltro3017025-mcm0-c7-pedestal-g0-s0-p1.csv 3,saltro3017025-mcm0-c7-pedestal-g1-s0-p1.csv 3,saltro3017025-mcm0-c7-pedestal-g2-s0-p1.csv 3,saltro3017025-mcm0-c7-pedestal-g3-s0-p1.csv 4,saltro3017025-mcm0-c7-pedestal-g3-s0-p1-sh.csv 4,saltro3017025-mcm0-c7-pedestal-g3-s1-p1-sh.csv 4,saltro3017025-mcm0-c7-pedestal-g3-s3-p1-sh.csv 4,saltro3017025-mcm0-c7-pedestal-g3-s7-p1-sh.csv 5,saltro3017025-mcm0-c7-pedsub-g0-s0-p0-s1.csv 5,saltro3017025-mcm0-c7-pedsub-g0-s0-p0-s2.csv 5,saltro3017025-mcm0-c7-pedsub-g0-s0-p1-s1.csv 5,saltro3017025-mcm0-c7-pedsub-g0-s0-p1-s2.csv 5,saltro3017025-mcm0-c7-pedsub-g1-s0-p1-s1.csv 5,saltro3017025-mcm0-c7-pedsub-g1-s0-p1-s2.csv 5,saltro3017025-mcm0-c7-pedsub-g2-s0-p1-s1.csv 5,saltro3017025-mcm0-c7-pedsub-g2-s0-p1-s2.csv 5,saltro3017025-mcm0-c7-pedsub-g3-s0-p1-s1.csv 5,saltro3017025-mcm0-c7-pedsub-g3-s0-p1-s2.csv 6,saltro3017025-mcm0-c7-pedsub-g3-s0-p1-s1-sh.csv 6,saltro3017025-mcm0-c7-pedsub-g3-s0-p1-s2-sh.csv 6,saltro3017025-mcm0-c7-pedsub-g3-s1-p1-s1-sh.csv 6,saltro3017025-mcm0-c7-pedsub-g3-s1-p1-s2-sh.csv 6,saltro3017025-mcm0-c7-pedsub-g3-s3-p1-s1-sh.csv 6,saltro3017025-mcm0-c7-pedsub-g3-s3-p1-s2-sh.csv 6,saltro3017025-mcm0-c7-pedsub-g3-s7-p1-s1-sh.csv 6,saltro3017025-mcm0-c7-pedsub-g3-s7-p1-s2-sh.csv 7,saltro3017025-mcm0-c7-zerosup-g0-s0-p1-s1.csv 7,saltro3017025-mcm0-c7-zerosup-g0-s0-p1-s2.csv 7,saltro3017025-mcm0-c7-zerosup-g1-s0-p1-s1.csv 7,saltro3017025-mcm0-c7-zerosup-g1-s0-p1-s2.csv 7,saltro3017025-mcm0-c7-zerosup-g2-s0-p1-s1.csv 7,saltro3017025-mcm0-c7-zerosup-g2-s0-p1-s2.csv 7,saltro3017025-mcm0-c7-zerosup-g3-s0-p1-s1.csv 8,saltro3017025-mcm0-c7-zerosup-g3-s0-p1-s1-sh.csv 8,saltro3017025-mcm0-c7-zerosup-g3-s0-p1-s2-sh.csv 8,saltro3017025-mcm0-c7-zerosup-g3-s1-p1-s1-sh.csv 8,saltro3017025-mcm0-c7-zerosup-g3-s1-p1-s2-sh.csv 8,saltro3017025-mcm0-c7-zerosup-g3-s3-p1-s1-sh.csv 8,saltro3017025-mcm0-c7-zerosup-g3-s3-p1-s2-sh.csv 8,saltro3017025-mcm0-c7-zerosup-g3-s7-p1-s1-sh.csv 8,saltro3017025-mcm0-c7-zerosup-g3-s7-p1-s2-sh.csv 9,saltro3017025-mcm0-c7-bits-g3-s0-p1-s3.csv 10,saltro3017025-mcm0-c7-regtest.csv csvfiles.txt 5,saltro-mcm0-c7-pedsub-g0-s0-p1-s1.csv 5,saltro-mcm0-c7-pedsub-g0-s0-p1-s2.csv 5,saltro-mcm0-c7-pedsub-g1-s0-p1-s1.csv 5,saltro-mcm0-c7-pedsub-g1-s0-p1-s2.csv 5,saltro-mcm0-c7-pedsub-g2-s0-p1-s1.csv 5,saltro-mcm0-c7-pedsub-g2-s0-p1-s2.csv 5,saltro-mcm0-c7-pedsub-g3-s0-p1-s1.csv 5,saltro-mcm0-c7-pedsub-g3-s0-p1-s2.csv 6,saltro-mcm0-c7-pedsub-g3-s0-p1-s1-sh.csv 6,saltro-mcm0-c7-pedsub-g3-s0-p1-s2-sh.csv 6,saltro-mcm0-c7-pedsub-g3-s1-p1-s1-sh.csv 6,saltro-mcm0-c7-pedsub-g3-s1-p1-s2-sh.csv 6,saltro-mcm0-c7-pedsub-g3-s3-p1-s1-sh.csv 6,saltro-mcm0-c7-pedsub-g3-s3-p1-s2-sh.csv 6,saltro-mcm0-c7-pedsub-g3-s7-p1-s1-sh.csv 6,saltro-mcm0-c7-pedsub-g3-s7-p1-s2-sh.csv */ #include #include #include #include #include #include #include #include #include #include #include #include char infile[256]; char dirs[256]; int csvexist[20] = {0}; int getParameters(int argc, char **argv); void scanInfile(FILE *fin, char *csvfile); int csvBits(char *file); int csvPedestalGain(char *file); int csvPedestalShaper(char *file); int csvPedsubGain(char *file); int csvPedsubShaper(char *file); int csvZerosupGain(char *file); int csvZerosupShaper(char *file); int csvPedestalGain(char *file) { FILE *fin; char buffer[512]; int line = 0; int saltronb,channel,mcmnb,chipaddress,gain,shaper,polarity,source; unsigned int Error,Warning; int entries; float pedmin; float pedmax; float pedmean; float rmsmin; float rmsmax; float rmsmean; float ped,rms; sscanf(file,"saltro-mcm%d-c%d-pedestal-g%d-s%d-p%d-s%d.csv", &mcmnb,&chipaddress,&gain,&shaper,&polarity,&source); fin = fopen(file,"r"); if (fin == NULL) { printf("%s: file %s not found\n",__FUNCTION__,file); return 1; } pedmin = 1024.0; pedmax = 0.0; pedmean = 0.0; rmsmin = 1024.0; rmsmax = 0.0; rmsmean = 0.0; while (fgets(buffer,sizeof(buffer),fin)) { if (line != 0) { sscanf(buffer,"%d,%d,%f,%f,%d,%X,%X", &saltronb,&channel, &ped,&rms,&entries,&Error,&Warning); if (ped < pedmin) pedmin = ped; if (ped > pedmax) pedmax = ped; if (rms < rmsmin) rmsmin = rms; if (rms > rmsmax) rmsmax = rms; pedmean += ped; rmsmean += rms; } line++; } printf("PED gain mean min max, RMS gain mean min max\n"); pedmean /= (float)line; rmsmean /= (float)line; printf("%d %5.2f %5.2f %5.2f\n",gain,pedmean,pedmin,pedmax); printf("%d %5.2f %5.2f %5.2f\n\n",gain,rmsmean,rmsmin,rmsmax); fclose(fin); return 0; } int csvPedestalShaper(char *file) { FILE *fin; char buffer[512]; int line = 0; int saltronb,channel,mcmnb,chipaddress,gain,shaper,polarity,source; unsigned int Error,Warning; int entries; float pedmin; float pedmax; float pedmean; float rmsmin; float rmsmax; float rmsmean; float ped,rms; sscanf(file,"saltro-mcm%d-c%d-pedestal-g%d-s%d-p%d-s%d-sh.csv", &mcmnb,&chipaddress,&gain,&shaper,&polarity,&source); fin = fopen(file,"r"); pedmin = 1024.0; pedmax = 0.0; pedmean = 0.0; rmsmin = 1024.0; rmsmax = 0.0; rmsmean = 0.0; while (fgets(buffer,sizeof(buffer),fin)) { if (line != 0) { sscanf(buffer,"%d,%d,%f,%f,%d,%X,%X", &saltronb,&channel, &ped,&rms,&entries,&Error,&Warning); if (ped < pedmin) pedmin = ped; if (ped > pedmax) pedmax = ped; if (rms < rmsmin) rmsmin = rms; if (rms > rmsmax) rmsmax = rms; pedmean += ped; rmsmean += rms; } line++; } printf("PED shaper mean min max, RMS shaper mean min max\n"); pedmean /= (float)line; rmsmean /= (float)line; printf("%d %5.2f %5.2f %5.2f\n",shaper,pedmean,pedmin,pedmax); printf("%d %5.2f %5.2f %5.2f\n\n",shaper,rmsmean,rmsmin,rmsmax); fclose(fin); return 0; } typedef struct { float peakmean[3]; float pedmean[3]; float peakmean_min[3]; float peakmean_max[3]; float peakrms_min[3]; float peakrms_max[3]; float pedmean_min[3]; float pedmean_max[3]; float pedrms_min[3]; float pedrms_max[3]; float cllengthmean; float cllengthmean_min; float cllengthmean_max; float cllengthrms_min; float cllengthrms_max; } PEDSUB; int csvPedsubGain(char *file) { FILE *fin; PEDSUB pedsub[2]; char buffer[1024]; int line = 0; int line1 = 0; int line2 = 0; int entry = 0; int saltronb,channel,mcmnb,chipaddress,gain,shaper,polarity,source; unsigned int Error,Warning; float peakmean[3]; float peakrms[3]; float pedmean[3]; float pedrms[3]; float peakentries[3]; float pedentries[3]; sscanf(file,"saltro-mcm%d-c%d-pedsub-g%d-s%d-p%d-s%d.csv", &mcmnb,&chipaddress,&gain,&shaper,&polarity,&source); fin = fopen(file,"r"); // pedsub[0].peakmean[0] = 0.0; pedsub[0].peakmean[1] = 0.0; pedsub[0].peakmean[2] = 0.0; pedsub[1].peakmean[0] = 0.0; pedsub[1].peakmean[1] = 0.0; pedsub[1].peakmean[2] = 0.0; pedsub[0].pedmean[0] = 0.0; pedsub[0].pedmean[1] = 0.0; pedsub[0].pedmean[2] = 0.0; pedsub[1].pedmean[0] = 0.0; pedsub[1].pedmean[1] = 0.0; pedsub[1].pedmean[2] = 0.0; // pedsub[0].peakmean_min[0] = 1024.0; pedsub[0].peakmean_max[0] = 0.0; pedsub[0].peakmean_min[1] = 1024.0; pedsub[0].peakmean_max[1] = 0.0; pedsub[0].peakmean_min[2] = 1024.0; pedsub[0].peakmean_max[2] = 0.0; pedsub[1].peakmean_min[0] = 1024.0; pedsub[1].peakmean_max[0] = 0.0; pedsub[1].peakmean_min[1] = 1024.0; pedsub[1].peakmean_max[1] = 0.0; pedsub[1].peakmean_min[2] = 1024.0; pedsub[1].peakmean_max[2] = 0.0; pedsub[0].peakrms_min[0] = 1024.0; pedsub[0].peakrms_max[0] = 0.0; pedsub[0].peakrms_min[1] = 1024.0; pedsub[0].peakrms_max[1] = 0.0; pedsub[0].peakrms_min[2] = 1024.0; pedsub[0].peakrms_max[2] = 0.0; pedsub[1].peakrms_min[0] = 1024.0; pedsub[1].peakrms_max[0] = 0.0; pedsub[1].peakrms_min[1] = 1024.0; pedsub[1].peakrms_max[1] = 0.0; pedsub[1].peakrms_min[2] = 1024.0; pedsub[1].peakrms_max[2] = 0.0; pedsub[0].pedmean_min[0] = 1024.0; pedsub[0].pedmean_max[0] = 0.0; pedsub[0].pedmean_min[1] = 1024.0; pedsub[0].pedmean_max[1] = 0.0; pedsub[0].pedmean_min[2] = 1024.0; pedsub[0].pedmean_max[2] = 0.0; pedsub[1].pedmean_min[0] = 1024.0; pedsub[1].pedmean_max[0] = 0.0; pedsub[1].pedmean_min[1] = 1024.0; pedsub[1].pedmean_max[1] = 0.0; pedsub[1].pedmean_min[2] = 1024.0; pedsub[1].pedmean_max[2] = 0.0; // pedsub[0].pedrms_min[0] = 1024.0; pedsub[0].pedrms_max[0] = 0.0; pedsub[0].pedrms_min[1] = 1024.0; pedsub[0].pedrms_max[1] = 0.0; pedsub[0].pedrms_min[2] = 1024.0; pedsub[0].pedrms_max[2] = 0.0; pedsub[1].pedrms_min[0] = 1024.0; pedsub[1].pedrms_max[0] = 0.0; pedsub[1].pedrms_min[1] = 1024.0; pedsub[1].pedrms_max[1] = 0.0; pedsub[1].pedrms_min[2] = 1024.0; pedsub[1].pedrms_max[2] = 0.0; // while (fgets(buffer,sizeof(buffer),fin)) { if (line != 0) { sscanf(buffer,"%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%X,%X", &saltronb,&channel, &peakmean[0],&peakrms[0],&peakentries[0], &peakmean[1],&peakrms[1],&peakentries[1], &peakmean[2],&peakrms[2],&peakentries[2], &pedmean[0],&pedrms[0],&pedentries[0], &pedmean[1],&pedrms[1],&pedentries[1], &pedmean[2],&pedrms[2],&pedentries[2], &Error,&Warning); if ((channel & 1) == 0) { // even channels entry = 0; line1++; } else { // odd channels entry = 1; line2++; } pedsub[entry].peakmean[0] += peakmean[0]; pedsub[entry].peakmean[1] += peakmean[1]; pedsub[entry].peakmean[2] += peakmean[2]; pedsub[entry].pedmean[0] += pedmean[0]; pedsub[entry].pedmean[1] += pedmean[1]; pedsub[entry].pedmean[2] += pedmean[2]; for (int i = 0; i < 3; i++) { if (peakmean[i] < pedsub[entry].peakmean_min[i]) pedsub[entry].peakmean_min[i] = peakmean[i]; if (peakmean[i] > pedsub[entry].peakmean_max[i]) pedsub[entry].peakmean_max[i] = peakmean[i]; if (peakrms[i] > pedsub[entry].peakrms_max[i]) pedsub[entry].peakrms_max[i] = peakrms[i]; if (pedmean[i] < pedsub[entry].pedmean_min[i]) pedsub[entry].pedmean_min[i] = pedmean[i]; if (pedmean[i] > pedsub[entry].pedmean_max[i]) pedsub[entry].pedmean_max[i] = pedmean[i]; if (pedrms[i] > pedsub[entry].pedrms_max[i]) pedsub[entry].pedrms_max[i] = pedrms[i]; } } line++; } pedsub[0].peakmean[0] /= (float)line1; pedsub[0].peakmean[1] /= (float)line1; pedsub[0].peakmean[2] /= (float)line1; pedsub[0].pedmean[0] /= (float)line1; pedsub[0].pedmean[1] /= (float)line1; pedsub[0].pedmean[2] /= (float)line1; pedsub[1].peakmean[0] /= (float)line2; pedsub[1].peakmean[1] /= (float)line2; pedsub[1].peakmean[2] /= (float)line2; pedsub[1].pedmean[0] /= (float)line2; pedsub[1].pedmean[1] /= (float)line2; pedsub[1].pedmean[2] /= (float)line2; printf("PEDSUB gain=%d source=%d peaktype peakmean peakmin peakmax rmsmax even channels\n",gain,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[0],pedsub[0].peakmean_min[0],pedsub[0].peakmean_max[0],pedsub[0].peakrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[1],pedsub[0].peakmean_min[1],pedsub[0].peakmean_max[1],pedsub[0].peakrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[2],pedsub[0].peakmean_min[2],pedsub[0].peakmean_max[2],pedsub[0].peakrms_max[2]); printf("PEDSUB gain=%d source=%d peaktype peakmean peakmin peakmax rmsmax odd channels\n",gain,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[0],pedsub[1].peakmean_min[0],pedsub[1].peakmean_max[0],pedsub[1].peakrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[1],pedsub[1].peakmean_min[1],pedsub[1].peakmean_max[1],pedsub[1].peakrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[2],pedsub[1].peakmean_min[2],pedsub[1].peakmean_max[2],pedsub[1].peakrms_max[2]); printf("PEDSUB gain=%d source=%d peaktype pedmean pedmin pedmax rmsmax even channels \n",gain,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].pedmean[0],pedsub[0].pedmean_min[0],pedsub[0].pedmean_max[0],pedsub[0].pedrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].pedmean[1],pedsub[0].pedmean_min[1],pedsub[0].pedmean_max[1],pedsub[0].pedrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].pedmean[2],pedsub[0].pedmean_min[2],pedsub[0].pedmean_max[2],pedsub[0].pedrms_max[2]); printf("PEDSUB gain=%d source=%d peaktype pedmean pedmin pedmax rmsmax odd channels \n",gain,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].pedmean[0],pedsub[1].pedmean_min[0],pedsub[1].pedmean_max[0],pedsub[1].pedrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].pedmean[1],pedsub[1].pedmean_min[1],pedsub[1].pedmean_max[1],pedsub[1].pedrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].pedmean[2],pedsub[1].pedmean_min[2],pedsub[1].pedmean_max[2],pedsub[1].pedrms_max[2]); fclose(fin); return 0; } int csvZerosupGain(char *file) { FILE *fin; PEDSUB pedsub[2]; char buffer[1024]; int line = 0; int line1 = 0; int line2 = 0; int entry = 0; int saltronb,channel,mcmnb,chipaddress,gain,shaper,polarity,source; unsigned int Error,Warning; float peakmean[3]; float peakrms[3]; float peakentries[3]; float cllengthmean; float cllengthrms; float cllengthentries; sscanf(file,"saltro-mcm%d-c%d-zerosup-g%d-s%d-p%d-s%d.csv", &mcmnb,&chipaddress,&gain,&shaper,&polarity,&source); fin = fopen(file,"r"); // pedsub[0].peakmean[0] = 0.0; pedsub[0].peakmean[1] = 0.0; pedsub[0].peakmean[2] = 0.0; pedsub[1].peakmean[0] = 0.0; pedsub[1].peakmean[1] = 0.0; pedsub[1].peakmean[2] = 0.0; // pedsub[0].peakmean_min[0] = 1024.0; pedsub[0].peakmean_max[0] = 0.0; pedsub[0].peakmean_min[1] = 1024.0; pedsub[0].peakmean_max[1] = 0.0; pedsub[0].peakmean_min[2] = 1024.0; pedsub[0].peakmean_max[2] = 0.0; pedsub[1].peakmean_min[0] = 1024.0; pedsub[1].peakmean_max[0] = 0.0; pedsub[1].peakmean_min[1] = 1024.0; pedsub[1].peakmean_max[1] = 0.0; pedsub[1].peakmean_min[2] = 1024.0; pedsub[1].peakmean_max[2] = 0.0; pedsub[0].peakrms_min[0] = 1024.0; pedsub[0].peakrms_max[0] = 0.0; pedsub[0].peakrms_min[1] = 1024.0; pedsub[0].peakrms_max[1] = 0.0; pedsub[0].peakrms_min[2] = 1024.0; pedsub[0].peakrms_max[2] = 0.0; pedsub[1].peakrms_min[0] = 1024.0; pedsub[1].peakrms_max[0] = 0.0; pedsub[1].peakrms_min[1] = 1024.0; pedsub[1].peakrms_max[1] = 0.0; pedsub[1].peakrms_min[2] = 1024.0; pedsub[1].peakrms_max[2] = 0.0; // pedsub[0].cllengthmean = 0.0; pedsub[0].cllengthmean_min = 1024.0; pedsub[0].cllengthmean_max = 0.0; pedsub[0].cllengthrms_max = 0.0; pedsub[1].cllengthmean = 0.0; pedsub[1].cllengthmean_min = 1024.0; pedsub[1].cllengthmean_max = 0.0; pedsub[1].cllengthrms_max = 0.0; // while (fgets(buffer,sizeof(buffer),fin)) { if (line != 0) { sscanf(buffer,"%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%X,%X", &saltronb,&channel, &peakmean[0],&peakrms[0],&peakentries[0], &peakmean[1],&peakrms[1],&peakentries[1], &peakmean[2],&peakrms[2],&peakentries[2], &cllengthmean,&cllengthrms,&cllengthentries, &Error,&Warning); if ((channel & 1) == 0) { // even channels entry = 0; line1++; } else { // odd channels entry = 1; line2++; } pedsub[entry].peakmean[0] += peakmean[0]; pedsub[entry].peakmean[1] += peakmean[1]; pedsub[entry].peakmean[2] += peakmean[2]; for (int i = 0; i < 3; i++) { if (peakmean[i] < pedsub[entry].peakmean_min[i]) pedsub[entry].peakmean_min[i] = peakmean[i]; if (peakmean[i] > pedsub[entry].peakmean_max[i]) pedsub[entry].peakmean_max[i] = peakmean[i]; if (peakrms[i] > pedsub[entry].peakrms_max[i]) pedsub[entry].peakrms_max[i] = peakrms[i]; } pedsub[entry].cllengthmean += cllengthmean; if (cllengthmean < pedsub[entry].cllengthmean_min) pedsub[entry].cllengthmean_min = cllengthmean; if (cllengthmean > pedsub[entry].cllengthmean_max) pedsub[entry].cllengthmean_max = cllengthmean; if (cllengthrms > pedsub[entry].cllengthrms_max) pedsub[entry].cllengthrms_max = cllengthrms; } line++; } pedsub[0].peakmean[0] /= (float)line1; pedsub[0].peakmean[1] /= (float)line1; pedsub[0].peakmean[2] /= (float)line1; pedsub[1].peakmean[0] /= (float)line2; pedsub[1].peakmean[1] /= (float)line2; pedsub[1].peakmean[2] /= (float)line2; pedsub[0].cllengthmean /= (float)line1; pedsub[1].cllengthmean /= (float)line2; printf("ZEROSUP gain=%d source=%d peaktype peakmean peakmin peakmax rmsmax even channels\n",gain,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[0],pedsub[0].peakmean_min[0],pedsub[0].peakmean_max[0],pedsub[0].peakrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[1],pedsub[0].peakmean_min[1],pedsub[0].peakmean_max[1],pedsub[0].peakrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[2],pedsub[0].peakmean_min[2],pedsub[0].peakmean_max[2],pedsub[0].peakrms_max[2]); printf("ZEROSUP gain=%d source=%d peaktype peakmean peakmin peakmax rmsmax odd channels\n",gain,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[0],pedsub[1].peakmean_min[0],pedsub[1].peakmean_max[0],pedsub[1].peakrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[1],pedsub[1].peakmean_min[1],pedsub[1].peakmean_max[1],pedsub[1].peakrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[2],pedsub[1].peakmean_min[2],pedsub[1].peakmean_max[2],pedsub[1].peakrms_max[2]); printf("ZEROSUP gain=%d source=%d cllengthmean clengthmeamn_min clengthmeamn_max cllengthrms_max even channels \n",gain,source); printf("%6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].cllengthmean,pedsub[0].cllengthmean_min,pedsub[0].cllengthmean_max,pedsub[0].cllengthrms_max); printf("ZEROSUP gain=%d source=%d cllengthmean clengthmeamn_min clengthmeamn_max cllengthrms_max odd channels \n",gain,source); printf("%6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].cllengthmean,pedsub[1].cllengthmean_min,pedsub[1].cllengthmean_max,pedsub[1].cllengthrms_max); fclose(fin); return 0; } int csvPedsubShaper(char *file) { FILE *fin; PEDSUB pedsub[2]; char buffer[1024]; int line = 0; int line1 = 0; int line2 = 0; int entry = 0; int saltronb,channel,mcmnb,chipaddress,gain,shaper,polarity,source; unsigned int Error,Warning; float peakmean[3]; float peakrms[3]; float pedmean[3]; float pedrms[3]; float peakentries[3]; float pedentries[3]; float cllengthmean; float cllengthrms; float cllengthentries; // sscanf(file,"saltro-mcm%d-c%d-pedsub-g%d-s%d-p%d-s%d-sh.csv", &mcmnb,&chipaddress,&gain,&shaper,&polarity,&source); fin = fopen(file,"r"); // pedsub[0].peakmean[0] = 0.0; pedsub[0].peakmean[1] = 0.0; pedsub[0].peakmean[2] = 0.0; pedsub[1].peakmean[0] = 0.0; pedsub[1].peakmean[1] = 0.0; pedsub[1].peakmean[2] = 0.0; pedsub[0].pedmean[0] = 0.0; pedsub[0].pedmean[1] = 0.0; pedsub[0].pedmean[2] = 0.0; pedsub[1].pedmean[0] = 0.0; pedsub[1].pedmean[1] = 0.0; pedsub[1].pedmean[2] = 0.0; // pedsub[0].peakmean_min[0] = 1024.0; pedsub[0].peakmean_max[0] = 0.0; pedsub[0].peakmean_min[1] = 1024.0; pedsub[0].peakmean_max[1] = 0.0; pedsub[0].peakmean_min[2] = 1024.0; pedsub[0].peakmean_max[2] = 0.0; pedsub[1].peakmean_min[0] = 1024.0; pedsub[1].peakmean_max[0] = 0.0; pedsub[1].peakmean_min[1] = 1024.0; pedsub[1].peakmean_max[1] = 0.0; pedsub[1].peakmean_min[2] = 1024.0; pedsub[1].peakmean_max[2] = 0.0; // pedsub[0].peakrms_min[0] = 1024.0; pedsub[0].peakrms_max[0] = 0.0; pedsub[0].peakrms_min[1] = 1024.0; pedsub[0].peakrms_max[1] = 0.0; pedsub[0].peakrms_min[2] = 1024.0; pedsub[0].peakrms_max[2] = 0.0; pedsub[1].peakrms_min[0] = 1024.0; pedsub[1].peakrms_max[0] = 0.0; pedsub[1].peakrms_min[1] = 1024.0; pedsub[1].peakrms_max[1] = 0.0; pedsub[1].peakrms_min[2] = 1024.0; pedsub[1].peakrms_max[2] = 0.0; // pedsub[0].pedmean_min[0] = 1024.0; pedsub[0].pedmean_max[0] = 0.0; pedsub[0].pedmean_min[1] = 1024.0; pedsub[0].pedmean_max[1] = 0.0; pedsub[0].pedmean_min[2] = 1024.0; pedsub[0].pedmean_max[2] = 0.0; pedsub[1].pedmean_min[0] = 1024.0; pedsub[1].pedmean_max[0] = 0.0; pedsub[1].pedmean_min[1] = 1024.0; pedsub[1].pedmean_max[1] = 0.0; pedsub[1].pedmean_min[2] = 1024.0; pedsub[1].pedmean_max[2] = 0.0; // pedsub[0].pedrms_min[0] = 1024.0; pedsub[0].pedrms_max[0] = 0.0; pedsub[0].pedrms_min[1] = 1024.0; pedsub[0].pedrms_max[1] = 0.0; pedsub[0].pedrms_min[2] = 1024.0; pedsub[0].pedrms_max[2] = 0.0; pedsub[1].pedrms_min[0] = 1024.0; pedsub[1].pedrms_max[0] = 0.0; pedsub[1].pedrms_min[1] = 1024.0; pedsub[1].pedrms_max[1] = 0.0; pedsub[1].pedrms_min[2] = 1024.0; pedsub[1].pedrms_max[2] = 0.0; // pedsub[0].cllengthmean = 0.0; pedsub[0].cllengthmean_min = 1024.0; pedsub[0].cllengthmean_max = 0.0; pedsub[0].cllengthrms_max = 0.0; pedsub[1].cllengthmean = 0.0; pedsub[1].cllengthmean_min = 1024.0; pedsub[1].cllengthmean_max = 0.0; pedsub[1].cllengthrms_max = 0.0; // while (fgets(buffer,sizeof(buffer),fin)) { if (line != 0) { sscanf(buffer,"%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%X,%X", &saltronb,&channel, &peakmean[0],&peakrms[0],&peakentries[0], &peakmean[1],&peakrms[1],&peakentries[1], &peakmean[2],&peakrms[2],&peakentries[2], &pedmean[0],&pedrms[0],&pedentries[0], &pedmean[1],&pedrms[1],&pedentries[1], &pedmean[2],&pedrms[2],&pedentries[2], &cllengthmean,&cllengthrms,&cllengthentries, &Error,&Warning); if ((channel & 1) == 0) { // even channels entry = 0; line1++; } else { // odd channels entry = 1; line2++; } pedsub[entry].peakmean[0] += peakmean[0]; pedsub[entry].peakmean[1] += peakmean[1]; pedsub[entry].peakmean[2] += peakmean[2]; pedsub[entry].pedmean[0] += pedmean[0]; pedsub[entry].pedmean[1] += pedmean[1]; pedsub[entry].pedmean[2] += pedmean[2]; for (int i = 0; i < 3; i++) { if (peakmean[i] < pedsub[entry].peakmean_min[i]) pedsub[entry].peakmean_min[i] = peakmean[i]; if (peakmean[i] > pedsub[entry].peakmean_max[i]) pedsub[entry].peakmean_max[i] = peakmean[i]; if (peakrms[i] > pedsub[entry].peakrms_max[i]) pedsub[entry].peakrms_max[i] = peakrms[i]; if (pedmean[i] < pedsub[entry].pedmean_min[i]) pedsub[entry].pedmean_min[i] = pedmean[i]; if (pedmean[i] > pedsub[entry].pedmean_max[i]) pedsub[entry].pedmean_max[i] = pedmean[i]; if (pedrms[i] > pedsub[entry].pedrms_max[i]) pedsub[entry].pedrms_max[i] = pedrms[i]; } pedsub[entry].cllengthmean += cllengthmean; if (cllengthmean < pedsub[entry].cllengthmean_min) pedsub[entry].cllengthmean_min = cllengthmean; if (cllengthmean > pedsub[entry].cllengthmean_max) pedsub[entry].cllengthmean_max = cllengthmean; if (cllengthrms > pedsub[entry].cllengthrms_max) pedsub[entry].cllengthrms_max = cllengthrms; } line++; } pedsub[0].peakmean[0] /= (float)line1; pedsub[0].peakmean[1] /= (float)line1; pedsub[0].peakmean[2] /= (float)line1; pedsub[0].pedmean[0] /= (float)line1; pedsub[0].pedmean[1] /= (float)line1; pedsub[0].pedmean[2] /= (float)line1; pedsub[1].peakmean[0] /= (float)line2; pedsub[1].peakmean[1] /= (float)line2; pedsub[1].peakmean[2] /= (float)line2; pedsub[1].pedmean[0] /= (float)line2; pedsub[1].pedmean[1] /= (float)line2; pedsub[1].pedmean[2] /= (float)line2; pedsub[0].cllengthmean /= (float)line1; pedsub[1].cllengthmean /= (float)line2; printf("PEDSUB shaper=%d source=%d peaktype peakmean peakmin peakmax rmsmax even channels\n",shaper,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[0],pedsub[0].peakmean_min[0],pedsub[0].peakmean_max[0],pedsub[0].peakrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[1],pedsub[0].peakmean_min[1],pedsub[0].peakmean_max[1],pedsub[0].peakrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[2],pedsub[0].peakmean_min[2],pedsub[0].peakmean_max[2],pedsub[0].peakrms_max[2]); printf("PEDSUB shaper=%d source=%d peaktype peakmean peakmin peakmax rmsmax odd channels\n",shaper,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[0],pedsub[1].peakmean_min[0],pedsub[1].peakmean_max[0],pedsub[1].peakrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[1],pedsub[1].peakmean_min[1],pedsub[1].peakmean_max[1],pedsub[1].peakrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[2],pedsub[1].peakmean_min[2],pedsub[1].peakmean_max[2],pedsub[1].peakrms_max[2]); printf("PEDSUB shaper=%d source=%d peaktype pedmean pedmin pedmax rmsmax even channels \n",shaper,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].pedmean[0],pedsub[0].pedmean_min[0],pedsub[0].pedmean_max[0],pedsub[0].pedrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].pedmean[1],pedsub[0].pedmean_min[1],pedsub[0].pedmean_max[1],pedsub[0].pedrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].pedmean[2],pedsub[0].pedmean_min[2],pedsub[0].pedmean_max[2],pedsub[0].pedrms_max[2]); printf("PEDSUB shaper=%d source=%d peaktype pedmean pedmin pedmax rmsmax odd channels \n",shaper,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].pedmean[0],pedsub[1].pedmean_min[0],pedsub[1].pedmean_max[0],pedsub[1].pedrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].pedmean[1],pedsub[1].pedmean_min[1],pedsub[1].pedmean_max[1],pedsub[1].pedrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].pedmean[2],pedsub[1].pedmean_min[2],pedsub[1].pedmean_max[2],pedsub[1].pedrms_max[2]); printf("PEDSUB shaper=%d source=%d cllengthmean clengthmeamn_min clengthmeamn_max cllengthrms_max even channels \n",shaper,source); printf("%6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].cllengthmean,pedsub[0].cllengthmean_min,pedsub[0].cllengthmean_max,pedsub[0].cllengthrms_max); printf("PEDSUB shaper=%d source=%d cllengthmean clengthmeamn_min clengthmeamn_max cllengthrms_max odd channels \n",shaper,source); printf("%6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].cllengthmean,pedsub[1].cllengthmean_min,pedsub[1].cllengthmean_max,pedsub[1].cllengthrms_max); fclose(fin); return 0; } int csvZerosupShaper(char *file) { FILE *fin; PEDSUB pedsub[2]; char buffer[1024]; int line = 0; int line1 = 0; int line2 = 0; int entry = 0; int saltronb,channel,mcmnb,chipaddress,gain,shaper,polarity,source; unsigned int Error,Warning; float peakmean[3]; float peakrms[3]; float peakentries[3]; float cllengthmean; float cllengthrms; float cllengthentries; // sscanf(file,"saltro-mcm%d-c%d-zerosup-g%d-s%d-p%d-s%d-sh.csv", &mcmnb,&chipaddress,&gain,&shaper,&polarity,&source); fin = fopen(file,"r"); // pedsub[0].peakmean[0] = 0.0; pedsub[0].peakmean[1] = 0.0; pedsub[0].peakmean[2] = 0.0; pedsub[1].peakmean[0] = 0.0; pedsub[1].peakmean[1] = 0.0; pedsub[1].peakmean[2] = 0.0; // pedsub[0].peakmean_min[0] = 1024.0; pedsub[0].peakmean_max[0] = 0.0; pedsub[0].peakmean_min[1] = 1024.0; pedsub[0].peakmean_max[1] = 0.0; pedsub[0].peakmean_min[2] = 1024.0; pedsub[0].peakmean_max[2] = 0.0; pedsub[1].peakmean_min[0] = 1024.0; pedsub[1].peakmean_max[0] = 0.0; pedsub[1].peakmean_min[1] = 1024.0; pedsub[1].peakmean_max[1] = 0.0; pedsub[1].peakmean_min[2] = 1024.0; pedsub[1].peakmean_max[2] = 0.0; // pedsub[0].peakrms_min[0] = 1024.0; pedsub[0].peakrms_max[0] = 0.0; pedsub[0].peakrms_min[1] = 1024.0; pedsub[0].peakrms_max[1] = 0.0; pedsub[0].peakrms_min[2] = 1024.0; pedsub[0].peakrms_max[2] = 0.0; pedsub[1].peakrms_min[0] = 1024.0; pedsub[1].peakrms_max[0] = 0.0; pedsub[1].peakrms_min[1] = 1024.0; pedsub[1].peakrms_max[1] = 0.0; pedsub[1].peakrms_min[2] = 1024.0; pedsub[1].peakrms_max[2] = 0.0; // pedsub[0].cllengthmean = 0.0; pedsub[0].cllengthmean_min = 1024.0; pedsub[0].cllengthmean_max = 0.0; pedsub[0].cllengthrms_max = 0.0; pedsub[1].cllengthmean = 0.0; pedsub[1].cllengthmean_min = 1024.0; pedsub[1].cllengthmean_max = 0.0; pedsub[1].cllengthrms_max = 0.0; // while (fgets(buffer,sizeof(buffer),fin)) { if (line != 0) { sscanf(buffer,"%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%X,%X", &saltronb,&channel, &peakmean[0],&peakrms[0],&peakentries[0], &peakmean[1],&peakrms[1],&peakentries[1], &peakmean[2],&peakrms[2],&peakentries[2], &cllengthmean,&cllengthrms,&cllengthentries, &Error,&Warning); if ((channel & 1) == 0) { // even channels entry = 0; line1++; } else { // odd channels entry = 1; line2++; } pedsub[entry].peakmean[0] += peakmean[0]; pedsub[entry].peakmean[1] += peakmean[1]; pedsub[entry].peakmean[2] += peakmean[2]; for (int i = 0; i < 3; i++) { if (peakmean[i] < pedsub[entry].peakmean_min[i]) pedsub[entry].peakmean_min[i] = peakmean[i]; if (peakmean[i] > pedsub[entry].peakmean_max[i]) pedsub[entry].peakmean_max[i] = peakmean[i]; if (peakrms[i] > pedsub[entry].peakrms_max[i]) pedsub[entry].peakrms_max[i] = peakrms[i]; } pedsub[entry].cllengthmean += cllengthmean; if (cllengthmean < pedsub[entry].cllengthmean_min) pedsub[entry].cllengthmean_min = cllengthmean; if (cllengthmean > pedsub[entry].cllengthmean_max) pedsub[entry].cllengthmean_max = cllengthmean; if (cllengthrms > pedsub[entry].cllengthrms_max) pedsub[entry].cllengthrms_max = cllengthrms; } line++; } pedsub[0].peakmean[0] /= (float)line1; pedsub[0].peakmean[1] /= (float)line1; pedsub[0].peakmean[2] /= (float)line1; pedsub[1].peakmean[0] /= (float)line2; pedsub[1].peakmean[1] /= (float)line2; pedsub[1].peakmean[2] /= (float)line2; pedsub[0].cllengthmean /= (float)line1; pedsub[1].cllengthmean /= (float)line2; printf("ZEROSUP shaper=%d source=%d peaktype peakmean peakmin peakmax rmsmax even channels\n",shaper,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[0],pedsub[0].peakmean_min[0],pedsub[0].peakmean_max[0],pedsub[0].peakrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[1],pedsub[0].peakmean_min[1],pedsub[0].peakmean_max[1],pedsub[0].peakrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].peakmean[2],pedsub[0].peakmean_min[2],pedsub[0].peakmean_max[2],pedsub[0].peakrms_max[2]); printf("ZEROSUP shaper=%d source=%d peaktype peakmean peakmin peakmax rmsmax odd channels\n",shaper,source); printf("0 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[0],pedsub[1].peakmean_min[0],pedsub[1].peakmean_max[0],pedsub[1].peakrms_max[0]); printf("1 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[1],pedsub[1].peakmean_min[1],pedsub[1].peakmean_max[1],pedsub[1].peakrms_max[1]); printf("2 %6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].peakmean[2],pedsub[1].peakmean_min[2],pedsub[1].peakmean_max[2],pedsub[1].peakrms_max[2]); printf("ZEROSUP shaper=%d source=%d cllengthmean clengthmeamn_min clengthmeamn_max cllengthrms_max even channels \n",shaper,source); printf("%6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[0].cllengthmean,pedsub[0].cllengthmean_min,pedsub[0].cllengthmean_max,pedsub[0].cllengthrms_max); printf("ZEROSUP shaper=%d source=%d cllengthmean clengthmeamn_min clengthmeamn_max cllengthrms_max odd channels \n",shaper,source); printf("%6.2f,%6.2f,%6.2f,%6.2f\n",pedsub[1].cllengthmean,pedsub[1].cllengthmean_min,pedsub[1].cllengthmean_max,pedsub[1].cllengthrms_max); fclose(fin); return 0; } int csvBits(char *file) { FILE *fin; char buffer[512]; int line = 0; int saltronb,channel,mcmnb,chipaddress,gain,shaper,polarity,source; unsigned int Error,Warning; float bits[10]; float min[10]; float max[10]; float mean[10]; sscanf(file,"saltro-mcm%d-c%d-bits-g%d-s%d-p%d-s%d.csv", &mcmnb,&chipaddress,&gain,&shaper,&polarity,&source); fin = fopen(file,"r"); for (int i = 0; i < 10; i++) { min[i] = 100.0; max[i] = 0.0; mean[i] = 0.0; } while (fgets(buffer,sizeof(buffer),fin)) { if (line != 0) { sscanf(buffer,"%d,%d,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%X,%X", &saltronb,&channel, &bits[0],&bits[1],&bits[2],&bits[3],&bits[4],&bits[5],&bits[6],&bits[7],&bits[8],&bits[9], &Error,&Warning); for (int i = 0; i < 10; i++) { if (bits[i] < min[i]) { min[i] = bits[i]; } if (bits[i] > max[i]) { max[i] = bits[i]; } mean[i] += bits[i]; } } line++; } printf("BITS mean min max\n"); for ( int i = 0; i < 10; i++) { mean[i] /= (float)line; printf("%d %5.2f %5.2f %5.2f\n",i,mean[i],min[i],max[i]); } fclose(fin); return 0; } int getParameters(int argc, char **argv) { const char *short_options = "d:ii"; int option_index = 0; int c; int nbarg = 0; const struct option long_options[]= { {"dirs",1,0,'d'}, {"infile",1,0,'i'}, {0,0,0,0}, }; if (argc > 1) { while ((c = getopt_long(argc, argv, short_options, long_options, &option_index)) != EOF) { switch (c) { case 'd': nbarg++; strcpy(dirs,optarg); break; case 'i': nbarg++; strcpy(infile,optarg); break; default: printf("%s: Unknown option %s\n",__FUNCTION__,argv[optind-1]); return 1; } } } if (nbarg != 2) { printf("%s: wrong number of arguments %d\n",__FUNCTION__,nbarg); printf("%s: ./csvall --dirs --infile \n", __FUNCTION__); return 2; } return 0; } void scanCsvfile(FILE *fcsv, FILE *fout,int exist,int saltronb) { char buffer[512]; int line = 0; // printf("%s START\n",__FUNCTION__); while (fgets(buffer,sizeof(buffer),fcsv)) { if (buffer[0] != '#') { if ((exist == 0) && (line == 0)) fprintf(fout,"Saltronb,%s",buffer); else if (line > 0) fprintf(fout,"%d,%s",saltronb,buffer); line++; } } } void scanInfile(FILE *fin, char *csvdir) { FILE *fcsv,*fout; char filename[128]; char fileout[128]; int testtype; int saltronb; char testname[256]; char buffer[512]; struct stat fileBuffer; while (fgets(buffer,sizeof(buffer),fin)) { printf("%s %s",__FUNCTION__,buffer); if (buffer[0] != '#') { sscanf(buffer,"%d,%s",&testtype,filename); sscanf(csvdir,"%d%s",&saltronb,testname); if (testtype != 1) { sscanf(filename,"saltro%d-%s",&saltronb,testname); sprintf(fileout,"saltro-%s",testname); } else sprintf(fileout,"saltro-%s",filename); sprintf(buffer,"%s/%s",csvdir,filename); // printf("%s %s %d %s\n",__FUNCTION__,buffer,csvexist[testtype],fileout); csvexist[testtype] = 0; if (stat (fileout, &fileBuffer) == 0) csvexist[testtype] = 1; fout = fopen(fileout,"a"); fcsv = fopen(buffer,"r"); if (fcsv != NULL) { scanCsvfile(fcsv,fout,csvexist[testtype],saltronb); fclose(fcsv); } else { printf("FILE %s not found\n",buffer); } fclose(fout); } } } int main(int argc, char *argv[]) { FILE *fin; FILE *fdirs; int len; char buffer[512]; char filename[512]; int testtype; // Parameters if (getParameters(argc,argv) != 0) return(1); printf("Arguments: directories %s infile %s\n",dirs,infile); fdirs = fopen(dirs,"r"); if (fdirs == NULL) { printf("%s: could not open directory file %s\n",argv[0],dirs); fclose(fdirs); return 2; } while (fgets(buffer,sizeof(buffer),fdirs)) { len = strlen(buffer); if (buffer[len-1] == '\n') buffer[len-1] = '\0'; sprintf(filename,"%s/%s",buffer,infile); fin = fopen(filename,"r"); if (fin == NULL) { printf("%s: could not open input file %s\n",argv[0],filename); } else { scanInfile(fin,buffer); fclose(fin); } } fclose(fdirs); fin = fopen("csvfiles.txt","r"); if (fin == NULL) { printf("Could not open csvfiles.txt\n"); return 1; } while (fgets(buffer,sizeof(buffer),fin)) { sscanf(buffer,"%d,%s",&testtype,filename); printf("%d %s\n",testtype,filename); switch (testtype) { case 3: csvPedestalGain(filename);break; case 4: csvPedestalShaper(filename);break; case 5: csvPedsubGain(filename);break; case 6: csvPedsubShaper(filename);break; case 7: csvZerosupGain(filename);break; case 8: csvZerosupShaper(filename);break; case 9: csvBits(filename);break; } } fclose(fin); return (0); }