/* $Id: gsII_utils.c,v 1.1 2011/03/02 21:52:15 tl Exp $ */ #include #ifdef MAC #include #endif #ifdef LINUX #include #endif #ifdef SOLARIS #include #endif #include "efftape.h" #include "gsII.h" #include "GSudpReceiver.h" /* global variables */ int have_get_gsII_in_drive = 0; char get_gsII_in_drive[128]; /*---------------------------------------------------*/ int set_gsII_indrive(char *name) { strcpy(get_gsII_in_drive, name); have_get_gsII_in_drive = 1; printf("setting data input name to: %s\n", get_gsII_in_drive); fflush(stdout); return (0); } /*------------------------------------------------------------*/ int print_tape_header(TAPE_HEADER * hdr) { printf("RecordType..: %i, ", hdr->RecordType); printf("RecordLength: %i, ", hdr->RecordLength); printf("RecordVer...: %i\n", hdr->RecordVer); printf("ByteOrder_1.: %i, ", hdr->ByteOrder_1); printf("ByteOrder_2.: %i\n", hdr->ByteOrder_2); printf("TapeNum.....: %i, ", hdr->TapeNum); printf("TapeUnit....: %i\n", hdr->TapeUnit); printf("exp_title1..: %s\n", hdr->exp_title1); printf("exp_title2..: %s\n", hdr->exp_title2); printf("date........: %s, ", hdr->date); printf("time........: %s\n", hdr->time); return (0); } /*------------------------------------------------------------*/ int print_file_header(FILE_HEADER * hdr) { printf("RecordType..: %i, ", hdr->RecordType); printf("RecordLength: %i, ", hdr->RecordLength); printf("RecordVer...: %i\n", hdr->RecordVer); printf("RunNumber...: %i, ", hdr->RunNumber); printf("FileNumber..: %i\n", hdr->FileNumber); printf("run_title1..: %s\n", hdr->run_title1); printf("run_title2..: %s\n", hdr->run_title2); return (0); } /*------------------------------------------------------------*/ int err_print(int i) { switch (i) { case SUCCESS: printf("valid events..................[SUCCESS].....................: "); break; case GSIIERRNEWBUF: printf("buffer reads..................[GSIIERRNEWBUF]...............: "); break; case GSIIERRFILEHEAD: printf("file headers..................[GSIIERRFILEHEAD].............: "); break; case FILEMARK: printf("end of files (eof)............[FILEMARK]....................: "); break; case GSIITAPEHEAD: printf("tape headers..................[GSIITAPEHEAD]................: "); break; case GSIIMULTOOLOW: printf("multiplicity too low..........[GSIIMULTOOLOW]...............: "); break; case GSIIERRSTART: printf("no begin event markings.......[GSIIERRSTART]................: "); break; case GSIIERRSPACE: printf("header overflow of buffer.....[GSIIERRSPACE]................: "); break; case GSIIERRMAXSANE: printf("event too long (not sane).....[GSIIERRMAXSANE]..............: "); break; case GSIIERRBUFLEFT: printf("event overflow of buffer......[GSIIERRBUFLEFT]..............: "); break; case GSIIERRBLOCK: printf("no end of event marking.......[GSIIERRBLOCK]................: "); break; case GSIIERREBSIZE: printf("buffersize too large..........[GSIIERREBSIZE]...............: "); break; case FERAERRNOHEAD: printf("FERAERRNOHEAD.................[FERAERRNOHEAD]...............: "); break; case FERAERRNEWHEAD: printf("FERAERRNEWHEAD................[FERAERRNEWHEAD]..............: "); break; case GSIIERRCONT: printf("GSIIERRCONT...................[GSIIERRCONT].................: "); break; case GET_1_OF_N_RECVFROM_ERROR: printf("GET_1_OF_N_RECVFROM_ERROR.....[GET_1_OF_N_RECVFROM_ERROR]...: "); break; case GET_REST_OF_N_RECVFROM_ERROR: printf("GET_REST_OF_N_RECVFROM_ERROR..[GET_REST_OF_N_RECVFROM_ERROR]: "); break; case EVENT_BUFFER_OVERFLOW_ERROR: printf("EVENT_BUFFER_OVERFLOW_ERROR...[EVENT_BUFFER_OVERFLOW_ERROR].: "); break; case UNEXPECTED_FRAGMENT_ERROR: printf("UNEXPECTED_FRAGMENT_ERROR.....[UNEXPECTED_FRAGMENT_ERROR]...: "); break; case EMPTY_FRAGMENT_ERROR: printf("EMPTY_FRAGMENT_ERROR..........[EMPTY_FRAGMENT_ERROR]........: "); break; case CHECKSUM_FAILURE_ERROR: printf("CHECKSUM_FAILURE_ERROR........[CHECKSUM_FAILURE_ERROR]......: "); break; default: printf("unknown error..[update gsII_uils.c err_print]...............: "); break; } return (0); } /*----------------------------------------------------------------*/ int print_buffer_header(EVENT_BUFFER * eb, int bitset[16]) { /* print all information */ printf("---------------------------------\n"); printf("RecordType..: %5i, ", eb->RecordType); printf("RecordLength: %5i, ", eb->RecordLength); printf("RecordVer...: %5i\n", eb->RecordVer); printf("HeaderBytes.: %5i, ", eb->HeaderBytes); printf("EffNumber...: %5i, ", eb->EffNumber); printf("StreamID....: %5i\n", eb->StreamID); printf("EffSequence.: %5i, ", eb->EffSequence); printf("ModeFlags...:0x%4.4x, ", eb->ModeFlags); printf("DataLength..: %5i\n", eb->DataLength); printf("ChecksumType: %5i, ", eb->ChecksumType); printf("Checksum....: %5i\n", eb->Checksum); printf("--->"); if (bitset[1]) printf(" [gain]"); if (bitset[2]) printf(" [time_veto]"); if (bitset[3]) printf(" [hon_veto]"); printf("\n"); printf("--->"); if (bitset[4]) printf(" [wrt_ge_t]"); if (bitset[5]) printf(" [wrt_ge_full]"); if (bitset[6]) printf(" [wrt_bgo_data]"); if (bitset[7]) printf(" [wrt_all_ge]"); if (bitset[8]) printf(" [wrt_bgo_det]"); printf("\n"); printf("--->"); if (bitset[9]) printf(" [isomer_tag]"); if (bitset[10]) printf(" [rf_sub]"); printf("\n"); printf("---------------------------------\n"); /* done */ return (SUCCESS); } /*------------------------------------*/ int wr_tcal(short int toff[NGE]) { /* declarations */ FILE *fp; int i; /* save */ fp = fopen("TCAL.DUMP", "w"); if (fp != NULL) { for (i = 0; i < NGE; i++) fprintf(fp, "%i %i\n", i, toff[i]); fclose(fp); printf("TCAL.DUMP written\n"); } else printf("could not open TCAL.DUMP file\n"); /* done */ return (0); } /*-----------------------------------*/ int rd_tcal(short int toff[NGE]) { /* declarations */ FILE *fp; int i; int i1, i2, st; /* save */ fp = fopen("TCAL.DUMP", "r"); if (fp == NULL) { for (i = 0; i < NGE; i++) toff[i] = 0; printf("no TCAL.DUMP file, setting toff to 0\n"); fclose(fp); return (0); }; /* read the values */ st = 2; i = 0; while (st == 2) { st = fscanf(fp, "%i %i\n", &i1, &i2); if (st == 2) { toff[i1] = i2; /* printf("%i --> %i\n",i1,i2); */ i++; } } fclose(fp); printf("TCAL.DUMP read, %i entries\n", i); /* done */ return (0); }