AraEvent/AtriEventHkData.cxx
00001 00002 00003 00004 00005 00006 00007 00008 00009 #include "AtriEventHkData.h" 00010 #include "TMath.h" 00011 #include <iostream> 00012 #include <fstream> 00013 #include <cstring> 00014 ClassImp(AtriEventHkData); 00015 00016 AtriEventHkData::AtriEventHkData() 00017 { 00018 //Default Constructor 00019 } 00020 00021 AtriEventHkData::~AtriEventHkData() { 00022 //Default Destructor 00023 } 00024 00025 00026 AtriEventHkData::AtriEventHkData(AraEventHk_t *theHk) 00027 :RawAraGenericHeader(&(theHk->gHdr)) 00028 { 00029 unixTime=theHk->unixTime; 00030 unixTimeUs=theHk->unixTimeUs; 00031 firmwareVersion=theHk->firmwareVersion; 00032 firmwareVersionMaj = (firmwareVersion & 0xf000) >> 12; 00033 firmwareVersionMid = (firmwareVersion & 0xf00) >> 8; 00034 firmwareVersionMin = (firmwareVersion & 0xff); 00035 00036 00037 00038 memcpy(wilkinsonCounter,theHk->wilkinsonCounter,DDA_PER_ATRI*sizeof(UShort_t)); 00039 memcpy(wilkinsonDelay,theHk->wilkinsonDelay,DDA_PER_ATRI*sizeof(UShort_t)); 00040 ppsCounter=theHk->ppsCounter; 00041 clockCounter=theHk->clockCounter; 00042 00043 memcpy(l1ScalerSurface,theHk->l1ScalerSurface,ANTS_PER_TDA*sizeof(uint16_t)); 00044 memcpy(l1Scaler,theHk->l1Scaler,NUM_L1_SCALERS*sizeof(uint16_t)); 00045 memcpy(l2Scaler,theHk->l2Scaler,NUM_L2_SCALERS*sizeof(uint16_t)); 00046 memcpy(l3Scaler,theHk->l3Scaler,NUM_L3_SCALERS*sizeof(uint16_t)); 00047 memcpy(l4Scaler,theHk->l4Scaler,NUM_L4_SCALERS*sizeof(uint16_t)); 00048 memcpy(t1Scaler,theHk->t1Scaler,NUM_T1_SCALERS*sizeof(uint16_t)); 00049 memcpy(thresholdDac,theHk->thresholdDac,NUM_L1_SCALERS*sizeof(uint16_t)); 00050 memcpy(surfaceThresholdDac,theHk->surfaceThresholdDac,ANTS_PER_TDA*sizeof(uint16_t)); 00051 00052 memcpy(deadTime,theHk->deadTime,DDA_PER_ATRI*sizeof(UChar_t)); 00053 memcpy(avgOccupancy,theHk->avgOccupancy,DDA_PER_ATRI*sizeof(UChar_t)); 00054 memcpy(maxOccupancy,theHk->maxOccupancy,DDA_PER_ATRI*sizeof(UChar_t)); 00055 memcpy(vdlyDac,theHk->vdlyDac,DDA_PER_ATRI*sizeof(UShort_t)); 00056 memcpy(vadjDac,theHk->vadjDac,DDA_PER_ATRI*sizeof(UShort_t)); 00057 00058 00059 } 00060 00061 AtriEventHkData::AtriEventHkData(AraEventHk2_7_t *theHk) 00062 :RawAraGenericHeader(&(theHk->gHdr)) 00063 { 00064 unixTime=theHk->unixTime; 00065 unixTimeUs=theHk->unixTimeUs; 00066 firmwareVersion=theHk->firmwareVersion; 00067 firmwareVersion=theHk->firmwareVersion; 00068 firmwareVersionMaj = (firmwareVersion & 0xf000) >> 12; 00069 firmwareVersionMid = (firmwareVersion & 0xf00) >> 8; 00070 firmwareVersionMin = (firmwareVersion & 0xff); 00071 00072 memcpy(wilkinsonCounter,theHk->wilkinsonCounter,DDA_PER_ATRI*sizeof(UShort_t)); 00073 memcpy(wilkinsonDelay,theHk->wilkinsonDelay,DDA_PER_ATRI*sizeof(UShort_t)); 00074 ppsCounter=theHk->ppsCounter; 00075 clockCounter=theHk->clockCounter; 00076 memcpy(deadTime,theHk->deadTime,DDA_PER_ATRI*sizeof(UChar_t)); 00077 memcpy(avgOccupancy,theHk->avgOccupancy,DDA_PER_ATRI*sizeof(UChar_t)); 00078 memcpy(maxOccupancy,theHk->maxOccupancy,DDA_PER_ATRI*sizeof(UChar_t)); 00079 memcpy(vdlyDac,theHk->vdlyDac,DDA_PER_ATRI*sizeof(UShort_t)); 00080 memcpy(vadjDac,theHk->vadjDac,DDA_PER_ATRI*sizeof(UShort_t)); 00081 00082 } 00083 00084 Double_t AtriEventHkData::wilkinsonCounterNs(Int_t dda){ 00085 if(dda >= DDA_PER_ATRI || dda < 0) return -1; 00086 Double_t wilkNs = wilkinsonCounter[dda]*(20.83/64.); 00087 return wilkNs; 00088 00089 } 00090 00091 00092 Double_t AtriEventHkData::getSingleChannelRateHz(Int_t tda, Int_t channel){ 00093 if(tda >= TDA_PER_ATRI || tda < 0) return -1; 00094 if(channel>= ANTS_PER_TDA || tda <0) return -1; 00095 uint8_t preScale=32; 00096 00097 return l1Scaler[tda*ANTS_PER_TDA+channel] * preScale; 00098 00099 } 00100 Double_t AtriEventHkData::getOneOfFourRateHz(Int_t tda){ 00101 if(tda >= TDA_PER_ATRI || tda < 0) return -1; 00102 uint8_t preScale=1; 00103 if(firmwareVersionMaj > 0 || firmwareVersionMid > 9 || firmwareVersionMin >= 40) preScale=64; 00104 00105 return l2Scaler[tda*4]*preScale; 00106 00107 00108 } 00109 Double_t AtriEventHkData::getTwoOfFourRateHz(Int_t tda){ 00110 if(tda >= TDA_PER_ATRI || tda < 0) return -1; 00111 return l2Scaler[tda*4+1]; 00112 00113 00114 } 00115 Double_t AtriEventHkData::getThreeOfFourRateHz(Int_t tda){ 00116 if(tda >= TDA_PER_ATRI || tda < 0) return -1; 00117 return l2Scaler[tda*4+2]; 00118 00119 00120 } 00121 Double_t AtriEventHkData::getThreeOfEightRateHz(Int_t tda_pair){ 00122 if(tda_pair > 1 || tda_pair <0) return -1; 00123 return l3Scaler[tda_pair]; 00124 00125 }
Generated on Mon Mar 18 16:04:45 2013 for ARA ROOT v3.6 Software by
