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/Reduction/SANS
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • 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.