Commit in hps-java/src/test/java/org/lcsim on MAIN | |||
DoEvioTest.java | +1 | -1 | 1.7 -> 1.8 |
HPSDetectorTag.java | +1 | -1 | 1.1 -> 1.2 |
HPSTrackerEvent.java | +76 | -39 | 1.5 -> 1.6 |
+78 | -41 |
adapted to new SVT data format including ti (trigger) block
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 {
diff -u -r1.1 -r1.2 --- HPSDetectorTag.java 14 Feb 2012 03:19:57 -0000 1.1 +++ HPSDetectorTag.java 18 Feb 2012 16:49:18 -0000 1.2 @@ -9,7 +9,7 @@
* @author neal */ public enum HPSDetectorTag {
- TRACKERTAG (0x0),
+ TRACKERTAG (600),
EMCTAG (0x1);
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
Use REPLY-ALL to reply to list
To unsubscribe from the LCD-CVS list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=LCD-CVS&A=1