AraEvent/RawAtriStationEvent.cxx
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 #include "RawAtriStationEvent.h" 00011 #include <iostream> 00012 #include <fstream> 00013 #include <cstring> 00014 ClassImp(RawAtriStationEvent); 00015 00016 RawAtriStationEvent::RawAtriStationEvent() 00017 { 00018 //Default Constructor 00019 } 00020 00021 RawAtriStationEvent::~RawAtriStationEvent() { 00022 //Default Destructor 00023 } 00024 00025 00026 RawAtriStationEvent::RawAtriStationEvent(AraStationEventHeader_t *hdPtr, char *dataBuffer) // Assignment constructor 00027 :RawAraStationEvent(&(hdPtr->gHdr)) 00028 { 00029 00030 unixTime=hdPtr->unixTime; 00031 unixTimeUs=hdPtr->unixTimeUs; 00032 eventNumber=hdPtr->eventNumber; 00033 ppsNumber=hdPtr->ppsNumber; 00034 numStationBytes=hdPtr->numBytes; 00035 // std::cerr << eventNumber << "\t" << ppsNumber << "\t" << numStationBytes; 00036 timeStamp=hdPtr->timeStamp; 00037 eventId=hdPtr->eventId; 00038 numReadoutBlocks=hdPtr->numReadoutBlocks; 00039 00040 for(int trig=0;trig<MAX_TRIG_BLOCKS;trig++) { 00041 triggerPattern[trig]=hdPtr->triggerPattern[trig]; 00042 triggerInfo[trig]=hdPtr->triggerInfo[trig]; 00043 triggerBlock[trig]=hdPtr->triggerBlock[trig]; 00044 } 00045 00046 int uptoByte=0; 00047 // std::cerr << "numReadoutBlocks " << numReadoutBlocks << "\n"; 00048 for(int block=0;block<numReadoutBlocks;block++) { 00049 AraStationEventBlockHeader_t *blkPtr = (AraStationEventBlockHeader_t*)&dataBuffer[uptoByte]; 00050 uptoByte+=sizeof(AraStationEventBlockHeader_t); 00051 AraStationEventBlockChannel_t *chanPtr = (AraStationEventBlockChannel_t*)&dataBuffer[uptoByte]; 00052 RawAtriStationBlock blocky(blkPtr,chanPtr); 00053 blockVec.push_back(blocky); 00054 int numChan=blocky.getNumChannels(); 00055 00056 // std::cout << "block " << block << " numChan " << numChan 00057 // << " irsBlockNumber " << (blkPtr->irsBlockNumber&0x1ff) 00058 // << " channelMask " << blkPtr->channelMask << "\t" 00059 // << " uptoByte " << uptoByte << "\n"; 00060 // numChan=8; //HArd wire for testing 00061 uptoByte+=sizeof(AraStationEventBlockChannel_t)*numChan; 00062 } 00063 // std::cerr << sizeof(AraStationEventHeader_t) << "\n"; 00064 if(uptoByte!=int(numStationBytes)) 00065 std::cerr << "Error assigned " << uptoByte << " bytes out of " << numStationBytes << "\n"; 00066 } 00067 00068 RawAtriStationEvent::RawAtriStationEvent(AraStationEventHeader_t *hdPtr, char *dataBuffer, AraStationId_t forcedStationId) // Assignment constructor 00069 :RawAraStationEvent(&(hdPtr->gHdr)) 00070 { 00071 //JPD The same as above but forcing the stationId value 00072 stationId = forcedStationId; 00073 00074 00075 unixTime=hdPtr->unixTime; 00076 unixTimeUs=hdPtr->unixTimeUs; 00077 eventNumber=hdPtr->eventNumber; 00078 ppsNumber=hdPtr->ppsNumber; 00079 numStationBytes=hdPtr->numBytes; 00080 // std::cerr << eventNumber << "\t" << ppsNumber << "\t" << numStationBytes; 00081 timeStamp=hdPtr->timeStamp; 00082 eventId=hdPtr->eventId; 00083 numReadoutBlocks=hdPtr->numReadoutBlocks; 00084 00085 for(int trig=0;trig<MAX_TRIG_BLOCKS;trig++) { 00086 triggerPattern[trig]=hdPtr->triggerPattern[trig]; 00087 triggerInfo[trig]=hdPtr->triggerInfo[trig]; 00088 triggerBlock[trig]=hdPtr->triggerBlock[trig]; 00089 } 00090 00091 int uptoByte=0; 00092 // std::cerr << "numReadoutBlocks " << numReadoutBlocks << "\n"; 00093 for(int block=0;block<numReadoutBlocks;block++) { 00094 AraStationEventBlockHeader_t *blkPtr = (AraStationEventBlockHeader_t*)&dataBuffer[uptoByte]; 00095 uptoByte+=sizeof(AraStationEventBlockHeader_t); 00096 AraStationEventBlockChannel_t *chanPtr = (AraStationEventBlockChannel_t*)&dataBuffer[uptoByte]; 00097 RawAtriStationBlock blocky(blkPtr,chanPtr); 00098 blockVec.push_back(blocky); 00099 int numChan=blocky.getNumChannels(); 00100 00101 // std::cout << "block " << block << " numChan " << numChan 00102 // << " irsBlockNumber " << (blkPtr->irsBlockNumber&0x1ff) 00103 // << " channelMask " << blkPtr->channelMask << "\t" 00104 // << " uptoByte " << uptoByte << "\n"; 00105 // numChan=8; //HArd wire for testing 00106 uptoByte+=sizeof(AraStationEventBlockChannel_t)*numChan; 00107 } 00108 // std::cerr << sizeof(AraStationEventHeader_t) << "\n"; 00109 if(uptoByte!=int(numStationBytes)) 00110 std::cerr << "Error assigned " << uptoByte << " bytes out of " << numStationBytes << "\n"; 00111 } 00112 00113 Int_t RawAtriStationEvent::getFirstCapArray(Int_t dda) 00114 { 00115 00116 for(int i=0;i<DDA_PER_ATRI;i++){ 00117 int this_dda = this->blockVec.at(i).getDda(); 00118 if(this_dda==dda) return this->blockVec.at(i).getCapArray(); 00119 } 00120 return -1; 00121 00122 00123 }
Generated on Mon Mar 18 16:00:44 2013 for ARA ROOT v3.4 Software by
