Author: [log in to unmask]
Date: Thu Mar 26 21:03:15 2015
New Revision: 2586
Log:
add stuff to example driver, put back a workaround I removed in ECalEvioReader
Modified:
java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java
java/trunk/evio/src/main/java/org/hps/evio/LCSimEngRunEventBuilder.java
java/trunk/users/src/main/java/org/hps/users/meeg/TDCPrintDriver.java
Modified: java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java
=============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java (original)
+++ java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java Thu Mar 26 21:03:15 2015
@@ -7,7 +7,6 @@
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
-
import org.hps.conditions.database.DatabaseConditionsManager;
import org.hps.conditions.ecal.EcalChannel;
import org.hps.conditions.ecal.EcalChannel.DaqId;
@@ -22,10 +21,12 @@
import org.jlab.coda.jevio.EvioEvent;
import org.jlab.coda.jevio.EvioException;
import org.lcsim.detector.identifier.IIdentifierHelper;
+import org.lcsim.detector.identifier.Identifier;
import org.lcsim.event.EventHeader;
import org.lcsim.event.LCRelation;
import org.lcsim.event.RawCalorimeterHit;
import org.lcsim.event.RawTrackerHit;
+import org.lcsim.event.SimTrackerHit;
import org.lcsim.event.base.BaseLCRelation;
import org.lcsim.event.base.BaseRawCalorimeterHit;
import org.lcsim.event.base.BaseRawTrackerHit;
@@ -202,12 +203,17 @@
return foundHits;
}
- private static BaseRawTrackerHit makeECalRawHit(int time, long id, CompositeData cdata, int nSamples) {
+ private BaseRawTrackerHit makeECalRawHit(int time, long id, CompositeData cdata, int nSamples) {
short[] adcValues = new short[nSamples];
for (int i = 0; i < nSamples; i++) {
adcValues[i] = cdata.getShort();
}
- return new BaseRawTrackerHit(id, time, adcValues);
+ return new BaseRawTrackerHit( // need to use the complicated constructor, simhit collection can't be null
+ time,
+ id,
+ adcValues,
+ new ArrayList<SimTrackerHit>(),
+ subDetector.getDetectorElement().findDetectorElement(new Identifier(id)).get(0));
}
private static FADCGenericHit makeGenericRawHit(int mode, int crate, short slot, short channel, CompositeData cdata, int nSamples) {
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 21:03:15 2015
@@ -51,6 +51,7 @@
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[]{0x2d, 0xe107}));
intBanks.add(new IntBankDefinition(TDCData.class, new int[]{0x3a, 0xe107}));
// ecalReader = new ECalEvioReader(0x25, 0x27);
triggerConfigReader = new TriggerConfigEvioReader();
Modified: java/trunk/users/src/main/java/org/hps/users/meeg/TDCPrintDriver.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/meeg/TDCPrintDriver.java (original)
+++ java/trunk/users/src/main/java/org/hps/users/meeg/TDCPrintDriver.java Thu Mar 26 21:03:15 2015
@@ -1,12 +1,17 @@
package org.hps.users.meeg;
+import java.util.ArrayList;
import java.util.List;
+import org.hps.conditions.database.DatabaseConditionsManager;
+import org.hps.conditions.ecal.EcalConditions;
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.event.RawTrackerHit;
+import org.lcsim.geometry.Detector;
import org.lcsim.util.Driver;
/**
@@ -16,31 +21,67 @@
*/
public class TDCPrintDriver extends Driver {
+ private static EcalConditions ecalConditions = null;
+ private boolean printADC = false;
+
+ public void setPrintADC(boolean printADC) {
+ this.printADC = printADC;
+ }
+
+ protected void detectorChanged(Detector detector) {
+ ecalConditions = DatabaseConditionsManager.getInstance().getEcalConditions();
+ }
+
@Override
protected void process(EventHeader event) {
- TDCData tdcData = null;
+ List<TDCData> allTDCData = new ArrayList<TDCData>();
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));
+ System.out.format("Non-ECal 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]);
+ if (printADC) {
+ for (int i = 0; i < data.length; i++) {
+ System.out.println(data[i]);
+ }
}
+ }
+ }
+
+ if (event.hasCollection(RawTrackerHit.class, "EcalReadoutHits")) {
+ List<RawTrackerHit> rawHits = event.get(RawTrackerHit.class, "EcalReadoutHits");
+ for (RawTrackerHit hit : rawHits) {
+ int crate = ecalConditions.getChannelCollection().findGeometric(hit.getCellID()).getCrate();
+ int slot = ecalConditions.getChannelCollection().findGeometric(hit.getCellID()).getSlot();
+ int channel = ecalConditions.getChannelCollection().findGeometric(hit.getCellID()).getChannel();
+ System.out.format("Raw mode hit, crate %d, slot %d, channel %d, ix %d, iy %d\n", crate, slot, channel, hit.getIdentifierFieldValue("ix"), hit.getIdentifierFieldValue("iy"));
+ short[] data = hit.getADCValues(); //do stuff with data
+ if (printADC) {
+ 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) {
+ TDCData tdcData = null;
if (data instanceof TDCData) {
tdcData = (TDCData) data;
} else if (AbstractIntData.getTag(data) == TDCData.BANK_TAG) {
tdcData = new TDCData(data);
}
+ if (tdcData != null) {
+ allTDCData.add(tdcData);
+ }
}
-
- for (TDCHit hit : tdcData.getHits()) {
- System.out.println(hit);
+ for (TDCData tdcData : allTDCData) {
+ System.out.println("got a TDCData");
+ for (TDCHit hit : tdcData.getHits()) {
+ System.out.println(hit);
+ }
}
}
|