00001 #ifndef _EventFunction_CC_
00002 #define _EventFunction_CC_
00003
00004 #include "../includes/Header.hh"
00005 using namespace std;
00006
00007 void EventFunction(unsigned long EveStat, unsigned long UsrData){
00008 int fRet;
00009 unsigned int puStatus;
00010 unsigned short vCnt;
00011 if(((EveStat & 0x2)==0x2)||((EveStat & 0x4)==0x4)){
00012
00013
00014 int nDev = (UsrData >> 4)&0xf;
00015 int nCH = UsrData &0xf;
00016
00017 fRet = PcntEnable(nDev, nCH, 0);
00018
00019 fRet=PcntGetStatus(nDev, nCH, &puStatus);
00020 bool OverFlow = (puStatus & 0x10) !=0;
00021
00022 fRet=PcntRead(nDev, nCH ,&vCnt);
00023 if (OverFlow) vCnt = 250;
00024 if (vCnt!=250){
00025 cout << " # of Counts: " << setw(5) << vCnt;
00026 cout << " Status = " << hex << puStatus << dec << endl;
00027 DATA << vCnt << endl;
00028 }
00029 if(vCnt<250){
00030 param_ptr->Hist[vCnt]++;
00031 param_ptr->nEvent++;
00032 }else{
00033 param_ptr->nOverFlow++;
00034 }
00035 PcntClear(nDev, nCH);
00036
00037 PcntEnable(nDev, nCH, 1);
00038
00039 PcntOutputDO(nDev, 0x1);
00040
00041 PcntOutputDO(nDev, 0x0);
00042 }
00043 }
00044 #endif
00045