lcsim/src/org/lcsim/plugin/web/examples
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
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