Commit in hps-java on MAIN | |||
sandbox/HPSMakeSVTCellID.java | +60 | added 1.1 | |
/HPSEvioReader.java | +423 | added 1.1 | |
/HPSDetectorTag.java | +30 | added 1.1 | |
src/main/java/org/lcsim/hps/recon/tracking/HPSDetectorTag.java | -30 | 1.1 removed | |
/HPSMakeSVTCellID.java | -60 | 1.5 removed | |
src/test/java/org/lcsim/hps/evio/HPSEvioReader.java | -423 | 1.2 removed | |
+513 | -513 |
sandboxing more code that never got used
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_); + } +} +
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(); + + } +}
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
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
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_); - } -} -
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(); - - } -}
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