28 using namespace lcio ;
43 MYTEST.
LOG(
" ---------------------------- testing class RunEvent" ) ;
56 MYTEST( reSet.
size() , unsigned(6) ,
" set< RunEvent>.size() != 6 " ) ;
74 MYTEST( v[0] < v[1] ,
true , err.str() ) ;
75 MYTEST( v[1] < v[2] ,
true , err.str() ) ;
76 MYTEST( v[2] < v[3] ,
true , err.str() ) ;
77 MYTEST( v[3] < v[4] ,
true , err.str() ) ;
78 MYTEST( v[4] < v[5] ,
true , err.str() ) ;
81 MYTEST.
LOG(
" ------------------------------------- testing class RunEventMap" ) ;
89 map.
add( *it , 1024 * count ) ;
91 MYTEST( map.
getPosition( v[2] ), 2048 ,
" EventMap::getPosition() return for exisiting event " ) ;
94 map.
size(),
"RunEventMap invariant: nRun+nEvt = map.size " );
99 map.
add( v[2] , 2048000 ) ;
101 MYTEST( map.
getPosition( v[2] ), 2048000 ,
" test if EventMap::add() overwrites existing entry " ) ;
103 MYTEST( map.
getNumberOfEventRecords(), 4 ,
"RunEventMap::getNumberOfEventRecords() after addition of duplicate (overwrite) " );
110 MYTEST.
FAILED(
"oops, something went wrong..." );
114 MYTEST.
LOG(
" ------------------------------------- test random access in file c_sim.slcio - file must exist in : " ) ;
128 lcReader->open(
"c_sim.slcio" ) ;
130 MYTEST( lcReader->getNumberOfRuns() , 10 ,
" LCReader::getNumberOfRuns() - number of run headers is not 10" );
132 MYTEST( lcReader->getNumberOfEvents() , 100 ,
" LCReader::getNumberOfEvents() - number of events is not 100" );
138 lcReader->getRuns( runs ) ;
139 lcReader->getEvents( events ) ;
141 MYTEST( runs.size() , 10u ,
" LCReader::getRuns( runs ) - size 'runs' is not 10" );
143 MYTEST( events.size() , 200u ,
" LCReader::getEvents( events ) - size of 'events' is not 200" );
150 MYTEST( events[ 42 * 2 ], 4 ,
" LCReader::getEvents( events ) - events[ 42 * 2 ] is not run 4 " );
152 MYTEST( events[ 42 * 2 + 1 ], 2 ,
" LCReader::getEvents( events ) - events[ 42 * 2 +1 ] is not event 2 " );
156 LCRunHeader* rHdr = lcReader->readNextRunHeader() ;
157 MYTEST( rHdr->getRunNumber() , 0 ,
" LCReader::readNextRunHeader() - run number is not 0" );
159 LCEvent* evt = lcReader->readNextEvent() ;
160 MYTEST( evt->getEventNumber() , 0 ,
" LCReader::readNextEvent() - event number is not 0" );
161 MYTEST( evt->getRunNumber() , 0 ,
" LCReader::readNextEvent() - run number is not 0" );
164 evt = lcReader->readEvent( 3 , 4 ) ;
166 MYTEST( evt !=0 ,
true ,
" LCReader::readEvent( 3 , 4 ) - evt is NULL" );
167 MYTEST( evt->getRunNumber() , 3 ,
" LCReader::readEvent( 3, 4 ) - run number is not 3" );
168 MYTEST( evt->getEventNumber() , 4 ,
" LCReader::readEvent( 3, 4 ) - event number is not 4" );
173 rHdr = lcReader->readRunHeader( 7 ) ;
174 MYTEST( rHdr->getRunNumber() , 7 ,
" LCReader::readRunHeader() - run number is not 7" );
175 rHdr = lcReader->readRunHeader( 3 ) ;
176 MYTEST( rHdr->getRunNumber() , 3 ,
" LCReader::readRunHeader() - run number is not 3" );
178 rHdr = lcReader->readRunHeader( 0 , EVENT::LCIO::UPDATE ) ;
181 bool notNull = rhImpl != 0 ;
182 MYTEST( notNull ,
true ,
" readRunHeader not of type IMPL::LCRunHeaderImpl " );
185 MYTEST( rHdr->getRunNumber() , 42 ,
" LCReader::readRunHeader() - run number to changed to 42 in update mode " );
189 catch( Exception &e ){
191 MYTEST.
FAILED( e.what() );
int getNumberOfRunRecords() const
Helper struct that stores run and event positions in the file.
Map that holds positions of Run and Event records.
long long long64
64 bit signed integer,e.g.to be used for timestamps
void FAILED(const std::string &msg)
long64 getPosition(const RunEvent &re)
Return the position of the specified Event record or Run record respectively (if EventNum == -1 )...
static const string testname
int main(int argc, char **argv)
Simple program that opens existing LCIO files and appends the records needed for direct access - if t...
int getNumberOfEventRecords() const
void add(const RunEvent &re, long64 pos)
Add a new entry to the event map - if the RunEvent already exists the new position will be stored...
std::vector< int > IntVec
Vector of ints.
static const int directAccess
Configuration flags for the LCReader instance - to be used with LCFactory::createLCReader().
T back_inserter(T...args)
void LOG(const std::string &msg)