18 modified files
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.8 -r1.9
--- HPSEcalCluster.java 23 Aug 2012 18:48:18 -0000 1.8
+++ HPSEcalCluster.java 27 Aug 2012 21:53:47 -0000 1.9
@@ -13,7 +13,7 @@
* Cluster with position defined by seed hit (for 1-bit trigger)
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalCluster.java,v 1.8 2012/08/23 18:48:18 meeg Exp $
+ * @version $Id: HPSEcalCluster.java,v 1.9 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSEcalCluster extends BasicCluster {
@@ -42,7 +42,7 @@
if (hit == null) {
throw new RuntimeException("HPSEcalCluster has no hits");
}
- seedHit = new HPSRawCalorimeterHit(0.0, null, 0.0, cellID, hit.getType());
+ seedHit = new HPSRawCalorimeterHit(0.0, 0.0, cellID, hit.getType());
seedHit.setMetaData(hit.getMetaData());
}
return seedHit;
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.17 -r1.18
--- HPSEcalFADCReadoutDriver.java 21 Aug 2012 01:06:51 -0000 1.17
+++ HPSEcalFADCReadoutDriver.java 27 Aug 2012 21:53:47 -0000 1.18
@@ -15,6 +15,7 @@
import org.lcsim.event.base.BaseRawCalorimeterHit;
import org.lcsim.event.base.BaseRawTrackerHit;
import org.lcsim.geometry.Detector;
+import org.lcsim.geometry.Subdetector;
import org.lcsim.geometry.subdetector.HPSEcal3;
import org.lcsim.hps.evio.EventConstants;
import org.lcsim.hps.util.ClockSingleton;
@@ -26,10 +27,12 @@
* Simulates time evolution of preamp output pulse.
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalFADCReadoutDriver.java,v 1.17 2012/08/21 01:06:51 meeg Exp $
+ * @version $Id: HPSEcalFADCReadoutDriver.java,v 1.18 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSEcalFADCReadoutDriver extends HPSEcalReadoutDriver<RawCalorimeterHit> {
+ String ecalName = "Ecal";
+ Subdetector ecal;
//buffer for deposited energy
private Map<Long, RingBuffer> eDepMap = null;
//ADC pipeline for readout
@@ -82,9 +85,10 @@
// converter = new HPSEcalConverter(null);
}
-// public void setGain(double gain) {
-// this.gain = gain;
-// }
+ public void setEcalName(String ecalName) {
+ this.ecalName = ecalName;
+ }
+
public void setReadoutThreshold(int readoutThreshold) {
this.readoutThreshold = readoutThreshold;
}
@@ -323,7 +327,8 @@
@Override
public void detectorChanged(Detector detector) {
- super.detectorChanged(detector);
+ // Get the Subdetector.
+ ecal = detector.getSubdetector(ecalName);
resetFADCBuffers();
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.11 -r1.12
--- HPSEcalRawConverter.java 9 Aug 2012 00:51:15 -0000 1.11
+++ HPSEcalRawConverter.java 27 Aug 2012 21:53:47 -0000 1.12
@@ -1,8 +1,8 @@
package org.lcsim.hps.recon.ecal;
import org.lcsim.event.CalorimeterHit;
+import org.lcsim.event.RawCalorimeterHit;
import org.lcsim.event.RawTrackerHit;
-import org.lcsim.event.base.BaseRawCalorimeterHit;
/**
*
@@ -50,13 +50,13 @@
} else {
rawEnergy = HPSEcalConditions.physicalToGain(id) * sumADC(hit);
}
- double[] pos = hit.getDetectorElement().getGeometry().getPosition().v();
- CalorimeterHit h = new HPSRawCalorimeterHit(rawEnergy + 0.0000001, pos, time, id, 0);
+// double[] pos = hit.getDetectorElement().getGeometry().getPosition().v();
+ CalorimeterHit h = new HPSRawCalorimeterHit(rawEnergy + 0.0000001, time, id, 0);
//+0.0000001 is a horrible hack to ensure rawEnergy!=BaseCalorimeterHit.UNSET_CORRECTED_ENERGY
return h;
}
- public CalorimeterHit HitDtoA(BaseRawCalorimeterHit hit, int window) {
+ public CalorimeterHit HitDtoA(RawCalorimeterHit hit, int window) {
if (hit.getTimeStamp() % 64 != 0) {
System.out.println("unexpected timestamp " + hit.getTimeStamp());
}
@@ -68,19 +68,19 @@
} else {
rawEnergy = HPSEcalConditions.physicalToGain(id) * (hit.getAmplitude() - window * HPSEcalConditions.physicalToPedestal(id));
}
- CalorimeterHit h = new HPSRawCalorimeterHit(rawEnergy + 0.0000001, hit.getPosition(), time, id, 0);
+ CalorimeterHit h = new HPSRawCalorimeterHit(rawEnergy + 0.0000001, time, id, 0);
//+0.0000001 is a horrible hack to ensure rawEnergy!=BaseCalorimeterHit.UNSET_CORRECTED_ENERGY
return h;
}
- public static CalorimeterHit HitDtoA(BaseRawCalorimeterHit hit, int window, double g) {
+ public static CalorimeterHit HitDtoA(RawCalorimeterHit hit, int window, double g) {
if (hit.getTimeStamp() % 64 != 0) {
System.out.println("unexpected timestamp " + hit.getTimeStamp());
}
double time = hit.getTimeStamp() / 16.0;
long id = hit.getCellID();
double rawEnergy = g * (hit.getAmplitude() - window * HPSEcalConditions.physicalToPedestal(id));
- CalorimeterHit h = new HPSRawCalorimeterHit(rawEnergy + 0.0000001, hit.getPosition(), time, id, 0);
+ CalorimeterHit h = new HPSRawCalorimeterHit(rawEnergy + 0.0000001, time, id, 0);
//+0.0000001 is a horrible hack to ensure rawEnergy!=BaseCalorimeterHit.UNSET_CORRECTED_ENERGY
return h;
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.2 -r1.3
--- HPSEcalConverterAtoDDriver.java 21 Mar 2012 01:00:04 -0000 1.2
+++ HPSEcalConverterAtoDDriver.java 27 Aug 2012 21:53:47 -0000 1.3
@@ -1,7 +1,3 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.lcsim.hps.recon.ecal;
import java.util.ArrayList;
@@ -9,22 +5,18 @@
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.EventHeader;
import org.lcsim.event.RawCalorimeterHit;
-import org.lcsim.geometry.Detector;
-import org.lcsim.geometry.Subdetector;
import org.lcsim.util.Driver;
import org.lcsim.util.lcio.LCIOConstants;
/**
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalConverterAtoDDriver.java,v 1.2 2012/03/21 01:00:04 jeremy Exp $
+ * @version $Id: HPSEcalConverterAtoDDriver.java,v 1.3 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSEcalConverterAtoDDriver extends Driver {
HPSEcalConverter converter = null;
- Subdetector ecal;
String rawCollectionName = "EcalDigitizedHits";
- String ecalName;
String ecalReadoutName = "EcalHits";
String ecalCollectionName;
int flags;
@@ -33,7 +25,7 @@
flags = 0;
flags += 1 << LCIOConstants.CHBIT_LONG; //store position
flags += 1 << LCIOConstants.RCHBIT_ID1; //store cell ID
- converter = new HPSEcalConverter(null);
+ converter = new HPSEcalConverter();
}
public void setPedestal(double pedestal) {
@@ -48,10 +40,6 @@
this.ecalCollectionName = ecalCollectionName;
}
- public void setEcalName(String ecalName) {
- this.ecalName = ecalName;
- }
-
public void setRawCollectionName(String rawCollectionName) {
this.rawCollectionName = rawCollectionName;
}
@@ -61,17 +49,6 @@
if (ecalCollectionName == null) {
throw new RuntimeException("The parameter ecalCollectionName was not set!");
}
-
- if (ecalName == null) {
- throw new RuntimeException("The parameter ecalName was not set!");
- }
- }
-
- @Override
- public void detectorChanged(Detector detector) {
- // Get the Subdetector.
- ecal = (Subdetector) detector.getSubdetector(ecalName);
- converter.setIDDecoder(ecal.getIDDecoder());
}
@Override
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.2 -r1.3
--- HPSEcalWindowDiscriminatorReadoutDriver.java 4 Nov 2011 00:51:19 -0000 1.2
+++ HPSEcalWindowDiscriminatorReadoutDriver.java 27 Aug 2012 21:53:47 -0000 1.3
@@ -5,7 +5,6 @@
import java.util.Map;
import org.lcsim.event.CalorimeterHit;
-import org.lcsim.geometry.IDDecoder;
import org.lcsim.hps.util.ClockSingleton;
import org.lcsim.hps.util.RingBuffer;
@@ -16,10 +15,11 @@
*
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalWindowDiscriminatorReadoutDriver.java,v 1.2 2011/11/04 00:51:19 meeg Exp $
+ * @version $Id: HPSEcalWindowDiscriminatorReadoutDriver.java,v 1.3 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSEcalWindowDiscriminatorReadoutDriver extends HPSEcalDiscriminatorReadoutDriver {
//last time we saw a rising edge
+
Map<Long, Double> lowTimeMap = null;
//last time we saw a rising edge
Map<Long, Double> highTimeMap = null;
@@ -32,24 +32,23 @@
this.highThreshold = highThreshold;
}
+ @Override
protected void readHits(List<HPSRawCalorimeterHit> hits) {
- IDDecoder dec = ecal.getIDDecoder();
for (Long cellID : lowTimeMap.keySet()) {
//if there's an output pulse, make a hit
if (ClockSingleton.getTime() - lowTimeMap.get(cellID) < outputWidth) {
- if (highTimeMap.containsKey(cellID) && ClockSingleton.getTime() - highTimeMap.get(cellID) < outputWidth)
+ if (highTimeMap.containsKey(cellID) && ClockSingleton.getTime() - highTimeMap.get(cellID) < outputWidth) {
continue;
- dec.setID(cellID);
- hits.add(new HPSRawCalorimeterHit(outputEnergy, dec.getPosition(), readoutTime(), cellID, hitType));
+ }
+ hits.add(new HPSRawCalorimeterHit(outputEnergy, readoutTime(), cellID, hitType));
}
}
}
+ @Override
protected void putHits(List<CalorimeterHit> hits) {
//fill the readout buffers
for (CalorimeterHit hit : hits) {
- IDDecoder dec = ecal.getIDDecoder();
- dec.setID(hit.getCellID());
// int ix = dec.getValue("ix");
// int iy = dec.getValue("iy");
// //temporary hack to disable crystals and flip X coordinate
@@ -72,19 +71,22 @@
RingBuffer eDepBuffer = eDepMap.get(cellID);
//if there's a rising edge between now and the next time step, note the time
if ((eDepBuffer.currentValue() < threshold)
- && (eDepBuffer.getValue(1) > threshold))
+ && (eDepBuffer.getValue(1) > threshold)) {
lowTimeMap.put(cellID, ClockSingleton.getTime());
+ }
if ((eDepBuffer.currentValue() < highThreshold)
- && (eDepBuffer.getValue(1) > highThreshold))
+ && (eDepBuffer.getValue(1) > highThreshold)) {
highTimeMap.put(cellID, ClockSingleton.getTime());
+ }
eDepBuffer.step();
}
}
+ @Override
protected void initReadout() {
//initialize buffers
eDepMap = new HashMap<Long, RingBuffer>();
lowTimeMap = new HashMap<Long, Double>();
highTimeMap = new HashMap<Long, Double>();
}
-}
\ No newline at end of file
+}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.10 -r1.11
--- HPSEcalTimeEvolutionReadoutDriver.java 4 Nov 2011 00:51:19 -0000 1.10
+++ HPSEcalTimeEvolutionReadoutDriver.java 27 Aug 2012 21:53:47 -0000 1.11
@@ -5,7 +5,6 @@
import java.util.Map;
import org.lcsim.event.CalorimeterHit;
-import org.lcsim.geometry.IDDecoder;
import org.lcsim.hps.util.ClockSingleton;
import org.lcsim.hps.util.RingBuffer;
@@ -14,7 +13,7 @@
* Simulates time evolution of preamp output pulse.
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalTimeEvolutionReadoutDriver.java,v 1.10 2011/11/04 00:51:19 meeg Exp $
+ * @version $Id: HPSEcalTimeEvolutionReadoutDriver.java,v 1.11 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSEcalTimeEvolutionReadoutDriver extends HPSEcalReadoutDriver<HPSRawCalorimeterHit> {
@@ -38,27 +37,25 @@
eDepMap = new HashMap<Long, RingBuffer>();
}
+ @Override
protected void readHits(List<HPSRawCalorimeterHit> hits) {
- IDDecoder dec = ecal.getIDDecoder();
for (Long cellID : eDepMap.keySet()) {
RingBuffer eDepBuffer = eDepMap.get(cellID);
if (eDepBuffer.currentValue() > threshold) {
- dec.setID(cellID);
// int ix = dec.getValue("ix");
// int iy = dec.getValue("iy");
// if (iy == 1 && ix == -2)
// System.out.printf("Time %f, output signal %f\n", ClockSingleton.getTime(), eDepBuffer.currentValue());
- hits.add(new HPSRawCalorimeterHit(eDepBuffer.currentValue(), dec.getPosition(), readoutTime(), cellID, hitType));
+ hits.add(new HPSRawCalorimeterHit(eDepBuffer.currentValue(), readoutTime(), cellID, hitType));
}
eDepBuffer.step();
}
}
+ @Override
protected void putHits(List<CalorimeterHit> hits) {
//fill the readout buffers
for (CalorimeterHit hit : hits) {
- IDDecoder dec = ecal.getIDDecoder();
- dec.setID(hit.getCellID());
// int ix = dec.getValue("ix");
// int iy = dec.getValue("iy");
// if (iy == 1 && ix == -2)
@@ -75,6 +72,7 @@
}
}
+ @Override
protected void initReadout() {
//initialize buffers
eDepMap = new HashMap<Long, RingBuffer>();
@@ -92,4 +90,4 @@
return 0.0;
}
}
-}
\ No newline at end of file
+}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.4 -r1.5
--- HPSEcalConverter.java 5 Apr 2012 19:05:23 -0000 1.4
+++ HPSEcalConverter.java 27 Aug 2012 21:53:47 -0000 1.5
@@ -1,69 +1,52 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.lcsim.hps.recon.ecal;
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.RawCalorimeterHit;
-import org.lcsim.geometry.IDDecoder;
/**
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalConverter.java,v 1.4 2012/04/05 19:05:23 meeg Exp $
+ * @version $Id: HPSEcalConverter.java,v 1.5 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSEcalConverter {
- double scale = 0.01;
- double pedestal = 0.0;
- double period = 4.0;
- double dt = 0.0;
- IDDecoder dec;
-
- public HPSEcalConverter(IDDecoder dec) {
- this.dec = dec;
- }
-
- public double getPedestal() {
- return pedestal;
- }
-
- public void setPedestal(double pedestal) {
- this.pedestal = pedestal;
- }
-
- public double getScale() {
- return scale;
- }
-
- public void setScale(double scale) {
- this.scale = scale;
- }
-
- public IDDecoder getIDDecoder() {
- return dec;
- }
-
- public void setIDDecoder(IDDecoder dec) {
- this.dec = dec;
- }
-
- public int AtoD(double amplitude, long cellID) {
- return (int) Math.floor((amplitude + pedestal) / scale);
- }
-
- public double DtoA(int amplitude, long cellID) {
- return scale * (amplitude + 0.5) + pedestal;
- }
-
- public CalorimeterHit HitDtoA(RawCalorimeterHit hit) {
- dec.setID(hit.getCellID());
- return new HPSRawCalorimeterHit(DtoA(hit.getAmplitude(), hit.getCellID()), dec.getPosition(), period * hit.getTimeStamp() + dt, hit.getCellID(), 0);
- }
-
- public RawCalorimeterHit HitAtoD(CalorimeterHit hit) {
- dec.setID(hit.getCellID());
- return new HPSFADCCalorimeterHit(hit.getCellID(), AtoD(hit.getRawEnergy(), hit.getCellID()), (int) Math.round(hit.getTime() / period), 0);
- }
+ double scale = 0.01;
+ double pedestal = 0.0;
+ double period = 4.0;
+ double dt = 0.0;
+
+ public HPSEcalConverter() {
+ }
+
+ public double getPedestal() {
+ return pedestal;
+ }
+
+ public void setPedestal(double pedestal) {
+ this.pedestal = pedestal;
+ }
+
+ public double getScale() {
+ return scale;
+ }
+
+ public void setScale(double scale) {
+ this.scale = scale;
+ }
+
+ public int AtoD(double amplitude, long cellID) {
+ return (int) Math.floor((amplitude + pedestal) / scale);
+ }
+
+ public double DtoA(int amplitude, long cellID) {
+ return scale * (amplitude + 0.5) + pedestal;
+ }
+
+ public CalorimeterHit HitDtoA(RawCalorimeterHit hit) {
+ return new HPSRawCalorimeterHit(DtoA(hit.getAmplitude(), hit.getCellID()), period * hit.getTimeStamp() + dt, hit.getCellID(), 0);
+ }
+
+ public RawCalorimeterHit HitAtoD(CalorimeterHit hit) {
+ return new HPSFADCCalorimeterHit(hit.getCellID(), AtoD(hit.getRawEnergy(), hit.getCellID()), (int) Math.round(hit.getTime() / period), 0);
+ }
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.8 -r1.9
--- HPSEcalSimpleReadoutDriver.java 4 Nov 2011 00:51:19 -0000 1.8
+++ HPSEcalSimpleReadoutDriver.java 27 Aug 2012 21:53:47 -0000 1.9
@@ -5,14 +5,13 @@
import java.util.Map;
import org.lcsim.event.CalorimeterHit;
-import org.lcsim.geometry.IDDecoder;
/**
* Performs readout of ECal hits.
* No time evolution - this just integrates all hits in a cycle.
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalSimpleReadoutDriver.java,v 1.8 2011/11/04 00:51:19 meeg Exp $
+ * @version $Id: HPSEcalSimpleReadoutDriver.java,v 1.9 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSEcalSimpleReadoutDriver extends HPSEcalReadoutDriver<HPSRawCalorimeterHit> {
//buffer for deposited energy
@@ -23,9 +22,7 @@
}
protected void readHits(List<HPSRawCalorimeterHit> hits) {
- IDDecoder dec = ecal.getIDDecoder();
for (Long cellID : eDepMap.keySet()) {
- dec.setID(cellID);
// int ix = dec.getValue("ix");
// int iy = dec.getValue("iy");
// //temporary hack to disable crystals and flip X coordinate
@@ -33,7 +30,7 @@
// if (iy == 1 && ix*side >= -10 && ix*side <= -2)
// continue;
if (eDepMap.get(cellID) > threshold)
- hits.add(new HPSRawCalorimeterHit(eDepMap.get(cellID), dec.getPosition(), readoutTime(), cellID, hitType));
+ hits.add(new HPSRawCalorimeterHit(eDepMap.get(cellID), readoutTime(), cellID, hitType));
}
//reset hit integration
eDepMap = new HashMap<Long, Double>();
@@ -55,4 +52,4 @@
//initialize buffers
eDepMap = new HashMap<Long, Double>();
}
-}
\ No newline at end of file
+}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.6 -r1.7
--- HPSRawCalorimeterHit.java 7 Aug 2012 23:10:08 -0000 1.6
+++ HPSRawCalorimeterHit.java 27 Aug 2012 21:53:47 -0000 1.7
@@ -11,7 +11,7 @@
* for use in ECalReadout
*
* @author Sho Uemura
- * @version $Id: HPSRawCalorimeterHit.java,v 1.6 2012/08/07 23:10:08 meeg Exp $
+ * @version $Id: HPSRawCalorimeterHit.java,v 1.7 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSRawCalorimeterHit extends BaseCalorimeterHit {
@@ -24,7 +24,7 @@
* @param id Cell ID
* @param type Type
*/
- public HPSRawCalorimeterHit(double energy, double[] position, double time, long id, int type) {
+ public HPSRawCalorimeterHit(double energy, double time, long id, int type) {
this.rawEnergy = energy;
// if (position != null) {
// this.positionVec = new BasicHep3Vector(position);
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.13 -r1.14
--- HPSEcalRawConverterDriver.java 21 Aug 2012 17:41:04 -0000 1.13
+++ HPSEcalRawConverterDriver.java 27 Aug 2012 21:53:47 -0000 1.14
@@ -4,8 +4,8 @@
import java.util.List;
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.EventHeader;
+import org.lcsim.event.RawCalorimeterHit;
import org.lcsim.event.RawTrackerHit;
-import org.lcsim.event.base.BaseRawCalorimeterHit;
import org.lcsim.geometry.Detector;
import org.lcsim.util.Driver;
@@ -96,10 +96,10 @@
}
}
}
- if (event.hasCollection(BaseRawCalorimeterHit.class, rawCollectionName)) {
- List<BaseRawCalorimeterHit> hits = event.get(BaseRawCalorimeterHit.class, rawCollectionName);
+ if (event.hasCollection(RawCalorimeterHit.class, rawCollectionName)) {
+ List<RawCalorimeterHit> hits = event.get(RawCalorimeterHit.class, rawCollectionName);
- for (BaseRawCalorimeterHit hit : hits) {
+ for (RawCalorimeterHit hit : hits) {
CalorimeterHit newHit = converter.HitDtoA(hit, integralWindow);
if (newHit.getRawEnergy() > threshold) {
if(applyBadCrystalMap && isBadCrystal(newHit)) continue;
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.19 -r1.20
--- HPSEcalReadoutDriver.java 3 Aug 2012 00:05:26 -0000 1.19
+++ HPSEcalReadoutDriver.java 27 Aug 2012 21:53:47 -0000 1.20
@@ -5,8 +5,6 @@
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.EventHeader;
-import org.lcsim.geometry.Detector;
-import org.lcsim.geometry.Subdetector;
import org.lcsim.hps.util.ClockSingleton;
import org.lcsim.util.Driver;
import org.lcsim.util.lcio.LCIOConstants;
@@ -15,13 +13,11 @@
* Performs readout of ECal hits.
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalReadoutDriver.java,v 1.19 2012/08/03 00:05:26 meeg Exp $
+ * @version $Id: HPSEcalReadoutDriver.java,v 1.20 2012/08/27 21:53:47 meeg Exp $
*/
public abstract class HPSEcalReadoutDriver<T> extends Driver {
- Subdetector ecal;
String ecalCollectionName;
- String ecalName;
String ecalRawCollectionName = "EcalRawHits";
String ecalReadoutName = "EcalHits";
Class hitClass;
@@ -59,10 +55,6 @@
this.ecalCollectionName = ecalCollectionName;
}
- public void setEcalName(String ecalName) {
- this.ecalName = ecalName;
- }
-
public void setReadoutCycle(int readoutCycle) {
this.readoutCycle = readoutCycle;
if (readoutCycle > 0) {
@@ -83,25 +75,18 @@
this.threshold = threshold;
}
+ @Override
public void startOfData() {
if (ecalCollectionName == null) {
throw new RuntimeException("The parameter ecalCollectionName was not set!");
}
- if (ecalName == null) {
- throw new RuntimeException("The parameter ecalName was not set!");
- }
-
readoutCounter = 0;
initReadout();
}
- public void detectorChanged(Detector detector) {
- // Get the Subdetector.
- ecal = detector.getSubdetector(ecalName);
- }
-
+ @Override
public void process(EventHeader event) {
//System.out.println(this.getClass().getCanonicalName() + " - process");
// Get the list of ECal hits.
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.1 -r1.2
--- HPSEcalTriggerFilterDriver.java 6 Aug 2012 23:14:18 -0000 1.1
+++ HPSEcalTriggerFilterDriver.java 27 Aug 2012 21:53:47 -0000 1.2
@@ -77,6 +77,6 @@
}
long newID = HPSEcalConditions.makePhysicalID(ix, iy);
//make new hit; set position to null so it gets recalculated
- return new HPSRawCalorimeterHit(hit.getRawEnergy(), null, hit.getTime(), newID, hit.getType());
+ return new HPSRawCalorimeterHit(hit.getRawEnergy(), hit.getTime(), newID, hit.getType());
}
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.2 -r1.3
--- HPSEcalEdepToTriggerConverterDriver.java 21 Aug 2012 01:06:51 -0000 1.2
+++ HPSEcalEdepToTriggerConverterDriver.java 27 Aug 2012 21:53:47 -0000 1.3
@@ -127,7 +127,7 @@
int truncatedIntegral = (int) Math.floor(triggerIntegral / truncateScale) * truncateScale;
if (truncatedIntegral > 0) {
- return new HPSRawCalorimeterHit(truncatedIntegral, hit.getPosition(), hit.getTime(), id, 0);
+ return new HPSRawCalorimeterHit(truncatedIntegral, hit.getTime(), id, 0);
}
return null;
}
@@ -160,7 +160,7 @@
//// double integral = readoutIntegral * HPSEcalConditions.physicalToGain(id);
// System.out.format("dumb: %f, full: %f\n",hit.getRawEnergy() * 1000.0,readoutIntegral * HPSEcalConditions.physicalToGain(id));
- CalorimeterHit h = new HPSRawCalorimeterHit(integral, hit.getPosition(), hit.getTime(), id, 0);
+ CalorimeterHit h = new HPSRawCalorimeterHit(integral, hit.getTime(), id, 0);
return h;
}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.4 -r1.5
--- HPSEcalDiscriminatorReadoutDriver.java 4 Nov 2011 00:51:19 -0000 1.4
+++ HPSEcalDiscriminatorReadoutDriver.java 27 Aug 2012 21:53:47 -0000 1.5
@@ -5,7 +5,6 @@
import java.util.Map;
import org.lcsim.event.CalorimeterHit;
-import org.lcsim.geometry.IDDecoder;
import org.lcsim.hps.util.ClockSingleton;
import org.lcsim.hps.util.RingBuffer;
@@ -14,7 +13,7 @@
* Simulates time evolution of preamp output pulse and leading-edge discriminator.
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalDiscriminatorReadoutDriver.java,v 1.4 2011/11/04 00:51:19 meeg Exp $
+ * @version $Id: HPSEcalDiscriminatorReadoutDriver.java,v 1.5 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSEcalDiscriminatorReadoutDriver extends HPSEcalReadoutDriver<HPSRawCalorimeterHit> {
@@ -54,21 +53,18 @@
}
protected void readHits(List<HPSRawCalorimeterHit> hits) {
- IDDecoder dec = ecal.getIDDecoder();
for (Long cellID : edgeTimeMap.keySet()) {
//if there's an output pulse, make a hit
if (ClockSingleton.getTime() - edgeTimeMap.get(cellID) < outputWidth) {
- dec.setID(cellID);
- hits.add(new HPSRawCalorimeterHit(outputEnergy, dec.getPosition(), readoutTime(), cellID, hitType));
+ hits.add(new HPSRawCalorimeterHit(outputEnergy, readoutTime(), cellID, hitType));
}
}
}
+ @Override
protected void putHits(List<CalorimeterHit> hits) {
//fill the readout buffers
for (CalorimeterHit hit : hits) {
- IDDecoder dec = ecal.getIDDecoder();
- dec.setID(hit.getCellID());
// int ix = dec.getValue("ix");
// int iy = dec.getValue("iy");
// //temporary hack to disable crystals and flip X coordinate
@@ -97,6 +93,7 @@
}
}
+ @Override
protected void initReadout() {
//initialize buffers
eDepMap = new HashMap<Long, RingBuffer>();
@@ -118,4 +115,4 @@
return 0.0;
}
}
-}
\ No newline at end of file
+}
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.3 -r1.4
--- HPSEcalConverterDriver.java 2 Aug 2012 20:32:15 -0000 1.3
+++ HPSEcalConverterDriver.java 27 Aug 2012 21:53:47 -0000 1.4
@@ -1,29 +1,21 @@
-/*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
package org.lcsim.hps.recon.ecal;
import java.util.ArrayList;
import java.util.List;
import org.lcsim.event.CalorimeterHit;
import org.lcsim.event.EventHeader;
-import org.lcsim.geometry.Detector;
-import org.lcsim.geometry.Subdetector;
import org.lcsim.util.Driver;
import org.lcsim.util.lcio.LCIOConstants;
/**
*
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalConverterDriver.java,v 1.3 2012/08/02 20:32:15 meeg Exp $
+ * @version $Id: HPSEcalConverterDriver.java,v 1.4 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSEcalConverterDriver extends Driver {
HPSEcalConverter converter = null;
- Subdetector ecal;
String rawCollectionName;
- String ecalName;
String ecalReadoutName = "EcalHits";
String ecalCollectionName = "EcalCorrectedHits";
int flags;
@@ -32,7 +24,7 @@
flags = 0;
flags += 1 << LCIOConstants.CHBIT_LONG; //store position
flags += 1 << LCIOConstants.RCHBIT_ID1; //store cell ID
- converter = new HPSEcalConverter(null);
+ converter = new HPSEcalConverter();
}
public void setPedestal(double pedestal) {
@@ -47,10 +39,6 @@
this.ecalCollectionName = ecalCollectionName;
}
- public void setEcalName(String ecalName) {
- this.ecalName = ecalName;
- }
-
public void setRawCollectionName(String rawCollectionName) {
this.rawCollectionName = rawCollectionName;
}
@@ -60,17 +48,6 @@
if (ecalCollectionName == null) {
throw new RuntimeException("The parameter ecalCollectionName was not set!");
}
-
- if (ecalName == null) {
- throw new RuntimeException("The parameter ecalName was not set!");
- }
- }
-
- @Override
- public void detectorChanged(Detector detector) {
- // Get the Subdetector.
- ecal = (Subdetector) detector.getSubdetector(ecalName);
- converter.setIDDecoder(ecal.getIDDecoder());
}
@Override
hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.6 -r1.7
--- HPSEcalCTPClusterer.java 2 Aug 2012 20:32:15 -0000 1.6
+++ HPSEcalCTPClusterer.java 27 Aug 2012 21:53:47 -0000 1.7
@@ -29,7 +29,7 @@
* @author Jeremy McCormick <[log in to unmask]>
* @author Tim Nelson <[log in to unmask]>
* @author Sho Uemura <[log in to unmask]>
- * @version $Id: HPSEcalCTPClusterer.java,v 1.6 2012/08/02 20:32:15 meeg Exp $
+ * @version $Id: HPSEcalCTPClusterer.java,v 1.7 2012/08/27 21:53:47 meeg Exp $
*/
public class HPSEcalCTPClusterer extends Driver {
@@ -69,6 +69,7 @@
this.ecalName = ecalName;
}
+ @Override
public void startOfData() {
if (ecalCollectionName == null) {
throw new RuntimeException("The parameter ecalCollectionName was not set!");
@@ -79,6 +80,7 @@
}
}
+ @Override
public void detectorChanged(Detector detector) {
// Get the Subdetector.
ecal = (HPSEcal3) detector.getSubdetector(ecalName);
@@ -118,6 +120,7 @@
//System.out.println(neighborMap.toString());
}
+ @Override
public void process(EventHeader event) {
//System.out.println(this.getClass().getCanonicalName() + " - process");
@@ -277,7 +280,7 @@
}
}
}
- CalorimeterHit seedHit = new HPSRawCalorimeterHit(0.0, null, clusterTime, possibleCluster, hits.get(0).getType());
+ CalorimeterHit seedHit = new HPSRawCalorimeterHit(0.0, clusterTime, possibleCluster, hits.get(0).getType());
seedHit.setMetaData(hits.get(0).getMetaData());
HPSEcalCluster cluster = new HPSEcalCluster(seedHit);
for (CalorimeterHit clusterHit : hits) {
@@ -291,6 +294,7 @@
static class TimeComparator implements Comparator<CalorimeterHit> {
+ @Override
public int compare(CalorimeterHit o1, CalorimeterHit o2) {
if (o1.getTime() == o2.getTime()) {
return 0;
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
diff -u -r1.5 -r1.6
--- EcalWindowPlots.java 12 May 2012 23:09:05 -0000 1.5
+++ EcalWindowPlots.java 27 Aug 2012 21:53:47 -0000 1.6
@@ -13,7 +13,6 @@
import org.lcsim.event.EventHeader;
import org.lcsim.event.RawTrackerHit;
import org.lcsim.geometry.Detector;
-import org.lcsim.geometry.compact.Subdetector;
import org.lcsim.hps.monitoring.AIDAFrame;
import org.lcsim.hps.recon.ecal.HPSEcalConditions;
import org.lcsim.util.Driver;
@@ -21,14 +20,13 @@
public class EcalWindowPlots extends Driver implements ActionListener {
- private String subdetectorName;
- private String inputCollection;
+ private String inputCollection = "EcalReadoutHits";
private IPlotter plotter;
private AIDAFrame plotterFrame;
private AIDA aida;
private Detector detector;
private IHistogram1D windowPlot;
- private int window = 10;
+ private int window = 100;
private JLabel crateLabel, slotLabel, channelLabel;
private JComboBox crateCombo;
private JComboBox slotCombo;
@@ -62,10 +60,6 @@
}
}
- public void setSubdetectorName(String subdetectorName) {
- this.subdetectorName = subdetectorName;
- }
-
public void setInputCollection(String inputCollection) {
this.inputCollection = inputCollection;
}
@@ -74,20 +68,15 @@
this.window = window;
}
+ @Override
public void detectorChanged(Detector detector) {
this.detector = detector;
- if (subdetectorName == null) {
- throw new RuntimeException("The subdetectorName parameter was not set.");
- }
-
if (inputCollection == null) {
throw new RuntimeException("The inputCollection parameter was not set.");
}
- Subdetector subdetector = detector.getSubdetector(subdetectorName);
-
setupPlots();
}
@@ -129,12 +118,14 @@
plotterFrame.pack();
}
+ @Override
public void endOfData() {
if (plotterFrame != null) {
plotterFrame.dispose();
}
}
+ @Override
public void process(EventHeader event) {
if (event.hasCollection(RawTrackerHit.class, inputCollection)) {
List<RawTrackerHit> hits = event.get(RawTrackerHit.class, inputCollection);
hps-java/src/main/java/org/lcsim/hps/monitoring/ecal
diff -u -r1.9 -r1.10
--- EcalPedestalPlots.java 17 May 2012 18:24:11 -0000 1.9
+++ EcalPedestalPlots.java 27 Aug 2012 21:53:47 -0000 1.10
@@ -24,7 +24,7 @@
public class EcalPedestalPlots extends Driver implements Resettable, ActionListener, Redrawable {
- private String inputCollection;
+ private String inputCollection = "EcalReadoutHits";
private IPlotter plotter;
private IPlotter plotter2;
private AIDA aida = AIDA.defaultInstance();
CVSspam 0.2.12