Author: [log in to unmask]
Date: Tue Dec 9 16:44:29 2014
New Revision: 1666
Log:
remove usage of HPSRawCalorimeterHit in readout simulation, make ECalEvioReader use BaseRawCalorimeterHit for mode 3
Modified:
java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCEcalReadoutDriver.java
java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HPSRawCalorimeterHit.java
java/trunk/evio/src/main/java/org/hps/evio/ECalEvioReader.java
Modified: java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCEcalReadoutDriver.java
=============================================================================
--- java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCEcalReadoutDriver.java (original)
+++ java/trunk/ecal-readout-sim/src/main/java/org/hps/readout/ecal/FADCEcalReadoutDriver.java Tue Dec 9 16:44:29 2014
@@ -8,6 +8,7 @@
import static org.hps.recon.ecal.ECalUtils.riseTime;
import java.util.ArrayList;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
@@ -20,7 +21,6 @@
import org.hps.conditions.ecal.EcalConditions;
import org.lcsim.conditions.ConditionsManager;
import org.hps.recon.ecal.ECalUtils;
-import org.hps.recon.ecal.HPSRawCalorimeterHit;
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.EventHeader;
import org.lcsim.event.RawCalorimeterHit;
@@ -58,7 +58,7 @@
//buffer for timestamps
private Map<Long, Integer> timeMap = null;
//queue for hits to be output to clusterer
- private PriorityQueue<HPSRawCalorimeterHit> outputQueue = null;
+ private PriorityQueue<RawCalorimeterHit> outputQueue = null;
//length of ring buffer (in readout cycles)
private int bufferLength = 100;
//length of readout pipeline (in readout cycles)
@@ -81,7 +81,7 @@
private int numSamplesAfter = 30;
// private HPSEcalConverter converter = null;
//output buffer for hits
- private LinkedList<HPSRawCalorimeterHit> buffer = new LinkedList<HPSRawCalorimeterHit>();
+ private LinkedList<RawCalorimeterHit> buffer = new LinkedList<RawCalorimeterHit>();
//number of readout periods for which a given hit stays in the buffer
private int coincidenceWindow = 2;
//output collection name for hits read out from trigger
@@ -107,7 +107,7 @@
public FADCEcalReadoutDriver() {
flags = 0;
flags += 1 << LCIOConstants.RCHBIT_TIME; //store timestamp
- hitClass = HPSRawCalorimeterHit.class;
+ hitClass = RawCalorimeterHit.class;
setReadoutPeriod(ecalReadoutPeriod);
// converter = new HPSEcalConverter(null);
}
@@ -269,19 +269,17 @@
sumMap.put(cellID, sum + pipeline.getValue(0));
} else if (timeMap.get(cellID) + delay0 <= readoutCounter) {
// System.out.printf("sum = %f\n", sum);
- outputQueue.add(new HPSRawCalorimeterHit(cellID,
+ outputQueue.add(new BaseRawCalorimeterHit(cellID,
(int) Math.round(sum / scaleFactor),
- 64 * timeMap.get(cellID),
- readoutCounter - timeMap.get(cellID) + 1));
+ 64 * timeMap.get(cellID)));
sumMap.remove(cellID);
}
} else {
if (pedestalSubtractedValue < triggerThreshold || timeMap.get(cellID) + delay0 == readoutCounter) {
// System.out.printf("sum = %f\n",sum);
- outputQueue.add(new HPSRawCalorimeterHit(cellID,
+ outputQueue.add(new BaseRawCalorimeterHit(cellID,
(int) Math.round((sum + pedestalSubtractedValue) / scaleFactor),
- 64 * timeMap.get(cellID),
- readoutCounter - timeMap.get(cellID) + 1));
+ 64 * timeMap.get(cellID)));
sumMap.remove(cellID);
} else {
sumMap.put(cellID, sum + pedestalSubtractedValue);
@@ -468,7 +466,7 @@
//initialize buffers
sumMap = new HashMap<Long, Integer>();
timeMap = new HashMap<Long, Integer>();
- outputQueue = new PriorityQueue(20, new HPSRawCalorimeterHit.TimeComparator());
+ outputQueue = new PriorityQueue(20, new TimeComparator());
resetFADCBuffers();
}
@@ -620,4 +618,12 @@
return ecalConditions.getChannelConstants(ecalConditions.getChannelCollection().findGeometric(cellID));
}
+
+ public static class TimeComparator implements Comparator<RawCalorimeterHit> {
+
+ @Override
+ public int compare(RawCalorimeterHit o1, RawCalorimeterHit o2) {
+ return o1.getTimeStamp() - o2.getTimeStamp();
+ }
+ }
}
Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HPSRawCalorimeterHit.java
=============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HPSRawCalorimeterHit.java (original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/HPSRawCalorimeterHit.java Tue Dec 9 16:44:29 2014
@@ -1,7 +1,5 @@
package org.hps.recon.ecal;
-import java.util.Comparator;
-import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.RawCalorimeterHit;
/**
@@ -17,8 +15,6 @@
int windowSize;
int mode; //A.C. this is the field I use, in case of REAL data, to record which FADC mode was used (ECAL_PULSE_INTEGRAL3_MODE or ECAL_PULSE_INTEGRAL7_MODE)
short amplLow,amplHigh;
-
- CalorimeterHit analogHit = null;
public HPSRawCalorimeterHit(long cellID, int amplitude, int timeStamp, int windowSize) { //A.C. I do not change this, since I did not write it!
this.cellID = cellID;
@@ -72,20 +68,4 @@
public short getAmplHigh(){
return amplHigh;
}
-
- public CalorimeterHit getAnalogHit() {
- return analogHit;
- }
-
- public void setAnalogHit(CalorimeterHit analogHit) {
- this.analogHit = analogHit;
- }
-
- public static class TimeComparator implements Comparator<RawCalorimeterHit> {
-
- @Override
- public int compare(RawCalorimeterHit o1, RawCalorimeterHit o2) {
- return o1.getTimeStamp() - o2.getTimeStamp();
- }
- }
}
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 Tue Dec 9 16:44:29 2014
@@ -24,6 +24,7 @@
import org.lcsim.detector.identifier.IIdentifierHelper;
import org.lcsim.detector.identifier.Identifier;
import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawCalorimeterHit;
import org.lcsim.event.RawTrackerHit;
import org.lcsim.event.SimTrackerHit;
import org.lcsim.event.base.BaseRawCalorimeterHit;
@@ -133,7 +134,7 @@
break;
case EventConstants.ECAL_PULSE_INTEGRAL_BANK_TAG:
hits.addAll(makeIntegralHitsMode3(cdata, crate));
- hitClass = HPSRawCalorimeterHit.class;
+ hitClass = RawCalorimeterHit.class;
flags = (1 << LCIOConstants.RCHBIT_TIME); //store timestamp
break;
case EventConstants.ECAL_PULSE_INTEGRAL_HIGHRESTDC_BANK_TAG:
@@ -246,7 +247,7 @@
System.out.println("cdata.type[" + i + "]=" + cdata.getTypes().get(i));
}
}
- while (cdata.index() < cdata.getItems().size()) {
+ while (cdata.index() + 1 < cdata.getItems().size()) { //the +1 is a hack because sometimes an extra byte gets read (padding)
short slot = cdata.getByte();
int trigger = cdata.getInt();
long timestamp = cdata.getLong();
@@ -283,8 +284,8 @@
return hits;
}
- private List<HPSRawCalorimeterHit> makeIntegralHitsMode3(CompositeData cdata, int crate) {
- List<HPSRawCalorimeterHit> hits = new ArrayList<HPSRawCalorimeterHit>();
+ private List<RawCalorimeterHit> makeIntegralHitsMode3(CompositeData cdata, int crate) {
+ List<RawCalorimeterHit> hits = new ArrayList<RawCalorimeterHit>();
if (debug) {
int n = cdata.getNValues().size();
for (int i = 0; i < n; i++) {
@@ -321,7 +322,7 @@
int[] data = {pulseIntegral, pulseTime};
processUnrecognizedChannel(new FADCGenericHit(EventConstants.ECAL_PULSE_INTEGRAL_MODE, crate, slot, channel, data));
} else {
- hits.add(new HPSRawCalorimeterHit(id, pulseIntegral,pulseTime,0,(short)0,(short)0,EventConstants.ECAL_PULSE_INTEGRAL_MODE));
+ hits.add(new BaseRawCalorimeterHit(id, pulseIntegral,pulseTime));
}
}
}
@@ -365,10 +366,10 @@
short amplLow = cdata.getShort();
short amplHigh = cdata.getShort();
if (debug) {
- System.out.println(" pulseTime=" + pulseTime + "; pulseIntegral=" + pulseIntegral);
+ System.out.println(" pulseTime=" + pulseTime + "; pulseIntegral=" + pulseIntegral + "; amplLow=" + amplLow + "; amplHigh=" + amplHigh);
}
if (id == null) {
- int[] data = {pulseIntegral, pulseTime};
+ int[] data = {pulseIntegral, pulseTime, amplLow, amplHigh};
processUnrecognizedChannel(new FADCGenericHit(EventConstants.ECAL_PULSE_INTEGRAL_HIGHRESTDC_MODE, crate, slot, channel, data));
} else {
hits.add(new HPSRawCalorimeterHit(id, pulseIntegral,pulseTime,0,amplLow,amplHigh,EventConstants.ECAL_PULSE_INTEGRAL_HIGHRESTDC_MODE));
|