00001 #include "RawDataEvent.h" 00002 00003 #include "GaudiMessages/GaudiMessages.h" 00004 00005 static const char* DYBINDENT=" "; 00006 00007 void RawDataEvent::FileHeader::print() 00008 { 00009 GaudiMsgStreams log("RawDataEvent"); 00010 00011 log.verbose() << std::endl 00012 << "FileHeader:" << std::endl 00013 << DYBINDENT << "version=" << m_version << std::endl 00014 << DYBINDENT << "fileNumber=" << m_fileNumber << std::endl 00015 << DYBINDENT << "date=" << m_date << std::endl 00016 << DYBINDENT << "time=" << m_time << std::endl 00017 << DYBINDENT << "sizeLimitBlocks=" << m_sizeLimitBlocks << std::endl 00018 << DYBINDENT << "sizeLimitMB=" << m_sizeLimitMB << std::endl 00019 << DYBINDENT << "appName=" << m_appName << std::endl 00020 << DYBINDENT << "fileNameTag=" << m_fileNameTag << std::endl 00021 << DYBINDENT << "runNumber=" << m_runNumber << std::endl 00022 << std::hex 00023 << DYBINDENT << "recEnable=0x" << m_recEnable << std::endl 00024 << DYBINDENT << "triggerType=0x" << m_triggerType << std::endl 00025 << DYBINDENT << "detectorMask=0x" << m_detectorMask << std::endl 00026 << std::dec 00027 ; 00028 00029 if (! m_metadataString.empty()) { 00030 log.verbose() << DYBINDENT << "metadata strings: " << std::endl; 00031 for (unsigned int i = 0; i < m_metadataString.size(); i++) { 00032 log.verbose() << DYBINDENT << DYBINDENT << i << ": " << m_metadataString[i] << std::endl; 00033 } 00034 } 00035 log.verbose() << endreq; 00036 } 00037 00038 void RawDataEvent::FileFooter::print() 00039 { 00040 GaudiMsgStreams log("RawDataEvent"); 00041 log.verbose() << std::endl 00042 << "FileFooter:" << std::endl 00043 << DYBINDENT << "dateEnd=" << m_dateEnd << std::endl 00044 << DYBINDENT << "timeEnd=" << m_timeEnd << std::endl 00045 << DYBINDENT << "eventsInFile=" << m_eventsInFile << std::endl 00046 << DYBINDENT << "dataInFile=" << m_dataInFile << std::endl 00047 << DYBINDENT << "eventsInRun=" << m_eventsInRun << std::endl 00048 << DYBINDENT << "dataInRun=" << m_dataInRun << std::endl 00049 << DYBINDENT << "status=" << m_status 00050 << endreq; 00051 } 00052 00053 void RawDataEvent::PmtChannel::print() 00054 { 00055 GaudiMsgStreams log("RawDataEvent"); 00056 log.verbose() << std::endl 00057 << DYBINDENT << "PmtChannel: id=" << m_channel; 00058 if (m_tdc.size() != m_adc.size()) { 00059 log.verbose() 00060 << DYBINDENT 00061 << "sizes of TDC and ADC not same: tdc.size=" << m_tdc.size() 00062 << " adc.size=" << m_adc.size(); 00063 } 00064 else { 00065 log.verbose() << DYBINDENT << "(TDC(hit), ADC(cycle, range)):"; 00066 for (unsigned int i = 0; i < m_tdc.size(); i++) { 00067 log.verbose() 00068 << " (" << m_tdc[i] << "(" << m_tdcHitCount[i] << "), " 00069 << m_adc[i] << "(" << m_adcPeakingCycle[i] << ", " << m_adcRange[i] << "))"; 00070 } 00071 } 00072 log.verbose() << endreq; 00073 } 00074 00075 void RawDataEvent::FadcChannel::print() 00076 { 00077 GaudiMsgStreams log("RawDataEvent"); 00078 log.verbose() << std::endl 00079 << DYBINDENT << "FadcChannel: id=" << m_channel; 00080 log.verbose() << DYBINDENT << "ADC data: (" << m_adcData.size() << " points)"; 00081 for (unsigned int i = 0; i < m_adcData.size(); i++) { 00082 log.verbose() << std::hex << m_adcData[i] << std::dec << ","; 00083 } 00084 log.verbose() << endreq; 00085 } 00086 00087 void RawDataEvent::Rom::print() 00088 { 00089 GaudiMsgStreams log("RawDataEvent"); 00090 log.verbose()<< std::endl 00091 << "Rom:" << std::endl 00092 << DYBINDENT << "type=" << m_type << " (1=FEE 2=FADC 3=LTB 4=ROM 5=RTM 6=MTB)" << std::endl 00093 << DYBINDENT << "slot=" << m_slot << std::endl 00094 << DYBINDENT << "size=" << m_size << " bytes" 00095 << endreq; 00096 } 00097 00098 void RawDataEvent::RomFee::print() 00099 { 00100 Rom::print(); 00101 GaudiMsgStreams log("RawDataEvent"); 00102 log.verbose() << std::endl 00103 << DYBINDENT << "triggerNum=" << m_triggerNum << std::endl 00104 << DYBINDENT << "triggerType=" << m_triggerType << std::endl 00105 << DYBINDENT << "status=" << m_status << std::endl 00106 << DYBINDENT << "dataLength=" << m_dataLength << " bytes" << std::endl 00107 << DYBINDENT << "total PMT channels=" << m_channels.size() << std::endl; 00108 00109 for (unsigned int i = 0; i < m_channels.size(); i++) { 00110 m_channels[i].print(); 00111 } 00112 log.verbose() << endreq; 00113 } 00114 00115 void RawDataEvent::RomFadc::print() 00116 { 00117 Rom::print(); 00118 GaudiMsgStreams log("RawDataEvent"); 00119 log.verbose() << std::endl 00120 << DYBINDENT << "triggerNum=" << m_triggerNum << std::endl 00121 << DYBINDENT << "triggerType=" << m_triggerType << std::endl 00122 << DYBINDENT << "status=" << m_status << std::endl 00123 << DYBINDENT << "dataLength=" << m_dataLength << " bytes" << std::endl 00124 << DYBINDENT << "total FADC channels=" << m_channels.size() << std::endl; 00125 00126 for (unsigned int i = 0; i < m_channels.size(); i++) { 00127 m_channels[i].print(); 00128 } 00129 log.verbose() << endreq; 00130 } 00131 00132 void RawDataEvent::LtbFrameUTC::print() 00133 { 00134 LtbFrame::print(); 00135 GaudiMsgStreams log("RawDataEvent"); 00136 log.verbose() 00137 << DYBINDENT << "(day,hour,minute,second) = (" << m_day << "," << std::hex << m_hour << "," << m_minute 00138 << "," << m_second << ")" << std::dec << std::endl 00139 << DYBINDENT << "Timestamp=" << timeStamp() << endreq; 00140 } 00141 00142 void RawDataEvent::LtbFrameUnix::print() 00143 { 00144 LtbFrame::print(); 00145 GaudiMsgStreams log("RawDataEvent"); 00146 log.verbose() 00147 << DYBINDENT << "second = " << m_unixSecHigh << 16 + m_unixSecLow << std::endl 00148 << DYBINDENT << "Timestamp=" << timeStamp() << endreq; 00149 } 00150 00151 void RawDataEvent::LtbFrame::print() 00152 { 00153 GaudiMsgStreams log("RawDataEvent"); 00154 log.verbose() << std::endl 00155 << DYBINDENT << "rot=0x" << std::hex << m_rot << std::dec << std::endl 00156 << DYBINDENT << "triggerSrc=0x" << std::hex << m_triggerSrc << std::dec << std::endl 00157 << DYBINDENT << "crossTriggerSrc=0x" << std::hex << m_crossTriggerSrc << std::dec 00158 << DYBINDENT << "accStat=" << m_accStat 00159 << DYBINDENT << ", GPSValid=" << m_GPSValid 00160 << DYBINDENT << ", timestampType=" << m_timestampType 00161 << DYBINDENT << ", clockSystemValid=" << m_clockSystemValid << std::endl 00162 << DYBINDENT << ", nanoSecond=" << (m_nanoSecondHigh << 4 + m_nanoSecondLow)/2 << std::endl 00163 << DYBINDENT << ", accumulation=" << (m_accumulationHigh << 4 + m_accumulationLow)/2 << std::endl 00164 << endreq; 00165 } 00166 00167 void RawDataEvent::RomLtb::print() 00168 { 00169 Rom::print(); 00170 GaudiMsgStreams log("RawDataEvent"); 00171 log.verbose() << std::endl 00172 << DYBINDENT << "total data frames=" << m_frames.size() << std::endl; 00173 for (unsigned int i = 0; i < m_frames.size(); i++) { 00174 m_frames[i]->print(); 00175 } 00176 log.verbose() << endreq; 00177 } 00178 00179 void RawDataEvent::print() 00180 { 00181 GaudiMsgStreams log("RawDataEvent"); 00182 log.verbose() << std::endl 00183 << "<<------------------------------ Start of Decoded Raw Data Event ------------------------------>>" << std::endl 00184 << "Event:" << std::endl 00185 << DYBINDENT << "dataBlockNum=" << m_dataBlockNum << std::endl 00186 << DYBINDENT << "dataBlockSize=" << m_dataBlockSize << std::endl 00187 << DYBINDENT << "formatVersion=" << m_formatVersionMajor << "." << m_formatVersionMinor << std::endl 00188 << DYBINDENT << "evtSize=" << m_evtSize << std::endl 00189 << DYBINDENT << "siteId=" << m_siteId << std::endl 00190 << DYBINDENT << "positionId=" << m_positionId << std::endl 00191 << DYBINDENT << "runNum=" << m_runNum << std::endl 00192 << DYBINDENT << "evtNum=" << m_evtNum << std::endl 00193 << DYBINDENT << "dataType=" << m_dataType << " specific value=" << m_dataTypeSpecific << std::endl 00194 << DYBINDENT << "dataStatus=0x" << std::hex << m_dataStatus << std::dec << std::endl 00195 << DYBINDENT << "total modules=" << m_modules.size() << std::endl; 00196 for (unsigned int i = 0; i < m_modules.size(); i++) { 00197 m_modules[i]->print(); 00198 } 00199 log.verbose() 00200 << "<<------------------------------ End of Decoded Raw Data Event ------------------------------>>" 00201 << endreq; 00202 }