- Timestamp:
- Nov 25, 2009 2:40:15 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sans/Dev/trunk/NCNR_User_Procedures/Reduction/USANS/U_CALC.ipf
r583 r605 121 121 String/G gTotTimeStr="" 122 122 Variable/G gAnalyzerOmega = 7.1e-7 //solid angle of the analyzer, in steradians 123 Variable/G gBeamCurrent=25000 //beam current Ed*I (n/s) for 5/8" diam = 25000 n/s123 // Variable/G gBeamCurrent=25000 // (?? not used) beam current Ed*I (n/s) for 5/8" diam = 25000 n/s 124 124 Variable/G gThick=0.1 //sample thickness (cm) 125 125 Variable/G gSamTrans=0.8 … … 459 459 SetVariable totalTime,pos={left+20,335},size={150,15},title="Count time (h:m)",value= gTotTimeStr 460 460 SetVariable totalTime,limits={-inf,inf,0},noedit=1 461 SetVariable valdisp0_2,pos={left+20,365},size={ 190,15},title="Multiple Coherent Scattering"462 SetVariable valdisp0_2,limits={-inf,inf,0}, noedit=1,value=g_MultScattFraction461 SetVariable valdisp0_2,pos={left+20,365},size={200,15},title="Multiple Coherent Scattering" 462 SetVariable valdisp0_2,limits={-inf,inf,0},format="%8f",noedit=1,value=g_MultScattFraction 463 463 // ValDisplay valdisp0_3,pos={left+20,420},size={220,13},title="Estimated transmission" 464 464 // ValDisplay valdisp0_3,limits={0,0,0},barmisc={0,1000},value=root:Packages:NIST:USANS:Globals:U_Sim:g_1DEstTrans … … 1606 1606 endif 1607 1607 endfor 1608 1608 1609 // no save the fake "COR" file that is the combination and rescaling of the data sets 1610 // - the combination is in root:Sim_USANS: 1611 NVAR g_1D_PlotCR = root:Packages:NIST:USANS:Globals:U_Sim:g_1D_PlotCR 1612 1613 if(g_1D_PlotCR) // right now, save COR only if the CR is plotted 1614 SaveFakeCOR(baseName) 1615 endif 1616 1609 1617 break 1610 1618 endswitch 1611 1619 1612 1620 return 0 1621 End 1622 1623 1624 Function SaveFakeCOR(nameStr) 1625 String nameStr 1626 1627 NVAR gThick = root:Packages:NIST:USANS:Globals:U_Sim:gThick 1628 NVAR gSamTrans = root:Packages:NIST:USANS:Globals:U_Sim:gSamTrans 1629 NVAR gAnalyzerOmega = root:Packages:NIST:USANS:Globals:U_Sim:gAnalyzerOmega 1630 NVAR g_MultScattFraction = root:Packages:NIST:USANS:Globals:U_Sim:g_MultScattFraction 1631 SVAR funcStr = root:Packages:NIST:USANS:Globals:U_Sim:gFuncStr 1632 1633 String folder = "root:Sim_USANS:",fileStr="" 1634 String termStr="\r\n" //VAX uses only <CR> as terminator, but only CRLF seems to FTP correctly to VAX 1635 String destStr="",formatStr = "%15.6g %15.6g %15.6g %15.6g %15.6g %15.6g"+termStr 1636 1637 Variable refNum,integer,realval 1638 //*****these waves MUST EXIST, or IGOR Pro will crash, with a type 2 error**** 1639 WAVE qvals =$(folder + "Sim_USANS_q") 1640 WAVE inten=$(folder + "Sim_USANS_i") 1641 WAVE sig=$(folder + "Sim_USANS_s") 1642 1643 //check each wave 1644 If(!(WaveExists(qvals))) 1645 Abort "qvals DNExist in SaveFakeCOR()" 1646 Endif 1647 If(!(WaveExists(inten))) 1648 Abort "inten DNExist in SaveFakeCOR()" 1649 Endif 1650 If(!(WaveExists(sig))) 1651 Abort "sig DNExist in SaveFakeCOR()" 1652 Endif 1653 1654 //dummy wave for the resolution 1655 Duplicate/O qvals,dumWave 1656 SVAR USANSFolder = root:Packages:NIST:USANS:Globals:gUSANSFolder 1657 NVAR DQv=$(USANSFolder+":Globals:MainPanel:gDQv") 1658 dumWave = - DQv 1659 1660 //temp waves for the rescaling 1661 Duplicate/O qvals,tq,ti,te 1662 ti=inten 1663 te=sig 1664 tq=qvals 1665 1666 //rescale 1667 ti *= 1.0e6 / GetUSANSBeamIntensity() //converts to "SAM" scaled data 1668 ti *= 1/(gSamTrans*gThick*gAnalyzerOmega*1.0e6) //converts to "COR" scaling (approx, since I don't know Twide) 1669 //rescale error appropriately too 1670 te *= 1.0e6 / GetUSANSBeamIntensity() //converts to "SAM" scaled data 1671 te *= 1/(gSamTrans*gThick*gAnalyzerOmega*1.0e6) //converts to "COR" scaling (approx, since I don't know Twide) 1672 1673 // add fake error to every few data points to mark it as simulated data 1674 te[2,numpnts(te)-1;7] *= 10 1675 1676 // now trim off the q-values less than 3e-5 1677 if(tq[0] < 3e-5) 1678 do 1679 DeletePoints 0, 1, ti,tq,te,dumWave 1680 while(tq[0] < 3e-5) 1681 endif 1682 1683 String samStr="",empStr="",dateStr="",samLabelStr="",paramStr="",empLevStr="",bkgLevStr="",pkStr="" 1684 samStr = "SIM FILES: "+StringByKey("FILE",note(inten),":",";") 1685 empStr = "EMP FILES: "+"none" 1686 empLevStr = "EMP LEVEL: " + "none" 1687 bkgLevStr = "BKG LEVEL: " + "not used" 1688 paramStr = "Ds = "+num2str(gthick)+" cm ; " 1689 paramStr += "Twide = "+"unknown"+" ; " 1690 paramStr += "Trock = "+num2str(gSamTrans) 1691 pkStr += "Multiple coherent scattering fraction: "+num2str(g_MultScattFraction) 1692 1693 //these strings are always the same 1694 samLabelStr ="LABEL: "+"Simulated USANS Data from: "+funcStr 1695 dateStr = date()+" at "+time()// + " "+Secs2Time(DateTime,2) 1696 1697 1698 fileStr=nameStr+".cor" 1699 //actually open the file 1700 Open refNum as fileStr 1701 1702 fprintf refnum,"%s"+termStr,samStr 1703 fprintf refnum,"%s"+termStr,dateStr 1704 fprintf refnum,"%s"+termStr,samLabelStr 1705 fprintf refnum,"%s"+termStr,empStr 1706 fprintf refnum,"%s"+termStr,paramStr 1707 fprintf refnum,"%s"+termStr,pkStr 1708 fprintf refnum,"%s"+termStr,empLevStr + " ; "+bkglevStr 1709 1710 // 1711 wfprintf refnum, formatStr, tq,ti,te,dumWave,dumWave,dumWave 1712 1713 Close refnum 1714 1715 Killwaves/Z dumWave,ti,te,tq 1716 1717 1718 1719 return(0) 1613 1720 End 1614 1721 … … 1657 1764 // set up some of the strings needed 1658 1765 fileStr=nameStr+num2str(num+set)+".bt5" 1659 dateStr = date() // + " "+Secs2Time(DateTime,2)1766 dateStr = date() 1660 1767 ctTime = countingTime[first] 1661 1768 numPts = last-first+1
Note: See TracChangeset
for help on using the changeset viewer.