lcsim/test/org/lcsim
diff -N NonTrivialPFASingleEventTest.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ NonTrivialPFASingleEventTest.java 4 Sep 2007 22:51:30 -0000 1.1
@@ -0,0 +1,58 @@
+package org.lcsim;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.freehep.record.loop.LoopException;
+import org.lcsim.contrib.uiowa.NonTrivialPFA;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.MCParticle;
+import org.lcsim.util.Driver;
+import org.lcsim.util.cache.FileCache;
+import org.lcsim.util.loop.LCIODriver;
+import org.lcsim.util.loop.LCSimLoop;
+import org.lcsim.util.test.TestUtil.TestOutputFile;
+
+/**
+ * Runs the {@link org.lcsim.contrib.uiowa.NonTrivialPFA} on a single physics event
+ * and writes the output to <code>target/test-output/NonTrivialPFA.slcio</code>.
+ *
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
+public class NonTrivialPFASingleEventTest extends TestCase
+{
+ public void testSingleEvent() throws IOException, LoopException
+ {
+ FileCache cache = new FileCache();
+ File file = cache.getCachedFile(new URL("http://www.lcsim.org/test/lcio/panpyZZnunubaruds-0-1000_SLIC_v2r1p5_acme0605.slcio"));
+
+ LCSimLoop loop = new LCSimLoop();
+ loop.setLCIORecordSource(file);
+ loop.add(new NonTrivialPFA());
+ loop.add(new RemoveMCPColls());
+ loop.add(new LCIODriver(new TestOutputFile("NonTrivialPFA.slcio")));
+ loop.loop(1);
+ loop.dispose();
+ }
+
+ class RemoveMCPColls extends Driver
+ {
+ public void process(EventHeader event)
+ {
+ List<MCParticle> particles = event.get(MCParticle.class,event.MC_PARTICLES);
+ List<List<MCParticle>> collections = event.get(MCParticle.class);
+ for (List<MCParticle> collection : collections)
+ {
+ if (collection != particles)
+ {
+ String name = event.getMetaData(collection).getName();
+ event.remove(name);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file