Commit in lcsim/src/org/lcsim on MAIN
event/base/BaseTrack.java+1-91.9 -> 1.10
util/lcio/SIOTrack.java+30-1451.3 -> 1.4
         /SIOTrackBlockHandler.java+5-11.2 -> 1.3
+36-155
3 modified files
Fix for LCSIM-187, LCSIM-188

lcsim/src/org/lcsim/event/base
BaseTrack.java 1.9 -> 1.10
diff -u -r1.9 -r1.10
--- BaseTrack.java	9 Feb 2007 17:34:10 -0000	1.9
+++ BaseTrack.java	11 Sep 2007 18:18:04 -0000	1.10
@@ -1,11 +1,3 @@
-/*
- * BaseTrack.java
- *
- * Created on March 24, 2006, 9:18 PM
- *
- * $Id: BaseTrack.java,v 1.9 2007/02/09 17:34:10 cassell Exp $
- */
-
 package org.lcsim.event.base;
 
 import hep.physics.matrix.SymmetricMatrix;
@@ -21,7 +13,7 @@
  *
  * @author Norman Graf
  */
-public class BaseTrack  implements Track
+public class BaseTrack implements Track
 {
     protected double[] _refPoint = new double[3];
     protected boolean _refPointIsDCA = true;

lcsim/src/org/lcsim/util/lcio
SIOTrack.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- SIOTrack.java	23 Oct 2006 19:42:35 -0000	1.3
+++ SIOTrack.java	11 Sep 2007 18:18:04 -0000	1.4
@@ -7,60 +7,50 @@
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import org.lcsim.event.Track;
 import org.lcsim.event.TrackerHit;
+import org.lcsim.event.base.BaseTrack;
 
 
 /**
  *
  * @author Tony Johnson
- * @version $Id: SIOTrack.java,v 1.3 2006/10/23 19:42:35 tonyj Exp $
+ * @version $Id: SIOTrack.java,v 1.4 2007/09/11 18:18:04 tonyj Exp $
  */
-class SIOTrack implements Track
+class SIOTrack extends BaseTrack
 {
    private List<SIORef> tempHits;
    private List<SIORef> tempTracks;
-   private int type;
-   private double[] parameters;
-   private double[] referencePoint;
-   private int[] hitNumbers;
-   private float chi2;
-   private int ndf;
-   private float dEdx;
-   private float dEdxError;
-   private float radiusOfInnermostHit;
-   private List<Track> tracks;
-   private List<TrackerHit> hits;
-   private SymmetricMatrix errorMatrix;
    
-   
-   SIOTrack(SIOInputStream in, int flag, int version) throws IOException
+   SIOTrack(SIOInputStream in, int flag, int version, double bField) throws IOException
    {
-      type = in.readInt();
-      parameters = new double[5];
+      _type = in.readInt();
+      double[] parameters = new double[5];
       for (int i=0; i<parameters.length; i++) parameters[i] = in.readFloat();
+      setTrackParameters(parameters,bField);
       double[] covMatrix = new double[15];
       for (int i=0; i<covMatrix.length; i++) covMatrix[i] = in.readFloat();
-      errorMatrix = new SymmetricMatrix(5,covMatrix,true);
-      referencePoint = new double[3];
-      referencePoint[0] = in.readFloat();
-      referencePoint[1] = in.readFloat();
-      referencePoint[2] = in.readFloat();
-      chi2 = in.readFloat();
-      ndf = in.readInt() ;
-      dEdx = in.readFloat();
-      dEdxError = in.readFloat();
-      radiusOfInnermostHit = in.readFloat() ;
+      _covMatrix = new SymmetricMatrix(5,covMatrix,true);
+      _refPoint = new double[3];
+      _refPoint[0] = in.readFloat();
+      _refPoint[1] = in.readFloat();
+      _refPoint[2] = in.readFloat();
+      _chi2 = in.readFloat();
+      _ndf = in.readInt() ;
+      _dEdx = in.readFloat();
+      _dEdxErr = in.readFloat();
+      _innermostHitRadius = in.readFloat() ;
       int nHitNumbers = in.readInt() ;
-      hitNumbers = new int[nHitNumbers] ;
+      _subdetId = new int[nHitNumbers] ;
       for (int i = 0; i < nHitNumbers; i++)
       {
-         hitNumbers[i] = in.readInt() ;
+         _subdetId[i] = in.readInt() ;
       }
       int nTracks = in.readInt();
       tempTracks = new ArrayList(nTracks);
-      tracks = null;
+      _tracks = null;
       for (int i=0; i<nTracks; i++)
       {
          tempTracks.add(in.readPntr());
@@ -69,7 +59,7 @@
       {
          int nHits = in.readInt();
          tempHits = new ArrayList(nHits);
-         hits = null;
+         _hits = null;
          for (int i = 0; i < nHits; i++)
          {
             tempHits.add(in.readPntr());
@@ -118,134 +108,29 @@
    
    public List<TrackerHit> getTrackerHits()
    {
-      if (hits == null && tempHits != null)
+      if (_hits == null && tempHits != null)
       {
-         hits = new ArrayList<TrackerHit>(tempHits.size());
+         _hits = new ArrayList<TrackerHit>(tempHits.size());
          for (SIORef ref : tempHits)
          {
-            hits.add((TrackerHit) ref.getObject());
+            _hits.add((TrackerHit) ref.getObject());
          }
          tempHits = null;
       }
-      return hits;
+      return _hits == null ? Collections.<TrackerHit>emptyList() : _hits;
    }
    
    public List<Track> getTracks()
    {
-      if (tracks == null && tempTracks != null)
+      if (_tracks == null && tempTracks != null)
       {
-         tracks = new ArrayList<Track>(tempTracks.size());
+         _tracks = new ArrayList<Track>(tempTracks.size());
          for (SIORef ref : tempTracks)
          {
-            tracks.add((Track) ref.getObject());
+            _tracks.add((Track) ref.getObject());
          }
          tempTracks = null;
       }
-      return tracks;
-   }
-   
-   public double getTrackParameter(int i)
-   {
-      return parameters[i];
-   }
-   
-   public boolean isReferencePointPCA()
-   {
-      return false;
-   }
-   
-   public double getdEdxError()
-   {
-      return dEdxError;
-   }
-   
-   public double getdEdx()
-   {
-      return dEdx;
-   }
-   
-   public int getType()
-   {
-      return type;
-   }
-   
-   public double[] getTrackParameters()
-   {
-      return parameters;
-   }
-   
-   public int[] getSubdetectorHitNumbers()
-   {
-      return hitNumbers;
-   }
-   
-   public double getReferencePointZ()
-   {
-      return referencePoint[2];
-   }
-   
-   public double getReferencePointY()
-   {
-      return referencePoint[1];
-   }
-   
-   public boolean fitSuccess()
-   {
-      return false;
-   }
-   
-   public int getCharge()
-   {
-      return (int) Math.signum(parameters[2]);
-   }
-   
-   public double getChi2()
-   {
-      return chi2;
-   }
-   
-   public SymmetricMatrix getErrorMatrix()
-   {
-      return errorMatrix;
-   }
-   
-   public double[] getMomentum()
-   {
-      return null;
-   } 
-   
-   public int getNDF()
-   {
-      return ndf;
-   }
-   
-   public double getPX()
-   {
-      return Double.NaN;
-   }
-   
-   public double getPY()
-   {
-      return Double.NaN;
-   }
-   
-   public double getPZ()
-   {
-      return Double.NaN;
-   }
-   
-   public double getRadiusOfInnermostHit()
-   {
-      return radiusOfInnermostHit;
-   }
-   
-   public double[] getReferencePoint()
-   {
-      return referencePoint;
-   }
-   
-   public double getReferencePointX()
-   {
-      return referencePoint[0];
+      return _tracks == null ? Collections.<Track>emptyList() : _tracks;
    }
 }

lcsim/src/org/lcsim/util/lcio
SIOTrackBlockHandler.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- SIOTrackBlockHandler.java	2 Aug 2005 17:18:06 -0000	1.2
+++ SIOTrackBlockHandler.java	11 Sep 2007 18:18:04 -0000	1.3
@@ -2,6 +2,8 @@
 
 import hep.lcd.io.sio.SIOInputStream;
 import hep.lcd.io.sio.SIOOutputStream;
+import hep.physics.vec.BasicHep3Vector;
+import hep.physics.vec.Hep3Vector;
 
 import java.io.IOException;
 
@@ -13,12 +15,14 @@
  */
 class SIOTrackBlockHandler extends AbstractBlockHandler
 {
+   private static final Hep3Vector origin = new BasicHep3Vector();
    public String getType() { return "Track"; }
    public Class getClassForType() { return Track.class; }
    void addCollectionElements(LCIOEvent event, LCIOCollection collection, SIOInputStream in, int n, int version) throws IOException
    {
+      double bField = event.getDetector().getFieldMap().getField(origin).z();
       for (int i = 0; i < n; i++)
-         collection.add(new SIOTrack(in, collection.getFlags(), version));
+         collection.add(new SIOTrack(in, collection.getFlags(), version, bField));
    }
    void writeCollectionElement(Object element, SIOOutputStream out, int flags) throws IOException
    {
CVSspam 0.2.8