View Javadoc

1   package org.lcsim.analysis;
2   
3   import java.util.Map;
4   import org.lcsim.event.EventHeader;
5   import org.lcsim.util.Driver;
6   
7   /**
8    *
9    * @author Norman A Graf
10   *
11   * @version $Id:
12   */
13  public class StripIdrupEvent extends Driver
14  {
15  
16      private boolean _debug = true;
17      private int _idrupToWrite;
18      private int _numberToWrite;
19      private int _numberWritten;
20  
21      protected void process(EventHeader event)
22      {
23  //        System.out.println("in StripIdrupEvent process: number written: "+_numberWritten+" number to write: " +_numberToWrite);
24          Map<String, int[]> iparams = event.getIntegerParameters();
25          int idrup = 0;
26          if (iparams.containsKey("idrup")) {
27              idrup = iparams.get("idrup")[0];
28          }
29          if (iparams.containsKey("_idrup")) {
30              idrup = iparams.get("_idrup")[0];
31          }
32  
33          Map<String, float[]> fparams = event.getFloatParameters();
34          float weight = 1.0f;
35          if (fparams.containsKey("_weight")) {
36              weight = fparams.get("_weight")[0];
37          }
38          if (_debug) {
39              System.out.println("idrup= " + idrup + " : weight= " + weight);
40          }
41          boolean skipEvent = true;
42  
43          if (idrup == _idrupToWrite) {
44              if (_numberWritten < _numberToWrite) {
45                  ++_numberWritten;
46                  System.out.println("writing event "+_numberWritten+" of "+_numberToWrite+" with idrup= " + idrup + " : weight= " + weight);
47                  skipEvent = false;
48              }
49          }
50  
51          if (skipEvent) {
52              throw new Driver.NextEventException();
53          }
54          
55  //        if(_numberWritten >= _numberToWrite)
56  //        {
57  //            System.out.println("Wrote "+_numberWritten+" events of idrup= "+_idrupToWrite);
58  //            System.out.println("Exiting...");
59  //            throw new Driver.AbortRunException();
60  //        }
61          
62      }
63  
64      public void setDebug(boolean debug)
65      {
66          _debug = debug;
67      }
68  
69      public void setIdrup(int idrup)
70      {
71          _idrupToWrite = idrup;
72      }
73      
74      public void setNumberToWrite(int numberToWrite)
75      {
76          _numberToWrite = numberToWrite;
77      }
78  }