5 modified files
hps-java/scripts
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
hps-java/scripts
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
hps-java/src/main/java/org/lcsim/hps/monitoring
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.
hps-java/src/main/java/org/lcsim/hps/evio
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));
}
}
hps-java/src/main/java/org/lcsim/hps/evio
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);
+ }
+ }
}
CVSspam 0.2.12