Changeset 888
- Timestamp:
- Jan 22, 2013 4:34:14 PM (10 years ago)
- Location:
- sans/Dev/trunk/NCNR_User_Procedures
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Packages/SumModel/SumSANSModels_v40.ipf
r887 r888 125 125 126 126 //get every user defined curve fit function, remove everything the user doesn't need to see... 127 list = User_FunctionPopupList() 127 list = User_FunctionPopupList() + "EC_Empirical;" 128 128 129 129 // must remove Sum_Model … … 137 137 //// Print list 138 138 tmp = GrepList(list,"^Smear") //don't show the Smeared... models in the popup 139 Print tmp139 // Print tmp 140 140 list = RemoveFromList(tmp, list ,";") 141 141 // -
sans/Dev/trunk/NCNR_User_Procedures/Common/Packages/LinearizedFits/LinearizedFits_v40.ipf
r861 r888 763 763 String ctrlName 764 764 765 String list="",newList="",item="" 766 Variable num,ii 767 768 //check for the path 769 PathInfo catPathName 770 if(V_Flag==0) 771 DoAlert 0, "Data path does not exist - pick the data path from the button on the FIT panel" 772 Return("") 773 Endif 774 775 list = IndexedFile(catpathName,-1,"????") 776 num=ItemsInList(list,";") 777 //print "num = ",num 778 for(ii=(num-1);ii>=0;ii-=1) 779 item = StringFromList(ii, list ,";") 780 //simply remove all that are not raw data files (SA1 SA2 SA3) 781 if( !stringmatch(item,"*.SA1*") && !stringmatch(item,"*.SA2*") && !stringmatch(item,"*.SA3*") ) 782 if( !stringmatch(item,".*") && !stringmatch(item,"*.pxp") && !stringmatch(item,"*.DIV")) //eliminate mac "hidden" files, pxp, and div files 783 newlist += item + ";" 784 endif 785 endif 786 endfor 787 //remove VAX version numbers 788 newList = RemoveVersNumsFromList(newList) 789 //sort 790 newList = SortList(newList,";",0) 791 765 String newList="" 766 // String list="",newList="",item="" 767 // Variable num,ii 768 // 769 // //check for the path 770 // PathInfo catPathName 771 // if(V_Flag==0) 772 // DoAlert 0, "Data path does not exist - pick the data path from the button on the FIT panel" 773 // Return("") 774 // Endif 775 // 776 // list = IndexedFile(catpathName,-1,"????") 777 // num=ItemsInList(list,";") 778 // //print "num = ",num 779 // for(ii=(num-1);ii>=0;ii-=1) 780 // item = StringFromList(ii, list ,";") 781 // //simply remove all that are not raw data files (SA1 SA2 SA3) 782 // if( !stringmatch(item,"*.SA1*") && !stringmatch(item,"*.SA2*") && !stringmatch(item,"*.SA3*") ) 783 // if( !stringmatch(item,".*") && !stringmatch(item,"*.pxp") && !stringmatch(item,"*.DIV")) //eliminate mac "hidden" files, pxp, and div files 784 // newlist += item + ";" 785 // endif 786 // endif 787 // endfor 788 // //remove VAX version numbers 789 // newList = RemoveVersNumsFromList(newList) 790 // //sort 791 // newList = SortList(newList,";",0) 792 793 // Jan 2013 -- replaced with a utility function that filters out raw, div, mask, etc. 794 newList = A_ReducedDataFileList("") 795 792 796 return newlist 793 797 End -
sans/Dev/trunk/NCNR_User_Procedures/Common/Packages/PlotManager/PlotManager_v40.ipf
r744 r888 319 319 // Windows, where the data file must be .txt (and possibly OSX) 320 320 // 321 // TODO: this is a duplicated procedure. See the equivalent in NCNR_Utils and which one to keep? 321 322 Function/S A_ReducedDataFileList(ctrlName) 322 323 String ctrlName … … 337 338 list = RemoveFromList(ListMatch(list,"*.SA2*",";"), list, ";", 0) 338 339 list = RemoveFromList(ListMatch(list,"*.SA3*",";"), list, ";", 0) 340 list = RemoveFromList(ListMatch(list,"*.SA4*",";"), list, ";", 0) // added JAN 2013 for new guide hall 341 list = RemoveFromList(ListMatch(list,"*.SA5*",";"), list, ";", 0) 339 342 list = RemoveFromList(ListMatch(list,".*",";"), list, ";", 0) 340 343 list = RemoveFromList(ListMatch(list,"*.pxp",";"), list, ";", 0) … … 342 345 list = RemoveFromList(ListMatch(list,"*.GSP",";"), list, ";", 0) 343 346 list = RemoveFromList(ListMatch(list,"*.MASK",";"), list, ";", 0) 344 347 #if(exists("QUOKKA") == 6) 345 348 list = RemoveFromList(ListMatch(list,"*.nx.hdf",";"), list, ";", 0) 346 349 list = RemoveFromList(ListMatch(list,"*.bin",";"), list, ";", 0) 347 350 #endif 348 351 349 352 -
sans/Dev/trunk/NCNR_User_Procedures/Common/Packages/PlotManager/PlotUtilsMacro_v40.ipf
r873 r888 1205 1205 // from 2012 Event Mode Processing 1206 1206 list = RemoveFromList("CleanupTimes;IndexForHistogram;JointHistogram;MakeFibonacciWave;Osc_ProcessEvents;SetFibonacciBins;SetLinearBins;SetLogBins;Stream_ProcessEvents;",list,";") 1207 1207 1208 // from 2013 Simulation 1209 // list = RemoveFromList("EC_Empirical;SmearedEC_Empirical;",list,";") 1210 1208 1211 list = SortList(list) 1209 1212 return(list) -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/MultScatter_MonteCarlo_2D.ipf
r887 r888 966 966 Function/S MC_FunctionPopupList() 967 967 String list,tmp 968 list = User_FunctionPopupList() 968 list = User_FunctionPopupList()// + "EC_Empirical;" 969 969 970 970 //simplify the display, forcing smeared calculations behind the scenes … … 1467 1467 t0 = (stopMSTimer(-2) - t0)*1e-6 1468 1468 t0 *= imon/1000/ThreadProcessorCount //projected time, in seconds (using threads for the calculation) 1469 t0 *= 2 //empirical correction 1469 t0 *= 2 //empirical correction, since processor count returns 8 for (4 real + 4 virtual) 1470 1470 Print "Estimated Simulation time (s) = ",t0 1471 1471 … … 2259 2259 2260 2260 2261 //// 2262 //// plots an empirical empty cell scattering, also have a Two Level implementation in 2263 //// the main MonteCarlo procedure file. The TwoLevel version is "calibrated" to give a more realistic 2264 //// count rate, but neither are suitable to be incorporated into a 2D simulation 2265 //// 2266 // -- 2.2e-9 was the fitted value, again, empirically using 2.2e-8 to take into account 2267 // that I need "enough" empty cell scattering from a sample that is say 1mm thick 2268 // 2269 Proc PlotEC_Empirical(num,qmin,qmax) 2270 Variable num=256,qmin=0.001,qmax=0.7 2271 Prompt num "Enter number of data points for model: " 2272 Prompt qmin "Enter minimum q-value (A^-1) for model: " 2273 Prompt qmax "Enter maximum q-value (A^-1) for model: " 2274 2275 make/O/D/N=(num) xwave_ECEmp,ywave_ECEmp 2276 xwave_ECEmp = alog( log(qmin) + x*((log(qmax)-log(qmin))/num) ) 2277 make/O/D coef_ECEmp = {2.2e-8,3.346,0.0065,9.0,0.016} 2278 make/O/T parameters_ECEmp = {"A","power","scale","Rg (A)","bkg (cm-1)"} 2279 Edit parameters_ECEmp,coef_ECEmp 2280 2281 Variable/G root:g_ECEmp 2282 g_ECEmp := EC_Empirical(coef_ECEmp,ywave_ECEmp,xwave_ECEmp) 2283 Display ywave_ECEmp vs xwave_ECEmp 2284 ModifyGraph marker=29,msize=2,mode=4,log=1 2285 Label bottom "q (A\\S-1\\M)" 2286 Label left "Intensity (cm\\S-1\\M)" 2287 AutoPositionWindow/M=1/R=$(WinName(0,1)) $WinName(0,2) 2288 2289 AddModelToStrings("EC_Empirical","coef_ECEmp","parameters_ECEmp","ECEmp") 2290 End 2291 2292 2293 // as AAO for smeared version which is necessary 2294 Function EC_Empirical(cw,yw,xw) : FitFunc 2295 Wave cw,yw,xw 2296 2297 yw = fEC_Empirical(cw,xw) 2298 2299 return(0) 2300 End 2301 // a sum of a power law and debye to approximate the scattering from a real empty cell 2302 // 2303 Function fEC_Empirical(w,x) : FitFunc 2304 Wave w 2305 Variable x 2306 2307 // variables are: 2308 //[0] = A 2309 //[1] = power m 2310 //[2] scale factor 2311 //[3] radius of gyration [A] 2312 //[4] background [cm-1] 2313 2314 Variable scale,rg,bkg,aa,mm,Iq 2315 aa = w[0] 2316 mm = w[1] 2317 scale = w[2] 2318 rg = w[3] 2319 bkg = w[4] 2320 2321 // calculates (scale*debye)+bkg 2322 Variable Pq,qr2 2323 2324 // if(x*Rg < 1e-3) //added Oct 2008 to avoid numerical errors at low arg values 2325 // return(scale+bkg) 2326 // endif 2327 2328 Iq = aa*x^-mm 2329 2330 qr2=(x*rg)^2 2331 Pq = 2*(exp(-(qr2))-1+qr2)/qr2^2 2332 2333 //scale 2334 Pq *= scale 2335 // then add the terms up 2336 return (Iq + Pq + bkg) 2337 End 2338 2339 //wrapper to calculate the smeared model as an AAO-Struct 2340 // fills the struct and calls the ususal function with the STRUCT parameter 2341 // 2342 // used only for the dependency, not for fitting 2343 // 2344 Function fSmearedEC_Empirical(coefW,yW,xW) 2345 Wave coefW,yW,xW 2346 2347 String str = getWavesDataFolder(yW,0) 2348 String DF="root:"+str+":" 2349 2350 WAVE resW = $(DF+str+"_res") 2351 2352 STRUCT ResSmearAAOStruct fs 2353 WAVE fs.coefW = coefW 2354 WAVE fs.yW = yW 2355 WAVE fs.xW = xW 2356 WAVE fs.resW = resW 2357 2358 Variable err 2359 err = SmearedEC_Empirical(fs) 2360 2361 return (0) 2362 End 2363 2364 // this is all there is to the smeared calculation! 2365 Function SmearedEC_Empirical(s) :FitFunc 2366 Struct ResSmearAAOStruct &s 2367 2368 // the name of your unsmeared model (AAO) is the first argument 2369 Smear_Model_20(EC_Empirical,s.coefW,s.xW,s.yW,s.resW) 2370 2371 return(0) 2372 End 2373 2374 2375 2376 2377 2378 2379 /////////////// end empirical EC model 2380 2381 2261 2382 2262 2383 -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/NCNR_Utils.ipf
r887 r888 1863 1863 list = RemoveFromList(ListMatch(list,"*.SA2*",";"), list, ";", 0) 1864 1864 list = RemoveFromList(ListMatch(list,"*.SA3*",";"), list, ";", 0) 1865 list = RemoveFromList(ListMatch(list,"*.SA4*",";"), list, ";", 0) // added JAN 2013 for new guide hall 1866 list = RemoveFromList(ListMatch(list,"*.SA5*",";"), list, ";", 0) 1865 1867 list = RemoveFromList(ListMatch(list,".*",";"), list, ";", 0) 1866 1868 list = RemoveFromList(ListMatch(list,"*.pxp",";"), list, ";", 0) … … 1907 1909 newlist += item + ";" 1908 1910 endif 1911 if( stringmatch(item,"*.sa4*") ) // added JAN 2013 for new guide hall 1912 newlist += item + ";" 1913 endif 1914 if( stringmatch(item,"*.sa5*") ) 1915 newlist += item + ";" 1916 endif 1909 1917 //print "ii=",ii 1910 1918 endfor -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/SASCALC.ipf
r887 r888 2124 2124 2125 2125 endswitch 2126 Print "Ng = ",Ng2126 // Print "Ng = ",Ng 2127 2127 2128 2128 Ng = abs(round(Ng)) … … 2134 2134 // slider and setVar are linked to the same global 2135 2135 // updates the wave and changes the beamcenter (x,y) in the wave 2136 // 2137 // does not account for the fall due to gravity in y-direction 2136 2138 Function detectorOffset() 2137 2139 -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/Transmission.ipf
r887 r888 1629 1629 EndMacro 1630 1630 1631 // 1632 // The proper list of transmission files MUST be present in the Patch Popup list 1633 // -- using Grep for "trans" is a possible choice 1634 // 1635 // testing only TODO_10m -- a quick fix for the missing BS xpos to identify trans 1636 Function BatchConvert_10mTrans(xPos) 1637 Variable xPos //pass -10 to make it trans, pass 0 to make it scattering again 1638 1639 //this will change (checked) values in ALL of the headers in the popup list 1640 SVAR list = root:myGlobals:Patch:gPatchList 1641 String partialName="", tempName = "" 1642 Variable numitems,ii,ok 1643 numitems = ItemsInList(list,";") 1644 1645 //loop through all of the files in the list, applying changes as dictated by w and wt waves 1646 ii=0 1647 do 1648 //get current item in the list 1649 partialName = StringFromList(ii, list, ";") 1650 1651 //get a valid file based on this partialName and catPathName 1652 tempName = FindValidFilename(partialName) 1653 1654 //prepend path to tempName for read routine 1655 PathInfo catPathName 1656 tempName = S_path + tempName 1657 1658 //make sure the file is really a RAW data file 1659 ok = CheckIfRawData(tempName) 1660 if (!ok) 1661 Print "this file is not recognized as a RAW SANS data file = ",tempName 1662 else 1663 //go write the changes to the file 1664 ChangeBSXPos(tempName,xPos) 1665 Endif 1666 1667 ii+=1 1668 while(ii<numitems) 1669 1670 End 1631 1671 1632 1672 /////
Note: See TracChangeset
for help on using the changeset viewer.