Print

Print


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());