Changeset 616


Ignore:
Timestamp:
Dec 16, 2009 9:34:13 PM (13 years ago)
Author:
srkline
Message:

Several changes:
1) added /I=1 flag in several places (mostly the invariant) so that the error wave would be interpreted as the standard deviation, not 1/s (Jae_Hie pointed this out)
2) put error checking in ProDiv? to warn if the pixel centers are more than 5 pixels from the expected 65,65 for on-center or 105,65 for the offset (usually run at 20 cm offset)
3) commented out the line in WriteQIS that outputs 2D resolution information to QxQy? data. I just don't think it's correct yet, and the 2D resolution smearing is not ready either.

Location:
sans/Dev/trunk/NCNR_User_Procedures
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Common/Packages/Invariant/Invariant_v40.ipf

    r570 r616  
    154154         
    155155        Make/O/D G_coef={100,-100}              //input 
    156         FuncFit Guinier_Fit G_coef iw[0,(nbeg-1)] /X=qw /W=sw /D  
     156        FuncFit Guinier_Fit G_coef iw[0,(nbeg-1)] /I=1 /X=qw /W=sw /D  
    157157        extr_lqi= Guinier_Fit(G_coef,extr_lqq) 
    158158         
     
    162162        Make/O/D P_coef={0,1,-4}                        //input 
    163163        //(set background to zero and hold fixed) 
    164         CurveFit/H="100" Power kwCWave=P_coef  iw[(num-1-nend),(num-1)] /X=qw /W=sw /D  
     164        CurveFit/H="100" Power kwCWave=P_coef  iw[(num-1-nend),(num-1)] /I=1 /X=qw /W=sw /D  
    165165        extr_hqi=P_coef[0]+P_coef[1]*extr_hqq^P_coef[2] 
    166166         
     
    391391        if(yesGuinier) 
    392392                Make/O/D G_coef={1000,-1000}            //input 
    393                 FuncFit Guinier_Fit G_coef iw[0,(nbeg-1)] /X=qw /W=sw /D  
     393                FuncFit Guinier_Fit G_coef iw[0,(nbeg-1)] /I=1 /X=qw /W=sw /D  
    394394                extr_lqi= Guinier_Fit(G_coef,extr_lqq) 
    395395                 
     
    400400                Make/O/D P_coef={0,1,-1}                        //input 
    401401                //(set background to zero and hold fixed) 
    402                 CurveFit/H="100" Power kwCWave=P_coef  iw[0,(nbeg-1)] /X=qw /W=sw /D  
     402                CurveFit/H="100" Power kwCWave=P_coef  iw[0,(nbeg-1)] /I=1 /X=qw /W=sw /D  
    403403                extr_lqi=P_coef[0]+P_coef[1]*extr_lqq^P_coef[2] 
    404404                //       
     
    461461        if(V_Value == 1) 
    462462                //hold the slope fixed, and the background 
    463                 CurveFit/H="101" Power kwCWave=P_coef  iw[(num-1-nend),(num-1)] /X=qw /W=sw /D  
     463                CurveFit/H="101" Power kwCWave=P_coef  iw[(num-1-nend),(num-1)] /I=1 /X=qw /W=sw /D  
    464464        else 
    465465                //(set background to zero and hold fixed) 
    466                 CurveFit/H="100" Power kwCWave=P_coef  iw[(num-1-nend),(num-1)] /X=qw /W=sw /D  
     466                CurveFit/H="100" Power kwCWave=P_coef  iw[(num-1-nend),(num-1)] /I=1 /X=qw /W=sw /D  
    467467        endif 
    468468         
  • sans/Dev/trunk/NCNR_User_Procedures/Common/Packages/LinearizedFits/LinearizedFits_v40.ipf

    r570 r616  
    519519        //if only /R used, residuals are automatically placed on graph 
    520520         
    521         CurveFit line yAxisWave(xcsr(A),xcsr(B)) /X=xAxisWave /W=yWtWave /D   
     521        CurveFit line yAxisWave(xcsr(A),xcsr(B)) /I=1 /X=xAxisWave /W=yWtWave /D   
    522522        //CurveFit line yAxisWave(xcsr(A),xcsr(B)) /X=xAxisWave /W=yWtWave  /R /D   
    523523        ModifyGraph rgb(fit_yAxisWave)=(0,0,0) 
  • sans/Dev/trunk/NCNR_User_Procedures/Common/Packages/PlotManager/USANS_SlitSmearing_v40.ipf

    r570 r616  
    290290                P_coef[1] = iw[num-1]/qw[num-1]^P_coef[2] 
    291291                 
    292                 CurveFit/H="100" Power kwCWave=P_coef  iw[(num-1-nend),(num-1)] /X=qw /W=sw /C=constr 
     292                CurveFit/H="100" Power kwCWave=P_coef  iw[(num-1-nend),(num-1)] /X=qw /I=1 /W=sw /C=constr 
    293293                extr_hqi=P_coef[0]+P_coef[1]*extr_hqq^P_coef[2] 
    294294         
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/ProDiv.ipf

    r609 r616  
    279279        STRUCT WMButtonAction &ba 
    280280 
     281        Variable err=0 
     282         
    281283        switch( ba.eventCode ) 
    282284                case 2: // mouse up 
     
    329331                        if(strlen(str) > 0) 
    330332                                proto[1] = str 
     333                                err = CheckDIVBeamCenter(str,65,65) 
     334                                if(err) 
     335                                        Abort "On-center EMP files do not have correct beam center" 
     336                                endif 
    331337                        else 
    332338                                Abort "Bad file number in no offset Emp" 
     
    334340                        str = ParseRunNumberList(gPlex) 
    335341                        if(strlen(str) > 0) 
     342                                err = CheckDIVBeamCenter(str,65,65) 
     343                                if(err) 
     344                                        Abort "On-center PLEX files do not have correct beam center" 
     345                                endif 
    336346                                ExecuteProtocol("root:myGlobals:Protocols:DIV_Protocol",str) 
    337347                        else 
     
    365375                        if(strlen(str) > 0) 
    366376                                proto[1] = str 
     377                                err = CheckDIVBeamCenter(str,105,65) 
     378                                if(err) 
     379                                        Abort "Off-center EMP files do not have correct beam center" 
     380                                endif 
    367381                        else 
    368382                                Abort "Bad file number in offset Emp" 
     
    370384                        str = ParseRunNumberList(gPlex_off) 
    371385                        if(strlen(str) > 0) 
     386                                err = CheckDIVBeamCenter(str,105,65) 
     387                                if(err) 
     388                                        Abort "On-center EMP files do not have correct beam center" 
     389                                endif 
    372390                                ExecuteProtocol("root:myGlobals:Protocols:DIV_Protocol",str) 
    373391                        else 
     
    529547        return(0) 
    530548End 
     549 
     550//loop through each file and check the x and y center 
     551// within some tolerance (5 pixels) should be fine 
     552Function CheckDIVBeamCenter(str,xc,yc) 
     553        String str 
     554        Variable xc,yc 
     555         
     556        Variable err,ii,num,tmpX,tmpY,badCtr,tol=5 
     557        String fileStr,pathStr 
     558         
     559        PathInfo catPathName 
     560        pathStr=S_path 
     561         
     562        num = ItemsInList(str,",") 
     563        ii=0 
     564        badCtr = 0 
     565        do 
     566                fileStr = pathStr + StringFromList(ii, str,",") 
     567                tmpX = GetBeamXPos(fileStr) 
     568                tmpY = GetBeamYPos(fileStr) 
     569                if(abs(tmpX - xc) > tol) 
     570                        badCtr = 1 
     571                endif 
     572                if(abs(tmpY - yc) > tol) 
     573                        badCtr = 1 
     574                endif            
     575                ii+=1 
     576        while(ii<num && !badCtr) 
     577         
     578        return(badCtr) 
     579end 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/WriteQIS.ipf

    r570 r616  
    637637//limited header information? 
    638638// 
     639// *** DEC 2009 *** 
     640// Removed the SAVE of the 2D resolution waves - I'm not sure they are correct. Can't verify the  
     641// smearing of the 2D data yet. For a future minor release... 
     642// 
     643// 
    639644// - creates the qx and qy data here, based on the data and header information 
    640645// 
     
    799804        //not demo-compatible, but approx 8x faster!!    
    800805#if(cmpstr(stringbykey("IGORKIND",IgorInfo(0),":",";"),"pro") == 0)      
    801 //      Save/G/M="\r\n" labelWave,qx_val,qy_val,z_val as fullpath       // /M=termStr specifies terminator       
    802         Save/G/M="\r\n" labelWave,qx_val,qy_val,z_val,qz_val,SigmaQx,SigmaQy,fSubS as fullpath  // for debugging, write out everything 
     806        Save/G/M="\r\n" labelWave,qx_val,qy_val,z_val as fullpath       // without resolution 
     807//      Save/G/M="\r\n" labelWave,qx_val,qy_val,z_val,qz_val,SigmaQx,SigmaQy,fSubS as fullpath  // write out the resolution information 
    803808#else 
    804809        Open refNum as fullpath 
     
    859864End 
    860865 
    861  
Note: See TracChangeset for help on using the changeset viewer.