Ignore:
Timestamp:
May 31, 2007 12:58:47 PM (15 years ago)
Author:
ajj
Message:

Merged kline_29MAR07 branch (Separation of NCNR specific code) r66:115 into the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/SANSReduction/trunk/Put in User Procedures/SANS_Reduction_v5.00/ProtocolAsPanel.ipf

    r47 r116  
    8080        String waveStr="tempProtocol" 
    8181        SetDataFolder root:myGlobals:Protocols 
    82         Make/O/T/N=(nsteps) $"root:myGlobals:Protocols:tempProtocol" 
    83         do 
    84                 $"root:myGlobals:Protocols:tempProtocol"[ii] = "" 
    85                 ii+=1 
    86         while(ii<nsteps) 
     82        Make/O/T/N=(nsteps) $"root:myGlobals:Protocols:tempProtocol" = "" 
     83 
    8784        String/G root:myGlobals:Protocols:gSAM="ask" 
    8885        String/G root:myGlobals:Protocols:gBGD="ask" 
     
    203200                checked = 0 
    204201        Endif 
    205 //      numItems = ItemsInList(list,comma) 
    206 //      nameList = "" 
    207 //      ii=0 
    208 //      checked = 1 
    209 //      do 
    210 //              fullPath = StringFromList(ii,list,comma) 
    211 //              PathStr = GetPathStrFromFullName(fullPath) 
    212 //              item = GetFileNameFromPathKeepSemi(fullPath) 
    213 //              nameList += item+comma 
    214 //              If(cmpstr(item,"none") ==0) 
    215 //                      nameList = item 
    216 //                      checked = 0 
    217 //                      break 
    218 //              Endif 
    219 //              If(cmpstr(item,"ask") ==0) 
    220 //                      nameList = item 
    221 //                      checked = 1 
    222 //                      break 
    223 //              Endif 
    224 //              if((cmpstr(pathStr,catPathStr) != 0) %& !(specialProtocol)) 
    225 //                      Print "pathstr = ",pathStr 
    226 //                      Print "catPathStr = ",catPathStr 
    227 //                      Abort "saved protocol path and CAT path do not match - reset CAT/SHORT to pathStr" 
    228 //              Endif 
    229 //              ii+=1 
    230 //      while(ii<numItems) 
     202 
    231203        //set the global string to display and checkbox 
    232204        String/G root:myGlobals:Protocols:gBGD = nameList 
     
    239211                checked = 0 
    240212        Endif 
    241 //      numItems = ItemsInList(list,comma) 
    242 //      nameList = "" 
    243 //      ii=0 
    244 //      checked = 1 
    245 //      do 
    246 //              fullPath = StringFromList(ii,list,comma) 
    247 //              PathStr = GetPathStrFromFullName(fullPath) 
    248 //              item = GetFileNameFromPathKeepSemi(fullPath) 
    249 //              nameList += item+comma 
    250 //              If(cmpstr(item,"none") ==0) 
    251 //                      nameList = item 
    252 //                      checked = 0 
    253 //                      break 
    254 //              Endif 
    255 //              If(cmpstr(item,"ask") ==0) 
    256 //                      nameList = item 
    257 //                      checked = 1 
    258 //                      break 
    259 //              Endif 
    260 //              if((cmpstr(pathStr,catPathStr) != 0) %& !(specialProtocol)) 
    261 //                      Print "pathstr = ",pathStr 
    262 //                      Print "catPathStr = ",catPathStr 
    263 //                      Abort "saved protocol path and CAT path do not match" 
    264 //              Endif 
    265 //              ii+=1 
    266 //      while(ii<numItems) 
     213 
    267214        //set the global string to display and checkbox 
    268215        String/G root:myGlobals:Protocols:gEMP = nameList 
     
    275222                checked = 0 
    276223        Endif 
    277 //      list = w[2] 
    278 //      numItems = ItemsInList(list,comma) 
    279 //      nameList = "" 
    280 //      ii=0 
    281 //      checked = 1 
    282 //      do 
    283 //              fullPath = StringFromList(ii,list,comma) 
    284 //              PathStr = GetPathStrFromFullName(fullPath) 
    285 //              item = GetFileNameFromPathKeepSemi(fullPath) 
    286 //              nameList += item+comma 
    287 //              If(cmpstr(item,"none") ==0) 
    288 //                      nameList = item 
    289 //                      checked = 0 
    290 //                      break 
    291 //              Endif 
    292 //              If(cmpstr(item,"ask") ==0) 
    293 //                      nameList = item 
    294 //                      checked = 1 
    295 //                      break 
    296 //              Endif 
    297 //              if((cmpstr(pathStr,catPathStr) != 0) %& !(specialProtocol)) 
    298 //                      Print "pathstr = ",pathStr 
    299 //                      Print "catPathStr = ",catPathStr 
    300 //                      Abort "saved protocol path and CAT path do not match" 
    301 //              Endif 
    302 //              ii+=1 
    303 //      while(ii<numItems) 
     224 
    304225        //set the global string to display and checkbox 
    305226        String/G root:myGlobals:Protocols:gDIV = nameList 
     
    312233                checked = 0 
    313234        Endif 
    314 //      list = w[3] 
    315 //      numItems = ItemsInList(list,comma) 
    316 //      nameList = "" 
    317 //      ii=0 
    318 //      checked = 1 
    319 //      do 
    320 //              fullPath = StringFromList(ii,list,comma) 
    321 //              PathStr = GetPathStrFromFullName(fullPath) 
    322 //              item = GetFileNameFromPathKeepSemi(fullPath) 
    323 //              nameList += item+comma 
    324 //              If(cmpstr(item,"none") ==0) 
    325 //                      nameList = item 
    326 //                      checked = 0 
    327 //                      break 
    328 //              Endif 
    329 //              If(cmpstr(item,"ask") ==0) 
    330 //                      nameList = item 
    331 //                      checked = 1 
    332 //                      break 
    333 //              Endif 
    334 //              if((cmpstr(pathStr,catPathStr) != 0) %& !(specialProtocol)) 
    335 //                      Print "pathstr = ",pathStr 
    336 //                      Print "catPathStr = ",catPathStr 
    337 //                      Abort "saved protocol path and CAT path do not match" 
    338 //              Endif 
    339 //              ii+=1 
    340 //      while(ii<numItems) 
     235 
    341236        //set the global string to display and checkbox 
    342237        String/G root:myGlobals:Protocols:gMASK = nameList 
     
    606501         
    607502        return(0) 
    608 End 
    609  
    610 //********UNUSED************ 
    611 //7/2001 - plan to modify this function to parse the comma-delimited list, (possibly just run numbers) 
    612 //and return a valid comma-delimited list of full filenames (no paths) 
    613 // 
    614 //function that takes a comma separated list of filenames (without path or version) 
    615 //and returns a full list of path;name;vers (comma delimited)  
    616 //that is needed for the protocol, which is expecting the full path 
    617 //to directly open the file(s) in the list 
    618 //this function checks for the existence of files before adding to the list 
    619 //pathStr (input) is the path (as returned by pathInfo) 
    620 // 
    621 Function/S BuildList(list,pathstr) 
    622         String list,pathstr 
    623          
    624         //input list is probably just filename, no version number 
    625         //COMMA separated lists, since file names will (MAY) include semicolon version numbers 
    626         //find the file and version number - so that full path:file;vers for each item 
    627         //trailing comma OK at end of list, ExecuteProtocol() treats all as lists 
    628          
    629         String newList="",separator=",",tempstr="",partialName="" 
    630         Variable ii=0,numitems 
    631          
    632         numitems = ItemsInList(list,separator) 
    633         do 
    634                 tempstr = StringFromList(ii,list,separator) 
    635                 if(cmpstr(tempstr,"ask")==0) 
    636                                 newList = tempstr                                       //don't prepend path to "ask" option, no comma 
    637                                 break                                                           //get out - don't add anything else to list 
    638                 endif 
    639                 if(strlen(tempStr)!=0)          //skip any null items 
    640                         //add version number (if needed) and make sure the filename is valid 
    641                         partialName = FindValidFilename(tempStr) 
    642                         //can't check for RAW here - may be dealing with mask, div ... or other filetypes 
    643                         newList += pathstr+partialName+separator 
    644                 endif 
    645                 ii+=1 
    646         while(ii<numitems) 
    647          
    648         Return(newlist) 
    649          
    650503End 
    651504 
     
    1098951End 
    1099952 
    1100 //procedure called by protocol panel to ask user for agerage type choices 
    1101 // somewhat confusing and complex, but maybe as good as it gets. 
     953//procedure called by protocol panel to ask user for average type choices 
     954// somewhat confusing and complex, but may be as good as it gets. 
    1102955// 
    1103956Proc GetAvgInfo(av_typ,autoSave,autoName,autoPlot,side,phi,dphi,width,QCtr,QDelta) 
     
    11751028// Procedure files for creating and executing a data reduction protocol 
    11761029// 
    1177 //**** ONLY invoked from the MAIN PANEL**** 
     1030//**** ONLY invoked from the MAIN PANEL**** NOT REALLY EVER USED ****** 
    11781031//Procedure for reducing a sample file (multiple added files) with a specified 
    11791032//protocol. User may create a new protocol, and will be prompted 
     
    12091062        //samStr is set at top to "ask", since this is the action always desired from "ReduceAFile" 
    12101063         
    1211         ////// 
    1212         //PathInfo catPathName                  //this is where the files came from 
    1213         //String pathstr=S_path,samStr 
    1214         //samStr = BuildList(tempStr,pathStr)           //ExecuteProtocol() needs full path for SAM files 
    1215         ///// 
    1216          
    12171064        ExecuteProtocol(waveStr,samStr) 
    12181065         
     
    12561103        return(list) 
    12571104End 
    1258 //missing paramater dialog to solicit user for a waveStr for the protocal  
     1105 
     1106//missing paramater dialog to solicit user for a waveStr for the protocol  
    12591107//about to be created 
    12601108//name is passed back as a global string and calling procedure is responsible for 
     
    12721120//ensures that a valid protocol name was chosen, then fills out each "item" 
    12731121//(6 total) needed for reduction 
    1274 //it the user cancels at nay point, the partial protocol will be deleted 
     1122//it the user cancels at any point, the partial protocol will be deleted 
    12751123// 
    12761124Function ProtocolQuestionnare() 
     
    16331481        do 
    16341482                if((cmpstr(samStr,"ask") == 0) || (cmpstr(samStr,"")==0) )              //zero if strings are equal 
    1635                         err = ReadBinarySANS(msgStr)            //will prompt for file 
     1483                        err = LoadRawSANSData(msgStr)           //will prompt for file 
    16361484                        if(err) 
    16371485                                PathInfo/S catPathName 
    16381486                                Abort "reduction sequence aborted" 
    16391487                        endif 
     1488                        UpdateDisplayInformation("RAW")                 //display the new type of data that was loaded 
    16401489                        err =  Raw_to_work(activeType)          //this is the first file (default) 
    16411490                        //Ask for another SAM file 
     
    16431492                                DoAlert 1,"Do you want to add another Sample file?" 
    16441493                                if(V_flag == 1)         //yes 
    1645                                         err = ReadBinarySANS(msgStr)            //will prompt for file 
     1494                                        err = LoadRawSANSData(msgStr)           //will prompt for file 
    16461495                                        if(err) 
    16471496                                                PathInfo/S catPathName 
    16481497                                                Abort "reduction sequence aborted" 
    16491498                                        endif 
     1499                                        UpdateDisplayInformation("RAW")                 //display the new type of data that was loaded 
    16501500                                        err = Add_raw_to_work(activeType) 
    16511501                                        notDone = 1 
     
    16801530        do 
    16811531                if(cmpstr(prot[0],"ask") == 0)          //zero if strings are equal 
    1682                         err = ReadBinarySANS(msgStr)            //will prompt for file 
     1532                        err = LoadRawSANSData(msgStr)           //will prompt for file 
    16831533                        if(err) 
    16841534                                PathInfo/S catPathName 
    16851535                                Abort "reduction sequence aborted" 
    16861536                        endif 
     1537                        UpdateDisplayInformation("RAW")                 //display the new type of data that was loaded 
    16871538                        err =  Raw_to_work(activeType)          //this is the first file (default) 
    16881539                        //Ask for another BGD file 
     
    16901541                                DoAlert 1,"Do you want to add another Background file?" 
    16911542                                if(V_flag == 1)         //yes 
    1692                                         err = ReadBinarySANS(msgStr)            //will prompt for file 
     1543                                        err = LoadRawSANSData(msgStr)           //will prompt for file 
    16931544                                        if(err) 
    16941545                                                PathInfo/S catPathName 
    16951546                                                Abort "reduction sequence aborted" 
    16961547                                        endif 
     1548                                        UpdateDisplayInformation("RAW")                 //display the new type of data that was loaded 
    16971549                                        err = Add_raw_to_work(activeType) 
    16981550                                        notDone = 1 
     
    17311583        do 
    17321584                if(cmpstr(prot[1],"ask") == 0) 
    1733                         err = ReadBinarySANS(msgStr)            //will prompt for file 
     1585                        err = LoadRawSANSData(msgStr)           //will prompt for file 
    17341586                        if(err) 
    17351587                                PathInfo/S catPathName 
    17361588                                Abort "reduction sequence aborted" 
    17371589                        endif 
     1590                        UpdateDisplayInformation("RAW")                 //display the new type of data that was loaded 
    17381591                        err =  Raw_to_work(activeType)          //this is the first file (default) 
    17391592                        //Ask for another EMP file 
     
    17411594                                DoAlert 1,"Do you want to add another Empty Cell file?" 
    17421595                                if(V_flag == 1)         //yes 
    1743                                         err = ReadBinarySANS(msgStr)            //will prompt for file 
     1596                                        err = LoadRawSANSData(msgStr)           //will prompt for file 
    17441597                                        if(err) 
    17451598                                                PathInfo/S catPathName 
    17461599                                                Abort "reduction sequence aborted" 
    17471600                                        endif 
     1601                                        UpdateDisplayInformation("RAW")                 //display the new type of data that was loaded 
    17481602                                        err = Add_raw_to_work(activeType) 
    17491603                                        notDone = 1 
     
    21161970        //ask user if he wants to use a transmision file for absolute scaling 
    21171971        //or if he wants to enter his own information 
    2118         DoAlert 1,"<Yes> to enter your own values, <No> to select an empty beam flux file" 
    2119         If ( (V_Flag==1) )  
    2120                 //yes selected, prompt for values 
     1972        err = UseStdOrEmpForABS() 
     1973        //DoAlert 1,"<Yes> to enter your own values, <No> to select an empty beam flux file" 
     1974        If ( err==1 )  
     1975                //secondary standard selected, prompt for values 
    21211976                Execute "AskForAbsoluteParams()"                //missing parameters 
    21221977        else 
    2123                 //no selected, prompt for file, and use this to calculate KAPPA 
     1978                //empty beam flux file selected, prompt for file, and use this to calculate KAPPA 
    21241979                Variable kappa=1 
    21251980                 
    21261981                //ask for file and read it into RAW 
    21271982                //will cancel if no file is selected 
    2128                 err = ReadBinarySANS("select the empty beam file")              //reads and displays the RAW data 
     1983                err = LoadRawSANSData("select the empty beam file")             //reads the RAW data 
     1984                UpdateDisplayInformation("RAW")                 //display the new type of data that was loaded 
    21291985                if(err) 
    21301986                        PathInfo/S catPathName 
     
    21662022                                Abort "Box not selected properly - Please re-set the ABS parameters" 
    21672023                        Endif 
    2168                         //box is OK, write box values to file (this does the same as SetXYBoxCoords) 
    2169                         String tempName = FindValidFilename(filename) 
     2024                        //box is OK, write box values to file 
    21702025                        PathInfo/S catPathName 
    2171                         print S_Path + tempname 
    2172                         Open/A/T="????TEXT" refnum as (S_Path + tempname) 
    2173                         FSetPos refnum,478 
    2174                         FBinWrite/F=3/B=3 refNum, x1 
    2175                         FBinWrite/F=3/B=3 refNum, x2 
    2176                         FBinWrite/F=3/B=3 refNum, y1 
    2177                         FBinWrite/F=3/B=3 refNum, y2 
    2178                         //move to the end of the file before closing 
    2179                         FStatus refnum 
    2180                         FSetPos refnum,V_logEOF 
    2181                         Close refnum 
     2026                        String tempName = S_Path + FindValidFilename(filename) 
     2027                        WriteXYBoxToHeader(tempName,x1,x2,y1,y2) 
    21822028                else 
    21832029                        //give option to override 
     
    21982044                if(! waveexists($"root:DIV:data")) 
    21992045                         junkStr = PromptForPath("Select the detector sensitivity file") 
    2200                         If(strlen(junkStr)==0) 
     2046                        If(strlen(junkStr)==0 || CheckIfRawData(junkStr))               //raw check==1 if RAW, DIV is not 
    22012047                                SetDataFolder root: 
    2202                                 Abort "No file selected, data reduction aborted" 
     2048                                Abort "No DIV (PLEX) file selected. Please use setABSParams again, selecting the empty beam file and then the detector sensitivity (Plex_) file" 
    22032049                        Endif 
    22042050                         ReadHeaderAndWork("DIV", junkStr) 
     
    22282074                // SRK JUL 2006 don't clear the contents - just kill the window to force new data to be loaded 
    22292075                // - obsucre bug if "ask" in ABS section of protocol clears RAW folder, then Q-axes can't be set from RAW:RealsRead 
    2230                 //ClearDataFolder("RAW")         
    2231         Endif 
    2232         Print "Kappa was successfully calculated as = ",kappa 
    2233 End 
    2234  
    2235 //box coordinate are returned by reference 
    2236 Function GetXYBoxFromFile(filename,x1,x2,y1,y2) 
    2237         String filename 
    2238         Variable &x1,&x2,&y1,&y2 
    2239          
    2240         Variable refnum 
    2241         String emptyFile = FindValidFilename(filename) 
    2242          
    2243 //      Print emptyfile 
    2244          
    2245         Open/R/P=catPathName refnum as emptyFile 
    2246         FSetPos refnum,478 
    2247         FBinRead/F=3/B=3 refnum, x1 
    2248         FBinRead/F=3/B=3 refnum, x2 
    2249         FBinRead/F=3/B=3 refnum, y1 
    2250         FBinRead/F=3/B=3 refnum, y2 
    2251         Close refnum 
    2252          
    2253         return(0) 
     2076                //ClearDataFolder("RAW") 
     2077                Print "Kappa was successfully calculated as = ",kappa    
     2078        Endif 
     2079         
    22542080End 
    22552081 
     
    23012127        return(err) 
    23022128End 
     2129 
     2130Function UseStdOrEmpForABS() 
     2131                 
     2132        NewPanel/K=2 /W=(139,341,402,448) as "Absolute Scaling" 
     2133        DoWindow/C junkABSWindow 
     2134        ModifyPanel cbRGB=(57346,65535,49151) 
     2135        SetDrawLayer UserBack 
     2136        SetDrawEnv fstyle= 1 
     2137        DrawText 21,20,"Method of absolute calibration" 
     2138        Button button0,pos={52,33},size={150,20},proc=UserSelectABS_Continue,title="Empty Beam Flux" 
     2139        Button button1,pos={52,65},size={150,20},proc=UserSelectABS_Continue,title="Secondary Standard" 
     2140         
     2141        PauseForUser junkABSWindow 
     2142        NVAR val = root:myGlobals:tmpAbsVal 
     2143        return(val) 
     2144End 
     2145 
     2146//returns 0 if button0 (empty beam flux) 
     2147// or 1 if secondary standard 
     2148Function UserSelectABS_Continue(ctrlName) :buttonControl 
     2149        String ctrlName 
     2150         
     2151        variable val=0 
     2152        If(cmpstr(ctrlName,"button0")==0) 
     2153                val=0            
     2154        else 
     2155                val=1 
     2156        endif 
     2157//      print "val = ",ctrlName,val 
     2158        Variable/G root:myGlobals:tmpAbsVal = val 
     2159        DoWindow/K junkABSWindow                //kill panel 
     2160        return(0) 
     2161end 
     2162 
    23032163 
    23042164//save the protocol as an IGOR text wave (.itx) 
Note: See TracChangeset for help on using the changeset viewer.