diff --git a/CMakeLists.txt b/CMakeLists.txt index bc25cd37c..2f3b15300 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,8 +12,8 @@ include(GNUInstallDirs) # project version SET( LCIO_VERSION_MAJOR 2 ) -SET( LCIO_VERSION_MINOR 21 ) -SET( LCIO_VERSION_PATCH 0 ) +SET( LCIO_VERSION_MINOR 22 ) +SET( LCIO_VERSION_PATCH 99 ) ### set correct LCIO version in relevant files ############################ diff --git a/cmake/lcio.xml.in b/cmake/lcio.xml.in index 0aa50c038..cfae2a07d 100644 --- a/cmake/lcio.xml.in +++ b/cmake/lcio.xml.in @@ -594,11 +594,16 @@ ndf of fit dEdx Error of dEdx + number of holes in track radius of innermost hit used in track fit number of hits in particular subdetectors. TODO need way to define mapping in run/event header + + + number of holes in particular subdetectors. TODO need way to define mapping in run/event header + tracks that have been combined to this track diff --git a/src/aid/EVENT/Track.aid b/src/aid/EVENT/Track.aid index cd4ec7768..9b404aa58 100644 --- a/src/aid/EVENT/Track.aid +++ b/src/aid/EVENT/Track.aid @@ -95,6 +95,9 @@ public interface Track extends LCObject { */ public float getdEdxError() const ; + /** Number of holes. + */ + public int getNholes() const ; /** The radius of the innermost hit that has been used in the track fit. * Helps to detect V0 tracks with small impact paramters or heavy mesons. diff --git a/src/cpp/include/IMPL/TrackImpl.h b/src/cpp/include/IMPL/TrackImpl.h index 04099d70c..f1c06a5de 100644 --- a/src/cpp/include/IMPL/TrackImpl.h +++ b/src/cpp/include/IMPL/TrackImpl.h @@ -113,6 +113,10 @@ namespace IMPL { */ virtual float getdEdxError() const; + /** Number of holes of the track. + */ + virtual int getNholes() const; + /** The radius of the innermost hit that has been used in the track fit. * Helps to detect V0 tracks with small impact paramters or haevy mesons. * To be used as convenient information or if hits are not stored in @@ -128,6 +132,13 @@ namespace IMPL { */ virtual const EVENT::IntVec & getSubdetectorHitNumbers() const ; + /** A vector that holds the number of holes in particular subdetectors. + * The mapping of indices to subdetectors is implementation dependent. + * To be used as convenient information or if holes are not stored in + * the data set, e.g. DST or FastMC. + * TODO: Provide way to store mapping in event/run header. + */ + virtual const EVENT::IntVec & getSubdetectorHoleNumbers() const ; /** The tracks (as Track objects) that have been combined to this track. */ @@ -174,6 +185,7 @@ namespace IMPL { virtual void setNdf( int ndf ) ; virtual void setdEdx( float dEdx ) ; virtual void setdEdxError( float dEdxError ) ; + virtual void setNholes( int nholes ) ; virtual void addTrack( EVENT::Track* trk ) ; virtual void addTrackState( EVENT::TrackState* trkstate ) ; @@ -186,11 +198,17 @@ namespace IMPL { virtual void setRadiusOfInnermostHit( float r ) ; /** Allows modification of the subdetectorHitNumbers, e.g.
- * track->subdetectorHitNumbers().resize(5) ;
+ * track->subdetectorHitNumbers().resize(5) ;
* track->subdetectorHitNumbers()[4] = 42 ; */ virtual EVENT::IntVec & subdetectorHitNumbers() ; + /** Allows modification of the subdetectorHoleNumbers, e.g.
+ * track->subdetectorHoleNumbers().resize(5) ;
+ * track->subdetectorHoleNumbers()[4] = 42 ; + */ + virtual EVENT::IntVec & subdetectorHoleNumbers() ; + protected: virtual void setType( int type ) ; @@ -202,8 +220,10 @@ namespace IMPL { int _ndf{0} ; float _dEdx{0} ; float _dEdxError{0} ; + int _nholes{0} ; float _radiusOfInnermostHit{0} ; EVENT::IntVec _subdetectorHitNumbers{} ; + EVENT::IntVec _subdetectorHoleNumbers{} ; EVENT::TrackVec _tracks{} ; EVENT::TrackerHitVec _hits{} ; diff --git a/src/cpp/include/pre-generated/EVENT/Track.h b/src/cpp/include/pre-generated/EVENT/Track.h index 2c69590d9..bd5e5da93 100644 --- a/src/cpp/include/pre-generated/EVENT/Track.h +++ b/src/cpp/include/pre-generated/EVENT/Track.h @@ -104,6 +104,10 @@ class Track : public LCObject { */ virtual float getdEdxError() const = 0; + /** Number of holes. + */ + virtual int getNholes() const = 0; + /** The radius of the innermost hit that has been used in the track fit. * Helps to detect V0 tracks with small impact paramters or heavy mesons. * To be used as convenient information or if hits are not stored in @@ -119,6 +123,14 @@ class Track : public LCObject { */ virtual const IntVec & getSubdetectorHitNumbers() const = 0; + /** A vector that holds the number of holes in particular subdetectors. + * The mapping of indices to subdetectors is implementation dependent. + * To be used as convenient information or if holes are not stored in + * the data set, e.g. DST or FastMC. + * Check/set collection variable TrackSubdetectorNames for decoding the indices. + */ + virtual const IntVec & getSubdetectorHoleNumbers() const = 0; + /** The tracks that have been combined to this track. */ virtual const TrackVec & getTracks() const = 0; diff --git a/src/cpp/src/EXAMPLE/recjob.cc b/src/cpp/src/EXAMPLE/recjob.cc index dda37a127..9f69fd004 100644 --- a/src/cpp/src/EXAMPLE/recjob.cc +++ b/src/cpp/src/EXAMPLE/recjob.cc @@ -191,6 +191,7 @@ class RunEventProcessor : public LCRunListener, public LCEventListener{ trk->setZ0( (i+1)*10. ) ; trk->setChi2( 1.01 ) ; trk->setNdf( 42 ) ; + trk->setNholes( 2 ) ; trk->setRadiusOfInnermostHit( 3.141592 ) ; @@ -212,6 +213,11 @@ class RunEventProcessor : public LCRunListener, public LCEventListener{ trk->subdetectorHitNumbers()[ SITINDEX ] = 24 ; trk->subdetectorHitNumbers()[ TPCINDEX ] = 36 ; + trk->subdetectorHoleNumbers().resize( NTRACKER ) ; + trk->subdetectorHoleNumbers()[ VTXINDEX ] = 0 ; + trk->subdetectorHoleNumbers()[ SITINDEX ] = 0 ; + trk->subdetectorHoleNumbers()[ TPCINDEX ] = 0 ; + trk->setdEdx( 3.14159 ) ; trk->setdEdxError( 42. ) ; float cov[15] = { 1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.,15. } ; diff --git a/src/cpp/src/IMPL/TrackImpl.cc b/src/cpp/src/IMPL/TrackImpl.cc index 097238283..45b7a5e42 100644 --- a/src/cpp/src/IMPL/TrackImpl.cc +++ b/src/cpp/src/IMPL/TrackImpl.cc @@ -16,6 +16,7 @@ namespace IMPL { _ndf(0), _dEdx(0), _dEdxError(0), + _nholes(0), _radiusOfInnermostHit(0) { } @@ -34,9 +35,11 @@ namespace IMPL { _ndf = o._ndf ; _dEdx = o._dEdx ; _dEdxError = o._dEdxError ; + _nholes = o._nholes ; _radiusOfInnermostHit = o._radiusOfInnermostHit ; std::copy( o._subdetectorHitNumbers.begin() , o._subdetectorHitNumbers.end() , std::back_inserter( _subdetectorHitNumbers ) ) ; + std::copy( o._subdetectorHoleNumbers.begin() , o._subdetectorHoleNumbers.end() , std::back_inserter( _subdetectorHoleNumbers ) ) ; std::copy( o._hits.begin() , o._hits.end() , std::back_inserter( _hits ) ) ; @@ -110,6 +113,7 @@ namespace IMPL { int TrackImpl::getNdf() const { return _ndf ;} float TrackImpl::getdEdx() const { return _dEdx ; } float TrackImpl::getdEdxError() const { return _dEdxError ; } + int TrackImpl::getNholes() const { return _nholes ; } float TrackImpl::getRadiusOfInnermostHit() const { @@ -119,6 +123,10 @@ namespace IMPL { const IntVec & TrackImpl::getSubdetectorHitNumbers() const { return _subdetectorHitNumbers ; } + const IntVec & TrackImpl::getSubdetectorHoleNumbers() const { + return _subdetectorHoleNumbers ; + } + const TrackerHitVec & TrackImpl::getTrackerHits() const { return _hits ; } @@ -337,6 +345,10 @@ namespace IMPL { checkAccess("TrackImpl::setdEdxError") ; _dEdxError = dEdxError ; } + void TrackImpl::setNholes( int nholes ){ + checkAccess("TrackImpl::setNholes") ; + _nholes = nholes ; + } void TrackImpl::addHit( TrackerHit* hit) { _hits.push_back( hit ) ; @@ -369,6 +381,11 @@ namespace IMPL { return _subdetectorHitNumbers ; } + IntVec & TrackImpl::subdetectorHoleNumbers(){ + checkAccess("TrackImpl::subdetectorHoleNumbers") ; + return _subdetectorHoleNumbers ; + } + void TrackImpl::setRadiusOfInnermostHit( float r ){ checkAccess("TrackImpl::setRadiusOfInnermostHit") ; _radiusOfInnermostHit = r ; diff --git a/src/cpp/src/SIO/SIOTrackHandler.cc b/src/cpp/src/SIO/SIOTrackHandler.cc index cf62b0daf..ef71de027 100644 --- a/src/cpp/src/SIO/SIOTrackHandler.cc +++ b/src/cpp/src/SIO/SIOTrackHandler.cc @@ -50,6 +50,9 @@ namespace SIO { SIO_DATA( device , &(trk->_ndf) , 1 ) ; SIO_DATA( device , &(trk->_dEdx) , 1 ) ; SIO_DATA( device , &(trk->_dEdxError) , 1 ) ; + if (vers > SIO_VERSION_ENCODE(2, 21)) { + SIO_DATA( device , &(trk->_nholes) , 1 ) ; + } SIO_DATA( device , &( trk->_radiusOfInnermostHit ) , 1 ) ; int nHitNumbers ; SIO_DATA( device, &nHitNumbers , 1 ) ; @@ -57,6 +60,14 @@ namespace SIO { for( int i=0 ; i_subdetectorHitNumbers[i] ), 1 ) ; } + if (vers > SIO_VERSION_ENCODE(2, 21)) { + int nHoleNumbers ; + SIO_DATA( device, &nHoleNumbers , 1 ) ; + trk->subdetectorHoleNumbers().resize( nHoleNumbers ) ; + for( int i=0 ; i_subdetectorHoleNumbers[i] ), 1 ) ; + } + } int nTracks ; SIO_DATA( device, &nTracks , 1 ) ; trk->_tracks.resize( nTracks ) ; @@ -100,6 +111,7 @@ namespace SIO { SIO_SDATA( device, trk->getNdf() ) ; SIO_SDATA( device, trk->getdEdx() ) ; SIO_SDATA( device, trk->getdEdxError() ) ; + SIO_SDATA( device, trk->getNholes() ) ; SIO_SDATA( device , trk->getRadiusOfInnermostHit() ) ; auto hitNums = trk->getSubdetectorHitNumbers() ; int nHitNumbers = hitNums.size() ; @@ -107,6 +119,12 @@ namespace SIO { for( int i=0 ; igetSubdetectorHoleNumbers() ; + int nHoleNumbers = holeNums.size() ; + SIO_DATA( device, &nHoleNumbers , 1 ) ; + for( int i=0 ; igetTracks() ; int nTracks = tracks.size() ; SIO_DATA( device, &nTracks , 1 ) ; diff --git a/src/cpp/src/TESTS/test_tracks.cc b/src/cpp/src/TESTS/test_tracks.cc index 60c5e1d18..8d6f69fdc 100644 --- a/src/cpp/src/TESTS/test_tracks.cc +++ b/src/cpp/src/TESTS/test_tracks.cc @@ -79,6 +79,7 @@ int main(int /*argc*/, char** /*argv*/ ){ trk->setRadiusOfInnermostHit( 3.14159265 ) ; trk->setdEdx( 3.14159265 ) ; trk->setdEdxError( 42. ) ; + trk->setNholes( 2. ) ; float cov[15] = { 1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.,15. } ; trk->setCovMatrix( cov ) ; @@ -113,6 +114,7 @@ int main(int /*argc*/, char** /*argv*/ ){ trk->setRadiusOfInnermostHit( 3.14159265 ) ; trk->setdEdx( 3.14159265 ) ; trk->setdEdxError( 42. ) ; + trk->setNholes( 2. ) ; float cov[15] = { 1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.,15. } ; trk->setCovMatrix( cov ) ; @@ -203,6 +205,7 @@ int main(int /*argc*/, char** /*argv*/ ){ MYTEST( trk->getNdf(), 42 , "getNdf" ) ; MYTEST( trk->getdEdx(), float(3.14159265) , "getdEdx" ) ; MYTEST( trk->getdEdxError(), float(42.) , "getdEdxError" ) ; + MYTEST( trk->getNholes(), int(2.) , "getNholes" ) ; MYTEST( trk->getRadiusOfInnermostHit(), float(3.14159265) , "getRadiusOfInnermostHit" ) ; const FloatVec& cov = trk->getCovMatrix() ; @@ -256,6 +259,7 @@ int main(int /*argc*/, char** /*argv*/ ){ MYTEST( trk->getNdf(), 42 , "getNdf" ) ; MYTEST( trk->getdEdx(), float(3.14159265) , "getdEdx" ) ; MYTEST( trk->getdEdxError(), float(42.) , "getdEdxError" ) ; + MYTEST( trk->getNholes(), int(2.) , "getNholes" ) ; MYTEST( trk->getRadiusOfInnermostHit(), float(3.14159265) , "getRadiusOfInnermostHit" ) ; const FloatVec& cov = trk->getCovMatrix() ; @@ -304,6 +308,7 @@ int main(int /*argc*/, char** /*argv*/ ){ MYTEST( trk->getNdf(), 42 , "getNdf" ) ; MYTEST( trk->getdEdx(), float(3.14159265) , "getdEdx" ) ; MYTEST( trk->getdEdxError(), float(42.) , "getdEdxError" ) ; + MYTEST( trk->getNholes(), int(2.) , "getNholes" ) ; MYTEST( trk->getRadiusOfInnermostHit(), float(3.14159265) , "getRadiusOfInnermostHit" ) ; const FloatVec& cov = trk->getCovMatrix() ; @@ -367,6 +372,7 @@ int main(int /*argc*/, char** /*argv*/ ){ MYTEST( trkc->getNdf(), 42 , "getNdf" ) ; MYTEST( trkc->getdEdx(), float(3.14159265) , "getdEdx" ) ; MYTEST( trkc->getdEdxError(), float(42.) , "getdEdxError" ) ; + MYTEST( trkc->getNholes(), int(2.) , "getNholes" ) ; MYTEST( trkc->getRadiusOfInnermostHit(), float(3.14159265) , "getRadiusOfInnermostHit" ) ; const FloatVec& covc = trkc->getCovMatrix() ; diff --git a/src/cpp/src/UTIL/Operators.cc b/src/cpp/src/UTIL/Operators.cc index 6e4be789d..a9894b86c 100644 --- a/src/cpp/src/UTIL/Operators.cc +++ b/src/cpp/src/UTIL/Operators.cc @@ -2420,12 +2420,12 @@ namespace UTIL{ //============================================================================ const std::string& header(const EVENT::Track *){ //hauke - static const std::string _h(" [ id ] | type | d0 | phi | omega | z0 | tan lambda| reference point(x,y,z) | dEdx | dEdxErr | chi2 | ndf \n"); + static const std::string _h(" [ id ] | type | d0 | phi | omega | z0 | tan lambda| reference point(x,y,z) | dEdx | dEdxErr | nholes | chi2 | ndf \n"); return _h; } const std::string& tail(const EVENT::Track *){ //hauke - static const std::string _t("------------|----------|----------|----------|----------|-----------|-----------|---------------------------------|----------|----------|-------- \n"); + static const std::string _t("------------|----------|----------|----------|----------|-----------|-----------|---------------------------------|----------|----------|----------|-------- \n"); return _t; } @@ -2449,6 +2449,7 @@ namespace UTIL{ out << " |(" << setprecision(2) << trk->getReferencePoint()[0] << ", " << trk->getReferencePoint()[1] << ", " <getReferencePoint()[2]; out << ")|" << trk->getdEdx(); out << " |" << trk->getdEdxError(); + out << " |" << trk->getNholes(); out << " |" << trk->getChi2(); out << " |" << noshowpos << setw(5) << trk->getNdf() ; out << endl; @@ -2542,6 +2543,7 @@ namespace UTIL{ // out << setw(30) << setfill(' ') << left << "ReferencePoint" << right << setw(40) << tmp.str() << endl; out << setw(30) << setfill(' ') << left << "dEdx" << right << setw(40) << part->getdEdx() << endl; out << setw(30) << setfill(' ') << left << "dEdx Error" << right << setw(40) << part->getdEdxError() << endl; + out << setw(30) << setfill(' ') << left << "N holes" << right << setw(40) << part->getNholes() << endl; out << setw(30) << setfill(' ') << left << "Chi2" << right << setw(40) << part->getChi2() << endl; out << setw(30) << setfill(' ') << left << "Ndf" << right << setw(40) << noshowpos << part->getNdf() << endl; diff --git a/src/java/hep/lcio/implementation/event/ITrack.java b/src/java/hep/lcio/implementation/event/ITrack.java index 2ae8d8c8d..04924166c 100644 --- a/src/java/hep/lcio/implementation/event/ITrack.java +++ b/src/java/hep/lcio/implementation/event/ITrack.java @@ -31,6 +31,7 @@ public class ITrack extends ILCObject implements Track protected float chi2; protected float dEdx; protected float dEdxError; + protected int nholes; protected int ndf; protected List tracks = new ArrayList(); protected List trackStates = new ArrayList(); @@ -39,6 +40,7 @@ public class ITrack extends ILCObject implements Track //public final static int BITISREFERENCEPOINTPCA = 31; protected int[] subdetectorHitNumbers = null0; + protected int[] subdetectorHoleNumbers = null0; public float getD0() { @@ -239,6 +241,11 @@ public float getdEdxError() { return dEdxError; } + + public int getNholes() + { + return nholes; + } public void setChi2(float chi2) { @@ -256,6 +263,12 @@ public void setDEdxError(float dEdxError) { checkAccess(); this.dEdxError = dEdxError; + } + + public void setNholes(int nholes) + { + checkAccess(); + this.nholes = nholes; } protected void setType(int type) @@ -309,21 +322,32 @@ public float getRadiusOfInnermostHit() { return radiusOfInnermostHit; } - + public void setRadiusOfInnermostHit(float f) { checkAccess(); radiusOfInnermostHit = f; } - + public int[] getSubdetectorHitNumbers() { return subdetectorHitNumbers ; } - + public void setSubdetectorHitNumbers(int[] is) { checkAccess(); subdetectorHitNumbers = is; } + + public int[] getSubdetectorHoleNumbers() + { + return subdetectorHoleNumbers ; + } + + public void setSubdetectorHoleNumbers(int[] is) + { + checkAccess(); + subdetectorHoleNumbers = is; + } } diff --git a/src/java/hep/lcio/implementation/sio/SIOTrack.java b/src/java/hep/lcio/implementation/sio/SIOTrack.java index e6d910245..5ce01f0a9 100644 --- a/src/java/hep/lcio/implementation/sio/SIOTrack.java +++ b/src/java/hep/lcio/implementation/sio/SIOTrack.java @@ -78,6 +78,9 @@ class SIOTrack extends ITrack ndf = in.readInt() ; dEdx = in.readFloat(); dEdxError = in.readFloat(); + if (SIOVersion.encode(major,minor) > SIOVersion.encode(2,21) { + nholes = in.readInt() ; + } radiusOfInnermostHit = in.readFloat() ; int nHitNumbers = in.readInt() ; int[] hitNumbers = new int[nHitNumbers] ; @@ -86,6 +89,15 @@ class SIOTrack extends ITrack hitNumbers[i] = in.readInt() ; } setSubdetectorHitNumbers(hitNumbers) ; + if (SIOVersion.encode(major,minor) > SIOVersion.encode(2,21) { + int nHoleNumbers = in.readInt() ; + int[] holeNumbers = new int[nHoleNumbers] ; + for (int i = 0; i < nHoleNumbers; i++) + { + holeNumbers[i] = in.readInt() ; + } + setSubdetectorHoleNumbers(holeNumbers) ; + } int nTracks = in.readInt(); tempTracks = new ArrayList(nTracks); tracks = null; @@ -152,6 +164,7 @@ static void write(Track track, SIOOutputStream out, int flag) throws IOException out.writeInt(track.getNdf()); out.writeFloat(track.getdEdx()); out.writeFloat(track.getdEdxError()); + out.writeFloat(track.getNholes()); out.writeFloat(track.getRadiusOfInnermostHit()) ; int[] hitNumbers = track.getSubdetectorHitNumbers(); out.writeInt( hitNumbers.length ) ; @@ -217,6 +230,7 @@ private void write(SIOOutputStream out, int flag) throws IOException out.writeFloat(ndf); out.writeFloat(dEdx); out.writeFloat(dEdxError); + out.writeInt(nholes); out.writeFloat(radiusOfInnermostHit) ; out.writeInt( subdetectorHitNumbers.length ) ; for (int i = 0; i < subdetectorHitNumbers.length; i++) diff --git a/src/java/hep/lcio/util/Printer.java b/src/java/hep/lcio/util/Printer.java index 34dabb9a1..ecd3d9a35 100644 --- a/src/java/hep/lcio/util/Printer.java +++ b/src/java/hep/lcio/util/Printer.java @@ -859,7 +859,7 @@ void print(LCCollection coll, int nprint) { boolean havehits = ((flag & (1 << LCIO.TRBIT_HITS)) != 0); - ps.println(" [ id ] | type | d0 | phi | omega | z0 | tan lambda| reference point(x,y,z) | dEdx | dEdxErr | chi2 "); + ps.println(" [ id ] | type | d0 | phi | omega | z0 | tan lambda| reference point(x,y,z) | dEdx | dEdxErr | nholes | chi2 "); for (int i = 0; i < nprint; i++) { Track trk = (Track) coll.getElementAt(i); @@ -878,6 +878,7 @@ void print(LCCollection coll, int nprint) { Double.valueOf(trk.getReferencePoint()[2]), Double.valueOf(trk.getdEdx()), Double.valueOf(trk.getdEdxError()), + Integer.valueOf(trk.getNholes()), Double.valueOf(trk.getChi2())); // Print errors. diff --git a/src/latex/manual/f77summary.tex b/src/latex/manual/f77summary.tex index 77953e32d..e7bd75935 100644 --- a/src/latex/manual/f77summary.tex +++ b/src/latex/manual/f77summary.tex @@ -288,10 +288,12 @@ setNdf -> status = lctrksetndf( ptrk, ndf ) setdEdx -> status = lctrksetdedx( ptrk, dedx ) setdEdxError -> status = lctrksetdedxerror( ptrk, dedxerr ) +setNholes -> status = lctrksetnholes( ptrk, nholes ) setRadiusOfInnermostHit-> status = lctrksetradiusofinnermosthit( ptrk, radius) addTrack -> status = lctrkaddtrack( ptrk, ptrack ) addHit -> status = lctrkaddhit( ptrk, phit ) subdetectorHitNumbers -> status = lctrksetsubdetectorhitnumbers( ptrk, intv, nintv) (not in C++ API) +subdetectorHoleNumbers -> status = lctrksetsubdetectorholenumbers( ptrk, intv, nintv) (not in C++ API) id -> id = lctrkid( ptrk ) getType -> itype = lctrkgettype( ptrk ) @@ -306,8 +308,10 @@ getNdf -> ndf = lctrkgetndf( ptrk ) getdEdx -> dedx = lctrkgetdedx( ptrk ) getdEdxError -> dedxerr = lctrkgetdedxerror( ptrk ) +getNholes -> nholes = lctrkgetnholes( ptrk ) getRadiusOfInnermostHit-> radius = lctrkgetradiusofinnermosthit( ptrk ) subdetectorHitNumbers -> status = lctrkgetsubdetectorhitnumbers( ptrk, intv, nintv) +subdetectorHoleNumbers -> status = lctrkgetsubdetectorholenumbers( ptrk, intv, nintv) getTracks -> ptrackv = lctrkgettracks( ptrk ) getTrackerHits -> ptrhitv = lctrkgettrackerhits( ptrk ) diff --git a/src/python/pyLCIO/io/Reader.py b/src/python/pyLCIO/io/Reader.py index ab47240f4..110b75d4f 100644 --- a/src/python/pyLCIO/io/Reader.py +++ b/src/python/pyLCIO/io/Reader.py @@ -26,7 +26,7 @@ def __init__( self, reader, fileName=None ): self.addFileList( fileName ) def __iter__( self ): - return self + return self.reader.__iter__() def getNumberOfEvents( self ): ''' Get the number of events in the stream '''