Ignore:
Timestamp:
Jan 28, 2013 5:23:14 PM (10 years ago)
Author:
srkline
Message:

Changes so that the simulation in SASCALC will work well together - it makes sure that the analysis package is loaded if the simulation checkbox is selected.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Common/Packages/PlotManager/PlotUtilsMacro_v40.ipf

    r888 r891  
    2727         
    2828        if(exists("root:Packages:NIST:paramKWStr")==0) 
    29 //              String/G root:Packages:NIST:coefKWStr="" 
     29                String/G root:Packages:NIST:coefKWStr="" 
    3030                String/G root:Packages:NIST:paramKWStr="" 
    31 //              String/G root:Packages:NIST:suffixKWStr="" 
     31                String/G root:Packages:NIST:suffixKWStr="" 
    3232        endif 
    3333        SVAR coefKWStr = root:Packages:NIST:coefKWStr 
     
    3838        suffixKWStr += funcStr+"="+suffix+";" 
    3939end 
     40 
     41// always pass this the function string 
     42// 
     43// this is new in the 2009 release, so make sure that it generates itself as needed. 
     44// Two options: (1) search and construct as needed, ask for intervention if I need it. 
     45// (2) since I'm passed the function, try to replot it to re-run the function 
     46// to fill in the strings. (Being sure to save the coefficients) 
     47// 
     48// using method (1) to fill in what I need with no intervention 
     49// 
     50Function/S getFunctionParams(funcStr) 
     51        String funcStr 
     52 
     53        String paramStr="" 
     54        SVAR/Z listStr=root:Packages:NIST:paramKWStr 
     55 
     56        if(SVAR_Exists(listStr)) 
     57                paramStr = StringByKey(funcStr, listStr  ,"=",";",0) 
     58                if(strlen(paramStr)!=0)                 //will drop out of loop if string can't be found 
     59                        return(paramStr) 
     60                endif 
     61        else    //global string does not exist, create it and fill it in 
     62                Variable/G root:Pacakges:NIST:gReconstructStrings = 1                   //coefficients old style and must be rebuilt too 
     63                String/G root:Packages:NIST:paramKWStr="" 
     64                SVAR/Z listStr=root:Packages:NIST:paramKWStr 
     65        endif    
     66         
     67        // find everything to rebuild only if the model has been plotted (if so, coefficients will exist) 
     68        String coef = getFunctionCoef(funcStr) 
     69        if(strlen(coef)==0) 
     70                //model not plotted, don't reconstruct, return null string 
     71                return(paramStr) 
     72        endif 
     73         
     74        ///// NEED TO BE IN PROPER DATA FOLDER FOR SMEARED FUNCTIONS 
     75        // FUNCTION POP MENU WILL LOOK IN ROOT OTHERWISE 
     76        ControlInfo/W=WrapperPanel popup_0 
     77        String folderStr=S_Value 
     78        // this if/else/endif should not ever return an error alert      
     79        // it should simply set the data folder properly         
     80        if(Stringmatch(funcStr,"Smear*"))               //simple test for smeared function 
     81                if(DataFolderExists("root:"+folderStr)) 
     82                        SetDataFolder $("root:"+folderStr) 
     83                else 
     84                        SetDataFolder root: 
     85                endif 
     86        else 
     87                SetDataFolder root: 
     88        endif 
     89         
     90        // model was plotted, find the suffix to fill in the parameter wave 
     91        SVAR suffListStr=root:Packages:NIST:suffixKWStr 
     92        String suffix = StringByKey(coef, suffListStr  ,"=",";",0) 
     93         
     94        String paramWave = WaveList("*par*"+suffix,"","TEXT:1")         //should be one wave name, no trailing semicolon 
     95        listStr += funcStr+"="+paramWave+";" 
     96 
     97        //now look it up again 
     98        paramStr = StringByKey(funcStr, listStr  ,"=",";",0) 
     99 
     100        return(paramStr) 
     101End 
     102 
     103// always pass this the function string 
     104// 
     105Function/S getFunctionCoef(funcStr) 
     106        String funcStr 
     107 
     108        SVAR listStr=root:Packages:NIST:coefKWStr 
     109        String coefStr = StringByKey(funcStr, listStr  ,"=",";",0) 
     110 
     111        return(coefStr) 
     112End 
     113 
     114// always pass this the Function string 
     115// 
     116// does NOT return the leading "_" as part of the suffix 
     117// may need to set the string correctly - so lost of messing around for back-compatibility 
     118Function/S getModelSuffix(funcStr) 
     119        String funcStr 
     120 
     121        SVAR listStr=root:Packages:NIST:suffixKWStr 
     122        String suffixStr = StringByKey(funcStr, listStr  ,"=",";",0) 
     123 
     124        if(strlen(suffixStr) !=0)               //found it, get out 
     125                return(suffixStr) 
     126        endif 
     127         
     128        // was the model plotted? 
     129        String coef = getFunctionCoef(funcStr) 
     130        if(strlen(coef)==0)              
     131                //nothing plotted 
     132                return("") 
     133        else 
     134                //plotted, find the coeff 
     135                String suffix = StringByKey(coef, ListStr  ,"=",";",0) 
     136         
     137                // add to the suffix list in the new style, if it was found 
     138                if(strlen(suffix) !=0) 
     139                        listStr += funcStr+"="+suffix+";" 
     140                endif 
     141                return(suffix) 
     142        endif 
     143         
     144        return("") 
     145End 
     146 
     147 
     148///////////////////////////// 
     149 
     150 
     151 
    40152 
    41153// loads a 1-d (ascii) datafile and plots the data 
Note: See TracChangeset for help on using the changeset viewer.