00001 #include "EEstarTrig.h"
00002
00003
00004
00005 ClassImp(EEstarTrig)
00006
00007
00008
00009
00010
00011 EEstarTrig :: EEstarTrig() {
00012 clear();
00013 }
00014
00015
00016
00017
00018 EEstarTrig :: ~EEstarTrig() { }
00019
00020
00021
00022
00023
00024
00025 void EEstarTrig :: clear() {
00026 #define clearVec(x) memset( x, 0, sizeof(x))
00027
00028 bX48hi=bX48lo=bX7bit=0;
00029 daqbits=0;
00030 clearVec( offline_id );
00031 clearVec( EEMC );
00032 clearVec( EEMC_l1 );
00033 clearVec( BEMC );
00034 clearVec( BEMC_l1 );
00035 clearVec( lastDSM );
00036 clearVec( VTX );
00037 clearVec( EMC );
00038 npre=npost=0;
00039
00040 #undef clearVec
00041 }
00042
00043
00044
00045
00046
00047
00048 int EEstarTrig :: get48bXing() const{
00049
00050 unsigned long long int hi=bX48hi;
00051 unsigned long long int lo=bX48lo;
00052 unsigned long long int bx48=hi<<32;
00053 bx48+= lo;
00054 int bx=bx48%120;
00055 return bx;
00056 }
00057
00058
00059
00060 void EEstarTrig :: print(int k, FILE *fd) const{
00061
00062 int bx=get48bXing();
00063 int off=bx-bX7bit;
00064 if(off<0) off+=120;
00065 fprintf(fd,"EEstarTrig:: print() bX=%d bX7=%d off=%d\n",bx,bX7bit,off);
00066 if(k<=0) return;
00067
00068 int ii;
00069 fprintf(fd," daqBits=0x%x npre=%d npost=%d\n",daqbits,npre,npost);
00070
00071 fprintf(fd," trigID[] --> ");
00072 for(ii=0;ii<32;ii++) {
00073 if(offline_id[ii]==0) break;
00074 fprintf(fd,"[%2d]=0x%02X [%u dec], ",ii,offline_id[ii],offline_id[ii]);
00075 if(ii%4==3) printf("\n ");
00076 }
00077 fprintf(fd,"\n");
00078
00079 fprintf(fd," bbcTimeDiff=%d spinBits=x%2.2x lastDSM[7]=x%4.4x\n",bbcTimeDiff(), spinBits(),lastDSM[7]);
00080
00081
00082 if(k<=1) return;
00083
00084
00085 for(ii=0;ii<144;ii++) {
00086 if(ii%16==8) printf(" , ");
00087 if(ii%16==0) printf("\n EEMC board-%d= ",ii/16+1);
00088 fprintf(fd,"x%2.2x ", EEMC[ii]);
00089 }
00090 fprintf(fd,"\n");
00091
00092 int j;
00093
00094 fprintf(fd," DSM VTX[j] = ");
00095 for (j=0; j<8; j++) printf("[%d]=x%4.4x ",j, VTX[j]);
00096 fprintf(fd,"\n");
00097 fprintf(fd," emcDSM[j]= ");
00098 for (j=0; j<8; j++) printf("[%d]=x%4.4x ",j, EMC[j]);
00099 fprintf(fd,"\n");
00100 fprintf(fd," lastDSM[j]= ");
00101 for (j=0; j<8; j++) printf("[%d]=x%4.4x ",j, lastDSM[j]);
00102 fprintf(fd,"\n");
00103
00104 }
00105
00106
00107
00108
00109 int EEstarTrig ::isTrigID(int trigId) {
00110 int i;
00111 for(i=0;i<32;i++) {
00112 if(trigId==offline_id[i]) return 1;
00113 if(offline_id[i]<=0) break;
00114 }
00115 return 0;
00116 }
00117
00118