View Javadoc

1   package org.lcsim.job;
2   
3   import java.util.logging.Level;
4   import java.util.logging.Logger;
5   
6   import org.freehep.record.loop.RecordEvent;
7   import org.freehep.record.loop.RecordListener;
8   import org.lcsim.event.EventHeader;
9   
10  /**
11   * Prints out information from event processing such as the event number at a specified interval.
12   * 
13   * @author Jeremy McCormick, SLAC
14   */
15  class EventPrintLoopAdapter implements RecordListener {
16  
17      /**
18       * Setup the logger.
19       */
20      private static Logger LOGGER = Logger.getLogger(EventPrintLoopAdapter.class.getName());
21      static {
22          if (LOGGER.getLevel() == null) {
23              System.out.println("EventPrintLoopAdapter: set level to ALL");
24              LOGGER.setLevel(Level.ALL);
25          } else {
26              System.out.println("EventPrintLoopAdapter: level " + LOGGER.getLevel() + " from config");
27          }
28      }
29  
30      /**
31       * Sequence number of events processed.
32       */
33      private long eventSequence = 0;
34      
35      /**
36       * Event print interval which means every Nth event will be printed.
37       */
38      private long printInterval = 1;
39  
40      /**
41       * Class constructor.
42       * @param printInterval the event print interval
43       */
44      EventPrintLoopAdapter(long printInterval) {
45          this.printInterval = printInterval;
46      }
47  
48      /**
49       * Process an event and print the event information.
50       */
51      @Override
52      public void recordSupplied(RecordEvent recordEvent) {
53          Object record = recordEvent.getRecord();
54          if (record instanceof EventHeader) {
55              EventHeader event = (EventHeader) recordEvent.getRecord();
56              //System.out.println("EventPrintLoopAdapter.recordSupplied - " + event.getEventNumber());
57              if (eventSequence % printInterval == 0) {
58                  LOGGER.info("event: " + event.getEventNumber() + "; time: " + event.getTimeStamp() + "; seq: " 
59                          + eventSequence);
60              }
61              ++eventSequence;
62          }
63      }
64  }