Main Page | Namespace List | Class List | File List | Namespace Members | Class Members | File Members

EventFunction.cc

Go to the documentation of this file.
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)){ // STPorOF flag=1
00012     //    cout << "Event detected. EveStat: " 
00013     //           << boost::format("%04x")%(EveStat);
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     //usleep(1);
00041     PcntOutputDO(nDev, 0x0);
00042   }
00043 }
00044 #endif
00045 

Generated on Sun Dec 14 23:32:46 2008 by doxygen 1.3.5