lcsim/src/org/lcsim/detector/driver
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
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