Commit in hps-java on MAIN
sandbox/HPSMakeSVTCellID.java+60added 1.1
       /HPSEvioReader.java+423added 1.1
       /HPSDetectorTag.java+30added 1.1
src/main/java/org/lcsim/hps/recon/tracking/HPSDetectorTag.java-301.1 removed
                                          /HPSMakeSVTCellID.java-601.5 removed
src/test/java/org/lcsim/hps/evio/HPSEvioReader.java-4231.2 removed
+513-513
3 added + 3 removed, total 6 files
sandboxing more code that never got used

hps-java/sandbox
HPSMakeSVTCellID.java added at 1.1
diff -N HPSMakeSVTCellID.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ HPSMakeSVTCellID.java	16 Aug 2012 01:07:26 -0000	1.1
@@ -0,0 +1,60 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.lcsim.hps.recon.tracking;
+
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.tracker.silicon.SiSensor;
+import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
+import org.lcsim.hps.util.Pair;
+
+/**
+ *
+ * @author neal
+ */
+public class HPSMakeSVTCellID {
+    
+    public static long HPSMakeSVTCellID(int hybrid, int fpgaAddress, int apv, int channel) {
+// Information from Jeremy about how the CellID is coded
+//                Here's the ID scheme for the SVT in that detector...
+//    <readout name="TrackerHits">
+//            <id>system:6,barrel:3,layer:4,module:12,sensor:1,side:32:-2,strip:12</id> 
+//    </readout>
+// interpretation:
+// 0-5 System, 6-8 barrel, 9-12 layer, 13-24 module, 25 sensor
+// 32-33 signed side, 34-45 strip
+
+//                Detector detector;
+//                IDetectorElement detectorElement = detector.getDetectorElement().findDetectorElement("Tracker");
+                Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(hybrid, fpgaAddress);
+                SiSensor sensor = SvtUtils.getInstance().getSensor(daqPair);
+                IIdentifier sensorIdent = sensor.getIdentifier();
+                SiTrackerIdentifierHelper sensorHelper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
+
+                long layer = 0;
+                long module = sensorHelper.getModuleValue(sensorIdent);
+                if (module == 0) { //Layers 1-10 (Top SVT Volume)
+                    layer = sensorHelper.getLayerValue(sensorIdent);
+                } //Layers 11-20 (Bottom SVT Volume)
+                else {
+                    layer = sensorHelper.getLayerValue(sensorIdent) + 10;
+                }
+
+                long sensornum = sensorHelper.getSensorValue(sensorIdent);
+
+                long system = 0;
+
+                long barrel = 0;
+
+                long side = sensor.getSensorID(); // according to Omar
+
+                long strip = channel;
+
+                long CellID_ = system + (barrel << 6) + (layer << 9) + (module << 13) + (sensornum << 25)
+                        + (side << 32) + (strip << 34);
+
+                return (CellID_);
+            }
+}
+

hps-java/sandbox
HPSEvioReader.java added at 1.1
diff -N HPSEvioReader.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ HPSEvioReader.java	16 Aug 2012 01:07:26 -0000	1.1
@@ -0,0 +1,423 @@
+package org.lcsim.hps.evio;
+
+import junit.framework.TestCase;
+
+import org.jlab.coda.jevio.EvioFile;
+import org.jlab.coda.jevio.IEvioListener;
+import org.jlab.coda.jevio.EvioEvent;
+import org.jlab.coda.jevio.IBlockHeader;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.base.BaseRawTrackerHit;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.event.SimTrackerHit;
+import java.nio.*;
+import org.jlab.coda.jevio.IEvioStructure;
+import org.jlab.coda.jevio.BaseStructureHeader;
+import org.jlab.coda.jevio.EvioException;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Iterator;
+import org.lcsim.util.lcio.LCIOWriter;
+import org.lcsim.event.base.BaseLCSimEvent;
+import org.lcsim.hps.recon.tracking.HPSMakeSVTCellID;
+
+import org.lcsim.hps.users.homer.HPSTrackerEvent;
+import org.lcsim.hps.users.homer.HPSTrackerSample;
+
+
+/**
+ * This is a test of using jevio routines to read EVIO files.  
+ * 
+ * @author homer
+ * @version $Id: HPSEvioReader.java,v 1.1 2012/08/16 01:07:26 meeg Exp $
+ */
+public class HPSEvioReader extends TestCase {
+
+    private LCIOWriter writer;
+    BaseLCSimEvent newEvent;
+    int VERBOSE = 99;
+    /**
+     * The buffer representing a map of the input file.
+     */
+//    private MappedByteBuffer trkByteBuffer;
+    int eventDataSizeBytes = 8000000;
+//        byte rawdataInts[] = new byte[eventDataSizeBytes];
+    int rawdataInts[] = new int[eventDataSizeBytes];
+    int rawdataLength = 0;
+
+    public void testdoHPSEvioRead() throws IOException {
+        System.out.println("Test for EVIO.");
+
+        int UNKNOWN32 = (0x0);
+        //      int UINT32 = (0x1);
+        int FLOAT32 = (0x2);
+        int CHARSTAR8 = (0x3);
+        int SHORT16 = (0x4);
+        int USHORT16 = (0x5);
+        int CHAR8 = (0x6);
+        int UCHAR8 = (0x7);
+        int DOUBLE64 = (0x8);
+        int LONG64 = (0x9);
+        int ULONG64 = (0xa);
+//        final int INT32 = (0xb);
+        int TAGSEGMENT = (0xc);
+        int SEGMENT = (0xd);
+        int BANK = (0xe);
+        int ALSOBANK = (0x10);
+        int ALSOSEGMENT = (0x20);
+        int ALSOTAGSEGMENT = (0x40);
+        final int TRACKERTAG = (2);
+
+        // load the DAQ to LCSim cell maps
+//final MapDAQCellID mapcell = new MapDAQCellID();
+//    mapcell.fillSVTCellMap();
+
+        //        String fileName = "/mydat/neal/hps/cedExport/data/dvcs_5_500.ev";
+//        String fileName = "/mydat/myhpstest/hps_test_data_2011_nov_18_1.evio";
+//        String fileName = "/mydat/myhpstest/evio4_sample.dat";
+//        String fileName = "/mydat/myhpstest/FADC_Data/hps_000244.dat";
+        String fileName = "/mydat/myhpstest/hps/evio/coda_test2.dat";
+
+        // Tracker data file name for testing
+
+//x        String TrkFileName = "/mydat/myhpstest/00_baseline.bin";
+
+
+//        ByteBuffer buf = ByteBuffer.allocate(1000 * 8192);
+
+        if (VERBOSE > 4) {
+            System.out.println("step1 - Trackertag = " + TRACKERTAG);
+        }
+        // parse bytes
+        class myListener implements IEvioListener {
+
+            public void startEventParse(EvioEvent evioEvent) {
+                if (VERBOSE > 4) {
+                    System.out.println("step2");
+                }
+            }
+
+            public void endEventParse(EvioEvent evioEvent) {
+                if (VERBOSE > 4) {
+                    System.out.println("step3 - endEventParse");
+                }
+            }
+
+            public void gotStructure(EvioEvent evioEvent, IEvioStructure structure) {
+
+                BaseStructureHeader header = structure.getHeader();
+
+//                System.out.println("------------------");
+                if (VERBOSE > 0) {
+                    System.out.println("" + structure);
+                }
+                System.out.println("Tag type = " + header.getTag());
+
+                switch (header.getTag()) {
+                    case TRACKERTAG: //Tracker (will be TRACKERTAG)
+//                        IReadout ro;
+//                        if (header.getDataTypeName() != "INT32" ) {
+                        if (header.getDataTypeName() != "UINT32") {
+                            System.out.println("Non INT32 Tracker Data!!!");
+                            break;
+                        }
+//                        System.out.println("about to simulate having received tracker EVIO data");
+
+                        List<RawTrackerHit> raw_hits = new ArrayList<RawTrackerHit>();
+                        List<SimTrackerHit> sim_hits = new ArrayList<SimTrackerHit>();
+
+                        HPSTrackerEvent trkev = new HPSTrackerEvent();
+                        int trkdata[] = structure.getIntData();
+
+                        int trklength = header.getLength();
+                        IntBuffer trkIntBuffer = IntBuffer.wrap(trkdata);
+//                        for (int ii=0; ii<10; ii++) System.out.println("trkdata["+ii+"] = "+trkdata[ii]+"\t"+Integer.toString(trkdata[ii] & 0xffff, 16).toUpperCase());
+
+// ---- this is the code needed for real EVIO data (IF! IntBuffer is too slow.)
+//                        int dataStartMarker = 0;
+//                        while (dataStartMarker<trklength) {
+//                        int frameSize = trkdata[dataStartMarker];
+//                        for (int ii = 1; ii <= frameSize; ii++) {
+//                                rawdataInts[ii] = trkdata[dataStartMarker+ii];
+//                        }
+//                        dataStartMarker+=frameSize;
+// ----------------------------------------------------                        
+
+                        while (trkIntBuffer.hasRemaining()) {
+                           int frameSize = trkIntBuffer.get();
+                           System.out.println("frameSize = " + frameSize + "  remaining = " + trkIntBuffer.remaining());
+//x                        int frameSize = trkByteBuffer.getInt();
+//x                        while (trkByteBuffer.hasRemaining() && frameSize != 0) {
+                            for (int ii = 0; ii < frameSize; ii++) {
+//x                                rawdataInts[ii] = trkByteBuffer.getInt();
+                                rawdataInts[ii] = trkIntBuffer.get();
+                            }
+                            if (VERBOSE > 4) {
+                                for (int ii = 0; ii < 20; ii++) {
+                                    // + rawdataInts[ii] 
+                                    System.out.println("rawdataInts[" + ii + "] = " + "\t"
+                                            + Integer.toString((rawdataInts[ii] >> 16) & 0xffff, 16).toUpperCase() + ":"
+                                            + Integer.toString(rawdataInts[ii] & 0xffff, 16).toUpperCase());
+                                }
+                            }
+                            trkev.setSize(frameSize);
+                            trkev.setData(rawdataInts);
+                            System.out.println("isTiFrame = " + trkev.isTiFrame());
+                            if (trkev.isTiFrame()) {
+                                System.out.println("Skipping because this is trigger data");
+                                continue;
+                            }
+                            if (VERBOSE > 1) {
+                                System.out.println("starting loop over samples");
+                            }
+//                            for (int i = 0; i < header.getNumber(); i++) {
+                            System.out.println("sample count = " + trkev.count());
+                            for (int i = 0; i < trkev.count(); i++) {
+//                                if (VERBOSE > 4) {
+                                System.out.println("sample# = " + i);
+//                                }
+                                HPSTrackerSample trksamp = trkev.sample(i);
+//                            System.out.println("got trksamp, trksamp = " + trksamp);
+                                long chanaddr = trksamp.channel();
+                                if (VERBOSE > 3) {
+                                    System.out.println("got CellID");
+                                }
+                                int LCSimCellID_ = (int) chanaddr; // about to be replace with HPSMakeSVTCellID
+                                if (VERBOSE > 3) {
+                                    System.out.println("got corresponding LCSim CellID = " + LCSimCellID_);
+                                }
+
+                                long chanapv = trksamp.apv();
+                                if (VERBOSE > 3) {
+                                    System.out.println("got apv");
+                                }
+                                short chanadc[] = new short[6];
+                                if (VERBOSE > 3) {
+                                    System.out.println("getting sample data");
+                                }
+                                HPSMakeSVTCellID tt = new HPSMakeSVTCellID();
+//                                long CellID = tt.HPSMakeSVTCellID(trksamp.hybrid(), trksamp.fpgaAddress(), trksamp.apv(), trksamp.channel());
+                                        
+//old                                long CellID = HPSMakeSVTCellID.class.(trksamp.hybrid(), trksamp.fpgaAddress(), trksamp.apv(), trksamp.channel());
+                                //                                int LCSimCellID_ = mapcell.SVTCellIDlookup(chanaddr);
+
+                                for (int isamp = 0; isamp < 6; isamp++) {
+//                                System.out.println("sample = " + isamp);
+
+                                    chanadc[isamp] = (short) trksamp.value(isamp);
+                                }
+                                IDetectorElement detector_element = null;
+
+                                if (VERBOSE > 2) {
+                                    System.out.println("Creating raw_hit with channel,apv = " + LCSimCellID_ + " , " + chanapv + " and adc = " + chanadc[0]);
+                                }
+
+                                int time = 0; // need to find source of this
+                                RawTrackerHit raw_hit = new BaseRawTrackerHit(time, LCSimCellID_, chanadc, sim_hits, detector_element);
+                                // Put hits onto readout and hit list
+//                    ro.addHit(raw_hit);
+                                raw_hits.add(raw_hit);
+                            }
+                        }
+                        if (VERBOSE > 1) {
+                            System.out.println("Show the hits we created ...");
+                            Iterator<RawTrackerHit> rhiter = raw_hits.iterator();
+
+                            while (rhiter.hasNext()) {
+                                RawTrackerHit rh = rhiter.next();
+                                System.out.println("this hit was created: cellID=" + rh.getCellID() + " adc[0]=" + (rh.getADCValues())[0]);
+                            }
+                        }
+                        switch (header.getDataType()) {
+                            case FLOAT32:
+                                if (VERBOSE > 4) {
+                                    System.out.println("        FLOAT VALS");
+                                }
+                                float floatdata[] = structure.getFloatData();
+                                for (float f : floatdata) {
+                                    if (VERBOSE > 4) {
+                                        System.out.println("         " + f);
+                                    }
+                                }
+                                break;
+
+                            case DOUBLE64:
+                                if (VERBOSE > 4) {
+                                    System.out.println("        DOUBLE VALS");
+                                }
+                                double doubledata[] = structure.getDoubleData();
+                                for (double d : doubledata) {
+                                    if (VERBOSE > 4) {
+                                        System.out.println("         " + d);
+                                    }
+                                }
+                                break;
+
+                            case SHORT16:
+                                if (VERBOSE > 4) {
+                                    System.out.println("        SHORT VALS");
+                                }
+                                short shortdata[] = structure.getShortData();
+                                for (short i : shortdata) {
+                                    if (VERBOSE > 4) {
+                                        System.out.println("        0x" + Integer.toHexString(i));
+                                    }
+                                }
+                                break;
+
+                            case INT32:
+                            case UINT32:
+                                if (VERBOSE > 4) {
+                                    System.out.println("        INT VALS");
+                                }
+                                int intdata[] = structure.getIntData();
+                                for (int i : intdata) {
+                                    if (VERBOSE > 4) {
+                                        System.out.println("        0x" + Integer.toHexString(i));
+                                    }
+                                }
+                                break;
+
+                            case LONG64:
+                                if (VERBOSE > 4) {
+                                    System.out.println("        LONG VALS");
+                                }
+                                long longdata[] = structure.getLongData();
+                                for (long i : longdata) {
+                                    if (VERBOSE > 4) {
+                                        System.out.println("        0x" + Long.toHexString(i));
+                                    }
+                                }
+                                break;
+
+                            case CHAR8:
+                            case UCHAR8:
+                                if (VERBOSE > 4) {
+                                    System.out.println("        BYTE VALS");
+                                }
+                                byte bytedata[] = structure.getByteData();
+                                for (byte i : bytedata) {
+                                    if (VERBOSE > 4) {
+                                        System.out.println("         " + i);
+                                    }
+                                }
+                                break;
+
+                            case CHARSTAR8:
+                                System.out.println("        STRING VALS");
+                                String stringdata[] = structure.getStringData();
+                                for (String str : stringdata) {
+                                    System.out.println("         " + str);
+                                }
+                                break;
+                        }
+                }
+            }
+
+        }
+
+        if (VERBOSE > 4) {
+            System.out.println("step7");
+        }
+
+        // jump past the block header
+//        buf.position(4 * 8);
+//        ByteBuffer buf2 = buf.slice();
+
+
+        if (VERBOSE > 4) {
+            System.out.println("step8");
+        }
+//        ByteParser parser = new ByteParser();
+//        buf2.rewind();
+        EvioEvent event = null;
+
+        if (VERBOSE > 4) {
+            System.out.println("step8.1");
+        }
+        /*
+         * try {
+        System.out.println("step8.2");
+        event = parser.parseEvent(buf2);
+        System.out.println("step8.3");
+        System.out.println("Event = " + event.toString());
+        } catch (EvioException e) {
+        e.printStackTrace();
+        }
+         */
+
+//        System.out.println("step9");
+        // open the EVIO file
+        File fileIn = new File(fileName);
+//x        File trkIn = new File(TrkFileName);
+
+        System.out.println(
+                "read ev file: " + fileName + " size: " + fileIn.length());
+//x        System.out.println(
+//x                "read trk file: " + TrkFileName + " size: " + trkIn.length());
+//        FileInputStream fileInputStream = new FileInputStream(trkIn);
+//        FileChannel inputChannel = fileInputStream.getChannel();
+
+//        long sz = inputChannel.size();
+//        trkByteBuffer = inputChannel.map(FileChannel.MapMode.READ_ONLY, 0L, sz);
+
+//        inputChannel.close(); // this object is no longer needed
+        // set buffer to beginning
+//        trkByteBuffer.position(0);
+
+        //       int offset = 0;
+//        rawdataLength = trkByteBuffer.remaining() / 4;
+//        if (VERBOSE > 4) {
+//            System.out.println("Number of Ints to read is " + rawdataLength);
+//        }
+//        ByteOrder byteOrder = ByteOrder.LITTLE_ENDIAN;
+//        trkByteBuffer.order(byteOrder);
+
+//        int[] header = new int[8000000];
+//        for (int i = 0; i < 8000000; i++) {
+//            header[i] = trkByteBuffer.getInt();
+//        }
+
+
+
+        try {
+            EvioFile evioFile = new EvioFile(fileName);
+
+//            EventParser parser = new EventParser();
+//            parser.addEvioListener(new myListener());
+//            EventParser ep = new EventParser();
+            //           ep.addEvioListener(new myListener());
+            evioFile.getParser().addEvioListener(new myListener());
+            int stat = 1;
+            while (stat != 0) {
+                try {
+                    EvioEvent ev = evioFile.nextEvent();
+                    if (ev == null) {
+                        stat = 0;
+                    }
+                    evioFile.parseEvent(ev);
+                    System.out.println("reading event");
+//                    int[] buftt = ev.getEvtArray();
+                    System.out.println("events remaining =" + evioFile.getNumEventsRemaining());
+                    IBlockHeader bh = evioFile.getCurrentBlockHeader();
+                    System.out.println("nextEvent: BLOCK HEADER :\n" + bh.toString());
+                } catch (EvioException e) {
+                    System.out.println(e);
+                }
+
+                //                MappedByteBuffer buffer = evioFile.getMappedByteBuffer();
+                if (VERBOSE > 4) {
+                    System.out.println("step10");
+                }
+            }
+        } catch (IOException e) {
+            System.out.println(e);
+        }
+        // read events until eof reached
+//x        inputChannel.close();
+
+    }
+}

hps-java/sandbox
HPSDetectorTag.java added at 1.1
diff -N HPSDetectorTag.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ HPSDetectorTag.java	16 Aug 2012 01:07:26 -0000	1.1
@@ -0,0 +1,30 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.lcsim.hps.recon.tracking;
+
+/**
+ *
+ * @author neal
+ */
+public enum HPSDetectorTag {
+    TRACKERTAG  (600),
+    EMCTAG  (0x1);
+
+    
+        private int value;
+
+        private HPSDetectorTag(int value) {
+                this.value = value;
+        }
+
+        /**
+         * Get the enum's value.
+         * 
+         * @return the value, e.g., 0xe for a BANK
+         */
+        public int getValue() {
+                return value;
+        }
+}
\ No newline at end of file

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSDetectorTag.java removed after 1.1
diff -N HPSDetectorTag.java
--- HPSDetectorTag.java	28 Mar 2012 18:40:01 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,30 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.lcsim.hps.recon.tracking;
-
-/**
- *
- * @author neal
- */
-public enum HPSDetectorTag {
-    TRACKERTAG  (600),
-    EMCTAG  (0x1);
-
-    
-        private int value;
-
-        private HPSDetectorTag(int value) {
-                this.value = value;
-        }
-
-        /**
-         * Get the enum's value.
-         * 
-         * @return the value, e.g., 0xe for a BANK
-         */
-        public int getValue() {
-                return value;
-        }
-}
\ No newline at end of file

hps-java/src/main/java/org/lcsim/hps/recon/tracking
HPSMakeSVTCellID.java removed after 1.5
diff -N HPSMakeSVTCellID.java
--- HPSMakeSVTCellID.java	24 May 2012 17:08:18 -0000	1.5
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,60 +0,0 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
-package org.lcsim.hps.recon.tracking;
-
-import org.lcsim.detector.identifier.IIdentifier;
-import org.lcsim.detector.tracker.silicon.SiSensor;
-import org.lcsim.detector.tracker.silicon.SiTrackerIdentifierHelper;
-import org.lcsim.hps.util.Pair;
-
-/**
- *
- * @author neal
- */
-public class HPSMakeSVTCellID {
-    
-    public static long HPSMakeSVTCellID(int hybrid, int fpgaAddress, int apv, int channel) {
-// Information from Jeremy about how the CellID is coded
-//                Here's the ID scheme for the SVT in that detector...
-//    <readout name="TrackerHits">
-//            <id>system:6,barrel:3,layer:4,module:12,sensor:1,side:32:-2,strip:12</id> 
-//    </readout>
-// interpretation:
-// 0-5 System, 6-8 barrel, 9-12 layer, 13-24 module, 25 sensor
-// 32-33 signed side, 34-45 strip
-
-//                Detector detector;
-//                IDetectorElement detectorElement = detector.getDetectorElement().findDetectorElement("Tracker");
-                Pair<Integer, Integer> daqPair = new Pair<Integer, Integer>(hybrid, fpgaAddress);
-                SiSensor sensor = SvtUtils.getInstance().getSensor(daqPair);
-                IIdentifier sensorIdent = sensor.getIdentifier();
-                SiTrackerIdentifierHelper sensorHelper = (SiTrackerIdentifierHelper) sensor.getIdentifierHelper();
-
-                long layer = 0;
-                long module = sensorHelper.getModuleValue(sensorIdent);
-                if (module == 0) { //Layers 1-10 (Top SVT Volume)
-                    layer = sensorHelper.getLayerValue(sensorIdent);
-                } //Layers 11-20 (Bottom SVT Volume)
-                else {
-                    layer = sensorHelper.getLayerValue(sensorIdent) + 10;
-                }
-
-                long sensornum = sensorHelper.getSensorValue(sensorIdent);
-
-                long system = 0;
-
-                long barrel = 0;
-
-                long side = sensor.getSensorID(); // according to Omar
-
-                long strip = channel;
-
-                long CellID_ = system + (barrel << 6) + (layer << 9) + (module << 13) + (sensornum << 25)
-                        + (side << 32) + (strip << 34);
-
-                return (CellID_);
-            }
-}
-

hps-java/src/test/java/org/lcsim/hps/evio
HPSEvioReader.java removed after 1.2
diff -N HPSEvioReader.java
--- HPSEvioReader.java	29 Apr 2012 02:10:05 -0000	1.2
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,423 +0,0 @@
-package org.lcsim.hps.evio;
-
-import junit.framework.TestCase;
-
-import org.jlab.coda.jevio.EvioFile;
-import org.jlab.coda.jevio.IEvioListener;
-import org.jlab.coda.jevio.EvioEvent;
-import org.jlab.coda.jevio.IBlockHeader;
-import org.lcsim.event.RawTrackerHit;
-import org.lcsim.event.base.BaseRawTrackerHit;
-import org.lcsim.detector.IDetectorElement;
-import org.lcsim.event.SimTrackerHit;
-import java.nio.*;
-import org.jlab.coda.jevio.IEvioStructure;
-import org.jlab.coda.jevio.BaseStructureHeader;
-import org.jlab.coda.jevio.EvioException;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Iterator;
-import org.lcsim.util.lcio.LCIOWriter;
-import org.lcsim.event.base.BaseLCSimEvent;
-import org.lcsim.hps.recon.tracking.HPSMakeSVTCellID;
-
-import org.lcsim.hps.users.homer.HPSTrackerEvent;
-import org.lcsim.hps.users.homer.HPSTrackerSample;
-
-
-/**
- * This is a test of using jevio routines to read EVIO files.  
- * 
- * @author homer
- * @version $Id: HPSEvioReader.java,v 1.2 2012/04/29 02:10:05 meeg Exp $
- */
-public class HPSEvioReader extends TestCase {
-
-    private LCIOWriter writer;
-    BaseLCSimEvent newEvent;
-    int VERBOSE = 99;
-    /**
-     * The buffer representing a map of the input file.
-     */
-//    private MappedByteBuffer trkByteBuffer;
-    int eventDataSizeBytes = 8000000;
-//        byte rawdataInts[] = new byte[eventDataSizeBytes];
-    int rawdataInts[] = new int[eventDataSizeBytes];
-    int rawdataLength = 0;
-
-    public void testdoHPSEvioRead() throws IOException {
-        System.out.println("Test for EVIO.");
-
-        int UNKNOWN32 = (0x0);
-        //      int UINT32 = (0x1);
-        int FLOAT32 = (0x2);
-        int CHARSTAR8 = (0x3);
-        int SHORT16 = (0x4);
-        int USHORT16 = (0x5);
-        int CHAR8 = (0x6);
-        int UCHAR8 = (0x7);
-        int DOUBLE64 = (0x8);
-        int LONG64 = (0x9);
-        int ULONG64 = (0xa);
-//        final int INT32 = (0xb);
-        int TAGSEGMENT = (0xc);
-        int SEGMENT = (0xd);
-        int BANK = (0xe);
-        int ALSOBANK = (0x10);
-        int ALSOSEGMENT = (0x20);
-        int ALSOTAGSEGMENT = (0x40);
-        final int TRACKERTAG = (2);
-
-        // load the DAQ to LCSim cell maps
-//final MapDAQCellID mapcell = new MapDAQCellID();
-//    mapcell.fillSVTCellMap();
-
-        //        String fileName = "/mydat/neal/hps/cedExport/data/dvcs_5_500.ev";
-//        String fileName = "/mydat/myhpstest/hps_test_data_2011_nov_18_1.evio";
-//        String fileName = "/mydat/myhpstest/evio4_sample.dat";
-//        String fileName = "/mydat/myhpstest/FADC_Data/hps_000244.dat";
-        String fileName = "/mydat/myhpstest/hps/evio/coda_test2.dat";
-
-        // Tracker data file name for testing
-
-//x        String TrkFileName = "/mydat/myhpstest/00_baseline.bin";
-
-
-//        ByteBuffer buf = ByteBuffer.allocate(1000 * 8192);
-
-        if (VERBOSE > 4) {
-            System.out.println("step1 - Trackertag = " + TRACKERTAG);
-        }
-        // parse bytes
-        class myListener implements IEvioListener {
-
-            public void startEventParse(EvioEvent evioEvent) {
-                if (VERBOSE > 4) {
-                    System.out.println("step2");
-                }
-            }
-
-            public void endEventParse(EvioEvent evioEvent) {
-                if (VERBOSE > 4) {
-                    System.out.println("step3 - endEventParse");
-                }
-            }
-
-            public void gotStructure(EvioEvent evioEvent, IEvioStructure structure) {
-
-                BaseStructureHeader header = structure.getHeader();
-
-//                System.out.println("------------------");
-                if (VERBOSE > 0) {
-                    System.out.println("" + structure);
-                }
-                System.out.println("Tag type = " + header.getTag());
-
-                switch (header.getTag()) {
-                    case TRACKERTAG: //Tracker (will be TRACKERTAG)
-//                        IReadout ro;
-//                        if (header.getDataTypeName() != "INT32" ) {
-                        if (header.getDataTypeName() != "UINT32") {
-                            System.out.println("Non INT32 Tracker Data!!!");
-                            break;
-                        }
-//                        System.out.println("about to simulate having received tracker EVIO data");
-
-                        List<RawTrackerHit> raw_hits = new ArrayList<RawTrackerHit>();
-                        List<SimTrackerHit> sim_hits = new ArrayList<SimTrackerHit>();
-
-                        HPSTrackerEvent trkev = new HPSTrackerEvent();
-                        int trkdata[] = structure.getIntData();
-
-                        int trklength = header.getLength();
-                        IntBuffer trkIntBuffer = IntBuffer.wrap(trkdata);
-//                        for (int ii=0; ii<10; ii++) System.out.println("trkdata["+ii+"] = "+trkdata[ii]+"\t"+Integer.toString(trkdata[ii] & 0xffff, 16).toUpperCase());
-
-// ---- this is the code needed for real EVIO data (IF! IntBuffer is too slow.)
-//                        int dataStartMarker = 0;
-//                        while (dataStartMarker<trklength) {
-//                        int frameSize = trkdata[dataStartMarker];
-//                        for (int ii = 1; ii <= frameSize; ii++) {
-//                                rawdataInts[ii] = trkdata[dataStartMarker+ii];
-//                        }
-//                        dataStartMarker+=frameSize;
-// ----------------------------------------------------                        
-
-                        while (trkIntBuffer.hasRemaining()) {
-                           int frameSize = trkIntBuffer.get();
-                           System.out.println("frameSize = " + frameSize + "  remaining = " + trkIntBuffer.remaining());
-//x                        int frameSize = trkByteBuffer.getInt();
-//x                        while (trkByteBuffer.hasRemaining() && frameSize != 0) {
-                            for (int ii = 0; ii < frameSize; ii++) {
-//x                                rawdataInts[ii] = trkByteBuffer.getInt();
-                                rawdataInts[ii] = trkIntBuffer.get();
-                            }
-                            if (VERBOSE > 4) {
-                                for (int ii = 0; ii < 20; ii++) {
-                                    // + rawdataInts[ii] 
-                                    System.out.println("rawdataInts[" + ii + "] = " + "\t"
-                                            + Integer.toString((rawdataInts[ii] >> 16) & 0xffff, 16).toUpperCase() + ":"
-                                            + Integer.toString(rawdataInts[ii] & 0xffff, 16).toUpperCase());
-                                }
-                            }
-                            trkev.setSize(frameSize);
-                            trkev.setData(rawdataInts);
-                            System.out.println("isTiFrame = " + trkev.isTiFrame());
-                            if (trkev.isTiFrame()) {
-                                System.out.println("Skipping because this is trigger data");
-                                continue;
-                            }
-                            if (VERBOSE > 1) {
-                                System.out.println("starting loop over samples");
-                            }
-//                            for (int i = 0; i < header.getNumber(); i++) {
-                            System.out.println("sample count = " + trkev.count());
-                            for (int i = 0; i < trkev.count(); i++) {
-//                                if (VERBOSE > 4) {
-                                System.out.println("sample# = " + i);
-//                                }
-                                HPSTrackerSample trksamp = trkev.sample(i);
-//                            System.out.println("got trksamp, trksamp = " + trksamp);
-                                long chanaddr = trksamp.channel();
-                                if (VERBOSE > 3) {
-                                    System.out.println("got CellID");
-                                }
-                                int LCSimCellID_ = (int) chanaddr; // about to be replace with HPSMakeSVTCellID
-                                if (VERBOSE > 3) {
-                                    System.out.println("got corresponding LCSim CellID = " + LCSimCellID_);
-                                }
-
-                                long chanapv = trksamp.apv();
-                                if (VERBOSE > 3) {
-                                    System.out.println("got apv");
-                                }
-                                short chanadc[] = new short[6];
-                                if (VERBOSE > 3) {
-                                    System.out.println("getting sample data");
-                                }
-                                HPSMakeSVTCellID tt = new HPSMakeSVTCellID();
-//                                long CellID = tt.HPSMakeSVTCellID(trksamp.hybrid(), trksamp.fpgaAddress(), trksamp.apv(), trksamp.channel());
-                                        
-//old                                long CellID = HPSMakeSVTCellID.class.(trksamp.hybrid(), trksamp.fpgaAddress(), trksamp.apv(), trksamp.channel());
-                                //                                int LCSimCellID_ = mapcell.SVTCellIDlookup(chanaddr);
-
-                                for (int isamp = 0; isamp < 6; isamp++) {
-//                                System.out.println("sample = " + isamp);
-
-                                    chanadc[isamp] = (short) trksamp.value(isamp);
-                                }
-                                IDetectorElement detector_element = null;
-
-                                if (VERBOSE > 2) {
-                                    System.out.println("Creating raw_hit with channel,apv = " + LCSimCellID_ + " , " + chanapv + " and adc = " + chanadc[0]);
-                                }
-
-                                int time = 0; // need to find source of this
-                                RawTrackerHit raw_hit = new BaseRawTrackerHit(time, LCSimCellID_, chanadc, sim_hits, detector_element);
-                                // Put hits onto readout and hit list
-//                    ro.addHit(raw_hit);
-                                raw_hits.add(raw_hit);
-                            }
-                        }
-                        if (VERBOSE > 1) {
-                            System.out.println("Show the hits we created ...");
-                            Iterator<RawTrackerHit> rhiter = raw_hits.iterator();
-
-                            while (rhiter.hasNext()) {
-                                RawTrackerHit rh = rhiter.next();
-                                System.out.println("this hit was created: cellID=" + rh.getCellID() + " adc[0]=" + (rh.getADCValues())[0]);
-                            }
-                        }
-                        switch (header.getDataType()) {
-                            case FLOAT32:
-                                if (VERBOSE > 4) {
-                                    System.out.println("        FLOAT VALS");
-                                }
-                                float floatdata[] = structure.getFloatData();
-                                for (float f : floatdata) {
-                                    if (VERBOSE > 4) {
-                                        System.out.println("         " + f);
-                                    }
-                                }
-                                break;
-
-                            case DOUBLE64:
-                                if (VERBOSE > 4) {
-                                    System.out.println("        DOUBLE VALS");
-                                }
-                                double doubledata[] = structure.getDoubleData();
-                                for (double d : doubledata) {
-                                    if (VERBOSE > 4) {
-                                        System.out.println("         " + d);
-                                    }
-                                }
-                                break;
-
-                            case SHORT16:
-                                if (VERBOSE > 4) {
-                                    System.out.println("        SHORT VALS");
-                                }
-                                short shortdata[] = structure.getShortData();
-                                for (short i : shortdata) {
-                                    if (VERBOSE > 4) {
-                                        System.out.println("        0x" + Integer.toHexString(i));
-                                    }
-                                }
-                                break;
-
-                            case INT32:
-                            case UINT32:
-                                if (VERBOSE > 4) {
-                                    System.out.println("        INT VALS");
-                                }
-                                int intdata[] = structure.getIntData();
-                                for (int i : intdata) {
-                                    if (VERBOSE > 4) {
-                                        System.out.println("        0x" + Integer.toHexString(i));
-                                    }
-                                }
-                                break;
-
-                            case LONG64:
-                                if (VERBOSE > 4) {
-                                    System.out.println("        LONG VALS");
-                                }
-                                long longdata[] = structure.getLongData();
-                                for (long i : longdata) {
-                                    if (VERBOSE > 4) {
-                                        System.out.println("        0x" + Long.toHexString(i));
-                                    }
-                                }
-                                break;
-
-                            case CHAR8:
-                            case UCHAR8:
-                                if (VERBOSE > 4) {
-                                    System.out.println("        BYTE VALS");
-                                }
-                                byte bytedata[] = structure.getByteData();
-                                for (byte i : bytedata) {
-                                    if (VERBOSE > 4) {
-                                        System.out.println("         " + i);
-                                    }
-                                }
-                                break;
-
-                            case CHARSTAR8:
-                                System.out.println("        STRING VALS");
-                                String stringdata[] = structure.getStringData();
-                                for (String str : stringdata) {
-                                    System.out.println("         " + str);
-                                }
-                                break;
-                        }
-                }
-            }
-
-        }
-
-        if (VERBOSE > 4) {
-            System.out.println("step7");
-        }
-
-        // jump past the block header
-//        buf.position(4 * 8);
-//        ByteBuffer buf2 = buf.slice();
-
-
-        if (VERBOSE > 4) {
-            System.out.println("step8");
-        }
-//        ByteParser parser = new ByteParser();
-//        buf2.rewind();
-        EvioEvent event = null;
-
-        if (VERBOSE > 4) {
-            System.out.println("step8.1");
-        }
-        /*
-         * try {
-        System.out.println("step8.2");
-        event = parser.parseEvent(buf2);
-        System.out.println("step8.3");
-        System.out.println("Event = " + event.toString());
-        } catch (EvioException e) {
-        e.printStackTrace();
-        }
-         */
-
-//        System.out.println("step9");
-        // open the EVIO file
-        File fileIn = new File(fileName);
-//x        File trkIn = new File(TrkFileName);
-
-        System.out.println(
-                "read ev file: " + fileName + " size: " + fileIn.length());
-//x        System.out.println(
-//x                "read trk file: " + TrkFileName + " size: " + trkIn.length());
-//        FileInputStream fileInputStream = new FileInputStream(trkIn);
-//        FileChannel inputChannel = fileInputStream.getChannel();
-
-//        long sz = inputChannel.size();
-//        trkByteBuffer = inputChannel.map(FileChannel.MapMode.READ_ONLY, 0L, sz);
-
-//        inputChannel.close(); // this object is no longer needed
-        // set buffer to beginning
-//        trkByteBuffer.position(0);
-
-        //       int offset = 0;
-//        rawdataLength = trkByteBuffer.remaining() / 4;
-//        if (VERBOSE > 4) {
-//            System.out.println("Number of Ints to read is " + rawdataLength);
-//        }
-//        ByteOrder byteOrder = ByteOrder.LITTLE_ENDIAN;
-//        trkByteBuffer.order(byteOrder);
-
-//        int[] header = new int[8000000];
-//        for (int i = 0; i < 8000000; i++) {
-//            header[i] = trkByteBuffer.getInt();
-//        }
-
-
-
-        try {
-            EvioFile evioFile = new EvioFile(fileName);
-
-//            EventParser parser = new EventParser();
-//            parser.addEvioListener(new myListener());
-//            EventParser ep = new EventParser();
-            //           ep.addEvioListener(new myListener());
-            evioFile.getParser().addEvioListener(new myListener());
-            int stat = 1;
-            while (stat != 0) {
-                try {
-                    EvioEvent ev = evioFile.nextEvent();
-                    if (ev == null) {
-                        stat = 0;
-                    }
-                    evioFile.parseEvent(ev);
-                    System.out.println("reading event");
-//                    int[] buftt = ev.getEvtArray();
-                    System.out.println("events remaining =" + evioFile.getNumEventsRemaining());
-                    IBlockHeader bh = evioFile.getCurrentBlockHeader();
-                    System.out.println("nextEvent: BLOCK HEADER :\n" + bh.toString());
-                } catch (EvioException e) {
-                    System.out.println(e);
-                }
-
-                //                MappedByteBuffer buffer = evioFile.getMappedByteBuffer();
-                if (VERBOSE > 4) {
-                    System.out.println("step10");
-                }
-            }
-        } catch (IOException e) {
-            System.out.println(e);
-        }
-        // read events until eof reached
-//x        inputChannel.close();
-
-    }
-}
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