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/>