Print

Print


Author: [log in to unmask]
Date: Tue Nov  4 20:46:16 2014
New Revision: 1429

Log:
fix off-by-one error in reading slot banks

Modified:
    java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java

Modified: java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java
 =============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java	(original)
+++ java/trunk/evio/src/main/java/org/hps/evio/BasicEvioFileReader.java	Tue Nov  4 20:46:16 2014
@@ -62,17 +62,18 @@
         if (bank.getHeader().getDataType() == DataType.COMPOSITE) {
 //            for (CompositeData cdata : bank.getCompositeData()) {
             CompositeData cdatalist[] = bank.getCompositeData();
-            for (CompositeData cdata:cdatalist)
-            switch (bank.getHeader().getTag()) {
-                case 0xe101:
-                    printWindow(cdata, indent + "\t");
-                    break;
-                case 0xe102:
-                    printComposite(cdata, indent + "\t");
-                    break;
-                case 0xe103:
-                    printComposite(cdata, indent + "\t");
-                    break;
+            for (CompositeData cdata : cdatalist) {
+                switch (bank.getHeader().getTag()) {
+                    case 0xe101:
+                        printWindow(cdata, indent + "\t");
+                        break;
+                    case 0xe102:
+                        printComposite(cdata, indent + "\t");
+                        break;
+                    case 0xe103:
+                        printComposite(cdata, indent + "\t");
+                        break;
+                }
             }
 //            }
         }
@@ -92,7 +93,7 @@
     }
 
     private static void printWindow(CompositeData cdata, String indent) {
-        while (cdata.index() < cdata.getItems().size()) {
+        while (cdata.index() + 1 < cdata.getItems().size()) {
             System.out.println(indent + "Byte count: " + cdata.getRawBytes().length);
             System.out.println(indent + "Slot: " + cdata.getByte());
             System.out.println(indent + "Trigger: " + cdata.getInt());
@@ -115,4 +116,4 @@
      * i<bytes.length; i++) { if (i%4==0) System.out.println();
      * System.out.println(Byte.toString(bytes[i])); } }
      */
-}
+}