BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/RawFile/test/test_read.cxx
Go to the documentation of this file.
1#include "IRawFile/RawFileExceptions.h"
2#include "RawFile/RawFileReader.h"
3#include <fstream>
4#include <iostream>
5
6using namespace std;
7
8int main( int argc, char* argv[] ) {
9 if ( argc != 3 )
10 {
11 cout << "Usage: " << argv[0] << " file.conf nevts" << endl;
12 cout << "***********************************" << endl
13 << "** NEW: wildcard is supported **" << endl
14 << "***********************************" << endl;
15 exit( 1 );
16 }
17
18 VFileNames_t fnames;
19 VFileNames_t idxfnames;
20
21 string confstr;
22 ifstream fconf( argv[1] );
23
24 while ( !( fconf >> confstr ).eof() )
25 {
26 if ( confstr == "datafiles" )
27 {
28 fconf >> confstr;
29 fnames.push_back( confstr );
30 }
31 else if ( confstr == "idxfiles" )
32 {
33 fconf >> confstr;
34 idxfnames.push_back( confstr );
35 }
36 else { fconf >> confstr; }
37 }
38
39 RawFileReader* freader;
40 if ( idxfnames.empty() ) { freader = new RawFileReader( fnames ); }
41 else { freader = new RawFileReader( fnames, idxfnames ); }
42
43 const uint32_t* data;
44
45 int nevts = atoi( argv[2] );
46 for ( int i = 0; i < nevts; ++i )
47 {
48 try
49 {
50 data = freader->nextEvent();
51 // data = freader->nextEvent(1000);
52 // data = freader->roughlyNextEvent(1000);
53 } catch ( RawFileException& e )
54 {
55 e.print();
56 break;
57 }
58 cout << "Size : " << data[1] << " RID: " << data[9 + data[5]]
59 << " GID: " << data[8 + data[5]] << endl;
60 }
61
62 delete freader;
63
64 return 0;
65}
TTree * data
std::vector< std::string > VFileNames_t
virtual void print() const
const uint32_t * nextEvent()
int main()
Definition phokhara.cc:42