Author: [log in to unmask] Date: Wed Sep 30 17:08:46 2015 New Revision: 3742 Log: move to record Added: java/trunk/record-util/src/main/java/org/hps/record/svt/ java/trunk/record-util/src/main/java/org/hps/record/svt/SvtErrorBitData.java - copied, changed from r3741, java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtErrorBitData.java java/trunk/record-util/src/main/java/org/hps/record/svt/SvtHeaderDataInfo.java - copied, changed from r3740, java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtHeaderDataInfo.java Removed: java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtErrorBitData.java java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtHeaderDataInfo.java Copied: java/trunk/record-util/src/main/java/org/hps/record/svt/SvtErrorBitData.java (from r3741, java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtErrorBitData.java) ============================================================================= --- java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtErrorBitData.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/svt/SvtErrorBitData.java Wed Sep 30 17:08:46 2015 @@ -1,7 +1,7 @@ /** * */ -package org.hps.readout.svt; +package org.hps.record.svt; import org.lcsim.event.GenericObject; Copied: java/trunk/record-util/src/main/java/org/hps/record/svt/SvtHeaderDataInfo.java (from r3740, java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtHeaderDataInfo.java) ============================================================================= --- java/trunk/tracking/src/main/java/org/hps/readout/svt/SvtHeaderDataInfo.java (original) +++ java/trunk/record-util/src/main/java/org/hps/record/svt/SvtHeaderDataInfo.java Wed Sep 30 17:08:46 2015 @@ -1,7 +1,7 @@ /** * */ -package org.hps.readout.svt; +package org.hps.record.svt; import org.lcsim.event.GenericObject; @@ -32,17 +32,22 @@ } public void setMultisampleHeaders(int[] multisampleheaders) { + if(multisampleheaders.length % 4 != 0) + throw new RuntimeException("invalid number of multisample headers, need to be %4==0: " + multisampleheaders.length); this.multisampleheader = multisampleheaders; } - public int[] getMultisampleHeaders() { - return this.multisampleheader; + public int[] getMultisampleHeader(int multisampleIndex) { + int index = multisampleIndex*4; + if( multisampleIndex >= getNumberOfMultisampleHeaders() || multisampleIndex < 0) + throw new ArrayIndexOutOfBoundsException(multisampleIndex); + int[] words = new int[4]; + System.arraycopy(this.multisampleheader, index, words, 0, words.length); + return words; } - public int getMultisampleHeader(int index) { - if( index >= getMultisampleHeaders().length || index < 0) - throw new ArrayIndexOutOfBoundsException(index); - return this.multisampleheader[index]; + public int getNumberOfMultisampleHeaders() { + return this.multisampleheader.length/4; } public int getNum() { @@ -82,9 +87,9 @@ case 2: return getTail(); default: - if( (index-3) >= getMultisampleHeaders().length ) + if( (index-3) >= this.multisampleheader.length ) throw new RuntimeException("Invalid index " + Integer.toString(index)); - return getMultisampleHeader(index -3); + return this.multisampleheader[ index - 3 ]; } } @@ -105,6 +110,10 @@ public boolean isFixedSize() { return true; } + + public String toString() { + return "num " + Integer.toString(num) + " header " + Integer.toHexString(header) + " tail " + Integer.toHexString(tail) + " nMultisamples " + Integer.toString(multisampleheader.length); + } public static int getNum(GenericObject header) { return header.getIntVal(0); @@ -118,10 +127,11 @@ return header2.getIntVal(2); } - public static int getMultisample(int iMultiSample, GenericObject header) { - return header.getIntVal(iMultiSample+3); + public static int[] getMultisampleHeader(int iMultisample, SvtHeaderDataInfo header) { + return header.getMultisampleHeader(iMultisample); } - + + }