hps-java/src/test/java/org/lcsim
diff -u -r1.7 -r1.8
--- DoEvioTest.java 18 Feb 2012 16:41:21 -0000 1.7
+++ DoEvioTest.java 18 Feb 2012 16:49:18 -0000 1.8
@@ -50,7 +50,7 @@
* This is a test of using jevio routines to read EVIO files.
*
* @author homer
- * @version $Id: DoEvioTest.java,v 1.7 2012/02/18 16:41:21 homer Exp $
+ * @version $Id: DoEvioTest.java,v 1.8 2012/02/18 16:49:18 homer Exp $
*/
public class DoEvioTest extends TestCase {
hps-java/src/test/java/org/lcsim
diff -u -r1.5 -r1.6
--- HPSTrackerEvent.java 18 Feb 2012 16:41:21 -0000 1.5
+++ HPSTrackerEvent.java 18 Feb 2012 16:49:18 -0000 1.6
@@ -8,15 +8,18 @@
* Event Data consists of the following: Z[xx:xx] = Zeros
* Frame Size = 1 x 32-bits (32-bit dwords)
* Header = 8 x 32-bits
- * Header[0] = Z[19:0], SampleSize[3:0], Revision[7:0]
- * Header[1] = FpgaAddress[31:0]
- * Header[2] = Sequence[31:0]
- * Header[3] = TriggerCode[31:0]
- * Header[4] = TempB[15:0], TempA[15:0]
- * Header[5] = TempD[15:0], TempC[15:0]
- * Header[6] = Z[31:0]
- * Header[7] = Z[31:0]
- * Samples... (See TrackerSample.h)
+ * Header[0] = T[0], Z[14:0], FpgaAddress[15:0] - T = 1 For TI FPGA
+ * Header[1] = Sequence[31:0]
+//
+ * The rest of the event header depends on the T flag, For T = 0:
+//
+ * Header[2] = TempB[15:0], TempA[15:0]
+ * Header[3] = TempD[15:0], TempC[15:0]
+ * Header[4] = TempF[15:0], TempE[15:0]
+ * Header[5] = TempH[15:0], TempG[15:0]
+ * Header[6] = TempJ[15:0], TempI[15:0]
+ * Header[7] = TempL[15:0], TempK[15:0]
+ * Samples... (See HPSTrackerSample.java)
* Tail = 1 x 32-bits
* Should be zero
*/
@@ -35,6 +38,7 @@
double res;
double volt;
int idx;
+
// Temperature Constants
double coeffA_ = -1.4141963e1;
double coeffB_ = 4.4307830e3;
@@ -49,14 +53,18 @@
double maxTemp_ = 150;
double incTemp_ = 0.01;
int adcCnt_ = 4096;
+
// Temperature lookup table
double tempTable_[] = new double[adcCnt_];
+
+ // Local trigger data
+ int tiData_[] = new int[7]; // What size can this grow to????
+
// Frame Constants
-// int headSize_ = 8;
-// looks like this is what Ryan was referring to as having changed (Homer)
int headSize_ = 8;
int tailSize_ = 1;
int sampleSize_ = 4;
+
// frame size must be set externally
int size_ = 0;
@@ -76,6 +84,29 @@
}
}
+ // Get TI flag from header
+ public boolean isTiFrame() {
+ return ((data_[0] & 0x80000000) != 0);
+ }
+
+// Get FpgaAddress value from header.
+ public int fpgaAddress() {
+ return (data_[0] & 0xFFFF);
+ }
+
+// Get sequence count from header.
+ public int sequence() {
+ return (data_[1]);
+ }
+
+// Get trigger block from header.
+ int[] tiData() {
+ for (int iti = 0; iti < tiData_.length; iti++) {
+ tiData_[iti] = data_[2 + iti];
+ }
+ return (tiData_);
+ }
+
// Set address of data buffer
public void setData(int indat[]) {
data_ = indat;
@@ -83,43 +114,49 @@
// Set frame size
public void setSize(int sz) {
- size_ = sz;
+ size_ = sz;
}
-
+
// Get sample size value from header.
public int sampleSize() {
return ((data_[0] >> 8) & 0xF);
}
-// Get FpgaAddress value from header.
- public int fpgaAddress() {
- return (data_[1]);
- }
-
-// Get sequence count from header.
- public int sequence() {
- return (data_[2]);
- }
-
-// Get trigger value from header.
- public int trigger() {
- return (data_[3]);
- }
-
// Get temperature values from header.
public double temperature(int index) {
- switch (index) {
- case 0:
- return (tempTable_[(data_[4] & 0x3FFF)]);
- case 1:
- return (tempTable_[((data_[4] >> 16) & 0x3FFF)]);
- case 2:
- return (tempTable_[(data_[5] & 0x3FFF)]);
- case 3:
- return (tempTable_[((data_[5] >> 16) & 0x3FFF)]);
- default:
- return (0.0);
+ if (isTiFrame()) {
+ return (0.0);
+ } else {
+ switch (index) {
+ case 0:
+ return (tempTable_[(data_[2] & 0x3FFF)]);
+ case 1:
+ return (tempTable_[((data_[2] >> 16) & 0x3FFF)]);
+ case 2:
+ return (tempTable_[(data_[3] & 0x3FFF)]);
+ case 3:
+ return (tempTable_[((data_[3] >> 16) & 0x3FFF)]);
+ case 4:
+ return (tempTable_[(data_[4] & 0x3FFF)]);
+ case 5:
+ return (tempTable_[((data_[4] >> 16) & 0x3FFF)]);
+ case 6:
+ return (tempTable_[(data_[5] & 0x3FFF)]);
+ case 7:
+ return (tempTable_[((data_[5] >> 16) & 0x3FFF)]);
+ case 8:
+ return (tempTable_[(data_[6] & 0x3FFF)]);
+ case 9:
+ return (tempTable_[((data_[6] >> 16) & 0x3FFF)]);
+ case 10:
+ return (tempTable_[(data_[7] & 0x3FFF)]);
+ case 11:
+ return (tempTable_[((data_[7] >> 16) & 0x3FFF)]);
+ default:
+ return (0.0);
+ }
}
+
}
// Get sample count