Commit in hps-java/src/main/java/org/lcsim/hps/recon/tracking on MAIN | |||
HPSSVTData.java | +94 | added 1.1 |
Class to encode and decode SVT data
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); + + + } + + + +}
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