9 #include "MonarchLogger.hpp" 18 int main(
const int argc,
const char** argv )
22 MLINFO(
mlog,
"usage:\n" 23 <<
" MonarchTimeCheck <input egg file> <output text file>" );
27 ofstream tOutput( argv[ 2 ] );
28 if( tOutput.is_open() == false )
30 MERROR(
mlog,
"could not open output file!" );
34 const Monarch* tReadTest = Monarch::OpenForReading( argv[1] );
35 tReadTest->ReadHeader();
37 const MonarchHeader* tReadHeader = tReadTest->GetHeader();
38 MLINFO(
mlog, *tReadHeader );
41 TimeType tBinWidthNS = (
TimeType)(1000. / tReadHeader->GetAcquisitionRate());
43 const MonarchRecordBytes* tReadRecord;
44 if( tReadHeader->GetAcquisitionMode() == 1 )
46 tReadRecord = tReadTest->GetRecordSeparateOne();
48 else if( tReadHeader->GetAcquisitionMode() == 2 && tReadHeader->GetFormatMode() ==
sFormatMultiSeparate )
50 tReadRecord = tReadTest->GetRecordSeparateOne();
54 tReadRecord = tReadTest->GetRecordInterleaved();
58 MERROR(
mlog,
"Unable to read a header with acquisition mode <" << tReadHeader->GetAcquisitionMode() <<
"> and format mode <" << tReadHeader->GetFormatMode() <<
">" );
62 unsigned long long tRecordCount = 0;
63 unsigned long long tAcquisitionCount = 0;
70 if (! tReadTest->ReadRecord())
72 MERROR(
mlog,
"No records in the file" );
76 tAcquisitionCount = 1;
77 tNSTimeInRunClock = tReadRecord->fTime;
78 tNSTimeInRunBinsCorr = tNSTimeInRunClock;
79 tNSTimeInRunBins = tNSTimeInRunClock;
81 tOutput << tRecordCount <<
'\t' << tNSTimeInRunClock <<
'\t' << tNSTimeInRunBins <<
'\t' << tNSTimeInRunBinsCorr <<
'\n';
83 while( tReadTest->ReadRecord() != false )
85 tRecordCount = tRecordCount + 1;
87 tNSTimeInRunClock = tReadRecord->fTime;
89 if( tReadRecord->fAcquisitionId == tAcquisitionCount )
91 cout <<
"new acquisition" << endl;
92 tAcquisitionCount = tAcquisitionCount + 1;
93 tNSTimeInRunBinsCorr = tNSTimeInRunClock;
97 tNSTimeInRunBinsCorr += tRecordSize * tBinWidthNS;
99 tNSTimeInRunBins += tRecordSize * tBinWidthNS;
101 tOutput << tRecordCount <<
'\t' << tNSTimeInRunClock <<
'\t' << tNSTimeInRunBins <<
'\t' << tNSTimeInRunBinsCorr <<
'\n';
105 MLINFO(
mlog,
"record count <" << tRecordCount <<
">" );
106 MLINFO(
mlog,
"acquisition count <" << tAcquisitionCount <<
">" );
MLOGGER(mlog, "MonarchTimeCheck")
static scarab::logger mlog("M3Info")
int main(const int argc, const char **argv)
static const FormatModeType sFormatMultiSeparate
static const FormatModeType sFormatMultiInterleaved