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 '''