Print

Print


Commit in lcsim/src/org/lcsim/plugin/web on MAIN
examples/FilterExample.java+43added 1.1
examples.html+41.5 -> 1.6
+47
1 added + 1 modified, total 2 files
Added Example on how to filter events

lcsim/src/org/lcsim/plugin/web/examples
FilterExample.java added at 1.1
diff -N FilterExample.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ FilterExample.java	2 Nov 2005 00:40:56 -0000	1.1
@@ -0,0 +1,43 @@
+import java.util.List;
+
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.MCParticle;
+import org.lcsim.util.Driver;
+
+class PrintDriver1 extends Driver {
+    public void process(EventHeader e) {
+        System.out.println("PrintDriver1 has been called");
+    }
+}
+
+class PrintDriver2 extends Driver {
+    public void process(EventHeader e) {
+        System.out.println("PrintDriver2 has been called");
+    }
+}
+
+public class FilterExample extends Driver {
+    // Permanently add a Sub-Driver to this one
+    public FilterExample() {
+        add(new PrintDriver1());
+    }
+    
+    public void process(EventHeader e) {
+        List<MCParticle> parts = e.getMCParticles();
+        System.out.println("Size: " + parts.size());
+        if (parts.size() < 100) {
+            // Execute all added Sub-Drivers
+            super.process(e);
+        } else if (parts.size() < 150) {
+            // Add a Driver just for now
+            PrintDriver2 p2 = new PrintDriver2(); 
+            add(p2);
+            // again, execute ALL Sub-Drivers
+            super.process(e);
+            // you can even remove a Driver.
+            remove(p2);
+        } else {
+            System.out.println("None is called");
+        }
+    }
+}

lcsim/src/org/lcsim/plugin/web
examples.html 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- examples.html	5 Aug 2005 23:01:28 -0000	1.5
+++ examples.html	2 Nov 2005 00:40:57 -0000	1.6
@@ -36,6 +36,10 @@
     <td><a href="examples/DigiSimExample.java">DigiSimExample.java</a></td>
     <td>Digitization example</td>
   </tr>
+  <tr>
+    <td><a href="examples/FilterExample.java">FilterExample.java</a></td>
+    <td>Example of executing child drivers conditionally</td>
+  </tr>
 </table>
 <h2>org.lcsim Jython examples for advanced users</h2>
 <p>These examples are written in Jython. They have to be executed from within
CVSspam 0.2.8