Commit in lcsim/src/org/lcsim/digisim on MAIN
CalHitMapMgr.java+19-181.4 -> 1.5
Fix: check for readouts before saving subdets into map

lcsim/src/org/lcsim/digisim
CalHitMapMgr.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- CalHitMapMgr.java	27 Jun 2005 22:04:24 -0000	1.4
+++ CalHitMapMgr.java	28 Jun 2005 21:55:33 -0000	1.5
@@ -8,6 +8,7 @@
 import org.lcsim.event.SimCalorimeterHit;
 import org.lcsim.geometry.Detector;
 import org.lcsim.geometry.compact.Subdetector;
+import org.lcsim.geometry.compact.Readout;
 
 /**
  * Arranges calorimeter hits in maps keyed by cellID.  Hits can then
@@ -18,7 +19,7 @@
  *     = CalHitMapMgr.getInstance().getCollHitMap("colName");
  *
  * @author Guilherme Lima
- * @version $Id: CalHitMapMgr.java,v 1.4 2005/06/27 22:04:24 lima Exp $
+ * @version $Id: CalHitMapMgr.java,v 1.5 2005/06/28 21:55:33 lima Exp $
  */
 public class CalHitMapMgr {
 
@@ -33,32 +34,32 @@
     }
 
     /**
-     * Sets current event.  This should be always called first, before
-     * any hit map can be requested.  A driver exists for this
-     * purpose, called CalHitMapDriver.
+     * Sets current event and fill subdetectors map.  This should be
+     * always called first, before any hit map can be requested.  A
+     * driver exists for this purpose, called CalHitMapDriver.
      * @see CalHitMapDriver
      */
     public void setEvent(EventHeader event) {
-	if( _event!=event || event.getEventNumber()!=_evtno
-	    || event.getRunNumber()!=_runno ) {
-	    _me.reset();
-	    _me._event = event;
-	    _me._runno = event.getRunNumber();
-	    _me._evtno = event.getEventNumber();
-
-	    // fill subdetectors map
-	    Detector det = _event.getDetector();
-	    for( Subdetector idet : det.getSubdetectors().values() ) {
-		_subdets.put( idet.getReadout().getName(), idet );
-	    }
+      if( _event!=event || event.getEventNumber()!=_evtno
+	  || event.getRunNumber()!=_runno ) {
+	_me.reset();
+	_me._event = event;
+	_me._runno = event.getRunNumber();
+	_me._evtno = event.getEventNumber();
+
+	// fill subdetectors map
+	Detector det = _event.getDetector();
+	for( Subdetector idet : det.getSubdetectors().values() ) {
+	  Readout ro = idet.getReadout();
+	  if( ro != null ) _subdets.put( ro.getName(), idet );
 	}
+      }
     }
 
     public EventHeader getEvent() {
 	return _event;
     }
 
-
     public Detector getDetector() {
 	return _event.getDetector();
     }
@@ -103,7 +104,7 @@
     /**
      * Fills hit maps using data from current event.
      * @param colName name of hit collection to extract the hits from
-     * @param hitmap output map containing 
+     * @param hitmap output map containing
      * @see CalHitMapMgr.setEvent
      */
     private void fillHitMap( final String colName,
CVSspam 0.2.8