#include <iostream>#include <string>#include <ctime>#include "TROOT.h"#include "TRint.h"#include "TRandom.h"#include "EventDataModel/Event.h"#include "EventDataModel/DataBucket.h"#include "EventDataModel/EventHandle.h"#include "IoModules/ReadWriteModule.h"#include "TFile.h"#include "DAQStatus.h"Go to the source code of this file.
Functions | |
| TRandom | gRAND (time(0)) |
| int | main (int, char **argv) |
|
|
Referenced by main(). |
|
||||||||||||
|
Definition at line 17 of file testWrite.cc. References edm::EventHandle::Clear(), edm::EventHandle::DAQ(), DataBlock::fADC, DataBlock::fTDC, io::ReadWriteModule::GetEvent(), gRAND(), edm::EventHandle::Header(), edm::EventHandle::Raw(), io::ReadWriteModule::SetOutputFileName(), DAQStatus::SizeOf(), and io::ReadWriteModule::WriteEvent(). 00018 {
00019 io::ReadWriteModule* iomod = new io::ReadWriteModule();
00020 iomod->SetOutputFileName(argv[1]);
00021
00022 edm::EventHandle& evt = iomod->GetEvent();
00023 evt.DAQ().MakeFolder("./status");
00024 evt.Raw().MakeFolder("./digits");
00025
00026 DAQStatus daqStatus;
00027 DataBlock dataBlock;
00028 std::vector<Digit*> digitList;
00029
00030 unsigned int nevent;
00031 unsigned int ndigit;
00032 unsigned int ndigittot = 0;
00033 unsigned int minSize = 0;
00034
00035 nevent = 10 + (int)(100000*gRAND.Uniform());
00036 time_t t1 = time(0);
00037 for (unsigned int i=0; i<nevent; ++i) {
00038 evt.Clear();
00039 evt.Header().SetRun(1112);
00040 evt.Header().SetEvent(i+1);
00041
00042 ndigit = 10 + (int)(10000*gRAND.Uniform());
00043 ndigittot += ndigit;
00044 digitList.resize(ndigit);
00045 dataBlock.fTDC.resize(ndigit);
00046 dataBlock.fADC.resize(ndigit);
00047 for (unsigned int j=0; j<ndigit; ++j) {
00048 digitList[j] = new Digit();
00049 }
00050 // Fill with random data so that compression efficiencies are not
00051 // over estimated
00052 long r1 = random();
00053 long r2 = random();
00054 for (unsigned int j=0; j<ndigit; ++j) {
00055 digitList[j]->fCrateId = (r1 )&0xFFFF;
00056 digitList[j]->fChanId = (r1<<16)&0xFFFF;
00057 digitList[j]->fADC = (r2 )&0xFFFF;
00058 digitList[j]->fTDC = (r2<<16)&0xFFFF;
00059
00060 dataBlock.fADC[j] = (r2 )&0xFFFF;
00061 dataBlock.fTDC[j] = (r2<<16)&0xFFFF;
00062 }
00063
00064 evt.DAQ().Put(daqStatus, "./status");
00065 evt.Raw().Put(dataBlock, "./digits");
00066 evt.Raw().PutVector(digitList,"./digits");
00067
00068 // Done with the digits, so delete them
00069 for (unsigned int j=0; j<ndigit; ++j) {
00070 delete digitList[j];
00071 digitList[j] = 0;
00072 }
00073 digitList.clear();
00074
00075 minSize += daqStatus.SizeOf() + ndigit*digitList[0]->SizeOf();
00076
00077 iomod->WriteEvent();
00078
00079 if (i%1000==0) {
00080 std::cerr << i << " of " << nevent << " events written." << std::endl;
00081 }
00082 }
00083 delete iomod;
00084 time_t t2 = time(0);
00085
00086 TFile f(argv[1]);
00087 unsigned int sz = f.GetSize();
00088
00089 std::cerr << t2-t1 << "\t"
00090 << nevent << "\t"
00091 << ndigittot << "\t"
00092 << minSize << "\t"
00093 << sz << "\t"
00094 << f.GetCompressionFactor()
00095 << std::endl;
00096 return 0;
00097 }
|
1.3.9.1