Commit in hps-java on MAIN | |||
src/test/java/org/lcsim/hps/evio/Evio4ReadTest.java | -117 | 1.2 removed | |
/RawTrackerHitToEvio4Converter_Test.java | -9 | 1.1 removed | |
/RawTrackerHitToEvio4Converter.java | -135 | 1.8 removed | |
/TestRunReconToEvio_Test.java | -135 | 1.5 removed | |
/Evio4FileDumpTest.java | -58 | 1.3 removed | |
sandbox/Evio4ReadTest.java | +117 | added 1.1 | |
/TestRunReconToEvio_Test.java | +135 | added 1.1 | |
/RawTrackerHitToEvio4Converter_Test.java | +9 | added 1.1 | |
/RawTrackerHitToEvio4Converter.java | +135 | added 1.1 | |
/Evio4FileDumpTest.java | +58 | added 1.1 | |
+454 | -454 |
sandbox all the tests that will fail with new JEVIO composite data
diff -N Evio4ReadTest.java --- Evio4ReadTest.java 26 Mar 2012 16:48:55 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,117 +0,0 @@
-package org.lcsim.hps.evio; - -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.util.List; - -import junit.framework.TestCase; - -import org.jlab.coda.jevio.BaseStructure; -import org.jlab.coda.jevio.CompositeData; -import org.jlab.coda.jevio.DataType; -import org.jlab.coda.jevio.EvioEvent; -import org.jlab.coda.jevio.EvioException; -import org.jlab.coda.jevio.EvioReader; -import org.jlab.coda.jevio.test.CompositeTester; -import org.lcsim.util.cache.FileCache; - -/** - * Read in an EVIO 4 sample file and print the contents. - * - * @author Jeremy McCormick <[log in to unmask]> - * @version $Id: Evio4ReadTest.java,v 1.2 2012/03/26 16:48:55 jeremy Exp $ - */ -public class Evio4ReadTest extends TestCase { - - private static final String testFileName = "evio4_sample.dat"; - private static final String testFileUrl = "http://www.lcsim.org/test/hps/" + testFileName; - - public void testEvio() throws IOException, EvioException { - - // Get test file to local cache. - FileCache cache = new FileCache(); - cache.setCacheDirectory(new File(".testdata")); - File file = cache.getCachedFile(new URL(testFileUrl)); - - // Open the EVIO file for reading. - EvioReader reader = new EvioReader(file); - - // Write to XML before looping. - //reader.toXMLFile((new File(testFileName + ".xml")).getCanonicalPath()); - - // Loop over events. - EvioEvent event = reader.parseNextEvent(); - int nread = 0; - while (event != null) { - ++nread; - System.out.println("read event #" + event.getEventNumber() + " with size " + event.getTotalBytes() + " bytes"); - for (BaseStructure b1 : event.getChildren()) { - CompositeData cData = b1.getCompositeData(); - //CompositeTester.printCompositeDataObject(cData); - - // Get lists of data items & their types from composite data object - List<Object> items = cData.getItems(); - List<DataType> types = cData.getTypes(); - - System.out.println("# items = " + items.size()); - System.out.println("# types = " + types.size()); - DataType type; - int len = items.size(); - for (int i=0; i < len; i++) { - type = types.get(i); - System.out.print(String.format("type = %9s, val = ", type)); - switch (type) { - case INT32: - case UINT32: - case UNKNOWN32: - int j = (Integer) items.get(i); - System.out.println("0x" + Integer.toHexString(j)); - break; - case LONG64: - case ULONG64: - long l = (Long) items.get(i); - System.out.println("0x" + Long.toHexString(l)); - break; - case SHORT16: - case USHORT16: - short s = (Short) items.get(i); - System.out.println("0x" + Integer.toHexString(s)); - break; - case CHAR8: - case UCHAR8: - System.out.println("BORK"); - break; - // FIXME Broken? - // byte b = (Byte) items.get(i); - // System.out.println("0x" + Integer.toHexString(b)); - // break; - case FLOAT32: - float ff = (Float) items.get(i); - System.out.println("" + ff); - break; - case DOUBLE64: - double dd = (Double) items.get(i); - System.out.println("" + dd); - break; - case CHARSTAR8: - String[] strs = (String[]) items.get(i); - for (String ss : strs) { - System.out.print(ss + ", "); - } - System.out.println(); - break; - default: - } - } - } - - // DEBUG - if (true) break; - - event = reader.parseNextEvent(); - } - System.out.println("read " + nread + " events"); - reader.close(); - } -}
diff -N RawTrackerHitToEvio4Converter_Test.java --- RawTrackerHitToEvio4Converter_Test.java 1 Mar 2012 22:32:30 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,9 +0,0 @@
-package org.lcsim.hps.evio; - -import junit.framework.TestCase; - -public class RawTrackerHitToEvio4Converter_Test extends TestCase { - public void testIt() throws Exception { - RawTrackerHitToEvio4Converter.testMe(); - } -}
\ No newline at end of file
diff -N RawTrackerHitToEvio4Converter.java --- RawTrackerHitToEvio4Converter.java 22 Mar 2012 22:03:35 -0000 1.8 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,135 +0,0 @@
-package org.lcsim.hps.evio; - -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.util.List; - -import org.jlab.coda.jevio.BaseStructureHeader; -import org.jlab.coda.jevio.CompositeData; -import org.jlab.coda.jevio.DataType; -import org.jlab.coda.jevio.EventWriter; -import org.jlab.coda.jevio.EvioEvent; -import org.jlab.coda.jevio.EvioException; -import org.jlab.coda.jevio.EvioReader; -import org.jlab.coda.jevio.test.CompositeTester; -import org.lcsim.event.EventHeader; -import org.lcsim.event.RawTrackerHit; -import org.lcsim.util.Driver; -import org.lcsim.util.cache.FileCache; -import org.lcsim.util.loop.LCSimLoop; - -/** - * Test class that converts RawTrackerHit output from SeedTracker into EVIO v4 CompositeData objects - * and compares the two to make sure they match. - * - * @author Jeremy McCormick <[log in to unmask]> - * @version $Id: RawTrackerHitToEvio4Converter.java,v 1.8 2012/03/22 22:03:35 jeremy Exp $ - */ -public class RawTrackerHitToEvio4Converter extends Driver { - - private final String format = "N(L,I,I)"; - private String rawHitCollectionName = "RawTrackerHitMaker_RawTrackerHits"; - private static String lcioFileName = "ap2.2gev050mevsel_SLIC-v2r11p1_geant4-v9r3p2_QGSP_BERT_HPS-Test-JLAB-v4pt0_trackRecon.slcio"; - //private static String lcioFileUrl = "http://www.lcsim.org/test/hps/" + lcioFileName; - private static String lcioFileUrl = "file:///u1/hps/trackerTest/" + lcioFileName; - private static String evioFileName = "compositeDataTest.evio"; - private EventWriter writer; - - public RawTrackerHitToEvio4Converter() {} - - public static void testMe() throws Exception { - - // Write EVIO v4 test events. - FileCache cache = new FileCache(); - cache.setCacheDirectory(new File(".")); - File file = cache.getCachedFile(new URL(lcioFileUrl)); - LCSimLoop loop = new LCSimLoop(); - loop.setLCIORecordSource(file); - loop.add(new RawTrackerHitToEvio4Converter()); - loop.loop(-1); - System.out.println("processed " + loop.getTotalCountableSupplied() + " events"); - loop.dispose(); - - // Read back events. - EvioReader reader = new EvioReader(evioFileName); - EvioEvent event = reader.parseNextEvent(); - while (true) { - CompositeData cdata = event.getCompositeData(); - List<Object> items = cdata.getItems(); - int n = items.size(); - for (int i=0; i<n; i+=3) { - Long id = (Long)items.get(i); - int time = (Integer)items.get(i+1); - int adcValue = (Integer)items.get(i+2); - System.out.println("id=0x"+Long.toHexString(id)+"; time="+time+"; adcValue="+adcValue); - } - if (reader.getNumEventsRemaining() == 0) { - break; - } - event = reader.parseNextEvent(); - } - reader.close(); - } - - private CompositeData convertToCompositeData(List<RawTrackerHit> hits) { - int dataSize = hits.size(); - CompositeData.Data data = new CompositeData.Data(); - data.addN(dataSize); - for (RawTrackerHit hit : hits) { - data.addLong(hit.getCellID()); - data.addInt(hit.getTime()); - data.addInt(hit.getADCValues()[0]); - } - CompositeData cdata = null; - try { - cdata = new CompositeData(format, 1, data, 0 ,0); - } - catch (EvioException e) { - throw new RuntimeException(e); - } - - return cdata; - } - - public void setRawHitCollectionName(String rawHitCollectionName) { - this.rawHitCollectionName = rawHitCollectionName; - } - - public void startOfData() { - try { - writer = new EventWriter(evioFileName); - } catch (EvioException e) { - throw new RuntimeException(e); - } - } - - public void endOfData() { - try { - writer.close(); - } catch (EvioException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - public void process(EventHeader event) { - List<RawTrackerHit> hits = event.get(RawTrackerHit.class, rawHitCollectionName); - System.out.println("event " + event.getEventNumber() + " has " + hits.size() + " RawTrackerHits"); - CompositeData cdata = this.convertToCompositeData(hits); - CompositeTester.printCompositeDataObject(cdata); - EvioEvent ev = new EvioEvent(0, DataType.COMPOSITE, 0); - BaseStructureHeader header = ev.getHeader(); - header.setTag(0xF); // Needed??? - header.setNumber(1); - header.setDataType(DataType.COMPOSITE); - try { - ev.appendCompositeData(cdata); - ev.setAllHeaderLengths(); - writer.writeEvent(ev); - } catch (Exception e) { - throw new RuntimeException(e); - } - } -}
diff -N TestRunReconToEvio_Test.java --- TestRunReconToEvio_Test.java 31 Mar 2012 02:30:48 -0000 1.5 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,135 +0,0 @@
-package org.lcsim.hps.evio; - -import static org.lcsim.hps.evio.EventConstants.ECAL_BOTTOM_BANK_TAG; -import static org.lcsim.hps.evio.EventConstants.ECAL_TOP_BANK_TAG; -import static org.lcsim.hps.evio.EventConstants.SVT_BANK_TAG; - -import java.io.File; -import java.io.IOException; -import java.net.URL; - -import junit.framework.TestCase; - -import org.jlab.coda.jevio.BaseStructure; -import org.jlab.coda.jevio.CompositeData; -import org.jlab.coda.jevio.EvioEvent; -import org.jlab.coda.jevio.EvioException; -import org.jlab.coda.jevio.EvioReader; -import org.lcsim.hps.recon.tracking.HPSSVTData; -import org.lcsim.job.JobControlManager; -import org.lcsim.util.cache.FileCache; - -/** - * Run the test run recon and produce an EVIO output file. - * @author Jeremy McCormick <[log in to unmask]> - */ -public class TestRunReconToEvio_Test extends TestCase { - - final String lcsimXmlResource = "/org/lcsim/hps/steering/HPSTestRunReconToEvio.lcsim"; - final String testUrl = "http://www.lcsim.org/test/hps"; - final String slicFileName = "beam_and_tridents_1_SLIC-v2r11p1_geant4-v9r3p2_QGSP_BERT_HPS-Test-JLAB-v4pt0.slcio"; - final String evioFileName = "MCRawData.evio"; - - public void testIt() throws Exception { - - // Get some sample events. - FileCache cache = new FileCache(); - cache.setCacheDirectory(new File(".testdata")); - File f = cache.getCachedFile(new URL(testUrl + "/" + slicFileName)); - - // Create EVIO file. - JobControlManager mgr = new JobControlManager(); - mgr.addVariableDefinition("inputFile", f.getCanonicalPath()); - mgr.addVariableDefinition("evioFile", evioFileName); - mgr.setup(lcsimXmlResource); - mgr.run(); - - // Dump EVIO file contents. - debugPrintEvioEvents(); - } - - private void debugPrintEvioEvents() throws EvioException { - // Read back EVIO file. - EvioReader reader = null; - try { - reader = new EvioReader(evioFileName); - } catch (IOException e) { - throw new RuntimeException(e); - } - EvioEvent event = null; - event = reader.parseNextEvent(); - while (event != null) { - if (event.getChildren() != null) { - for (BaseStructure crateBank : event.getChildren()) { - int crateTag = crateBank.getHeader().getTag(); - if (crateTag == SVT_BANK_TAG) { - int[] intData = crateBank.getIntData(); - if (intData.length % 4 != 0) { - throw new RuntimeException("Size of int array not divisible by 4!"); - } - int n = intData.length; - for (int i=0; i<n; i+=4) { - - int[] sampleData = new int[4]; - sampleData[0] = intData[i]; - sampleData[1] = intData[i+1]; - sampleData[2] = intData[i+2]; - sampleData[3] = intData[i+3]; - - HPSSVTData svtData = new HPSSVTData(sampleData); - - int fpga = svtData.getFPGAAddress(); - int hybrid = svtData.getHybridNumber(); - int channel = svtData.getChannelNumber(); - int apv = svtData.getAPVNumber(); - - System.out.println("fpga=" + fpga + "; hybrid=" + hybrid + "; channel=" + channel + "; apv=" + apv); - for (int j=0; j<6; j++) { - int val = svtData.getSample(j); - System.out.println(" sample[" + j + "]="+val); - } - } - } else if (crateTag == ECAL_TOP_BANK_TAG || crateTag == ECAL_BOTTOM_BANK_TAG) { - if (crateBank.getChildCount() > 0) { - for (BaseStructure slotBank : crateBank.getChildren()) { - CompositeData cdata = slotBank.getCompositeData(); - System.out.println("ecal.tag="+Integer.toHexString(slotBank.getHeader().getTag())); - System.out.println("cdata has " + cdata.getItems().size() + " items"); - System.out.println("cdata has " + cdata.getTypes().size() + " types"); - System.out.println("cdata has " + cdata.getNValues().size() + " N values"); - int n = cdata.getNValues().size(); - for (int i=0; i<n; i++) { - System.out.println("cdata.N["+i+"]="+cdata.getNValues().get(i)); - } - int ni = cdata.getItems().size(); - for (int i=0; i<ni; i++) { - System.out.println("cdata.type["+i+"]="+cdata.getTypes().get(i)); - } - int slot = cdata.getByte(); - int trigger = cdata.getInt(); - long timestamp = cdata.getLong(); - int nchannels = cdata.getNValue(); - System.out.println("slot#="+slot+"; trigger="+trigger+"; timestamp="+timestamp+"; nchannels="+nchannels); - for (int i=0; i<nchannels; i++) { - int channelNumber = cdata.getByte(); - int npulses = cdata.getNValue(); - System.out.println(" channel="+channelNumber+"; npulses="+npulses); - for (int j=0; j<npulses; j++) { - short pulseTime = cdata.getShort(); - int pulseIntegral = cdata.getInt(); - System.out.println(" pulseTime="+pulseTime+"; pulseIntegral="+pulseIntegral); - } - } - } - } - } - } - - if (reader.getNumEventsRemaining() == 0) { - break; - } - event = reader.parseNextEvent(); - } - } - } -}
diff -N Evio4FileDumpTest.java --- Evio4FileDumpTest.java 27 Mar 2012 20:31:50 -0000 1.3 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,58 +0,0 @@
-package org.lcsim.hps.evio; - -import java.io.File; -import java.net.URL; - -import junit.framework.TestCase; - -import org.jlab.coda.jevio.BaseStructure; -import org.jlab.coda.jevio.CompositeData; -import org.jlab.coda.jevio.EvioEvent; -import org.jlab.coda.jevio.EvioReader; -import org.jlab.coda.jevio.test.CompositeTester; -import org.lcsim.util.cache.FileCache; - -public class Evio4FileDumpTest extends TestCase { - - public void testMe() throws Exception { - - FileCache cache = new FileCache(); - cache.setCacheDirectory(new File(".testdata")); - File evioTestData = cache.getCachedFile(new URL("http://www.lcsim.org/test/hps/hps_000246.dat")); // ECal data in pulse integral mode - - EvioReader reader = new EvioReader(evioTestData); - EvioEvent event = reader.parseNextEvent(); - - int eventCount = 1; - - while (true) { - - System.out.println("event #" + eventCount); - System.out.println("event has " + event.getChildCount() + " children"); - if (event.getChildCount() > 0) { - for (BaseStructure topBank : event.getChildren()) { - System.out.println("top bank has " + topBank.getChildCount() + " children"); - if (topBank.getChildCount() > 0) { - for (BaseStructure subBank : topBank.getChildren()) { - System.out.println("subBank has " + subBank.getChildCount() + " children"); - CompositeData cdata = subBank.getCompositeData(); - System.out.println("Printing subBank CompositeData..."); - if (cdata != null) - CompositeTester.printCompositeDataObject(cdata); - } - } - } - } - - if (reader.getNumEventsRemaining() == 0) { - break; - } - else { - event = reader.parseNextEvent(); - } - ++eventCount; - System.out.println("--------------------"); - } - - } -}
diff -N Evio4ReadTest.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Evio4ReadTest.java 4 May 2012 02:23:57 -0000 1.1 @@ -0,0 +1,117 @@
+package org.lcsim.hps.evio; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.List; + +import junit.framework.TestCase; + +import org.jlab.coda.jevio.BaseStructure; +import org.jlab.coda.jevio.CompositeData; +import org.jlab.coda.jevio.DataType; +import org.jlab.coda.jevio.EvioEvent; +import org.jlab.coda.jevio.EvioException; +import org.jlab.coda.jevio.EvioReader; +import org.jlab.coda.jevio.test.CompositeTester; +import org.lcsim.util.cache.FileCache; + +/** + * Read in an EVIO 4 sample file and print the contents. + * + * @author Jeremy McCormick <[log in to unmask]> + * @version $Id: Evio4ReadTest.java,v 1.1 2012/05/04 02:23:57 meeg Exp $ + */ +public class Evio4ReadTest extends TestCase { + + private static final String testFileName = "evio4_sample.dat"; + private static final String testFileUrl = "http://www.lcsim.org/test/hps/" + testFileName; + + public void testEvio() throws IOException, EvioException { + + // Get test file to local cache. + FileCache cache = new FileCache(); + cache.setCacheDirectory(new File(".testdata")); + File file = cache.getCachedFile(new URL(testFileUrl)); + + // Open the EVIO file for reading. + EvioReader reader = new EvioReader(file); + + // Write to XML before looping. + //reader.toXMLFile((new File(testFileName + ".xml")).getCanonicalPath()); + + // Loop over events. + EvioEvent event = reader.parseNextEvent(); + int nread = 0; + while (event != null) { + ++nread; + System.out.println("read event #" + event.getEventNumber() + " with size " + event.getTotalBytes() + " bytes"); + for (BaseStructure b1 : event.getChildren()) { + CompositeData cData = b1.getCompositeData(); + //CompositeTester.printCompositeDataObject(cData); + + // Get lists of data items & their types from composite data object + List<Object> items = cData.getItems(); + List<DataType> types = cData.getTypes(); + + System.out.println("# items = " + items.size()); + System.out.println("# types = " + types.size()); + DataType type; + int len = items.size(); + for (int i=0; i < len; i++) { + type = types.get(i); + System.out.print(String.format("type = %9s, val = ", type)); + switch (type) { + case INT32: + case UINT32: + case UNKNOWN32: + int j = (Integer) items.get(i); + System.out.println("0x" + Integer.toHexString(j)); + break; + case LONG64: + case ULONG64: + long l = (Long) items.get(i); + System.out.println("0x" + Long.toHexString(l)); + break; + case SHORT16: + case USHORT16: + short s = (Short) items.get(i); + System.out.println("0x" + Integer.toHexString(s)); + break; + case CHAR8: + case UCHAR8: + System.out.println("BORK"); + break; + // FIXME Broken? + // byte b = (Byte) items.get(i); + // System.out.println("0x" + Integer.toHexString(b)); + // break; + case FLOAT32: + float ff = (Float) items.get(i); + System.out.println("" + ff); + break; + case DOUBLE64: + double dd = (Double) items.get(i); + System.out.println("" + dd); + break; + case CHARSTAR8: + String[] strs = (String[]) items.get(i); + for (String ss : strs) { + System.out.print(ss + ", "); + } + System.out.println(); + break; + default: + } + } + } + + // DEBUG + if (true) break; + + event = reader.parseNextEvent(); + } + System.out.println("read " + nread + " events"); + reader.close(); + } +}
diff -N TestRunReconToEvio_Test.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ TestRunReconToEvio_Test.java 4 May 2012 02:23:57 -0000 1.1 @@ -0,0 +1,135 @@
+package org.lcsim.hps.evio; + +import static org.lcsim.hps.evio.EventConstants.ECAL_BOTTOM_BANK_TAG; +import static org.lcsim.hps.evio.EventConstants.ECAL_TOP_BANK_TAG; +import static org.lcsim.hps.evio.EventConstants.SVT_BANK_TAG; + +import java.io.File; +import java.io.IOException; +import java.net.URL; + +import junit.framework.TestCase; + +import org.jlab.coda.jevio.BaseStructure; +import org.jlab.coda.jevio.CompositeData; +import org.jlab.coda.jevio.EvioEvent; +import org.jlab.coda.jevio.EvioException; +import org.jlab.coda.jevio.EvioReader; +import org.lcsim.hps.recon.tracking.HPSSVTData; +import org.lcsim.job.JobControlManager; +import org.lcsim.util.cache.FileCache; + +/** + * Run the test run recon and produce an EVIO output file. + * @author Jeremy McCormick <[log in to unmask]> + */ +public class TestRunReconToEvio_Test extends TestCase { + + final String lcsimXmlResource = "/org/lcsim/hps/steering/HPSTestRunReconToEvio.lcsim"; + final String testUrl = "http://www.lcsim.org/test/hps"; + final String slicFileName = "beam_and_tridents_1_SLIC-v2r11p1_geant4-v9r3p2_QGSP_BERT_HPS-Test-JLAB-v4pt0.slcio"; + final String evioFileName = "MCRawData.evio"; + + public void testIt() throws Exception { + + // Get some sample events. + FileCache cache = new FileCache(); + cache.setCacheDirectory(new File(".testdata")); + File f = cache.getCachedFile(new URL(testUrl + "/" + slicFileName)); + + // Create EVIO file. + JobControlManager mgr = new JobControlManager(); + mgr.addVariableDefinition("inputFile", f.getCanonicalPath()); + mgr.addVariableDefinition("evioFile", evioFileName); + mgr.setup(lcsimXmlResource); + mgr.run(); + + // Dump EVIO file contents. + debugPrintEvioEvents(); + } + + private void debugPrintEvioEvents() throws EvioException { + // Read back EVIO file. + EvioReader reader = null; + try { + reader = new EvioReader(evioFileName); + } catch (IOException e) { + throw new RuntimeException(e); + } + EvioEvent event = null; + event = reader.parseNextEvent(); + while (event != null) { + if (event.getChildren() != null) { + for (BaseStructure crateBank : event.getChildren()) { + int crateTag = crateBank.getHeader().getTag(); + if (crateTag == SVT_BANK_TAG) { + int[] intData = crateBank.getIntData(); + if (intData.length % 4 != 0) { + throw new RuntimeException("Size of int array not divisible by 4!"); + } + int n = intData.length; + for (int i=0; i<n; i+=4) { + + int[] sampleData = new int[4]; + sampleData[0] = intData[i]; + sampleData[1] = intData[i+1]; + sampleData[2] = intData[i+2]; + sampleData[3] = intData[i+3]; + + HPSSVTData svtData = new HPSSVTData(sampleData); + + int fpga = svtData.getFPGAAddress(); + int hybrid = svtData.getHybridNumber(); + int channel = svtData.getChannelNumber(); + int apv = svtData.getAPVNumber(); + + System.out.println("fpga=" + fpga + "; hybrid=" + hybrid + "; channel=" + channel + "; apv=" + apv); + for (int j=0; j<6; j++) { + int val = svtData.getSample(j); + System.out.println(" sample[" + j + "]="+val); + } + } + } else if (crateTag == ECAL_TOP_BANK_TAG || crateTag == ECAL_BOTTOM_BANK_TAG) { + if (crateBank.getChildCount() > 0) { + for (BaseStructure slotBank : crateBank.getChildren()) { + CompositeData cdata = slotBank.getCompositeData(); + System.out.println("ecal.tag="+Integer.toHexString(slotBank.getHeader().getTag())); + System.out.println("cdata has " + cdata.getItems().size() + " items"); + System.out.println("cdata has " + cdata.getTypes().size() + " types"); + System.out.println("cdata has " + cdata.getNValues().size() + " N values"); + int n = cdata.getNValues().size(); + for (int i=0; i<n; i++) { + System.out.println("cdata.N["+i+"]="+cdata.getNValues().get(i)); + } + int ni = cdata.getItems().size(); + for (int i=0; i<ni; i++) { + System.out.println("cdata.type["+i+"]="+cdata.getTypes().get(i)); + } + int slot = cdata.getByte(); + int trigger = cdata.getInt(); + long timestamp = cdata.getLong(); + int nchannels = cdata.getNValue(); + System.out.println("slot#="+slot+"; trigger="+trigger+"; timestamp="+timestamp+"; nchannels="+nchannels); + for (int i=0; i<nchannels; i++) { + int channelNumber = cdata.getByte(); + int npulses = cdata.getNValue(); + System.out.println(" channel="+channelNumber+"; npulses="+npulses); + for (int j=0; j<npulses; j++) { + short pulseTime = cdata.getShort(); + int pulseIntegral = cdata.getInt(); + System.out.println(" pulseTime="+pulseTime+"; pulseIntegral="+pulseIntegral); + } + } + } + } + } + } + + if (reader.getNumEventsRemaining() == 0) { + break; + } + event = reader.parseNextEvent(); + } + } + } +}
diff -N RawTrackerHitToEvio4Converter_Test.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ RawTrackerHitToEvio4Converter_Test.java 4 May 2012 02:23:57 -0000 1.1 @@ -0,0 +1,9 @@
+package org.lcsim.hps.evio; + +import junit.framework.TestCase; + +public class RawTrackerHitToEvio4Converter_Test extends TestCase { + public void testIt() throws Exception { + RawTrackerHitToEvio4Converter.testMe(); + } +}
\ No newline at end of file
diff -N RawTrackerHitToEvio4Converter.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ RawTrackerHitToEvio4Converter.java 4 May 2012 02:23:57 -0000 1.1 @@ -0,0 +1,135 @@
+package org.lcsim.hps.evio; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.List; + +import org.jlab.coda.jevio.BaseStructureHeader; +import org.jlab.coda.jevio.CompositeData; +import org.jlab.coda.jevio.DataType; +import org.jlab.coda.jevio.EventWriter; +import org.jlab.coda.jevio.EvioEvent; +import org.jlab.coda.jevio.EvioException; +import org.jlab.coda.jevio.EvioReader; +import org.jlab.coda.jevio.test.CompositeTester; +import org.lcsim.event.EventHeader; +import org.lcsim.event.RawTrackerHit; +import org.lcsim.util.Driver; +import org.lcsim.util.cache.FileCache; +import org.lcsim.util.loop.LCSimLoop; + +/** + * Test class that converts RawTrackerHit output from SeedTracker into EVIO v4 CompositeData objects + * and compares the two to make sure they match. + * + * @author Jeremy McCormick <[log in to unmask]> + * @version $Id: RawTrackerHitToEvio4Converter.java,v 1.1 2012/05/04 02:23:57 meeg Exp $ + */ +public class RawTrackerHitToEvio4Converter extends Driver { + + private final String format = "N(L,I,I)"; + private String rawHitCollectionName = "RawTrackerHitMaker_RawTrackerHits"; + private static String lcioFileName = "ap2.2gev050mevsel_SLIC-v2r11p1_geant4-v9r3p2_QGSP_BERT_HPS-Test-JLAB-v4pt0_trackRecon.slcio"; + //private static String lcioFileUrl = "http://www.lcsim.org/test/hps/" + lcioFileName; + private static String lcioFileUrl = "file:///u1/hps/trackerTest/" + lcioFileName; + private static String evioFileName = "compositeDataTest.evio"; + private EventWriter writer; + + public RawTrackerHitToEvio4Converter() {} + + public static void testMe() throws Exception { + + // Write EVIO v4 test events. + FileCache cache = new FileCache(); + cache.setCacheDirectory(new File(".")); + File file = cache.getCachedFile(new URL(lcioFileUrl)); + LCSimLoop loop = new LCSimLoop(); + loop.setLCIORecordSource(file); + loop.add(new RawTrackerHitToEvio4Converter()); + loop.loop(-1); + System.out.println("processed " + loop.getTotalCountableSupplied() + " events"); + loop.dispose(); + + // Read back events. + EvioReader reader = new EvioReader(evioFileName); + EvioEvent event = reader.parseNextEvent(); + while (true) { + CompositeData cdata = event.getCompositeData(); + List<Object> items = cdata.getItems(); + int n = items.size(); + for (int i=0; i<n; i+=3) { + Long id = (Long)items.get(i); + int time = (Integer)items.get(i+1); + int adcValue = (Integer)items.get(i+2); + System.out.println("id=0x"+Long.toHexString(id)+"; time="+time+"; adcValue="+adcValue); + } + if (reader.getNumEventsRemaining() == 0) { + break; + } + event = reader.parseNextEvent(); + } + reader.close(); + } + + private CompositeData convertToCompositeData(List<RawTrackerHit> hits) { + int dataSize = hits.size(); + CompositeData.Data data = new CompositeData.Data(); + data.addN(dataSize); + for (RawTrackerHit hit : hits) { + data.addLong(hit.getCellID()); + data.addInt(hit.getTime()); + data.addInt(hit.getADCValues()[0]); + } + CompositeData cdata = null; + try { + cdata = new CompositeData(format, 1, data, 0 ,0); + } + catch (EvioException e) { + throw new RuntimeException(e); + } + + return cdata; + } + + public void setRawHitCollectionName(String rawHitCollectionName) { + this.rawHitCollectionName = rawHitCollectionName; + } + + public void startOfData() { + try { + writer = new EventWriter(evioFileName); + } catch (EvioException e) { + throw new RuntimeException(e); + } + } + + public void endOfData() { + try { + writer.close(); + } catch (EvioException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public void process(EventHeader event) { + List<RawTrackerHit> hits = event.get(RawTrackerHit.class, rawHitCollectionName); + System.out.println("event " + event.getEventNumber() + " has " + hits.size() + " RawTrackerHits"); + CompositeData cdata = this.convertToCompositeData(hits); + CompositeTester.printCompositeDataObject(cdata); + EvioEvent ev = new EvioEvent(0, DataType.COMPOSITE, 0); + BaseStructureHeader header = ev.getHeader(); + header.setTag(0xF); // Needed??? + header.setNumber(1); + header.setDataType(DataType.COMPOSITE); + try { + ev.appendCompositeData(cdata); + ev.setAllHeaderLengths(); + writer.writeEvent(ev); + } catch (Exception e) { + throw new RuntimeException(e); + } + } +}
diff -N Evio4FileDumpTest.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Evio4FileDumpTest.java 4 May 2012 02:23:57 -0000 1.1 @@ -0,0 +1,58 @@
+package org.lcsim.hps.evio; + +import java.io.File; +import java.net.URL; + +import junit.framework.TestCase; + +import org.jlab.coda.jevio.BaseStructure; +import org.jlab.coda.jevio.CompositeData; +import org.jlab.coda.jevio.EvioEvent; +import org.jlab.coda.jevio.EvioReader; +import org.jlab.coda.jevio.test.CompositeTester; +import org.lcsim.util.cache.FileCache; + +public class Evio4FileDumpTest extends TestCase { + + public void testMe() throws Exception { + + FileCache cache = new FileCache(); + cache.setCacheDirectory(new File(".testdata")); + File evioTestData = cache.getCachedFile(new URL("http://www.lcsim.org/test/hps/hps_000246.dat")); // ECal data in pulse integral mode + + EvioReader reader = new EvioReader(evioTestData); + EvioEvent event = reader.parseNextEvent(); + + int eventCount = 1; + + while (true) { + + System.out.println("event #" + eventCount); + System.out.println("event has " + event.getChildCount() + " children"); + if (event.getChildCount() > 0) { + for (BaseStructure topBank : event.getChildren()) { + System.out.println("top bank has " + topBank.getChildCount() + " children"); + if (topBank.getChildCount() > 0) { + for (BaseStructure subBank : topBank.getChildren()) { + System.out.println("subBank has " + subBank.getChildCount() + " children"); + CompositeData cdata = subBank.getCompositeData(); + System.out.println("Printing subBank CompositeData..."); + if (cdata != null) + CompositeTester.printCompositeDataObject(cdata); + } + } + } + } + + if (reader.getNumEventsRemaining() == 0) { + break; + } + else { + event = reader.parseNextEvent(); + } + ++eventCount; + System.out.println("--------------------"); + } + + } +}
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