Print

Print


Commit in lcsim/src/org/lcsim/detector/driver on MAIN
SimTrackerHitIdentifierReadoutDriver.java+19-81.7 -> 1.8
CollectionHandler.java+14-51.2 -> 1.3
+33-13
2 modified files
JM: updates to better handle xml recon

lcsim/src/org/lcsim/detector/driver
SimTrackerHitIdentifierReadoutDriver.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- SimTrackerHitIdentifierReadoutDriver.java	4 Dec 2008 00:29:43 -0000	1.7
+++ SimTrackerHitIdentifierReadoutDriver.java	15 Dec 2008 23:53:32 -0000	1.8
@@ -1,33 +1,44 @@
 package org.lcsim.detector.driver;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.lcsim.detector.DetectorElementStore;
 import org.lcsim.detector.IDetectorElementContainer;
 import org.lcsim.detector.IReadout;
 import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.IIdentifierHelper;
 import org.lcsim.detector.identifier.Identifier;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.SimTrackerHit;
 
 public class SimTrackerHitIdentifierReadoutDriver 
 extends CollectionHandler
-{
+{	
+	boolean cleanupSet=false;
+	
 	public SimTrackerHitIdentifierReadoutDriver()
 	{}
 	
     public SimTrackerHitIdentifierReadoutDriver(List<String> collectionNames)
     {
         super(collectionNames);
-        add( new ReadoutCleanupDriver(collectionNames));
     }
 
     public SimTrackerHitIdentifierReadoutDriver(String[] collectionNames)
     {        
-        super(collectionNames);
-        add( new ReadoutCleanupDriver(collectionNames));
+        super(collectionNames);       
     }
-
+    
+    public void startOfData()
+    {
+    	if (!cleanupSet)
+    	{
+    		add(new ReadoutCleanupDriver(new ArrayList<String>(collections)));
+    		cleanupSet=true;
+    	}
+    }
+    
     protected void process(EventHeader header)
     {                          
         super.process(header);
@@ -42,11 +53,11 @@
                     IDetectorElementContainer deHit = DetectorElementStore.getInstance().find(hitId);
                     if (deHit.size() == 0)
                     {
-                        throw new RuntimeException("No DetectorElement found for id <"+hitId.toString()+">.");
+                    	throw new RuntimeException("No DetectorElement found for ID - " + hitId.toHexString());
                     }
-                    hit.setDetectorElement( deHit.get(0) );
+                    hit.setDetectorElement(deHit.get(0));
                     IReadout ro = deHit.get(0).getReadout();
-                    ro.addHit( hit );                    
+                    ro.addHit(hit);
                 }
             }
         }        

lcsim/src/org/lcsim/detector/driver
CollectionHandler.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- CollectionHandler.java	4 Dec 2008 00:12:51 -0000	1.2
+++ CollectionHandler.java	15 Dec 2008 23:53:32 -0000	1.3
@@ -22,7 +22,7 @@
     
     public CollectionHandler(List<String> collectionNames)
     {        
-        for ( String collection : collectionNames )
+        for (String collection : collectionNames)
         {
             this.collections.add(collection);
         }
@@ -30,14 +30,23 @@
     
     public CollectionHandler(String[] collectionNames)
     {        
-        for ( String collection : collectionNames )
+        for (String collection : collectionNames)
         {
             this.collections.add(collection);
         }
     }
-           
-    public boolean canHandle( String collectionName )
+ 
+    /**
+     * Return whether this CollectionHandler can handle the collection called 
+     * <code>collectionName</code>.  
+     * @param collectionName
+     * @return True if <code>collections</code> is empty or if 
+     *         collections contains </code>collectionName</code>; 
+     *         false if does not contain </code>collectionName</code>.
+     */
+    public boolean canHandle(String collectionName)
     {
-        return collections.contains( collectionName );
+    	if (collections.size() == 0) return true;
+        return collections.contains(collectionName);
     }
 }
\ No newline at end of file
CVSspam 0.2.8