Ignore:
Timestamp:
Jun 23, 2009 6:06:24 PM (13 years ago)
Author:
srkline
Message:

A bunch of random changes:
-SASCALC - added the 2.5 cm aperture NG3/7g/polarizer back in, but made the 5 cm the default
-Some fiddling with 2D functionality to enable 2D resolution smearing. Still a work in progress
-Added two new model functions, and added them to the list.
-Changes to the wrapper for the new release to generate kw=val strings as needed for each function
and its coefficients and parameters. This behavior has been changed in the new release, so this
fix should keep old analysis experiments compatible with the new version.

Location:
sans/Dev/trunk/NCNR_User_Procedures
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/Models_2D/Sphere_2D_v40.ipf

    r510 r515  
    157157 
    158158 
    159 //threaded version of the function 
     159//non-threaded version of the function 
    160160Function Sphere2D_noThread(cw,zw,xw,yw) 
    161161        WAVE cw,zw, xw,yw 
     
    170170End 
    171171 
    172  
     172// I think I did this because when I do the quadrature loops I'm calling the AAO with 1-pt waves, so threading 
     173// would just be a slowdown 
    173174Function SmearedSphere2D(s) 
    174175        Struct ResSmear_2D_AAOStruct &s 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/NewModels_2008/GaussLorentzGel_v40.ipf

    r510 r515  
    55// 
    66// Reference:G. Evmenenko, E. Theunissedn, K. Mortensen, H. Reynaers 
    7 //                                      Polymer 42 (2001) 2907-2913. 
     7//                                      Polymer 42 (2001) 2907-2913. (equation 5) 
    88// 
     9//              see also: Hecht, Horkay, Geissler, PHYSICAL REVIEW E, VOLUME 64, 041402 (eqn 1) 
    910// 
    1011// Steve Kline 14 JUL 2004 (for Robert Knott) 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Models/NewModels_2008/SC_ParaCrystal_v40.ipf

    r510 r515  
    136136        gg = w[2] //Paracrystal distortion factor 
    137137        Rad = w[3] //Sphere radius 
    138         contrast = w[4] //SLD contrast  
    139         background = w[5]  
     138        contrast = w[4] - w[5] //SLD contrast  
     139        background = w[6]  
    140140                 
    141141// always calculate for type 0, SC 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Packages/GlobalFit/SimpleGlobalFit_NCNR_v40.ipf

    r495 r515  
    235235                        ControlInfo/W=SimpGFPanel popup_0b 
    236236                        String folderStr_b=S_Value 
     237                         
     238                        ControlInfo/W=SimpGFPanel popup_1 
     239                        String funcStr=S_Value 
    237240                         
    238241                        if(cmpstr(popStr,"Please plot the function")==0) 
     
    294297                        // get them onto the table 
    295298                        // how do I get the parameter name? 
    296                         String param = WaveList("*parameters_"+suffix, "", "TEXT:1," )          //this is *hopefully* one wave 
     299                        String param = getFunctionParams(funcStr)               //this is *hopefully* one wave 
    297300                        AppendtoTable/W=SimpGFPanel#T0 $param 
    298301                        AppendToTable/W=SimpGFPanel#T0 coef_A,coef_B 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Packages/ModelPicker/SANSModelPicker_v40.ipf

    r501 r515  
    128128////paste here... after deleting the old make statement and list 
    129129         
    130   Make/O/T/N=87  SANS_Model_List 
     130  Make/O/T/N=88  SANS_Model_List 
    131131 
    132132  SANS_Model_List[0] = "BE_Polyelectrolyte.ipf" 
     
    219219  SANS_Model_List[85] = "PolyCoreBicelle.ipf" 
    220220  SANS_Model_List[86] = "CSParallelepiped.ipf" 
     221  SANS_Model_List[87] = "Fractal_PolyCore.ipf" 
    221222 
    222223 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Packages/ModelPicker/SANS_Model_List.itx

    r274 r515  
    22WAVES/T SANS_Model_List 
    33BEGIN 
     4        "BE_Polyelectrolyte.ipf" 
     5        "CoreShellCylinder.ipf" 
     6        "CoreShell_Sq.ipf" 
     7        "CoreShell.ipf" 
     8        "Cylinder_Sq.ipf" 
     9        "Cylinder.ipf" 
     10        "DAB_model.ipf" 
     11        "HPMSA.ipf" 
     12        "HardSphereStruct.ipf" 
     13        "HollowCylinders.ipf" 
     14        "Lorentz_model.ipf" 
     15        "OblateCoreShell_Sq.ipf" 
     16        "OblateCoreShell.ipf" 
     17        "Peak_Gauss_model.ipf" 
     18        "Peak_Lorentz_model.ipf" 
     19        "PolyCoreShellRatio_Sq.ipf" 
     20        "PolyCoreShellRatio.ipf" 
     21        "PolyCore_Sq.ipf" 
     22        "PolyCore.ipf" 
     23        "PolyHardSphereInten.ipf" 
     24        "PolyRectSphere_Sq.ipf" 
     25        "PolyRectSphere.ipf" 
     26        "Power_Law_model.ipf" 
     27        "ProlateCoreShell_Sq.ipf" 
     28        "ProlateCoreShell.ipf" 
     29        "SmearedRPA.ipf" 
     30        "Sphere_Sq.ipf" 
     31        "Sphere.ipf" 
     32        "SquareWellStruct.ipf" 
     33        "StackedDiscs.ipf" 
     34        "Teubner.ipf" 
     35        "UniformEllipsoid_Sq.ipf" 
     36        "UniformEllipsoid.ipf" 
     37        "CoreShellCyl2D.ipf" 
     38        "Cylinder_2D.ipf" 
     39        "Ellipsoid2D.ipf" 
     40        "EllipticalCylinder2D.ipf" 
    441        "Beaucage.ipf" 
    5         "BE_Polyelectrolyte.ipf" 
    642        "BimodalSchulzSpheres.ipf" 
    743        "BinaryHardSpheres.ipf" 
    8         "CoreShell.ipf" 
    9         "CoreShellCyl2D.ipf" 
    10         "CoreShellCylinder.ipf" 
    11         "CoreShell_Sq.ipf" 
    12         "Cylinder.ipf" 
    13         "Cylinder_2D.ipf" 
    1444        "Cylinder_PolyLength.ipf" 
    1545        "Cylinder_PolyRadius.ipf" 
    16         "Cylinder_Sq.ipf" 
    17         "DAB_model.ipf" 
    1846        "Debye.ipf" 
    19         "Ellipsoid2D.ipf" 
    2047        "EllipticalCylinder.ipf" 
    21         "EllipticalCylinder2D.ipf" 
    2248        "FlexCyl_EllipCross.ipf" 
    2349        "FlexCyl_PolyLen.ipf" 
     
    2551        "FlexibleCylinder.ipf" 
    2652        "Fractal.ipf" 
     53        "GaussSpheres_Sq.ipf" 
    2754        "GaussSpheres.ipf" 
    28         "GaussSpheres_Sq.ipf" 
    29         "HardSphereStruct.ipf" 
    30         "HollowCylinders.ipf" 
    31         "HPMSA.ipf" 
     55        "LamellarFF_HG.ipf" 
    3256        "LamellarFF.ipf" 
    33         "LamellarFF_HG.ipf" 
     57        "LamellarPS_HG.ipf" 
    3458        "LamellarPS.ipf" 
    35         "LamellarPS_HG.ipf" 
     59        "LogNormalSphere_Sq.ipf" 
    3660        "LogNormalSphere.ipf" 
    37         "LogNormalSphere_Sq.ipf" 
    38         "Lorentz_model.ipf" 
    3961        "MultiShell.ipf" 
    40         "OblateCoreShell.ipf" 
    41         "OblateCoreShell_Sq.ipf" 
    4262        "Parallelepiped.ipf" 
    43         "Peak_Gauss_model.ipf" 
    44         "Peak_Lorentz_model.ipf" 
    45         "PolyCore.ipf" 
    4663        "PolyCoreShellCylinder.ipf" 
    47         "PolyCoreShellRatio.ipf" 
    48         "PolyCoreShellRatio_Sq.ipf" 
    49         "PolyCore_Sq.ipf" 
    50         "PolyHardSphereInten.ipf" 
    51         "PolyRectSphere.ipf" 
    52         "PolyRectSphere_Sq.ipf" 
    53         "Power_Law_model.ipf" 
    54         "ProlateCoreShell.ipf" 
    55         "ProlateCoreShell_Sq.ipf" 
     64        "SchulzSpheres_Sq.ipf" 
    5665        "SchulzSpheres.ipf" 
    57         "SchulzSpheres_Sq.ipf" 
    58         "SmearedRPA.ipf" 
    59         "Sphere.ipf" 
    60         "Sphere_Sq.ipf" 
    61         "SquareWellStruct.ipf" 
    62         "StackedDiscs.ipf" 
    6366        "StickyHardSphereStruct.ipf" 
    64         "Teubner.ipf" 
    6567        "TriaxialEllipsoid.ipf" 
    66         "UniformEllipsoid.ipf" 
    67         "UniformEllipsoid_Sq.ipf" 
     68        "Vesicle_UL_and_Struct.ipf" 
    6869        "Vesicle_UL.ipf" 
    69         "Vesicle_UL_and_Struct.ipf" 
     70        "Core_and_NShells.ipf" 
     71        "PolyCore_and_NShells.ipf" 
     72        "Fractal_Polysphere.ipf" 
     73        "GaussLorentzGel.ipf" 
     74        "PolyGaussCoil.ipf" 
     75        "Two_Power_Law.ipf" 
     76        "BroadPeak.ipf" 
     77        "CorrelationLengthModel.ipf" 
     78        "TwoLorentzian.ipf" 
     79        "PolyGaussShell.ipf" 
     80        "LamellarParacrystal.ipf" 
     81        "SC_ParaCrystal.ipf" 
     82        "BCC_ParaCrystal.ipf" 
     83        "FCC_ParaCrystal.ipf" 
     84        "Spherocylinder.ipf" 
     85        "Dumbbell.ipf" 
     86        "ConvexLens.ipf" 
     87        "CappedCylinder.ipf" 
     88        "Barbell.ipf" 
     89        "PolyCoreBicelle.ipf" 
     90        "CSParallelepiped.ipf" 
     91        "Fractal_PolyCore.ipf" 
    7092END 
    7193X SetScale/P x 0,1,"", SANS_Model_List; SetScale y 0,0,"", SANS_Model_List 
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/Packages/Wrapper_v40.ipf

    r510 r515  
    487487// always pass this the function string 
    488488// 
     489// this is new in the 2009 release, so make sure that it generates itself as needed. 
     490// Two options: (1) search and construct as needed, ask for intervention if I need it. 
     491// (2) since I'm passed the function, try to replot it to re-run the function 
     492// to fill in the strings. (Being sure to save the coefficients) 
     493// 
     494// using method (1) to fill in what I need with no intervention 
     495// 
    489496Function/S getFunctionParams(funcStr) 
    490497        String funcStr 
    491498 
    492         SVAR listStr=root:Packages:NIST:paramKWStr 
    493         String paramStr = StringByKey(funcStr, listStr  ,"=",";",0) 
     499        String paramStr="" 
     500        SVAR/Z listStr=root:Packages:NIST:paramKWStr 
     501        if(SVAR_Exists(listStr)) 
     502                paramStr = StringByKey(funcStr, listStr  ,"=",";",0) 
     503                if(strlen(paramStr)!=0)                 //will drop out of loop if string can't be found 
     504                        return(paramStr) 
     505                endif 
     506        else    //global string does not exist, create it and fill it in 
     507                String/G root:Packages:NIST:paramKWStr="" 
     508                SVAR/Z listStr=root:Packages:NIST:paramKWStr 
     509        endif 
     510        // find everything 
     511        SVAR suffixKWStr = root:Packages:NIST:suffixKWStr 
     512        String coef = getFunctionCoef(funcStr) 
     513        String suffix = getModelSuffix(coef)            //!! normally takes funcStr 
     514         
     515        // add to the suffix list 
     516        suffixKWStr += funcStr+"="+suffix+";" 
     517         
     518        // add to the paramList 
     519         
     520        ///// NEED TO BE IN PROPER DATA FOLDER FOR SMEARED FUNCTIONS 
     521        // FUNCTION POP MENU WILL LOOK IN ROOT OTHERWISE 
     522        ControlInfo/W=WrapperPanel popup_0 
     523        String folderStr=S_Value 
     524        // this if/else/endif should not ever return an error alert      
     525        // it should simply set the data folder properly         
     526        if(Stringmatch(funcStr,"Smear*"))               //simple test for smeared function 
     527                if(DataFolderExists("root:"+folderStr)) 
     528                        SetDataFolder $("root:"+folderStr) 
     529                else 
     530                        SetDataFolder root: 
     531                endif 
     532        else 
     533                SetDataFolder root: 
     534        endif 
     535                         
     536         
     537        String paramWave = WaveList("*par*"+suffix,"","TEXT:1")         //should be one wave name, no trailing semicolon 
     538        listStr += funcStr+"="+paramWave+";" 
     539 
     540        //now look it up again 
     541        paramStr = StringByKey(funcStr, listStr  ,"=",";",0) 
    494542 
    495543        return(paramStr) 
     
    516564        String suffixStr = StringByKey(funcStr, listStr  ,"=",";",0) 
    517565 
     566        if(strlen(suffixStr)==0) 
     567                // run through the param function to set the strings properly 
     568                String str = getFunctionParams(funcStr) 
     569                suffixStr = getModelSuffix(funcStr)             //then call again 
     570        endif 
    518571        return(suffixStr) 
    519572End 
  • sans/Dev/trunk/NCNR_User_Procedures/Common/Packages/PlotManager/PlotUtils2D_v40.ipf

    r509 r515  
    163163        ModifyGizmo ModifyObject=axes0,property={1,fontScaleFactor,1.5} 
    164164        ModifyGizmo ModifyObject=axes0,property={2,fontScaleFactor,1.5} 
     165        AppendToGizmo freeAxesCue={0,0,0,1.5},name=freeAxesCue0 
    165166        ModifyGizmo setDisplayList=0, opName=clearColor0, operation=clearColor, data={1,0.917,0.75,1} 
    166167        ModifyGizmo setDisplayList=1, object=surface0 
    167168        ModifyGizmo setDisplayList=2, object=axes0 
     169        ModifyGizmo setDisplayList=3, object=freeAxesCue0 
    168170        ModifyGizmo SETQUATERNION={0.521287,-0.097088,-0.138769,0.836408} 
    169171        ModifyGizmo autoscaling=1 
     
    326328//      ModifyGizmo setDisplayList=0, object=surface0 
    327329//      ModifyGizmo setDisplayList=1, object=axes0 
    328         ModifyGizmo setDisplayList=3, object=surface1 
     330// object 3 is the axisCue 
     331        ModifyGizmo setDisplayList=4, object=surface1 
    329332        ModifyGizmo SETQUATERNION={0.565517,-0.103105,-0.139134,0.806350} 
    330333//      ModifyGizmo autoscaling=1 
     
    393396                        ControlInfo/W=WrapperPanel popup_1 
    394397                        funcStr = S_Value 
    395                         suffix = getModelSuffix(getFunctionCoef(funcStr)) 
     398                        suffix = getModelSuffix(funcStr) 
     399                        if(stringmatch(funcStr, "smear*") == 1) 
     400                                suffix = "sm_"+suffix 
     401                        endif 
    396402                        str = "root:"+DF+":"+suffix+"_mat" 
    397403                         
     
    520526        Variable useCursors,useEps,useConstr 
    521527 
    522         String suffix=getModelSuffix(coefStr) 
     528        String suffix=getModelSuffix(funcStr) 
    523529         
    524530        SetDataFolder $("root:"+folderStr) 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/NCNR_Utils.ipf

    r509 r515  
    255255        kap = 2*pi/lambda 
    256256        a_val = (L1+L2)*g/2/(h_m)^2 
    257          
     257 
     258//      lambdaWidth = 0.5        
    258259        SigmaQX = 3*(S1/L1)^2 + 3*(S2/LP)^2 + 2*(DDet/L2)^2 + 2*(r_dist/L2)^2*(lambdaWidth)^2*(cos(phi))^2 
    259260 
    260261        SigmaQY = 3*(S1/L1)^2 + 3*(S2/LP)^2 + 2*(DDet/L2)^2 + 2*(r_dist/L2)^2*(lambdaWidth)^2*(sin(phi))^2 + 8*(a_val/L2)^2*lambda^4*lambdaWidth^2 
     262//      SigmaQY = 3*(S1/L1)^2 + 3*(S2/LP)^2 + 2*(DDet/L2)^2 + 2*(r_dist/L2)^2*(lambdaWidth)^2*(sin(phi))^2 
    261263 
    262264        SigmaQX = sqrt(kap*kap/12*SigmaQX) 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/SASCALC.ipf

    r492 r515  
    179179        Variable/G a1_0_1 = 2.54 
    180180        Variable/G a1_0_2 = 3.81 
    181         Variable/G a1_7_0 = 2.5 // after the polarizer          //removed as an option in 2009 
     181        Variable/G a1_7_0 = 2.5 // after the polarizer           
    182182        Variable/G a1_7_1 = 5.0 
    183183        Variable/G a1_def = 5.00 
     
    415415                                mode=1 
    416416                                break 
    417 //                      case 7:                                                 // removed as option in 2009 
    418 //                              A1Str = "2.50 cm;5.00 cm;" 
    419 //                              mode = 1 
    420 //                              break 
     417                        case 7:                                                 // switched order in 2009 to keep 5 cm as default, 2.5 cm for polarizer 
     418                                A1Str = "5.00 cm;2.50 cm;" 
     419                                mode = 1 
     420                                break 
    421421                        default: 
    422422                                A1str = "5 cm;" 
Note: See TracChangeset for help on using the changeset viewer.