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/FACILITY_DataReadWrite.ipf

    r573 r795  
    187187        // fill the data array with the detector values 
    188188        getDetectorData(fname,data) 
     189         
     190        Duplicate/O data linear_data                    // at this point, the data is still the raw data, and is linear_data 
     191         
     192        // proper error for counting statistics, good for low count values too 
     193        // rather than just sqrt(n) 
     194        // see N. Gehrels, Astrophys. J., 303 (1986) 336-346, equation (7) 
     195        // for S = 1 in eq (7), this corresponds to one sigma error bars 
     196        Duplicate/O linear_data linear_data_error 
     197        linear_data_error = 1 + sqrt(linear_data + 0.75)                                 
     198        // 
    189199         
    190200        //keep a string with the filename in the RAW folder 
     
    350360        data=temp0 
    351361        Redimension/N=(pixelsX,pixelsY) data            //,linear_data 
     362 
     363        Duplicate/O data linear_data_error 
     364        linear_data_error = 1 + sqrt(data + 0.75) 
     365         
     366        //just in case there are odd inputs to this, like negative intensities 
     367        WaveStats/Q linear_data_error 
     368        linear_data_error = numtype(linear_data_error[p]) == 0 ? linear_data_error[p] : V_avg 
     369        linear_data_error = linear_data_error[p] != 0 ? linear_data_error[p] : V_avg 
    352370         
    353371        //linear_data = data 
     
    458476// (3) close the file 
    459477 
     478// new, April 2011 for error propagation. fill these in with the facility- 
     479// specific versions, if desired. 
     480Function WriteTransmissionErrorToHeader(fname,transErr) 
     481        String fname 
     482        Variable transErr 
     483         
     484 
     485        return(0) 
     486End 
     487 
     488Function WriteBoxCountsErrorToHeader(fname,rel_err) 
     489        String fname 
     490        Variable rel_err 
     491         
     492        return(0) 
     493End 
     494 
     495Function getSampleTransError(fname) 
     496        String fname 
     497         
     498        return(0) 
     499end 
     500 
     501Function getBoxCountsError(fname) 
     502        String fname 
     503         
     504        return(0) 
     505end 
     506 
     507 
     508// end April 2011 additions 
     509 
    460510//sample transmission (0<T<=1) 
    461511Function WriteTransmissionToHeader(fname,trans) 
Note: See TracChangeset for help on using the changeset viewer.