Author: [log in to unmask]
Date: Tue Nov 25 14:10:20 2014
New Revision: 1588
Log:
Remove hack where constant is added to raw energy. Unset energy is now Double.MIN_VALUE so this should not be needed any longer. Also make a few methods public so class is usable outside its package.
Modified:
java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java
Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java
=============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java (original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java Tue Nov 25 14:10:20 2014
@@ -11,22 +11,20 @@
import org.lcsim.geometry.Detector;
/**
- *
- * @version $Id: HPSEcalRawConverterDriver.java,v 1.2 2012/05/03 00:17:54
- * phansson Exp $
+ * This class is used to convert {@link org.lcsim.event.RawCalorimeterHit} objects
+ * to {@link org.lcsim.event.CalorimeterHit} objects with energy information.
+ * It has methods to convert pedestal subtracted ADC counts to energy.
+ *
+ * @author Sho Uemura <[log in to unmask]>
+ * @author Jeremy McCormick <[log in to unmask]>
*/
public class EcalRawConverter {
- private final boolean debug = false;
private boolean constantGain = false;
private double gain;
private boolean use2014Gain = true;
- //get the database condition manager
-
-// Detector detector = DatabaseConditionsManager.getInstance().getDetectorObject();
private EcalConditions ecalConditions = null;
-
public EcalRawConverter() {
}
@@ -40,24 +38,13 @@
this.use2014Gain = use2014Gain;
}
- private short sumADC(RawTrackerHit hit) {
- //Sum all pedestal subtracted ADC values
- //return scale * (amplitude + 0.5) + pedestal;
- if (debug) {
- System.out.println("Summing ADC for hit: " + hit.toString());
- }
-
- // Get the channel data.
- EcalChannelConstants channelData = findChannel(hit.getCellID());
-
+ public short sumADC(RawTrackerHit hit) {
+ EcalChannelConstants channelData = findChannel(hit.getCellID());
double pedestal = channelData.getCalibration().getPedestal();
short sum = 0;
short samples[] = hit.getADCValues();
for (int isample = 0; isample < samples.length; ++isample) {
sum += (samples[isample] - pedestal);
- if (debug) {
- System.out.println("Sample " + isample + " " + samples[isample] + " pedestal " + pedestal + " (" + sum + ")");
- }
}
return sum;
}
@@ -66,9 +53,7 @@
double time = hit.getTime();
long id = hit.getCellID();
double rawEnergy = adcToEnergy(sumADC(hit), id);
- HPSCalorimeterHit h1 = new HPSCalorimeterHit(rawEnergy + 0.0000001, time, id, 0);
-// double[] pos = hit.getDetectorElement().getGeometry().getPosition().v();
- //+0.0000001 is a horrible hack to ensure rawEnergy!=BaseCalorimeterHit.UNSET_CORRECTED_ENERGY
+ HPSCalorimeterHit h1 = new HPSCalorimeterHit(rawEnergy, time, id, 0);
return h1;
}
@@ -82,8 +67,7 @@
EcalChannelConstants channelData = findChannel(id);
double adcSum = hit.getAmplitude() - window * channelData.getCalibration().getPedestal();
double rawEnergy = adcToEnergy(adcSum, id);
- HPSCalorimeterHit h2 = new HPSCalorimeterHit(rawEnergy + 0.0000001, time + timeOffset, id, 0);
- //+0.0000001 is a horrible hack to ensure rawEnergy!=BaseCalorimeterHit.UNSET_CORRECTED_ENERGY
+ HPSCalorimeterHit h2 = new HPSCalorimeterHit(rawEnergy, time + timeOffset, id, 0);
return h2;
}
@@ -124,30 +108,15 @@
}
}
}
- /*
- 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 * EcalConditions.physicalToPedestal(id)) * ECalUtils.MeV;
- CalorimeterHit h = new HPSCalorimeterHit(rawEnergy + 0.0000001, time, id, 0);
- //+0.0000001 is a horrible hack to ensure rawEnergy!=BaseCalorimeterHit.UNSET_CORRECTED_ENERGY
- return h;
- }
- */
+
/**
* Must be set when an object EcalRawConverter is created.
* @param detector (long)
*/
- void setDetector(Detector detector) {
-
+ public void setDetector(Detector detector) {
// ECAL combined conditions object.
ecalConditions = ConditionsManager.defaultInstance()
.getCachedConditions(EcalConditions.class, TableConstants.ECAL_CONDITIONS).getCachedData();
-
- //System.out.println("You are now using the database conditions for EcalRawConverter.");
}
/**
@@ -155,7 +124,7 @@
* @param cellID (long)
* @return channel constants (EcalChannelConstants)
*/
- private EcalChannelConstants findChannel(long cellID) {
+ public EcalChannelConstants findChannel(long cellID) {
return ecalConditions.getChannelConstants(ecalConditions.getChannelCollection().findGeometric(cellID));
}
}
|