GeomConverter/src/org/lcsim/detector
diff -u -r1.3 -r1.4
--- Readout.java 7 May 2007 22:32:48 -0000 1.3
+++ Readout.java 7 May 2007 23:38:34 -0000 1.4
@@ -1,8 +1,9 @@
package org.lcsim.detector;
+
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.HashMap;
/**
* Simple implementation that of {@link IReadout}
@@ -17,8 +18,8 @@
Map<Class,List> hits = new HashMap<Class,List>();
public <T> List<T> getHits(Class<T> klass)
- {
- if ( !hits.containsKey(klass) )
+ {
+ if ( !hits.containsKey( klass) )
{
hits.put( klass, new ArrayList<T>() );
}
@@ -26,10 +27,27 @@
}
public <T> void addHit(T hit)
- {
- List<T> addList = (List<T>)getHits(hit.getClass());
+ {
+ // FIXME: Uses first interface which is liable to break easily!
+ // Works okay for SimTrackerHit and CalorimeterHit.
+ List addList = getHits(hit.getClass().getInterfaces()[0]);
addList.add(hit);
}
+
+ public String toString()
+ {
+ StringBuffer str = new StringBuffer();
+ for ( Class k : hits.keySet() )
+ {
+ str.append(k.getCanonicalName() + '\n');
+ List val = hits.get(k);
+ for ( Object v : val )
+ {
+ str.append(" " + v.toString() + '\n');
+ }
+ }
+ return str.toString();
+ }
public void clear()
{