Print

Print


Commit in hps-java/src/main/java/org/lcsim/hps/evio on MAIN
DummyEventBuilder.java+8-11.2 -> 1.3
TestRunEvioToLcio.java+17-171.20 -> 1.21
LCSimTestRunEventBuilder.java+52-271.20 -> 1.21
LCSimEventBuilder.java+19-51.4 -> 1.5
EventConstants.java+121.15 -> 1.16
+108-50
5 modified files
set run number and timestamp for LCSim events

hps-java/src/main/java/org/lcsim/hps/evio
DummyEventBuilder.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- DummyEventBuilder.java	26 Apr 2012 21:16:50 -0000	1.2
+++ DummyEventBuilder.java	1 Sep 2012 00:15:15 -0000	1.3
@@ -11,7 +11,7 @@
 
 /**
  * @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: DummyEventBuilder.java,v 1.2 2012/04/26 21:16:50 meeg Exp $
+ * @version $Id: DummyEventBuilder.java,v 1.3 2012/09/01 00:15:15 meeg Exp $
  */
 public class DummyEventBuilder implements LCSimEventBuilder {
 
@@ -29,16 +29,23 @@
         cond.registerConditionsConverter(new DummyConditionsConverter(detector));
     }
     
+    @Override
     public EventHeader makeLCSimEvent(EvioEvent evioEvent) {
         return new BaseLCSimEvent(0, evioEvent.getHeader().getNumber(), dummyName);
     }
 
+    @Override
     public void setDetectorName(String detectorName) {}
 
+    @Override
     public void setDebug(boolean debug) {}
 
 	@Override
 	public boolean isPhysicsEvent(EvioEvent evioEvent) {
 		return true;
 	}
+
+    @Override
+    public void readEvioEvent(EvioEvent evioEvent) {
+    }
 }
\ No newline at end of file

hps-java/src/main/java/org/lcsim/hps/evio
TestRunEvioToLcio.java 1.20 -> 1.21
diff -u -r1.20 -r1.21
--- TestRunEvioToLcio.java	24 Aug 2012 22:37:19 -0000	1.20
+++ TestRunEvioToLcio.java	1 Sep 2012 00:15:15 -0000	1.21
@@ -4,6 +4,8 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.CommandLineParser;
 import org.apache.commons.cli.HelpFormatter;
@@ -184,7 +186,7 @@
             }
 
             boolean firstEvent = true;
-            int time = 0;
+            long time = 0; //in ms
 
             // Loop over EVIO events, build LCSim events, process them, and then
             // write events to disk.
@@ -201,38 +203,37 @@
                         try {
                             reader.parseEvent(evioEvent);
                         } catch (Exception e) {
-                            e.printStackTrace();
+                            Logger.getLogger(TestRunEvioToLcio.class.getName()).log(Level.SEVERE, null, e);
                             continue eventLoop;
                         }
                     }
+                    //let event builder check for run information
+                    eventBuilder.readEvioEvent(evioEvent);
                     // Handlers for different event types.
                     if (EventConstants.isPreStartEvent(evioEvent)) {
                         int[] data = evioEvent.getIntData();
                         int seconds = data[0];
                         int runNumber = data[1];
-                        System.out.println("Prestart event time: " + seconds + " - " + new Date(((long) seconds) * 1000));
                         calibListener.prestart(seconds, runNumber);
                     } else if (EventConstants.isEndEvent(evioEvent)) {
                         int[] data = evioEvent.getIntData();
                         int seconds = data[0];
                         int nevents = data[2];
-                        System.out.println("End event time: " + seconds + " - " + new Date(((long) seconds) * 1000));
                         calibListener.endRun(seconds, nevents);
                     } else if (eventBuilder.isPhysicsEvent(evioEvent)) {
                         EventHeader lcioEvent = eventBuilder.makeLCSimEvent(evioEvent);
                         if (runControl == null || runControl.process(lcioEvent)) {
+                            time = (lcioEvent.getTimeStamp() / 1000000);
+
+                            if (firstEvent) {
+                                System.out.println("First physics event time: " + time / 1000 + " - " + new Date(time));
+                                firstEvent = false;
+                            }
 //                            if (lcioEvent.hasCollection(BaseRawCalorimeterHit.class, "EcalReadoutHits") && !lcioEvent.get(BaseRawCalorimeterHit.class, "EcalReadoutHits").isEmpty()) {
 //                                continue;
 //                            }
-                            if (lcioEvent.hasCollection(TriggerData.class, "TriggerBank")) {
-                                List<TriggerData> triggerList = lcioEvent.get(TriggerData.class, "TriggerBank");
-                                if (!triggerList.isEmpty()) {
-                                    time = triggerList.get(0).getTime();
-                                    if (firstEvent) {
-                                        System.out.println("First physics event time: " + time + " - " + new Date(((long) time) * 1000));
-                                        firstEvent = false;
-                                    }
-                                }
+//                            if (lcioEvent.hasCollection(TriggerData.class, "TriggerBank")) {
+//                                List<TriggerData> triggerList = lcioEvent.get(TriggerData.class, "TriggerBank");
 //                                if (!triggerList.isEmpty()) {
 //                                    TriggerData triggerData = triggerList.get(0);
 //
@@ -246,7 +247,7 @@
 //                                        continue;
 //                                    }
 //                                }
-                            }
+//                            }
                             jobManager.processEvent(lcioEvent);
                             if (writer != null) {
                                 writer.write(lcioEvent);
@@ -256,7 +257,7 @@
                     }
                 } catch (Exception e) {
                     // Catch all event processing errors and continue.
-                    e.printStackTrace();
+                    Logger.getLogger(TestRunEvioToLcio.class.getName()).log(Level.SEVERE, null, e);
                     continue;
                 } finally {
                     if (sleepTime > 0) {
@@ -266,11 +267,10 @@
                             throw new RuntimeException(e);
                         }
                     }
-
                 }
                 nEvents++;
             }
-            System.out.println("Last physics event time: " + time + " - " + new Date(((long) time) * 1000));
+            System.out.println("Last physics event time: " + time / 1000 + " - " + new Date(time));
             reader.close();
         }
         System.out.println("No more data");

hps-java/src/main/java/org/lcsim/hps/evio
LCSimTestRunEventBuilder.java 1.20 -> 1.21
diff -u -r1.20 -r1.21
--- LCSimTestRunEventBuilder.java	14 Aug 2012 00:58:03 -0000	1.20
+++ LCSimTestRunEventBuilder.java	1 Sep 2012 00:15:15 -0000	1.21
@@ -1,14 +1,16 @@
 package org.lcsim.hps.evio;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import org.jlab.coda.jevio.BaseStructure;
 import org.jlab.coda.jevio.EvioEvent;
 import org.jlab.coda.jevio.EvioException;
 import org.lcsim.event.EventHeader;
 import org.lcsim.event.base.BaseLCSimEvent;
 import org.lcsim.geometry.Detector;
-//import org.lcsim.geometry.subdetector.HPSTracker;
 import org.lcsim.util.loop.LCSimConditionsManagerImplementation;
 
 /**
@@ -16,8 +18,7 @@
  *
  * @author Sho Uemura <[log in to unmask]>
  * @author Jeremy McCormick <[log in to unmask]>
- * @version $Id: LCSimTestRunEventBuilder.java,v 1.12 2012/04/25 05:02:21
- * omoreno Exp $
+ * @version $Id: LCSimTestRunEventBuilder.java,v 1.21 2012/09/01 00:15:15 meeg Exp $
  */
 public class LCSimTestRunEventBuilder implements LCSimEventBuilder {
 
@@ -29,6 +30,8 @@
     private boolean debug = false;
     ECalEvioReader ecalReader = null;
     SVTEvioReader_RTH svtReader = null;
+    private int run = 0; //current run number, taken from prestart and end events
+    private long time = 0; //most recent event time (ns), taken from prestart and end events, and trigger banks (if any)
 
     public LCSimTestRunEventBuilder() {
         LCSimConditionsManagerImplementation.register();
@@ -37,12 +40,14 @@
         svtReader = new SVTEvioReader_RTH();
     }
 
+    @Override
     public void setDetectorName(String detectorName) {
         // Make a dummy event to setup the conditions system.
         EventHeader dummyEvent = new BaseLCSimEvent(0, 0, detectorName);
         detector = dummyEvent.getDetector();
     }
 
+    @Override
     public void setDebug(boolean debug) {
         this.debug = debug;
         ecalReader.setDebug(debug);
@@ -52,22 +57,41 @@
         ecalReader.setHitCollectionName(ecalHitCollectionName);
     }
 
-//    public void setTrackerName(String trackerName) {
-//        this.trackerName = trackerName;
-//    }
-//
-//    public String getTrackerReadoutName() {
-//        return detector.getSubdetector(trackerName).getReadout().getName();
-//    }
-//    public void setEcalName(String ecalName) {
-//        ecalReader.setEcalName(ecalName);
-//    }
-//    public Detector getDetector() {
-//        return detector;
-//    }
-    public EventHeader makeLCSimEvent(EvioEvent evioEvent) throws EvioException {
+    @Override
+    public void readEvioEvent(EvioEvent evioEvent) {
+        if (EventConstants.isSyncEvent(evioEvent)) {
+            int[] data = evioEvent.getIntData();
+            int seconds = data[0];
+            System.out.println("Sync event: time " + seconds + " - " + new Date(((long) seconds) * 1000) + ", event count since last sync " + data[1] + ", event count so far " + data[2] + ", status " + data[3]);
+        } else if (EventConstants.isPreStartEvent(evioEvent)) {
+            int[] data = evioEvent.getIntData();
+            int seconds = data[0];
+            time = ((long) seconds) * 1000000000;
+            run = data[1];
+            System.out.println("Prestart event: time " + seconds + " - " + new Date(((long) seconds) * 1000) + ", run " + run + ", run type " + data[2]);
+        } else if (EventConstants.isGoEvent(evioEvent)) {
+            int[] data = evioEvent.getIntData();
+            int seconds = data[0];
+            time = ((long) seconds) * 1000000000;
+            System.out.println("Go event: time " + seconds + " - " + new Date(((long) seconds) * 1000) + ", event count so far " + data[2]);
+        } else if (EventConstants.isPauseEvent(evioEvent)) {
+            int[] data = evioEvent.getIntData();
+            int seconds = data[0];
+            time = ((long) seconds) * 1000000000;
+            System.out.println("Pause event: time " + seconds + " - " + new Date(((long) seconds) * 1000) + ", event count so far " + data[2]);
+        } else if (EventConstants.isEndEvent(evioEvent)) {
+            int[] data = evioEvent.getIntData();
+            int seconds = data[0];
+            time = ((long) seconds) * 1000000000;
+            run = 0;
+            System.out.println("End event: time " + seconds + " - " + new Date(((long) seconds) * 1000) + ", event count " + data[2]);
+        }
+    }
+
+    @Override
+    public EventHeader makeLCSimEvent(EvioEvent evioEvent) {
         if (!isPhysicsEvent(evioEvent)) {
-            throw new EvioException("Not a physics event: event tag " + evioEvent.getHeader().getTag());
+            throw new RuntimeException("Not a physics event: event tag " + evioEvent.getHeader().getTag());
         }
 
         // Create a new LCSimEvent.
@@ -77,14 +101,14 @@
         try {
             ecalReader.makeHits(evioEvent, lcsimEvent);
         } catch (Exception e) {
-            e.printStackTrace();
+            Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, e);
         }
 
         // Make SVT RawTrackerHits
         try {
             svtReader.makeHits(evioEvent, lcsimEvent);
         } catch (Exception e) {
-            e.printStackTrace();
+            Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, e);
         }
 
         return lcsimEvent;
@@ -95,7 +119,7 @@
         return (evioEvent.getHeader().getTag() == EventConstants.PHYSICS_EVENT_TAG);
     }
 
-    public EventHeader getEventData(EvioEvent evioEvent) {
+    private EventHeader getEventData(EvioEvent evioEvent) {
         int[] eventID = null;
         //array of length 3: {event number, trigger code, readout status}
 
@@ -110,7 +134,9 @@
                     if (bank.getChildCount() > 0) {
                         for (BaseStructure slotBank : bank.getChildren()) {
                             if (slotBank.getHeader().getTag() == EventConstants.TRIGGER_BANK_TAG) {
-                                triggerList.add(new TriggerData(slotBank.getIntData()));
+                                TriggerData triggerData = new TriggerData(slotBank.getIntData());
+                                time = ((long) triggerData.getTime()) * 1000000000;
+                                triggerList.add(triggerData);
                             }
                         }
                     }
@@ -135,14 +161,13 @@
 
         if (triggerList.isEmpty()) {
             System.out.println("No trigger bank found");
+        } else if (triggerList.size() > 1) {
+            System.out.println("Found multiple trigger banks");
         }
+
         // Create a new LCSimEvent.
         EventHeader lcsimEvent = null;
-        if (triggerList.isEmpty() || triggerList.get(0).getTime() == 0) {
-            lcsimEvent = new BaseLCSimEvent(0, eventID[0], detector.getDetectorName());
-        } else {
-            lcsimEvent = new BaseLCSimEvent(0, eventID[0], detector.getDetectorName(), ((long) triggerList.get(0).getTime()) * 1000000000);
-        }
+        lcsimEvent = new BaseLCSimEvent(run, eventID[0], detector.getDetectorName(), time);
 
         lcsimEvent.put("TriggerBank", triggerList, TriggerData.class, 0);
         return lcsimEvent;

hps-java/src/main/java/org/lcsim/hps/evio
LCSimEventBuilder.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- LCSimEventBuilder.java	26 Apr 2012 21:16:50 -0000	1.4
+++ LCSimEventBuilder.java	1 Sep 2012 00:15:15 -0000	1.5
@@ -1,12 +1,26 @@
 package org.lcsim.hps.evio;
 
 import org.jlab.coda.jevio.EvioEvent;
-import org.jlab.coda.jevio.EvioException;
 import org.lcsim.event.EventHeader;
 
 public interface LCSimEventBuilder {
-	EventHeader makeLCSimEvent(EvioEvent evioEvent) throws EvioException;
-	boolean isPhysicsEvent(EvioEvent evioEvent);
-	void setDetectorName(String detectorName);
-	void setDebug(boolean debug);
+
+    /**
+     * Read any run information out of an EVIO event (not necessarily a physics event).
+     * @param evioEvent
+     */
+    void readEvioEvent(EvioEvent evioEvent);
+
+    /**
+     * Make the LCSim event.
+     * @param evioEvent - must be a physics event
+     * @return LCSim event
+     */
+    EventHeader makeLCSimEvent(EvioEvent evioEvent);
+
+    boolean isPhysicsEvent(EvioEvent evioEvent);
+
+    void setDetectorName(String detectorName);
+
+    void setDebug(boolean debug);
 }

hps-java/src/main/java/org/lcsim/hps/evio
EventConstants.java 1.15 -> 1.16
diff -u -r1.15 -r1.16
--- EventConstants.java	27 Aug 2012 22:42:20 -0000	1.15
+++ EventConstants.java	1 Sep 2012 00:15:15 -0000	1.16
@@ -43,6 +43,10 @@
     public static final int SVT_TOTAL_NUMBER_FPGAS = 8;
     public static final int MC_TIME = 2019686400; //Unix time (in seconds) used for Monte Carlo data - 1/1/2034
 
+    public static boolean isSyncEvent(EvioEvent event) {
+        return event.getHeader().getTag() == EventConstants.SYNC_EVENT_TAG;
+    }
+
     /**
      * Check if this event is a Pre Start Event.
      *
@@ -53,6 +57,14 @@
         return event.getHeader().getTag() == EventConstants.PRESTART_EVENT_TAG;
     }
 
+    public static boolean isGoEvent(EvioEvent event) {
+        return event.getHeader().getTag() == EventConstants.GO_EVENT_TAG;
+    }
+
+    public static boolean isPauseEvent(EvioEvent event) {
+        return event.getHeader().getTag() == EventConstants.PAUSE_EVENT_TAG;
+    }
+
     /**
      * Check if this event is an End Event.
      *
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