/* * StarData.java * * Created on June 13, 2002, 11:00 PM */ package readstardump; import java.io.*; import jas.hist.*; /** * * @author karlen * @version */ public class StarDumpData implements Rebinnable1DHistogramData { static final int nChan = 1152; int[][] data = new int[nChan][]; int nBin; boolean goodData = false; int channel = 0; /** Creates new StarData */ public StarDumpData(File readFile,int nBin) { this.nBin = nBin; for (int i=0; i= nChan) { iCh = 0; iBin++; } start += 5; if (start > 47) { line = in.readLine(); start = 11; } data[iCh][iBin] = Integer.parseInt(line.substring(start,start+4),16); } } catch (Exception e) { System.err.println("Exception " +e+ " while reading file."); return false; } return true; } boolean readIrqData(File readFile) { try { BufferedReader in = new BufferedReader(new FileReader(readFile)); String line = in.readLine(); // skip header information: while (line.length() < 40 || !line.substring(0,10).equals("0xc0001000")) { line = in.readLine(); } int iCh = -1; int iBin = 0; int nDat = nBin*nChan; int start = 2; for (int i=0; i= nChan) { iCh = 0; iBin++; } if (iCh%2 == 0) { start += 13; } else { start -= 4; } if (start > 62) { line = in.readLine(); start = 15; } data[iCh][iBin] = Integer.parseInt(line.substring(start,start+4),16); } } catch (Exception e) { System.err.println("Exception " +e+ " while reading file."); return false; } return true; } boolean isGood() { return goodData; } void setChannel(int channel) { this.channel = channel; } void setChannel(int iLoc, int iHalf, int iPin) { /* erroneous translation: channel = mapSequence[iHalf][iLoc] + iPin*72; */ // even pins are top row int iRow = iPin%2; // iHalf=0 => ADC A (first 8 pins) int jPin = (iPin-iRow)/2 + 8*iHalf; channel = mapSequence[iRow][iLoc] + jPin*72; } public double[][] rebin(int rBins,double rMin,double rMax, boolean wantErrors,boolean hurry) { double[][] result = new double[3][nBin]; for (int i=0; i