Author: [log in to unmask] Date: Mon Mar 23 14:04:17 2015 New Revision: 2504 Log: fix a bug where pedestals were not being added for no pileup running Modified: java/trunk/tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java Modified: java/trunk/tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java ============================================================================= --- java/trunk/tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java (original) +++ java/trunk/tracking/src/main/java/org/hps/readout/svt/SimpleSvtReadout.java Mon Mar 23 14:04:17 2015 @@ -198,8 +198,10 @@ for (int sampleN = 0; sampleN < 6; sampleN++) { double time = sampleN * HPSSVTConstants.SAMPLING_INTERVAL - timeOffset; double tp = sensor.getShapeFitParameters(channel)[HpsSiSensor.TP_INDEX]; - signal[sampleN] = amplitude * pulseAmplitude(time, tp); + signal[sampleN] += amplitude * pulseAmplitude(time, tp);//add the pulse to the pedestal samples[sampleN] = (short) Math.round(signal[sampleN]); + if (verbosity >= 1) + System.out.println("\t\tMaking samples: sample#" + sampleN + " has " + samples[sampleN] + " ADC counts"); } long channel_id = sensor.makeChannelID(channel); @@ -290,15 +292,18 @@ private boolean readoutCuts(RawTrackerHit hit) { if (enableThresholdCut && !samplesAboveThreshold(hit)) { - //System.out.println("Failed threshold cut"); + if (verbosity > 1) + System.out.println("Failed threshold cut"); return false; } if (enablePileupCut && !pileupCut(hit)) { - //System.out.println("Failed pileup cut"); + if (verbosity > 1) + System.out.println("Failed pileup cut"); return false; } if (dropBadChannels && !badChannelCut(hit)) { - //System.out.println("Failed bad channel cut"); + if (verbosity > 1) + System.out.println("Failed bad channel cut"); return false; } return true; @@ -325,19 +330,18 @@ for (int sampleN = 0; sampleN < samples.length; sampleN++) { pedestal = sensor.getPedestal(channel, sampleN); noise = sensor.getNoise(channel, sampleN); - //System.out.format("%d, %d\n", samples[sampleN] - pedestal, noise * 3.0); - if (samples[sampleN] - pedestal > noise * noiseThreshold) { + if (verbosity > 1) + System.out.format("%f, %f\n", samples[sampleN] - pedestal, noise * noiseThreshold); + if (samples[sampleN] - pedestal > noise * noiseThreshold) count++; - } } return count >= samplesAboveThreshold; } @Override protected void processTrigger(EventHeader event) { - if (noPileup) { + if (noPileup) return; - } //System.out.println("Got trigger"); // Create a list to hold the analog data @@ -438,20 +442,18 @@ @Override public int compareTo(Object o) { double deltaT = time - ((StripHit) o).time; - if (deltaT > 0) { + if (deltaT > 0) return 1; - } else if (deltaT < 0) { + else if (deltaT < 0) return -1; - } else { + else return 0; - } } } private double pulseAmplitude(double time, double tp) { - if (time <= 0.0) { + if (time <= 0.0) return 0.0; - } return (time / tp) * Math.exp(1.0 - time / tp); }