Commit in lcsim/src/org/lcsim/util/event on MAIN
BaseCalorimeterHit.java+18-111.5 -> 1.6
JM: Separate layer decoding from position decoding.

lcsim/src/org/lcsim/util/event
BaseCalorimeterHit.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- BaseCalorimeterHit.java	29 Nov 2006 08:20:26 -0000	1.5
+++ BaseCalorimeterHit.java	17 Aug 2007 23:58:31 -0000	1.6
@@ -1,6 +1,7 @@
 package org.lcsim.util.event;
 
 import org.lcsim.event.CalorimeterHit;
+import org.lcsim.event.RawCalorimeterHit;
 import org.lcsim.event.EventHeader.LCMetaData;
 import org.lcsim.geometry.IDDecoder;
 import org.lcsim.geometry.Subdetector;
@@ -17,8 +18,8 @@
    protected double[] position;
    protected double time;
    protected long id;
-   protected int layer;
-
+   protected int layer=-1;
+        
    public double getTime()
    {
       return time;
@@ -37,14 +38,16 @@
    public double[] getPosition()
    {
       if (position == null)
-      {
-         IDDecoder iddecoder = data.getIDDecoder();
-         iddecoder.setID( id );
-         position = new double[3];
-         position[0] = iddecoder.getX();
-         position[1] = iddecoder.getY();
-         position[2] = iddecoder.getZ();
-         layer = iddecoder.getLayer();
+      { 
+    	  if (data != null)
+    	  {
+    		  IDDecoder iddecoder = data.getIDDecoder();
+    		  iddecoder.setID( id );
+    		  position = new double[3];
+    		  position[0] = iddecoder.getX();
+    		  position[1] = iddecoder.getY();
+    		  position[2] = iddecoder.getZ();
+    	  }
       }
       return position;
    }
@@ -73,6 +76,10 @@
    
    public int getLayerNumber()
    {
+	   if (layer == -1)
+	   {
+		   layer = getIDDecoder().getLayer();
+	   }
        return layer;
    }
-}
+}
\ No newline at end of file
CVSspam 0.2.8