- Timestamp:
- Jul 25, 2016 2:50:41 PM (7 years ago)
- Location:
- sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_BeamCenter.ipf
r995 r1005 683 683 Function V_BeamCtr_WriteTable() 684 684 685 DoAlert 0,"this currently only writes pix values locally, not mm, and not to files on disk" 686 685 687 String folder 686 688 -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_HDF5_Read.ipf
r1000 r1005 256 256 return(V_getStringFromHDF5(fname,path,num)) 257 257 End 258 259 //// file write time (what is this??260 //// TODO - figure out if this is supposed to be an integer or text (ISO)261 //Function V_getFileWriteTime(fname)262 // String fname263 //264 // String path = "entry:file_time"265 // return(V_getRealValueFromHDF5(fname,path))266 //End267 258 268 259 // TODO - should be the file name as saved on disk, currently it's not … … 335 326 // TODO -- for the control section, document each of the fields 336 327 337 Function V_getCount_end(fname) 338 String fname 339 328 Function/S V_getCount_end(fname) 329 String fname 330 331 Variable num 340 332 String path = "entry:control:count_end" 341 return(V_getRealValueFromHDF5(fname,path)) 342 end 343 344 345 Function V_getCount_start(fname) 346 String fname 347 333 return(V_getStringFromHDF5(fname,path,num)) 334 end 335 336 337 Function/S V_getCount_start(fname) 338 String fname 339 340 Variable num 348 341 String path = "entry:control:count_start" 349 return(V_get RealValueFromHDF5(fname,path))342 return(V_getStringFromHDF5(fname,path,num)) 350 343 end 351 344 … … 416 409 417 410 // TODO - what are the enumerated types for this? 418 Function V_getPreset(fname) 419 String fname 420 411 Function/S V_getPreset(fname) 412 String fname 413 414 Variable num 421 415 String path = "entry:control:preset" 422 return(V_get RealValueFromHDF5(fname,path))416 return(V_getStringFromHDF5(fname,path,num)) 423 417 end 424 418 … … 496 490 497 491 498 //// attenuator index, to use in the lookup table of transmission values499 //Function V_getAttenIndex(fname)500 // String fname501 //502 // String path = "entry:instrument:attenuator:index"503 // return(V_getRealValueFromHDF5(fname,path))504 //end505 492 506 493 // table of the attenuation factor error … … 534 521 //End 535 522 536 // this is equivalent to "status" - if anything is dropped in the beam537 Function V_getAtten_number(fname)538 String fname539 540 String path = "entry:instrument:attenuator:num_atten_dropped"541 return(V_getRealValueFromHDF5(fname,path))542 end523 //// this is equivalent to "status" - if anything is dropped in the beam 524 //Function V_getAtten_number(fname) 525 // String fname 526 // 527 // String path = "entry:instrument:attenuator:num_atten_dropped" 528 // return(V_getRealValueFromHDF5(fname,path)) 529 //end 543 530 544 531 // thickness of the attenuator (PMMA) - units?? … … 562 549 563 550 ////// INSTRUMENT/BEAM 551 // instrument/beam/analyzer (data folder) 552 // this is the He3 analyzer, after the sample (but first alphabetically) 553 // TODO -- document what all of the fields represent, and what are the most important to "key" on to read 554 // 555 Function V_getAnalyzer_depth(fname) 556 String fname 557 558 String path = "entry:instrument:beam:analyzer:depth" 559 return(V_getRealValueFromHDF5(fname,path)) 560 end 561 562 Function/S V_getAnalyzer_direction(fname) 563 String fname 564 565 String path = "entry:instrument:beam:analyzer:direction" 566 Variable num=60 567 return(V_getStringFromHDF5(fname,path,num)) 568 End 569 570 Function V_getAnalyzer_height(fname) 571 String fname 572 573 String path = "entry:instrument:beam:analyzer:height" 574 return(V_getRealValueFromHDF5(fname,path)) 575 end 576 577 // ?? TODO is this equivalent to "status" -- ?? 0|1 578 Function V_getAnalyzer_inBeam(fname) 579 String fname 580 581 String path = "entry:instrument:beam:analyzer:inBeam" 582 return(V_getRealValueFromHDF5(fname,path)) 583 end 584 585 Function V_getAnalyzer_innerDiameter(fname) 586 String fname 587 588 String path = "entry:instrument:beam:analyzer:innerDiameter" 589 return(V_getRealValueFromHDF5(fname,path)) 590 end 591 592 // one of the most important 593 Function/S V_getAnalyzer_name(fname) 594 String fname 595 596 String path = "entry:instrument:beam:analyzer:name" 597 Variable num=60 598 return(V_getStringFromHDF5(fname,path,num)) 599 End 600 601 Function V_getAnalyzer_opacityAt1Ang(fname) 602 String fname 603 604 String path = "entry:instrument:beam:analyzer:opacityAt1Ang" 605 return(V_getRealValueFromHDF5(fname,path)) 606 end 607 608 Function V_getAnalyzer_opacityAt1Ang_err(fname) 609 String fname 610 611 String path = "entry:instrument:beam:analyzer:opacityAt1AngStd" 612 return(V_getRealValueFromHDF5(fname,path)) 613 end 614 615 Function V_getAnalyzer_outerDiameter(fname) 616 String fname 617 618 String path = "entry:instrument:beam:analyzer:outerDiameter" 619 return(V_getRealValueFromHDF5(fname,path)) 620 end 621 622 Function/S V_getAnalyzer_shape(fname) 623 String fname 624 625 String path = "entry:instrument:beam:analyzer:shape" 626 Variable num=60 627 return(V_getStringFromHDF5(fname,path,num)) 628 End 629 630 Function V_getAnalyzer_tE(fname) 631 String fname 632 633 String path = "entry:instrument:beam:analyzer:tE" 634 return(V_getRealValueFromHDF5(fname,path)) 635 end 636 637 Function V_getAnalyzer_tE_err(fname) 638 String fname 639 640 String path = "entry:instrument:beam:analyzer:tEStd" 641 return(V_getRealValueFromHDF5(fname,path)) 642 end 643 644 Function/S V_getAnalyzer_type(fname) 645 String fname 646 647 String path = "entry:instrument:beam:analyzer:type" 648 Variable num=60 649 return(V_getStringFromHDF5(fname,path,num)) 650 End 651 652 653 Function V_getAnalyzer_width(fname) 654 String fname 655 656 String path = "entry:instrument:beam:analyzer:width" 657 return(V_getRealValueFromHDF5(fname,path)) 658 end 659 660 564 661 // instrument/beam/chopper (data folder) 565 662 Function V_getChopperAngular_opening(fname) … … 622 719 623 720 624 // instrument/beam/flipper (data folder) 625 Function V_getFlipperDriving_current(fname) 626 String fname 627 628 String path = "entry:instrument:beam:flipper:driving_current" 629 return(V_getRealValueFromHDF5(fname,path)) 630 end 631 632 Function V_getFlipperFrequency(fname) 633 String fname 634 635 String path = "entry:instrument:beam:flipper:frequency" 636 return(V_getRealValueFromHDF5(fname,path)) 637 end 638 639 Function/S V_getFlipperstatus(fname) 640 String fname 641 642 String path = "entry:instrument:beam:flipper:status" 643 Variable num=60 644 return(V_getStringFromHDF5(fname,path,num)) 645 End 646 647 Function V_getFlipperTransmitted_power(fname) 648 String fname 649 650 String path = "entry:instrument:beam:flipper:transmitted_power" 651 return(V_getRealValueFromHDF5(fname,path)) 652 end 653 654 Function/S V_getFlipperWaveform(fname) 655 String fname 656 657 String path = "entry:instrument:beam:flipper:waveform" 658 Variable num=60 659 return(V_getStringFromHDF5(fname,path,num)) 660 End 721 // instrument/beam/flipperPolarizer (data folder) 722 // this is upstream, after the supermirror but before the sample 723 724 Function/S V_getflipperPolarizer_Direction(fname) 725 String fname 726 727 String path = "entry:instrument:beam:flipperPolarizer:direction" 728 Variable num=60 729 return(V_getStringFromHDF5(fname,path,num)) 730 End 731 732 Function V_getflipperPolarizer_inBeam(fname) 733 String fname 734 735 String path = "entry:instrument:beam:flipperPolarizer:inBeam" 736 return(V_getRealValueFromHDF5(fname,path)) 737 end 738 739 Function/S V_getflipperPolarizer_Type(fname) 740 String fname 741 742 String path = "entry:instrument:beam:flipperPolarizer:type" 743 Variable num=60 744 return(V_getStringFromHDF5(fname,path,num)) 745 End 746 747 748 749 //Function V_getFlipperDriving_current(fname) 750 // String fname 751 // 752 // String path = "entry:instrument:beam:flipper:driving_current" 753 // return(V_getRealValueFromHDF5(fname,path)) 754 //end 755 // 756 //Function V_getFlipperFrequency(fname) 757 // String fname 758 // 759 // String path = "entry:instrument:beam:flipper:frequency" 760 // return(V_getRealValueFromHDF5(fname,path)) 761 //end 762 // 763 //Function/S V_getFlipperstatus(fname) 764 // String fname 765 // 766 // String path = "entry:instrument:beam:flipper:status" 767 // Variable num=60 768 // return(V_getStringFromHDF5(fname,path,num)) 769 //End 770 // 771 //Function V_getFlipperTransmitted_power(fname) 772 // String fname 773 // 774 // String path = "entry:instrument:beam:flipper:transmitted_power" 775 // return(V_getRealValueFromHDF5(fname,path)) 776 //end 777 // 778 //Function/S V_getFlipperWaveform(fname) 779 // String fname 780 // 781 // String path = "entry:instrument:beam:flipper:waveform" 782 // Variable num=60 783 // return(V_getStringFromHDF5(fname,path,num)) 784 //End 785 786 661 787 662 788 // instrument/beam/monochromator (data folder) … … 684 810 685 811 // instrument/beam/monochromator/crystal (data folder) 812 Function V_getCrystalDistance(fname) 813 String fname 814 815 String path = "entry:instrument:beam:monochromator:crystal:distance" 816 return(V_getRealValueFromHDF5(fname,path)) 817 end 818 686 819 Function V_getCrystalEnergy(fname) 687 820 String fname … … 709 842 710 843 String path = "entry:instrument:beam:monochromator:crystal:lattice_parameter" 711 return(V_getRealValueFromHDF5(fname,path))712 end713 714 Function V_getCrystalDistance(fname)715 String fname716 717 String path = "entry:instrument:beam:monochromator:crystal:distance"718 844 return(V_getRealValueFromHDF5(fname,path)) 719 845 end … … 807 933 return w 808 934 end 809 810 //Function V_getVSTable(fname)811 // String fname812 //813 // String path = "entry:instrument:beam:monochromator:velocity_selector:table"814 // return(V_getRealValueFromHDF5(fname,path))815 //end816 935 817 936 //// DONE - this does not exist for VSANS - per JGB 4/2016 … … 860 979 end 861 980 862 // instrument/beam/polarizer (data folder) 981 // instrument/beam/superMirror (data folder) 982 // This is the upstream polarizer. There are no other choices for polarizer on VSANS 863 983 Function/S V_getPolarizerComposition(fname) 864 984 String fname 865 985 866 String path = "entry:instrument:beam: polarizer:composition"986 String path = "entry:instrument:beam:superMirror:composition" 867 987 Variable num=60 868 988 return(V_getStringFromHDF5(fname,path,num)) … … 872 992 String fname 873 993 874 String path = "entry:instrument:beam: polarizer:efficiency"875 return(V_getRealValueFromHDF5(fname,path)) 876 end 877 878 Function/S V_getPolarizerStat us(fname)879 String fname 880 881 String path = "entry:instrument:beam: polarizer:status"882 Variable num=60 883 return(V_getStringFromHDF5(fname,path,num)) 884 End 885 886 Function/S V_getPolarizerType(fname)887 String fname888 889 String path = "entry:instrument:beam:polarizer:type"890 Variable num=60891 return(V_getStringFromHDF5(fname,path,num))892 End893 894 // instrument/beam/polarizer_analyzer (data folder)895 Function V_getPolAnaCell_index(fname)896 String fname897 898 String path = "entry:instrument:beam:polarizer_analyzer:cell_index"899 return(V_getRealValueFromHDF5(fname,path))900 End901 902 Function/S V_getPolAnaCell_name(fname)903 String fname904 905 String path = "entry:instrument:beam:polarizer_analyzer:cell_name"906 Variable num=60907 return(V_getStringFromHDF5(fname,path,num))908 End909 910 Function/WAVE V_getPolAnaCell_parameters(fname)911 String fname912 913 String path = "entry:instrument:beam:polarizer_analyzer:cell_parameters"914 WAVE w = V_getRealWaveFromHDF5(fname,path)915 916 return w917 End918 919 Function V_getPolAnaGuideFieldCur_1(fname)920 String fname921 922 String path = "entry:instrument:beam:polarizer_analyzer:guide_field_current_1"923 return(V_getRealValueFromHDF5(fname,path))924 End925 926 Function V_getPolAnaGuideFieldCur_2(fname)927 String fname928 929 String path = "entry:instrument:beam:polarizer_analyzer:guide_field_current_2"930 return(V_getRealValueFromHDF5(fname,path))931 End932 933 Function V_getPolAnaSolenoid_current(fname)934 String fname935 936 String path = "entry:instrument:beam:polarizer_analyzer:solenoid_current"937 return(V_getRealValueFromHDF5(fname,path))938 End939 940 Function/S V_getPolAnaStatus(fname)941 String fname942 943 String path = "entry:instrument:beam:polarizer_analyzer:status"944 Variable num=60945 return(V_getStringFromHDF5(fname,path,num))946 End994 String path = "entry:instrument:beam:superMirror:efficiency" 995 return(V_getRealValueFromHDF5(fname,path)) 996 end 997 998 Function/S V_getPolarizerState(fname) 999 String fname 1000 1001 String path = "entry:instrument:beam:superMirror:state" 1002 Variable num=60 1003 return(V_getStringFromHDF5(fname,path,num)) 1004 End 1005 1006 //Function/S V_getPolarizerType(fname) 1007 // String fname 1008 // 1009 // String path = "entry:instrument:beam:polarizer:type" 1010 // Variable num=60 1011 // return(V_getStringFromHDF5(fname,path,num)) 1012 //End 1013 1014 //// instrument/beam/polarizer_analyzer (data folder) 1015 //Function V_getPolAnaCell_index(fname) 1016 // String fname 1017 // 1018 // String path = "entry:instrument:beam:polarizer_analyzer:cell_index" 1019 // return(V_getRealValueFromHDF5(fname,path)) 1020 //End 1021 // 1022 //Function/S V_getPolAnaCell_name(fname) 1023 // String fname 1024 // 1025 // String path = "entry:instrument:beam:polarizer_analyzer:cell_name" 1026 // Variable num=60 1027 // return(V_getStringFromHDF5(fname,path,num)) 1028 //End 1029 // 1030 //Function/WAVE V_getPolAnaCell_parameters(fname) 1031 // String fname 1032 // 1033 // String path = "entry:instrument:beam:polarizer_analyzer:cell_parameters" 1034 // WAVE w = V_getRealWaveFromHDF5(fname,path) 1035 // 1036 // return w 1037 //End 1038 // 1039 //Function V_getPolAnaGuideFieldCur_1(fname) 1040 // String fname 1041 // 1042 // String path = "entry:instrument:beam:polarizer_analyzer:guide_field_current_1" 1043 // return(V_getRealValueFromHDF5(fname,path)) 1044 //End 1045 // 1046 //Function V_getPolAnaGuideFieldCur_2(fname) 1047 // String fname 1048 // 1049 // String path = "entry:instrument:beam:polarizer_analyzer:guide_field_current_2" 1050 // return(V_getRealValueFromHDF5(fname,path)) 1051 //End 1052 // 1053 //Function V_getPolAnaSolenoid_current(fname) 1054 // String fname 1055 // 1056 // String path = "entry:instrument:beam:polarizer_analyzer:solenoid_current" 1057 // return(V_getRealValueFromHDF5(fname,path)) 1058 //End 1059 // 1060 //Function/S V_getPolAnaStatus(fname) 1061 // String fname 1062 // 1063 // String path = "entry:instrument:beam:polarizer_analyzer:status" 1064 // Variable num=60 1065 // return(V_getStringFromHDF5(fname,path,num)) 1066 //End 947 1067 948 1068 … … 957 1077 End 958 1078 1079 Function V_getBeamMonLowDistance(fname) 1080 String fname 1081 1082 String path = "entry:instrument:beam_monitor_low:distance" 1083 return(V_getRealValueFromHDF5(fname,path)) 1084 End 1085 959 1086 Function V_getBeamMonLowEfficiency(fname) 960 1087 String fname 961 1088 962 1089 String path = "entry:instrument:beam_monitor_low:efficiency" 963 return(V_getRealValueFromHDF5(fname,path))964 End965 966 Function V_getBeamMonLowDistance(fname)967 String fname968 969 String path = "entry:instrument:beam_monitor_low:distance"970 1090 return(V_getRealValueFromHDF5(fname,path)) 971 1091 End … … 994 1114 End 995 1115 1116 Function V_getBeamMonNormDistance(fname) 1117 String fname 1118 1119 String path = "entry:instrument:beam_monitor_norm:distance" 1120 return(V_getRealValueFromHDF5(fname,path)) 1121 End 1122 996 1123 Function V_getBeamMonNormEfficiency(fname) 997 1124 String fname 998 1125 999 1126 String path = "entry:instrument:beam_monitor_norm:efficiency" 1000 return(V_getRealValueFromHDF5(fname,path))1001 End1002 1003 Function V_getBeamMonNormDistance(fname)1004 String fname1005 1006 String path = "entry:instrument:beam_monitor_norm:distance"1007 1127 return(V_getRealValueFromHDF5(fname,path)) 1008 1128 End … … 1069 1189 End 1070 1190 1071 Function V_getBeamStopC2_width(fname) 1072 String fname 1073 1074 String path = "entry:instrument:beam_stop_C2:shape:width" 1075 return(V_getRealValueFromHDF5(fname,path)) 1191 Function/S V_getBeamStopC2_shape(fname) 1192 String fname 1193 1194 Variable num=60 1195 String path = "entry:instrument:beam_stop_C2:shape:shape" 1196 return(V_getStringFromHDF5(fname,path,num)) 1076 1197 End 1077 1198 … … 1084 1205 End 1085 1206 1086 Function /S V_getBeamStopC2_shape(fname)1087 String fname 1088 1089 Variable num=601090 String path = "entry:instrument:beam_stop_C2:shape:shape"1091 return(V_getStringFromHDF5(fname,path,num)) 1092 End 1207 Function V_getBeamStopC2_width(fname) 1208 String fname 1209 1210 String path = "entry:instrument:beam_stop_C2:shape:width" 1211 return(V_getRealValueFromHDF5(fname,path)) 1212 End 1213 1093 1214 1094 1215 … … 1139 1260 End 1140 1261 1141 Function V_getBeamStopC3_width(fname) 1142 String fname 1143 1144 String path = "entry:instrument:beam_stop_C3:shape:width" 1145 return(V_getRealValueFromHDF5(fname,path)) 1262 Function/S V_getBeamStopC3_shape(fname) 1263 String fname 1264 1265 Variable num=60 1266 String path = "entry:instrument:beam_stop_C3:shape:shape" 1267 return(V_getStringFromHDF5(fname,path,num)) 1146 1268 End 1147 1269 … … 1154 1276 End 1155 1277 1156 Function/S V_getBeamStopC3_shape(fname) 1157 String fname 1158 1159 Variable num=60 1160 String path = "entry:instrument:beam_stop_C3:shape:shape" 1161 return(V_getStringFromHDF5(fname,path,num)) 1278 Function V_getBeamStopC3_width(fname) 1279 String fname 1280 1281 String path = "entry:instrument:beam_stop_C3:shape:width" 1282 return(V_getRealValueFromHDF5(fname,path)) 1162 1283 End 1163 1284 … … 1194 1315 End 1195 1316 1317 1196 1318 // converging_pinholes (data folder) 1197 1319 Function/S V_getConvPinholeStatus(fname) … … 1209 1331 // 1210 1332 // only defined for the "B" detector, and may not be necessary? 1211 // TODO-- write to return an ARRAY1333 // DONE -- write to return an ARRAY 1212 1334 Function/WAVE V_getDet_cal_x(fname,detStr) 1213 1335 String fname,detStr … … 1485 1607 1486 1608 1487 1488 //// only defined for the "B" detector, and only to satisfy NXsas1489 //Function V_getDet_polar_angle(fname,detStr)1490 // String fname,detStr1491 //1492 // if(cmpstr(detStr,"B") == 0)1493 // String path = "entry:instrument:detector_"+detStr+":polar_angle"1494 // return(V_getRealValueFromHDF5(fname,path))1495 // else1496 // return(0)1497 // endif1498 //End1499 1500 //// only defined for the "B" detector, and only to satisfy NXsas1501 //Function V_getDet_rotational_angle(fname,detStr)1502 // String fname,detStr1503 //1504 // if(cmpstr(detStr,"B") == 0)1505 // String path = "entry:instrument:detector_"+detStr+":rotational_angle"1506 // return(V_getRealValueFromHDF5(fname,path))1507 // else1508 // return(0)1509 // endif1510 //End1511 1512 1609 Function/S V_getDetSettings(fname,detStr) 1513 1610 String fname,detStr … … 1518 1615 End 1519 1616 1520 //// really has no meaning at all1521 //Function V_getDet_size(fname,detStr)1522 // String fname,detStr1523 //1524 // String path = "entry:instrument:detector_"+detStr+":size"1525 // return(V_getRealValueFromHDF5(fname,path))1526 //End1527 1528 //Function/S V_getDetType(fname,detStr)1529 // String fname,detStr1530 //1531 // String path = "entry:instrument:detector_"+detStr+":type"1532 // Variable num=601533 // return(V_getStringFromHDF5(fname,path,num))1534 //End1535 1617 1536 1618 Function V_getDet_x_pixel_size(fname,detStr) … … 1561 1643 End 1562 1644 1563 // this has been deleted from the definition 1564 //Function V_getDetPanelSeparation(fname,detStr) 1565 // String fname,detStr 1566 // 1567 // String path = "entry:instrument:detector_"+detStr+":separation" 1568 // if(cmpstr(detStr,"B") == 0) 1569 // return(0) 1570 // else 1571 // return(V_getRealValueFromHDF5(fname,path)) 1572 // endif 1573 //End 1574 1575 // TODO -- write this function to return a WAVE with the data 1645 1646 // DONE -- write this function to return a WAVE with the data 1576 1647 // either as a wave reference, or as an input parameter 1577 1648 Function/WAVE V_getDetTube_spatialCalib(fname,detStr) … … 1587 1658 End 1588 1659 1589 //// TODO -- be clear on how this is defined.1590 //Function V_getDet_tubeIndex(fname,detStr)1591 // String fname,detStr1592 //1593 // String path = "entry:instrument:detector_"+detStr+":tube_index"1594 // if(cmpstr(detStr,"B") == 0)1595 // return(0)1596 // else1597 // return(V_getRealValueFromHDF5(fname,path))1598 // endif1599 //End1600 1660 1601 1661 Function/S V_getDet_tubeOrientation(fname,detStr) … … 1625 1685 ////////////////////// 1626 1686 1627 // INSTRUMENT/LENSES /APERTURES1687 // INSTRUMENT/LENSES 1628 1688 // lenses (data folder) 1629 1689 … … 1726 1786 1727 1787 // shape (data folder) 1788 Function V_getSampleAp_height(fname) 1789 String fname 1790 1791 String path = "entry:instrument:sample_aperture:shape:height" 1792 return(V_getRealValueFromHDF5(fname,path)) 1793 End 1794 1728 1795 Function/S V_getSampleAp_shape(fname) 1729 1796 String fname … … 1743 1810 End 1744 1811 1745 Function V_getSampleAp_height(fname)1746 String fname1747 1748 String path = "entry:instrument:sample_aperture:shape:height"1749 return(V_getRealValueFromHDF5(fname,path))1750 End1751 1752 1812 Function V_getSampleAp_width(fname) 1753 1813 String fname … … 1760 1820 1761 1821 /////// sample_aperture_2 (data folder) 1762 // sample aperture (2) is the external paerture, which may or may not be present1822 // sample aperture (2) is the external aperture, which may or may not be present 1763 1823 1764 1824 Function/S V_getSampleAp2_Description(fname) … … 1778 1838 1779 1839 // shape (data folder) 1840 Function V_getSampleAp2_height(fname) 1841 String fname 1842 1843 String path = "entry:instrument:sample_aperture_2:shape:height" 1844 return(V_getRealValueFromHDF5(fname,path)) 1845 End 1846 1780 1847 Function/S V_getSampleAp2_shape(fname) 1781 1848 String fname … … 1791 1858 1792 1859 String path = "entry:instrument:sample_aperture_2:shape:size" 1793 return(V_getRealValueFromHDF5(fname,path))1794 End1795 1796 Function V_getSampleAp2_height(fname)1797 String fname1798 1799 String path = "entry:instrument:sample_aperture_2:shape:height"1800 1860 return(V_getRealValueFromHDF5(fname,path)) 1801 1861 End … … 1883 1943 1884 1944 // shape (data folder) 1945 Function V_getSourceAp_height(fname) 1946 String fname 1947 1948 String path = "entry:instrument:source_aperture:shape:height" 1949 return(V_getRealValueFromHDF5(fname,path)) 1950 End 1951 1885 1952 Function/S V_getSourceAp_shape(fname) 1886 1953 String fname … … 1898 1965 Variable num=60 1899 1966 return(V_getStringFromHDF5(fname,path,num)) 1900 End1901 1902 Function V_getSourceAp_height(fname)1903 String fname1904 1905 String path = "entry:instrument:source_aperture:shape:height"1906 return(V_getRealValueFromHDF5(fname,path))1907 1967 End 1908 1968 … … 2021 2081 // temperature_1 2022 2082 // temperature_2 2083 // temperature_3 2084 // temperature_4 2023 2085 // shear_field 2024 2086 // pressure … … 2054 2116 End 2055 2117 2056 2057 // TODO -- 2118 // TODO -- this may not exist if it is not a "controlling" sensor, but there still may be logged data present 2119 // TODO -- it may also have different names for each sensor (setpoint_1, setpoint_2, etc. which will be a big hassle) 2120 Function V_getLog_setPoint(fname,logStr) 2121 String fname,logStr 2122 2123 String path = "entry:sample:"+logstr+":setpoint_1" 2124 return(V_getRealValueFromHDF5(fname,path)) 2125 end 2126 2127 Function/S V_getLog_startTime(fname,logStr) 2128 String fname,logStr 2129 2130 String path = "entry:sample:"+logstr+":start" 2131 Variable num=60 2132 return(V_getStringFromHDF5(fname,path,num)) 2133 End 2134 2135 2136 // TODO -- this may only exist for electric field and magnetic field... 2137 // or may be elimnated altogether 2058 2138 Function V_getLog_nomValue(fname,logStr) 2059 2139 String fname,logStr … … 2064 2144 2065 2145 //// value_log (data folder) 2066 Function/S V_getLog_startTime(fname,logStr) 2146 2147 Function V_getLog_avgValue(fname,logStr) 2067 2148 String fname,logStr 2068 2069 String path = "entry:sample:"+logstr+":value_log:start" 2070 Variable num=60 2071 return(V_getStringFromHDF5(fname,path,num)) 2072 End 2073 2074 // TODO -- thes currently do not exist... 2075 // 2076 //// TODO -- 2077 //Function V_getLog_avgValue(fname,logStr) 2078 // String fname,logStr 2079 // 2080 // String path = "entry:sample:"+logstr+":value_log:average_value" 2081 // return(V_getRealValueFromHDF5(fname,path)) 2082 //end 2083 // 2084 //// TODO -- this needs to be a WAVE reference 2085 //// TODO -- verify that the field is really read in as "time0" 2086 //Function V_getLog_time(fname,logStr,outW) 2087 // String fname,logStr 2088 // Wave outW 2089 // 2090 // String path = "entry:sample:"+logstr+":value_log:time0" 2091 // WAVE w = V_getRealWaveFromHDF5(fname,path) 2092 // 2093 // outW = w 2094 // return(0) 2095 //end 2096 // 2097 // 2098 //// TODO -- this needs to be a WAVE reference 2099 //Function V_getLog_Value(fname,logStr,outW) 2100 // String fname,logStr 2101 // Wave outW 2102 // 2103 // String path = "entry:sample:"+logstr+":value_log:value" 2104 // WAVE w = V_getRealWaveFromHDF5(fname,path) 2105 // 2106 // outW = w 2107 // return(0) 2108 //end 2149 2150 String path = "entry:sample:"+logstr+":value_log:average_value" 2151 return(V_getRealValueFromHDF5(fname,path)) 2152 end 2153 2154 Function V_getLog_avgValue_err(fname,logStr) 2155 String fname,logStr 2156 2157 String path = "entry:sample:"+logstr+":value_log:average_value_error" 2158 return(V_getRealValueFromHDF5(fname,path)) 2159 end 2160 2161 Function V_getLog_maximumValue(fname,logStr) 2162 String fname,logStr 2163 2164 String path = "entry:sample:"+logstr+":value_log:maximum_value" 2165 return(V_getRealValueFromHDF5(fname,path)) 2166 end 2167 2168 Function V_getLog_medianValue(fname,logStr) 2169 String fname,logStr 2170 2171 String path = "entry:sample:"+logstr+":value_log:median_value" 2172 return(V_getRealValueFromHDF5(fname,path)) 2173 end 2174 2175 Function V_getLog_minimumValue(fname,logStr) 2176 String fname,logStr 2177 2178 String path = "entry:sample:"+logstr+":value_log:minimum_value" 2179 return(V_getRealValueFromHDF5(fname,path)) 2180 end 2181 2182 // DONE -- this needs to be a WAVE reference 2183 // DONE -- verify that the field is really read in as "time0" 2184 Function V_getLog_time(fname,logStr,outW) 2185 String fname,logStr 2186 Wave outW 2187 2188 String path = "entry:sample:"+logstr+":value_log:time0" 2189 WAVE w = V_getRealWaveFromHDF5(fname,path) 2190 2191 outW = w 2192 return(0) 2193 end 2194 2195 // DONE -- this needs to be a WAVE reference 2196 Function V_getLog_Value(fname,logStr,outW) 2197 String fname,logStr 2198 Wave outW 2199 2200 String path = "entry:sample:"+logstr+":value_log:value" 2201 WAVE w = V_getRealWaveFromHDF5(fname,path) 2202 2203 outW = w 2204 return(0) 2205 end 2109 2206 2110 2207 … … 2119 2216 2120 2217 2121 // TODO -- needs to be a WAVE2122 2218 Function/WAVE V_getAbsolute_Scaling(fname) 2123 2219 String fname … … 2129 2225 end 2130 2226 2131 // TODO -- needs to be a WAVE 2227 Function/S V_getBackgroundFileName(fname) 2228 String fname 2229 2230 String path = "entry:reduction:background_file_name" 2231 Variable num=60 2232 return(V_getStringFromHDF5(fname,path,num)) 2233 End 2234 2132 2235 Function/WAVE V_getBoxCoordinates(fname) 2133 2236 String fname … … 2164 2267 2165 2268 2166 Function/S V_getReductionIntent(fname) 2269 Function/S V_getEmptyBeamFileName(fname) 2270 String fname 2271 2272 String path = "entry:reduction:empty_beam_file_name" 2273 Variable num=60 2274 return(V_getStringFromHDF5(fname,path,num)) 2275 End 2276 2277 Function/S V_getEmptyFileName(fname) 2278 String fname 2279 2280 String path = "entry:reduction:empty_file_name" 2281 Variable num=60 2282 return(V_getStringFromHDF5(fname,path,num)) 2283 End 2284 2285 // this is (presumably) the polarization "intent" 2286 Function/S V_getReduction_polSANSPurpose(fname) 2287 String fname 2288 2289 String path = "entry:reduction:file_purpose" 2290 Variable num=60 2291 return(V_getStringFromHDF5(fname,path,num)) 2292 End 2293 2294 //group ID 2295 // TODO -- is this duplicated? 2296 Function V_getSample_group_ID(fname) 2297 String fname 2298 2299 String path = "entry:reduction:group_id" 2300 return(V_getRealValueFromHDF5(fname,path)) 2301 end 2302 2303 Function/S V_getReduction_intent(fname) 2167 2304 String fname 2168 2305 … … 2172 2309 End 2173 2310 2311 Function/S V_getMaskFileName(fname) 2312 String fname 2313 2314 String path = "entry:reduction:mask_file_name" 2315 Variable num=60 2316 return(V_getStringFromHDF5(fname,path,num)) 2317 End 2174 2318 2175 2319 Function/S V_getLogFileName(fname) … … 2181 2325 End 2182 2326 2183 2184 2327 Function/S V_getSensitivityFileName(fname) 2185 2328 String fname … … 2197 2340 return(V_getStringFromHDF5(fname,path,num)) 2198 2341 End 2199 2200 Function/S V_getEmptyBeamFileName(fname)2201 String fname2202 2203 String path = "entry:reduction:empty_beam_file_name"2204 Variable num=602205 return(V_getStringFromHDF5(fname,path,num))2206 End2207 2208 Function/S V_getEmptyFileName(fname)2209 String fname2210 2211 String path = "entry:reduction:empty_file_name"2212 Variable num=602213 return(V_getStringFromHDF5(fname,path,num))2214 End2215 2216 Function/S V_getMaskFileName(fname)2217 String fname2218 2219 String path = "entry:reduction:mask_file_name"2220 Variable num=602221 return(V_getStringFromHDF5(fname,path,num))2222 End2223 2224 2342 2225 2343 //whole detector trasmission … … 2239 2357 end 2240 2358 2241 2242 ///// pol_sans (data folder) 2243 2244 Function/S V_getPolSANS_cellName(fname) 2245 String fname 2246 2247 String path = "entry:reduction:pol_sans:cell_name" 2248 Variable num=60 2249 return(V_getStringFromHDF5(fname,path,num)) 2250 End 2251 2252 2253 Function/WAVE V_getPolSANS_cellParams(fname) 2254 String fname 2255 2256 String path = "entry:reduction:pol_sans:cell_parameters" 2257 WAVE w = V_getRealWaveFromHDF5(fname,path) 2258 2259 return w 2260 end 2261 2262 Function/S V_getPolSANS_PolSANSPurpose(fname) 2263 String fname 2264 2265 String path = "entry:reduction:pol_sans:pol_sans_purpose" 2266 Variable num=60 2267 return(V_getStringFromHDF5(fname,path,num)) 2268 End 2359 2360 2361 2362 2363 // these have all been moved elsewhere 2364 /////// pol_sans (data folder) 2365 // 2366 //Function/S V_getPolSANS_cellName(fname) 2367 // String fname 2368 // 2369 // String path = "entry:reduction:pol_sans:cell_name" 2370 // Variable num=60 2371 // return(V_getStringFromHDF5(fname,path,num)) 2372 //End 2373 // 2374 // 2375 //Function/WAVE V_getPolSANS_cellParams(fname) 2376 // String fname 2377 // 2378 // String path = "entry:reduction:pol_sans:cell_parameters" 2379 // WAVE w = V_getRealWaveFromHDF5(fname,path) 2380 // 2381 // return w 2382 //end 2383 // 2384 //Function/S V_getPolSANS_PolSANSPurpose(fname) 2385 // String fname 2386 // 2387 // String path = "entry:reduction:pol_sans:pol_sans_purpose" 2388 // Variable num=60 2389 // return(V_getStringFromHDF5(fname,path,num)) 2390 //End 2269 2391 2270 2392 -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_HDF5_Write.ipf
r1000 r1005 569 569 570 570 // list of user names 571 // TODO-- currently not written out to data file??571 // DONE -- currently not written out to data file?? 572 572 Function V_writeUserNames(fname,str) 573 573 String fname,str … … 602 602 // TODO -- for the control section, document each of the fields 603 603 // 604 Function V_writeCount_end(fname,val) 605 String fname 606 Variable val 604 Function V_writeCount_end(fname,str) 605 String fname,str 607 606 608 607 // String path = "entry:control:count_end" 609 610 Make/O/D/N=1 wTmpWrite 611 // Make/O/R/N=1 wTmpWrite 612 String groupName = "/entry/control" 608 609 Make/O/T/N=1 tmpTW 610 String groupName = "/entry/control" // 613 611 String varName = "count_end" 614 wTmpWrite[0] = val615 616 variable err 617 err = V_Write WaveToHDF(fname, groupName, varName, wTmpWrite)618 if(err) 619 Print "HDF write err = ",err 620 endif 621 // now be sure to kill the data folder to force a re-read of the data next time this file is read in622 // err = V_KillNamedDataFolder(fname) 623 // if(err)624 // Print "DataFolder kill err = ",err625 // endif626 return(err) 627 end 628 629 630 Function V_writeCount_start(fname,val) 631 String fname 632 Variable val612 tmpTW[0] = str // 613 614 variable err 615 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 616 if(err) 617 Print "HDF write err = ",err 618 endif 619 620 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 621 // err = V_KillNamedDataFolder(fname) 622 // if(err) 623 // Print "DataFolder kill err = ",err 624 // endif 625 626 return(err) 627 end 628 629 Function V_writeCount_start(fname,str) 630 String fname,str 633 631 634 632 // String path = "entry:control:count_start" 635 636 Make/O/D/N=1 wTmpWrite 637 // Make/O/R/N=1 wTmpWrite 638 String groupName = "/entry/control" 633 634 Make/O/T/N=1 tmpTW 635 String groupName = "/entry/control" // 639 636 String varName = "count_start" 640 wTmpWrite[0] = val 641 642 variable err 643 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 644 if(err) 645 Print "HDF write err = ",err 646 endif 647 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 648 // err = V_KillNamedDataFolder(fname) 649 // if(err) 650 // Print "DataFolder kill err = ",err 651 // endif 637 tmpTW[0] = str // 638 639 variable err 640 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 641 if(err) 642 Print "HDF write err = ",err 643 endif 644 645 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 646 // err = V_KillNamedDataFolder(fname) 647 // if(err) 648 // Print "DataFolder kill err = ",err 649 // endif 650 652 651 return(err) 653 652 end … … 971 970 // TODO - verify the format of how these are written out to the file 972 971 // 973 //Function V_writeAtten_number(fname,val)974 // String fname975 // Variable val976 //977 //// String path = "entry:instrument:attenuator:atten_number"978 //979 // Make/O/D/N=1 wTmpWrite980 //// Make/O/R/N=1 wTmpWrite981 // String groupName = "/entry/instrument/attenuator"982 // String varName = "atten_number"983 // wTmpWrite[0] = val984 //985 // variable err986 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)987 // if(err)988 // Print "HDF write err = ",err989 // endif990 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in991 //// err = V_KillNamedDataFolder(fname)992 //// if(err)993 //// Print "DataFolder kill err = ",err994 //// endif995 // return(err)996 //end997 998 972 999 973 // transmission value for the attenuator in the beam … … 1103 1077 return(err) 1104 1078 end 1079 1105 1080 1106 1081 // table of the attenuation factor error … … 1187 1162 //End 1188 1163 1189 // number of attenuators actually dropped in1190 // an integer value1191 Function V_writeAtten_num_dropped(fname,val)1192 String fname1193 Variable val1194 1195 // String path = "entry:instrument:attenuator:thickness"1196 1197 Make/O/I/N=1 wTmpWrite1198 // Make/O/R/N=1 wTmpWrite1199 String groupName = "/entry/instrument/attenuator"1200 String varName = "num_atten_dropped"1201 wTmpWrite[0] = val1202 1203 variable err1204 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)1205 if(err)1206 Print "HDF write err = ",err1207 endif1208 // now be sure to kill the data folder to force a re-read of the data next time this file is read in1209 // err = V_KillNamedDataFolder(fname)1210 // if(err)1211 // Print "DataFolder kill err = ",err1212 // endif1213 return(err)1214 end1164 //// number of attenuators actually dropped in 1165 //// an integer value 1166 //Function V_writeAtten_num_dropped(fname,val) 1167 // String fname 1168 // Variable val 1169 // 1170 //// String path = "entry:instrument:attenuator:thickness" 1171 // 1172 // Make/O/I/N=1 wTmpWrite 1173 //// Make/O/R/N=1 wTmpWrite 1174 // String groupName = "/entry/instrument/attenuator" 1175 // String varName = "num_atten_dropped" 1176 // wTmpWrite[0] = val 1177 // 1178 // variable err 1179 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1180 // if(err) 1181 // Print "HDF write err = ",err 1182 // endif 1183 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1184 //// err = V_KillNamedDataFolder(fname) 1185 //// if(err) 1186 //// Print "DataFolder kill err = ",err 1187 //// endif 1188 // return(err) 1189 //end 1215 1190 1216 1191 // thickness of the attenuator (PMMA) - units?? … … 1268 1243 1269 1244 1245 1246 1270 1247 ////// INSTRUMENT/BEAM 1248 // 1249 Function V_writeAnalyzer_depth(fname,val) 1250 String fname 1251 Variable val 1252 1253 // String path = "entry:instrument:beam:analyzer:depth" 1254 1255 Make/O/D/N=1 wTmpWrite 1256 // Make/O/R/N=1 wTmpWrite 1257 String groupName = "/entry/instrument/beam/analyzer" 1258 String varName = "depth" 1259 wTmpWrite[0] = val 1260 1261 variable err 1262 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1263 if(err) 1264 Print "HDF write err = ",err 1265 endif 1266 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1267 // err = V_KillNamedDataFolder(fname) 1268 // if(err) 1269 // Print "DataFolder kill err = ",err 1270 // endif 1271 return(err) 1272 end 1273 1274 Function V_writeAnalyzer_direction(fname,str) 1275 String fname,str 1276 1277 // String path = "entry:instrument:beam:analyzer:direction" 1278 1279 Make/O/T/N=1 tmpTW 1280 String groupName = "/entry/instrument/beam/analyzer" // 1281 String varName = "direction" 1282 tmpTW[0] = str // 1283 1284 variable err 1285 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 1286 if(err) 1287 Print "HDF write err = ",err 1288 endif 1289 1290 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1291 // err = V_KillNamedDataFolder(fname) 1292 // if(err) 1293 // Print "DataFolder kill err = ",err 1294 // endif 1295 1296 return(err) 1297 End 1298 1299 Function V_writeAnalyzer_height(fname,val) 1300 String fname 1301 Variable val 1302 1303 // String path = "entry:instrument:beam:analyzer:height" 1304 1305 Make/O/D/N=1 wTmpWrite 1306 // Make/O/R/N=1 wTmpWrite 1307 String groupName = "/entry/instrument/beam/analyzer" 1308 String varName = "height" 1309 wTmpWrite[0] = val 1310 1311 variable err 1312 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1313 if(err) 1314 Print "HDF write err = ",err 1315 endif 1316 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1317 // err = V_KillNamedDataFolder(fname) 1318 // if(err) 1319 // Print "DataFolder kill err = ",err 1320 // endif 1321 return(err) 1322 end 1323 1324 // ?? TODO is this equivalent to "status" -- is this 0|1 ?? 1325 Function V_writeAnalyzer_inBeam(fname,val) 1326 String fname 1327 Variable val 1328 1329 // String path = "entry:instrument:beam:analyzer:inBeam" 1330 1331 Make/O/D/N=1 wTmpWrite 1332 // Make/O/R/N=1 wTmpWrite 1333 String groupName = "/entry/instrument/beam/analyzer" 1334 String varName = "inBeam" 1335 wTmpWrite[0] = val 1336 1337 variable err 1338 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1339 if(err) 1340 Print "HDF write err = ",err 1341 endif 1342 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1343 // err = V_KillNamedDataFolder(fname) 1344 // if(err) 1345 // Print "DataFolder kill err = ",err 1346 // endif 1347 return(err) 1348 end 1349 1350 Function V_writeAnalyzer_innerDiameter(fname,val) 1351 String fname 1352 Variable val 1353 1354 // String path = "entry:instrument:beam:analyzer:innerDiameter" 1355 1356 Make/O/D/N=1 wTmpWrite 1357 // Make/O/R/N=1 wTmpWrite 1358 String groupName = "/entry/instrument/beam/analyzer" 1359 String varName = "innerDiameter" 1360 wTmpWrite[0] = val 1361 1362 variable err 1363 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1364 if(err) 1365 Print "HDF write err = ",err 1366 endif 1367 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1368 // err = V_KillNamedDataFolder(fname) 1369 // if(err) 1370 // Print "DataFolder kill err = ",err 1371 // endif 1372 return(err) 1373 end 1374 1375 // one of the most important 1376 Function V_writeAnalyzer_name(fname,str) 1377 String fname,str 1378 1379 // String path = "entry:instrument:beam:analyzer:name" 1380 1381 Make/O/T/N=1 tmpTW 1382 String groupName = "/entry/instrument/beam/analyzer" // 1383 String varName = "name" 1384 tmpTW[0] = str // 1385 1386 variable err 1387 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 1388 if(err) 1389 Print "HDF write err = ",err 1390 endif 1391 1392 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1393 // err = V_KillNamedDataFolder(fname) 1394 // if(err) 1395 // Print "DataFolder kill err = ",err 1396 // endif 1397 1398 return(err) 1399 End 1400 1401 Function V_writeAnalyzer_opacityAt1Ang(fname,val) 1402 String fname 1403 Variable val 1404 1405 // String path = "entry:instrument:beam:analyzer:opacityAt1Ang" 1406 1407 Make/O/D/N=1 wTmpWrite 1408 // Make/O/R/N=1 wTmpWrite 1409 String groupName = "/entry/instrument/beam/analyzer" 1410 String varName = "opacityAt1Ang" 1411 wTmpWrite[0] = val 1412 1413 variable err 1414 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1415 if(err) 1416 Print "HDF write err = ",err 1417 endif 1418 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1419 // err = V_KillNamedDataFolder(fname) 1420 // if(err) 1421 // Print "DataFolder kill err = ",err 1422 // endif 1423 return(err) 1424 end 1425 1426 Function V_writeAna_opacityAt1Ang_err(fname,val) 1427 String fname 1428 Variable val 1429 1430 // String path = "entry:instrument:beam:analyzer:opacityAt1AngStd" 1431 1432 Make/O/D/N=1 wTmpWrite 1433 // Make/O/R/N=1 wTmpWrite 1434 String groupName = "/entry/instrument/beam/analyzer" 1435 String varName = "opacityAt1AngStd" 1436 wTmpWrite[0] = val 1437 1438 variable err 1439 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1440 if(err) 1441 Print "HDF write err = ",err 1442 endif 1443 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1444 // err = V_KillNamedDataFolder(fname) 1445 // if(err) 1446 // Print "DataFolder kill err = ",err 1447 // endif 1448 return(err) 1449 end 1450 1451 Function V_writeAnalyzer_outerDiameter(fname,val) 1452 String fname 1453 Variable val 1454 1455 // String path = "entry:instrument:beam:analyzer:outerDiameter" 1456 1457 Make/O/D/N=1 wTmpWrite 1458 // Make/O/R/N=1 wTmpWrite 1459 String groupName = "/entry/instrument/beam/analyzer" 1460 String varName = "outerDiameter" 1461 wTmpWrite[0] = val 1462 1463 variable err 1464 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1465 if(err) 1466 Print "HDF write err = ",err 1467 endif 1468 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1469 // err = V_KillNamedDataFolder(fname) 1470 // if(err) 1471 // Print "DataFolder kill err = ",err 1472 // endif 1473 return(err) 1474 end 1475 1476 Function V_writeAnalyzer_shape(fname,str) 1477 String fname,str 1478 1479 // String path = "entry:instrument:beam:analyzer:shape" 1480 1481 Make/O/T/N=1 tmpTW 1482 String groupName = "/entry/instrument/beam/analyzer" // 1483 String varName = "shape" 1484 tmpTW[0] = str // 1485 1486 variable err 1487 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 1488 if(err) 1489 Print "HDF write err = ",err 1490 endif 1491 1492 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1493 // err = V_KillNamedDataFolder(fname) 1494 // if(err) 1495 // Print "DataFolder kill err = ",err 1496 // endif 1497 1498 return(err) 1499 End 1500 1501 Function V_writeAnalyzer_tE(fname,val) 1502 String fname 1503 Variable val 1504 1505 // String path = "entry:instrument:beam:analyzer:tE" 1506 1507 Make/O/D/N=1 wTmpWrite 1508 // Make/O/R/N=1 wTmpWrite 1509 String groupName = "/entry/instrument/beam/analyzer" 1510 String varName = "tE" 1511 wTmpWrite[0] = val 1512 1513 variable err 1514 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1515 if(err) 1516 Print "HDF write err = ",err 1517 endif 1518 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1519 // err = V_KillNamedDataFolder(fname) 1520 // if(err) 1521 // Print "DataFolder kill err = ",err 1522 // endif 1523 return(err) 1524 end 1525 1526 Function V_writeAnalyzer_tE_err(fname,val) 1527 String fname 1528 Variable val 1529 1530 // String path = "entry:instrument:beam:analyzer:tEStd" 1531 1532 Make/O/D/N=1 wTmpWrite 1533 // Make/O/R/N=1 wTmpWrite 1534 String groupName = "/entry/instrument/beam/analyzer" 1535 String varName = "tEStd" 1536 wTmpWrite[0] = val 1537 1538 variable err 1539 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1540 if(err) 1541 Print "HDF write err = ",err 1542 endif 1543 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1544 // err = V_KillNamedDataFolder(fname) 1545 // if(err) 1546 // Print "DataFolder kill err = ",err 1547 // endif 1548 return(err) 1549 end 1550 1551 Function V_writeAnalyzer_type(fname,str) 1552 String fname,str 1553 1554 // String path = "entry:instrument:beam:analyzer:type" 1555 1556 Make/O/T/N=1 tmpTW 1557 String groupName = "/entry/instrument/beam/analyzer" // 1558 String varName = "type" 1559 tmpTW[0] = str // 1560 1561 variable err 1562 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 1563 if(err) 1564 Print "HDF write err = ",err 1565 endif 1566 1567 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1568 // err = V_KillNamedDataFolder(fname) 1569 // if(err) 1570 // Print "DataFolder kill err = ",err 1571 // endif 1572 1573 return(err) 1574 End 1575 1576 1577 Function V_writeAnalyzer_width(fname,val) 1578 String fname 1579 Variable val 1580 1581 // String path = "entry:instrument:beam:analyzer:width" 1582 1583 Make/O/D/N=1 wTmpWrite 1584 // Make/O/R/N=1 wTmpWrite 1585 String groupName = "/entry/instrument/beam/analyzer" 1586 String varName = "width" 1587 wTmpWrite[0] = val 1588 1589 variable err 1590 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1591 if(err) 1592 Print "HDF write err = ",err 1593 endif 1594 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1595 // err = V_KillNamedDataFolder(fname) 1596 // if(err) 1597 // Print "DataFolder kill err = ",err 1598 // endif 1599 return(err) 1600 end 1601 1602 1603 1604 1605 1271 1606 // instrument/beam/chopper (data folder) 1272 1607 Function V_writeChopperAngular_opening(fname,val) … … 1472 1807 1473 1808 1474 // instrument/beam/flipper (data folder) 1475 Function V_writeFlipperDriving_current(fname,val) 1476 String fname 1477 Variable val 1478 1479 // String path = "entry:instrument:beam:flipper:driving_current" 1480 1481 Make/O/D/N=1 wTmpWrite 1482 // Make/O/R/N=1 wTmpWrite 1483 String groupName = "/entry/instrument/beam/flipper" 1484 String varName = "driving_current" 1485 wTmpWrite[0] = val 1486 1487 variable err 1488 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1489 if(err) 1490 Print "HDF write err = ",err 1491 endif 1492 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1493 // err = V_KillNamedDataFolder(fname) 1494 // if(err) 1495 // Print "DataFolder kill err = ",err 1496 // endif 1497 return(err) 1498 end 1499 1500 Function V_writeFlipperFrequency(fname,val) 1501 String fname 1502 Variable val 1503 1504 // String path = "entry:instrument:beam:flipper:frequency" 1505 1506 Make/O/D/N=1 wTmpWrite 1507 // Make/O/R/N=1 wTmpWrite 1508 String groupName = "/entry/instrument/beam/flipper" 1509 String varName = "frequency" 1510 wTmpWrite[0] = val 1511 1512 variable err 1513 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1514 if(err) 1515 Print "HDF write err = ",err 1516 endif 1517 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1518 // err = V_KillNamedDataFolder(fname) 1519 // if(err) 1520 // Print "DataFolder kill err = ",err 1521 // endif 1522 return(err) 1523 end 1524 1525 Function V_writeFlipperstatus(fname,str) 1526 String fname,str 1527 1528 // String path = "entry:instrument:beam:flipper:status" 1529 1530 Make/O/T/N=1 tmpTW 1531 String groupName = "/entry/instrument/beam/flipper" // 1532 String varName = "status" 1533 tmpTW[0] = str // 1534 1535 variable err 1536 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 1537 if(err) 1538 Print "HDF write err = ",err 1539 endif 1540 1541 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1542 // err = V_KillNamedDataFolder(fname) 1543 // if(err) 1544 // Print "DataFolder kill err = ",err 1545 // endif 1546 1547 return(err) 1548 End 1549 1550 Function V_writeFlipperTransmitted_power(fname,val) 1551 String fname 1552 Variable val 1553 1554 // String path = "entry:instrument:beam:flipper:transmitted_power" 1555 1556 Make/O/D/N=1 wTmpWrite 1557 // Make/O/R/N=1 wTmpWrite 1558 String groupName = "/entry/instrument/beam/flipper" 1559 String varName = "transmitted_power" 1560 wTmpWrite[0] = val 1561 1562 variable err 1563 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1564 if(err) 1565 Print "HDF write err = ",err 1566 endif 1567 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1568 // err = V_KillNamedDataFolder(fname) 1569 // if(err) 1570 // Print "DataFolder kill err = ",err 1571 // endif 1572 return(err) 1573 end 1574 1575 Function V_writeFlipperWaveform(fname,str) 1576 String fname,str 1577 1578 // String path = "entry:instrument:beam:flipper:waveform" 1579 1580 Make/O/T/N=1 tmpTW 1581 String groupName = "/entry/instrument/beam/flipper" // 1582 String varName = "waveform" 1583 tmpTW[0] = str // 1584 1585 variable err 1586 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 1587 if(err) 1588 Print "HDF write err = ",err 1589 endif 1590 1591 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1592 // err = V_KillNamedDataFolder(fname) 1593 // if(err) 1594 // Print "DataFolder kill err = ",err 1595 // endif 1596 1597 return(err) 1598 End 1809 /////////////// 1810 // instrument/beam/flipperPolarizer (data folder) 1811 // this is upstream, after the supermirror but before the sample 1812 // 1813 Function V_writeflipperPol_Direction(fname,str) 1814 String fname,str 1815 1816 // String path = "entry:instrument:beam:flipperPolarizer:direction" 1817 1818 Make/O/T/N=1 tmpTW 1819 String groupName = "/entry/instrument/beam/flipperPolarizer" // 1820 String varName = "direction" 1821 tmpTW[0] = str // 1822 1823 variable err 1824 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 1825 if(err) 1826 Print "HDF write err = ",err 1827 endif 1828 1829 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1830 // err = V_KillNamedDataFolder(fname) 1831 // if(err) 1832 // Print "DataFolder kill err = ",err 1833 // endif 1834 1835 return(err) 1836 End 1837 1838 Function V_writeflipperPolarizer_inBeam(fname,val) 1839 String fname 1840 Variable val 1841 1842 // String path = "entry:instrument:beam:flipperPolarizer:inBeam" 1843 1844 Make/O/D/N=1 wTmpWrite 1845 // Make/O/R/N=1 wTmpWrite 1846 String groupName = "/entry/instrument/beam/flipperPolarizer" 1847 String varName = "inBeam" 1848 wTmpWrite[0] = val 1849 1850 variable err 1851 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1852 if(err) 1853 Print "HDF write err = ",err 1854 endif 1855 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1856 // err = V_KillNamedDataFolder(fname) 1857 // if(err) 1858 // Print "DataFolder kill err = ",err 1859 // endif 1860 return(err) 1861 end 1862 1863 Function V_writeflipperPolarizer_Type(fname,str) 1864 String fname,str 1865 1866 // String path = "entry:instrument:beam:flipperPolarizer:type" 1867 Make/O/T/N=1 tmpTW 1868 String groupName = "/entry/instrument/beam/flipperPolarizer" // 1869 String varName = "type" 1870 tmpTW[0] = str // 1871 1872 variable err 1873 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 1874 if(err) 1875 Print "HDF write err = ",err 1876 endif 1877 1878 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1879 // err = V_KillNamedDataFolder(fname) 1880 // if(err) 1881 // Print "DataFolder kill err = ",err 1882 // endif 1883 1884 return(err) 1885 End 1886 1887 1888 1889 1890 ////////// 1891 //// instrument/beam/flipper (data folder) 1892 //Function V_writeFlipperDriving_current(fname,val) 1893 // String fname 1894 // Variable val 1895 // 1896 //// String path = "entry:instrument:beam:flipper:driving_current" 1897 // 1898 // Make/O/D/N=1 wTmpWrite 1899 //// Make/O/R/N=1 wTmpWrite 1900 // String groupName = "/entry/instrument/beam/flipper" 1901 // String varName = "driving_current" 1902 // wTmpWrite[0] = val 1903 // 1904 // variable err 1905 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1906 // if(err) 1907 // Print "HDF write err = ",err 1908 // endif 1909 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1910 //// err = V_KillNamedDataFolder(fname) 1911 //// if(err) 1912 //// Print "DataFolder kill err = ",err 1913 //// endif 1914 // return(err) 1915 //end 1916 // 1917 //Function V_writeFlipperFrequency(fname,val) 1918 // String fname 1919 // Variable val 1920 // 1921 //// String path = "entry:instrument:beam:flipper:frequency" 1922 // 1923 // Make/O/D/N=1 wTmpWrite 1924 //// Make/O/R/N=1 wTmpWrite 1925 // String groupName = "/entry/instrument/beam/flipper" 1926 // String varName = "frequency" 1927 // wTmpWrite[0] = val 1928 // 1929 // variable err 1930 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1931 // if(err) 1932 // Print "HDF write err = ",err 1933 // endif 1934 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1935 //// err = V_KillNamedDataFolder(fname) 1936 //// if(err) 1937 //// Print "DataFolder kill err = ",err 1938 //// endif 1939 // return(err) 1940 //end 1941 // 1942 //Function V_writeFlipperstatus(fname,str) 1943 // String fname,str 1944 // 1945 //// String path = "entry:instrument:beam:flipper:status" 1946 // 1947 // Make/O/T/N=1 tmpTW 1948 // String groupName = "/entry/instrument/beam/flipper" // 1949 // String varName = "status" 1950 // tmpTW[0] = str // 1951 // 1952 // variable err 1953 // err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 1954 // if(err) 1955 // Print "HDF write err = ",err 1956 // endif 1957 // 1958 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1959 //// err = V_KillNamedDataFolder(fname) 1960 //// if(err) 1961 //// Print "DataFolder kill err = ",err 1962 //// endif 1963 // 1964 // return(err) 1965 //End 1966 // 1967 //Function V_writeFlipperTransmitted_power(fname,val) 1968 // String fname 1969 // Variable val 1970 // 1971 //// String path = "entry:instrument:beam:flipper:transmitted_power" 1972 // 1973 // Make/O/D/N=1 wTmpWrite 1974 //// Make/O/R/N=1 wTmpWrite 1975 // String groupName = "/entry/instrument/beam/flipper" 1976 // String varName = "transmitted_power" 1977 // wTmpWrite[0] = val 1978 // 1979 // variable err 1980 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 1981 // if(err) 1982 // Print "HDF write err = ",err 1983 // endif 1984 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1985 //// err = V_KillNamedDataFolder(fname) 1986 //// if(err) 1987 //// Print "DataFolder kill err = ",err 1988 //// endif 1989 // return(err) 1990 //end 1991 // 1992 //Function V_writeFlipperWaveform(fname,str) 1993 // String fname,str 1994 // 1995 //// String path = "entry:instrument:beam:flipper:waveform" 1996 // 1997 // Make/O/T/N=1 tmpTW 1998 // String groupName = "/entry/instrument/beam/flipper" // 1999 // String varName = "waveform" 2000 // tmpTW[0] = str // 2001 // 2002 // variable err 2003 // err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 2004 // if(err) 2005 // Print "HDF write err = ",err 2006 // endif 2007 // 2008 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2009 //// err = V_KillNamedDataFolder(fname) 2010 //// if(err) 2011 //// Print "DataFolder kill err = ",err 2012 //// endif 2013 // 2014 // return(err) 2015 //End 2016 2017 1599 2018 1600 2019 // instrument/beam/monochromator (data folder) … … 1680 2099 1681 2100 // instrument/beam/monochromator/crystal (data folder) 2101 // 2102 Function V_writeCrystalDistance(fname,val) 2103 String fname 2104 Variable val 2105 2106 // String path = "entry:instrument:beam:monochromator:crystal:distance" 2107 2108 Make/O/D/N=1 wTmpWrite 2109 // Make/O/R/N=1 wTmpWrite 2110 String groupName = "/entry/instrument/beam/monochromator/crystal" 2111 String varName = "distance" 2112 wTmpWrite[0] = val 2113 2114 variable err 2115 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 2116 if(err) 2117 Print "HDF write err = ",err 2118 endif 2119 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2120 // err = V_KillNamedDataFolder(fname) 2121 // if(err) 2122 // Print "DataFolder kill err = ",err 2123 // endif 2124 return(err) 2125 end 2126 1682 2127 Function V_writeCrystalEnergy(fname,val) 1683 2128 String fname … … 1780 2225 end 1781 2226 1782 Function V_writeCrystalDistance(fname,val)1783 String fname1784 Variable val1785 1786 // String path = "entry:instrument:beam:monochromator:crystal:distance"1787 1788 Make/O/D/N=1 wTmpWrite1789 // Make/O/R/N=1 wTmpWrite1790 String groupName = "/entry/instrument/beam/monochromator/crystal"1791 String varName = "distance"1792 wTmpWrite[0] = val1793 1794 variable err1795 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)1796 if(err)1797 Print "HDF write err = ",err1798 endif1799 // now be sure to kill the data folder to force a re-read of the data next time this file is read in1800 // err = V_KillNamedDataFolder(fname)1801 // if(err)1802 // Print "DataFolder kill err = ",err1803 // endif1804 return(err)1805 end1806 2227 1807 2228 Function V_writeCrystalReflection(fname,val) … … 2005 2426 end 2006 2427 2428 //////////// 2007 2429 // instrument/beam/monochromator/velocity_selector (data folder) 2008 2430 Function V_writeVSDistance(fname,val) … … 2260 2682 end 2261 2683 2262 // instrument/beam/polarizer (data folder) 2684 // instrument/beam/superMirror (data folder) 2685 // This is the upstream polarizer. There are no other choices for polarizer on VSANS 2263 2686 Function V_writePolarizerComposition(fname,str) 2264 2687 String fname,str 2265 2688 2266 // String path = "entry:instrument:beam: polarizer:composition"2267 2268 Make/O/T/N=1 tmpTW 2269 String groupName = "/entry/instrument/beam/ polarizer" //2689 // String path = "entry:instrument:beam:superMirror:composition" 2690 2691 Make/O/T/N=1 tmpTW 2692 String groupName = "/entry/instrument/beam/superMirror" // 2270 2693 String varName = "composition" 2271 2694 tmpTW[0] = str // … … 2290 2713 Variable val 2291 2714 2292 // String path = "entry:instrument:beam: polarizer:efficiency"2293 2294 Make/O/D/N=1 wTmpWrite 2295 // Make/O/R/N=1 wTmpWrite 2296 String groupName = "/entry/instrument/beam/ polarizer"2715 // String path = "entry:instrument:beam:superMirror:efficiency" 2716 2717 Make/O/D/N=1 wTmpWrite 2718 // Make/O/R/N=1 wTmpWrite 2719 String groupName = "/entry/instrument/beam/superMirror" 2297 2720 String varName = "efficiency" 2298 2721 wTmpWrite[0] = val … … 2311 2734 end 2312 2735 2313 Function V_writePolarizerStat us(fname,str)2314 String fname,str 2315 2316 // String path = "entry:instrument:beam: polarizer:status"2317 2318 Make/O/T/N=1 tmpTW 2319 String groupName = "/entry/instrument/beam/ polarizer" //2320 String varName = "stat us"2321 tmpTW[0] = str // 2322 2323 variable err 2324 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 2325 if(err) 2326 Print "HDF write err = ",err 2327 endif 2328 2329 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2330 // err = V_KillNamedDataFolder(fname) 2331 // if(err) 2332 // Print "DataFolder kill err = ",err 2333 // endif 2334 2335 return(err) 2336 End 2337 2338 Function V_writePolarizerType(fname,str)2339 String fname,str2340 2341 // String path = "entry:instrument:beam:polarizer:type"2342 2343 Make/O/T/N=1 tmpTW2344 String groupName = "/entry/instrument/beam/polarizer" //2345 String varName = "type"2346 tmpTW[0] = str //2347 2348 variable err2349 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW)2350 if(err)2351 Print "HDF write err = ",err2352 endif2353 2354 // now be sure to kill the data folder to force a re-read of the data next time this file is read in2355 // err = V_KillNamedDataFolder(fname)2356 // if(err)2357 // Print "DataFolder kill err = ",err2358 // endif2359 2360 return(err)2361 End2362 2363 // instrument/beam/polarizer_analyzer (data folder)2364 // integer value2365 Function V_writePolAnaCell_index(fname,val)2366 String fname2367 Variable val2368 2369 // String path = "entry:instrument:beam:polarizer_analyzer:cell_index"2370 2371 Make/O/I/N=1 wTmpWrite2372 // Make/O/R/N=1 wTmpWrite2373 String groupName = "/entry/instrument/beam/polarizer_analyzer"2374 String varName = "cell_index"2375 wTmpWrite[0] = val2376 2377 variable err2378 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)2379 if(err)2380 Print "HDF write err = ",err2381 endif2382 // now be sure to kill the data folder to force a re-read of the data next time this file is read in2383 // err = V_KillNamedDataFolder(fname)2384 // if(err)2385 // Print "DataFolder kill err = ",err2386 // endif2387 return(err)2388 End2389 2390 Function V_writePolAnaCell_name(fname,str)2391 String fname,str2392 2393 // String path = "entry:instrument:beam:polarizer_analyzer:cell_name"2394 2395 Make/O/T/N=1 tmpTW2396 String groupName = "/entry/instrument/beam/polarizer_analyzer" //2397 String varName = "cell_name"2398 tmpTW[0] = str //2399 2400 variable err2401 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW)2402 if(err)2403 Print "HDF write err = ",err2404 endif2405 2406 // now be sure to kill the data folder to force a re-read of the data next time this file is read in2407 // err = V_KillNamedDataFolder(fname)2408 // if(err)2409 // Print "DataFolder kill err = ",err2410 // endif2411 2412 return(err)2413 End2414 2415 Function V_writePolAnaCell_parameters(fname,inW)2416 String fname2417 Wave inW2418 2419 // String path = "entry:instrument:beam:polarizer_analyzer:cell_parameters"2420 2421 Duplicate/O inW wTmpWrite2422 // then use redimension as needed to cast the wave to write to the specified type2423 // see WaveType for the proper codes2424 // Redimension/T=() wTmpWrite2425 // -- May also need to check the dimension(s) before writing (don't trust the input)2426 String groupName = "/entry/instrument//beam/polarizer_analyzer"2427 String varName = "cell_parameters"2428 2429 variable err2430 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)2431 if(err)2432 Print "HDF write err = ",err2433 endif2434 // now be sure to kill the data folder to force a re-read of the data next time this file is read in2435 // err = V_KillNamedDataFolder(fname)2436 // if(err)2437 // Print "DataFolder kill err = ",err2438 // endif2439 return(err)2440 End2441 2442 Function V_writePolAnaGuideFieldCur_1(fname,val)2443 String fname2444 Variable val2445 2446 // String path = "entry:instrument:beam:polarizer_analyzer:guide_field_current_1"2447 2448 Make/O/D/N=1 wTmpWrite2449 // Make/O/R/N=1 wTmpWrite2450 String groupName = "/entry/instrument/beam/polarizer_analyzer"2451 String varName = "guide_field_current_1"2452 wTmpWrite[0] = val2453 2454 variable err2455 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)2456 if(err)2457 Print "HDF write err = ",err2458 endif2459 // now be sure to kill the data folder to force a re-read of the data next time this file is read in2460 // err = V_KillNamedDataFolder(fname)2461 // if(err)2462 // Print "DataFolder kill err = ",err2463 // endif2464 return(err)2465 End2466 2467 Function V_writePolAnaGuideFieldCur_2(fname,val)2468 String fname2469 Variable val2470 2471 // String path = "entry:instrument:beam:polarizer_analyzer:guide_field_current_2"2472 2473 Make/O/D/N=1 wTmpWrite2474 // Make/O/R/N=1 wTmpWrite2475 String groupName = "/entry/instrument/beam/polarizer_analyzer"2476 String varName = "guide_field_current_2"2477 wTmpWrite[0] = val2478 2479 variable err2480 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)2481 if(err)2482 Print "HDF write err = ",err2483 endif2484 // now be sure to kill the data folder to force a re-read of the data next time this file is read in2485 // err = V_KillNamedDataFolder(fname)2486 // if(err)2487 // Print "DataFolder kill err = ",err2488 // endif2489 return(err)2490 End2491 2492 Function V_writePolAnaSolenoid_current(fname,val)2493 String fname2494 Variable val2495 2496 // String path = "entry:instrument:beam:polarizer_analyzer:solenoid_current"2497 2498 Make/O/D/N=1 wTmpWrite2499 // Make/O/R/N=1 wTmpWrite2500 String groupName = "/entry/instrument/beam/polarizer_analyzer"2501 String varName = "solenoid_current"2502 wTmpWrite[0] = val2503 2504 variable err2505 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)2506 if(err)2507 Print "HDF write err = ",err2508 endif2509 // now be sure to kill the data folder to force a re-read of the data next time this file is read in2510 // err = V_KillNamedDataFolder(fname)2511 // if(err)2512 // Print "DataFolder kill err = ",err2513 // endif2514 return(err)2515 End2516 2517 Function V_writePolAnaStatus(fname,str)2518 String fname,str2519 2520 // String path = "entry:instrument:beam:polarizer_analyzer:status"2521 2522 Make/O/T/N=1 tmpTW2523 String groupName = "/entry/instrument/beam/polarizer_analyzer" //2524 String varName = "status"2525 tmpTW[0] = str //2526 2527 variable err2528 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW)2529 if(err)2530 Print "HDF write err = ",err2531 endif2532 2533 // now be sure to kill the data folder to force a re-read of the data next time this file is read in2534 // err = V_KillNamedDataFolder(fname)2535 // if(err)2536 // Print "DataFolder kill err = ",err2537 // endif2538 2539 return(err)2540 End2736 Function V_writePolarizerState(fname,str) 2737 String fname,str 2738 2739 // String path = "entry:instrument:beam:superMirror:state" 2740 2741 Make/O/T/N=1 tmpTW 2742 String groupName = "/entry/instrument/beam/superMirror" // 2743 String varName = "state" 2744 tmpTW[0] = str // 2745 2746 variable err 2747 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 2748 if(err) 2749 Print "HDF write err = ",err 2750 endif 2751 2752 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2753 // err = V_KillNamedDataFolder(fname) 2754 // if(err) 2755 // Print "DataFolder kill err = ",err 2756 // endif 2757 2758 return(err) 2759 End 2760 2761 //Function V_writePolarizerType(fname,str) 2762 // String fname,str 2763 // 2764 //// String path = "entry:instrument:beam:polarizer:type" 2765 // 2766 // Make/O/T/N=1 tmpTW 2767 // String groupName = "/entry/instrument/beam/polarizer" // 2768 // String varName = "type" 2769 // tmpTW[0] = str // 2770 // 2771 // variable err 2772 // err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 2773 // if(err) 2774 // Print "HDF write err = ",err 2775 // endif 2776 // 2777 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2778 //// err = V_KillNamedDataFolder(fname) 2779 //// if(err) 2780 //// Print "DataFolder kill err = ",err 2781 //// endif 2782 // 2783 // return(err) 2784 //End 2785 // 2786 //// instrument/beam/polarizer_analyzer (data folder) 2787 //// integer value 2788 //Function V_writePolAnaCell_index(fname,val) 2789 // String fname 2790 // Variable val 2791 // 2792 //// String path = "entry:instrument:beam:polarizer_analyzer:cell_index" 2793 // 2794 // Make/O/I/N=1 wTmpWrite 2795 //// Make/O/R/N=1 wTmpWrite 2796 // String groupName = "/entry/instrument/beam/polarizer_analyzer" 2797 // String varName = "cell_index" 2798 // wTmpWrite[0] = val 2799 // 2800 // variable err 2801 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 2802 // if(err) 2803 // Print "HDF write err = ",err 2804 // endif 2805 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2806 //// err = V_KillNamedDataFolder(fname) 2807 //// if(err) 2808 //// Print "DataFolder kill err = ",err 2809 //// endif 2810 // return(err) 2811 //End 2812 // 2813 //Function V_writePolAnaCell_name(fname,str) 2814 // String fname,str 2815 // 2816 //// String path = "entry:instrument:beam:polarizer_analyzer:cell_name" 2817 // 2818 // Make/O/T/N=1 tmpTW 2819 // String groupName = "/entry/instrument/beam/polarizer_analyzer" // 2820 // String varName = "cell_name" 2821 // tmpTW[0] = str // 2822 // 2823 // variable err 2824 // err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 2825 // if(err) 2826 // Print "HDF write err = ",err 2827 // endif 2828 // 2829 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2830 //// err = V_KillNamedDataFolder(fname) 2831 //// if(err) 2832 //// Print "DataFolder kill err = ",err 2833 //// endif 2834 // 2835 // return(err) 2836 //End 2837 // 2838 //Function V_writePolAnaCell_parameters(fname,inW) 2839 // String fname 2840 // Wave inW 2841 // 2842 //// String path = "entry:instrument:beam:polarizer_analyzer:cell_parameters" 2843 // 2844 // Duplicate/O inW wTmpWrite 2845 //// then use redimension as needed to cast the wave to write to the specified type 2846 //// see WaveType for the proper codes 2847 //// Redimension/T=() wTmpWrite 2848 //// -- May also need to check the dimension(s) before writing (don't trust the input) 2849 // String groupName = "/entry/instrument//beam/polarizer_analyzer" 2850 // String varName = "cell_parameters" 2851 // 2852 // variable err 2853 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 2854 // if(err) 2855 // Print "HDF write err = ",err 2856 // endif 2857 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2858 //// err = V_KillNamedDataFolder(fname) 2859 //// if(err) 2860 //// Print "DataFolder kill err = ",err 2861 //// endif 2862 // return(err) 2863 //End 2864 // 2865 //Function V_writePolAnaGuideFieldCur_1(fname,val) 2866 // String fname 2867 // Variable val 2868 // 2869 //// String path = "entry:instrument:beam:polarizer_analyzer:guide_field_current_1" 2870 // 2871 // Make/O/D/N=1 wTmpWrite 2872 //// Make/O/R/N=1 wTmpWrite 2873 // String groupName = "/entry/instrument/beam/polarizer_analyzer" 2874 // String varName = "guide_field_current_1" 2875 // wTmpWrite[0] = val 2876 // 2877 // variable err 2878 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 2879 // if(err) 2880 // Print "HDF write err = ",err 2881 // endif 2882 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2883 //// err = V_KillNamedDataFolder(fname) 2884 //// if(err) 2885 //// Print "DataFolder kill err = ",err 2886 //// endif 2887 // return(err) 2888 //End 2889 // 2890 //Function V_writePolAnaGuideFieldCur_2(fname,val) 2891 // String fname 2892 // Variable val 2893 // 2894 //// String path = "entry:instrument:beam:polarizer_analyzer:guide_field_current_2" 2895 // 2896 // Make/O/D/N=1 wTmpWrite 2897 //// Make/O/R/N=1 wTmpWrite 2898 // String groupName = "/entry/instrument/beam/polarizer_analyzer" 2899 // String varName = "guide_field_current_2" 2900 // wTmpWrite[0] = val 2901 // 2902 // variable err 2903 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 2904 // if(err) 2905 // Print "HDF write err = ",err 2906 // endif 2907 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2908 //// err = V_KillNamedDataFolder(fname) 2909 //// if(err) 2910 //// Print "DataFolder kill err = ",err 2911 //// endif 2912 // return(err) 2913 //End 2914 // 2915 //Function V_writePolAnaSolenoid_current(fname,val) 2916 // String fname 2917 // Variable val 2918 // 2919 //// String path = "entry:instrument:beam:polarizer_analyzer:solenoid_current" 2920 // 2921 // Make/O/D/N=1 wTmpWrite 2922 //// Make/O/R/N=1 wTmpWrite 2923 // String groupName = "/entry/instrument/beam/polarizer_analyzer" 2924 // String varName = "solenoid_current" 2925 // wTmpWrite[0] = val 2926 // 2927 // variable err 2928 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 2929 // if(err) 2930 // Print "HDF write err = ",err 2931 // endif 2932 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2933 //// err = V_KillNamedDataFolder(fname) 2934 //// if(err) 2935 //// Print "DataFolder kill err = ",err 2936 //// endif 2937 // return(err) 2938 //End 2939 // 2940 //Function V_writePolAnaStatus(fname,str) 2941 // String fname,str 2942 // 2943 //// String path = "entry:instrument:beam:polarizer_analyzer:status" 2944 // 2945 // Make/O/T/N=1 tmpTW 2946 // String groupName = "/entry/instrument/beam/polarizer_analyzer" // 2947 // String varName = "status" 2948 // tmpTW[0] = str // 2949 // 2950 // variable err 2951 // err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 2952 // if(err) 2953 // Print "HDF write err = ",err 2954 // endif 2955 // 2956 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2957 //// err = V_KillNamedDataFolder(fname) 2958 //// if(err) 2959 //// Print "DataFolder kill err = ",err 2960 //// endif 2961 // 2962 // return(err) 2963 //End 2541 2964 2542 2965 … … 2573 2996 End 2574 2997 2998 Function V_writeBeamMonLowDistance(fname,val) 2999 String fname 3000 Variable val 3001 3002 // String path = "entry:instrument:beam_monitor_low:distance" 3003 3004 Make/O/D/N=1 wTmpWrite 3005 // Make/O/R/N=1 wTmpWrite 3006 String groupName = "/entry/instrument/beam_monitor_low" 3007 String varName = "distance" 3008 wTmpWrite[0] = val 3009 3010 variable err 3011 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 3012 if(err) 3013 Print "HDF write err = ",err 3014 endif 3015 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3016 // err = V_KillNamedDataFolder(fname) 3017 // if(err) 3018 // Print "DataFolder kill err = ",err 3019 // endif 3020 return(err) 3021 End 3022 2575 3023 Function V_writeBeamMonLowEfficiency(fname,val) 2576 3024 String fname … … 2583 3031 String groupName = "/entry/instrument/beam_monitor_low" 2584 3032 String varName = "efficiency" 2585 wTmpWrite[0] = val2586 2587 variable err2588 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)2589 if(err)2590 Print "HDF write err = ",err2591 endif2592 // now be sure to kill the data folder to force a re-read of the data next time this file is read in2593 // err = V_KillNamedDataFolder(fname)2594 // if(err)2595 // Print "DataFolder kill err = ",err2596 // endif2597 return(err)2598 End2599 2600 Function V_writeBeamMonLowDistance(fname,val)2601 String fname2602 Variable val2603 2604 // String path = "entry:instrument:beam_monitor_low:distance"2605 2606 Make/O/D/N=1 wTmpWrite2607 // Make/O/R/N=1 wTmpWrite2608 String groupName = "/entry/instrument/beam_monitor_low"2609 String varName = "distance"2610 3033 wTmpWrite[0] = val 2611 3034 … … 2700 3123 End 2701 3124 3125 Function V_writeBeamMonNormDistance(fname,val) 3126 String fname 3127 Variable val 3128 3129 // String path = "entry:instrument:beam_monitor_norm:distance" 3130 3131 Make/O/D/N=1 wTmpWrite 3132 // Make/O/R/N=1 wTmpWrite 3133 String groupName = "/entry/instrument/beam_monitor_norm" 3134 String varName = "distance" 3135 wTmpWrite[0] = val 3136 3137 variable err 3138 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 3139 if(err) 3140 Print "HDF write err = ",err 3141 endif 3142 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3143 // err = V_KillNamedDataFolder(fname) 3144 // if(err) 3145 // Print "DataFolder kill err = ",err 3146 // endif 3147 return(err) 3148 End 3149 2702 3150 Function V_writeBeamMonNormEfficiency(fname,val) 2703 3151 String fname … … 2725 3173 End 2726 3174 2727 Function V_writeBeamMonNormDistance(fname,val)2728 String fname2729 Variable val2730 2731 // String path = "entry:instrument:beam_monitor_norm:distance"2732 2733 Make/O/D/N=1 wTmpWrite2734 // Make/O/R/N=1 wTmpWrite2735 String groupName = "/entry/instrument/beam_monitor_norm"2736 String varName = "distance"2737 wTmpWrite[0] = val2738 2739 variable err2740 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)2741 if(err)2742 Print "HDF write err = ",err2743 endif2744 // now be sure to kill the data folder to force a re-read of the data next time this file is read in2745 // err = V_KillNamedDataFolder(fname)2746 // if(err)2747 // Print "DataFolder kill err = ",err2748 // endif2749 return(err)2750 End2751 3175 2752 3176 Function V_writeBeamMonNormSaved_count(fname,val) … … 4648 5072 4649 5073 4650 /////// sample_aperture ( data folder)4651 5074 /////// sample_aperture (1) (data folder) 5075 // this is the INTERNAL sample aperture 4652 5076 Function V_writeSampleAp_Description(fname,str) 4653 5077 String fname,str … … 4700 5124 End 4701 5125 4702 // shape (data folder) 5126 // sample_apertuer/shape (data folder) 5127 Function V_writeSampleAp_height(fname,val) 5128 String fname 5129 Variable val 5130 5131 // String path = "entry:instrument:sample_aperture:distance" 5132 5133 Make/O/D/N=1 wTmpWrite 5134 // Make/O/R/N=1 wTmpWrite 5135 String groupName = "/entry/instrument/sample_aperture/shape" 5136 String varName = "height" 5137 wTmpWrite[0] = val 5138 5139 variable err 5140 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 5141 if(err) 5142 Print "HDF write err = ",err 5143 endif 5144 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 5145 // err = V_KillNamedDataFolder(fname) 5146 // if(err) 5147 // Print "DataFolder kill err = ",err 5148 // endif 5149 return(err) 5150 End 4703 5151 4704 5152 Function V_writeSampleAp_shape(fname,str) … … 4727 5175 End 4728 5176 4729 Function V_writeSampleAp_height(fname,val)4730 String fname4731 Variable val4732 4733 // String path = "entry:instrument:sample_aperture:distance"4734 4735 Make/O/D/N=1 wTmpWrite4736 // Make/O/R/N=1 wTmpWrite4737 String groupName = "/entry/instrument/sample_aperture/shape"4738 String varName = "height"4739 wTmpWrite[0] = val4740 4741 variable err4742 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)4743 if(err)4744 Print "HDF write err = ",err4745 endif4746 // now be sure to kill the data folder to force a re-read of the data next time this file is read in4747 // err = V_KillNamedDataFolder(fname)4748 // if(err)4749 // Print "DataFolder kill err = ",err4750 // endif4751 return(err)4752 End4753 4754 5177 Function V_writeSampleAp_size(fname,str) 4755 5178 String fname,str … … 4803 5226 4804 5227 /////// sample_aperture_2 (data folder) 5228 // sample aperture (2) is the external aperture, which may or may not be present 4805 5229 4806 5230 Function V_writeSampleAp2_Description(fname,str) … … 4856 5280 4857 5281 // shape (data folder) 5282 Function V_writeSampleAp2_height(fname,val) 5283 String fname 5284 Variable val 5285 5286 // String path = "entry:instrument:sample_aperture:distance" 5287 5288 Make/O/D/N=1 wTmpWrite 5289 // Make/O/R/N=1 wTmpWrite 5290 String groupName = "/entry/instrument/sample_aperture_2/shape" 5291 String varName = "height" 5292 wTmpWrite[0] = val 5293 5294 variable err 5295 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 5296 if(err) 5297 Print "HDF write err = ",err 5298 endif 5299 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 5300 // err = V_KillNamedDataFolder(fname) 5301 // if(err) 5302 // Print "DataFolder kill err = ",err 5303 // endif 5304 return(err) 5305 End 4858 5306 4859 5307 Function V_writeSampleAp2_shape(fname,str) … … 4879 5327 // endif 4880 5328 4881 return(err)4882 End4883 4884 Function V_writeSampleAp2_height(fname,val)4885 String fname4886 Variable val4887 4888 // String path = "entry:instrument:sample_aperture:distance"4889 4890 Make/O/D/N=1 wTmpWrite4891 // Make/O/R/N=1 wTmpWrite4892 String groupName = "/entry/instrument/sample_aperture_2/shape"4893 String varName = "height"4894 wTmpWrite[0] = val4895 4896 variable err4897 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)4898 if(err)4899 Print "HDF write err = ",err4900 endif4901 // now be sure to kill the data folder to force a re-read of the data next time this file is read in4902 // err = V_KillNamedDataFolder(fname)4903 // if(err)4904 // Print "DataFolder kill err = ",err4905 // endif4906 5329 return(err) 4907 5330 End … … 5169 5592 return(err) 5170 5593 End 5594 5595 5171 5596 // shape (data folder) 5597 Function V_writeSourceAp_height(fname,val) 5598 String fname 5599 Variable val 5600 5601 // String path = "entry:instrument:sample_aperture:distance" 5602 5603 Make/O/D/N=1 wTmpWrite 5604 // Make/O/R/N=1 wTmpWrite 5605 String groupName = "/entry/instrument/source_aperture/shape" 5606 String varName = "height" 5607 wTmpWrite[0] = val 5608 5609 variable err 5610 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 5611 if(err) 5612 Print "HDF write err = ",err 5613 endif 5614 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 5615 // err = V_KillNamedDataFolder(fname) 5616 // if(err) 5617 // Print "DataFolder kill err = ",err 5618 // endif 5619 return(err) 5620 End 5172 5621 5173 5622 Function V_writeSourceAp_shape(fname,str) … … 5218 5667 // endif 5219 5668 5220 return(err)5221 End5222 5223 Function V_writeSourceAp_height(fname,val)5224 String fname5225 Variable val5226 5227 // String path = "entry:instrument:sample_aperture:distance"5228 5229 Make/O/D/N=1 wTmpWrite5230 // Make/O/R/N=1 wTmpWrite5231 String groupName = "/entry/instrument/source_aperture/shape"5232 String varName = "height"5233 wTmpWrite[0] = val5234 5235 variable err5236 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)5237 if(err)5238 Print "HDF write err = ",err5239 endif5240 // now be sure to kill the data folder to force a re-read of the data next time this file is read in5241 // err = V_KillNamedDataFolder(fname)5242 // if(err)5243 // Print "DataFolder kill err = ",err5244 // endif5245 5669 return(err) 5246 5670 End … … 5523 5947 5524 5948 String path = "entry:sample:transmission" 5525 // String path = "QKK0037737:data:Transmission"5526 5949 5527 5950 Make/O/D/N=1 wTmpWrite … … 5577 6000 // temperature_1 5578 6001 // temperature_2 6002 // temperature_3 6003 // temperature_4 5579 6004 // shear_field 5580 6005 // pressure … … 5662 6087 5663 6088 5664 // TODO -- 6089 // TODO -- this may require multiple entries, for each sensor _1, _2, etc. 6090 Function V_writeLog_setPoint(fname,logStr,val) 6091 String fname,logStr 6092 Variable val 6093 6094 // String path = "entry:sample:"+logstr+":setpoint_1" 6095 6096 Make/O/D/N=1 wTmpWrite 6097 // Make/O/R/N=1 wTmpWrite 6098 String groupName = "/entry/sample/"+logStr 6099 String varName = "setpoint_1" 6100 wTmpWrite[0] = val 6101 6102 variable err 6103 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 6104 if(err) 6105 Print "HDF write err = ",err 6106 endif 6107 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6108 // err = V_KillNamedDataFolder(fname) 6109 // if(err) 6110 // Print "DataFolder kill err = ",err 6111 // endif 6112 return(err) 6113 end 6114 6115 Function V_writeLog_startTime(fname,logStr,str) 6116 String fname,logStr,str 6117 6118 // String path = "entry:sample:"+logstr+":start" 6119 6120 Make/O/T/N=1 tmpTW 6121 String groupName = "/entry/sample/"+logStr 6122 String varName = "start" 6123 tmpTW[0] = str // 6124 6125 variable err 6126 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 6127 if(err) 6128 Print "HDF write err = ",err 6129 endif 6130 6131 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6132 // err = V_KillNamedDataFolder(fname) 6133 // if(err) 6134 // Print "DataFolder kill err = ",err 6135 // endif 6136 6137 return(err) 6138 End 6139 6140 6141 // TODO -- this may only exist for electric and magnetic field, or be removed 5665 6142 Function V_writeLog_nomValue(fname,logStr,val) 5666 6143 String fname,logStr … … 5689 6166 5690 6167 //// value_log (data folder) 5691 Function V_writeLog_startTime(fname,logStr,str) 5692 String fname,logStr,str 5693 5694 // String path = "entry:sample:"+logstr+":value_log:start" 5695 5696 Make/O/T/N=1 tmpTW 5697 String groupName = "/entry/sample/"+logStr+"/value_log" 5698 String varName = "start" 5699 tmpTW[0] = str // 5700 5701 variable err 5702 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 5703 if(err) 5704 Print "HDF write err = ",err 5705 endif 5706 5707 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 5708 // err = V_KillNamedDataFolder(fname) 5709 // if(err) 5710 // Print "DataFolder kill err = ",err 5711 // endif 5712 5713 return(err) 5714 End 5715 6168 // 5716 6169 // TODO -- 5717 6170 Function V_writeLog_avgValue(fname,logStr,val) … … 5740 6193 end 5741 6194 6195 Function V_writeLog_avgValue_err(fname,logStr,val) 6196 String fname,logStr 6197 Variable val 6198 6199 // String path = "entry:sample:"+logstr+":value_log:average_value_error" 6200 6201 Make/O/D/N=1 wTmpWrite 6202 // Make/O/R/N=1 wTmpWrite 6203 String groupName = "/entry/sample/"+logStr+"/value_log" 6204 String varName = "average_value_error" 6205 wTmpWrite[0] = val 6206 6207 variable err 6208 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 6209 if(err) 6210 Print "HDF write err = ",err 6211 endif 6212 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6213 // err = V_KillNamedDataFolder(fname) 6214 // if(err) 6215 // Print "DataFolder kill err = ",err 6216 // endif 6217 return(err) 6218 end 6219 6220 Function V_writeLog_maximumValue(fname,logStr,val) 6221 String fname,logStr 6222 Variable val 6223 6224 // String path = "entry:sample:"+logstr+":value_log:maximum_value" 6225 6226 Make/O/D/N=1 wTmpWrite 6227 // Make/O/R/N=1 wTmpWrite 6228 String groupName = "/entry/sample/"+logStr+"/value_log" 6229 String varName = "maximum_value" 6230 wTmpWrite[0] = val 6231 6232 variable err 6233 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 6234 if(err) 6235 Print "HDF write err = ",err 6236 endif 6237 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6238 // err = V_KillNamedDataFolder(fname) 6239 // if(err) 6240 // Print "DataFolder kill err = ",err 6241 // endif 6242 return(err) 6243 end 6244 6245 Function V_writeLog_medianValue(fname,logStr,val) 6246 String fname,logStr 6247 Variable val 6248 6249 // String path = "entry:sample:"+logstr+":value_log:median_value" 6250 6251 Make/O/D/N=1 wTmpWrite 6252 // Make/O/R/N=1 wTmpWrite 6253 String groupName = "/entry/sample/"+logStr+"/value_log" 6254 String varName = "median_value" 6255 wTmpWrite[0] = val 6256 6257 variable err 6258 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 6259 if(err) 6260 Print "HDF write err = ",err 6261 endif 6262 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6263 // err = V_KillNamedDataFolder(fname) 6264 // if(err) 6265 // Print "DataFolder kill err = ",err 6266 // endif 6267 return(err) 6268 end 6269 6270 Function V_writeLog_minimumValue(fname,logStr,val) 6271 String fname,logStr 6272 Variable val 6273 6274 // String path = "entry:sample:"+logstr+":value_log:minimum_value" 6275 6276 Make/O/D/N=1 wTmpWrite 6277 // Make/O/R/N=1 wTmpWrite 6278 String groupName = "/entry/sample/"+logStr+"/value_log" 6279 String varName = "minimum_value" 6280 wTmpWrite[0] = val 6281 6282 variable err 6283 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 6284 if(err) 6285 Print "HDF write err = ",err 6286 endif 6287 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6288 // err = V_KillNamedDataFolder(fname) 6289 // if(err) 6290 // Print "DataFolder kill err = ",err 6291 // endif 6292 return(err) 6293 end 6294 6295 6296 5742 6297 // TODO -- this needs to be a WAVE reference 6298 // be sure this gets written as "time", even though it is read in as "time0" 5743 6299 Function V_writeLog_time(fname,logStr,inW) 5744 6300 String fname,logStr … … 5832 6388 end 5833 6389 6390 Function V_writeBackgroundFileName(fname,str) 6391 String fname,str 6392 6393 // String path = "entry:reduction:background_file_name" 6394 6395 Make/O/T/N=1 tmpTW 6396 String groupName = "/entry/reduction" 6397 String varName = "background_file_name" 6398 tmpTW[0] = str // 6399 6400 variable err 6401 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 6402 if(err) 6403 Print "HDF write err = ",err 6404 endif 6405 6406 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6407 // err = V_KillNamedDataFolder(fname) 6408 // if(err) 6409 // Print "DataFolder kill err = ",err 6410 // endif 6411 6412 return(err) 6413 End 6414 6415 5834 6416 // TODO -- needs to be a WAVE 5835 6417 Function V_writeBoxCoordinates(fname,inW) … … 5937 6519 End 5938 6520 6521 Function V_writeEmptyBeamFileName(fname,str) 6522 String fname,str 6523 6524 // String path = "entry:reduction:empty_beam_file_name" 6525 6526 Make/O/T/N=1 tmpTW 6527 String groupName = "/entry/reduction" 6528 String varName = "empty_beam_file_name" 6529 tmpTW[0] = str // 6530 6531 variable err 6532 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 6533 if(err) 6534 Print "HDF write err = ",err 6535 endif 6536 6537 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6538 // err = V_KillNamedDataFolder(fname) 6539 // if(err) 6540 // Print "DataFolder kill err = ",err 6541 // endif 6542 6543 return(err) 6544 End 6545 6546 Function V_writeEmptyFileName(fname,str) 6547 String fname,str 6548 6549 // String path = "entry:reduction:empty_beam_file_name" 6550 6551 Make/O/T/N=1 tmpTW 6552 String groupName = "/entry/reduction" 6553 String varName = "empty_file_name" 6554 tmpTW[0] = str // 6555 6556 variable err 6557 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 6558 if(err) 6559 Print "HDF write err = ",err 6560 endif 6561 6562 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6563 // err = V_KillNamedDataFolder(fname) 6564 // if(err) 6565 // Print "DataFolder kill err = ",err 6566 // endif 6567 6568 return(err) 6569 End 6570 6571 Function V_writePolReduction_purpose(fname,str) 6572 String fname,str 6573 6574 // String path = "entry:reduction:file_purpose" 6575 6576 Make/O/T/N=1 tmpTW 6577 String groupName = "/entry/reduction" 6578 String varName = "file_purpose" 6579 tmpTW[0] = str // 6580 6581 variable err 6582 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 6583 if(err) 6584 Print "HDF write err = ",err 6585 endif 6586 6587 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6588 // err = V_KillNamedDataFolder(fname) 6589 // if(err) 6590 // Print "DataFolder kill err = ",err 6591 // endif 6592 6593 return(err) 6594 End 6595 6596 // TODO -- is this duplicated? 6597 Function V_writeReduction_group_ID(fname,val) 6598 String fname 6599 Variable val 6600 6601 // String path = "entry:reduction:box_count_error" 6602 6603 Make/O/D/N=1 wTmpWrite 6604 // Make/O/R/N=1 wTmpWrite 6605 String groupName = "/entry/reduction" 6606 String varName = "group_id" 6607 wTmpWrite[0] = val 6608 6609 variable err 6610 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 6611 if(err) 6612 Print "HDF write err = ",err 6613 endif 6614 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6615 // err = V_KillNamedDataFolder(fname) 6616 // if(err) 6617 // Print "DataFolder kill err = ",err 6618 // endif 6619 return(err) 6620 end 5939 6621 5940 6622 Function V_writeReductionIntent(fname,str) … … 5963 6645 End 5964 6646 6647 Function V_writeMaskFileName(fname,str) 6648 String fname,str 6649 6650 // String path = "entry:reduction:empty_beam_file_name" 6651 6652 Make/O/T/N=1 tmpTW 6653 String groupName = "/entry/reduction" 6654 String varName = "mask_file_name" 6655 tmpTW[0] = str // 6656 6657 variable err 6658 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 6659 if(err) 6660 Print "HDF write err = ",err 6661 endif 6662 6663 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6664 // err = V_KillNamedDataFolder(fname) 6665 // if(err) 6666 // Print "DataFolder kill err = ",err 6667 // endif 6668 6669 return(err) 6670 End 6671 6672 5965 6673 5966 6674 Function V_writeLogFileName(fname,str) … … 6040 6748 End 6041 6749 6042 Function V_writeEmptyBeamFileName(fname,str)6043 String fname,str6044 6045 // String path = "entry:reduction:empty_beam_file_name"6046 6047 Make/O/T/N=1 tmpTW6048 String groupName = "/entry/reduction"6049 String varName = "empty_beam_file_name"6050 tmpTW[0] = str //6051 6052 variable err6053 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW)6054 if(err)6055 Print "HDF write err = ",err6056 endif6057 6058 // now be sure to kill the data folder to force a re-read of the data next time this file is read in6059 // err = V_KillNamedDataFolder(fname)6060 // if(err)6061 // Print "DataFolder kill err = ",err6062 // endif6063 6064 return(err)6065 End6066 6067 Function V_writeEmptyFileName(fname,str)6068 String fname,str6069 6070 // String path = "entry:reduction:empty_beam_file_name"6071 6072 Make/O/T/N=1 tmpTW6073 String groupName = "/entry/reduction"6074 String varName = "empty_file_name"6075 tmpTW[0] = str //6076 6077 variable err6078 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW)6079 if(err)6080 Print "HDF write err = ",err6081 endif6082 6083 // now be sure to kill the data folder to force a re-read of the data next time this file is read in6084 // err = V_KillNamedDataFolder(fname)6085 // if(err)6086 // Print "DataFolder kill err = ",err6087 // endif6088 6089 return(err)6090 End6091 6092 Function V_writeMaskFileName(fname,str)6093 String fname,str6094 6095 // String path = "entry:reduction:empty_beam_file_name"6096 6097 Make/O/T/N=1 tmpTW6098 String groupName = "/entry/reduction"6099 String varName = "mask_file_name"6100 tmpTW[0] = str //6101 6102 variable err6103 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW)6104 if(err)6105 Print "HDF write err = ",err6106 endif6107 6108 // now be sure to kill the data folder to force a re-read of the data next time this file is read in6109 // err = V_KillNamedDataFolder(fname)6110 // if(err)6111 // Print "DataFolder kill err = ",err6112 // endif6113 6114 return(err)6115 End6116 6117 Function V_writeBackgroundFileName(fname,str)6118 String fname,str6119 6120 // String path = "entry:reduction:empty_beam_file_name"6121 6122 Make/O/T/N=1 tmpTW6123 String groupName = "/entry/reduction"6124 String varName = "background_file_name"6125 tmpTW[0] = str //6126 6127 variable err6128 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW)6129 if(err)6130 Print "HDF write err = ",err6131 endif6132 6133 // now be sure to kill the data folder to force a re-read of the data next time this file is read in6134 // err = V_KillNamedDataFolder(fname)6135 // if(err)6136 // Print "DataFolder kill err = ",err6137 // endif6138 6139 return(err)6140 End6141 6750 6142 6751 //whole detector transmission … … 6193 6802 6194 6803 6195 ///// pol_sans (data folder)6196 6197 Function V_writePolSANS_cellName(fname,str)6198 String fname,str6199 6200 // String path = "entry:reduction:pol_sans:cell_name"6201 6202 Make/O/T/N=1 tmpTW6203 String groupName = "/entry/reduction/pol_sans"6204 String varName = "cell_name"6205 tmpTW[0] = str //6206 6207 variable err6208 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW)6209 if(err)6210 Print "HDF write err = ",err6211 endif6212 6213 // now be sure to kill the data folder to force a re-read of the data next time this file is read in6214 // err = V_KillNamedDataFolder(fname)6215 // if(err)6216 // Print "DataFolder kill err = ",err6217 // endif6218 6219 return(err)6220 End6221 6222 6223 // TODO -- needs to be a WAVE6224 // is this a text wave?? if it's mixed names + values, then what?6225 Function V_writePolSANS_cellParams(fname,inW)6226 String fname6227 Wave inW6228 6229 // String path = "entry:reduction:pol_sans:cell_parameters"6230 6231 Duplicate/O inW wTmpWrite6232 // then use redimension as needed to cast the wave to write to the specified type6233 // see WaveType for the proper codes6234 // Redimension/T=() wTmpWrite6235 // -- May also need to check the dimension(s) before writing (don't trust the input)6236 String groupName = "/entry/reduction/pol_sans"6237 String varName = "cell_parameters"6238 6239 variable err6240 err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite)6241 if(err)6242 Print "HDF write err = ",err6243 endif6244 // now be sure to kill the data folder to force a re-read of the data next time this file is read in6245 // err = V_KillNamedDataFolder(fname)6246 // if(err)6247 // Print "DataFolder kill err = ",err6248 // endif6249 return(err)6250 end6251 6252 Function V_writePolSANS_PolSANSPurpose(fname,str)6253 String fname,str6254 6255 // String path = "entry:reduction:pol_sans:pol_sans_purpose"6256 6257 Make/O/T/N=1 tmpTW6258 String groupName = "/entry/reduction/pol_sans"6259 String varName = "pol_sans_purpose"6260 tmpTW[0] = str //6261 6262 variable err6263 err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW)6264 if(err)6265 Print "HDF write err = ",err6266 endif6267 6268 // now be sure to kill the data folder to force a re-read of the data next time this file is read in6269 // err = V_KillNamedDataFolder(fname)6270 // if(err)6271 // Print "DataFolder kill err = ",err6272 // endif6273 6274 return(err)6275 End6804 /////// pol_sans (data folder) 6805 // 6806 //Function V_writePolSANS_cellName(fname,str) 6807 // String fname,str 6808 // 6809 //// String path = "entry:reduction:pol_sans:cell_name" 6810 // 6811 // Make/O/T/N=1 tmpTW 6812 // String groupName = "/entry/reduction/pol_sans" 6813 // String varName = "cell_name" 6814 // tmpTW[0] = str // 6815 // 6816 // variable err 6817 // err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 6818 // if(err) 6819 // Print "HDF write err = ",err 6820 // endif 6821 // 6822 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6823 //// err = V_KillNamedDataFolder(fname) 6824 //// if(err) 6825 //// Print "DataFolder kill err = ",err 6826 //// endif 6827 // 6828 // return(err) 6829 //End 6830 // 6831 // 6832 //// TODO -- needs to be a WAVE 6833 //// is this a text wave?? if it's mixed names + values, then what? 6834 //Function V_writePolSANS_cellParams(fname,inW) 6835 // String fname 6836 // Wave inW 6837 // 6838 //// String path = "entry:reduction:pol_sans:cell_parameters" 6839 // 6840 // Duplicate/O inW wTmpWrite 6841 //// then use redimension as needed to cast the wave to write to the specified type 6842 //// see WaveType for the proper codes 6843 //// Redimension/T=() wTmpWrite 6844 //// -- May also need to check the dimension(s) before writing (don't trust the input) 6845 // String groupName = "/entry/reduction/pol_sans" 6846 // String varName = "cell_parameters" 6847 // 6848 // variable err 6849 // err = V_WriteWaveToHDF(fname, groupName, varName, wTmpWrite) 6850 // if(err) 6851 // Print "HDF write err = ",err 6852 // endif 6853 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6854 //// err = V_KillNamedDataFolder(fname) 6855 //// if(err) 6856 //// Print "DataFolder kill err = ",err 6857 //// endif 6858 // return(err) 6859 //end 6860 // 6861 //Function V_writePolSANS_PolSANSPurpose(fname,str) 6862 // String fname,str 6863 // 6864 //// String path = "entry:reduction:pol_sans:pol_sans_purpose" 6865 // 6866 // Make/O/T/N=1 tmpTW 6867 // String groupName = "/entry/reduction/pol_sans" 6868 // String varName = "pol_sans_purpose" 6869 // tmpTW[0] = str // 6870 // 6871 // variable err 6872 // err = V_WriteTextWaveToHDF(fname, groupName, varName, tmpTW) 6873 // if(err) 6874 // Print "HDF write err = ",err 6875 // endif 6876 // 6877 // // now be sure to kill the data folder to force a re-read of the data next time this file is read in 6878 //// err = V_KillNamedDataFolder(fname) 6879 //// if(err) 6880 //// Print "DataFolder kill err = ",err 6881 //// endif 6882 // 6883 // return(err) 6884 //End 6276 6885 6277 6886 -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_PatchFiles.ipf
r1004 r1005 590 590 if(change[5]) //attenuator number 591 591 num = str2num(textVal[5]) 592 V_writeAtten _num_dropped(fname,num)592 V_writeAttenThickness(fname,num) 593 593 Endif 594 594 if(change[6]) … … 856 856 Variable/G root:Packages:NIST:VSANS:Globals:Patch:gPV3 = V_getDet_beam_center_x(fname,detStr) 857 857 Variable/G root:Packages:NIST:VSANS:Globals:Patch:gPV4 = V_getDet_beam_center_y(fname,detStr) 858 Variable/G root:Packages:NIST:VSANS:Globals:Patch:gPV5 = V_getAtten _Number(fname)858 Variable/G root:Packages:NIST:VSANS:Globals:Patch:gPV5 = V_getAttenThickness(fname) 859 859 Variable/G root:Packages:NIST:VSANS:Globals:Patch:gPV6 = V_getCount_Time(fname) 860 860 Variable/G root:Packages:NIST:VSANS:Globals:Patch:gPV7 = V_getMonitorCount(fname) … … 993 993 End 994 994 995 996 // testing, very dangerous batch changing of the file header labels997 //998 // testStr is the string at the front of a label, that will be moved to the "back"999 // if doIt is 1, it will write to the headers, any other value will only print to history1000 Function xMPatchLabel(testStr,doIt)1001 String testStr1002 Variable doIt1003 1004 // SVAR list = root:Packages:NIST:VSANS:Globals:Patch:gPatchList1005 String list = GetValidPatchPopupList()1006 1007 Variable numitems,ii1008 numitems = ItemsInList(list,";")1009 1010 if(numitems == 0)1011 Abort "no items in list for multiple patch"1012 Endif1013 1014 String partialName="", tempName = ""1015 Variable ok,nvars = 201016 1017 //loop through all of the files in the list, applying changes as dictated by w and wt waves1018 string str1,str2,str31019 Variable match,loc,len,spc,jj,len11020 len=strlen(testStr)1021 ii=01022 do1023 //get current item in the list1024 partialName = StringFromList(ii, list, ";")1025 1026 //get a valid file based on this partialName and catPathName1027 tempName = V_FindValidFilename(partialName)1028 1029 //prepend path to tempName for read routine1030 PathInfo catPathName1031 tempName = S_path + tempName1032 1033 //make sure the file is really a RAW data file1034 ok = V_CheckIfRawData(tempName)1035 if (!ok)1036 Print "this file is not recognized as a RAW SANS data file = ",tempName1037 else1038 //go write the changes to the file1039 str1 = V_getSampleDescription(tempName)1040 match = strsearch(str1, testStr, 0)1041 if(match != -1)1042 str2 = ReplaceString(testStr, str1, "", 0, 1)1043 1044 jj=strlen(str2)1045 do1046 jj -= 11047 spc = cmpstr(str2[jj], " ") //can add the optional flag ,0), but I don't care about case, and Igor 6.02 is necessary...1048 if (spc != 0)1049 break //no more spaces found, get out1050 endif1051 While(1) // jj is the location of the last non-space1052 1053 str2[jj+2,jj+1+len] = testStr1054 1055 // may need to remove leading spaces???1056 str2 = PadString(str2, 60, 0x20 )1057 1058 if(doIt == 1)1059 V_writeSampleDescription(tempName,str2)1060 print str2," ** Written to file **"1061 else1062 //print str2,strlen(str2)1063 print str2," ** Testing, not written to file **"1064 endif1065 else1066 1067 jj=strlen(str1)1068 do1069 jj -= 11070 spc = cmpstr(str1[jj], " ")1071 if (spc != 0)1072 break //no more spaces found, get out1073 endif1074 While(1)1075 1076 //print str1, jj, str1[jj]1077 endif1078 Endif1079 1080 ii+=11081 while(ii<numitems)1082 1083 1084 end
Note: See TracChangeset
for help on using the changeset viewer.