Ignore:
Timestamp:
Jul 23, 2008 1:11:58 PM (14 years ago)
Author:
srkline
Message:

Several changes:

New version of ILL_DataReadWrite. Some changes added to Lionel's work to get the transmission calculation working corectly.

Changes to the wrapper to get the cursors on/off working correctly, as well as USANS matrix recalculation during normal fitting and during Global fitting. It may ask to recalculate the matrix occasionally when using the full data set - even though it really doesn't need to - but this is as a precaution.

Re-worked the header of the GRASP-export ASCII data to much more closely match the VAX output. I couldn't find any problem with the data block, so maybe GRASP was having trouble with the header.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/SANS/Analysis/Models/Packages/Wrapper_v40.ipf

    r393 r394  
    153153                                ControlUpdate/W=WrapperPanel popup_0 
    154154                                 
    155                                 // fake mouse up 
     155                                // fake mouse up to pop the menu 
    156156                                Struct WMPopupAction ps 
    157157                                ps.eventCode = 2                //fake mouse up 
    158         //                      ps.popStr = str 
    159158                                DataSet_PopMenuProc(ps) 
    160                                  
    161                                 // new data set has been selected, always uncheck the "use cursors", other checkboxes are benign. 
    162                                 CheckBox check_0,win=WrapperPanel,value=0 
    163159                        endif 
    164160                        break 
    165161        endswitch 
    166  
    167  
     162         
    168163        return 0 
    169164End 
    170165 
    171166 
    172 // is there a simpler way to do this? 
     167// is there a simpler way to do this? I don't think so. 
    173168Function/S W_DataSetPopupList() 
    174169 
    175         String str=GetAList(4),tmp="",onTargetStr="" 
    176         Variable ii 
    177 //      ControlInfo/W=WrapperPanel check_3 
    178 //      if(V_Value==1)          //if "from target" checked 
    179 //              //ther must be a better way to do this 
    180 //              onTargetStr = TraceNameList("",";",1) 
    181 //              onTargetStr = ReplaceString("_i",onTargetStr,"")                //get rid of the "_i" 
    182 //              for(ii=0;ii<ItemsInList(onTargetStr);ii+=1) 
    183 //                      if(WhichListItem(StringFromList(ii,onTargetStr,";"), str  , ";") != -1) 
    184 //                              tmp = Addlistitem(StringFromList(ii,onTargetStr,";"),tmp)               //only keep the matches w/data folder listing 
    185 //                      endif 
    186 //              endfor 
    187 //              return(tmp) 
    188 //      endif 
     170        String str=GetAList(4) 
    189171 
    190172        if(strlen(str)==0) 
     
    383365                        // default epsilon values, sometimes needed for the fit 
    384366                         
    385  
    386367                        WAVE/T LoLim = $("LoLim_"+suffix) 
    387368                        WAVE/T HiLim = $("HiLim_"+suffix) 
     
    451432Function DataSet_PopMenuProc(pa) : PopupMenuControl 
    452433        STRUCT WMPopupAction &pa 
    453  
     434         
    454435        switch( pa.eventCode ) 
    455436                case 2: // mouse up 
    456                 // make sure that the cursors are on/off appropriately 
    457                 // check to make sure there really is a "topmost" graph          
    458 //                      String topGraph= WinName(0,1)   //this is the topmost graph 
    459 //                      if(cmpstr(topGraph,"")==0)      //no graphs, uncheck and exit 
    460 //                              CheckBox check_0,value=0 
    461 //                      else 
    462 //                              String ciStr = CsrInfo(A , topGraph) 
    463 //                               
    464 //                              ControlInfo/W=wrapperpanel popup_0 
    465 //                              String folderStr=S_Value 
    466 //                              String traceList = TraceNameList(topGraph, ";", 1 )              
    467 //                       
    468 //                      endif 
    469                                                  
     437                        // make sure that the cursors are on/off appropriately 
     438                        // let the cursors checkbox decide what to do, sending the current state 
     439                        ControlInfo/W=WrapperPanel check_0 
     440                        STRUCT WMCheckboxAction cba 
     441                        cba.eventCode = 2 
     442                        cba.checked = V_Value 
     443                        UseCursorsWrapperProc(cba) 
     444                                         
    470445                        // then cascade the function/coefficient popups 
    471446                        Struct WMPopupAction ps 
     
    782757 
    783758        // 20JUN if useCursors is true, and there are no cursors on the specified data set, uncheck and set to false 
     759        // this is a last line of defense, and should never actually do anything... 
    784760        if(useCursors) 
    785761                useCursors = AreCursorsCorrect(folderStr) 
     
    804780                        // need to recalculate 
    805781                        USANS_RE_CalcWeights(folderStr,pt1,pt2) 
    806                 endif 
     782                        Print "Done recalculating the matrix" 
     783                endif 
     784                 
    807785                Wave trimResW=$(DF+folderStr+"_res"+"t")        //put the trimmed resW in the struct for the fit! 
    808786                Wave fs.resW=trimResW 
    809                  
    810                 Print "Done recalculating the matrix" 
    811 //////WRONG WAY 
    812 //              Make/O/D/N=(newN,newN) $(DF+"crsrResW") 
    813 //              WAVE crsrResW = $(DF+"crsrResW") 
    814 //              crsrResW = resW[p+pt1][q+pt1] 
    815 //              //assign to the struct 
    816 //              WAVE fs.resW =  crsrResW                 
    817 ///////////// 
    818         endif 
    819          
    820         if(!useCursors && (dimsize(resW,1) > 4) ) 
    821                 // avoid an odd sequence of y/n cursors that can lead to a truncated res matrix, but useCursors is not selected 
    822                 if(waveExists($("root:"+folderStr+":weights_save"))) 
    823                         Duplicate/O $("root:"+folderStr+":weights_save"), $("root:"+folderStr+":"+folderStr+"_res") 
    824                 endif 
    825         endif 
    826          
     787 
     788        endif 
     789                 
    827790// create these variables so that FuncFit will set them on exit 
    828791        Variable/G V_FitError=0                         //0=no err, 1=error,(2^1+2^0)=3=singular matrix 
     
    11921155        switch( cba.eventCode ) 
    11931156                case 2: // mouse up 
     1157                 
    11941158                        // check to make sure there really is a "topmost" graph          
    11951159                        String topGraph= WinName(0,1)   //this is the topmost graph 
     
    12151179                                        Cursor/P/W=$topGraph/A=0 B, $(folderStr+"_i"),numpnts(yw)-1                     //deactivate the one at the high Q end 
    12161180                                        DoUpdate 
    1217 //                              else            //if (strlen(ciStr)!=0 && strsearch(traceList, folderStr, 0) != -1 ) //cursors present, but on wrong data 
    1218 //                                      Wave yw=$("root:"+folderStr+":"+folderStr+"_i") 
    1219 //                                      Cursor/P/W=$topGraph A, $(folderStr+"_i"),0                                                             //move the cursors 
    1220 //                                      Cursor/P/W=$topGraph/A=0 B, $(folderStr+"_i"),numpnts(yw)-1 
    1221 //                                      DoUpdate 
     1181                                elseif (strlen(ciStr)!=0 && strsearch(traceList, folderStr, 0) != -1 ) //cursors present, but on wrong data 
     1182                                        Wave yw=$("root:"+folderStr+":"+folderStr+"_i") 
     1183                                        Cursor/P/W=$topGraph A, $(folderStr+"_i"),0                                                             //move the cursors 
     1184                                        Cursor/P/W=$topGraph/A=0 B, $(folderStr+"_i"),numpnts(yw)-1 
     1185                                        DoUpdate 
    12221186                                endif 
    1223                          
     1187                                 
     1188                                AreCursorsCorrect(folderStr) 
    12241189                        else 
    12251190                                //print "unchecked, remove the cursors" 
    12261191                                // go back to the full matrix for the resolution calculation (not if SANS data...) 
    12271192                                if(waveExists($("root:"+folderStr+":weights_save"))) 
    1228                                         Duplicate/O $("root:"+folderStr+":weights_save"), $("root:"+folderStr+":"+folderStr+"_res") 
     1193                                        Duplicate/O $("root:"+folderStr+":weights_save"), $("root:"+folderStr+":"+folderStr+"_res"),$("root:"+folderStr+":"+folderStr+"_rest") 
    12291194                                endif 
     1195 
    12301196                                HideInfo 
    12311197                                Cursor/K A 
     
    12561222        if(     strsearch(traceAisOn, folderStr, 0) == -1)              //data and cursors don't match 
    12571223                CheckBox check_0,win=wrapperpanel,value=0 
     1224                HideInfo 
     1225                Cursor/K A 
     1226                Cursor/K B 
    12581227                return(0) 
    12591228        endif 
Note: See TracChangeset for help on using the changeset viewer.