Print

Print


Commit in hps-java on MAIN
src/test/java/org/lcsim/hps/evio/Evio4ReadTest.java-1171.2 removed
                                /RawTrackerHitToEvio4Converter_Test.java-91.1 removed
                                /RawTrackerHitToEvio4Converter.java-1351.8 removed
                                /TestRunReconToEvio_Test.java-1351.5 removed
                                /Evio4FileDumpTest.java-581.3 removed
sandbox/Evio4ReadTest.java+117added 1.1
       /TestRunReconToEvio_Test.java+135added 1.1
       /RawTrackerHitToEvio4Converter_Test.java+9added 1.1
       /RawTrackerHitToEvio4Converter.java+135added 1.1
       /Evio4FileDumpTest.java+58added 1.1
+454-454
5 added + 5 removed, total 10 files
sandbox all the tests that will fail with new JEVIO composite data

hps-java/src/test/java/org/lcsim/hps/evio
Evio4ReadTest.java removed after 1.2
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();
-	}
-}

hps-java/src/test/java/org/lcsim/hps/evio
RawTrackerHitToEvio4Converter_Test.java removed after 1.1
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

hps-java/src/test/java/org/lcsim/hps/evio
RawTrackerHitToEvio4Converter.java removed after 1.8
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);
-        }
-    }        
-}

hps-java/src/test/java/org/lcsim/hps/evio
TestRunReconToEvio_Test.java removed after 1.5
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();
-			}
-		}
-	}
-}

hps-java/src/test/java/org/lcsim/hps/evio
Evio4FileDumpTest.java removed after 1.3
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("--------------------");
-        }
-        
-    }       
-}

hps-java/sandbox
Evio4ReadTest.java added at 1.1
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();
+	}
+}

hps-java/sandbox
TestRunReconToEvio_Test.java added at 1.1
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();
+			}
+		}
+	}
+}

hps-java/sandbox
RawTrackerHitToEvio4Converter_Test.java added at 1.1
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

hps-java/sandbox
RawTrackerHitToEvio4Converter.java added at 1.1
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);
+        }
+    }        
+}

hps-java/sandbox
Evio4FileDumpTest.java added at 1.1
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("--------------------");
+        }
+        
+    }       
+}
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