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);
+ }
+
+ }
+}
|