Author: [log in to unmask] Date: Wed Apr 22 19:25:41 2015 New Revision: 2793 Log: use new pulse shape parameters; add option to subtract trigger phase from hit times Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/PulseShape.java java/trunk/tracking/src/main/java/org/hps/recon/tracking/RawTrackerHitFitterDriver.java Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/PulseShape.java ============================================================================= --- java/trunk/tracking/src/main/java/org/hps/recon/tracking/PulseShape.java (original) +++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/PulseShape.java Wed Apr 22 19:25:41 2015 @@ -22,8 +22,7 @@ @Override public void setParameters(int channel, HpsSiSensor sensor) { - tp = 50.0; -// tp = sensor.getShapeFitParameters(channel)[HpsSiSensor.TP_INDEX]; + tp = sensor.getShapeFitParameters(channel)[HpsSiSensor.TP_INDEX]; } @Override @@ -51,9 +50,8 @@ @Override public void setParameters(int channel, HpsSiSensor sensor) { -// tp = sensor.getShapeFitParameters(channel)[HpsSiSensor.TP_INDEX]; - tp = 80.0; - tp2 = 12.0; + tp = sensor.getShapeFitParameters(channel)[HpsSiSensor.TP_INDEX]; + tp2 = sensor.getShapeFitParameters(channel)[HpsSiSensor.TP_INDEX + 1]; peak_t = 3.0 * Math.pow(tp * Math.pow(tp2, 3), 0.25); //approximate solution to exp(x)=1+x+x^2*tp/(2*tp2), where x=(1/tp2-1/tp)*t peak_amp = getAmplitudeIntegralNorm(peak_t); } Modified: java/trunk/tracking/src/main/java/org/hps/recon/tracking/RawTrackerHitFitterDriver.java ============================================================================= --- java/trunk/tracking/src/main/java/org/hps/recon/tracking/RawTrackerHitFitterDriver.java (original) +++ java/trunk/tracking/src/main/java/org/hps/recon/tracking/RawTrackerHitFitterDriver.java Wed Apr 22 19:25:41 2015 @@ -33,6 +33,8 @@ private boolean useTimestamps = false; private boolean useTruthTime = false; private boolean subtractTOF = false; + private boolean subtractTriggerTime = false; + private int triggerPhaseOffset = 4; /** * Report time relative to the nearest expected truth event time. @@ -57,6 +59,14 @@ public void setSubtractTOF(boolean subtractTOF) { this.subtractTOF = subtractTOF; + } + + public void setSubtractTriggerTime(boolean subtractTriggerTime) { + this.subtractTriggerTime = subtractTriggerTime; + } + + public void setTriggerPhaseOffset(int triggerPhaseOffset) { + this.triggerPhaseOffset = triggerPhaseOffset; } public void setFitAlgorithm(String fitAlgorithm) { @@ -124,6 +134,9 @@ //===> ChannelConstants constants = HPSSVTCalibrationConstants.getChannelConstants((SiSensor) hit.getDetectorElement(), strip); //for (ShapeFitParameters fit : _shaper.fitShape(hit, constants)) { for (ShapeFitParameters fit : fitter.fitShape(hit, shape)) { + if (subtractTriggerTime) { + fit.setT0(fit.getT0() - (((event.getTimeStamp() + 4 * triggerPhaseOffset) % 24) - 12)); + } if (correctT0Shift) { //===> fit.setT0(fit.getT0() - constants.getT0Shift()); fit.setT0(fit.getT0() - sensor.getT0Shift());