Commit in hps-java/src/main/java/org/lcsim/hps/recon/tracking on MAIN
HPSSVTData.java+94added 1.1
Class to encode and decode SVT data

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSSVTData.java added at 1.1
diff -N HPSSVTData.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ HPSSVTData.java	23 Mar 2012 03:54:36 -0000	1.1
@@ -0,0 +1,94 @@
+
+package org.lcsim.hps.recon.tracking;
+
+//--- org.lcsim ---//
+import org.lcsim.detector.tracker.silicon.SiSensor;
+
+/**
+ *
+ * @author Omar Moreno
+ * @version $Id: HPSSVTData.java,v 1.1 2012/03/23 03:54:36 omoreno Exp $
+ */
+public class HPSSVTData {
+    
+    
+    int[] data = new int[4];
+    SiSensor sensor;
+    Integer channelNumber;
+    short[] adc;
+    int apvNumber;
+    int hybridNumber;
+    int fpgaNumber;
+    
+    
+    public HPSSVTData(SiSensor sensor, Integer channelNumber, short[] adc)
+    {
+        this.sensor = sensor;
+        this.adc = adc;
+        this.channelNumber = channelNumber;
+        
+        createSVTData();
+    }
+    
+    private void createSVTData()
+    {
+        /*
+         * Sample Data consists of the following: Z[xx:xx] = Zeros, O[xx:xx] = Ones
+         * data[0] = O[0], Z[0], Hybrid[1:0], Z[0], ApvChip[2:0], Z[0], Channel[6:0], FpgaAddress[15:0]
+         * data[1] = Z[1:0], Sample1[13:0]], Z[1:0], Sample0[13:0]
+         * data[2] = Z[1:0], Sample3[13:0]], Z[1:0], Sample2[13:0]
+         * data[3] = Z[1:0], Sample5[13:0]], Z[1:0], Sample4[13:0]
+         * 
+         * <--Still need to add header and temperature information-->
+         */ 
+    
+        //--- data[0] ---//
+        //---------------//
+        
+        // Add the FPGA address
+        data[0] = ( ~(0xFFFF << 16) & data[0] ) | ( ( fpgaNumber & 0xFFFF ) << 16);
+        
+        // Add the channel number
+        data[0] = ( ~(0x7F << 22) & data[0] ) | ( ( channelNumber%128 & 0x7F ) << 22);
+        
+        // Add the chip number
+        apvNumber = (int) Math.floor(channelNumber/128);
+        data[0] = ( ~(0x7 << 26) & data[0] ) | ( ( apvNumber & 0x7 ) << 26);
+        
+        // Add the hybrid number
+        data[0] = ( ~(0x3 << 29) & data[0] ) | ( ( apvNumber & 0x3 ) << 29);
+        
+        //--- data[1] ----//
+        //----------------//
+        
+        // Add sample 0
+        data[1] = ( ~(0x3FFF << 14) & data[1] ) | ( ( adc[0] & 0x3FFF ) << 14);
+        
+        // Add sample 1
+        data[1] = ( ~(0x3FFF << 29) & data[1] ) | ( ( adc[1] & 0x3FFF ) << 29);
+        
+        
+        //--- data[2] ----//
+        //----------------//
+        
+        // Add sample 2
+        data[2] = ( ~(0x3FFF << 14) & data[2] ) | ( ( adc[2] & 0x3FFF ) << 14);
+        
+        // Add sample 3
+        data[2] = ( ~(0x3FFF << 29) & data[2] ) | ( ( adc[3] & 0x3FFF ) << 29);
+        
+        //--- data[3] ----//
+        //----------------//
+        
+        // Add sample 4
+        data[3] = ( ~(0x3FFF << 14) & data[3] ) | ( ( adc[4] & 0x3FFF ) << 14);
+        
+        // Add sample 5
+        data[3] = ( ~(0x3FFF << 29) & data[3] ) | ( ( adc[5] & 0x3FFF ) << 29);
+        
+        
+    }
+    
+    
+    
+}
CVSspam 0.2.12


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