Print

Print


Author: [log in to unmask]
Date: Thu Mar 26 20:10:48 2015
New Revision: 2584

Log:
clean up TDCData, add an example driver

Added:
    java/trunk/users/src/main/java/org/hps/users/meeg/TDCPrintDriver.java
Modified:
    java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/triggerbank/TDCData.java

Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/triggerbank/TDCData.java
 =============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/triggerbank/TDCData.java	(original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/triggerbank/TDCData.java	Thu Mar 26 20:10:48 2015
@@ -5,6 +5,7 @@
 import org.lcsim.event.GenericObject;
 
 /**
+ * Data from CAEN V1190 TDC.
  *
  * @author Sho Uemura <[log in to unmask]>
  * @version $Id: $
@@ -34,10 +35,6 @@
         for (int i = 0; i < bank.length; i++) {
             hits.add(new TDCHit(bank[i]));
         }
-
-        for (TDCHit hit : hits) {
-            System.out.println(hit);
-        }
     }
 
     public List<TDCHit> getHits() {
@@ -46,12 +43,12 @@
 
     public class TDCHit {
 
-        private final int slot, edge, ch, time;
+        private final int slot, edge, channel, time;
 
         public TDCHit(int data) {
             slot = (data >> 27) & 0x1F; // bits 31:27
             edge = (data >> 26) & 1; // bits 26:26
-            ch = (data >> 19) & 0x7F; // bits 25:19
+            channel = (data >> 19) & 0x7F; // bits 25:19
             time = data & 0x7FFFF; // bits 18:00
         }
 
@@ -63,8 +60,8 @@
             return edge;
         }
 
-        public int getCh() {
-            return ch;
+        public int getChannel() {
+            return channel;
         }
 
         public int getTime() {
@@ -73,7 +70,7 @@
 
         @Override
         public String toString() {
-            return String.format("slot %d, edge %d, ch %d, time %d", slot, edge, ch, time);
+            return String.format("slot %d, edge %d, ch %d, time %d", slot, edge, channel, time);
         }
     }
 }

Added: java/trunk/users/src/main/java/org/hps/users/meeg/TDCPrintDriver.java
 =============================================================================
--- java/trunk/users/src/main/java/org/hps/users/meeg/TDCPrintDriver.java	(added)
+++ java/trunk/users/src/main/java/org/hps/users/meeg/TDCPrintDriver.java	Thu Mar 26 20:10:48 2015
@@ -0,0 +1,47 @@
+package org.hps.users.meeg;
+
+import java.util.List;
+import org.hps.recon.ecal.FADCGenericHit;
+import org.hps.recon.ecal.triggerbank.AbstractIntData;
+import org.hps.recon.ecal.triggerbank.TDCData;
+import org.hps.recon.ecal.triggerbank.TDCData.TDCHit;
+import org.lcsim.event.EventHeader;
+import org.lcsim.event.GenericObject;
+import org.lcsim.util.Driver;
+
+/**
+ *
+ * @author Sho Uemura <[log in to unmask]>
+ * @version $Id: $
+ */
+public class TDCPrintDriver extends Driver {
+
+    @Override
+    protected void process(EventHeader event) {
+        TDCData tdcData = null;
+        List<GenericObject> objects = event.get(GenericObject.class, "FADCGenericHits");
+        for (GenericObject object : objects) {
+            if (FADCGenericHit.getReadoutMode(object) == 1) { // EventConstants.ECAL_WINDOW_MODE
+                System.out.format("Raw mode hit, crate %d, slot %d, channel %d\n", FADCGenericHit.getCrate(object), FADCGenericHit.getSlot(object), FADCGenericHit.getChannel(object));
+                int[] data = FADCGenericHit.getData(object); //do stuff with data 
+                for (int i = 0; i < data.length; i++) {
+                    System.out.println(data[i]);
+                }
+            }
+        }
+
+        List<GenericObject> intDataCollection = event.get(GenericObject.class, "TriggerBank");
+        for (GenericObject data : intDataCollection) {
+            if (data instanceof TDCData) {
+                tdcData = (TDCData) data;
+            } else if (AbstractIntData.getTag(data) == TDCData.BANK_TAG) {
+                tdcData = new TDCData(data);
+            }
+        }
+        
+        for (TDCHit hit : tdcData.getHits()) {
+            System.out.println(hit);
+        }
+
+    }
+}