Changeset 238


Ignore:
Timestamp:
Jan 14, 2008 4:25:16 PM (13 years ago)
Author:
ajj
Message:

Update to USANS slit-smearing on data load.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Analysis/branches/ajj_23APR07/IGOR_Package_Files/Put in User Procedures/SANS_Models_v3.00/USANS_SlitSmearing.ipf

    r222 r238  
    2222        Variable/G USANS_N=numpnts($(basestr+"_q")) 
    2323        Variable/G USANS_dQv = dQv 
    24         String/G USANS_basestr = basestr 
     24        String/G root:myGlobals:USANS_basestr = basestr 
    2525 
    2626        Make/D/O/N=(USANS_N,USANS_N) $(basestr+"_res") 
     
    3434        Variable/G USANS_slope_numpnts = 10 
    3535         
     36        Print "---- Calculating Weighting Matrix for USANS Data ----" 
     37         
    3638        EnterSlope(basestr) 
    37  
     39         
     40        //Deal with broken Pauseforuser 
     41        SetDataFolder $("root:"+basestr) 
     42         
    3843        print USANS_m 
    3944 
     
    6166        String baseStr 
    6267         
     68        NVAR USANS_m,USANS_slope_numpnts 
     69         
    6370//      Variable slope=-4 
    6471 
     
    7178//      return slope 
    7279 
    73         NewPanel /K=1/W=(1141,543,1548,910)/N=USANS_Slope as "USANS Slope Extrapolation" 
     80        NewPanel /W=(600,300,1000,700)/N=USANS_Slope as "USANS Slope Extrapolation" 
    7481        SetDrawLayer UserBack 
    7582        Button button_OK,pos={294,317},size={100,20},title="Accept Slope",font="Geneva" 
    7683        Button button_OK,proc=USANS_Slope_ButtonProc 
    77         Button button_Cancel,pos={233,317},size={55,20},title="Cancel",font="Geneva" 
    78         Button button_Cancel,proc=USANS_Slope_ButtonProc 
     84        //Button button_Cancel,pos={233,317},size={55,20},title="Cancel",font="Geneva" 
     85        //Button button_Cancel,proc=USANS_Slope_ButtonProc 
    7986        SetVariable setvar_numpnts, pos={43,350}, size={150,19}, title="# Points",fSize=13 
    8087        SetVariable setvar_numpnts, value= USANS_slope_numpnts  
     
    8693        SetActiveSubwindow ## 
    8794         
    88         Print GetDataFolder(1) 
     95        //Print TraceNameList("USANS_Slope#SlopePlot",";",1) 
     96         
     97        USANS_CalculateSlope(basestr,USANS_slope_numpnts) 
     98         
    8999        PauseForUser  USANS_Slope        
    90         Print GetDataFolder(1) 
    91100//      return slope 
    92101         
    93102End 
     103 
     104Function USANS_CalculateSlope(basestr, calcpoints) 
     105        String basestr 
     106        Variable calcpoints 
     107         
     108        Wave iw = $(basestr+"_i") 
     109        Wave qw = $(basestr+"_i") 
     110        Wave sw = $(basestr+"_i") 
     111 
     112        Variable num_extr=25 
     113        NVAR nend = USANS_slope_numpnts 
     114        // Make extra waves for extrapolation  
     115        // Taken from DSM_SetExtrWaves 
     116                 
     117        Make/O/D/N=(num_extr) extr_hqq,extr_hqi 
     118        extr_hqi=1              //default values 
     119 
     120        //set the q-range 
     121        Variable qmax,num 
     122 
     123        num=numpnts(qw) 
     124        qmax=6*qw[num-1] 
     125         
     126        extr_hqq = qw[num-1] + x * (qmax-qw[num-1])/num_extr 
     127                 
     128         
     129        // Modifed from DSM_DoExtraploate in LakeDesmearing_JB.ipf  
     130        // which is part of the USANS Reduction macros 
     131         
     132                 
     133        //      Wave extr_lqi=extr_lqi 
     134        //      Wave extr_lqq=extr_lqq 
     135        //      Wave extr_hqi=extr_hqi 
     136        //      Wave extr_hqq=extr_hqq 
     137                Variable/G V_FitMaxIters=300 
     138                Variable/G V_fitOptions=4               //suppress the iteration window 
     139                Variable retval 
     140                num=numpnts(iw) 
     141         
     142                Make/O/D P_coef={0,1,-4}                        //input 
     143        //      Make/O/T Constr={"K2<0","K2 > -20"} 
     144                //(set background to zero and hold fixed) 
     145                CurveFit/H="100" Power kwCWave=P_coef  iw[(num-1-nend),(num-1)] /X=qw /W=sw /D  
     146                extr_hqi=P_coef[0]+P_coef[1]*extr_hqq^P_coef[2] 
     147         
     148                Printf "Smeared Power law exponent = %g\r",P_coef[2] 
     149                Printf "**** For Desmearing, use a Power law exponent of %5.1f\r",P_coef[2]-1 
     150         
     151                retVal = P_coef[2]-1                     
     152                return(retVal) 
     153                 
     154End 
     155 
    94156 
    95157Function USANS_Slope_ButtonProc(ctrlName) : ButtonControl 
     
    115177 
    116178        Variable i,j 
    117         SVAR USANS_basestr 
     179        SVAR USANS_basestr=root:myGlobals:USANS_basestr  
     180        SetDataFolder $("root:"+USANS_basestr) 
     181 
     182         
     183         
    118184        NVAR dQv = USANS_dQv 
    119185         
     
    138204        Variable i,j 
    139205         
    140         SVAR USANS_basestr 
     206        SVAR USANS_basestr=root:myGlobals:USANS_basestr  
     207        SetDataFolder $("root:"+USANS_basestr) 
     208 
     209 
     210 
    141211        NVAR dQv = USANS_dQv 
    142212         
     
    161231        Variable i 
    162232 
    163         SVAR USANS_basestr 
     233        SVAR USANS_basestr=root:myGlobals:USANS_basestr  
     234        SetDataFolder $("root:"+USANS_basestr) 
     235 
     236 
    164237        NVAR m = USANS_m 
    165238        NVAR N = USANS_N 
     
    190263        Variable i 
    191264         
    192         SVAR USANS_basestr 
     265        SVAR USANS_basestr=root:myGlobals:USANS_basestr  
     266        SetDataFolder $("root:"+USANS_basestr) 
     267 
    193268        NVAR m = USANS_m 
    194269        NVAR qi = USANS_intQpt 
     
    202277 
    203278End 
    204  
    205 Window USANS_Slope() : Panel 
    206         PauseUpdate; Silent 1           // building window... 
    207         NewPanel /K=1/W=(1141,543,1548,910) as "USANS Slope Extrapolation" 
    208         SetDrawLayer UserBack 
    209         Button button_OK,pos={294,317},size={100,20},title="Accept Slope",font="Geneva" 
    210         Button button_Cancel,pos={233,317},size={55,20},title="Cancel",font="Geneva" 
    211         SetVariable setvar_Slope,pos={43,321},size={100,19},title="Slope",fSize=13 
    212         SetVariable setvar_Slope,limits={-inf,inf,0},value= USANS_m 
    213         Display/W=(9,6,402,305)/HOST=#  
    214         RenameWindow #,G0 
    215         SetActiveSubwindow ## 
    216 EndMacro 
Note: See TracChangeset for help on using the changeset viewer.