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])); } }
*/
-}
+}
|