Print

Print


Commit in hps-java/src/main/java/org/lcsim/hps/evio on MAIN
BasicEvioFileReader.java+8-91.7 -> 1.8
TestRunEvioToLcio.java+9-61.7 -> 1.8
+17-15
2 modified files
Work around JEVIO bug where getEventCount() borks the reader; EvioFileProducer probably still needs to be fixed

hps-java/src/main/java/org/lcsim/hps/evio
BasicEvioFileReader.java 1.7 -> 1.8
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);

hps-java/src/main/java/org/lcsim/hps/evio
TestRunEvioToLcio.java 1.7 -> 1.8
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();
CVSspam 0.2.12


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