hps-java/src/main/java/org/lcsim/hps/recon/ecal
diff -u -r1.5 -r1.6
--- HPSEcalEdepToTriggerConverterDriver.java 27 Sep 2012 23:48:42 -0000 1.5
+++ HPSEcalEdepToTriggerConverterDriver.java 16 Oct 2012 20:00:27 -0000 1.6
@@ -28,6 +28,7 @@
//normalization constant from cal gain (MeV/integral bit) to amplitude gain (amplitude bit/GeV)
private double gainNorm = 1000.0 / pulseIntegral;
private double gainScale = 1.0;
+ private double _gain = -1.0; //constant gain, activated if >0
public HPSEcalEdepToTriggerConverterDriver() {
}
@@ -55,6 +56,10 @@
public void setTruncateScale(int truncateScale) {
this.truncateScale = truncateScale;
}
+
+ public void setConstantGain(double gain) {
+ this._gain = gain;
+ }
@Override
public void startOfData() {
@@ -87,7 +92,7 @@
if (triggerHit != null) {
triggerHits.add(triggerHit);
}
- CalorimeterHit readoutHit = makeReadoutHit(hit);
+ CalorimeterHit readoutHit = makeReadoutHit(hit,_gain);
if (readoutHit != null) {
readoutHits.add(readoutHit);
}
@@ -134,8 +139,14 @@
}
public CalorimeterHit makeReadoutHit(CalorimeterHit hit) {
+ double gain = -1.0;
+ return makeReadoutHit(hit,gain);
+ }
+
+ public CalorimeterHit makeReadoutHit(CalorimeterHit hit, double gain) {
long id = hit.getCellID();
- double amplitude = hit.getRawEnergy() * gainNorm / HPSEcalConditions.physicalToGain(id) * gainScale;
+ gain = gain > 0 ? gain : HPSEcalConditions.physicalToGain(id);
+ double amplitude = hit.getRawEnergy() * gainNorm / gain * gainScale;
if (amplitude < readoutThreshold) {
return null;
}