hps-java/src/main/java/org/lcsim/hps/evio
diff -u -r1.3 -r1.4
--- BasicEvioFileReader.java 29 Apr 2012 23:27:45 -0000 1.3
+++ BasicEvioFileReader.java 2 May 2012 00:26:01 -0000 1.4
@@ -1,11 +1,10 @@
package org.lcsim.hps.evio;
import java.io.File;
+import org.jlab.coda.jevio.*;
-import org.jlab.coda.jevio.EvioEvent;
+public class BasicEvioFileReader {
-public class BasicEvioFileReader
-{
static public void main(String[] args) {
if (args.length < 1) {
throw new RuntimeException("Missing EVIO file name.");
@@ -27,10 +26,9 @@
System.out.println("There are " + reader.getNumEventsRemaining() + " events remaining.");
EvioEvent event = reader.parseNextEvent();
//printBytes(event.getRawBytes()); // DEBUG
- System.out.println("Successfully read event " + eventN + " which contains " + event.getTotalBytes() + " bytes.");
- System.out.println("Event bank has " + event.getChildCount() + " sub-banks.");
- }
- catch (Exception e) {
+ System.out.println("Successfully read event " + eventN);// + " which contains " + event.getTotalBytes() + " bytes.");
+ printBank(event, "");
+ } catch (Exception e) {
System.out.println("Caught Exception processing event " + eventN + " which was...");
e.printStackTrace();
++badEvents;
@@ -40,22 +38,50 @@
}
++eventN;
System.out.println("-------");
- throw new RuntimeException("bork bork");
}
System.out.println("There were " + badEvents + " bad events out of " + totalEvents + " total.");
reader.close();
- }
- catch (Exception e) {
+ } catch (Exception e) {
throw new RuntimeException(e);
}
}
- /*
- private static void printBytes(final byte[] bytes) {
- for (int i=0; i<bytes.length; i++) {
- if (i%4==0)
- System.out.println();
- System.out.println(Byte.toString(bytes[i]));
+
+ private static void printBank(BaseStructure bank, String indent) throws EvioException {
+ System.out.println(indent + "Bank contains " + bank.getTotalBytes() + " bytes.");
+ System.out.println(indent + "Bank has " + bank.getChildCount() + " sub-banks.");
+ System.out.println(indent + "Bank tag: " + bank.getHeader().getTag() + " length: " + bank.getHeader().getLength() + " type: " + bank.getHeader().getDataType());
+ if (bank.getChildCount() > 0) {
+ for (BaseStructure child : bank.getChildren()) {
+ printBank(child, indent + "\t");
+ }
}
+ if (bank.getHeader().getDataType() == DataType.COMPOSITE) {
+ switch (bank.getHeader().getTag()) {
+ case 0xe101:
+ printWindow(bank.getCompositeData(), indent + "\t");
+ break;
+ case 0xe102:
+ printComposite(bank.getCompositeData(), indent + "\t");
+ break;
+ case 0xe103:
+ printComposite(bank.getCompositeData(), indent + "\t");
+ break;
+ }
+ }
+ }
+
+ private static void printComposite(CompositeData cdata, String indent) {
+ System.out.println(cdata.toString(indent));
}
- */
+
+ private static void printWindow(CompositeData cdata, String indent) {
+ System.out.println(indent + "Byte count: " + cdata.getRawBytes().length);
+ System.out.println(indent + "Slot: " + cdata.getByte());
+ }
+
+ /*
+ * private static void printBytes(final byte[] bytes) { for (int i=0;
+ * i<bytes.length; i++) { if (i%4==0) System.out.println();
+ * System.out.println(Byte.toString(bytes[i])); } }
+ */
}
\ No newline at end of file