lcsim/src/org/lcsim/util/lcio
diff -u -r1.3 -r1.4
--- SIOSimTrackerHit.java 3 Aug 2005 06:36:52 -0000 1.3
+++ SIOSimTrackerHit.java 22 Sep 2005 15:39:10 -0000 1.4
@@ -12,12 +12,14 @@
/**
*
* @author Tony Johnson
- * @version $Id: SIOSimTrackerHit.java,v 1.3 2005/08/03 06:36:52 jeremy Exp $
+ * @version $Id: SIOSimTrackerHit.java,v 1.4 2005/09/22 15:39:10 ngraf Exp $
*/
class SIOSimTrackerHit implements SimTrackerHit
-{
+{
private int cellID;
private double[] position = new double[3];
+ // px,py,pz momentum of track creating hit
+ private double[] momentum = new double[3];
private float dEdx;
private float time;
private Object particle;
@@ -31,6 +33,13 @@
dEdx = in.readFloat();
time = in.readFloat();
particle = in.readPntr();
+ if ( LCIOUtil.bitTest(flags,LCIOConstants.THBIT_MOMENTUM) )
+ {
+ momentum[0] = in.readFloat();
+ momentum[1] = in.readFloat();
+ momentum[2] = in.readFloat();
+ }
+
if( version > 1000) in.readPTag(this);
}
@@ -80,6 +89,11 @@
return cellID;
}
+ public double[] getMomentum()
+ {
+ return momentum;
+ }
+
static void write(SimTrackerHit hit, SIOOutputStream out, int flags) throws IOException
{
out.writeInt(hit.getCellID());
@@ -91,6 +105,13 @@
out.writeFloat((float) hit.getdEdx());
out.writeFloat((float) hit.getTime());
out.writePntr(hit.getMCParticle());
+ if ( LCIOUtil.bitTest(flags,LCIOConstants.THBIT_MOMENTUM) )
+ {
+ double[] p = hit.getMomentum() ;
+ out.writeFloat((float) p[0] ) ;
+ out.writeFloat((float) p[1] ) ;
+ out.writeFloat((float) p[2] ) ;
+ }
out.writePTag(hit);
}
}