Author: [log in to unmask]
Date: Tue Jun 9 13:46:19 2015
New Revision: 3116
Log:
adding ability to set pulse t0 range allowed in pulse fitting. this is to allow it to work for simulation
Modified:
java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalPulseFitter.java
java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverter.java
java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverterDriver.java
Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalPulseFitter.java
=============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalPulseFitter.java (original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalPulseFitter.java Tue Jun 9 13:46:19 2015
@@ -32,7 +32,7 @@
private EcalConditions ecalConditions = null;
// don't bother fitting pulses with threshold crossing outside this sample range:
- private final static int threshRange[]={7,20}; // (28 ns <--> 80 ns)
+ public int threshRange[]={7,20}; // (28 ns <--> 80 ns)
// fit sample range relative to threshold crossing:
private final static int fitRange[]={-10,15};
@@ -180,10 +180,14 @@
else fitFcn3Pole.setParameter("width",threePoleWidths[cid-1]);
// constrain parameters:
+// fitter.fitParameterSettings("time0").setBounds(1,30);
+ double t0min=threshRange[0]-6;
+ double t0max=threshRange[1]+10;
+ if (t0min<1) t0min=1;
+ if (t0max>=samples.length-5) t0max=samples.length-6;
+ fitter.fitParameterSettings("time0").setBounds(t0min,t0max);
+ fitter.fitParameterSettings("width").setBounds(0.1,5);
fitter.fitParameterSettings("integral").setBounds(0,999999);
- fitter.fitParameterSettings("time0").setBounds(1,30);
-// fitter.fitParameterSettings("time0").setBounds(threshRange[0]-5,threshRange[1]+20);
- fitter.fitParameterSettings("width").setBounds(0.1,5);
if (fixShapeParameter) fitter.fitParameterSettings("width").setFixed(true);
if (debug>0) {
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 Jun 9 13:46:19 2015
@@ -151,7 +151,14 @@
public void setUseFit(boolean useFit) { this.useFit=useFit; }
public void setFixShapeParameter(boolean fix) { pulseFitter.fixShapeParameter=fix; }
- public void setGlobalFixedPulseWidth(double width) { pulseFitter.globalThreePoleWidth=width; pulseFitter.fixShapeParameter=true;}
+ public void setGlobalFixedPulseWidth(double width) {
+ pulseFitter.globalThreePoleWidth=width;
+ pulseFitter.fixShapeParameter=true;
+ }
+ public void setFitThresholdRange(int sample1,int sample2) {
+ pulseFitter.threshRange[0]=sample1;
+ pulseFitter.threshRange[1]=sample2;
+ }
public void setLeadingEdgeThreshold(double thresh) {
leadingEdgeThreshold=thresh;
Modified: java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverterDriver.java
=============================================================================
--- java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverterDriver.java (original)
+++ java/trunk/ecal-recon/src/main/java/org/hps/recon/ecal/EcalRawConverterDriver.java Tue Jun 9 13:46:19 2015
@@ -48,7 +48,7 @@
}
/*
- * Fix 3-pole function width to be the same for all 442 ECal channels. Units=ns.
+ * Fix 3-pole function width to be the same for all 442 ECal channels. Units=samples.
*/
public void setGlobalFixedPulseWidth(double width) { converter.setGlobalFixedPulseWidth(width); }
@@ -61,6 +61,11 @@
* Set to <code>true</code> to fix fitted pulse widths to their channel's mean value:<br/>
*/
public void setFixShapeParameter(boolean fix) { converter.setFixShapeParameter(fix); }
+
+ /*
+ * Limit threshold crossing range for pulse-fitter. Units=samples.
+ */
+ public void setFitThresholdRange(int sample1,int sample2) { converter.setFitThresholdRange(sample1,sample2); }
/**
* Set to <code>true</code> to use the "2014" gain formula:<br/>
|