Commit in hps-java/src/main/java/org/lcsim/hps/recon/tracking on MAIN | |||
HPSSVTDataBuffer.java | +42 | -25 | 1.5 -> 1.6 |
Now adds SVT specific event number
diff -u -r1.5 -r1.6 --- HPSSVTDataBuffer.java 27 Apr 2012 22:13:53 -0000 1.5 +++ HPSSVTDataBuffer.java 29 Apr 2012 17:00:12 -0000 1.6 @@ -13,7 +13,7 @@
/** * * @author Omar Moreno <[log in to unmask]>
- * @version $Id: HPSSVTDataBuffer.java,v 1.5 2012/04/27 22:13:53 meeg Exp $
+ * @version $Id: HPSSVTDataBuffer.java,v 1.6 2012/04/29 17:00:12 omoreno Exp $
*/ public class HPSSVTDataBuffer {
@@ -22,16 +22,17 @@
// Singleton private static final HPSSVTDataBuffer instance = new HPSSVTDataBuffer();
- - int[] header = new int[7];
+ private static int eventNumber = 0; + + int[] header = new int[6];
int temp = 23; // C
- int nErrors = 0;
+ + boolean debug = false;
/** * Default constructor; Set to private to prevent instantiation */
- private HPSSVTDataBuffer() - {
+ private HPSSVTDataBuffer(){
// for(int fpgaNumber = 0; fpgaNumber <= SVT_TOTAL_FPGAS; fpgaNumber++) fpgaToData.put(fpgaNumber, new ArrayList<Integer>());
@@ -43,8 +44,7 @@
* @param svtData : List of SVT data packets * @param fpga : FPGA from which the data emerges from */
- public static void addToBuffer(List<HPSSVTData> svtData, int fpga) - {
+ public static void addToBuffer(List<HPSSVTData> svtData, int fpga){
// If the FPGA data block is empty, add header information and data, otherwise // just add the data instance.encapsulateSVTData(svtData, fpga);
@@ -57,8 +57,10 @@
* @return data : An FPGA data packet * */
- public static int[] readoutBuffer(int fpga) - {
+ public static int[] readoutBuffer(int fpga){ + // Add the event number to the beginning + instance.addEventNumber(fpga); +
// Add the tail to the data instance.addTail(fpga);
@@ -83,43 +85,45 @@
* @param svtData : List of SVT data packets * @param fpga : FPGA from which the data emerges from */
- private void encapsulateSVTData(List<HPSSVTData> svtData, int fpga) - {
+ private void encapsulateSVTData(List<HPSSVTData> svtData, int fpga){
// Ignore FPGA 7 for now if(fpga == 7) return;
- // If the FPGA data block is empty, add the header information
+ // If the FPGA data block is empty, add the header information and increment the event number
if(instance.fpgaToData.get(fpga).isEmpty()){
- header[0] = 0; //TODO: figure out what this is actually supposed to be - probably event number -
+
// Insert the temperature information. All temperatures are currently // set to 23 C
+ header[0] = (header[0] &= ~TEMP_MASK) | (temp & TEMP_MASK); + header[0] = (header[0] &= ~(TEMP_MASK << 16)) | ((temp & TEMP_MASK) << 16); +
header[1] = (header[1] &= ~TEMP_MASK) | (temp & TEMP_MASK); header[1] = (header[1] &= ~(TEMP_MASK << 16)) | ((temp & TEMP_MASK) << 16); header[2] = (header[2] &= ~TEMP_MASK) | (temp & TEMP_MASK); header[2] = (header[2] &= ~(TEMP_MASK << 16)) | ((temp & TEMP_MASK) << 16);
-
+
header[3] = (header[3] &= ~TEMP_MASK) | (temp & TEMP_MASK); header[3] = (header[3] &= ~(TEMP_MASK << 16)) | ((temp & TEMP_MASK) << 16);
-
+
header[4] = (header[4] &= ~TEMP_MASK) | (temp & TEMP_MASK); header[4] = (header[4] &= ~(TEMP_MASK << 16)) | ((temp & TEMP_MASK) << 16);
-
+
header[5] = (header[5] &= ~TEMP_MASK) | (temp & TEMP_MASK); header[5] = (header[5] &= ~(TEMP_MASK << 16)) | ((temp & TEMP_MASK) << 16);
- header[6] = (header[6] &= ~TEMP_MASK) | (temp & TEMP_MASK); - header[6] = (header[6] &= ~(TEMP_MASK << 16)) | ((temp & TEMP_MASK) << 16); -
for(int index = 0; index < header.length; index++) fpgaToData.get(fpga).add(header[index]);
+ eventNumber++;
}
-
+
// Add all samples emerging from this FPGA if(!svtData.isEmpty()){ for(HPSSVTData svtDatum : svtData){
- System.out.println("FPGA: " + svtDatum.getFPGAAddress() + " Hybrid: " + svtDatum.getHybridNumber() + " APV: " + svtDatum.getAPVNumber() + " Channel: " + svtDatum.getChannelNumber());
+ if(debug){ + System.out.println("FPGA: " + svtDatum.getFPGAAddress() + " Hybrid: " + svtDatum.getHybridNumber() + " APV: " + + svtDatum.getAPVNumber() + " Channel: " + svtDatum.getChannelNumber()); + }
for(int index = 0; index < svtDatum.getData().length; index++){ fpgaToData.get(fpga).add(svtDatum.getData()[index]); }
@@ -128,11 +132,24 @@
} /**
+ * Add a tail to the FPGA data packet. In real data, this may be + * non-zero which would indicate an error.
*
+ * @param fpga : FPGA from which the data emerges from
*/
- private void addTail(int fpga) - {
+ private void addTail(int fpga){ +
// For now just make it zero instance.fpgaToData.get(fpga).add(0); }
+ + /** + * Add an SVT event number to the top of the FPGA data packet. + * + * @param fpga : FPGA from which the data emerges from + */ + private void addEventNumber(int fpga){ + + instance.fpgaToData.get(fpga).add(0, eventNumber); + }
}
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