Print

Print


Commit in hps-java/src on MAIN
main/java/org/lcsim/hps/evio/EvioConsumer.java+31-281.1 -> 1.2
                            /EvioFileProducer.java+23-361.3 -> 1.4
test/java/org/lcsim/hps/evio/RawTrackerHitToEvio4Converter.java+4-51.5 -> 1.6
+58-69
3 modified files
checking in working copies of test ET code; can actually read events off ET ring now

hps-java/src/main/java/org/lcsim/hps/evio
EvioConsumer.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- EvioConsumer.java	9 Mar 2012 23:34:21 -0000	1.1
+++ EvioConsumer.java	12 Mar 2012 17:47:13 -0000	1.2
@@ -1,6 +1,12 @@
 package org.lcsim.hps.evio;
 
+import hep.aida.IAnalysisFactory;
+import hep.aida.ICloud1D;
+import hep.aida.IPlotter;
+
 import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.jlab.coda.et.EtAttachment;
 import org.jlab.coda.et.EtConstants;
@@ -11,8 +17,11 @@
 import org.jlab.coda.et.EtSystemOpenConfig;
 import org.jlab.coda.et.enums.Mode;
 import org.jlab.coda.jevio.CompositeData;
-import org.jlab.coda.jevio.DataType;
 import org.jlab.coda.jevio.EvioEvent;
+import org.jlab.coda.jevio.EvioReader;
+import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.base.BaseRawTrackerHit;
+import org.lcsim.util.aida.AIDA;
 
 /**
  * This class is an example of an event consumer for an ET system.
@@ -190,17 +199,20 @@
             EtEvent[] mevs;
             
             // Test plots.
-            /*
             AIDA aida = AIDA.defaultInstance();
-            ICloud1D idsPlot = aida.cloud1D("Cell IDs");
-            ICloud1D timePlot = aida.cloud1D("Time");
+            //ICloud1D idsPlot = aida.cloud1D("Cell IDs");
+            //ICloud1D timePlot = aida.cloud1D("Time");
             ICloud1D adcValuePlot = aida.cloud1D("ADC Value");
-            */
+            
+            IAnalysisFactory fac = aida.analysisFactory();
+            IPlotter plotter = fac.createPlotterFactory().create("Plot");
+            plotter.createRegion();
+            plotter.region(0).plot(adcValuePlot);
+            plotter.show();
             
             // Number of events to read off ET Ring before exiting.
             // TODO Make this a CL parameter.
-            //int ntoread = 10000;
-            int ntoread = 8879;
+            int ntoread = 1000;
             
             // Number of events read so far.
             int nread = 0;
@@ -221,22 +233,12 @@
                         System.out.println("data needs swapping");
                     }
                     
-                    // Get event's data buffer
-                    // buf.limit() = length of the actual data (not buffer capacity)
-                    ByteBuffer buf = mev.getDataBuffer();
+                    // Get CompositeData using event buffer.
+                    ByteBuffer buf = mev.getDataBuffer();                                        
+                    EvioReader reader = new EvioReader(buf);
+                    EvioEvent evioEvent = reader.parseNextEvent();
+                    CompositeData cdata = evioEvent.getCompositeData();
                     
-                    System.out.println("mev.len="+mev.getLength());
-
-                    // Make composite data from raw bytes in event.
-                    System.out.println("making new EvioEvent");
-                    EvioEvent ev = new EvioEvent(0, DataType.COMPOSITE, 0);
-                    System.out.println("setting raw bytes");
-                    ev.setRawBytes(buf.array());
-                    System.out.println("getting CompositeData");
-                    CompositeData cdata = ev.getCompositeData();
-                    System.out.println("OK");
-
-                    /*
                     // Make RawTrackerHits from composite data.
                     List<RawTrackerHit> hits = new ArrayList<RawTrackerHit>();
                     List<Object> items = cdata.getItems();                        
@@ -245,7 +247,7 @@
                         Long id = (Long)items.get(i);
                         int time = (Integer)items.get(i+1);
                         int adcValue = (Integer)items.get(i+2);
-                        System.out.println("EvioConsumer --> id=0x"+Long.toHexString(id)+"; time="+time+"; adcValue="+adcValue);
+                        //System.out.println("EvioConsumer --> id=0x"+Long.toHexString(id)+"; time="+time+"; adcValue="+adcValue);
                         RawTrackerHit hit = new BaseRawTrackerHit(id, time, new short[] {(short)adcValue});
                         hits.add(hit);
                     }         
@@ -253,19 +255,20 @@
                     
                     // Make some test plots from tracker data.
                     for (RawTrackerHit hit : hits) {
-                        idsPlot.fill(hit.getCellID());
-                        timePlot.fill(hit.getTime());
+                        //idsPlot.fill(hit.getCellID());
+                        //timePlot.fill(hit.getTime());
                         adcValuePlot.fill(hit.getADCValues()[0]);
-                    }
-                    */
+                    } 
                 }                
 
                 // put events back into ET system
                 sys.putEvents(att, mevs);
                 
                 // Break out of read loop if max events events equaled or exceeded.
-                if (nread >= ntoread)
+                if (nread >= ntoread) {
+                    System.out.println("breaking after " + ntoread + " events");
                     break;
+                }
             }
         }
         catch (Exception ex) {

hps-java/src/main/java/org/lcsim/hps/evio
EvioFileProducer.java 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- EvioFileProducer.java	9 Mar 2012 23:33:51 -0000	1.3
+++ EvioFileProducer.java	12 Mar 2012 17:47:13 -0000	1.4
@@ -9,6 +9,7 @@
 import org.jlab.coda.et.EtSystem;
 import org.jlab.coda.et.EtSystemOpenConfig;
 import org.jlab.coda.et.enums.Mode;
+import org.jlab.coda.jevio.EventWriter;
 import org.jlab.coda.jevio.EvioEvent;
 import org.jlab.coda.jevio.EvioException;
 import org.jlab.coda.jevio.EvioReader;
@@ -27,25 +28,6 @@
     
     EvioFileProducer()
     {}
-      
-    private EvioEvent nextEvent() {
-        try {
-            return reader.parseNextEvent();
-        } catch (EvioException x) {
-            throw new RuntimeException(x);
-        }
-    }
-    
-    // Get the next byte buffer and also set the class variable byteBuffer to the same.
-    private ByteBuffer nextByteBuffer() {
-        EvioEvent nextEvent = nextEvent();
-        System.out.println("read next event: tag="+nextEvent.getHeader().getTag() + "; num="+nextEvent.getHeader().getNumber()+"; len="+nextEvent.getHeader().getLength());
-        if (nextEvent == null)
-            return null;        
-        byteBuffer = ByteBuffer.allocate(nextEvent.getTotalBytes());
-        byteBuffer.put(nextEvent.getRawBytes());
-        return byteBuffer;
-    }
     
     private static void usage() {
         System.out.println("\nUsage: java Producer -f <et name> -e <evio file> [-p <server port>] [-host <host>]" +
@@ -149,21 +131,15 @@
             
             // array of events
             EtEvent[] mevs;
-            
-            // Buffer for writing
-            ByteBuffer buf;
-                        
+                                    
             // Open EVIO reader.
             reader = new EvioReader(evioFileName);
-
+            
             // Loop until event source is exhausted.
-            int eventCount = 0;
+            //int eventCount = 0;
+            EvioEvent event = reader.parseNextEvent();
             while (true) {
-                buf = nextByteBuffer();
-                if (buf == null) { // Break if no more events.
-                    System.out.println("end of events");
-                    break;
-                }
+                
                 mevs = sys.newEvents(
                         att,          // attachment
                         Mode.SLEEP,   // wait mode
@@ -172,13 +148,24 @@
                         1,            // number of events
                         size,         // size of event but overwritten later
                         group);       // group number; default value is arbitrary
-                mevs[0].setLength(buf.position()); // Set actual length from buffer position.
-                mevs[0].getDataBuffer().put(byteBuffer); // Set raw bytes of EtEvent.               
-                sys.putEvents(att, mevs); // Put events back into ET system.
-                System.out.println("put event of size " + mevs[0].getLength());
-                ++eventCount;
+                
+                // Write EVIO event to EtEvent's buffer.
+                ByteBuffer buf = mevs[0].getDataBuffer();                
+                EventWriter writer = new EventWriter(buf, 100000, 100, null, null);
+                writer.writeEvent(event);
+                writer.close();                
+                mevs[0].setLength(buf.position());
+                
+                // Put events onto ET ring.
+                sys.putEvents(att, mevs);
+                
+                // Break if no more events.
+                if (reader.getNumEventsRemaining() == 0)
+                    break;
+                
+                // Get next event.
+                event = reader.parseNextEvent();                                                              
             }
-            System.out.println("put " + eventCount + " events onto ET server");
 
             // Cleanup.
             sys.close();

hps-java/src/test/java/org/lcsim/hps/evio
RawTrackerHitToEvio4Converter.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- RawTrackerHitToEvio4Converter.java	9 Mar 2012 23:33:51 -0000	1.5
+++ RawTrackerHitToEvio4Converter.java	12 Mar 2012 17:47:13 -0000	1.6
@@ -24,7 +24,7 @@
  * and compares the two to make sure they match.
  * 
  * @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: RawTrackerHitToEvio4Converter.java,v 1.5 2012/03/09 23:33:51 jeremy Exp $
+ * @version $Id: RawTrackerHitToEvio4Converter.java,v 1.6 2012/03/12 17:47:13 jeremy Exp $
  */
 public class RawTrackerHitToEvio4Converter extends Driver {
     
@@ -121,15 +121,14 @@
         CompositeTester.printCompositeDataObject(cdata);                
         EvioEvent ev = new EvioEvent(0, DataType.COMPOSITE, 0);
         BaseStructureHeader header = ev.getHeader();
-        header.setTag(0xF); // composite flag (right???)
+        header.setTag(0xF); // Needed???
         header.setNumber(1);
-        header.setDataType(DataType.COMPOSITE); // redundant???
+        header.setDataType(DataType.COMPOSITE);
         try {
             ev.appendCompositeData(cdata);
             ev.setAllHeaderLengths();
             writer.writeEvent(ev);
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }        
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