Ignore:
Timestamp:
Apr 4, 2011 12:18:33 PM (11 years ago)
Author:
srkline
Message:

Changes to SANS reduction that apply to other Facilities:

These changes are related to the propagation of errors in 2D, on a
per-pixel basis. These changes only affect the errors that are reported in
the QxQy? ASCII file output. The 1D code is unaffected.

If these changes are not implemented, then errors of zero will be substitued as defaults
for these experimental errors.

Upon data loading, an error matrix, linear_data_error is generated and filled with
error values appropriate for Poisson statistics (not simply sqrt(n)).

4 functions in FACILITY_DataReadWrite.ipf have been added, and they are rather
self-explanatory:

In FACILITY_Utils.ipf, the AttenuatorTransmission?() function now returns
an additional parameter, atten_err, which is one standard deviation of the
attenuator transmission value. It returns a default error=0 (which is
correct if no attenuation is used). Facilities can fill this function in
with their own estimates for the uncertainty in the attenutator transmission.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/HFIR_DataReadWrite.ipf

    r776 r795  
    207207         
    208208        WAVE data=$"root:Packages:NIST:RAW:data" 
    209         Duplicate/O data $"root:Packages:NIST:RAW:linear_data"                  // data is "fresh" and linear scale, so copy it now 
    210          
     209        Duplicate/O data linear_data                    // data is "fresh" and linear scale, so copy it now 
     210                 
     211        // proper error for counting statistics, good for low count values too 
     212        // rather than just sqrt(n) 
     213        // see N. Gehrels, Astrophys. J., 303 (1986) 336-346, equation (7) 
     214        // for S = 1 in eq (7), this corresponds to one sigma error bars 
     215        Duplicate/O linear_data linear_data_error 
     216        linear_data_error = 1 + sqrt(linear_data + 0.75)                                 
     217        // 
    211218         
    212219        SetDataFolder root: 
     
    369376        data=temp0 
    370377        Redimension/N=(pixelsX,pixelsY) data            //,linear_data 
    371          
     378 
     379        Duplicate/O data linear_data_error 
     380        linear_data_error = 1 + sqrt(data + 0.75) 
     381         
     382        //just in case there are odd inputs to this, like negative intensities 
     383        WaveStats/Q linear_data_error 
     384        linear_data_error = numtype(linear_data_error[p]) == 0 ? linear_data_error[p] : V_avg 
     385        linear_data_error = linear_data_error[p] != 0 ? linear_data_error[p] : V_avg 
     386                 
    372387        //linear_data = data 
    373388         
     
    465480// read specific bits of information from the header 
    466481// each of these operations MUST take care of open/close on their own 
     482 
     483// new, April 2011 for error propagation. fill these in with the facility- 
     484// specific versions, if desired. 
     485Function WriteTransmissionErrorToHeader(fname,transErr) 
     486        String fname 
     487        Variable transErr 
     488         
     489 
     490        return(0) 
     491End 
     492 
     493Function WriteBoxCountsErrorToHeader(fname,rel_err) 
     494        String fname 
     495        Variable rel_err 
     496         
     497        return(0) 
     498End 
     499 
     500Function getSampleTransError(fname) 
     501        String fname 
     502         
     503        return(0) 
     504end 
     505 
     506Function getBoxCountsError(fname) 
     507        String fname 
     508         
     509        return(0) 
     510end 
     511 
     512 
     513// end April 2011 additions 
     514 
    467515 
    468516Function/S getStringFromHeader(fname,wantedterm) 
Note: See TracChangeset for help on using the changeset viewer.