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