Ignore:
Timestamp:
Mar 7, 2017 3:01:16 PM (6 years ago)
Author:
srkline
Message:

Added procedures to read in and patch calibration and dead time for all (8) or (9) deteector panels from the CSV files - the same ones that are to be supplied to NICE for direct writing to the data files. Faster than one detetctor panel at a time.

Fixed bug in display of q-values on data display panel where the wavelength was being read incorrectly.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_PatchFiles.ipf

    r1022 r1026  
    15881588        Button button0_1,pos={20,220},size={50.00,20.00},proc=V_WriteDTButtonProc,title="Write" 
    15891589        Button button0_2,pos={18.00,336.00},size={140.00,20.00},proc=V_GeneratePerfDTButton,title="Perfect Dead Time" 
     1590        Button button0_3,pos={18.00,370.00},size={140.00,20.00},proc=V_LoadCSVDTButton,title="Load Dead Time CSV" 
     1591        Button button0_4,pos={18.00,400.00},size={140.00,20.00},proc=V_WriteCSVDTButton,title="Write Dead Time CSV" 
    15901592         
    15911593        SetVariable setvar0,pos={20,141},size={100.00,14.00},title="first" 
     
    16051607EndMacro 
    16061608 
     1609 
     1610Function V_LoadCSVDTButton(ba) : ButtonControl 
     1611        STRUCT WMButtonAction &ba 
     1612 
     1613        switch( ba.eventCode ) 
     1614                case 2: // mouse up 
     1615                        // click code here 
     1616 
     1617                        LoadWave/J/A/D/O/W/E=1/K=0                              //will prompt for the file, auto name 
     1618                         
     1619                        break 
     1620                case -1: // control being killed 
     1621                        break 
     1622        endswitch 
     1623 
     1624        return 0 
     1625End 
     1626 
     1627//TODO 
     1628// -- currently this skips detector "B", since its dead time is not like the tubes 
     1629// -- fails miserably if the deadtime_** waves don't exist 
     1630// -- the writing may take a long time. Warn the user. 
     1631// -- if the data files are not "cleaned up", re-reading will pick up the rawVSANS copy and it 
     1632//    will look like nothing was written 
     1633// 
     1634// writes the entire content of the CSV file (all 8 panels) to each detector entry in each data file 
     1635// as specified by the run number range 
     1636// 
     1637Function V_WriteCSVDTButton(ba) : ButtonControl 
     1638        STRUCT WMButtonAction &ba 
     1639 
     1640        Variable ii 
     1641        String detStr 
     1642         
     1643        switch( ba.eventCode ) 
     1644                case 2: // mouse up 
     1645                        // click code here 
     1646                         
     1647//                      ControlInfo popup_0 
     1648//                      String detStr = S_Value 
     1649                        ControlInfo setvar0 
     1650                        Variable lo=V_Value 
     1651                        ControlInfo setvar1 
     1652                        Variable hi=V_Value 
     1653                        Wave deadTimeW = root:Packages:NIST:VSANS:Globals:Patch:deadTimeWave 
     1654                         
     1655                        for(ii=0;ii<ItemsInList(ksDetectorListNoB);ii+=1) 
     1656                                detStr = StringFromList(ii, ksDetectorListNoB, ";") 
     1657                                Wave tmpW = $("root:deadtime_"+detStr) 
     1658                                deadTimeW = tmpW 
     1659                                V_fPatchDetectorDeadtime(lo,hi,detStr,deadtimeW) 
     1660                        endfor 
     1661                         
     1662                        break 
     1663                case -1: // control being killed 
     1664                        break 
     1665        endswitch 
     1666 
     1667        // TODO 
     1668        // -- clear out the data folders (from lo to hi?) 
     1669// 
     1670// root:Packages:NIST:VSANS:RawVSANS:sans1301: 
     1671        for(ii=lo;ii<=hi;ii+=1) 
     1672                KillDataFolder/Z $("root:Packages:NIST:VSANS:RawVSANS:sans"+num2str(ii)) 
     1673        endfor 
     1674        return 0 
     1675End 
    16071676 
    16081677 
     
    18221891        Button button0_1,pos={20,220},size={50.00,20.00},proc=V_WriteCalibButtonProc,title="Write" 
    18231892        Button button0_2,pos={18.00,336.00},size={140.00,20.00},proc=V_GeneratePerfCalibButton,title="Perfect Calibration" 
     1893        Button button0_3,pos={18.00,370.00},size={140.00,20.00},proc=V_LoadCSVCalibButton,title="Load Calibration CSV" 
     1894        Button button0_4,pos={18.00,400.00},size={140.00,20.00},proc=V_WriteCSVCalibButton,title="Write Calibration CSV" 
    18241895                 
    18251896        SetVariable setvar0,pos={20,141},size={100.00,14.00},title="first" 
     
    18401911         
    18411912EndMacro 
     1913 
     1914 
     1915Function V_LoadCSVCalibButton(ba) : ButtonControl 
     1916        STRUCT WMButtonAction &ba 
     1917 
     1918        switch( ba.eventCode ) 
     1919                case 2: // mouse up 
     1920                        // click code here 
     1921 
     1922                        LoadWave/J/A/D/O/W/E=1/K=0                              //will prompt for the file, auto name 
     1923                         
     1924                        break 
     1925                case -1: // control being killed 
     1926                        break 
     1927        endswitch 
     1928 
     1929        return 0 
     1930End 
     1931 
     1932//TODO 
     1933// -- currently this skips detector "B", since its calibration is not like the tubes 
     1934// -- fails miserably if the a,b,c_** waves don't exist 
     1935// -- the writing may take a long time. Warn the user. 
     1936// -- if the data files are not "cleaned up", re-reading will pick up the rawVSANS copy and it 
     1937//    will look like nothing was written 
     1938// 
     1939// writes the entire content of the CSV file (all 8 panels) to each detector entry in each data file 
     1940// as specified by the run number range 
     1941// 
     1942Function V_WriteCSVCalibButton(ba) : ButtonControl 
     1943        STRUCT WMButtonAction &ba 
     1944 
     1945        Variable ii 
     1946        String detStr 
     1947         
     1948        switch( ba.eventCode ) 
     1949                case 2: // mouse up 
     1950                        // click code here 
     1951                         
     1952//                      ControlInfo popup_0 
     1953//                      String detStr = S_Value 
     1954                        ControlInfo setvar0 
     1955                        Variable lo=V_Value 
     1956                        ControlInfo setvar1 
     1957                        Variable hi=V_Value 
     1958                        WAVE calibrationWave = root:Packages:NIST:VSANS:Globals:Patch:calibrationWave 
     1959                         
     1960                        for(ii=0;ii<ItemsInList(ksDetectorListNoB);ii+=1) 
     1961                                detStr = StringFromList(ii, ksDetectorListNoB, ";") 
     1962                                Wave tmp_a = $("root:a_"+detStr) 
     1963                                Wave tmp_b = $("root:b_"+detStr) 
     1964                                Wave tmp_c = $("root:c_"+detStr) 
     1965                                calibrationWave[0][] = tmp_a[q] 
     1966                                calibrationWave[1][] = tmp_b[q] 
     1967                                calibrationWave[2][] = tmp_c[q] 
     1968                                V_fPatchDetectorCalibration(lo,hi,detStr,calibrationWave) 
     1969                        endfor 
     1970                         
     1971                        break 
     1972                case -1: // control being killed 
     1973                        break 
     1974        endswitch 
     1975 
     1976        // TODO 
     1977        // -- clear out the data folders (from lo to hi?) 
     1978// 
     1979// root:Packages:NIST:VSANS:RawVSANS:sans1301: 
     1980        for(ii=lo;ii<=hi;ii+=1) 
     1981                KillDataFolder/Z $("root:Packages:NIST:VSANS:RawVSANS:sans"+num2str(ii)) 
     1982        endfor 
     1983        return 0 
     1984End 
    18421985 
    18431986 
Note: See TracChangeset for help on using the changeset viewer.