Changeset 196


Ignore:
Timestamp:
Nov 7, 2007 5:11:32 PM (15 years ago)
Author:
srkline
Message:

bits and tweaks to get 2D fitting to work. Most significant changes are the call to the 2D AAO function in the correct XY order and the FuncFit? /X={} flag which needs to be {y,x} rather than the expected {x,y}

Location:
sans/Analysis/branches/ajj_23APR07
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • sans/Analysis/branches/ajj_23APR07/IGOR_Package_Files/Put in User Procedures/SANS_Models_v3.00/GaussUtils.ipf

    r160 r196  
    987987        Wave cw=$cwStr                   
    988988        Variable temp=0 
    989         Make/O/N=2 tmp_xw,tmp_yw 
     989        Make/D/O/N=2 tmp_xw,tmp_yw 
    990990        if(nn==1) 
    991991                tmp_xw[0] = sqrt(qval^2 + aa^2) 
  • sans/Analysis/branches/ajj_23APR07/IGOR_Package_Files/Put in User Procedures/SANS_Models_v3.00/Models_2D/Cylinder_2D.ipf

    r185 r196  
    6666        coef_Cyl2D[8] = 0.0 
    6767        coef_Cyl2D[9] = 0.0 
    68         //NOT THE SAME ORDER AS MATHIEU'S CODE 
     68        //NOT THE SAME ORDER AS MATHIEU'S CODE - POLYDISPERSITY OF RADIUS IS IN A DIFFERENT LOCATION FROM 
     69        // MATHIEU'S CylinderModel 
    6970        parameters_Cyl2D[0] = "Scale" 
    7071        parameters_Cyl2D[1] = "Radius" 
     
    121122//       
    122123//#if exists("Cylinder_2D_Dist") 
    123 //      zw = Cylinder_2D_Dist(cw,yw,xw) 
     124//      zw = Cylinder_2D_Dist(cw,xw,yw) 
    124125//#else 
    125126//      Abort "You do not have the SANS Analysis XOP installed" 
     
    134135        Variable p1,p2 
    135136         
    136         zw[p1,p2]= Cylinder_2D_Dist(cw,yw,xw) 
     137#if exists("Cylinder_2D_Dist")                  //to hide the function if XOP not installed 
     138        zw[p1,p2]= Cylinder_2D_Dist(cw,xw,yw) 
     139#endif 
    137140 
    138141//      return stopMSTimer(-2)          // time when we finished 
  • sans/Analysis/branches/ajj_23APR07/IGOR_Package_Files/Put in User Procedures/SANS_Models_v3.00/Packages/PlotUtils2D.ipf

    r185 r196  
    596596// don't use the auto-destination with no flag, it doesn't appear to work correctly 
    597597// dispatch the fit 
    598 //   FuncFit/H="0001011111"/NTHR=0 Cylinder2D coef_Cyl2D  xwave_Cyl2D_txt_i /X={xwave_Cyl2D_txt_qx,xwave_Cyl2D_txt_qy} /D  
     598        //      FuncFit/H="11110111111"/NTHR=0 Cylinder2D_D :cyl2d_c_txt:coef_Cyl2D_D  :cyl2d_c_txt:cyl2d_c_txt_i /X={:cyl2d_c_txt:cyl2d_c_txt_qy,:cyl2d_c_txt:cyl2d_c_txt_qx} /W=:cyl2d_c_txt:sw /I=1 /M=:cyl2d_c_txt:mask /D  
     599 
     600// !!! /X={Qy,Qx} is correct !!! using {Qx,Qy} return jibberish for the chi^2 from the fit 
    599601 
    600602        do 
    601603                if(useRes && useEps && useCursors && useConstr)         //do it all 
    602                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qx,Qy} /M=mask /W=sw /I=1 /D /E=eps /C=constr 
     604                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qy,Qx} /M=mask /W=sw /I=1 /D /E=eps /C=constr 
    603605                        break 
    604606                endif 
    605607                 
    606608                if(useRes && useEps && useCursors)              //no constr 
    607                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qx,Qy} /M=mask /W=sw /I=1 /D /E=eps 
     609                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qy,Qx} /M=mask /W=sw /I=1 /D /E=eps 
    608610                        break 
    609611                endif 
    610612                 
    611613                if(useRes && useEps && useConstr)               //no crsr 
    612                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qx,Qy} /M=mask /W=sw /I=1 /D /E=eps /C=constr 
     614                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qy,Qx} /M=mask /W=sw /I=1 /D /E=eps /C=constr 
    613615                        break 
    614616                endif 
    615617                 
    616618                if(useRes && useCursors && useConstr)           //no eps 
    617                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qx,Qy} /M=mask /W=sw /I=1 /D /C=constr 
     619                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qy,Qx} /M=mask /W=sw /I=1 /D /C=constr 
    618620                        break 
    619621                endif 
    620622                 
    621623                if(useRes && useCursors)                //no eps, no constr 
    622                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qx,Qy} /M=mask /W=sw /I=1 /D 
     624                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qy,Qx} /M=mask /W=sw /I=1 /D 
    623625                        break 
    624626                endif 
    625627                 
    626628                if(useRes && useEps)            //no crsr, no constr 
    627                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qx,Qy} /M=mask /W=sw /I=1 /D /E=eps 
     629                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qy,Qx} /M=mask /W=sw /I=1 /D /E=eps 
    628630                        break 
    629631                endif 
    630632         
    631633                if(useRes && useConstr)         //no crsr, no eps 
    632                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qx,Qy} /M=mask /W=sw /I=1 /D /C=constr 
     634                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qy,Qx} /M=mask /W=sw /I=1 /D /C=constr 
    633635                        break 
    634636                endif 
    635637                 
    636638                if(useRes)              //just res 
    637                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qx,Qy} /M=mask /W=sw /I=1 /D 
     639                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qy,Qx} /M=mask /W=sw /I=1 /D 
    638640                        break 
    639641                endif 
     
    641643/////   same as above, but all without useRes (no /STRC flag) 
    642644                if(useEps && useCursors && useConstr)           //do it all 
    643                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qx,Qy} /M=mask /W=sw /I=1 /D /E=eps /C=constr 
     645                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qy,Qx} /M=mask /W=sw /I=1 /D /E=eps /C=constr 
    644646                        break 
    645647                endif 
    646648                 
    647649                if(useEps && useCursors)                //no constr 
    648                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qx,Qy} /M=mask /W=sw /I=1 /D /E=eps 
    649                         break 
    650                 endif 
     650                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qy,Qx} /M=mask /W=sw /I=1 /D /E=eps 
     651                        break 
     652                endif 
     653                 
    651654                 
    652655                if(useEps && useConstr)         //no crsr 
    653                         Print "eps, constr, no /D, no NTHR, no mask" 
    654 //                      FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qx,Qy} /M=mask /W=sw /I=1 /D /E=eps /C=constr 
    655                         FuncFit/H=getHStr(hold) $funcStr cw, inten /X={Qx,Qy} /W=sw /I=1 /E=eps /C=constr 
     656                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qy,Qx} /M=mask /W=sw /I=1 /D /E=eps /C=constr 
    656657                        break 
    657658                endif 
    658659                 
    659660                if(useCursors && useConstr)             //no eps 
    660                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qx,Qy} /M=mask /W=sw /I=1 /D /C=constr 
     661                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qy,Qx} /M=mask /W=sw /I=1 /D /C=constr 
    661662                        break 
    662663                endif 
    663664                 
    664665                if(useCursors)          //no eps, no constr 
    665                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qx,Qy} /M=mask /W=sw /I=1 /D 
     666                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten[pcsr(A),pcsr(B)] /X={Qy,Qx} /M=mask /W=sw /I=1 /D 
    666667                        break 
    667668                endif 
    668669                 
    669670                if(useEps)              //no crsr, no constr 
    670                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qx,Qy} /M=mask /W=sw /I=1 /D /E=eps 
     671                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qy,Qx} /M=mask /W=sw /I=1 /D /E=eps 
    671672                        break 
    672673                endif 
    673674         
    674675                if(useConstr)           //no crsr, no eps 
    675                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qx,Qy} /M=mask /W=sw /I=1 /D /C=constr 
     676                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qy,Qx} /M=mask /W=sw /I=1 /D /C=constr 
    676677                        break 
    677678                endif 
    678679                 
    679680                //just a plain vanilla fit 
    680                         FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qx,Qy} /M=mask /W=sw /I=1 /D 
     681                        FuncFit/H=getHStr(hold) /NTHR=0 $funcStr cw, inten /X={Qy,Qx} /M=mask /W=sw /I=1 /D 
    681682         
    682683        while(0) 
     
    832833 
    833834        Duplicate/O $(str+"_i") chi 
    834         chi = ((zwave_cyl2D - $(str+"_i"))/sw )^2 
     835        chi = ((zwave_cyl2D_D - $(str+"_i"))/sw )^2 
    835836         
    836837        chi = (mask == 1) ? chi : 0 
  • sans/Analysis/branches/ajj_23APR07/IGOR_Package_Files/Put in User Procedures/SANS_Models_v3.00/SA_includes_v301.ipf

    r183 r196  
    3131                "Do Linear Fits",Execute/P "INSERTINCLUDE \"LinearizedFits\"";Execute/P "COMPILEPROCEDURES ";Execute/P "A_OpenFitPanel()" 
    3232        End 
     33        "-" 
     34        "Feedback or Bug Report",OpenTracTicketPage() 
    3335End 
     36 
     37Function OpenTracTicketPage() 
     38        DoAlert 1,"Your web broser will open to a page where you can submit your bug report or feature request. OK?" 
     39        if(V_flag==1) 
     40                BrowseURL "http://danse.chem.utk.edu/trac/newticket" 
     41        endif 
     42End 
  • sans/Analysis/branches/ajj_23APR07/XOPs/SANSAnalysis/XOP/Func2D.c

    r188 r196  
    2323        double qy; 
    2424        double q, phi; 
     25//      char buf[256]; 
    2526         
    2627        if (p->waveHandle == NIL) { 
     
    3132        qx = p->qx; 
    3233        qy = p->qy; 
     34         
     35//      sprintf(buf, "Qx = %g, Qy = %g\r",qx, qy); 
     36//      XOPNotice(buf); 
    3337         
    3438        q = hypot(qx,qy); 
Note: See TracChangeset for help on using the changeset viewer.