Commit in hps-java on MAIN | |||
scripts/et_monitoring_app.sh | +1 | -1 | 1.4 -> 1.5 |
/et_evio_file_producer_test.sh | +1 | -1 | 1.7 -> 1.8 |
src/main/java/org/lcsim/hps/monitoring/MonitoringExample.java | +2 | -1 | 1.5 -> 1.6 |
src/main/java/org/lcsim/hps/evio/LCSimTestRunEventBuilder.java | +7 | -4 | 1.1 -> 1.2 |
/EvioFileProducer.java | +187 | -194 | 1.8 -> 1.9 |
+198 | -201 |
fixed endianness of EvioFileProducer
diff -u -r1.4 -r1.5 --- et_monitoring_app.sh 27 Mar 2012 03:18:21 -0000 1.4 +++ et_monitoring_app.sh 2 Apr 2012 18:59:12 -0000 1.5 @@ -1,7 +1,7 @@
#!/bin/sh # Only Linux for now.
-if [ $(uname) == "Linux" ]
+if [ $(uname) = "Linux" ]
then echo "Running on a Linux system. OK." else
diff -u -r1.7 -r1.8 --- et_evio_file_producer_test.sh 25 Mar 2012 08:55:11 -0000 1.7 +++ et_evio_file_producer_test.sh 2 Apr 2012 18:59:12 -0000 1.8 @@ -1,7 +1,7 @@
#!/bin/sh # This stuff only works on Linux due to dependency on a system-dependent JNI lib which doesn't seem to compile on OSX.
-if [ $(uname) == "Linux" ]
+if [ $(uname) = "Linux" ]
then echo "Running on a Linux system. OK." else
diff -u -r1.5 -r1.6 --- MonitoringExample.java 29 Mar 2012 03:52:57 -0000 1.5 +++ MonitoringExample.java 2 Apr 2012 18:59:12 -0000 1.6 @@ -16,6 +16,7 @@
import org.jlab.coda.jevio.EvioReader; import org.lcsim.event.EventHeader; import org.lcsim.hps.evio.LCSimEventBuilder;
+import org.lcsim.hps.evio.LCSimTestRunEventBuilder;
import org.lcsim.hps.monitoring.ConnectionStatusPanel.ConnectionStatus; import org.lcsim.job.JobControlManager; import org.lcsim.util.DriverAdapter;
@@ -98,7 +99,7 @@
// Make the builder for creating LCSim events from EVIO data. String detectorName = jobPanel.getDetectorName();
- LCSimEventBuilder eventBuilder = new LCSimEventBuilder(detectorName);
+ LCSimTestRunEventBuilder eventBuilder = new LCSimTestRunEventBuilder(detectorName);
eventBuilder.setDebug(false); // Start job timer.
diff -u -r1.1 -r1.2 --- LCSimTestRunEventBuilder.java 1 Apr 2012 21:20:56 -0000 1.1 +++ LCSimTestRunEventBuilder.java 2 Apr 2012 18:59:12 -0000 1.2 @@ -30,7 +30,8 @@
/** * Build LCSim events from EVIO data. *
- * @author Jeremy McCormick <[log in to unmask]>
+ * @author Sho Uemura <[log in to unmask]> + * @version $Id: LCSimTestRunEventBuilder.java,v 1.2 2012/04/02 18:59:12 meeg Exp $
* */ public class LCSimTestRunEventBuilder {
@@ -225,7 +226,9 @@
int bankTag = header.getTag(); if (bankTag == MCRawDataToEvio4Converter.ecalBottomBankTag || bankTag == MCRawDataToEvio4Converter.ecalTopBankTag) { if (bank.getChildCount() > 0) {
- System.out.println("ECal bank tag: " + header.getTag() + "; childCount: " + bank.getChildCount());
+ if (debug) { + System.out.println("ECal bank tag: " + header.getTag() + "; childCount: " + bank.getChildCount()); + }
for (BaseStructure slotBank : bank.getChildren()) { CompositeData cdata = null; try {
@@ -276,7 +279,7 @@
if (debug) { System.out.println(" pulseTime=" + pulseTime + "; pulseIntegral=" + pulseIntegral); }
-
+
//TODO: replace this with the real ID translation scheme if (bankTag == MCRawDataToEvio4Converter.ecalTopBankTag) { enc.setValue("iy", slot);
@@ -284,7 +287,7 @@
enc.setValue("iy", -1 * slot); } enc.setValue("ix", channelNumber - EventConstants.ECAL_CHANNEL_OFFSET);
-
+
hits.add(new BaseRawCalorimeterHit(enc.getID(), pulseIntegral, pulseTime)); } }
diff -u -r1.8 -r1.9 --- EvioFileProducer.java 25 Mar 2012 08:55:11 -0000 1.8 +++ EvioFileProducer.java 2 Apr 2012 18:59:12 -0000 1.9 @@ -2,6 +2,7 @@
import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
import org.jlab.coda.et.EtAttachment; import org.jlab.coda.et.EtConstants; import org.jlab.coda.et.EtEvent;
@@ -17,198 +18,190 @@
// TODO Add option to set number of events in put array. // TODO Add option for multiple EVIO input files. public class EvioFileProducer {
- - EvioReader reader; - ByteBuffer byteBuffer; - String evioFileName; - String etName, host; - - int port = EtConstants.serverPort; - int group = 1; - int size = 10000; // Default event size. - int delay = 0; - - EvioFileProducer() - {} - - private static void usage() { - System.out.println("\nUsage: java Producer -f <et name> -e <evio file> [-p <server port>] [-host <host>]" + - " [-d <delay in millisec>] [-g <group #>]\n\n" + - " -f ET system's name\n" + - " -s size in bytes for requested events\n" + - " -p port number for a udp broadcast\n" + - " -g group number of new events to get\n" + - " -host host the ET system resides on (defaults to anywhere)\n\n" + - " This consumer works by making a connection to the\n" + - " ET system's tcp server port.\n"); - System.exit(1); - } - - public void copyToEtEvent(EtEvent event) { - event.getDataBuffer().put(byteBuffer); - } - - public static void main(String[] args) { - (new EvioFileProducer()).doMain(args); // call wrapper method - } - - public void doMain(String[] args) { - try { - for (int i = 0; i < args.length; i++) { - if (args[i].equalsIgnoreCase("-e")) { - evioFileName = new String(args[++i]); - } - else if (args[i].equalsIgnoreCase("-f")) { - etName = args[++i]; - } - else if (args[i].equalsIgnoreCase("-host")) { - host = args[++i]; - } - else if (args[i].equalsIgnoreCase("-p")) { - try { - port = Integer.parseInt(args[++i]); - if ((port < 1024) || (port > 65535)) { - System.out.println("Port number must be between 1024 and 65535."); - usage(); - return; - } - } - catch (NumberFormatException ex) { - System.out.println("Did not specify a proper port number."); - usage(); - return; - } - } - else if (args[i].equalsIgnoreCase("-s")) { - try { - size = Integer.parseInt(args[++i]); - if (size < 1) { - System.out.println("Size needs to be positive int."); - usage(); - return; - } - } - catch (NumberFormatException ex) { - System.out.println("Did not specify a proper size."); - usage(); - return; - } - } - else if (args[i].equalsIgnoreCase("-g")) { - try { - group = Integer.parseInt(args[++i]); - if ((group < 1) || (group > 10)) { - System.out.println("Group number must be between 0 and 10."); - usage(); - return; - } - } - catch (NumberFormatException ex) { - System.out.println("Did not specify a proper group number."); - usage(); - return; - } - } - else if (args[i].equalsIgnoreCase("-d")) { - try { - delay = Integer.parseInt(args[++i]); - if (delay < 1) { - System.out.println("delay must be > 0."); - usage(); - return; - } - } - catch (NumberFormatException ex) { - System.out.println("Did not specify a proper delay."); - usage(); - return; - } - } - else { - usage(); - return; - } - } - - if (host == null) { - host = EtConstants.hostAnywhere; - } - - if (etName == null) { - usage(); - return; - } - - // Setup ET system with the command line config. - EtSystemOpenConfig config = new EtSystemOpenConfig(etName, host, port); - EtSystem sys = new EtSystem(config, EtConstants.debugInfo); - sys.open(); - EtStation gc = sys.stationNameToObject("GRAND_CENTRAL"); - EtAttachment att = sys.attach(gc); - - // array of events - EtEvent[] mevs; - - // Open EVIO reader. - reader = new EvioReader(evioFileName); - - // Print number of events. - System.out.println("EVIO file opened with " + reader.getEventCount() + " events"); - - // Press ENTER to start producing events. - System.out.println("Press ENTER to start producing events..."); - System.console().readLine(); - - // Loop until event source is exhausted. - //int eventCount = 0; - EvioEvent event = reader.parseNextEvent(); - while (true) { - - mevs = sys.newEvents( - att, // attachment - Mode.SLEEP, // wait mode - false, // create a buffer - 0, // delay - 1, // number of events - size, // size of event but overwritten later - group); // group number; default value is arbitrary - - if (delay > 0) Thread.sleep(delay); - - // Write EVIO event to EtEvent's buffer. - ByteBuffer buf = mevs[0].getDataBuffer(); - // FIXME Need new EventWriter every time? - EventWriter writer = new EventWriter(buf, 100000, 100, null, null); - writer.writeEvent(event); - try { - writer.close(); - } catch (Exception x) { - System.out.println("caught exception while closing writer"); - System.out.println(x.getLocalizedMessage()); - } - mevs[0].setLength(buf.position()); - - // Put events onto ET ring. - sys.putEvents(att, mevs); - - // Break if no more events. - if (reader.getNumEventsRemaining() == 0) - break; - - //System.out.println("Wrote event #" + eventCount + " to ET"); - //System.out.println("-------------------------------"); - //++eventCount; - - // Get next event. - event = reader.parseNextEvent(); - } - - // Cleanup. - sys.close(); - reader.close(); - } - catch (Exception e) { - throw new RuntimeException(e); - } - }
+ + EvioReader reader; + ByteBuffer byteBuffer; + String evioFileName; + String etName, host; + int port = EtConstants.serverPort; + int group = 1; + int size = 10000; // Default event size. + int delay = 0; + + EvioFileProducer() { + } + + private static void usage() { + System.out.println("\nUsage: java Producer -f <et name> -e <evio file> [-p <server port>] [-host <host>]" + + " [-d <delay in millisec>] [-g <group #>]\n\n" + + " -f ET system's name\n" + + " -s size in bytes for requested events\n" + + " -p port number for a udp broadcast\n" + + " -g group number of new events to get\n" + + " -host host the ET system resides on (defaults to anywhere)\n\n" + + " This consumer works by making a connection to the\n" + + " ET system's tcp server port.\n"); + System.exit(1); + } + + public void copyToEtEvent(EtEvent event) { + event.getDataBuffer().put(byteBuffer); + } + + public static void main(String[] args) { + (new EvioFileProducer()).doMain(args); // call wrapper method + } + + public void doMain(String[] args) { + try { + for (int i = 0; i < args.length; i++) { + if (args[i].equalsIgnoreCase("-e")) { + evioFileName = new String(args[++i]); + } else if (args[i].equalsIgnoreCase("-f")) { + etName = args[++i]; + } else if (args[i].equalsIgnoreCase("-host")) { + host = args[++i]; + } else if (args[i].equalsIgnoreCase("-p")) { + try { + port = Integer.parseInt(args[++i]); + if ((port < 1024) || (port > 65535)) { + System.out.println("Port number must be between 1024 and 65535."); + usage(); + return; + } + } catch (NumberFormatException ex) { + System.out.println("Did not specify a proper port number."); + usage(); + return; + } + } else if (args[i].equalsIgnoreCase("-s")) { + try { + size = Integer.parseInt(args[++i]); + if (size < 1) { + System.out.println("Size needs to be positive int."); + usage(); + return; + } + } catch (NumberFormatException ex) { + System.out.println("Did not specify a proper size."); + usage(); + return; + } + } else if (args[i].equalsIgnoreCase("-g")) { + try { + group = Integer.parseInt(args[++i]); + if ((group < 1) || (group > 10)) { + System.out.println("Group number must be between 0 and 10."); + usage(); + return; + } + } catch (NumberFormatException ex) { + System.out.println("Did not specify a proper group number."); + usage(); + return; + } + } else if (args[i].equalsIgnoreCase("-d")) { + try { + delay = Integer.parseInt(args[++i]); + if (delay < 1) { + System.out.println("delay must be > 0."); + usage(); + return; + } + } catch (NumberFormatException ex) { + System.out.println("Did not specify a proper delay."); + usage(); + return; + } + } else { + usage(); + return; + } + } + + if (host == null) { + host = EtConstants.hostAnywhere; + } + + if (etName == null) { + usage(); + return; + } + + // Setup ET system with the command line config. + EtSystemOpenConfig config = new EtSystemOpenConfig(etName, host, port); + EtSystem sys = new EtSystem(config, EtConstants.debugInfo); + sys.open(); + EtStation gc = sys.stationNameToObject("GRAND_CENTRAL"); + EtAttachment att = sys.attach(gc); + + // array of events + EtEvent[] mevs; + + // Open EVIO reader. + reader = new EvioReader(evioFileName); + + // Print number of events. + System.out.println("EVIO file opened with " + reader.getEventCount() + " events"); + + // Press ENTER to start producing events. + System.out.println("Press ENTER to start producing events..."); + System.console().readLine(); + + // Loop until event source is exhausted. + //int eventCount = 0; + EvioEvent event = reader.parseNextEvent(); + while (true) { + + mevs = sys.newEvents( + att, // attachment + Mode.SLEEP, // wait mode + false, // create a buffer + 0, // delay + 1, // number of events + size, // size of event but overwritten later + group); // group number; default value is arbitrary + + if (delay > 0) { + Thread.sleep(delay); + } + + // Write EVIO event to EtEvent's buffer. + ByteBuffer buf = mevs[0].getDataBuffer(); + buf.order(ByteOrder.nativeOrder()); + // FIXME Need new EventWriter every time? + EventWriter writer = new EventWriter(buf, 100000, 100, null, null); + writer.writeEvent(event); + try { + writer.close(); + } catch (Exception x) { + System.out.println("caught exception while closing writer"); + System.out.println(x.getLocalizedMessage()); + } + mevs[0].setLength(buf.position()); + mevs[0].setByteOrder(ByteOrder.nativeOrder()); + + // Put events onto ET ring. + sys.putEvents(att, mevs); + + // Break if no more events. + if (reader.getNumEventsRemaining() == 0) { + break; + } + + //System.out.println("Wrote event #" + eventCount + " to ET"); + //System.out.println("-------------------------------"); + //++eventCount; + + // Get next event. + event = reader.parseNextEvent(); + } + + // Cleanup. + sys.close(); + reader.close(); + } catch (Exception e) { + throw new RuntimeException(e); + } + }
}
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