Commit in lcsim/src/org/lcsim/util/lcio on MAIN
SIOCalorimeterHit.java+32-101.2 -> 1.3
GL: Improve LCIO compatibility

lcsim/src/org/lcsim/util/lcio
SIOCalorimeterHit.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- SIOCalorimeterHit.java	21 Jul 2005 01:48:24 -0000	1.2
+++ SIOCalorimeterHit.java	26 Jul 2005 23:46:56 -0000	1.3
@@ -5,12 +5,13 @@
 
 import java.io.IOException;
 import org.lcsim.event.CalorimeterHit;
+import org.lcsim.event.RawCalorimeterHit;
 
 /**
  * SIO-based I/O implementation of the CalorimeterHit interface
  *
  * @author Guilherme Lima
- * @version $Id: SIOCalorimeterHit.java,v 1.2 2005/07/21 01:48:24 tonyj Exp $
+ * @version $Id: SIOCalorimeterHit.java,v 1.3 2005/07/26 23:46:56 lima Exp $
  */
 class SIOCalorimeterHit implements CalorimeterHit
 {
@@ -18,20 +19,30 @@
    private int _cellid1;
    private float _energy;
    private float _time;
-
+   private RawCalorimeterHit _rawhit;
+   private int _type;
 
    SIOCalorimeterHit(SIOInputStream in, int flags, int version) throws IOException
    {
       _cellid0 = in.readInt();
-      if (LCIOUtil.bitTest(flags,LCIOConstants.RCHBIT_ID1) || version==8) {
+      ifLCIOUtil.bitTest(flags,LCIOConstants.RCHBIT_ID1) || version==8) {
 	  _cellid1 = in.readInt();
       }
       else _cellid1 = 0;
 
       _energy = in.readFloat();
-      _time = in.readFloat();
 
-      if (!LCIOUtil.bitTest(flags,LCIOConstants.RCHBIT_NO_PTR)) in.readPTag(this);
+      if( LCIOUtil.bitTest(flags,LCIOConstants.RCHBIT_TIME) || version==8) {
+	  _time = in.readFloat();
+      }
+
+      _type = in.readInt();
+
+      if (!LCIOUtil.bitTest(flags,LCIOConstants.RCHBIT_NO_PTR)) {
+	  _rawhit = (RawCalorimeterHit)in.readPntr();
+      }
+
+      in.readPTag(this);
    }
 
    public long getCellID() {
@@ -61,16 +72,27 @@
    {
       long cellID = hit.getCellID();
       out.writeInt( (int)cellID );
-      
+
       if( LCIOUtil.bitTest( flags, LCIOConstants.RCHBIT_ID1)) {
 	  out.writeInt((int) (cellID>>32));
       }
 
       out.writeFloat( (float)hit.getEnergy() );
-      out.writeFloat( (float)hit.getTime() );
 
-       if(!LCIOUtil.bitTest(flags,LCIOConstants.RCHBIT_NO_PTR)) {
- 	  out.writePTag( hit );
-       }
+      if( LCIOUtil.bitTest( flags, LCIOConstants.RCHBIT_TIME)) {
+	  out.writeFloat( (float)hit.getTime() );
+      }
+
+      // FIXME: No type in java CalorimeterHit... write out zero instead,
+      // otherwise output file will be corrupted
+      out.writeInt( 0 );
+
+      // FIXME: Java CalorimeterHit interface does not support getRawHit()
+      if(!LCIOUtil.bitTest(flags,LCIOConstants.RCHBIT_NO_PTR)) {
+	  assert false : "Pointer to raw hit not implemented!";
+// 	  out.writePntr( hit.getRawHit() );
+      }
+
+      out.writePTag( hit );
    }
 }
CVSspam 0.2.8