From 2ce14695787fc16da90c82a3bbbe58256c0791ff Mon Sep 17 00:00:00 2001 From: Brendan Sullivan <sullivanbt@ornl.gov> Date: Tue, 31 Jul 2018 11:23:57 -0400 Subject: [PATCH] Re #22811 remove instrumentName parameter --- .../IntegratePeaksProfileFitting.py | 2 -- scripts/SCD_Reduction/BVGFitTools.py | 28 +++++++++---------- scripts/SCD_Reduction/ICCFitTools.py | 28 ++++++++----------- 3 files changed, 26 insertions(+), 32 deletions(-) diff --git a/Framework/PythonInterface/plugins/algorithms/IntegratePeaksProfileFitting.py b/Framework/PythonInterface/plugins/algorithms/IntegratePeaksProfileFitting.py index a42fe352bda..111b06c4dc3 100644 --- a/Framework/PythonInterface/plugins/algorithms/IntegratePeaksProfileFitting.py +++ b/Framework/PythonInterface/plugins/algorithms/IntegratePeaksProfileFitting.py @@ -115,7 +115,6 @@ class IntegratePeaksProfileFitting(PythonAlgorithm): # The default values are good for MaNDi - new instruments can be added by adding a different elif # statement. # If you change these values or add an instrument, documentation should also be changed. - instrumentName = peaks_ws.getInstrument().getFullName() try: nTheta = peaks_ws.getInstrument().getIntParameter("numBinsTheta")[0] nPhi = peaks_ws.getInstrument().getIntParameter("numBinsPhi")[0] @@ -173,7 +172,6 @@ class IntegratePeaksProfileFitting(PythonAlgorithm): maxdtBinWidth=maxdtBinWidth, pplmin_frac=pplmin_frac, pplmax_frac=pplmax_frac, forceCutoff=forceCutoff, edgeCutoff=edgeCutoff, - instrumentName=instrumentName, peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) diff --git a/scripts/SCD_Reduction/BVGFitTools.py b/scripts/SCD_Reduction/BVGFitTools.py index 7bceca943bd..7fbf60c1295 100644 --- a/scripts/SCD_Reduction/BVGFitTools.py +++ b/scripts/SCD_Reduction/BVGFitTools.py @@ -15,7 +15,7 @@ def get3DPeak(peak, peaks_ws, box, padeCoefficients, qMask, nTheta=150, nPhi=150 plotResults=False, zBG=1.96, bgPolyOrder=1, fICCParams=None, oldICCFit=None, strongPeakParams=None, forceCutoff=250, edgeCutoff=15, neigh_length_m=3, q_frame='sample', dtSpread=0.03, pplmin_frac=0.8, pplmax_frac=1.5, mindtBinWidth=1, - maxdtBinWidth=50, figureNumber=2, instrumentName=None, peakMaskSize=5, iccFitDict=None): + maxdtBinWidth=50, figureNumber=2, peakMaskSize=5, iccFitDict=None): n_events = box.getNumEventsArray() if q_frame == 'lab': @@ -31,12 +31,12 @@ def get3DPeak(peak, peaks_ws, box, padeCoefficients, qMask, nTheta=150, nPhi=150 n_events, peak=peak, box=box, qMask=qMask, calc_pp_lambda=True, padeCoefficients=padeCoefficients, neigh_length_m=neigh_length_m, pp_lambda=None, pplmin_frac=pplmin_frac, pplmax_frac=pplmax_frac, mindtBinWidth=mindtBinWidth, maxdtBinWidth=maxdtBinWidth, - instrumentName=instrumentName, peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) + peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) YTOF, fICC, x_lims = fitTOFCoordinate( box, peak, padeCoefficients, dtSpread=dtSpread, qMask=qMask, bgPolyOrder=bgPolyOrder, zBG=zBG, plotResults=plotResults, pp_lambda=pp_lambda, neigh_length_m=neigh_length_m, pplmin_frac=pplmin_frac, pplmax_frac=pplmax_frac, mindtBinWidth=mindtBinWidth, maxdtBinWidth=maxdtBinWidth, - instrumentName=instrumentName, peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) + peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) chiSqTOF = mtd['fit_Parameters'].column(1)[-1] else: # we already did I-C profile, so we'll just read the parameters pp_lambda = fICCParams[-1] @@ -50,7 +50,7 @@ def get3DPeak(peak, peaks_ws, box, padeCoefficients, qMask, nTheta=150, nPhi=150 fICC['HatWidth'] = fICCParams[10] fICC['KConv'] = fICCParams[11] goodIDX, _ = ICCFT.getBGRemovedIndices( - n_events, pp_lambda=pp_lambda, qMask=qMask, instrumentName=instrumentName, peakMaskSize=peakMaskSize, + n_events, pp_lambda=pp_lambda, qMask=qMask, peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) chiSqTOF = fICCParams[4] #Last entry @@ -82,7 +82,7 @@ def get3DPeak(peak, peaks_ws, box, padeCoefficients, qMask, nTheta=150, nPhi=150 numDetCols = peaks_ws.getInstrument().getIntParameter("numDetCols")[0] nPixels = [numDetRows, numDetCols] except: - UserWarning('Instrument name {} not found. Assuming a 255*255 detector!'.format(instrumentName)) + UserWarning('Detector size not found in instrument parameters file. Assuming a 255*255 detector!') nPixels = [255,255] useForceParams = peak.getIntensity() < forceCutoff or peak.getRow() <= dEdge or peak.getRow( @@ -114,11 +114,11 @@ def get3DPeak(peak, peaks_ws, box, padeCoefficients, qMask, nTheta=150, nPhi=150 phthPeak[0], phthPeak[1])) params, h, t, p = doBVGFit(box, nTheta=nTheta, nPhi=nPhi, fracBoxToHistogram=fracBoxToHistogram, - goodIDX=goodIDX, forceParams=strongPeakParams[nnIDX], instrumentName=instrumentName, + goodIDX=goodIDX, forceParams=strongPeakParams[nnIDX], doPeakConvolution=doPeakConvolution, sigX0Scale=sigX0Scale, sigY0Scale=sigY0Scale) else: # Just do the fit - no nearest neighbor assumptions params, h, t, p = doBVGFit( - box, nTheta=nTheta, nPhi=nPhi, fracBoxToHistogram=fracBoxToHistogram, goodIDX=goodIDX, instrumentName=instrumentName, + box, nTheta=nTheta, nPhi=nPhi, fracBoxToHistogram=fracBoxToHistogram, goodIDX=goodIDX, doPeakConvolution=doPeakConvolution, sigX0Scale=sigX0Scale, sigY0Scale=sigY0Scale) if plotResults: @@ -145,9 +145,9 @@ def get3DPeak(peak, peaks_ws, box, padeCoefficients, qMask, nTheta=150, nPhi=150 # Do scaling to the data if doPeakConvolution: #This means peaks will have gaps, so we only use good data to scale - Y, redChiSq, scaleFactor = fitScaling(n_events, box, YTOF, YBVG, goodIDX=goodIDX, instrumentName=instrumentName) + Y, redChiSq, scaleFactor = fitScaling(n_events, box, YTOF, YBVG, goodIDX=goodIDX) else: - Y, redChiSq, scaleFactor = fitScaling(n_events, box, YTOF, YBVG, instrumentName=instrumentName) + Y, redChiSq, scaleFactor = fitScaling(n_events, box, YTOF, YBVG) YBVG2 = bvg(1.0, mu, sigma, XTHETA, XPHI, 0) YTOF2 = getYTOF(fICC, XTOF, x_lims) Y2 = YTOF2 * YBVG2 @@ -193,7 +193,7 @@ def boxToTOFThetaPhi(box, peak): return X -def fitScaling(n_events, box, YTOF, YBVG, goodIDX=None, neigh_length_m=3, instrumentName=None): +def fitScaling(n_events, box, YTOF, YBVG, goodIDX=None, neigh_length_m=3): YJOINT = 1.0 * YTOF * YBVG YJOINT /= 1.0 * YJOINT.max() @@ -252,7 +252,7 @@ def getXTOF(box, peak): def fitTOFCoordinate(box, peak, padeCoefficients, dtSpread=0.03, minFracPixels=0.01, neigh_length_m=3, zBG=1.96, bgPolyOrder=1, qMask=None, plotResults=False, fracStop=0.01, pp_lambda=None, pplmin_frac=0.8, pplmax_frac=1.5, mindtBinWidth=1, - maxdtBinWidth=50, instrumentName=None, peakMaskSize=5, iccFitDict=None): + maxdtBinWidth=50, peakMaskSize=5, iccFitDict=None): # Get info from the peak tof = peak.getTOF() # in us @@ -271,12 +271,12 @@ def fitTOFCoordinate(box, peak, padeCoefficients, dtSpread=0.03, minFracPixels=0 neigh_length_m=neigh_length_m, zBG=zBG, pp_lambda=pp_lambda, pplmin_frac=pplmin_frac, pplmax_frac=pplmax_frac, mindtBinWidth=mindtBinWidth, maxdtBinWidth=maxdtBinWidth, - instrumentName=instrumentName, peakMaskSize=peakMaskSize, + peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) fitResults, fICC = ICCFT.doICCFit(tofWS, energy, flightPath, padeCoefficients, fitOrder=bgPolyOrder, constraintScheme=1, - instrumentName=instrumentName, iccFitDict=iccFitDict) + iccFitDict=iccFitDict) for i, param in enumerate(['A', 'B', 'R', 'T0', 'Scale', 'HatWidth', 'KConv']): fICC[param] = mtd['fit_Parameters'].row(i)['Value'] @@ -429,7 +429,7 @@ def compareBVGFitData(box, params, nTheta=200, nPhi=200, figNumber=2, fracBoxToH def doBVGFit(box, nTheta=200, nPhi=200, zBG=1.96, fracBoxToHistogram=1.0, goodIDX=None, - forceParams=None, forceTolerance=0.1, dth=10, dph=10, instrumentName=None, + forceParams=None, forceTolerance=0.1, dth=10, dph=10, doPeakConvolution=False, sigX0Scale=1., sigY0Scale=1.): """ doBVGFit takes a binned MDbox and returns the fit of the peak shape along the non-TOF direction. This is done in one of two ways: diff --git a/scripts/SCD_Reduction/ICCFitTools.py b/scripts/SCD_Reduction/ICCFitTools.py index bc9a6eb6956..d4cc146458b 100644 --- a/scripts/SCD_Reduction/ICCFitTools.py +++ b/scripts/SCD_Reduction/ICCFitTools.py @@ -107,7 +107,7 @@ def getQXQYQZ(box): def getQuickTOFWS(box, peak, padeCoefficients, goodIDX=None, dtSpread=0.03, qMask=None, pp_lambda=None, minppl_frac=0.8, maxppl_frac=1.5, mindtBinWidth=1, maxdtBinWidth=50, - constraintScheme=1, instrumentName=None, peakMaskSize=5, iccFitDict=None): + constraintScheme=1, peakMaskSize=5, iccFitDict=None): """ getQuickTOFWS - generates a quick-and-dirty TOFWS. Useful for determining the background. Input: @@ -145,11 +145,11 @@ def getQuickTOFWS(box, peak, padeCoefficients, goodIDX=None, dtSpread=0.03, qMas tofWS, ppl = getTOFWS(box, flightPath, scatteringHalfAngle, tof, peak, qMask, dtSpread=dtSpread, minFracPixels=0.01, neigh_length_m=3, zBG=1.96, pp_lambda=pp_lambda, calc_pp_lambda=calc_pp_lambda, pplmin_frac=minppl_frac, pplmax_frac=minppl_frac, - mindtBinWidth=mindtBinWidth, maxdtBinWidth=maxdtBinWidth, instrumentName=instrumentName, + mindtBinWidth=mindtBinWidth, maxdtBinWidth=maxdtBinWidth, peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) fitResults, fICC = doICCFit( tofWS, energy, flightPath, padeCoefficients, fitOrder=1, constraintScheme=constraintScheme, - instrumentName=instrumentName, iccFitDict=iccFitDict) + iccFitDict=iccFitDict) h = [tofWS.readY(0), tofWS.readX(0)] chiSq = fitResults.OutputChi2overDoF @@ -213,7 +213,7 @@ def getPoissionGoodIDX(n_events, zBG=1.96, neigh_length_m=3): def getOptimizedGoodIDX(n_events, padeCoefficients, zBG=1.96, neigh_length_m=3, qMask=None, peak=None, box=None, pp_lambda=None, peakNumber=-1, minppl_frac=0.8, maxppl_frac=1.5, mindtBinWidth=1, maxdtBinWidth=50, - constraintScheme=1, instrumentName=None, peakMaskSize=5, iccFitDict=None): + constraintScheme=1, peakMaskSize=5, iccFitDict=None): """ getOptimizedGoodIDX - returns a numpy arrays which is true if the voxel contains events at the zBG z level (1.96=95%CI). Rather than using Poission statistics, this function @@ -235,7 +235,6 @@ def getOptimizedGoodIDX(n_events, padeCoefficients, zBG=1.96, neigh_length_m=3, mindtBinWidth - the largest dt (in us) allowed for constructing the TOF profile. constraintScheme - sets the constraints for TOF profile fitting. Leave as 1 if you're not sure how to modify this. - instrumentName - string containing the instrument name iccFitDict - a dictionary containing ICC fit constraints and possibly initial guesses Output: @@ -299,7 +298,7 @@ def getOptimizedGoodIDX(n_events, padeCoefficients, zBG=1.96, neigh_length_m=3, chiSq, h, intens, sigma = getQuickTOFWS(box, peak, padeCoefficients, goodIDX=goodIDX, qMask=qMask, pp_lambda=pp_lambda, minppl_frac=minppl_frac, maxppl_frac=maxppl_frac, mindtBinWidth=mindtBinWidth, maxdtBinWidth=maxdtBinWidth, constraintScheme=constraintScheme, - instrumentName=instrumentName, peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) + peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) except: #raise break @@ -323,7 +322,7 @@ def getOptimizedGoodIDX(n_events, padeCoefficients, zBG=1.96, neigh_length_m=3, chiSq, h, intens, sigma = getQuickTOFWS(box, peak, padeCoefficients, goodIDX=goodIDX, qMask=qMask, pp_lambda=pp_lambda, minppl_frac=minppl_frac, maxppl_frac=maxppl_frac, mindtBinWidth=mindtBinWidth, maxdtBinWidth=maxdtBinWidth, - instrumentName=instrumentName, peakMaskSize=peakMaskSize, + peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) if qMask is not None: return goodIDX*qMask, pp_lambda @@ -333,7 +332,7 @@ def getOptimizedGoodIDX(n_events, padeCoefficients, zBG=1.96, neigh_length_m=3, def getBGRemovedIndices(n_events, zBG=1.96, calc_pp_lambda=False, neigh_length_m=3, qMask=None, peak=None, box=None, pp_lambda=None, peakNumber=-1, padeCoefficients=None, pplmin_frac=0.8, pplmax_frac=1.5, mindtBinWidth=1, maxdtBinWidth=50, - constraintScheme=1, instrumentName=None, peakMaskSize=5, iccFitDict=None): + constraintScheme=1, peakMaskSize=5, iccFitDict=None): """ getBGRemovedIndices - A wrapper for getOptimizedGoodIDX Input: @@ -391,7 +390,7 @@ def getBGRemovedIndices(n_events, zBG=1.96, calc_pp_lambda=False, neigh_length_m minppl_frac=pplmin_frac, maxppl_frac=pplmax_frac, qMask=qMask, peak=peak, box=box, pp_lambda=pp_lambda, peakNumber=peakNumber, mindtBinWidth=mindtBinWidth, maxdtBinWidth=maxdtBinWidth, - constraintScheme=constraintScheme, instrumentName=instrumentName, + constraintScheme=constraintScheme, peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) except KeyboardInterrupt: sys.exit() @@ -553,7 +552,7 @@ def get_pp_lambda(n_events, hasEventsIDX): def getTOFWS(box, flightPath, scatteringHalfAngle, tofPeak, peak, qMask, zBG=-1.0, dtSpread=0.02, minFracPixels=0.005, workspaceNumber=None, neigh_length_m=0, pp_lambda=None, calc_pp_lambda=False, padeCoefficients=None, pplmin_frac=0.8, pplmax_frac=1.5, peakMaskSize=5, - mindtBinWidth=1, maxdtBinWidth=50, constraintScheme=1, instrumentName=None, iccFitDict=None): + mindtBinWidth=1, maxdtBinWidth=50, constraintScheme=1, iccFitDict=None): """ Builds a TOF profile from the data in box which is nominally centered around a peak. Input: @@ -579,7 +578,6 @@ def getTOFWS(box, flightPath, scatteringHalfAngle, tofPeak, peak, qMask, zBG=-1. maxdtBinWidth - the largest dt (in us) allowed for constructing the TOF profile. constraintScheme - sets the constraints for TOF profile fitting. Leave as 1 if you're not sure how to modify this. - instrumentName = string containing instrument name iccFitDict - a dictionary containing ICC fit constraints and possibly initial guesses Output: @@ -598,7 +596,7 @@ def getTOFWS(box, flightPath, scatteringHalfAngle, tofPeak, peak, qMask, zBG=-1. calc_pp_lambda=calc_pp_lambda, padeCoefficients=padeCoefficients, pplmin_frac=pplmin_frac, pplmax_frac=pplmax_frac, mindtBinWidth=mindtBinWidth, maxdtBinWidth=maxdtBinWidth, - constraintScheme=constraintScheme, instrumentName=instrumentName, + constraintScheme=constraintScheme, peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) hasEventsIDX = np.logical_and(goodIDX, qMask) boxMeanIDX = np.where(hasEventsIDX) @@ -828,7 +826,7 @@ def getBoxFracHKL(peak, peaks_ws, MDdata, UBMatrix, peakNumber, dQ, dQPixel=0.00 def doICCFit(tofWS, energy, flightPath, padeCoefficients, constraintScheme=None, outputWSName='fit', fitOrder=1, - instrumentName=None, iccFitDict=None): + iccFitDict=None): """ doICCFit - Carries out the actual least squares fit for the TOF workspace. Intput: @@ -894,7 +892,6 @@ def doICCFit(tofWS, energy, flightPath, padeCoefficients, constraintScheme=None, fICC.setPenalizedConstraints(A0=A0, B0=B0, R0=R0, T00=T00, KConv0=KConv0, penalty=1.0e10) except: fICC.setPenalizedConstraints(A0=A0, B0=B0, R0=R0, T00=T00, KConv0=KConv0, penalty=None) - print(fICC) if constraintScheme == 2: try: fICC.setPenalizedConstraints(A0=[0.0001, 1.0], B0=[0.005, 1.5], R0=[0.00, 1.], Scale0=[ @@ -964,7 +961,6 @@ def integrateSample(run, MDdata, peaks_ws, paramList, UBMatrix, dQ, qMask, padeC fitDict - if keepFitDict is False, an empty dictionary. If keepFitDict is true, a dictionary (integer peak number as key) containing the x, yData, yFit for each peak. """ - instrumentName = peaks_ws.getInstrument().getFullName() if p is None: p = range(peaks_ws.getNumberPeaks()) fitDict = {} @@ -996,7 +992,7 @@ def integrateSample(run, MDdata, peaks_ws, paramList, UBMatrix, dQ, qMask, padeC mindtBinWidth=mindtBinWidth, maxdtBinWidth=maxdtBinWidth, pplmin_frac=minpplfrac, pplmax_frac=maxpplfrac, - constraintScheme=constraintScheme, instrumentName=instrumentName, + constraintScheme=constraintScheme, peakMaskSize=peakMaskSize, iccFitDict=iccFitDict) # --IN PRINCIPLE!!! WE CALCULATE THIS BEFORE GETTING HERE tofWS = mtd['tofWS'] -- GitLab