Author: [log in to unmask]
Date: Thu Mar 26 19:49:06 2015
New Revision: 2582
Log:
add class for TDC data
Added:
java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/triggerbank/TDCData.java
Modified:
java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java
Added: 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 (added)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/triggerbank/TDCData.java Thu Mar 26 19:49:06 2015
@@ -0,0 +1,79 @@
+package org.hps.recon.ecal.triggerbank;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.lcsim.event.GenericObject;
+
+/**
+ *
+ * @author Sho Uemura <[log in to unmask]>
+ * @version $Id: $
+ */
+public class TDCData extends AbstractIntData {
+
+ public static final int BANK_TAG = 0xe107;
+ private final List<TDCHit> hits = new ArrayList<TDCHit>();
+
+ public TDCData(int[] bank) {
+ super(bank);
+ decodeData();
+ }
+
+ public TDCData(GenericObject tiData) {
+ super(tiData, BANK_TAG);
+ decodeData();
+ }
+
+ @Override
+ public int getTag() {
+ return BANK_TAG;
+ }
+
+ @Override
+ protected final void decodeData() {
+ 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() {
+ return hits;
+ }
+
+ public class TDCHit {
+
+ private final int slot, edge, ch, 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
+ time = data & 0x7FFFF; // bits 18:00
+ }
+
+ public int getSlot() {
+ return slot;
+ }
+
+ public int getEdge() {
+ return edge;
+ }
+
+ public int getCh() {
+ return ch;
+ }
+
+ public int getTime() {
+ return time;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("slot %d, edge %d, ch %d, time %d", slot, edge, ch, time);
+ }
+ }
+}
Modified: java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java
=============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java (original)
+++ java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java Thu Mar 26 19:49:06 2015
@@ -8,6 +8,7 @@
import org.hps.recon.ecal.triggerbank.AbstractIntData;
import org.hps.recon.ecal.triggerbank.SSPData;
import org.hps.recon.ecal.triggerbank.TIData;
+import org.hps.recon.ecal.triggerbank.TDCData;
import org.hps.record.epics.EpicsEvioProcessor;
import org.hps.record.epics.EpicsScalarData;
import org.hps.record.evio.EvioEventUtilities;
@@ -44,12 +45,14 @@
ecalReader.setTopBankTag(0x25);
ecalReader.setBotBankTag(0x27);
ecalReader.setRfBankTag(0x2e);
+ ecalReader.setDebug(true);
svtReader = new SvtEvioReader();
sspCrateBankTag = 0x2E; // A.C. modification after Sergey's confirmation
sspBankTag = 0xe10c;
intBanks = new ArrayList<IntBankDefinition>();
intBanks.add(new IntBankDefinition(SSPData.class, new int[]{sspCrateBankTag, sspBankTag}));
intBanks.add(new IntBankDefinition(TIData.class, new int[]{sspCrateBankTag, 0xe10a}));
+ intBanks.add(new IntBankDefinition(TDCData.class, new int[]{0x3a, 0xe107}));
// ecalReader = new ECalEvioReader(0x25, 0x27);
triggerConfigReader = new TriggerConfigEvioReader();
}
|