Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

testWrite.cc File Reference

#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)


Function Documentation

TRandom gRAND time(0)   )  [static]
 

Referenced by main().

int main int  ,
char **  argv
 

Definition at line 17 of file testWrite.cc.

References edm::EventHandle::Clear(), edm::EventHandle::DAQ(), 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   std::vector<Digit*> digitList;
00028   
00029   unsigned int nevent;
00030   unsigned int ndigit;
00031   unsigned int ndigitold = 0;
00032   unsigned int ndigittot = 0;
00033   unsigned int minSize = 0;
00034 
00035   nevent = 10 + 10000*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 + 10000*gRAND.Uniform();
00043     ndigittot += ndigit;
00044     digitList.resize(ndigit);
00045     for (unsigned int j=ndigitold; j<ndigit; ++j) {
00046       digitList[j] = new Digit();
00047     }
00048     // Fill with random data so that compression efficiencies are not
00049     // over estimated
00050     long r1 = random();
00051     long r2 = random();
00052     for (unsigned int j=0; j<ndigit; ++j) {
00053       digitList[j]->fCrateId = (r1    )&0xFFFF;
00054       digitList[j]->fChanId  = (r1<<16)&0xFFFF;
00055       digitList[j]->fADC     = (r2    )&0xFFFF;
00056       digitList[j]->fTDC     = (r2<<16)&0xFFFF;
00057     }
00058     ndigitold = ndigit;
00059 
00060     evt.DAQ().Put(daqStatus,      "./status");
00061     evt.Raw().PutVector(digitList,"./digits");
00062     
00063     minSize += daqStatus.SizeOf() + ndigit*digitList[0]->SizeOf();
00064 
00065     iomod->WriteEvent();
00066   }
00067   delete iomod;
00068   time_t t2 = time(0);
00069   
00070   TFile f(argv[1]);
00071   unsigned int sz = f.GetSize();
00072   
00073   std::cerr << t2-t1 << "\t" 
00074             << nevent << "\t" 
00075             << ndigittot << "\t"
00076             << minSize << "\t"
00077             << sz << "\t"
00078             << f.GetCompressionFactor()
00079             << std::endl;
00080   return 0;
00081 }


Generated on Wed Oct 15 02:35:29 2008 for NOvA Offline by  doxygen 1.3.9.1