Changeset 891


Ignore:
Timestamp:
Mar 21, 2020 9:37:21 PM (3 years ago)
Author:
ilavsky
Message:

Fixes for last committ

Location:
trunk/User Procedures/Irena
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/User Procedures/Irena/IR1_Main.ipf

    r890 r891  
    317317        WindowProcNames+="IR2D_DWSGraphPanel=IR2D_DWSMainCheckVersion;IR1I_ImportOtherASCIIData=IR1I_MainCheckVersion2;IR1I_MainCheckVersionNexus=IR1I_ImportNexusCanSASData;"
    318318        WindowProcNames+="UnifiedEvaluationPanel=IR2U_MainCheckVersion;FractalAggregatePanel=IR3A_MainCheckVersion;TwoPhaseSystems=IR3T_MainCheckVersion;"
    319         WindowProcNames+="POVPDBPanel=IR3P_MainCheckVersion;AnisotropicSystemsPanel=IR3N_MainCheckVersion;IR3L_MultiSaPlotFitPanel=IR3L_MainCheckVersion;"
     319        WindowProcNames+="POVPDBPanel=IR3P_MainCheckVersion;AnisotropicSystemsPanel=IR3N_MainCheckVersion;IR3L_MultiSamplePlotPanel=IR3L_MainCheckVersion;"
     320        WindowProcNames+="IR1I_ImportBioSAXSASCIIData=IR1B_ImportASCIIMainCheckVersion;IRB1_DataManipulationPanel=IR1B_DataManMainCheckVersion;"
    320321 
    321322        IR2C_CheckWIndowsProcVersions(WindowProcNames)
  • trunk/User Procedures/Irena/IR3_MultiDataPlot.ipf

    r890 r891  
    11#pragma rtGlobals=3             // Use modern global access method and strict wave access.
    22#pragma version=1
    3 constant IR3LversionNumber = 1                  //MultiDataPloting tool version number.
     3constant IR3LversionNumber = 1.01                       //MultiDataPloting tool version number.
    44
    55//*************************************************************************\
     
    99//*************************************************************************/
    1010
    11 //1.0 New ploting tool to make plotting various data easy for multiple data sets. 
     11
     12//1.01          Changed working folder name. 
     13//1.0           New ploting tool to make plotting various data easy for multiple data sets. 
    1214
    1315
     
    113115
    114116        //Plotting controls...
    115         TitleBox FakeLine1 title=" ",fixedSize=1,size={330,3},pos={260,165},frame=0,fColor=(0,0,52224), labelBack=(0,0,52224)
     117        TitleBox FakeLine1 title=" ",fixedSize=1,size={330,3},pos={260,170},frame=0,fColor=(0,0,52224), labelBack=(0,0,52224)
    116118       
    117         Button NewGraphPlotData,pos={270,170},size={120,20}, proc=IR3L_ButtonProc,title="New graph", help={"Plot selected data in new graph"}
    118         //SVAR SelectedDataPlot=root:Packages:Irena:MultiSamplePlot:SelectedDataPlot
    119         //PopupMenu SelectedDataPlot,pos={260,198},size={310,20},proc=IR3L_PopMenuProc, title="Data Type",help={"Select data to create if needed to graph"}
    120         //PopupMenu SelectedDataPlot,value=#"root:Packages:Irena:MultiSamplePlot:ListOfDefinedDataPlots",mode=1, popvalue=SelectedDataPlot
    121 
    122         PopupMenu ApplyStyle,pos={260,198},size={400,20},proc=IR3L_PopMenuProc, title="Apply style:",help={"Set tool setting to defined conditions and apply to graph"}
    123         PopupMenu ApplyStyle,value=#"root:Packages:Irena:MultiSamplePlot:ListOfDefinedStyles",mode=1, mode=1
    124         Button ApplyPresetFormating,pos={260,223},size={160,20}, proc=IR3L_ButtonProc,title="Apply All Formating", help={"Apply Preset Formating to update graph based on these choices"}
    125 
    126 
    127         Button AppendPlotData,pos={410,170},size={180,20}, proc=IR3L_ButtonProc,title="Append to selected graph", help={"Append selected data to graph selected above"}
    128         Button ExportGraphJPG,pos={510,195},size={70,20}, proc=IR3L_ButtonProc,title="Export jpg", help={"Export as jpg file"}
    129         Button ExportGraphTIF,pos={510,220},size={70,20}, proc=IR3L_ButtonProc,title="Export tiff", help={"Export as tiff file"}
     119        Button NewGraphPlotData,pos={270,180},size={120,20}, proc=IR3L_ButtonProc,title="New graph", help={"Plot selected data in new graph"}
     120        Button AppendPlotData,pos={410,180},size={180,20}, proc=IR3L_ButtonProc,title="Append to selected graph", help={"Append selected data to graph selected above"}
     121        //this is selection of data types the code will plot.
     122        SVAR SelectedDataPlot=root:Packages:Irena:MultiSamplePlot:SelectedDataPlot
     123        PopupMenu SelectedDataPlot,pos={260,215},size={310,20},proc=IR3L_PopMenuProc, title="\Zr120Data type to plot?  : ",help={"Select data to create if needed to graph"}
     124        PopupMenu SelectedDataPlot,value=#"root:Packages:Irena:MultiSamplePlot:ListOfDefinedDataPlots",mode=1, popvalue=SelectedDataPlot, bodyWidth=150
     125        PopupMenu SelectedDataPlot fstyle=5,fColor=(0,0,65535)
    130126
    131127        TitleBox GraphAxesControls title="\Zr100Graph Axes Options",fixedSize=1,size={150,20},pos={350,260},frame=0,fstyle=1, fixedSize=1
     
    180176        TitleBox Instructions5 title="\Zr100Regex for contain:  string, two: str2.*str1",size={330,15},pos={4,740},frame=0,fColor=(0,0,65535),labelBack=0
    181177        TitleBox Instructions6 title="\Zr100Regex for case independent:  (?i)string",size={330,15},pos={4,755},frame=0,fColor=(0,0,65535),labelBack=0
     178
     179        SVAR SelectedStyle = root:Packages:Irena:MultiSamplePlot:SelectedStyle
     180        PopupMenu ApplyStyle,pos={260,680},size={400,20},proc=IR3L_PopMenuProc, title="Apply style:",help={"Set tool setting to defined conditions and apply to graph"}
     181        PopupMenu ApplyStyle,value=#"root:Packages:Irena:MultiSamplePlot:ListOfDefinedStyles",popvalue=SelectedStyle
     182        Button ApplyPresetFormating,pos={260,720},size={160,20}, proc=IR3L_ButtonProc,title="Apply All Formating", help={"Apply Preset Formating to update graph based on these choices"}
     183
     184        Button ExportGraphJPG,pos={500,680},size={90,20}, proc=IR3L_ButtonProc,title="Export jpg", help={"Export as jpg file"}
     185        Button ExportGraphTIF,pos={500,705},size={90,20}, proc=IR3L_ButtonProc,title="Export tiff", help={"Export as tiff file"}
     186        Button SaveGraphAsFile,pos={500,730},size={90,20}, proc=IR3L_ButtonProc,title="Save Graph", help={"Save Graph As Igor experiment"}
     187
    182188
    183189        //IR3L_FixPanelControls()
     
    281287       
    282288        SVAR ListOfDefinedStyles
    283         ListOfDefinedStyles = "Log-Log;Lin-Log;VolumeSizeDistribution;NumberSizeDistribution;"
     289        ListOfDefinedStyles = "Log-Log;Lin-Lin;Lin-Log;VolumeSizeDistribution;NumberSizeDistribution;"
    284290        SVAR ListOfDefinedDataPlots
    285         ListOfDefinedDataPlots = "X-Y;Guinier;Kratky;Dimensionless Kratky;Porod;"
     291        ListOfDefinedDataPlots = "X-Y (q-Int, etc.);Guinier (Q^2-ln(I));Kratky (Q-IQ^2);Porod (Q^4-IQ^4);"
    286292        SVAR SelectedStyle
    287293        if(strlen(SelectedStyle)<2)
     
    290296        SVAR SelectedDataPlot
    291297        if(strlen(SelectedDataPlot)<2)
    292                 SelectedDataPlot="X-Y"
     298                SelectedDataPlot=StringFromList(0,ListOfDefinedDataPlots)
    293299        endif
    294300
     
    527533        if(stringmatch(ctrlName,"ApplyStyle"))
    528534                //do something here
     535                SVAR SelectedStyle=root:Packages:Irena:MultiSamplePlot:SelectedStyle
     536                SelectedStyle = popStr
    529537                IR3L_SetAndApplyStyle(popStr)   
    530538        endif
     539        if(stringmatch(ctrlName,"SelectedDataPlot"))
     540                //do something here
     541                SVAR SelectedDataPlot=root:Packages:Irena:MultiSamplePlot:SelectedDataPlot
     542                SelectedDataPlot=popStr
     543                IR3L_SetPlotLegends()   
     544                SVAR SelectedStyle=root:Packages:Irena:MultiSamplePlot:SelectedStyle
     545                SelectedStyle = "Lin-Lin"
     546                IR3L_SetAndApplyStyle(SelectedStyle)   
     547                PopupMenu ApplyStyle,win=IR3L_MultiSamplePlotPanel, popmatch=SelectedStyle
     548        endif
     549
    531550       
    532551        DOWIndow/F IR3L_MultiSamplePlotPanel
     
    644663                SVAR GraphWindowName=root:Packages:Irena:MultiSamplePlot:GraphWindowName
    645664                SVAR ResultsDataTypesLookup=root:Packages:IrenaControlProcs:ResultsDataTypesLookup
     665                //what data are actually plot???
     666                SVAR SelectedDataPlot=root:Packages:Irena:MultiSamplePlot:SelectedDataPlot
     667                SVAR ListOfDefinedDataPlots=root:Packages:Irena:MultiSamplePlot:ListOfDefinedDataPlots
    646668               
    647669                if(UseQRSdata+UseIndra2Data+useResults!= 1)
     
    740762                                        dQWavename = ""
    741763                                endif
    742        
    743 
    744                
    745764                else
    746765                        ABort "Data type not known, error in IR3L_AppendData"
     
    760779                DoWIndow  $(GraphWindowName)
    761780                if(V_Flag==0)
    762                         print "Graph does not exist, nothing to append"
     781                        print "Graph does not exist, nothing to append to, stopping... "
     782                        SetDataFolder oldDf
     783                        return 0
    763784                endif
     785                //now we need to create data, if they do not exist. Here is where we decide what data user wants to plot.
     786                //      ListOfDefinedDataPlots = "X-Y (q-Int, etc.);Guinier (Q^2-ln(I));Kratky (Q-IQ^2);Porod (Q^4-IQ^4);"
     787                strswitch(SelectedDataPlot)                                             // string switch
     788                        case "X-Y (q-Int, etc.)":                               // execute if case matches expression
     789                                //nothing to do...
     790                                break                                                                           // exit from switch
     791                        case "Guinier (Q^2-ln(I))":                             // execute if case matches expression
     792                                //create and save Guinier data
     793                                Duplicate/O SourceIntWv, $(DataFolderName+"Guinier_"+IntensityWaveName)
     794                                Duplicate/O SourceQWv, $(DataFolderName+"Guinier_"+QWavename)
     795                                Wave SourceIntWv=$(DataFolderName+"Guinier_"+IntensityWaveName)
     796                                Wave SourceQWv=$(DataFolderName+"Guinier_"+QWavename)
     797                                SourceQWv = SourceQWv^2
     798                                SourceIntWv = ln(SourceIntWv)
     799                                if(WaveExists(SourceErrorWv))
     800                                        Duplicate/O SourceErrorWv, $(DataFolderName+"Guinier_"+ErrorWaveName)
     801                                        Wave SourceErrorWvOrg=$(DataFolderName+ErrorWaveName)
     802                                        Wave SourceIntWvOrg=$(DataFolderName+IntensityWaveName)
     803                                        Wave SourceErrorWv=$(DataFolderName+"Guinier_"+ErrorWaveName)
     804                                        SourceErrorWv = SourceErrorWvOrg/SourceIntWvOrg
     805                                endif
     806                                break
     807                        case "Kratky (Q-IQ^2)":                                 // execute if case matches expression
     808                                //create and save Kratky data
     809                                Duplicate/O SourceIntWv, $(DataFolderName+"Kratky_"+IntensityWaveName)
     810                                Duplicate/O SourceQWv, $(DataFolderName+"Kratky_"+QWavename)
     811                                Wave SourceIntWv=$(DataFolderName+"Kratky_"+IntensityWaveName)
     812                                Wave SourceQWv=$(DataFolderName+"Kratky_"+QWavename)
     813                                SourceIntWv = SourceIntWv * SourceQWv^2
     814                                if(WaveExists(SourceErrorWv))
     815                                        Duplicate/O SourceErrorWv, $(DataFolderName+"Kratky_"+ErrorWaveName)
     816                                        Wave SourceErrorWv=$(DataFolderName+"Kratky_"+ErrorWaveName)
     817                                        SourceErrorWv = SourceErrorWv * SourceQWv^2
     818                                endif
     819                                break
     820                        case "Porod (Q^4-IQ^4)":                                        // execute if case matches expression
     821                                //create and save Porod data
     822                                Duplicate/O SourceIntWv, $(DataFolderName+"Porod_"+IntensityWaveName)
     823                                Duplicate/O SourceQWv, $(DataFolderName+"Porod_"+QWavename)
     824                                Wave SourceIntWv=$(DataFolderName+"Porod_"+IntensityWaveName)
     825                                Wave SourceQWv=$(DataFolderName+"Porod_"+QWavename)
     826                                SourceQWv = SourceQWv^4
     827                                SourceIntWv = SourceIntWv * SourceQWv
     828                                if(WaveExists(SourceErrorWv))
     829                                        Duplicate/O SourceErrorWv, $(DataFolderName+"Porod_"+ErrorWaveName)
     830                                        Wave SourceErrorWv=$(DataFolderName+"Porod_"+ErrorWaveName)
     831                                        SourceErrorWv = SourceErrorWv * SourceQWv
     832                                endif
     833                                break
     834                        default:                                                                                // optional default expression executed, this is basically X-Y case again
     835                                                                                                                        // when no case matches
     836                endswitch
     837               
    764838                CheckDisplayed /W=$(GraphWindowName) SourceIntWv
    765839                if(V_Flag==0)
     
    847921                                DoWIndow/F IR3L_MultiSamplePlotPanel
    848922                        endif
     923                        if(cmpstr(ba.ctrlname,"SaveGraphAsFile")==0)
     924                                DoWindow/F $(GraphWindowName)
     925                                SaveGraphCopy /I /W=$(GraphWindowName)                                                  //      saves current graph as Igor packed experiment
     926                                DoWIndow/F IR3L_MultiSamplePlotPanel
     927                        endif
    849928
    850929
     
    904983        elseif(stringmatch(WHichStyle,"Lin-Log"))
    905984                LogXAxis = 1
     985                LogYAxis = 0
     986                Colorize = 1
     987                AddLegend = 1
     988                LineThickness  = 2
     989                UseSymbols = 0
     990                UseLines = 1
     991                SymbolSize = 2
     992                LegendSize = 12
     993                UseOnlyFoldersInLegend = 1
     994        elseif(stringmatch(WHichStyle,"Lin-Lin"))
     995                LogXAxis = 0
    906996                LogYAxis = 0
    907997                Colorize = 1
     
    10591149               
    10601150                string yAxisUnits="arbitrary"
    1061                 string xAxisUnits
     1151                string xAxisUnits = ""
     1152                variable CanDoLinearization = 0
     1153                string InputDataType=""
    10621154                //now, what can we do about naming this for users....
    10631155                if(UseIndra2Data)
     
    10771169                                XAxisLegend = "Q [A\S-1\M]"
    10781170                                YAxislegend = "Intensity ["+yAxisUnits+"]"
     1171                                CanDoLinearization = 1
     1172                                InputDataType="USAXS desmeared data"
    10791173                        elseif(StringMatch(DataSubType, "SMR_Int" ))
    10801174                                GraphUserTitle = "USAXS slit smeared data"
    10811175                                XAxisLegend = "Q [A\S-1\M]"
    10821176                                YAxislegend = "Intensity ["+yAxisUnits+"]"
     1177                                InputDataType="USAXS slit smeared data"
    10831178                        elseif(StringMatch(DataSubType, "Blank_R_int" ))
    10841179                                GraphUserTitle = "USAXS Blank R Intensity"
    10851180                                XAxisLegend = "Q [A\S-1\M]"
    10861181                                YAxislegend = "Intensity"
     1182                                InputDataType="USAXS Blank data"
    10871183                        elseif(StringMatch(DataSubType, "R_int" ))
    10881184                                GraphUserTitle = "USAXS R Intensity"
    10891185                                XAxisLegend = "Q [A\S-1\M]"
    10901186                                YAxislegend = "Intensity [normalized, arbitrary]"
     1187                                InputDataType="USAXS R intensity data"
    10911188                        elseif(StringMatch(DataSubType, "USAXS_PD" ))
    10921189                                GraphUserTitle = "USAXS Diode Intensity"
    10931190                                XAxisLegend = "AR angle [degrees]"
    10941191                                YAxislegend = "Diode Intensity [not normalized, arbitrary counts]"
     1192                                InputDataType="USAXS Diode intensity data"
    10951193                        elseif(StringMatch(DataSubType, "Monitor" ))
    10961194                                GraphUserTitle = "USAXS I0 Intensity"
    10971195                                XAxisLegend = "AR angle [degrees]"
    10981196                                YAxislegend = "I0 Intensity [not normalized, counts]"
     1197                                InputDataType="USAXS I0 intensity data"
    10991198                        else
    11001199                                GraphUserTitle = "USAXS data"
    11011200                                XAxisLegend = ""
    11021201                                YAxislegend = ""                       
     1202                                InputDataType="USAXS data"
    11031203                        endif
    11041204                elseif(UseQRSdata)
     
    11061206                                XAxisLegend = "Q [A\S-1\M]"
    11071207                                YAxislegend = "Intensity [arb]"
     1208                                CanDoLinearization = 1
     1209                                InputDataType="QRS data"
    11081210                elseif(UseResults)
    11091211                        //      AllKnownToolsResults = "Unified Fit;Size Distribution;Modeling II;Modeling I;Small-angle diffraction;Analytical models;Fractals;PDDF;Reflectivity;Guinier-Porod;"
     
    11171219                                        YAxislegend = "Number Fraction [arbitrary]"
    11181220                                endif
     1221                                InputDataType="Unified fit results"
    11191222                        elseif(StringMatch(SelectedResultsTool, "Size Distribution" ))
    11201223                                GraphUserTitle = "Size Distribution results"
     
    11281231                                        YAxislegend = "Number Fraction [1/(Acm\S3\M)]"
    11291232                                endif
     1233                                InputDataType="Size distribution results"
    11301234                        elseif(StringMatch(SelectedResultsTool, "Modeling II" ))
    11311235                                GraphUserTitle = "Modeling results"
     
    11391243                                        YAxislegend = "Number Fraction [1/(Acm\S3\M)]"
    11401244                                endif
     1245                                InputDataType="Modeling results"
    11411246                        elseif(StringMatch(SelectedResultsTool, "Small-angle diffraction" ))
    11421247                                GraphUserTitle = "Small-angle diffraction results"
    11431248                                XAxisLegend = "Q [A\S-1\M]"
    11441249                                YAxislegend = "Intensity [arb]"
     1250                                InputDataType="Small-angle diffraction results"
    11451251                        elseif(StringMatch(SelectedResultsTool, "Analytical models" ))
    11461252                                GraphUserTitle = "Analytical models results"
    11471253                                XAxisLegend = "Q [A\S-1\M]"
    11481254                                YAxislegend = "Intensity [arb]"
     1255                                InputDataType="Analytical models results"
    11491256                        elseif(StringMatch(SelectedResultsTool, "Fractals" ))
    11501257                                GraphUserTitle = "Fractals results"
    11511258                                XAxisLegend = "Q [A\S-1\M]"
    11521259                                YAxislegend = "Intensity [arb]"
     1260                                InputDataType="Fractals results"
    11531261                        elseif(StringMatch(SelectedResultsTool, "Reflectivity" ))
    11541262                                GraphUserTitle = "Reflectivity results"
    11551263                                XAxisLegend = "Q [A\S-1\M]"
    11561264                                YAxislegend = "Intensity [arb]"
     1265                                InputDataType="Reflectivity results"
    11571266                        elseif(StringMatch(SelectedResultsTool, "Guinier-Porod" ))
    11581267                                GraphUserTitle = "Guinier-Porod results"
    11591268                                XAxisLegend = "Q [A\S-1\M]"
    11601269                                YAxislegend = "Intensity [arb]"
     1270                                InputDataType="Guinier-Porod results"
    11611271                        endif
    11621272                else
    1163                
     1273                        //unknown...
    11641274                endif
    1165                
     1275                //now, this is for standard X-Y data. Next we need to deal with option to plot linearization plots...
    11661276       
     1277                SVAR SelectedDataPlot=root:Packages:Irena:MultiSamplePlot:SelectedDataPlot
     1278                //      ListOfDefinedDataPlots = "X-Y (q-Int, etc.);Guinier (Q^2-ln(I));Kratky (Q-IQ^2);Porod (Q^4-IQ^4);"
     1279                strswitch(SelectedDataPlot)                                             // string switch
     1280                        case "X-Y (q-Int, etc.)":                               // execute if case matches expression
     1281                                //nothing to do...
     1282                                //this was sorted out above...
     1283                                break                                                                           // exit from switch
     1284                        case "Guinier (Q^2-ln(I))":                             // execute if case matches expression
     1285                                //create and save Guinier data
     1286                                GraphUserTitle = "Guinier Plot for data"
     1287                                XAxisLegend = "Q\S2\M [A\S-2\M]"
     1288                                YAxislegend = "ln(Intensity)"
     1289                                break
     1290                        case "Kratky (Q-IQ^2)":                                 // execute if case matches expression
     1291                                //create and save Kratky data
     1292                                GraphUserTitle = "Kratky Plot for data"
     1293                                XAxisLegend = "Q [A\S-1\M]"
     1294                                YAxislegend = "Intensity*Q\S2\M"
     1295                                break
     1296                        case "Porod (Q^4-IQ^4)":                                        // execute if case matches expression
     1297                                //create and save Porod data
     1298                                GraphUserTitle = "Porod Plot for data"
     1299                                XAxisLegend = "Q\S4\M [A\S-4\M]"
     1300                                YAxislegend = "Intensity*Q\S4\M"
     1301                                break
     1302                        default:                                                                                // optional default expression executed, this is basically X-Y case again
     1303                                                                                                                        // when no case matches
     1304                endswitch
     1305
     1306                if(     !CanDoLinearization && !StringMatch(SelectedDataPlot, "X-Y (q-Int, etc.)"))                                     //abort and warn user, if linearization plots are nto possible...
     1307                        Abort "Selected input data type is not compatible with selected plot type. Cannot create "+SelectedDataPlot+" for "+InputDataType+"  Linearization plots are only for QRS and USAXS desmeared data"
     1308                endif
    11671309end
    11681310
  • trunk/User Procedures/Irena/IR3_SimpleFits.ipf

    r890 r891  
    10851085        T_Constraints[0] = {"K0 > 0"}
    10861086        T_Constraints[1] = {"K1 > 3"}
    1087         T_Constraints[2] = {"K2 < 10"}
    1088         T_Constraints[3] = {"K2 > 0.1"}
    1089         W_coef = {Spheroid_ScalingConstant, Spheroid_Radius,Spheroid_Beta, DataBackground}
     1087        T_Constraints[2] = {"K2 < 20"}
     1088        T_Constraints[3] = {"K2 > 0.05"}
     1089        T_Constraints[4] = {"K3 < K0/20"}
    10901090        Wave/Z CursorAWave = CsrWaveRef(A, "IR3J_LogLogDataDisplay")
    10911091        Wave/Z CursorBWave = CsrWaveRef(B, "IR3J_LogLogDataDisplay")
     
    10981098        Spheroid_ScalingConstant=CursorAWave[DataQstartPoint]
    10991099        Spheroid_Radius=2*pi/CursorAWave[DataQstartPoint]
    1100         DataBackground=0.05*CursorAwave[DataQEndPoint]
     1100        DataBackground=0.01*CursorAwave[DataQEndPoint]
    11011101        Spheroid_Beta = 1
     1102        W_coef = {Spheroid_ScalingConstant, Spheroid_Radius,Spheroid_Beta,DataBackground}
    11021103       
    11031104        LocalEwave[0]=(Spheroid_ScalingConstant/20)
     
    11191120        Wave W_sigma
    11201121        string TagText
    1121         TagText = "Fitted Spheroid Form Factor   \r"+"Int=Scale*SpheroidFF(Q,R,beta)+bck"+" \r Radius [A] = "+num2str(W_coef[1])+" \r Aspect ratio = "+num2str(W_coef[2])+" \r Scale = "+num2str(W_coef[0])+"\r Background = "+num2str(W_coef[3])
     1122        TagText = "Fitted Spheroid Form Factor   \r"+"Int=Scale*SpheroidFF(Q,R,beta)+bck"+" \r Radius [A] = "+num2str(W_coef[1])+" \r Aspect ratio = "+num2str(W_coef[2])+" \r Scale = "+num2str(W_coef[0])
     1123        TagText+="\r Background = "+num2str(W_coef[3])
    11221124        TagText+="\r chi-square = "+num2str(V_chisq)
    11231125        string TagName= "SpheroidFit"
     
    11491151        //CurveFitDialog/ w[3] = Background
    11501152
    1151         return w[0]*IR1T_CalcIntgSpheroidFFPoints(Q,w[1],w[2])+ w[3]
     1153        return w[0]*IR1T_CalcIntgSpheroidFFPoints(Q,w[1],w[2])+w[3]
    11521154End
    11531155
  • trunk/User Procedures/Irena/IRB1_bioSAXS.ipf

    r890 r891  
    5555        endif
    5656end
    57 
     57//************************************************************************************************************
     58Function IR1B_ImportASCIIMainCheckVersion()     
     59        DoWindow IR1I_ImportBioSAXSASCIIData
     60        if(V_Flag)
     61                if(!IR1_CheckPanelVersionNumber("IR1I_ImportBioSAXSASCIIData", IRB1_ImportBioSAXSASCIIDataVersion))
     62                        DoAlert /T="The Import ASCII panel was created by incorrect version of Irena " 1, "Import ASCII tool needa to be restarted to work properly. Restart now?"
     63                        if(V_flag==1)
     64                                KillWIndow/Z IR1I_ImportBioSAXSASCIIData
     65                                IRB1_ImportASCII()
     66                        else            //at least reinitialize the variables so we avoid major crashes...
     67                                IRB1_InitializeImportData()
     68                        endif
     69                endif
     70        endif
     71end
    5872//************************************************************************************************************
    5973//************************************************************************************************************
     
    6478//************************************************************************************************************
    6579//todo:
    66 //add options to use different error propagation, for nwo uses Errro rpopagation
     80//add options to use different error propagation, per request uses Standard deviation
    6781//      UseStdDev = 0
    6882//      UseSEM = 0
     
    7084
    7185Function IRB1_DataManipulation()
    72 
    7386        IN2G_CheckScreenSize("width",1200)
    7487        DoWIndow IRB1_DataManipulationPanel
     
    8497        endif
    8598end
    86 
     99//************************************************************************************************************
     100Function IR1B_DataManMainCheckVersion()
     101        DoWindow IRB1_DataManipulationPanel
     102        if(V_Flag)
     103                if(!IR1_CheckPanelVersionNumber("IRB1_DataManipulationPanel", IRB1_DataManipulation))
     104                        DoAlert /T="The Data Manipulation panel was created by incorrect version of Irena " 1, "Data Manipulation tool needa to be restarted to work properly. Restart now?"
     105                        if(V_flag==1)
     106                                KillWIndow/Z IRB1_DataManipulationPanel
     107                                IRB1_DataManipulation()
     108                        else            //at least reinitialize the variables so we avoid major crashes...
     109                                IRB1_DataManInitBioSAXS()
     110                        endif
     111                endif
     112        endif
     113end
    87114//************************************************************************************************************
    88115//************************************************************************************************************
     
    106133                IR3D_UpdateListOfAvailFiles(1)
    107134                IR3D_UpdateListOfAvailFiles(2)
    108                 IR3D_RebuildListboxTables()
    109                
     135                IR3D_RebuildListboxTables()     
    110136end
    111137//************************************************************************************************************
     
    128154                SVAR FolderMatchStr = root:Packages:IrenaControlProcs:UnivDataExportPanel:FolderMatchStr
    129155                FolderMatchStr = "sub"
    130                
    131                
    132 end
    133 
    134 
     156end
    135157//************************************************************************************************************
    136158//************************************************************************************************************
     
    657679//**********************************************************************************************************
    658680
     681
     682Function IRB1_DataManSetVarProc(sva) : SetVariableControl
     683        STRUCT WMSetVariableAction &sva
     684
     685        switch( sva.eventCode )
     686                case 1: // mouse up
     687                case 2: // Enter key
     688                case 3: // Live update
     689                        Variable dval = sva.dval
     690                        String sval = sva.sval
     691                        if(StringMatch(sva.CtrlName, "DataScalingConstant"))
     692                                NVAR TmpVal = root:Packages:Irena:BioSAXSDataMan:DataScalingConstant
     693                                SetVariable DataScalingConstant,win=IRB1_DataManipulationPanel, limits={0,inf,IRB1_SetVariableStepScaling*TmpVal}
     694                                //and here call recalculate the curves....
     695                                IRB1_DataManScaleDataOne()
     696                        endif
     697                        if(StringMatch(sva.CtrlName, "ErrorScalingConstant"))
     698                                NVAR TmpVal = root:Packages:Irena:BioSAXSDataMan:ErrorScalingConstant
     699                                SetVariable ErrorScalingConstant,win=IRB1_DataManipulationPanel, limits={0,inf,IRB1_SetVariableStepScaling*TmpVal}
     700                                //and here call recalculate the curves....
     701                                IRB1_DataManScaleDataOne()
     702                        endif
     703                        if(StringMatch(sva.CtrlName, "FlatBackgroundSubtract"))
     704                                NVAR TmpVal = root:Packages:Irena:BioSAXSDataMan:FlatBackgroundSubtract
     705                                SetVariable FlatBackgroundSubtract,win=IRB1_DataManipulationPanel, limits={0,inf,IRB1_SetVariableStepScaling*TmpVal}
     706                                //and here call recalculate the curves....
     707                                IRB1_DataManScaleDataOne()
     708                        endif
     709                       
     710                       
     711                        break
     712                case -1: // control being killed
     713                        break
     714        endswitch
     715
     716        return 0
     717End
     718
     719
     720//**********************************************************************************************************
     721//**********************************************************************************************************
     722
    659723Function IRB1_DataManRemoveAllDataSets()
    660724
Note: See TracChangeset for help on using the changeset viewer.