Commit in hps-java/src/main/java/org/lcsim/hps/evio on MAIN | |||
BasicEvioFileReader.java | +8 | -9 | 1.7 -> 1.8 |
TestRunEvioToLcio.java | +9 | -6 | 1.7 -> 1.8 |
+17 | -15 |
Work around JEVIO bug where getEventCount() borks the reader; EvioFileProducer probably still needs to be fixed
diff -u -r1.7 -r1.8 --- BasicEvioFileReader.java 4 May 2012 17:18:57 -0000 1.7 +++ BasicEvioFileReader.java 5 May 2012 19:05:25 -0000 1.8 @@ -16,15 +16,17 @@
} try { org.jlab.coda.jevio.EvioReader reader = new org.jlab.coda.jevio.EvioReader(evioFile);
- int totalEvents = reader.getEventCount(); - System.out.println("EVIO file has " + totalEvents + " total events.");
int eventN = 1; int badEvents = 0;
+ fileLoop:
while (true) {
- System.out.println("Reading event " + eventN + " of " + totalEvents);
+ System.out.println("Reading event " + eventN);
try {
- System.out.println("There are " + reader.getNumEventsRemaining() + " events remaining."); - EvioEvent event = reader.parseNextEvent();
+ EvioEvent event = reader.nextEvent(); + if (event == null) { + break fileLoop; + } + reader.parseEvent(event);
//printBytes(event.getRawBytes()); // DEBUG System.out.println("Successfully read event " + eventN);// + " which contains " + event.getTotalBytes() + " bytes."); printBank(event, "");
@@ -33,13 +35,10 @@
e.printStackTrace(); ++badEvents; }
- if (reader.getNumEventsRemaining() == 0) { - break; - }
++eventN; System.out.println("-------"); }
- System.out.println("There were " + badEvents + " bad events out of " + totalEvents + " total.");
+ System.out.println("There were " + badEvents + " bad events out of " + eventN + " total.");
reader.close(); } catch (Exception e) { throw new RuntimeException(e);
diff -u -r1.7 -r1.8 --- TestRunEvioToLcio.java 1 May 2012 18:20:19 -0000 1.7 +++ TestRunEvioToLcio.java 5 May 2012 19:05:25 -0000 1.8 @@ -155,17 +155,23 @@
// Loop over EVIO events, build LCSim events, process them, and then // write events to disk.
+ fileLoop:
while (true) { EvioEvent evioEvent = null; try {
+ eventLoop:
do {
+ evioEvent = reader.nextEvent(); + if (evioEvent == null) { + break fileLoop; + }
try {
- evioEvent = reader.parseNextEvent();
+ reader.parseEvent(evioEvent);
} catch (Exception e) {
- evioEvent = null;
e.printStackTrace();
+ continue eventLoop;
}
- } while (evioEvent == null || !eventBuilder.isPhysicsEvent(evioEvent));
+ } while (!eventBuilder.isPhysicsEvent(evioEvent));
EventHeader lcioEvent = eventBuilder.makeLCSimEvent(evioEvent); jobManager.processEvent(lcioEvent);
@@ -173,9 +179,6 @@
writer.write(lcioEvent); writer.flush(); }
- if (reader.getNumEventsRemaining() == 0) { - break; - }
} catch (Exception e) { // Catch all event processing errors and continue. e.printStackTrace();
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1