• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

beamtime/tof-tdctest/go4/VFTX/TVftxBoardData.cxx (r4864/r4267)

Go to the documentation of this file.
00001 
00002 #include "TVftxBoardData.h"
00003 
00004 void TVftxBoardData::Clear()
00005 {
00006    iTriggerTime = 0;
00007    for( Int_t iChan = 0; iChan < FPGA_TDC_NBCHAN; iChan++)
00008    {
00009       iMultiplicity[iChan] = 0;
00010       for( Int_t iHit = 0; iHit < MaxMult; iHit++)
00011       {
00012          iFineTime[iChan][iHit]     = -1;
00013          iCoarseTime[iChan][iHit]   = -1;
00014          uFutureBit[iChan][iHit]    =  0;
00015          dTimeCorr[iChan][iHit]     = -1;
00016          dFineTimeCorr[iChan][iHit] = -1;
00017       }
00018    }
00019 }
00020 Double_t TVftxBoardData::GetCalibratedTime( UInt_t uChan, UInt_t uMult)
00021 {
00022    // Return either the calibrated time
00023    // when possible, otherwise 0
00024    if( uChan < FPGA_TDC_NBCHAN && uMult < MaxMult )
00025       return dTimeCorr[uChan][uMult];
00026       else return 0.0;
00027 }
00028 Double_t TVftxBoardData::GetCoarseCorrectedTime( UInt_t uChan, UInt_t uMult)
00029 {
00030    // Return the calibrated time with a correction for coarse counter overflow relative to trigger
00031    // when possible, otherwise 0
00032    if( uChan < FPGA_TDC_NBCHAN && uMult < MaxMult )
00033    {
00034       Double_t dCoarseCorrectedTime = dTimeCorr[uChan][uMult];
00035 
00036       if( VFTX_COARSE_OVERFLW_CHK < iCoarseTime[ uChan ][ uMult ] - iTriggerTime )
00037          dCoarseCorrectedTime -= ((TDC_FIFO_COARSE_CT>>TDC_FIFO_COARSE_CT_SHIFT)+1)*(Double_t)CLOCK_TIME;
00038       if( iCoarseTime[ uChan ][ uMult ] - iTriggerTime  < -1*VFTX_COARSE_OVERFLW_CHK )
00039          dCoarseCorrectedTime += ((TDC_FIFO_COARSE_CT>>TDC_FIFO_COARSE_CT_SHIFT)+1)*(Double_t)CLOCK_TIME;
00040 
00041       return dCoarseCorrectedTime;
00042    }
00043       else return 0.0;
00044 }

Generated on Tue Dec 10 2013 04:52:21 for ROCsoft by  doxygen 1.7.1