lcio/rootio
diff -u -r1.1.2.1 -r1.1.2.2
--- instantLCIO.C 14 Sep 2009 13:50:47 -0000 1.1.2.1
+++ instantLCIO.C 14 Sep 2009 16:22:10 -0000 1.1.2.2
@@ -27,12 +27,12 @@
IMPL::LCCollectionVec* col = new IMPL::LCCollectionVec ;
IMPL::LCEventImpl* evt = new IMPL::LCEventImpl ;
-
+ evt->setEventNumber( 42 ) ;
std::cout << " mcp pdg: " << mcp->getPDG() << std::endl ;
- std::cout << " col #entries: " << col->getNumberOfEntries() << std::endl ;
- std::cout << " evt : " << evt << std::endl ;
+ // std::cout << " col #entries: " << col->getNumberOfEntries() << std::endl ;
+ std::cout << " evt : " << evt->getEventNumber() << std::endl ;
}
lcio/src/cpp/include/RIO
diff -u -r1.1.2.1 -r1.1.2.2
--- RIOReader.h 14 Sep 2009 13:50:48 -0000 1.1.2.1
+++ RIOReader.h 14 Sep 2009 16:22:10 -0000 1.1.2.2
@@ -28,7 +28,7 @@
/** Concrete implementation of LCWriter using ROOT I/O.
*
* @author gaede
- * @version $Id: RIOReader.h,v 1.1.2.1 2009/09/14 13:50:48 gaede Exp $
+ * @version $Id: RIOReader.h,v 1.1.2.2 2009/09/14 16:22:10 gaede Exp $
*/
class RIOReader : public IO::LCReader {
@@ -168,9 +168,9 @@
BranchVector _branches ;
bool _haveBranches ;
- IOIMPL::LCEventIOImpl *_evtImpl ;
+ IMPL::LCEventImpl *_evtImpl ;
- IOIMPL::LCRunHeaderIOImpl *_runImpl ;
+ IMPL::LCRunHeaderImpl *_runImpl ;
std::set<IO::LCRunListener*> _runListeners ;
std::set<IO::LCEventListener*> _evtListeners ;
lcio/src/cpp/src/RIO
diff -u -r1.1.2.1 -r1.1.2.2
--- RIOReader.cc 14 Sep 2009 13:50:48 -0000 1.1.2.1
+++ RIOReader.cc 14 Sep 2009 16:22:10 -0000 1.1.2.2
@@ -48,6 +48,8 @@
#else
#endif
+ _evtImpl = new IMPL::LCEventImpl ;
+
LCIOExceptionHandler::createInstance() ;
}
@@ -220,19 +222,14 @@
if( !_haveBranches ) {
- // first we create a branch for the event (header)
-
- TBranch* br = (TBranch*) _tree->GetBranch( "LCEvent" ) ;
-
- if( br != 0 ){ // branch allready exists -> update/append mode
-
- br->SetAddress( &_evtImpl ) ;
-
- } else {
-
- //FIXME: make split level and 'record size' parameters ....
- _tree->Branch( "LCEvent" , &_evtImpl , 16000, 2 );
- }
+// // first we create a branch for the event (header)
+// TBranch* br = (TBranch*) _tree->GetBranch( "LCEvent" ) ;
+// if( br != 0 ){ // branch allready exists -> update/append mode
+// br->SetAddress( &_evtImpl ) ;
+// } else {
+// //FIXME: make split level and 'record size' parameters ....
+// _tree->Branch( "LCEvent" , &_evtImpl , 16000, 2 );
+// }
// loop over all collections in first event ...
typedef std::vector< std::string > StrVec ;
@@ -319,30 +316,45 @@
//------------------------------------------------------
- if( !_haveBranches ) {
_entry ++ ;
// read event header first
- TBranch* br = (TBranch*) _tree->GetBranch( "LCEvent" ) ;
- if( br == 0 ){ // branch allready exists -> update/append mode
+ TBranch* br = (TBranch*) _tree->GetBranch( "LCEvent" ) ;
- throw IOException( std::string( "[RIOReader::readNextEvent()] cant open branch \"LCEvent\" " ) ) ;
+ if( br == 0 ){
+ throw IOException( std::string( "[RIOReader::readNextEvent()] cant open branch \"LCEvent\" " ) ) ;
}
-
- br->SetAddress( &_evtImpl ) ;
+ br->SetAddress( &_evtImpl ) ;
+
+ Long64_t tentry = _tree->LoadTree( _entry );
- int nbyte = _tree->LoadTree( _entry );
+ int nbyte = br->GetEntry(tentry);
+
+ if( tentry < 0 ){
+
+ return 0 ; // EOF ?
+ }
+
+ std::cout << " tentry : " << tentry
+ << " _entry " << _entry
+ << " eventnum " << _evtImpl->getEventNumber()
+ << " ncols: " << _evtImpl->getCollectionNames()->size()
+ << " nbyte: " << nbyte
+ << " _evtImpl " << _evtImpl
+ << std::endl ;
- std::cout << " nbyte : " << nbyte << " _entry " << _entry << std::endl ;
- setUpHandlers( _evtImpl ) ;
- }
+ if( !_haveBranches ) {
+
+ setUpHandlers( _evtImpl ) ;
+ }
+
//------------------------------------------------------
return _evtImpl ;