Changeset 162


Ignore:
Timestamp:
Sep 13, 2007 5:00:59 PM (15 years ago)
Author:
ajj
Message:

Fixed USANS Slit Smearing Calculation.
Still need to check that it gives the same answer as the Lake desmearing.

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

    r160 r162  
    3232 
    3333        Make/D/O/N=(USANS_N,USANS_N) $(basestr+"_res") 
    34         //Make/O/N=(N,N) W1mat 
    35         //Make/O/N=(N,N) W2mat 
    36         //Make/O/N=(N,N) Rmat 
     34        Make/D/O/N=(USANS_N,USANS_N) W1mat 
     35        Make/D/O/N=(USANS_N,USANS_N) W2mat 
     36        Make/D/O/N=(USANS_N,USANS_N) Rmat 
    3737        Wave weights = $(basestr+"_res") 
    3838 
    3939        Variable/G USANS_m = EnterSlope() 
    40         if(USANS_m == 999) 
    41                 Killwaves/Z $(basestr+"_res") 
    42                 return(1)               //error 
    43         endif 
     40 
    4441        Variable tref = startMSTimer 
    4542        print "Calculating W1..." 
    46         weights = (p <= q ) && (q < USANS_N-1) ? CalcW1(p,q)  : 0 
     43        W1mat = (p <= q ) && (q <= USANS_N-2) ? CalcW1(p,q)  : 0 
    4744        print "Calculating W2..." 
    48         weights += (p+1 <= q ) && (q < USANS_N) ?  CalcW2(p,q) : 0 
     45        W2mat = (p+1 <= q ) && (q <= USANS_N-1) ?  CalcW2(p,q) : 0 
    4946        print "Calculating Remainders..." 
    50         weights += (q == USANS_N-1) ? CalcR(p) : 0 
     47        Rmat = (q == USANS_N-1) ? CalcR(p) : 0 
    5148//      print "Summing weights..." 
    52 //      Weights = W1mat + W2mat + Rmat 
     49        weights = W1mat + W2mat + Rmat 
    5350        print "Done" 
    5451        Variable ms = stopMSTimer(tref) 
     
    6461        Prompt slope "Enter a slope" 
    6562        DoPrompt "Enter Slope", slope 
    66                 If (V_Flag)  
    67                         return (999)            //return a bogus slope if the user canceled 
    68                 Endif    
     63                If (V_Flag) 
     64                        return (999)                    //return a bogus slope if the user canceled 
     65                Endif 
    6966        print "slope=", slope 
    7067        return slope 
     
    122119 
    123120        SVAR USANS_basestr 
     121        NVAR m = USANS_m 
    124122        NVAR N = USANS_N 
    125123        NVAR dQv = USANS_dQv 
     
    127125        Variable retval 
    128126        Wave Qval = $(USANS_basestr+"_q") 
     127        Wave Ival = $(USANS_basestr+"_i") 
    129128        Variable/G USANS_intQpt = Qval[i] 
    130129         
    131130        Variable lower = sqrt(qval[N-1]^2-qval[i]^2) 
    132         Variable upper = lower +dQv 
     131        Variable upper = dQv 
     132 
     133        if (i == N) 
     134                lower = 0 
     135        endif  
    133136         
    134137        retval = Integrate1D(Remainder,lower,upper) 
     138         
     139        retval *= 1/dQv 
    135140         
    136141        Return retval 
Note: See TracChangeset for help on using the changeset viewer.