Commit in lcsim/src/org/lcsim/util/lcio on MAIN
SIOMCParticle.java+19-91.8 -> 1.9
Hopefully a real fix for MCParticle IO problem

lcsim/src/org/lcsim/util/lcio
SIOMCParticle.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- SIOMCParticle.java	26 Jul 2007 20:41:51 -0000	1.8
+++ SIOMCParticle.java	26 Jul 2007 23:00:03 -0000	1.9
@@ -17,11 +17,10 @@
 import java.util.List;
 import org.lcsim.event.MCParticle;
 
-
 /**
  *
  * @author Tony Johnson
- * @version $Id: SIOMCParticle.java,v 1.8 2007/07/26 20:41:51 tonyj Exp $
+ * @version $Id: SIOMCParticle.java,v 1.9 2007/07/26 23:00:03 tonyj Exp $
  */
 class SIOMCParticle implements MCParticle
 {
@@ -68,8 +67,8 @@
       if (version != 8)
       {
          simulatorStatus = in.readInt();
-         hasEndPoint = LCIOUtil.bitTest(simulatorStatus,31);
-         simulatorStatus = LCIOUtil.bitSet(simulatorStatus,31,false);
+         hasEndPoint = LCIOUtil.bitTest(simulatorStatus,Status.BITEndpoint);
+         simulatorStatus = LCIOUtil.bitSet(simulatorStatus,Status.BITEndpoint,false);
       }
       vertex = new BasicHep3Vector(in.readDouble(),in.readDouble(),in.readDouble());
       
@@ -224,8 +223,20 @@
       out.writeInt(particle.getType().getPDGID());
       out.writeInt(particle.getGeneratorStatus());
       boolean hasEndPoint = particle.getDaughters().isEmpty();
+      Hep3Vector endPoint = null;
+      if (hasEndPoint)
+      {
+         try
+         {
+            endPoint = particle.getEndPoint();
+         }
+         catch (Exception x)
+         {
+            hasEndPoint = false;
+         }
+      }
       int simStatus = particle.getSimulatorStatus().getValue();
-      simStatus = LCIOUtil.bitSet(simStatus,31,hasEndPoint);
+      simStatus = LCIOUtil.bitSet(simStatus,Status.BITEndpoint,hasEndPoint);
       out.writeInt(simStatus);
       
       out.writeDouble(particle.getOriginX());
@@ -248,10 +259,9 @@
       }
       if (hasEndPoint)
       {
-         double[] endpoint = particle.getEndPoint().v();
-         out.writeDouble(endpoint[0]);
-         out.writeDouble(endpoint[1]);
-         out.writeDouble(endpoint[2]);
+         out.writeDouble(endPoint.x());
+         out.writeDouble(endPoint.y());
+         out.writeDouble(endPoint.z());
       }
    }
    
CVSspam 0.2.8