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 }