- Timestamp:
- Mar 7, 2016 11:55:46 AM (7 years ago)
- Location:
- sans/Dev/trunk/NCNR_User_Procedures
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
sans/Dev/trunk/NCNR_User_Procedures/Common/NIST_XML_v40.ipf
r971 r983 825 825 End 826 826 827 Function WriteNSORTedXMLFile(qw,iw,sw,firstFileName,secondFileName,thirdFileName, normTo,norm12,norm23,[res])827 Function WriteNSORTedXMLFile(qw,iw,sw,firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34,[res]) 828 828 Wave qw,iw,sw,res 829 String firstFileName,secondFileName,thirdFileName, normTo830 Variable norm12,norm23 829 String firstFileName,secondFileName,thirdFileName,fourthFileName,normTo 830 Variable norm12,norm23,norm34 831 831 832 832 Variable err=0,refNum,numCols,dialog=1 … … 904 904 905 905 nf.sasProcessNote = "COMBINED FILE CREATED: "+date()+"\n" 906 nf.sasProcessNote += "NSORT-ed : " +firstFileName+";"+secondFileName+";"+thirdFileName+" \n"906 nf.sasProcessNote += "NSORT-ed : " +firstFileName+";"+secondFileName+";"+thirdFileName+";"+fourthFileName+"\n" 907 907 nf.sasProcessNote += "normalized to "+normTo+"\n" 908 fprintf refNum, "multiplicative factor 1-2 = "+num2str(norm12)+" multiplicative factor 2-3 = "+num2str(norm23)+" \n"908 fprintf refNum, "multiplicative factor 1-2 = "+num2str(norm12)+" multiplicative factor 2-3 = "+num2str(norm23)+" multiplicative factor 3-4 = "+num2str(norm34)+"\n" 909 909 910 910 if (numCols == 3) -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/NSORT.ipf
r902 r983 8 8 // NSORT panel for combining and inter-normalizing 2 or 3 datasets 9 9 // that have previously been averaged 10 // 11 // MAR 2016 SRK added functionality to combine 4 datasets 10 12 // 11 13 // - handles 3 or 6-column datasets … … 36 38 MedQPopMenuProc("",1,"") 37 39 HighQPopMenuProc("",1,"") 40 HighestQPopMenuProc("",1,"") 38 41 End 39 42 … … 48 51 Variable/G root:myGlobals:NSORT:gScale1_2 = 1 49 52 Variable/G root:myGlobals:NSORT:gScale2_3 = 1 53 Variable/G root:myGlobals:NSORT:gScale3_4 = 1 50 54 // 51 55 //save the number of points to trim from beginning/end of the data files … … 57 61 Variable/G root:myGlobals:NSORT:gPtsBeg3 = NumVarOrDefault("root:myGlobals:NSORT:gPtsBeg3", 0 ) 58 62 Variable/G root:myGlobals:NSORT:gPtsEnd3 = NumVarOrDefault("root:myGlobals:NSORT:gPtsEnd3", 0 ) 63 Variable/G root:myGlobals:NSORT:gPtsBeg4 = NumVarOrDefault("root:myGlobals:NSORT:gPtsBeg4", 0 ) 64 Variable/G root:myGlobals:NSORT:gPtsEnd4 = NumVarOrDefault("root:myGlobals:NSORT:gPtsEnd4", 0 ) 59 65 60 66 Variable/G root:myGlobals:NSORT:gColumns1 = 0 61 67 Variable/G root:myGlobals:NSORT:gColumns2 = 0 62 68 Variable/G root:myGlobals:NSORT:gColumns3 = 0 69 Variable/G root:myGlobals:NSORT:gColumns4 = 0 63 70 Variable/G root:myGlobals:NSORT:gNormToNum = 1 64 71 String/G root:myGlobals:NSORT:gPathStr = "" … … 73 80 Function LoadDataForNSORT(fileStr,setNum) 74 81 String fileStr //full path:name to a valid file 75 Variable setNum //number of set (used for naming) = 0, 1, or 2 (ONLY) 82 Variable setNum //number of set (used for naming) = 0, 1, or 2 (ONLY), (2016) 3 is now valid for 4th data set 76 83 77 84 Variable err=0 … … 84 91 NVAR gColumns2 = root:myGlobals:NSORT:gColumns2 85 92 NVAR gColumns3 = root:myGlobals:NSORT:gColumns3 93 NVAR gColumns4 = root:myGlobals:NSORT:gColumns4 86 94 NVAR begPts1 = root:myGlobals:NSORT:gPtsBeg1 87 95 NVAR endPts1 = root:myGlobals:NSORT:gPtsEnd1 … … 90 98 NVAR begPts3 = root:myGlobals:NSORT:gPtsBeg3 91 99 NVAR endPts3 = root:myGlobals:NSORT:gPtsEnd3 92 100 NVAR begPts4 = root:myGlobals:NSORT:gPtsBeg4 101 NVAR endPts4 = root:myGlobals:NSORT:gPtsEnd4 102 93 103 String cmd 94 104 String typStr= "", trimStr="" … … 118 128 begPts = begPts3 119 129 endPts = endPts3 130 break 131 case 4: 132 sprintf cmd , "A_LoadOneDDataToName(\"%s\",\"%s\",%d,%d)",fileStr,"HighestQSet",0,1 133 Execute cmd 134 typStr = "HighestQSet" 135 trimStr = "TrimHighestQSet" 136 begPts = begPts4 137 endPts = endPts4 120 138 break 121 139 endswitch … … 168 186 gColumns3 = numCols 169 187 break 188 case 4: 189 gColumns4 = numCols 190 break 170 191 endswitch 171 192 … … 174 195 End 175 196 176 Function WriteNSORTedFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName, normTo,norm12,norm23,[res])197 Function WriteNSORTedFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34,[res]) 177 198 Wave q3,i3,sig3,res 178 String firstFileName,secondFileName,thirdFileName, normTo179 Variable norm12,norm23 199 String firstFileName,secondFileName,thirdFileName,fourthfileName,normTo 200 Variable norm12,norm23,norm34 180 201 181 202 NVAR useXMLOutput = root:Packages:NIST:gXML_Write … … 183 204 if (useXMLOutput == 1) 184 205 if(WaveExists(res)) 185 WriteNSORTedXMLFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName, normTo,norm12,norm23,res=res)206 WriteNSORTedXMLFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34,res=res) 186 207 else 187 WriteNSORTedXMLFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName, normTo,norm12,norm23)208 WriteNSORTedXMLFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34) 188 209 endif 189 210 else 190 211 if(WaveExists(res)) 191 WriteOLDNSORTedFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName, normTo,norm12,norm23,res=res)212 WriteOLDNSORTedFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34,res=res) 192 213 else 193 WriteOLDNSORTedFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName, normTo,norm12,norm23)214 WriteOLDNSORTedFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34) 194 215 endif 195 216 endif … … 198 219 199 220 200 Function WriteOLDNSORTedFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName, normTo,norm12,norm23,[res])221 Function WriteOLDNSORTedFile(q3,i3,sig3,firstFileName,secondFileName,thirdFileName,fourthFileName,normTo,norm12,norm23,norm34,[res]) 201 222 Wave q3,i3,sig3,res 202 String firstFileName,secondFileName,thirdFileName, normTo203 Variable norm12,norm23 223 String firstFileName,secondFileName,thirdFileName,fourthFileName,normTo 224 Variable norm12,norm23,norm34 204 225 205 226 Variable err=0,refNum,numCols,dialog=1 … … 287 308 // fprintf refnum, "THIRD File %s",hdr3 //new, Mar 2008 288 309 289 fprintf refNum, "NSORT-ed %s \t + %s\t + %s\r\n",firstFileName, secondFileName,thirdFileName310 fprintf refNum, "NSORT-ed %s\t + %s\t + %s\t + %s\r\n",firstFileName, secondFileName,thirdFileName,fourthFileName 290 311 fprintf refNum, "normalized to %s\r\n",normTo 291 fprintf refNum, "multiplicative factor 1-2 = %12.8g\t multiplicative factor 2-3 = %12.8g\ r\n",norm12,norm23312 fprintf refNum, "multiplicative factor 1-2 = %12.8g\t multiplicative factor 2-3 = %12.8g\t multiplicative factor 3-4 = %12.8g\r\n",norm12,norm23,norm34 292 313 293 314 if (numCols == 3) … … 376 397 KillDataFolder/Z MedQSet 377 398 KillDataFolder/Z HighQSet 399 KillDataFolder/Z HighestQSet 378 400 379 401 End … … 393 415 Variable setNum,err 394 416 //switch on ctrlName string - Plot_1, Plot_2, Plot_3 395 if(cmpstr(ctrlName,"Plot_1")==0) 396 //low-q 397 setNum = 1 398 ControlInfo/W=NSORT_Panel popup_1 399 else 400 if(cmpstr(ctrlName,"Plot_2")==0) 417 418 strswitch(ctrlName) // string switch 419 case "Plot_1": 420 //low-q 421 setNum = 1 422 ControlInfo/W=NSORT_Panel popup_1 423 break 424 case "Plot_2": 401 425 //medium-q 402 426 setNum = 2 403 427 ControlInfo/W=NSORT_Panel popup_2 404 else 428 break 429 case "Plot_3": 405 430 //high-q 406 431 setNum = 3 407 432 ControlInfo/W=NSORT_Panel popup_3 408 Endif 409 Endif 410 433 break 434 case "Plot_4": 435 //highest-q 436 setNum = 4 437 ControlInfo/W=NSORT_Panel popup_4 438 break 439 endswitch 440 441 411 442 //find the file from the partial filename 412 443 If( (cmpstr(S_value,"")==0) || (cmpstr(S_value,"none")==0) ) … … 439 470 if(WinType("NSORT_Graph")==0) 440 471 //no window, create one 441 if(cmpstr(ctrlName,"Plot_1")==0) 442 //low-q 443 Display/K=1 444 DoWindow/C NSORT_Graph 445 DisplayLowSet() 446 else 447 if(cmpstr(ctrlName,"Plot_2")==0) 472 strswitch(ctrlName) // string switch 473 case "Plot_1": 474 //low-q 475 Display/K=1 476 DoWindow/C NSORT_Graph 477 DisplayLowSet() 478 break 479 case "Plot_2": 448 480 //medium-q 449 481 Display/K=1 450 482 DoWindow/C NSORT_Graph 451 483 DisplayMedSet() 452 else 484 break 485 case "Plot_3": 453 486 //high-q 454 487 Display/K=1 455 488 DoWindow/C NSORT_Graph 456 489 DisplayHighSet() 457 Endif 458 Endif 490 break 491 case "Plot_4": 492 //highest-q 493 Display/K=1 494 DoWindow/C NSORT_Graph 495 DisplayHighestSet() 496 break 497 endswitch 459 498 Legend 460 499 else … … 463 502 list = TraceNameList("NSORT_Graph",";",1) 464 503 465 if(cmpstr(ctrlName,"Plot_1")==0) 466 //low-q 467 isOnPlot = strsearch(list, "LowQSet_i", 0) // isOnPlot == -1 if it is NOT found in the list 468 if(isOnPlot == -1) 469 DisplayLowSet() 470 Endif 471 else 472 if(cmpstr(ctrlName,"Plot_2")==0) 504 strswitch(ctrlName) // string switch 505 case "Plot_1": 506 //low-q 507 isOnPlot = strsearch(list, "LowQSet_i", 0) // isOnPlot == -1 if it is NOT found in the list 508 if(isOnPlot == -1) 509 DisplayLowSet() 510 Endif 511 break 512 case "Plot_2": 473 513 //medium-q 474 514 isOnPlot = strsearch(list, "MedQSet_i", 0) // isOnPlot == -1 if it is NOT found in the list … … 476 516 DisplayMedSet() 477 517 Endif 478 else 518 break 519 case "Plot_3": 479 520 //high-q 480 521 isOnPlot = strsearch(list, "HighQSet_i", 0) // isOnPlot == -1 if it is NOT found in the list … … 482 523 DisplayHighSet() 483 524 Endif 484 Endif 485 Endif 525 break 526 case "Plot_4": 527 //highest-q 528 isOnPlot = strsearch(list, "HighestQSet_i", 0) // isOnPlot == -1 if it is NOT found in the list 529 if(isOnPlot == -1) 530 DisplayHighestSet() 531 Endif 532 break 533 endswitch 534 486 535 Endif 536 537 487 538 //the stripPoints variable boxes should also update the graph, if necessary 488 539 return(0) 540 End 541 542 //adds both highest-q sets (full and trimmed) to the graph, which is 543 //assumed to exist along with the high-q waves 544 // 545 Function DisplayHighestSet() 546 //function assumes that the window "NSORT_Graph" already exists 547 // DoWindow/F NSORT_Graph 548 549 SetDataFolder root:HighestQSet: 550 AppendToGraph/W=NSORT_Graph $"HighestQSet_i" vs $"HighestQSet_q" 551 ModifyGraph/W=NSORT_Graph log=1,mode=3,marker($"HighestQSet_i")=8,msize=2,rgb($"HighestQSet_i")=(65535,32896,0),opaque($"HighestQSet_i")=1 552 ErrorBars/W=NSORT_Graph/T=0 $"HighestQSet_i" Y,wave=($"HighestQSet_s",$"HighestQSet_s") 553 AppendToGraph/W=NSORT_Graph $"TrimHighestQSet_i" vs $"TrimHighestQSet_q" 554 ModifyGraph/W=NSORT_Graph mode($"TrimHighestQSet_i")=3,marker($"TrimHighestQSet_i")=19,msize=2,rgb($"TrimHighestQSet_i")=(65535,32896,0) 555 SetDataFolder root: 489 556 End 490 557 … … 559 626 MedQPopMenuProc("popup_2",1,"") 560 627 HighQPopMenuProc("popup_3",1,"") 628 HighestQPopMenuProc("popup_4",1,"") 561 629 562 630 End … … 572 640 // 2 == MedQ 573 641 // 3 == HighQ 642 // 4 == HighestQ 574 643 // 575 644 //"Plot_1" is the low-q button name 576 645 //"Plot_2" is the med-q button name 577 646 //"Plot_3" is the high-q button name 647 //"Plot_4" is the high-q button name 578 648 // 579 649 //calling plot_0_Button() responds as if that named button were pressed … … 610 680 NVAR Columns2 = root:myGlobals:NSORT:gColumns2 611 681 NVAR Columns3 = root:myGlobals:NSORT:gColumns3 612 if( (Columns1 == 3) || (Columns2 == 3) || (Columns3 == 3) ) 682 NVAR Columns4 = root:myGlobals:NSORT:gColumns4 683 if( (Columns1 == 3) || (Columns2 == 3) || (Columns3 == 3) || (Columns4 == 3)) 613 684 isAThree = 1 614 685 endif 615 if( (Columns1 == 6) || (Columns2 == 6) || (Columns3 == 6) )686 if( (Columns1 == 6) || (Columns2 == 6) || (Columns3 == 6) || (Columns4 == 6)) 616 687 isASix = 1 617 688 endif … … 621 692 622 693 //is there just one data set? if so, then dispatch to a simpler routine, since no normalization is needed 623 ControlInfo/W=NSORT_Panel popup_2 //if MedQSet is "none", then so is HighQSet 694 ControlInfo/W=NSORT_Panel popup_2 //if MedQSet is "none", then so is HighQSet and HighestQSet 624 695 fileStr = S_Value 625 696 if(cmpstr(fileStr,"none") == 0) … … 658 729 ControlInfo/W=NSORT_Panel popup_1 659 730 if(isAThree) 660 WriteNSORTedFile(lowq,lowi,lows,S_Value,"none","none", S_Value,scaleFactor,1)731 WriteNSORTedFile(lowq,lowi,lows,S_Value,"none","none","none",S_Value,scaleFactor,1,1) 661 732 else 662 WriteNSORTedFile(lowq,lowi,lows,S_Value,"none","none", S_Value,scaleFactor,1,res=lowres)733 WriteNSORTedFile(lowq,lowi,lows,S_Value,"none","none","none",S_Value,scaleFactor,1,1,res=lowres) 663 734 endif 664 735 // just get the new list and return - don't actually "pop" the menu, or the selected item will change … … 692 763 Window NSORT_Panel() 693 764 PauseUpdate; Silent 1 // building window... 694 NewPanel /W=(569,69,944, 485)/K=2765 NewPanel /W=(569,69,944,584)//K=2 695 766 ModifyPanel cbRGB=(49151,53155,65535) 696 767 ModifyPanel fixedSize=1 … … 702 773 DrawLine 0,214,346,214 703 774 DrawLine 0,295,346,295 775 DrawLine 0,372,347,372 776 DrawLine 0,460,346,460 777 704 778 SetDrawEnv fstyle= 5 705 779 DrawText 5,74,"Low Q:" … … 708 782 SetDrawEnv fstyle= 5 709 783 DrawText 8,234,"High Q: (or none)" 784 SetDrawEnv fstyle= 5 785 DrawText 8,314,"Highest Q: (or none)" 710 786 SetDrawEnv fstyle= 4 711 787 DrawText 178,75,"Delete Points?" … … 714 790 SetDrawEnv fstyle= 4 715 791 DrawText 184,236,"Delete Points?" 716 DrawLine 0,363,346,363 717 DrawText 31,357,"To Manually scale data, enter scale factors above" 718 Button NSORT_Done,pos={274,387},size={50,20},proc=NSORT_DoneButton,title="Done" 792 SetDrawEnv fstyle= 4 793 DrawText 184,316,"Delete Points?" 794 DrawText 31,456,"To Manually scale data, enter scale factors above" 795 796 Button NSORT_Done,pos={274,483},size={50,20},proc=NSORT_DoneButton,title="Done" 719 797 Button NSORT_Done,help={"closes the panel"} 720 798 Button Plot_1,pos={279,63},size={50,20},proc=Plot_0_Button,title="Plot" … … 724 802 Button Plot_3,pos={284,223},size={50,20},proc=Plot_0_Button,title="Plot" 725 803 Button Plot_3,help={"Plots the dataset from the popup, showing the full set as open circles and the trimmed set as solid circles"} 804 Button Plot_4,pos={284.00,303.00},size={50.00,20.00},proc=Plot_0_Button,title="Plot" 805 Button Plot_4,help={"Plots the dataset from the popup, showing the full set as open circles and the trimmed set as solid circles"} 806 726 807 Button PathButton,pos={6,26},size={80,20},proc=NSORTPickPathButton,title="Pick Path" 727 808 Button PathButton,help={"Select the local path to the folder containing your SANS data"} … … 740 821 SetVariable end_3,fSize=10,help={"How many points to remove from the high-q end of this dataset"} 741 822 SetVariable end_3,limits={-Inf,Inf,0},value= root:myGlobals:NSORT:gPtsEnd3 823 SetVariable end_4,pos={182.00,349.00},size={80.00,16.00},proc=SetBegOrEnd,title="End Pts" 824 SetVariable end_4,help={"How many points to remove from the high-q end of this dataset"} 825 SetVariable end_4,fSize=10 826 SetVariable end_4,limits={-inf,inf,0},value= root:myGlobals:NSORT:gPtsEnd4 742 827 SetVariable beg_1,pos={182,79},size={80,14},proc=SetBegOrEnd,title="Beg Pts" 743 828 SetVariable beg_1,fSize=10,help={"How many points to remove from the low-q end of this dataset"} … … 749 834 SetVariable beg_3,fSize=10,help={"How many points to remove from the low-q end of this dataset"} 750 835 SetVariable beg_3,limits={-Inf,Inf,0},value= root:myGlobals:NSORT:gPtsBeg3 751 Button DoCombine,pos={13,387},size={160,20},proc=WriteNSORTFileButton,title="Write Combined File" 836 SetVariable beg_4,pos={182.00,326.00},size={80.00,16.00},proc=SetBegOrEnd,title="Beg Pts" 837 SetVariable beg_4,help={"How many points to remove from the low-q end of this dataset"} 838 SetVariable beg_4,fSize=10 839 SetVariable beg_4,limits={-inf,inf,0},value= root:myGlobals:NSORT:gPtsBeg4 840 Button DoCombine,pos={13,483},size={160,20},proc=WriteNSORTFileButton,title="Write Combined File" 752 841 Button DoCombine,help={"Combine and normalize the selected files as specifed"} 753 SetVariable scale_12,pos={159,3 05},size={160,14},proc=SetScale_12,title="Mult factor 1-2"842 SetVariable scale_12,pos={159,381},size={160,14},proc=SetScale_12,title="Mult factor 1-2" 754 843 SetVariable scale_12,fSize=10,help={"Factor that will multiply medium-q set to scale to low-q set"} 755 844 SetVariable scale_12,limits={-Inf,Inf,0},value= root:myGlobals:NSORT:gScale1_2 756 SetVariable scale_23,pos={159, 325},size={160,14},proc=SetScale_23,title="Mult factor 2-3"845 SetVariable scale_23,pos={159,401},size={160,14},proc=SetScale_23,title="Mult factor 2-3" 757 846 SetVariable scale_23,fSize=10,help={"Factor that will multiply high-q set to scale to medium-q set"} 758 847 SetVariable scale_23,limits={-Inf,Inf,0},value= root:myGlobals:NSORT:gScale2_3 848 SetVariable scale_34,pos={159.00,421.00},size={160.00,16.00},proc=SetScale_34,title="Mult factor 3-4" 849 SetVariable scale_34,help={"Factor that will multiply highest-q set to scale to high-q set"} 850 SetVariable scale_34,fSize=10 851 SetVariable scale_34,limits={-inf,inf,0},value= root:myGlobals:NSORT:gScale3_4 759 852 CheckBox check1,pos={5,105},size={160,20},proc=CheckProc,title="Normalize to this file",value=1 760 853 CheckBox check1,help={"If checked, the combined dataset will be normalized to this dataset"} … … 763 856 CheckBox check3,pos={4,270},size={160,20},proc=CheckProc,title="Normalize to this file",value=0 764 857 CheckBox check3,help={"If checked, the combined dataset will be normalized to this dataset"} 858 CheckBox check4,pos={4.00,350.00},size={107.00,16.00},proc=CheckProc,title="Normalize to this file" 859 CheckBox check4,help={"If checked, the combined dataset will be normalized to this dataset"} 860 CheckBox check4,value= 0 765 861 PopupMenu popup_1,pos={6,77},size={99,19},proc=LowQPopMenuProc 766 862 PopupMenu popup_1,mode=1,value= #"root:myGlobals:NSORT:gDataPopList" … … 772 868 PopupMenu popup_3,mode=1,value= #"root:myGlobals:NSORT:gDataPopList_3" 773 869 PopupMenu popup_3,help={"Choose the dataset with the highest overall q-value (shortest detector distance), or NONE if no third set desired"} 774 CheckBox AutoCheck,pos={14,310},size={100,20},title="Auto Scale",value=0 870 PopupMenu popup_4,pos={6.00,319.00},size={58.00,23.00},proc=HighestQPopMenuProc 871 PopupMenu popup_4,help={"Choose the dataset with the highest overall q-value (shortest detector distance), or NONE if no fourth set desired"} 872 PopupMenu popup_4,mode=1,popvalue="none",value= #"root:myGlobals:NSORT:gDataPopList_3" 873 CheckBox AutoCheck,pos={14,386},size={100,20},title="Auto Scale",value=0 775 874 CheckBox AutoCheck,help={"If checked, the scale factor will be automatically determined, if not checked, the current values in the fields will be used"} 776 CheckBox PreviewCheck,pos={15, 369},size={74,14},title="Preview Only",value= 0777 CheckBox WarningCheck,pos={111, 369},size={93,14},title="Overlap warning?",value= 1875 CheckBox PreviewCheck,pos={15,465},size={74,14},title="Preview Only",value= 0 876 CheckBox WarningCheck,pos={111,465},size={93,14},title="Overlap warning?",value= 1 778 877 EndMacro 779 878 … … 801 900 802 901 Variable/G root:myGlobals:NSORT:gScale2_3 = varNum 902 End 903 904 //sets the scale factor (multiplicative) between sets 3 and 4 905 //re-sets the global variable 906 // 907 Function SetScale_34(ctrlName,varNum,varStr,varName) : SetVariableControl 908 String ctrlName 909 Variable varNum 910 String varStr 911 String varName 912 913 Variable/G root:myGlobals:NSORT:gScale3_4 = varNum 803 914 End 804 915 … … 821 932 CheckBox check2 value=1 822 933 CheckBox check3 value=0 934 CheckBox check4 value=0 823 935 Variable/G root:myGlobals:NSORT:gNormToNum = 2 824 936 break … … 828 940 CheckBox check2 value=0 829 941 CheckBox check3 value=1 942 CheckBox check4 value=0 830 943 Variable/G root:myGlobals:NSORT:gNormToNum = 3 944 break 945 Endif 946 if(cmpstr(ctrlName,"check4") == 0) 947 CheckBox check1 value=0 948 CheckBox check2 value=0 949 CheckBox check3 value=0 950 CheckBox check4 value=1 951 Variable/G root:myGlobals:NSORT:gNormToNum = 4 831 952 break 832 953 Endif … … 835 956 CheckBox check2 value=0 836 957 CheckBox check3 value=0 958 CheckBox check4 value=0 837 959 Variable/G root:myGlobals:NSORT:gNormToNum = 1 838 960 While(0) 961 839 962 ControlUpdate/A/W=NSORT_Panel 840 963 DoUpdate 841 964 842 965 End … … 898 1021 899 1022 1023 //when menu is popped, it gets a valid list to display and updates the control 1024 // - will be different, since set 3 can also be "none" if only 2 sets 1025 //are to be NSORTed 1026 // 1027 Function HighestQPopMenuProc(ctrlName,popNum,popStr) : PopupMenuControl 1028 String ctrlName 1029 Variable popNum 1030 String popStr 1031 1032 //add the option "none" to the file list (which should already end with a semicolon) 1033 String/G root:myGlobals:NSORT:gDataPopList_3 = "none;" + ReducedDataFileList("") 1034 1035 ControlUpdate/W=NSORT_Panel popup_4 1036 if(cmpstr(popStr,"none")==0) 1037 RemoveFromGraph/Z HighestQSet_i,TrimHighestQSet_i //remove the data from the graph 1038 Endif 1039 ControlInfo/W=NSORT_Panel popup_2 1040 if(cmpstr(S_Value,"none")==0) 1041 PopupMenu popup_3,win=NSORT_Panel,mode=1 //force "none" (item #1) to be the selection if medium is none 1042 PopupMenu popup_4,win=NSORT_Panel,mode=1 //force "none" (item #1) to be the selection if medium is none 1043 endif 1044 ControlInfo/W=NSORT_Panel popup_3 1045 if(cmpstr(S_Value,"none")==0) 1046 PopupMenu popup_4,win=NSORT_Panel,mode=1 //force "none" (item #1) to be the selection if medium is none 1047 endif 1048 return(0) 1049 End 1050 900 1051 //be sure to use the "Trim.." datasets that have had the bad points removed 901 1052 //and then do the scaling based on the choices in the panel … … 906 1057 907 1058 NVAR normTo = root:myGlobals:NSORT:gNormToNum 908 Variable err=0,setNum,norm12,norm23 909 String fileStr="",tempName="",name1="",name2="",name3="",normToStr="" 1059 Variable err=0,setNum,norm12,norm23,norm34 1060 String fileStr="",tempName="",name1="",name2="",name3="",normToStr="",name4="" 910 1061 911 1062 //Set the number of output columns … … 915 1066 NVAR Columns2 = root:myGlobals:NSORT:gColumns2 916 1067 NVAR Columns3 = root:myGlobals:NSORT:gColumns3 917 if( (Columns1 == 3) || (Columns2 == 3) || (Columns3 == 3) ) 1068 NVAR Columns4 = root:myGlobals:NSORT:gColumns4 1069 if( (Columns1 == 3) || (Columns2 == 3) || (Columns3 == 3) || (Columns4 == 3) ) 918 1070 numOutputColumns = 3 919 1071 else 920 if( (Columns1 == 6) && (Columns2 == 6) && ((Columns3 == 0) || (Columns3 == 6)) )1072 if( (Columns1 == 6) && (Columns2 == 6) && ((Columns3 == 0) || (Columns3 == 6)) || (Columns4 == 6) ) 921 1073 numOutputColumns = 6 922 1074 endif … … 971 1123 //////end load file3 972 1124 1125 //load file4 , if necessary 1126 ControlInfo/W=NSORT_Panel popup_4 1127 fileStr = S_Value 1128 name4 = fileStr 1129 setNum = 4 1130 if(cmpstr(fileStr,"none") == 0) 1131 //do nothing 1132 else 1133 //get a valid file based on this partialName and catPathName 1134 tempName = FindValidFilename(fileStr) 1135 1136 //prepend path to tempName for read routine 1137 PathInfo catPathName 1138 tempName = S_path + tempName 1139 err = LoadDataForNSORT(tempName,setNum) 1140 Endif 1141 //////end load file4 1142 1143 973 1144 //assign filename of file to normalize to 974 if(normTo == 1) 975 normToStr = name1 976 else 977 if(normTo == 2) 1145 switch(normTo) 1146 case 1: 1147 normToStr = name1 1148 break 1149 case 2: 978 1150 normToStr = name2 979 else 1151 break 1152 case 3: 980 1153 normToStr = name3 981 Endif 982 Endif 1154 break 1155 case 4: 1156 normToStr = name4 1157 break 1158 endswitch 1159 983 1160 984 1161 Variable n1,n2,n12,num2 985 1162 Variable n3,n123 1163 Variable n4,n1234 986 1164 987 1165 if(numOutputColumns == 3) //Start the 3-column specific stuff here. … … 1071 1249 ControlInfo/W=NSORT_Panel PreviewCheck 1072 1250 if( V_Value==0 ) //if zero skip the preview and write out the file 1073 err=WriteNSORTedFile(q12,i12,sig12,name1,name2,name3,n ormToStr,norm12,norm23)1251 err=WriteNSORTedFile(q12,i12,sig12,name1,name2,name3,name4,normToStr,norm12,norm23,norm34) 1074 1252 endif 1075 1253 //cleanup waves before exiting … … 1161 1339 ControlInfo/W=NSORT_Panel PreviewCheck 1162 1340 if( V_Value==0 ) //if zero skip the preview and write out the file 1163 err=WriteNSORTedFile(q123,i123,sig123,name1,name2,name3,n ormToStr,norm12,norm23)1341 err=WriteNSORTedFile(q123,i123,sig123,name1,name2,name3,name4,normToStr,norm12,norm23,norm34) 1164 1342 endif 1165 1343 //cleanup waves before exiting 1166 1344 KillWaves/Z q12,i12,sig12,q123,i123,sig123 1345 1346 1347 //do we need to continue, or write out the set here and stop? 1348 if(cmpstr(name4,"none") == 0) 1349 //stop here 1350 norm34 = 1 //norm34 was not used 1351 Variable/G root:myGlobals:NSORT:gScale3_4 = 1 1352 //If any of them have three columns write three column data 1353 1354 ControlInfo/W=NSORT_Panel PreviewCheck 1355 if( V_Value==0 ) //if zero skip the preview and write out the file 1356 err=WriteNSORTedFile(q123,i123,sig123,name1,name2,name3,name4,normToStr,norm12,norm23,norm34) 1357 endif 1358 //cleanup waves before exiting 1359 KillWaves/Z q123,i123,sig123 1360 return err 1361 Endif 1362 1363 //need to add the fourth file... which was already loaded at the top of the function 1364 ///// 1365 //order points in sets 123-4, indexing overlap region 1366 //put result in temporary waves 1367 WaveStats/Q q123 1368 n123 = V_npnts 1369 WaveStats/Q $"root:HighestQSet:TrimHighestQSet_q" 1370 n4 = V_npnts 1371 n1234 = n123 + n4 1372 1373 Make/O/N=(n1234) q1234,i1234,sig1234 1374 WAVE highestq = $"root:HighestQSet:TrimHighestQSet_q" 1375 WAVE highesti = $"root:HighestQSet:TrimHighestQSet_i" 1376 WAVE highests = $"root:HighestQSet:TrimHighestQSet_s" 1377 1378 q1234[0,n123-1] = q123[p] 1379 q1234[n12,n123+n4-1]= highestq[p-n123] 1380 i1234[0,n123-1] = i123[p] 1381 i1234[n12,n123+n4-1]= highesti[p-n123] 1382 sig1234[0,n123-1] = sig123[p] 1383 sig1234[n12,n123+n4-1]= highests[p-n123] 1384 1385 Sort q1234, q1234,i1234,sig1234 1386 ///////////////// 1387 1388 //find the maximum point number of set 2 in the overlap region 1389 FindLevel/P/Q highestq,(q123[n123-1]) 1390 num2 = trunc(V_levelX) 1391 //Print "num2 = ",num2 1392 1393 if (auto) 1394 //there must be overlap points to use auto-scaling 1395 if(numtype(num2) != 0) 1396 Abort "There are no data points in the overlap region. Either reduce the number of deleted points or use manual scaling." 1397 endif 1398 //do auto-scaling of data 1399 norm34 = NCNR_GetScalingInOverlap(num2,q123,i123,highestq,highesti) 1400 //Set the global variable for the 123 - 4 scale factor 1401 Variable/G root:myGlobals:NSORT:gScale3_4 = norm34 1402 else 1403 //use the value from the panel ( which is the global) 1404 NVAR temp34 = root:myGlobals:NSORT:gScale3_4 1405 norm34 = temp34 1406 Endif 1407 1408 // normalization 1409 switch (normTo) 1410 case 1: 1411 case 2: 1412 case 3: 1413 //normalize to first or second or third file, so multiply fourth by norm34 1414 highesti *= norm34 1415 highests *= norm34 1416 break 1417 case 4: 1418 //normalize to FOURTH file, 123 by multiplicative factor 1/norm34 1419 norm34 = 1/norm34 1420 i123 *= norm34 1421 sig123 *= norm34 1422 // for the display, scale the trimmed sets 1 and 2 and 3 1423 lowi *= norm34 1424 lows *= norm34 1425 medi *= norm34 1426 meds *= norm34 1427 highi *= norm34 1428 highs *= norm34 1429 break 1430 endswitch 1431 1432 ControlUpdate/A/W=NSORT_Panel 1433 DoUpdate 1434 1435 //Print "NSORT-ed ",name1," + ", name2, " + ", name3 1436 //Print "normalized to ",normTo 1437 //Print "multiplicative factor 1-2 = ",norm12," multiplicative factor 12 - 3 = ",norm23 1438 1439 1440 Make/O/N=(n1234) q1234,i1234,sig1234 1441 q1234[0,n123-1] = q123[p] 1442 q1234[n123,n123+n4-1]= highestq[p-n123] 1443 i1234[0,n123-1] = i123[p] 1444 i1234[n123,n123+n4-1]= highesti[p-n123] 1445 sig1234[0,n123-1] = sig123[p] 1446 sig1234[n123,n123+n4-1]= highests[p-n123] 1447 1448 Sort q123, q123,i123,sig123 1449 //at this point 12 - 3 are combined 1450 //write out the set here and stop 1451 1452 ControlInfo/W=NSORT_Panel PreviewCheck 1453 if( V_Value==0 ) //if zero skip the preview and write out the file 1454 err=WriteNSORTedFile(q123,i123,sig123,name1,name2,name3,name4,normToStr,norm12,norm23,norm34) 1455 endif 1456 //cleanup waves before exiting 1457 KillWaves/Z q12,i12,sig12,q123,i123,sig123 1458 1459 1460 1461 1167 1462 //combined dataset will already be displayed if the NSORT_Graph is open 1168 1463 … … 1188 1483 WAVE lows = $"root:LowQSet:TrimLowQSet_s" 1189 1484 WAVE meds = $"root:MedQSet:TrimMedQSet_s" 1190 // WAVE lowsq = $"root:LowQSet:TrimLowQSet_sq"1191 // WAVE medsq = $"root:MedQSet:TrimMedQSet_sq"1192 // WAVE lowqb = $"root:LowQSet:TrimLowQSet_qb"1193 // WAVE medqb = $"root:MedQSet:TrimMedQSet_qb"1194 // WAVE lowfs = $"root:LowQSet:TrimLowQSet_fs"1195 // WAVE medfs = $"root:MedQSet:TrimMedQSet_fs"1196 1485 WAVE lowres = $"root:LowQSet:TrimLowQSet_res" 1197 1486 WAVE medres = $"root:MedQSet:TrimMedQSet_res" … … 1209 1498 fs12[0,n1-1] = lowres[p][2] 1210 1499 fs12[n1,n1+n2-1]= medres[p-n1][2] 1211 // res12[0,n1-1][0]=lowres[p][0]1212 // res12[n1,n1+n2-1][0]=medres[p-n1][0]1213 // res12[0,n1-1][1]=lowres[p][1]1214 // res12[n1,n1+n2-1][1]=medres[p-n1][1]1215 // res12[0,n1-1][2]=lowres[p][2]1216 // res12[n1,n1+n2-1][2]=medres[p-n1][2]1217 1500 1218 1501 … … 1273 1556 fs12[0,n1-1] = lowres[p][2] 1274 1557 fs12[n1,n1+n2-1]= medres[p-n1][2] 1275 // res12[0,n1-1][0]=lowres[p][0]1276 // res12[n1,n1+n2-1][0]=medres[p-n1][0]1277 // res12[0,n1-1][1]=lowres[p][1]1278 // res12[n1,n1+n2-1][1]=medres[p-n1][1]1279 // res12[0,n1-1][2]=lowres[p][2]1280 // res12[n1,n1+n2-1][2]=medres[p-n1][2]1281 1558 1282 1559 … … 1294 1571 res12[][1] = qb12[p] 1295 1572 res12[][2] = fs12[p] 1296 err=WriteNSORTedFile(q12,i12,sig12,name1,name2,name3,n ormToStr,norm12,norm23,res=res12)1573 err=WriteNSORTedFile(q12,i12,sig12,name1,name2,name3,name4,normToStr,norm12,norm23,norm34,res=res12) 1297 1574 endif 1298 1575 // always clean up waves before exiting … … 1316 1593 WAVE highi = $"root:HighQSet:TrimHighQSet_i" 1317 1594 WAVE highs = $"root:HighQSet:TrimHighQSet_s" 1318 // WAVE highsq = $"root:HighQSet:TrimHighQSet_sq"1319 // WAVE highqb = $"root:HighQSet:TrimHighQSet_qb"1320 // WAVE highfs = $"root:HighQSet:TrimHighQSet_fs"1321 1595 WAVE highres = $"root:HighQSet:TrimHighQSet_res" 1322 1596 1323 1597 1324 1598 q123[0,n12-1] = q12[p] 1325 q123[n1 ,n12+n3-1]= highq[p-n12]1599 q123[n12,n12+n3-1]= highq[p-n12] 1326 1600 i123[0,n12-1] = i12[p] 1327 i123[n1 ,n12+n3-1]= highi[p-n12]1601 i123[n12,n12+n3-1]= highi[p-n12] 1328 1602 sig123[0,n12-1] = sig12[p] 1329 sig123[n1 ,n12+n3-1]= highs[p-n12]1603 sig123[n12,n12+n3-1]= highs[p-n12] 1330 1604 sq123[0,n12-1] = sq12[p] 1331 sq123[n1 ,n12+n3-1]= highres[p-n12][0]1605 sq123[n12,n12+n3-1]= highres[p-n12][0] 1332 1606 qb123[0,n12-1] = qb12[p] 1333 qb123[n1 ,n12+n3-1]= highres[p-n12][1]1607 qb123[n12,n12+n3-1]= highres[p-n12][1] 1334 1608 fs123[0,n12-1] = fs12[p] 1335 fs123[n1,n12+n3-1]= highres[p-n12][2] 1336 // res123[0,n12-1][0] = highres[p][0] 1337 // res123[n1,n12+n3-1][0] = highres[p-n12][0] 1338 // res123[0,n12-1][1] = highres[p][1] 1339 // res123[n1,n12+n3-1][1] = highres[p-n12][1] 1340 // res123[0,n12-1][2] = highres[p][2] 1341 // res123[n1,n12+n3-1][2] = highres[p-n12][2] 1609 fs123[n12,n12+n3-1]= highres[p-n12][2] 1342 1610 1343 1611 … … 1401 1669 fs123[0,n12-1] = fs12[p] 1402 1670 fs123[n12,n12+n3-1]= highres[p-n12][2] 1403 // res123[0,n12-1][0] = highres[p][0] 1404 // res123[n1,n12+n3-1][0] = highres[p-n12][0] 1405 // res123[0,n12-1][1] = highres[p][1] 1406 // res123[n1,n12+n3-1][1] = highres[p-n12][1] 1407 // res123[0,n12-1][2] = highres[p][2] 1408 // res123[n1,n12+n3-1][2] = highres[p-n12][2] 1671 1409 1672 1410 1673 Sort q123, q123,i123,sig123,sq123,qb123,fs123 1411 1674 //at this point 12 - 3 are combined 1412 //write out the set here and stop 1675 1676 //do we need to continue, or write out the set here and stop? 1677 if(cmpstr(name4,"none") == 0) 1678 //stop here 1679 1680 ControlInfo/W=NSORT_Panel PreviewCheck 1681 if( V_Value==0 ) //if zero skip the preview and write out the file 1682 res123[][0] = sq123[p] 1683 res123[][1] = qb123[p] 1684 res123[][2] = fs123[p] 1685 err=WriteNSORTedFile(q123,i123,sig123,name1,name2,name3,name4,normToStr,norm12,norm23,norm34,res=res123) 1686 endif 1687 // always clean up waves before exiting 1688 KillWaves/Z q12,i12,sig12,q123,i123,sig123,sq123,qb123,fs123 //,res123 1689 return err 1690 Endif 1691 1692 // new 2016 - combine the 4th data set 1693 1694 //need to add the fourth file... which was already loaded at the top of the function 1695 ///// 1696 //order points in sets 123-4, indexing overlap region 1697 //put result in temporary waves 1698 WaveStats/Q q123 1699 n123 = V_npnts 1700 WaveStats/Q $"root:HighestQSet:TrimHighestQSet_q" 1701 n4 = V_npnts 1702 n1234 = n123 + n4 1703 1704 Make/O/N=(n1234) q1234,i1234,sig1234,sq1234,qb1234,fs1234 1705 Make/O/N=(n1234,3) res1234 1706 WAVE highestq = $"root:HighestQSet:TrimHighestQSet_q" 1707 WAVE highesti = $"root:HighestQSet:TrimHighestQSet_i" 1708 WAVE highests = $"root:HighestQSet:TrimHighestQSet_s" 1709 WAVE highestres = $"root:HighestQSet:TrimHighestQSet_res" 1710 1711 1712 q1234[0,n123-1] = q123[p] 1713 q1234[n123,n123+n4-1]= highestq[p-n123] 1714 i1234[0,n123-1] = i123[p] 1715 i1234[n123,n123+n4-1]= highesti[p-n123] 1716 sig1234[0,n123-1] = sig123[p] 1717 sig1234[n123,n123+n4-1]= highests[p-n123] 1718 sq1234[0,n123-1] = sq123[p] 1719 sq1234[n123,n123+n4-1]= highestres[p-n123][0] 1720 qb1234[0,n123-1] = qb123[p] 1721 qb1234[n123,n123+n4-1]= highestres[p-n123][1] 1722 fs1234[0,n123-1] = fs123[p] 1723 fs1234[n123,n123+n4-1]= highestres[p-n123][2] 1724 1725 1726 Sort q1234, q1234,i1234,sig1234,sq1234,qb1234,fs1234 1727 ///////////////// 1728 1729 //find the maximum point number of set 2 in the overlap region 1730 FindLevel/P/Q highestq,(q123[n123-1]) 1731 num2 = trunc(V_levelX) 1732 //Print "num2 = ",num2 1733 1734 if (auto) 1735 //there must be overlap points to use auto-scaling 1736 if(numtype(num2) != 0) 1737 Abort "There are no data points in the overlap region. Either reduce the number of deleted points or use manual scaling." 1738 endif 1739 //do auto-scaling of data 1740 norm34 = NCNR_GetScalingInOverlap(num2,q123,i123,highestq,highesti) 1741 //Set the global variable for the 12 - 3 scale factor 1742 Variable/G root:myGlobals:NSORT:gScale3_4 = norm34 1743 else 1744 //use the value from the panel ( which is the global) 1745 NVAR temp34 = root:myGlobals:NSORT:gScale3_4 1746 norm34 = temp34 1747 Endif 1748 1749 // normalization 1750 switch (normTo) 1751 case 1: 1752 case 2: 1753 case 3: 1754 //normalize to first or second or third file, so multiply fourth by norm34 1755 highesti *= norm34 1756 highests *= norm34 1757 break 1758 case 4: 1759 //normalize to FOURTH file, 123 by multiplicative factor 1/norm34 1760 norm34 = 1/norm34 1761 i123 *= norm34 1762 sig123 *= norm34 1763 // for the display, scale the trimmed sets 1 and 2 and 3 1764 lowi *= norm34 1765 lows *= norm34 1766 medi *= norm34 1767 meds *= norm34 1768 highi *= norm34 1769 highs *= norm34 1770 break 1771 endswitch 1772 1773 1774 //Print "NSORT-ed ",name1," + ", name2, " + ", name3 1775 //Print "normalized to ",normTo 1776 //Print "multiplicative factor 1-2 = ",norm12," multiplicative factor 12 - 3 = ",norm23 1777 ControlUpdate/A/W=NSORT_Panel 1778 DoUpdate 1779 1780 Make/O/N=(n1234) q1234,i1234,sig1234 1781 Make/O/N=(n1234,3) res1234 1782 q1234[0,n123-1] = q123[p] 1783 q1234[n123,n123+n4-1]= highestq[p-n123] 1784 i1234[0,n123-1] = i123[p] 1785 i1234[n123,n123+n4-1]= highesti[p-n123] 1786 sig1234[0,n123-1] = sig123[p] 1787 sig1234[n123,n123+n4-1]= highests[p-n123] 1788 sq1234[0,n123-1] = sq123[p] 1789 sq1234[n123,n123+n4-1]= highestres[p-n123][0] 1790 qb1234[0,n123-1] = qb123[p] 1791 qb1234[n123,n123+n4-1]= highestres[p-n123][1] 1792 fs1234[0,n123-1] = fs123[p] 1793 fs1234[n123,n123+n4-1]= highestres[p-n123][2] 1794 1795 Sort q1234, q1234,i1234,sig1234,sq1234,qb1234,fs1234 1796 //at this point 123 - 4 are combined 1797 1798 //write out the set here and stop 1799 //stop here 1413 1800 1414 1801 ControlInfo/W=NSORT_Panel PreviewCheck 1415 1802 if( V_Value==0 ) //if zero skip the preview and write out the file 1416 res123 [][0] = sq123[p]1417 res123 [][1] = qb123[p]1418 res123 [][2] = fs123[p]1419 err=WriteNSORTedFile(q123 ,i123,sig123,name1,name2,name3,normToStr,norm12,norm23,res=res123)1803 res1234[][0] = sq1234[p] 1804 res1234[][1] = qb1234[p] 1805 res1234[][2] = fs1234[p] 1806 err=WriteNSORTedFile(q1234,i1234,sig1234,name1,name2,name3,name4,normToStr,norm12,norm23,norm34,res=res1234) 1420 1807 endif 1421 //cleanup waves before exiting 1422 KillWaves/Z q12,i12,sig12,q123,i123,sig123,sq123,qb123,fs123 //,res123 1808 // always clean up waves before exiting 1809 KillWaves/Z q123,i123,sig123,q1234,i1234,sig1234,sq1234,qb1234,fs1234 //,res1234 1810 return err 1811 1423 1812 //combined dataset will already be displayed if the NSORT_Graph is open 1424 1813 1425 1814 //////////////// 1426 1815 return err 1427 endif // End the 6-column specific stuff here 1428 1429 End 1816 endif // End the if(6-column) specific stuff here 1817 1818 1819 End 1820 1821 1822 1430 1823 1431 1824 … … 1488 1881 PopupMenu popup_3,win=NSORT_Panel,mode=(1) 1489 1882 endif 1883 End 1884 1885 ///////////////////////////////////////////////////////////// 1886 // testing, may speed up NSORT, NCNR-specific naming scheme of 1887 // run numbers and a run prefix 1888 // 1889 // it is assumed that you are combining data from the current reduction session, 1890 // so that the XML y/n hasn't changed. 1891 // 1892 // updated to use 4 files 1893 // 1894 // TODO: 1895 // -- still assuming ABS 1896 // 1897 Function Set4NSORTFiles(low,med,hi,highest,pref) 1898 Variable low,med,hi,highest 1899 String pref 1900 1901 //make strings from the numbers 1902 String absStr="",ext 1903 Variable popNum 1904 DoWindow/F NSORT_Panel 1905 1906 SVAR lowQPopStr = root:myGlobals:NSORT:gDataPopList 1907 SVAR medHiQPopStr = root:myGlobals:NSORT:gDataPopList_3 1908 1909 NVAR useXMLOutput = root:Packages:NIST:gXML_Write 1910 if(useXMLOutput) 1911 ext = ".ABSx" 1912 else 1913 ext = ".ABS" 1914 endif 1915 1916 //lowQ menu 1917 absStr = pref+RunDigitString(low)+ext 1918 popNum = WhichListItem(absStr,lowQPopStr,";",0) 1919 if(popNum == -1) 1920 Abort "Could not find file: " + absStr +" aborting... Be sure that your output format is the same as the input" 1921 endif 1922 popNum += 1 // add 1 to get the item number 1923 PopupMenu popup_1,win=NSORT_Panel,mode=(popNum) 1924 1925 //medQ (a different list for the popup) 1926 absStr = pref+RunDigitString(med)+ext 1927 popNum = WhichListItem(absStr,medHiQPopStr,";",0) 1928 if(popNum == -1) 1929 Abort "Could not find file: "+absStr+" aborting... Be sure that your output format is the same as the input" 1930 endif 1931 popNum += 1 // add 1 to get the item number 1932 PopupMenu popup_2,win=NSORT_Panel,mode=(popNum) 1933 1934 1935 //highQ (same pop list as medQ) 1936 if(hi != 0) 1937 absStr = pref+RunDigitString(hi)+ext 1938 popNum = WhichListItem(absStr,medHiQPopStr,";",0) 1939 if(popNum == -1) 1940 Abort "Could not find file: "+absStr+" aborting... Be sure that your output format is the same as the input" 1941 endif 1942 popNum += 1 // add 1 to get the item number 1943 PopupMenu popup_3,win=NSORT_Panel,mode=(popNum) 1944 else 1945 PopupMenu popup_3,win=NSORT_Panel,mode=(1) 1946 endif 1947 1948 //highestQ (same pop list as medQ) 1949 if(highest != 0) 1950 absStr = pref+RunDigitString(highest)+ext 1951 popNum = WhichListItem(absStr,medHiQPopStr,";",0) 1952 if(popNum == -1) 1953 Abort "Could not find file: "+absStr+" aborting... Be sure that your output format is the same as the input" 1954 endif 1955 popNum += 1 // add 1 to get the item number 1956 PopupMenu popup_4,win=NSORT_Panel,mode=(popNum) 1957 else 1958 PopupMenu popup_4,win=NSORT_Panel,mode=(1) 1959 endif 1960 1961 return(0) 1490 1962 End 1491 1963 … … 1692 2164 MedQPopMenuProc("",1,"") 1693 2165 HighQPopMenuProc("",1,"") 2166 HighestQPopMenuProc("",1,"") 1694 2167 1695 2168 // String savedDataFolder = GetDataFolder(1) // save … … 1697 2170 Wave MediumRun = root:myGlobals:CombineTable:MediumRun 1698 2171 Wave HighRun = root:myGlobals:CombineTable:HighRun 2172 Wave HighestRun = root:myGlobals:CombineTable:HighestRun 1699 2173 Wave/T prefix = root:myGlobals:CombineTable:Prefix 1700 2174 Wave/T saveName = root:myGlobals:CombineTable:saveName … … 1702 2176 Variable/G root:myGlobals:CombineTable:useTable=1 1703 2177 1704 Variable num=numpnts(lowRun),ii,lowFile,medFile,hiFile 2178 Variable num=numpnts(lowRun),ii,lowFile,medFile,hiFile,highestFile 1705 2179 String prefixStr = "" 1706 2180 Pathinfo catPathName … … 1712 2186 medFile = MediumRun[ii] 1713 2187 hiFile = highRun[ii] 2188 highestFile = highestRun[ii] 1714 2189 prefixStr = prefix[ii] 1715 2190 1716 Set 3NSORTFiles(lowFile,medFile,hiFile,prefixStr) //set the files and pop the NSORT popups2191 Set4NSORTFiles(lowFile,medFile,hiFile,highestFile,prefixStr) //set the files and pop the NSORT popups 1717 2192 1718 2193 //pass the new file name in as a global (ugh!) … … 1783 2258 Wave medium = $"root:myGlobals:CombineTable:MediumRun" 1784 2259 Wave high = $"root:myGlobals:CombineTable:HighRun" 2260 Wave highest = $"root:myGlobals:CombineTable:HighestRun" 1785 2261 Wave/T prefix = $"root:myGlobals:CombineTable:Prefix" 1786 2262 Wave/T saveName = $"root:myGlobals:CombineTable:SaveName" … … 1805 2281 endif 1806 2282 1807 1808 if( !(num==2 || num==3) ) 1809 Abort "invalid table selection - must select either 2 or 3 files to combine" 1810 endif 1811 Make/O/T/N=(3) tmpLbl 1812 Make/O/N=(3) tmpSDD,tmpRun 2283 if( !(num==2 || num==3 || num==4) ) 2284 Abort "invalid table selection - must select either 2 or 3 or 4 files to combine" 2285 endif 2286 Make/O/T/N=(4) tmpLbl 2287 Make/O/N=(4) tmpSDD,tmpRun 2288 2289 //initialize with fake values in case 2 or 3 files are combined 2290 tmpLbl = "" 2291 tmpSDD = 0.01 //fake sdd in meters to always be the "highest" Q 2292 tmpRun = 0 //pass a run number of zero to be later interpreted as "none" 2293 2294 //fill in the real values from the selection 1813 2295 for(ii=V_startRow;ii<=V_endRow;ii+=1) 1814 2296 tmpLbl[ii-V_startRow] = gLabels[ii] … … 1816 2298 tmpRun[ii-V_startRow] = gRunNumber[ii] 1817 2299 endfor 1818 if(num==2) // then "highest" q run needs to be forced to zero1819 ii=21820 tmpLbl[ii] = ""1821 tmpSDD[ii] = 0.01 //fake sdd in meters to always be the "highest" Q1822 tmpRun[ii] = 0 //pass a run number of zero to be later interpreted as "none"1823 endif2300 // if(num==2) // then "highest" q run needs to be forced to zero 2301 // ii=2 2302 // tmpLbl[ii] = "" 2303 // tmpSDD[ii] = 0.01 //fake sdd in meters to always be the "highest" Q 2304 // tmpRun[ii] = 0 //pass a run number of zero to be later interpreted as "none" 2305 // endif 1824 2306 Sort tmpSDD, tmpSDD,tmpLbl,tmpRun 1825 2307 … … 1827 2309 1828 2310 num=numpnts(low) 1829 InsertPoints num, 1, low,medium,high,prefix,SaveName 1830 low[num] = tmpRun[2] 1831 medium[num] = tmpRun[1] 1832 high[num] = tmpRun[0] 2311 InsertPoints num, 1, low,medium,high,highest,prefix,SaveName 2312 low[num] = tmpRun[3] 2313 medium[num] = tmpRun[2] 2314 high[num] = tmpRun[1] 2315 highest[num] = tmpRun[0] 1833 2316 prefix[num] = GetPrefixStrFromFile(filenames[ii]) 1834 2317 saveName[num] = saveStr … … 1905 2388 Make/O/N=0 $"root:myGlobals:CombineTable:MediumRun" 1906 2389 Make/O/N=0 $"root:myGlobals:CombineTable:HighRun" 2390 Make/O/N=0 $"root:myGlobals:CombineTable:HighestRun" 1907 2391 Make/O/T/N=0 $"root:myGlobals:CombineTable:Prefix" 1908 2392 Make/O/T/N=0 $"root:myGlobals:CombineTable:SaveName" … … 1911 2395 1912 2396 // make the second table 1913 AppendToTable/W=CombinePanel#RunNumbersToCombine LowRun,MediumRun,HighRun, Prefix,SaveName2397 AppendToTable/W=CombinePanel#RunNumbersToCombine LowRun,MediumRun,HighRun,HighestRun,Prefix,SaveName 1914 2398 1915 2399 SetDataFolder root: … … 1919 2403 1920 2404 ///////////////////////////////// 1921 2405 // currently unused 2406 // 1922 2407 Proc MakeCombineTable_byName() 1923 2408 NewDataFolder/O root:myGlobals:CombineTable //in case it doesn't exist yet … … 1928 2413 End 1929 2414 2415 // 2416 // currently unused 2417 // 1930 2418 // Another beta procedure, to allow files to be combined quickly 1931 2419 // - make 4 waves (text) with the low, med, hi, and wave names -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_BeamCenter.ipf
r982 r983 34 34 // ShowTools/A 35 35 36 PopupMenu popup_0,pos={20, 20},size={109,20},proc=SetDetPanelPopMenuProc,title="Detector Panel"36 PopupMenu popup_0,pos={20,50},size={109,20},proc=SetDetPanelPopMenuProc,title="Detector Panel" 37 37 PopupMenu popup_0,mode=1,popvalue="FL",value= #"\"FL;FR;FT;FB;MR;ML;MT;MB;B;\"" 38 38 PopupMenu popup_1,pos={200,20},size={157,20},proc=DetModelPopMenuProc,title="Model Function" 39 39 PopupMenu popup_1,mode=1,popvalue="BroadPeak",value= #"\"BroadPeak;other;\"" 40 40 PopupMenu popup_2,pos={20,20},size={109,20},title="Data Source"//,proc=SetFldrPopMenuProc 41 PopupMenu popup_2,mode=1,popvalue="VCALC",value= #"\"RAW;SAM;VCALC;\"" 42 41 43 Button button_0,pos={486,20},size={80,20},proc=DetFitGuessButtonProc,title="Guess" 42 44 Button button_1,pos={615,20},size={80,20},proc=DetFitButtonProc,title="Do Fit" 43 45 Button button_2,pos={744,20},size={80,20},proc=DetFitHelpButtonProc,title="Help" 46 Button button_3,pos={615,400},size={110,20},proc=WriteCtrButtonProc,title="Write Centers" 47 Button button_4,pos={730,400},size={110,20},proc=CtrTableButtonProc,title="Ctr table" 48 Button button_5,pos={730,440},size={110,20},proc=WriteCtrTableButtonProc,title="Write table" 49 44 50 45 51 … … 78 84 79 85 // edit the fit coefficients 80 Edit/W=(5 00,80,880,350)/HOST=# parameters_PeakPix2D,coef_PeakPix2D86 Edit/W=(550,80,880,370)/HOST=# parameters_PeakPix2D,coef_PeakPix2D 81 87 ModifyTable width(Point)=0 82 88 ModifyTable width(parameters_PeakPix2D)=120 … … 89 95 90 96 91 92 97 // 98 // function to choose which detector panel to display, and then to actually display it 99 // 93 100 Function SetDetPanelPopMenuProc(pa) : PopupMenuControl 94 101 STRUCT WMPopupAction &pa … … 126 133 127 134 135 // TODO - currently is hard-wired for the simulation path! 136 // need to make it more generic, especially for RAW data 137 // 138 // -- need to adjust the size of the image subwindows to keep the model 139 // calculation from spillon over onto the table (maybe just move the table) 140 // -- need to do something for panel "B". currently ignored 141 // -- currently the pixel sizes for "real" data is incorrect in the file 142 // and this is why the plots are incorrectly sized 143 // 128 144 // draw the selected panel and the model calculation, adjusting for the 129 145 // orientation of the panel and the number of pixels, and pixel sizes … … 132 148 133 149 // from the selection, find the path to the data 134 // TODO - currently is hard-wired for the simulation path! 135 // need to make it more generic, especially for RAW data 150 136 151 137 152 Variable xDim,yDim … … 139 154 Variable height, width 140 155 Variable left2,top2,right2,bottom2 156 Variable nPix_X,nPix_Y,pixSize_X,pixSize_Y 157 158 141 159 Wave dispW=root:curDispPanel 142 160 Wave cw = root:coef_PeakPix2D … … 154 172 // and the other to set the "common" values, some of which are based on the panel dimensions 155 173 156 // panel-specific values 157 strswitch(str) 158 case "FL": 159 NVAR nPix_X = root:Packages:NIST:VSANS:VCALC:gFront_L_nPix_X 160 NVAR nPix_Y = root:Packages:NIST:VSANS:VCALC:gFront_L_nPix_Y 161 NVAR pixSize_X = root:Packages:NIST:VSANS:VCALC:gFront_L_pixelX 162 NVAR pixSize_Y = root:Packages:NIST:VSANS:VCALC:gFront_L_pixelY 163 // wave newW = $("root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_"+str+":det_"+str) 164 break 165 case "FR": 166 NVAR nPix_X = root:Packages:NIST:VSANS:VCALC:gFront_R_nPix_X 167 NVAR nPix_Y = root:Packages:NIST:VSANS:VCALC:gFront_R_nPix_Y 168 NVAR pixSize_X = root:Packages:NIST:VSANS:VCALC:gFront_R_pixelX 169 NVAR pixSize_Y = root:Packages:NIST:VSANS:VCALC:gFront_R_pixelY 170 // wave newW = $("root:Packages:NIST:VSANS:VCALC:Front:det_"+str) 171 break 172 case "ML": 173 NVAR nPix_X = root:Packages:NIST:VSANS:VCALC:gMiddle_L_nPix_X 174 NVAR nPix_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_L_nPix_Y 175 NVAR pixSize_X = root:Packages:NIST:VSANS:VCALC:gMiddle_L_pixelX 176 NVAR pixSize_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_L_pixelY 177 // wave newW = $("root:Packages:NIST:VSANS:VCALC:Middle:det_"+str) 178 break 179 case "MR": 180 NVAR nPix_X = root:Packages:NIST:VSANS:VCALC:gMiddle_R_nPix_X 181 NVAR nPix_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_R_nPix_Y 182 NVAR pixSize_X = root:Packages:NIST:VSANS:VCALC:gMiddle_R_pixelX 183 NVAR pixSize_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_R_pixelY 184 // wave newW = $("root:Packages:NIST:VSANS:VCALC:Middle:det_"+str) 185 break 186 187 case "FT": 188 NVAR nPix_X = root:Packages:NIST:VSANS:VCALC:gFront_T_nPix_X 189 NVAR nPix_Y = root:Packages:NIST:VSANS:VCALC:gFront_T_nPix_Y 190 NVAR pixSize_X = root:Packages:NIST:VSANS:VCALC:gFront_T_pixelX 191 NVAR pixSize_Y = root:Packages:NIST:VSANS:VCALC:gFront_T_pixelY 192 // wave newW = $("root:Packages:NIST:VSANS:VCALC:Front:det_"+str) 193 break 194 case "FB": 195 NVAR nPix_X = root:Packages:NIST:VSANS:VCALC:gFront_B_nPix_X 196 NVAR nPix_Y = root:Packages:NIST:VSANS:VCALC:gFront_B_nPix_Y 197 NVAR pixSize_X = root:Packages:NIST:VSANS:VCALC:gFront_B_pixelX 198 NVAR pixSize_Y = root:Packages:NIST:VSANS:VCALC:gFront_B_pixelY 199 // wave newW = $("root:Packages:NIST:VSANS:VCALC:Front:det_"+str) 200 break 201 case "MT": 202 NVAR nPix_X = root:Packages:NIST:VSANS:VCALC:gMiddle_T_nPix_X 203 NVAR nPix_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_T_nPix_Y 204 NVAR pixSize_X = root:Packages:NIST:VSANS:VCALC:gMiddle_T_pixelX 205 NVAR pixSize_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_T_pixelY 206 // wave newW = $("root:Packages:NIST:VSANS:VCALC:Middle:det_"+str) 207 break 208 case "MB": 209 NVAR nPix_X = root:Packages:NIST:VSANS:VCALC:gMiddle_B_nPix_X 210 NVAR nPix_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_B_nPix_Y 211 NVAR pixSize_X = root:Packages:NIST:VSANS:VCALC:gMiddle_B_pixelX 212 NVAR pixSize_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_B_pixelY 213 // wave newW = $("root:Packages:NIST:VSANS:VCALC:Middle:det_"+str) 214 break 215 216 case "B": 217 return(0) //just exit 218 break 219 default: 220 return(0) //just exit 221 endswitch 222 223 wave newW = $("root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_"+str+":det_"+str) 174 // set the source of the data. not always VCALC anymore 175 String folder 176 ControlInfo popup_2 177 folder = S_Value 178 179 // TODO -- fix all of this mess 180 if(cmpstr(folder,"VCALC") == 0) 181 // panel-specific values 182 Variable VC_nPix_X = VCALC_get_nPix_X(str) 183 Variable VC_nPix_Y = VCALC_get_nPix_Y(str) 184 Variable VC_pixSize_X = VCALC_getPixSizeX(str) 185 Variable VC_pixSize_Y = VCALC_getPixSizeY(str) 186 // strswitch(str) 187 // case "FL": 188 // NVAR VC_nPix_X = root:Packages:NIST:VSANS:VCALC:gFront_L_nPix_X 189 // NVAR VC_nPix_Y = root:Packages:NIST:VSANS:VCALC:gFront_L_nPix_Y 190 // NVAR VC_pixSize_X = root:Packages:NIST:VSANS:VCALC:gFront_L_pixelX 191 // NVAR VC_pixSize_Y = root:Packages:NIST:VSANS:VCALC:gFront_L_pixelY 192 // // wave newW = $("root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_"+str+":det_"+str) 193 // break 194 // case "FR": 195 // NVAR VC_nPix_X = root:Packages:NIST:VSANS:VCALC:gFront_R_nPix_X 196 // NVAR VC_nPix_Y = root:Packages:NIST:VSANS:VCALC:gFront_R_nPix_Y 197 // NVAR VC_pixSize_X = root:Packages:NIST:VSANS:VCALC:gFront_R_pixelX 198 // NVAR VC_pixSize_Y = root:Packages:NIST:VSANS:VCALC:gFront_R_pixelY 199 // // wave newW = $("root:Packages:NIST:VSANS:VCALC:Front:det_"+str) 200 // break 201 // case "ML": 202 // NVAR VC_nPix_X = root:Packages:NIST:VSANS:VCALC:gMiddle_L_nPix_X 203 // NVAR VC_nPix_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_L_nPix_Y 204 // NVAR VC_pixSize_X = root:Packages:NIST:VSANS:VCALC:gMiddle_L_pixelX 205 // NVAR VC_pixSize_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_L_pixelY 206 // // wave newW = $("root:Packages:NIST:VSANS:VCALC:Middle:det_"+str) 207 // break 208 // case "MR": 209 // NVAR VC_nPix_X = root:Packages:NIST:VSANS:VCALC:gMiddle_R_nPix_X 210 // NVAR VC_nPix_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_R_nPix_Y 211 // NVAR VC_pixSize_X = root:Packages:NIST:VSANS:VCALC:gMiddle_R_pixelX 212 // NVAR VC_pixSize_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_R_pixelY 213 // // wave newW = $("root:Packages:NIST:VSANS:VCALC:Middle:det_"+str) 214 // break 215 // 216 // case "FT": 217 // NVAR VC_nPix_X = root:Packages:NIST:VSANS:VCALC:gFront_T_nPix_X 218 // NVAR VC_nPix_Y = root:Packages:NIST:VSANS:VCALC:gFront_T_nPix_Y 219 // NVAR VC_pixSize_X = root:Packages:NIST:VSANS:VCALC:gFront_T_pixelX 220 // NVAR VC_pixSize_Y = root:Packages:NIST:VSANS:VCALC:gFront_T_pixelY 221 // // wave newW = $("root:Packages:NIST:VSANS:VCALC:Front:det_"+str) 222 // break 223 // case "FB": 224 // NVAR VC_nPix_X = root:Packages:NIST:VSANS:VCALC:gFront_B_nPix_X 225 // NVAR VC_nPix_Y = root:Packages:NIST:VSANS:VCALC:gFront_B_nPix_Y 226 // NVAR VC_pixSize_X = root:Packages:NIST:VSANS:VCALC:gFront_B_pixelX 227 // NVAR VC_pixSize_Y = root:Packages:NIST:VSANS:VCALC:gFront_B_pixelY 228 // // wave newW = $("root:Packages:NIST:VSANS:VCALC:Front:det_"+str) 229 // break 230 // case "MT": 231 // NVAR VC_nPix_X = root:Packages:NIST:VSANS:VCALC:gMiddle_T_nPix_X 232 // NVAR VC_nPix_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_T_nPix_Y 233 // NVAR VC_pixSize_X = root:Packages:NIST:VSANS:VCALC:gMiddle_T_pixelX 234 // NVAR VC_pixSize_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_T_pixelY 235 // // wave newW = $("root:Packages:NIST:VSANS:VCALC:Middle:det_"+str) 236 // break 237 // case "MB": 238 // NVAR VC_nPix_X = root:Packages:NIST:VSANS:VCALC:gMiddle_B_nPix_X 239 // NVAR VC_nPix_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_B_nPix_Y 240 // NVAR VC_pixSize_X = root:Packages:NIST:VSANS:VCALC:gMiddle_B_pixelX 241 // NVAR VC_pixSize_Y = root:Packages:NIST:VSANS:VCALC:gMiddle_B_pixelY 242 // // wave newW = $("root:Packages:NIST:VSANS:VCALC:Middle:det_"+str) 243 // break 244 // 245 // case "B": 246 // return(0) //just exit 247 // break 248 // default: 249 // return(0) //just exit 250 // endswitch 251 252 // if VCALC declare this way 253 wave newW = $("root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_"+str+":det_"+str) 254 nPix_X = VC_nPix_X 255 nPix_Y = VC_nPix_Y 256 pixSize_X = VC_pixSize_X 257 pixSize_Y = VC_pixSize_Y 258 259 else 260 // TODO: if real data, need new declaration w/ data as the wave name 261 wave newW = $("root:Packages:NIST:VSANS:"+folder+":entry:entry:instrument:detector_"+str+":data") 262 263 nPix_X = V_getDet_pixel_num_x(folder,str) 264 nPix_Y = V_getDet_pixel_num_Y(folder,str) 265 pixSize_X = V_getDet_x_pixel_size(folder,str)/10 266 pixSize_Y = V_getDet_y_pixel_size(folder,str)/10 267 endif 268 224 269 225 270 Variable scale = 5 226 271 227 272 // common values (panel position, etc) 273 // TODO -- units are absolute, based on pixels in cm. make sure this is always correct 228 274 strswitch(str) 229 275 case "FL": … … 313 359 314 360 315 361 // TODO: 362 // -- allow other model functions as needed. 363 // 364 // Function to plot the specified 2D model for the detector 365 // 316 366 Function DetModelPopMenuProc(pa) : PopupMenuControl 317 367 STRUCT WMPopupAction &pa … … 357 407 End 358 408 359 360 361 362 409 // 410 // TODO -- currently hard-wired for the only fit function 411 // 412 Function WriteCtrButtonProc(ba) : ButtonControl 413 STRUCT WMButtonAction &ba 414 415 switch( ba.eventCode ) 416 case 2: // mouse up 417 // click code here 418 String detStr,fname 419 Wave coefW=root:coef_PeakPix2D 420 421 ControlInfo popup_0 422 detStr = S_Value 423 ControlInfo popup_2 424 fname = S_Value 425 426 V_putDet_beam_center_x(fname,detStr,coefW[9]) 427 V_putDet_beam_center_y(fname,detStr,coefW[10]) 428 429 break 430 case -1: // control being killed 431 break 432 endswitch 433 434 return 0 435 End 436 437 438 439 // TODO 440 // -- there is only a single fitting function available, and it's hard-wired 441 // -- what values are held during the fitting are hard-wired 442 // 443 // 444 // function to call the fit fucntion (2D) 445 // 363 446 Function DetFitButtonProc(ba) : ButtonControl 364 447 STRUCT WMButtonAction &ba … … 401 484 End 402 485 486 Function CtrTableButtonProc(ba) : ButtonControl 487 STRUCT WMButtonAction &ba 488 489 switch( ba.eventCode ) 490 case 2: // mouse up 491 // click code here 492 493 V_BCtrTable() 494 495 break 496 case -1: // control being killed 497 break 498 endswitch 499 500 return 0 501 End 502 503 Function WriteCtrTableButtonProc(ba) : ButtonControl 504 STRUCT WMButtonAction &ba 505 506 switch( ba.eventCode ) 507 case 2: // mouse up 508 // click code here 509 510 V_BeamCtr_WriteTable() 511 512 break 513 case -1: // control being killed 514 break 515 endswitch 516 517 return 0 518 End 403 519 404 520 // TODO 405 521 // -- some of this is hard-wired in 406 // -- this is still all lin terms of pixels, which still may not be what I want522 // -- this is still all in terms of pixels, which still may not be what I want 407 523 // -- the x-scale of the T/B panels is artificially compressed to "fake" 4mm per pixel in x-direction 408 524 // … … 447 563 end 448 564 565 // TODO 566 // these are "nominal" beam center values in pixels for the default VCALC configuration 567 // This function "restores" the data display to the "instrument" conditions where the panels overlap 568 // and is intended to be a TRUE view of what the detectors see - that is - the peaks should appear as rings, 569 // the view should be symmetric (if the real data is symmetric) 570 // 571 // -- this is currently linked to the Vdata panel 572 // -- will need to remove the hard-wired values and get the proper values from the data 573 // -- ?? will the "proper" values be in pixels or distance? All depends on how I display the data... 574 // -- may want to keep the nominal scaling values around in case the proper values aren' in the file 575 // 449 576 Function V_RestorePanels() 450 577 451 V_RescaleToBeamCenter("RAW","MB",64,55) 452 V_RescaleToBeamCenter("RAW","MT",64,-8.7) 453 V_RescaleToBeamCenter("RAW","MR",-8.1,64) 454 V_RescaleToBeamCenter("RAW","ML",55,64) 455 V_RescaleToBeamCenter("RAW","FB",64,55) 456 V_RescaleToBeamCenter("RAW","FT",64,-8.7) 457 V_RescaleToBeamCenter("RAW","FR",-8.1,64) 458 V_RescaleToBeamCenter("RAW","FL",55,64) 459 460 578 String fname="" 579 String detStr="" 580 Variable ii,xCtr,yCtr 581 582 //// this works if the proper centers are in the file - otherwise, it's a mess 583 // fname = "RAW" 584 // for(ii=0;ii<ItemsInList(ksDetectorListNoB);ii+=1) 585 // detStr = StringFromList(ii, ksDetectorListNoB, ";") 586 // xCtr = V_getDet_beam_center_x(fname,detStr) 587 // yCtr = V_getDet_beam_center_y(fname,detStr) 588 // V_RescaleToBeamCenter("RAW",detStr,xCtr,yCtr) 589 // endfor 590 591 592 // nominal values... better to use what's in the file 593 // 594 V_RescaleToBeamCenter("RAW","MB",64,55) 595 V_RescaleToBeamCenter("RAW","MT",64,-8.7) 596 V_RescaleToBeamCenter("RAW","MR",-8.1,64) 597 V_RescaleToBeamCenter("RAW","ML",55,64) 598 V_RescaleToBeamCenter("RAW","FB",64,55) 599 V_RescaleToBeamCenter("RAW","FT",64,-8.7) 600 V_RescaleToBeamCenter("RAW","FR",-8.1,64) 601 V_RescaleToBeamCenter("RAW","FL",55,64) 461 602 return(0) 462 603 end 463 604 605 // TODO 606 // these are "spread out" values for the data panels 607 // This view is meant to spread out the panels so there is (?Less) overlap so the panels can be 608 // viewed a bit easier. Isolation may still be preferred for detailed work. 609 // 610 // -- this is currently linked to the Vdata panel 611 // -- will need to remove the hard-wired values and get the proper values from the data 612 // -- ?? will the "proper" values be in pixels or distance? All depends on how I display the data... 613 // 464 614 Function V_SpreadOutPanels() 465 615 … … 474 624 return(0) 475 625 end 626 627 // function to display the beam center values for all of the detectors 628 // opens a separate table with the detector label, and the XY values 629 // ? Maybe list the XY pair in pixels and in real distance in the table 630 // 631 // TODO: 632 // -- need a way to use this or another table? as input to put the new/fitted/derived 633 // beam center values into the data folders, and ultimately into the data files on disk 634 // -- need read/Write for the XY in pixels, and in real-distance 635 // -- where are the temporary waves to be located? root? 636 // -- need way to access the Ctr_mm values 637 Function V_BCtrTable() 638 639 // order of the panel names will match the constant string 640 //FT;FB;FL;FR;MT;MB;ML;MR;B; 641 Make/O/T/N=9 panelW 642 Make/O/D/N=9 xCtr_pix,yCtr_pix,xCtr_mm,yCtr_mm 643 DoWindow/F BCtrTable 644 if(V_flag == 0) 645 Edit/W=(547,621,1076,943)/N=BCtrTable panelW,xCtr_pix,yCtr_pix,xCtr_mm,yCtr_mm 646 endif 647 648 Variable ii 649 String detStr,fname 650 651 fname = "RAW" 652 for(ii=0;ii<ItemsInList(ksDetectorListAll);ii+=1) 653 detStr = StringFromList(ii, ksDetectorListAll, ";") 654 panelW[ii] = detStr 655 xCtr_pix[ii] = V_getDet_beam_center_x(fname,detStr) 656 yCtr_pix[ii] = V_getDet_beam_center_y(fname,detStr) 657 // TODO 658 // and now the mm values 659 660 endfor 661 return(0) 662 End 663 664 // 665 // to write the new beam center values to a file on disk: 666 // V_writeDet_beam_center_x(fname,detStr,val) 667 // 668 // to write to a local WORK folder 669 // V_putDet_beam_center_x(fname,detStr,val) 670 // 671 Function V_BeamCtr_WriteTable() 672 673 String folder 674 675 Variable ii 676 String detStr,fname 677 678 Wave xCtr_pix = root:xCtr_pix 679 Wave yCtr_pix = root:yCtr_pix 680 Wave/T panelW = root:PanelW 681 682 ControlInfo popup_2 683 folder = S_Value 684 685 fname = folder 686 for(ii=0;ii<ItemsInList(ksDetectorListAll);ii+=1) 687 // detStr = StringFromList(ii, ksDetectorListAll, ";") 688 detStr = panelW[ii] 689 V_putDet_beam_center_x(fname,detStr,xCtr_pix[ii]) 690 V_putDet_beam_center_y(fname,detStr,yCtr_pix[ii]) 691 692 // TODO 693 // and now the mm values 694 695 endfor 696 return(0) 697 698 End -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_UtilityProcedures.ipf
r982 r983 181 181 String type 182 182 183 SetDataFolder root:Packages:NIST:VSANS:VCALC 184 185 strswitch(type) 186 case "FL": 187 NVAR pixSizeX = gFront_L_pixelX 188 break 189 case "FR": 190 NVAR pixSizeX = gFront_R_pixelX 191 break 192 case "FT": 193 NVAR pixSizeX = gFront_T_pixelX 194 break 195 case "FB": 196 NVAR pixSizeX = gFront_B_pixelX 197 break 198 199 case "ML": 200 NVAR pixSizeX = gMiddle_L_pixelX 201 break 202 case "MR": 203 NVAR pixSizeX = gMiddle_R_pixelX 204 break 205 case "MT": 206 NVAR pixSizeX = gMiddle_T_pixelX 207 break 208 case "MB": 209 NVAR pixSizeX = gMiddle_B_pixelX 210 break 211 212 case "B": 213 NVAR pixSizeX = gBack_pixelX 214 break 215 216 default: 217 Print "Detector type mismatch in V_getPixSizeX(type)" 218 setDataFolder root: 219 return(NaN) 220 endswitch 221 222 setDataFolder root: 183 Variable pixSizeX = V_getDet_x_pixel_size("VCALC",type) 184 185 // SetDataFolder root:Packages:NIST:VSANS:VCALC 186 // 187 // strswitch(type) 188 // case "FL": 189 // NVAR pixSizeX = gFront_L_pixelX 190 // break 191 // case "FR": 192 // NVAR pixSizeX = gFront_R_pixelX 193 // break 194 // case "FT": 195 // NVAR pixSizeX = gFront_T_pixelX 196 // break 197 // case "FB": 198 // NVAR pixSizeX = gFront_B_pixelX 199 // break 200 // 201 // case "ML": 202 // NVAR pixSizeX = gMiddle_L_pixelX 203 // break 204 // case "MR": 205 // NVAR pixSizeX = gMiddle_R_pixelX 206 // break 207 // case "MT": 208 // NVAR pixSizeX = gMiddle_T_pixelX 209 // break 210 // case "MB": 211 // NVAR pixSizeX = gMiddle_B_pixelX 212 // break 213 // 214 // case "B": 215 // NVAR pixSizeX = gBack_pixelX 216 // break 217 // 218 // default: 219 // Print "Detector type mismatch in V_getPixSizeX(type)" 220 // setDataFolder root: 221 // return(NaN) 222 // endswitch 223 // 224 // setDataFolder root: 223 225 224 226 return(pixSizeX) … … 229 231 String type 230 232 231 SetDataFolder root:Packages:NIST:VSANS:VCALC 232 233 strswitch(type) 234 case "FL": 235 NVAR pixSizeY = gFront_L_pixelY 236 break 237 case "FR": 238 NVAR pixSizeY = gFront_R_pixelY 239 break 240 case "FT": 241 NVAR pixSizeY = gFront_T_pixelY 242 break 243 case "FB": 244 NVAR pixSizeY = gFront_B_pixelY 245 break 246 247 case "ML": 248 NVAR pixSizeY = gMiddle_L_pixelY 249 break 250 case "MR": 251 NVAR pixSizeY = gMiddle_R_pixelY 252 break 253 case "MT": 254 NVAR pixSizeY = gMiddle_T_pixelY 255 break 256 case "MB": 257 NVAR pixSizeY = gMiddle_B_pixelY 258 break 259 260 case "B": 261 NVAR pixSizeY = gBack_pixelY 262 break 263 264 default: 265 Print "Detector type mismatch in V_getPixSizeY(type)" 266 SetDataFolder root: 267 return(NaN) 268 endswitch 269 270 setDatafolder root: 233 Variable pixSizeY = V_getDet_y_pixel_size("VCALC",type) 234 235 // SetDataFolder root:Packages:NIST:VSANS:VCALC 236 // 237 // strswitch(type) 238 // case "FL": 239 // NVAR pixSizeY = gFront_L_pixelY 240 // break 241 // case "FR": 242 // NVAR pixSizeY = gFront_R_pixelY 243 // break 244 // case "FT": 245 // NVAR pixSizeY = gFront_T_pixelY 246 // break 247 // case "FB": 248 // NVAR pixSizeY = gFront_B_pixelY 249 // break 250 // 251 // case "ML": 252 // NVAR pixSizeY = gMiddle_L_pixelY 253 // break 254 // case "MR": 255 // NVAR pixSizeY = gMiddle_R_pixelY 256 // break 257 // case "MT": 258 // NVAR pixSizeY = gMiddle_T_pixelY 259 // break 260 // case "MB": 261 // NVAR pixSizeY = gMiddle_B_pixelY 262 // break 263 // 264 // case "B": 265 // NVAR pixSizeY = gBack_pixelY 266 // break 267 // 268 // default: 269 // Print "Detector type mismatch in V_getPixSizeY(type)" 270 // SetDataFolder root: 271 // return(NaN) 272 // endswitch 273 // 274 // setDatafolder root: 271 275 272 276 return(pixSizeY) … … 278 282 String type 279 283 280 SetDataFolder root:Packages:NIST:VSANS:VCALC 281 282 strswitch(type) 283 case "FL": 284 NVAR nPix = gFront_L_nPix_X 285 break 286 case "FR": 287 NVAR nPix = gFront_R_nPix_X 288 break 289 case "FT": 290 NVAR nPix = gFront_T_nPix_X 291 break 292 case "FB": 293 NVAR nPix = gFront_B_nPix_X 294 break 295 296 case "ML": 297 NVAR nPix = gMiddle_L_nPix_X 298 break 299 case "MR": 300 NVAR nPix = gMiddle_R_nPix_X 301 break 302 case "MT": 303 NVAR nPix = gMiddle_T_nPix_X 304 break 305 case "MB": 306 NVAR nPix = gMiddle_B_nPix_X 307 break 308 309 case "B": 310 NVAR nPix = gBack_nPix_X 311 break 312 313 default: 314 Print "Detector type mismatch in VCALC_get_nPix_X(type)" 315 SetDataFolder root: 316 return(NaN) 317 endswitch 318 319 setDataFolder root: 284 Variable nPix = V_getDet_pixel_num_x("VCALC",type) 285 286 // SetDataFolder root:Packages:NIST:VSANS:VCALC 287 // 288 // strswitch(type) 289 // case "FL": 290 // NVAR nPix = gFront_L_nPix_X 291 // break 292 // case "FR": 293 // NVAR nPix = gFront_R_nPix_X 294 // break 295 // case "FT": 296 // NVAR nPix = gFront_T_nPix_X 297 // break 298 // case "FB": 299 // NVAR nPix = gFront_B_nPix_X 300 // break 301 // 302 // case "ML": 303 // NVAR nPix = gMiddle_L_nPix_X 304 // break 305 // case "MR": 306 // NVAR nPix = gMiddle_R_nPix_X 307 // break 308 // case "MT": 309 // NVAR nPix = gMiddle_T_nPix_X 310 // break 311 // case "MB": 312 // NVAR nPix = gMiddle_B_nPix_X 313 // break 314 // 315 // case "B": 316 // NVAR nPix = gBack_nPix_X 317 // break 318 // 319 // default: 320 // Print "Detector type mismatch in VCALC_get_nPix_X(type)" 321 // SetDataFolder root: 322 // return(NaN) 323 // endswitch 324 // 325 // setDataFolder root: 320 326 321 327 return(nPix) … … 326 332 String type 327 333 328 SetDataFolder root:Packages:NIST:VSANS:VCALC 329 330 strswitch(type) 331 case "FL": 332 NVAR nPix = gFront_L_nPix_Y 333 break 334 case "FR": 335 NVAR nPix = gFront_R_nPix_Y 336 break 337 case "FT": 338 NVAR nPix = gFront_T_nPix_Y 339 break 340 case "FB": 341 NVAR nPix = gFront_B_nPix_Y 342 break 343 344 case "ML": 345 NVAR nPix = gMiddle_L_nPix_Y 346 break 347 case "MR": 348 NVAR nPix = gMiddle_R_nPix_Y 349 break 350 case "MT": 351 NVAR nPix = gMiddle_T_nPix_Y 352 break 353 case "MB": 354 NVAR nPix = gMiddle_B_nPix_Y 355 break 356 357 case "B": 358 NVAR nPix = gBack_nPix_Y 359 break 360 361 default: 362 Print "Detector type mismatch in VCALC_get_nPix_Y(type)" 363 SetDataFolder root: 364 return(NaN) 365 endswitch 366 367 SetDataFolder root: 334 Variable nPix = V_getDet_pixel_num_y("VCALC",type) 335 336 // SetDataFolder root:Packages:NIST:VSANS:VCALC 337 // 338 // strswitch(type) 339 // case "FL": 340 // NVAR nPix = gFront_L_nPix_Y 341 // break 342 // case "FR": 343 // NVAR nPix = gFront_R_nPix_Y 344 // break 345 // case "FT": 346 // NVAR nPix = gFront_T_nPix_Y 347 // break 348 // case "FB": 349 // NVAR nPix = gFront_B_nPix_Y 350 // break 351 // 352 // case "ML": 353 // NVAR nPix = gMiddle_L_nPix_Y 354 // break 355 // case "MR": 356 // NVAR nPix = gMiddle_R_nPix_Y 357 // break 358 // case "MT": 359 // NVAR nPix = gMiddle_T_nPix_Y 360 // break 361 // case "MB": 362 // NVAR nPix = gMiddle_B_nPix_Y 363 // break 364 // 365 // case "B": 366 // NVAR nPix = gBack_nPix_Y 367 // break 368 // 369 // default: 370 // Print "Detector type mismatch in VCALC_get_nPix_Y(type)" 371 // SetDataFolder root: 372 // return(NaN) 373 // endswitch 374 // 375 // SetDataFolder root: 368 376 369 377 return(nPix) … … 419 427 /////////// procedure to concatenate I(q) files into a single file 420 428 // 421 // currently, no rescaling is done, just crude concatentate and sort 422 // 429 // currently, no rescaling is done, no trimming is done, just crude concatentate and sort 430 // 431 // TODO 432 // -- all of this needs to be done. There's nothing here... 433 // -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_VCALCPanel_MockUp.ipf
r982 r983 673 673 ///// FRONT DETECTOR BANKS 674 674 // dimensions for the detector banks (then get them in the drawing functions) 675 // Width and height are not part of the Nexus file definition, but are needed for VCALC drawing 676 // so keep them as variables 675 677 Variable/G gFront_LR_w = 384 //front bank, nominal LR panel width (mm) 676 678 Variable/G gFront_LR_h = 1000 … … 679 681 680 682 // SDD offset of T/B (decide on units??) 683 // for the Nexus file, the detector distance should already be corrected for the "setback" 684 // of the T/B panels. keep as VCALC variable 681 685 Variable/G gFront_SDDOffset = 300 // (mm) 682 686 687 683 688 // detector resolution (xy for each bank!) 684 Variable/G gFront_L_pixelX = 0.84 // (cm) these tubes are vertical 8.4 mm spacing (JGB 2/2106) 685 Variable/G gFront_L_pixelY = 0.8 // (cm) //!! now 8 mm, since nPix=128, rather than 256 686 Variable/G gFront_R_pixelX = 0.84 // (cm) 687 Variable/G gFront_R_pixelY = 0.8 // (cm) 688 689 Variable/G gFront_T_pixelX = 0.4 // (cm) these tubes are horizontal 690 Variable/G gFront_T_pixelY = 0.84 // (cm) 691 Variable/G gFront_B_pixelX = 0.4 // (cm) 692 Variable/G gFront_B_pixelY = 0.84 // (cm) 689 Make/O/D/N=1 :entry:entry:instrument:detector_FL:x_pixel_size = 0.84 // (cm) these tubes are vertical 8.4 mm x-spacing (JGB 2/2106) 690 Make/O/D/N=1 :entry:entry:instrument:detector_FL:y_pixel_size = 0.8 // (cm) //!! now 8 mm, since nPix=128, rather than 256 691 Make/O/D/N=1 :entry:entry:instrument:detector_FR:x_pixel_size = 0.84 692 Make/O/D/N=1 :entry:entry:instrument:detector_FR:y_pixel_size = 0.8 693 //T/B 694 Make/O/D/N=1 :entry:entry:instrument:detector_FT:x_pixel_size = 0.4 //these tubes are horizontal 695 Make/O/D/N=1 :entry:entry:instrument:detector_FT:y_pixel_size = 0.84 696 Make/O/D/N=1 :entry:entry:instrument:detector_FB:x_pixel_size = 0.4 697 Make/O/D/N=1 :entry:entry:instrument:detector_FB:y_pixel_size = 0.84 698 699 // Variable/G gFront_L_pixelX = 0.84 700 // Variable/G gFront_L_pixelY = 0.8 701 // Variable/G gFront_R_pixelX = 0.84 // (cm) 702 // Variable/G gFront_R_pixelY = 0.8 // (cm) 703 // 704 // Variable/G gFront_T_pixelX = 0.4 // (cm) these tubes are horizontal 705 // Variable/G gFront_T_pixelY = 0.84 // (cm) 706 // Variable/G gFront_B_pixelX = 0.4 // (cm) 707 // Variable/G gFront_B_pixelY = 0.84 // (cm) 693 708 694 709 // number of pixels in each bank (this can be modified at acquisition time, so it must be adjustable here) 695 Variable/G gFront_L_nPix_X = 48 // == number of tubes 696 Variable/G gFront_L_nPix_Y = 128 // == pixels in vertical direction (was 256, John says likely will run @ 128 9/2015) 697 Variable/G gFront_R_nPix_X = 48 // == number of tubes 698 Variable/G gFront_R_nPix_Y = 128 // == pixels in vertical direction 699 Variable/G gFront_T_nPix_X = 128 // == pixels in horizontal direction 700 Variable/G gFront_T_nPix_Y = 48 // == number of tubes 701 Variable/G gFront_B_nPix_X = 128 // == pixels in horizontal direction 702 Variable/G gFront_B_nPix_Y = 48 // == number of tubes 710 Make/O/D/N=1 :entry:entry:instrument:detector_FL:pixel_num_x = 48 // == number of tubes 711 Make/O/D/N=1 :entry:entry:instrument:detector_FL:pixel_num_y = 128 // == pixels in vertical direction (was 256, John says likely will run @ 128 9/2015) 712 Make/O/D/N=1 :entry:entry:instrument:detector_FR:pixel_num_x = 48 // == number of tubes 713 Make/O/D/N=1 :entry:entry:instrument:detector_FR:pixel_num_y = 128 // == pixels in vertical direction 714 Make/O/D/N=1 :entry:entry:instrument:detector_FT:pixel_num_x = 128 // == pixels in horizontal direction 715 Make/O/D/N=1 :entry:entry:instrument:detector_FT:pixel_num_y = 48 // == number of tubes 716 Make/O/D/N=1 :entry:entry:instrument:detector_FB:pixel_num_x = 128 // == pixels in horizontal direction 717 Make/O/D/N=1 :entry:entry:instrument:detector_FB:pixel_num_y = 48 // == number of tubes 718 719 // Variable/G gFront_L_nPix_X = 48 // == number of tubes 720 // Variable/G gFront_L_nPix_Y = 128 // == pixels in vertical direction (was 256, John says likely will run @ 128 9/2015) 721 // Variable/G gFront_R_nPix_X = 48 // == number of tubes 722 // Variable/G gFront_R_nPix_Y = 128 // == pixels in vertical direction 723 // Variable/G gFront_T_nPix_X = 128 // == pixels in horizontal direction 724 // Variable/G gFront_T_nPix_Y = 48 // == number of tubes 725 // Variable/G gFront_B_nPix_X = 128 // == pixels in horizontal direction 726 // Variable/G gFront_B_nPix_Y = 48 // == number of tubes 703 727 704 728 … … 706 730 707 731 ///// MIDDLE DETECTOR BANKS 732 // Width and height are not part of the Nexus file definition, but are needed for VCALC drawing 733 // so keep them as variables 708 734 Variable/G gMiddle_LR_w = 384 //middle bank, nominal LR panel width (mm) 709 735 Variable/G gMiddle_LR_h = 1000 … … 711 737 Variable/G gMiddle_TB_h = 384 712 738 // SDD offset of T/B (decide on units??) 739 // for the Nexus file, the detector distance should already be corrected for the "setback" 740 // of the T/B panels. keep as VCALC variable 713 741 Variable/G gMiddle_SDDOffset = 300 // (mm) 714 742 715 743 // detector resolution (xy for each bank!) 716 Variable/G gMiddle_L_pixelX = 0.84 // (cm) these tubes are vertical 717 Variable/G gMiddle_L_pixelY = 0.8 // (cm) 718 Variable/G gMiddle_R_pixelX = 0.84 // (cm) 719 Variable/G gMiddle_R_pixelY = 0.8 // (cm) 720 721 Variable/G gMiddle_T_pixelX = 0.4 // (cm) these tubes are horizontal 722 Variable/G gMiddle_T_pixelY = 0.84 // (cm) 723 Variable/G gMiddle_B_pixelX = 0.4 // (cm) 724 Variable/G gMiddle_B_pixelY = 0.84 // (cm) 744 Make/O/D/N=1 :entry:entry:instrument:detector_ML:x_pixel_size = 0.84 // (cm) these tubes are vertical 8.4 mm x-spacing (JGB 2/2106) 745 Make/O/D/N=1 :entry:entry:instrument:detector_ML:y_pixel_size = 0.8 // (cm) //!! now 8 mm, since nPix=128, rather than 256 746 Make/O/D/N=1 :entry:entry:instrument:detector_MR:x_pixel_size = 0.84 747 Make/O/D/N=1 :entry:entry:instrument:detector_MR:y_pixel_size = 0.8 748 //T/B 749 Make/O/D/N=1 :entry:entry:instrument:detector_MT:x_pixel_size = 0.4 //these tubes are horizontal 750 Make/O/D/N=1 :entry:entry:instrument:detector_MT:y_pixel_size = 0.84 751 Make/O/D/N=1 :entry:entry:instrument:detector_MB:x_pixel_size = 0.4 752 Make/O/D/N=1 :entry:entry:instrument:detector_MB:y_pixel_size = 0.84 753 754 // Variable/G gMiddle_L_pixelX = 0.84 // (cm) these tubes are vertical 755 // Variable/G gMiddle_L_pixelY = 0.8 // (cm) 756 // Variable/G gMiddle_R_pixelX = 0.84 // (cm) 757 // Variable/G gMiddle_R_pixelY = 0.8 // (cm) 758 // 759 // Variable/G gMiddle_T_pixelX = 0.4 // (cm) these tubes are horizontal 760 // Variable/G gMiddle_T_pixelY = 0.84 // (cm) 761 // Variable/G gMiddle_B_pixelX = 0.4 // (cm) 762 // Variable/G gMiddle_B_pixelY = 0.84 // (cm) 725 763 726 764 // number of pixels in each bank (this can be modified at acquisition time, so it must be adjustable here) 727 Variable/G gMiddle_L_nPix_X = 48 // == number of tubes 728 Variable/G gMiddle_L_nPix_Y = 128 // == pixels in vertical direction (was 256, John says likely will run @ 128 9/2015) 729 Variable/G gMiddle_R_nPix_X = 48 // == number of tubes 730 Variable/G gMiddle_R_nPix_Y = 128 // == pixels in vertical direction 731 Variable/G gMiddle_T_nPix_X = 128 // == pixels in horizontal direction 732 Variable/G gMiddle_T_nPix_Y = 48 // == number of tubes 733 Variable/G gMiddle_B_nPix_X = 128 // == pixels in horizontal direction 734 Variable/G gMiddle_B_nPix_Y = 48 // == number of tubes 765 Make/O/D/N=1 :entry:entry:instrument:detector_ML:pixel_num_x = 48 // == number of tubes 766 Make/O/D/N=1 :entry:entry:instrument:detector_ML:pixel_num_y = 128 // == pixels in vertical direction (was 256, John says likely will run @ 128 9/2015) 767 Make/O/D/N=1 :entry:entry:instrument:detector_MR:pixel_num_x = 48 // == number of tubes 768 Make/O/D/N=1 :entry:entry:instrument:detector_MR:pixel_num_y = 128 // == pixels in vertical direction 769 Make/O/D/N=1 :entry:entry:instrument:detector_MT:pixel_num_x = 128 // == pixels in horizontal direction 770 Make/O/D/N=1 :entry:entry:instrument:detector_MT:pixel_num_y = 48 // == number of tubes 771 Make/O/D/N=1 :entry:entry:instrument:detector_MB:pixel_num_x = 128 // == pixels in horizontal direction 772 Make/O/D/N=1 :entry:entry:instrument:detector_MB:pixel_num_y = 48 // == number of tubes 773 774 // Variable/G gMiddle_L_nPix_X = 48 // == number of tubes 775 // Variable/G gMiddle_L_nPix_Y = 128 // == pixels in vertical direction (was 256, John says likely will run @ 128 9/2015) 776 // Variable/G gMiddle_R_nPix_X = 48 // == number of tubes 777 // Variable/G gMiddle_R_nPix_Y = 128 // == pixels in vertical direction 778 // Variable/G gMiddle_T_nPix_X = 128 // == pixels in horizontal direction 779 // Variable/G gMiddle_T_nPix_Y = 48 // == number of tubes 780 // Variable/G gMiddle_B_nPix_X = 128 // == pixels in horizontal direction 781 // Variable/G gMiddle_B_nPix_Y = 48 // == number of tubes 735 782 736 783 … … 741 788 Variable/G gBack_w = 320 //w and h for the back detector, (mm) 742 789 Variable/G gBack_h = 320 743 Variable/G gBack_pixelX = 0.1 // 1mm resolution (units of cm here) 744 Variable/G gBack_pixelY = 0.1 745 Variable/G gBack_nPix_X = 320 // detector pixels in x-direction 746 Variable/G gBack_nPix_Y = 320 790 791 Make/O/D/N=1 :entry:entry:instrument:detector_B:x_pixel_size = 0.1 // 1mm resolution (units of cm here) 792 Make/O/D/N=1 :entry:entry:instrument:detector_B:y_pixel_size = 0.1 793 // Variable/G gBack_pixelX = 0.1 794 // Variable/G gBack_pixelY = 0.1 795 796 Make/O/D/N=1 :entry:entry:instrument:detector_B:pixel_num_x = 320 // detector pixels in x-direction 797 Make/O/D/N=1 :entry:entry:instrument:detector_B:pixel_num_y = 320 798 // Variable/G gBack_nPix_X = 320 799 // Variable/G gBack_nPix_Y = 320 747 800 748 801 … … 754 807 755 808 SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_FL 756 Make/O/D/N=( root:Packages:NIST:VSANS:VCALC:gFront_L_nPix_X,root:Packages:NIST:VSANS:VCALC:gFront_L_nPix_Y) det_FL809 Make/O/D/N=(pixel_num_x[0],pixel_num_y[0]) det_FL 757 810 Duplicate/O det_FL qTot_FL,qx_FL,qy_FL,qz_FL 758 811 759 812 SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_FR 760 Make/O/D/N=( root:Packages:NIST:VSANS:VCALC:gFront_R_nPix_X,root:Packages:NIST:VSANS:VCALC:gFront_R_nPix_Y) det_FR813 Make/O/D/N=(pixel_num_x[0],pixel_num_y[0]) det_FR 761 814 Duplicate/O det_FR qTot_FR,qx_FR,qy_FR,qz_FR 762 815 763 816 SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_FT 764 Make/O/D/N=( root:Packages:NIST:VSANS:VCALC:gFront_T_nPix_X,root:Packages:NIST:VSANS:VCALC:gFront_T_nPix_Y) det_FT817 Make/O/D/N=(pixel_num_x[0],pixel_num_y[0]) det_FT 765 818 Duplicate/O det_FT qTot_FT,qx_FT,qy_FT,qz_FT 766 819 767 820 SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_FB 768 Make/O/D/N=( root:Packages:NIST:VSANS:VCALC:gFront_B_nPix_X,root:Packages:NIST:VSANS:VCALC:gFront_B_nPix_Y) det_FB821 Make/O/D/N=(pixel_num_x[0],pixel_num_y[0]) det_FB 769 822 Duplicate/O det_FB qTot_FB,qx_FB,qy_FB,qz_FB 770 823 … … 775 828 776 829 SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_ML 777 Make/O/D/N=( root:Packages:NIST:VSANS:VCALC:gMiddle_L_nPix_X,root:Packages:NIST:VSANS:VCALC:gMiddle_L_nPix_Y) det_ML830 Make/O/D/N=(pixel_num_x[0],pixel_num_y[0]) det_ML 778 831 Duplicate/O det_ML qTot_ML,qx_ML,qy_ML,qz_ML 779 832 780 833 SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_MR 781 Make/O/D/N=( root:Packages:NIST:VSANS:VCALC:gMiddle_R_nPix_X,root:Packages:NIST:VSANS:VCALC:gMiddle_R_nPix_Y) det_MR834 Make/O/D/N=(pixel_num_x[0],pixel_num_y[0]) det_MR 782 835 Duplicate/O det_MR qTot_MR,qx_MR,qy_MR,qz_MR 783 836 784 837 SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_MT 785 Make/O/D/N=( root:Packages:NIST:VSANS:VCALC:gMiddle_T_nPix_X,root:Packages:NIST:VSANS:VCALC:gMiddle_T_nPix_Y) det_MT838 Make/O/D/N=(pixel_num_x[0],pixel_num_y[0]) det_MT 786 839 Duplicate/O det_MT qTot_MT,qx_MT,qy_MT,qz_MT 787 840 788 841 SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_MB 789 Make/O/D/N=( root:Packages:NIST:VSANS:VCALC:gMiddle_B_nPix_X,root:Packages:NIST:VSANS:VCALC:gMiddle_B_nPix_Y) det_MB842 Make/O/D/N=(pixel_num_x[0],pixel_num_y[0]) det_MB 790 843 Duplicate/O det_MB qTot_MB,qx_MB,qy_MB,qz_MB 791 844 … … 795 848 796 849 SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_B 797 Make/O/D/N=( root:Packages:NIST:VSANS:VCALC:gBack_nPix_X,root:Packages:NIST:VSANS:VCALC:gBack_nPix_Y) det_B850 Make/O/D/N=(pixel_num_x[0],pixel_num_y[0]) det_B 798 851 Duplicate/O det_B qTot_B,qx_B,qy_B,qz_B 799 852 -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_HDF5_RW_Utils.ipf
r982 r983 544 544 // wave as passed in, or if it will only write as DP. 545 545 // -- do I need to write separate functions for real, integer, etc.? 546 // -- the lines to create a missing group have been commented out to avoid filling 547 // in missing fields that should have been generated by the data writer. Need to make 548 // a separate function that will write and generate if needed, and use this in specific cases 549 // only if I really have to force it. 546 550 // 547 551 // -x change the /P=home to the user-defined data path (catPathName) … … 578 582 // groupName = "/" + NXentry_name + groupName 579 583 Print "groupName = ",groupName 584 HDF5OpenGroup /Z fileID , groupName, groupID 585 586 if(!groupID) 587 // don't create the group if the name isn't right -- throw up an error 588 //HDF5CreateGroup /Z fileID, groupName, groupID 589 err = 1 590 HDF5CloseFile /Z fileID 591 DoAlert 0, "HDF5 group does not exist "+groupName+varname 592 return(err) 593 else 594 // get attributes and save them 595 //HDF5ListAttributes /Z fileID, groupName this is returning null. expect it to return semicolon delimited list of attributes 596 //Wave attributes = S_HDF5ListAttributes 597 endif 598 599 HDF5SaveData /O /Z /IGOR=0 wav, groupID, varName 600 if (V_flag != 0) 601 err = 1 602 abort "Cannot save wave to HDF5 dataset " + varName 603 endif 604 605 606 //attributes - something could be added here as optional parameters and flagged 607 // String attributes = "units" 608 // Make/O/T/N=1 tmp 609 // tmp[0] = "dimensionless" 610 // HDF5SaveData /O /Z /IGOR=0 /A=attributes tmp, groupID, varName 611 // if (V_flag != 0) 612 // err = 1 613 // abort "Cannot save attributes to HDF5 dataset" 614 // endif 615 catch 616 617 endtry 618 619 // it is not necessary to close the group here. HDF5CloseFile will close the group as well 620 if(groupID) 621 HDF5CloseGroup /Z groupID 622 endif 623 624 if(fileID) 625 HDF5CloseFile /Z fileID 626 endif 627 628 setDataFolder $cDF 629 return err 630 end 631 632 //Write Wave 'wav' to hdf5 file 'fname' 633 //Based on code from ANSTO (N. Hauser. nha 8/1/09) 634 // 635 // TODO 636 // 637 // -x change the /P=home to the user-defined data path (catPathName) 638 // 639 Function V_WriteTextWaveToHDF(fname, groupName, varName, wav) 640 String fname, groupName, varName 641 Wave/T wav 642 643 variable err=0, fileID,groupID 644 String cDF = getDataFolder(1), temp 645 String NXentry_name 646 647 try 648 HDF5OpenFile/P=catPathName /Z fileID as fname //open file read-write 649 if(!fileID) 650 err = 1 651 abort "HDF5 file does not exist" 652 endif 653 654 //get the NXentry node name 655 HDF5ListGroup /TYPE=1 fileID, "/" 656 //remove trailing ; from S_HDF5ListGroup 657 658 Print "S_HDF5ListGroup = ",S_HDF5ListGroup 659 660 NXentry_name = S_HDF5ListGroup 661 NXentry_name = ReplaceString(";",NXentry_name,"") 662 if(strsearch(NXentry_name,":",0)!=-1) //more than one entry under the root node 663 err = 1 664 abort "More than one entry under the root node. Ambiguous" 665 endif 666 667 //concatenate NXentry node name and groupName 668 // SRK - NOV2015 - dropped this and require the full group name passed in 669 // groupName = "/" + NXentry_name + groupName 670 Print "groupName = ",groupName 671 580 672 HDF5OpenGroup /Z fileID , groupName, groupID 581 673 … … 612 704 613 705 endtry 614 615 // it is not necessary to close the group here. HDF5CloseFile will close the group as well 706 616 707 if(groupID) 617 708 HDF5CloseGroup /Z groupID … … 626 717 end 627 718 628 //Write Wave 'wav' to hdf5 file 'fname'629 //Based on code from ANSTO (N. Hauser. nha 8/1/09)630 //631 // TODO632 //633 // -x change the /P=home to the user-defined data path (catPathName)634 //635 Function V_WriteTextWaveToHDF(fname, groupName, varName, wav)636 String fname, groupName, varName637 Wave/T wav638 639 variable err=0, fileID,groupID640 String cDF = getDataFolder(1), temp641 String NXentry_name642 643 try644 HDF5OpenFile/P=catPathName /Z fileID as fname //open file read-write645 if(!fileID)646 err = 1647 abort "HDF5 file does not exist"648 endif649 650 //get the NXentry node name651 HDF5ListGroup /TYPE=1 fileID, "/"652 //remove trailing ; from S_HDF5ListGroup653 654 Print "S_HDF5ListGroup = ",S_HDF5ListGroup655 656 NXentry_name = S_HDF5ListGroup657 NXentry_name = ReplaceString(";",NXentry_name,"")658 if(strsearch(NXentry_name,":",0)!=-1) //more than one entry under the root node659 err = 1660 abort "More than one entry under the root node. Ambiguous"661 endif662 663 //concatenate NXentry node name and groupName664 // SRK - NOV2015 - dropped this and require the full group name passed in665 // groupName = "/" + NXentry_name + groupName666 Print "groupName = ",groupName667 668 HDF5OpenGroup /Z fileID , groupName, groupID669 670 if(!groupID)671 // don't create the group it the name isn't right -- throw up an error672 //HDF5CreateGroup /Z fileID, groupName, groupID673 err = 1674 HDF5CloseFile /Z fileID675 DoAlert 0, "HDF5 group does not exist "+groupName+varname676 return(err)677 else678 // get attributes and save them679 //HDF5ListAttributes /Z fileID, groupName this is returning null. expect it to return semicolon delimited list of attributes680 //Wave attributes = S_HDF5ListAttributes681 endif682 683 HDF5SaveData /O /Z /IGOR=0 wav, groupID, varName684 if (V_flag != 0)685 err = 1686 abort "Cannot save wave to HDF5 dataset " + varName687 endif688 689 690 //attributes - something could be added here as optional parameters and flagged691 // String attributes = "units"692 // Make/O/T/N=1 tmp693 // tmp[0] = "dimensionless"694 // HDF5SaveData /O /Z /IGOR=0 /A=attributes tmp, groupID, varName695 // if (V_flag != 0)696 // err = 1697 // abort "Cannot save attributes to HDF5 dataset"698 // endif699 catch700 701 endtry702 703 if(groupID)704 HDF5CloseGroup /Z groupID705 endif706 707 if(fileID)708 HDF5CloseFile /Z fileID709 endif710 711 setDataFolder $cDF712 return err713 end714 715 719 ////////////////////////////// 716 720 ////////////////////////////// 717 721 ////////////////////////////// 718 722 723 // TODO: 724 // -- this must be called as needed to force a re-read of the data from disk 725 // "as needed" means that when an operation is done that needs to ensure 726 // a fresh read from disk, it must take care of the kill. 727 // -- the ksBaseDFPath needs to be removed. It's currently pointing to RawVSANS, which is 728 // really not used as intended anymore. 729 // 719 730 Function V_KillNamedDataFolder(fname) 720 731 String fname … … 735 746 //returns the name as a string without the ".fbdfasga" extension 736 747 // 737 // returns the input string if a "." can't be found (maybe it wasn't there"748 // returns the input string if a "." can't be found (maybe it wasn't there) 738 749 Function/S V_RemoveDotExtension(item) 739 750 String item -
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_HDF5_Write.ipf
r981 r983 22 22 ////////////////////////////////////////////// 23 23 ////////////////////////////////// 24 // for TESTING of the get functions - to quickly access and se if there are errors24 // for TESTING of the get functions - to quickly access and see if there are errors 25 25 // 26 26 // -- not sure how to test the string functions -- can't seem to get a FUNCREF to a string function … … 183 183 184 184 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 185 err = V_KillNamedDataFolder(fname)186 if(err)187 Print "DataFolder kill err = ",err188 endif185 // err = V_KillNamedDataFolder(fname) 186 // if(err) 187 // Print "DataFolder kill err = ",err 188 // endif 189 189 190 190 return(err) … … 211 211 endif 212 212 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 213 err = V_KillNamedDataFolder(fname)214 if(err)215 Print "DataFolder kill err = ",err216 endif213 // err = V_KillNamedDataFolder(fname) 214 // if(err) 215 // Print "DataFolder kill err = ",err 216 // endif 217 217 return(err) 218 218 End … … 236 236 237 237 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 238 err = V_KillNamedDataFolder(fname)239 if(err)240 Print "DataFolder kill err = ",err241 endif238 // err = V_KillNamedDataFolder(fname) 239 // if(err) 240 // Print "DataFolder kill err = ",err 241 // endif 242 242 243 243 return(err) … … 262 262 263 263 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 264 err = V_KillNamedDataFolder(fname)265 if(err)266 Print "DataFolder kill err = ",err267 endif264 // err = V_KillNamedDataFolder(fname) 265 // if(err) 266 // Print "DataFolder kill err = ",err 267 // endif 268 268 269 269 return(err) … … 290 290 endif 291 291 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 292 err = V_KillNamedDataFolder(fname)293 if(err)294 Print "DataFolder kill err = ",err295 endif292 // err = V_KillNamedDataFolder(fname) 293 // if(err) 294 // Print "DataFolder kill err = ",err 295 // endif 296 296 return(err) 297 297 End … … 316 316 317 317 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 318 err = V_KillNamedDataFolder(fname)319 if(err)320 Print "DataFolder kill err = ",err321 endif318 // err = V_KillNamedDataFolder(fname) 319 // if(err) 320 // Print "DataFolder kill err = ",err 321 // endif 322 322 323 323 return(err) … … 342 342 343 343 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 344 err = V_KillNamedDataFolder(fname)345 if(err)346 Print "DataFolder kill err = ",err347 endif344 // err = V_KillNamedDataFolder(fname) 345 // if(err) 346 // Print "DataFolder kill err = ",err 347 // endif 348 348 349 349 return(err) … … 368 368 369 369 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 370 err = V_KillNamedDataFolder(fname)371 if(err)372 Print "DataFolder kill err = ",err373 endif370 // err = V_KillNamedDataFolder(fname) 371 // if(err) 372 // Print "DataFolder kill err = ",err 373 // endif 374 374 375 375 return(err) … … 394 394 395 395 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 396 err = V_KillNamedDataFolder(fname)397 if(err)398 Print "DataFolder kill err = ",err399 endif396 // err = V_KillNamedDataFolder(fname) 397 // if(err) 398 // Print "DataFolder kill err = ",err 399 // endif 400 400 401 401 return(err) … … 422 422 endif 423 423 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 424 err = V_KillNamedDataFolder(fname)425 if(err)426 Print "DataFolder kill err = ",err427 endif424 // err = V_KillNamedDataFolder(fname) 425 // if(err) 426 // Print "DataFolder kill err = ",err 427 // endif 428 428 return(err) 429 429 End … … 447 447 448 448 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 449 err = V_KillNamedDataFolder(fname)450 if(err)451 Print "DataFolder kill err = ",err452 endif449 // err = V_KillNamedDataFolder(fname) 450 // if(err) 451 // Print "DataFolder kill err = ",err 452 // endif 453 453 454 454 return(err) … … 473 473 474 474 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 475 err = V_KillNamedDataFolder(fname)476 if(err)477 Print "DataFolder kill err = ",err478 endif475 // err = V_KillNamedDataFolder(fname) 476 // if(err) 477 // Print "DataFolder kill err = ",err 478 // endif 479 479 480 480 return(err) … … 500 500 501 501 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 502 err = V_KillNamedDataFolder(fname)503 if(err)504 Print "DataFolder kill err = ",err505 endif502 // err = V_KillNamedDataFolder(fname) 503 // if(err) 504 // Print "DataFolder kill err = ",err 505 // endif 506 506 507 507 return(err) … … 526 526 527 527 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 528 err = V_KillNamedDataFolder(fname)529 if(err)530 Print "DataFolder kill err = ",err531 endif528 // err = V_KillNamedDataFolder(fname) 529 // if(err) 530 // Print "DataFolder kill err = ",err 531 // endif 532 532 533 533 return(err) … … 559 559 560 560 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 561 err = V_KillNamedDataFolder(fname)562 if(err)563 Print "DataFolder kill err = ",err564 endif561 // err = V_KillNamedDataFolder(fname) 562 // if(err) 563 // Print "DataFolder kill err = ",err 564 // endif 565 565 566 566 return(err) … … 592 592 endif 593 593 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 594 err = V_KillNamedDataFolder(fname)595 if(err)596 Print "DataFolder kill err = ",err597 endif594 // err = V_KillNamedDataFolder(fname) 595 // if(err) 596 // Print "DataFolder kill err = ",err 597 // endif 598 598 return(err) 599 599 end … … 618 618 endif 619 619 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 620 err = V_KillNamedDataFolder(fname)621 if(err)622 Print "DataFolder kill err = ",err623 endif620 // err = V_KillNamedDataFolder(fname) 621 // if(err) 622 // Print "DataFolder kill err = ",err 623 // endif 624 624 return(err) 625 625 end … … 644 644 endif 645 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 = ",err649 endif646 // err = V_KillNamedDataFolder(fname) 647 // if(err) 648 // Print "DataFolder kill err = ",err 649 // endif 650 650 return(err) 651 651 end … … 670 670 endif 671 671 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 672 err = V_KillNamedDataFolder(fname)673 if(err)674 Print "DataFolder kill err = ",err675 endif672 // err = V_KillNamedDataFolder(fname) 673 // if(err) 674 // Print "DataFolder kill err = ",err 675 // endif 676 676 return(err) 677 677 end … … 696 696 endif 697 697 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 698 err = V_KillNamedDataFolder(fname)699 if(err)700 Print "DataFolder kill err = ",err701 endif698 // err = V_KillNamedDataFolder(fname) 699 // if(err) 700 // Print "DataFolder kill err = ",err 701 // endif 702 702 return(err) 703 703 end … … 722 722 endif 723 723 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 724 err = V_KillNamedDataFolder(fname)725 if(err)726 Print "DataFolder kill err = ",err727 endif724 // err = V_KillNamedDataFolder(fname) 725 // if(err) 726 // Print "DataFolder kill err = ",err 727 // endif 728 728 return(err) 729 729 end … … 748 748 endif 749 749 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 750 err = V_KillNamedDataFolder(fname)751 if(err)752 Print "DataFolder kill err = ",err753 endif750 // err = V_KillNamedDataFolder(fname) 751 // if(err) 752 // Print "DataFolder kill err = ",err 753 // endif 754 754 return(err) 755 755 end … … 773 773 774 774 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 775 err = V_KillNamedDataFolder(fname)776 if(err)777 Print "DataFolder kill err = ",err778 endif775 // err = V_KillNamedDataFolder(fname) 776 // if(err) 777 // Print "DataFolder kill err = ",err 778 // endif 779 779 780 780 return(err) … … 800 800 endif 801 801 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 802 err = V_KillNamedDataFolder(fname)803 if(err)804 Print "DataFolder kill err = ",err805 endif802 // err = V_KillNamedDataFolder(fname) 803 // if(err) 804 // Print "DataFolder kill err = ",err 805 // endif 806 806 return(err) 807 807 end … … 825 825 endif 826 826 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 827 err = V_KillNamedDataFolder(fname)828 if(err)829 Print "DataFolder kill err = ",err830 endif827 // err = V_KillNamedDataFolder(fname) 828 // if(err) 829 // Print "DataFolder kill err = ",err 830 // endif 831 831 return(err) 832 832 end … … 850 850 endif 851 851 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 852 err = V_KillNamedDataFolder(fname)853 if(err)854 Print "DataFolder kill err = ",err855 endif852 // err = V_KillNamedDataFolder(fname) 853 // if(err) 854 // Print "DataFolder kill err = ",err 855 // endif 856 856 return(err) 857 857 end … … 882 882 883 883 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 884 err = V_KillNamedDataFolder(fname)885 if(err)886 Print "DataFolder kill err = ",err887 endif884 // err = V_KillNamedDataFolder(fname) 885 // if(err) 886 // Print "DataFolder kill err = ",err 887 // endif 888 888 889 889 return(err) … … 907 907 908 908 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 909 err = V_KillNamedDataFolder(fname)910 if(err)911 Print "DataFolder kill err = ",err912 endif909 // err = V_KillNamedDataFolder(fname) 910 // if(err) 911 // Print "DataFolder kill err = ",err 912 // endif 913 913 914 914 return(err) … … 932 932 933 933 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 934 err = V_KillNamedDataFolder(fname)935 if(err)936 Print "DataFolder kill err = ",err937 endif934 // err = V_KillNamedDataFolder(fname) 935 // if(err) 936 // Print "DataFolder kill err = ",err 937 // endif 938 938 939 939 return(err) … … 962 962 endif 963 963 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 964 err = V_KillNamedDataFolder(fname)965 if(err)966 Print "DataFolder kill err = ",err967 endif964 // err = V_KillNamedDataFolder(fname) 965 // if(err) 966 // Print "DataFolder kill err = ",err 967 // endif 968 968 return(err) 969 969 end … … 990 990 endif 991 991 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 992 err = V_KillNamedDataFolder(fname)993 if(err)994 Print "DataFolder kill err = ",err995 endif992 // err = V_KillNamedDataFolder(fname) 993 // if(err) 994 // Print "DataFolder kill err = ",err 995 // endif 996 996 return(err) 997 997 end … … 1017 1017 endif 1018 1018 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1019 err = V_KillNamedDataFolder(fname)1020 if(err)1021 Print "DataFolder kill err = ",err1022 endif1019 // err = V_KillNamedDataFolder(fname) 1020 // if(err) 1021 // Print "DataFolder kill err = ",err 1022 // endif 1023 1023 return(err) 1024 1024 end … … 1044 1044 endif 1045 1045 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1046 err = V_KillNamedDataFolder(fname)1047 if(err)1048 Print "DataFolder kill err = ",err1049 endif1046 // err = V_KillNamedDataFolder(fname) 1047 // if(err) 1048 // Print "DataFolder kill err = ",err 1049 // endif 1050 1050 return(err) 1051 1051 end … … 1071 1071 endif 1072 1072 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1073 err = V_KillNamedDataFolder(fname)1074 if(err)1075 Print "DataFolder kill err = ",err1076 endif1073 // err = V_KillNamedDataFolder(fname) 1074 // if(err) 1075 // Print "DataFolder kill err = ",err 1076 // endif 1077 1077 return(err) 1078 1078 end … … 1100 1100 endif 1101 1101 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1102 err = V_KillNamedDataFolder(fname)1103 if(err)1104 Print "DataFolder kill err = ",err1105 endif1102 // err = V_KillNamedDataFolder(fname) 1103 // if(err) 1104 // Print "DataFolder kill err = ",err 1105 // endif 1106 1106 return(err) 1107 1107 end … … 1126 1126 1127 1127 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1128 err = V_KillNamedDataFolder(fname)1129 if(err)1130 Print "DataFolder kill err = ",err1131 endif1128 // err = V_KillNamedDataFolder(fname) 1129 // if(err) 1130 // Print "DataFolder kill err = ",err 1131 // endif 1132 1132 1133 1133 return(err) … … 1153 1153 endif 1154 1154 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1155 err = V_KillNamedDataFolder(fname)1156 if(err)1157 Print "DataFolder kill err = ",err1158 endif1155 // err = V_KillNamedDataFolder(fname) 1156 // if(err) 1157 // Print "DataFolder kill err = ",err 1158 // endif 1159 1159 return(err) 1160 1160 end … … 1179 1179 1180 1180 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1181 err = V_KillNamedDataFolder(fname)1182 if(err)1183 Print "DataFolder kill err = ",err1184 endif1181 // err = V_KillNamedDataFolder(fname) 1182 // if(err) 1183 // Print "DataFolder kill err = ",err 1184 // endif 1185 1185 1186 1186 return(err) … … 1208 1208 endif 1209 1209 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1210 err = V_KillNamedDataFolder(fname)1211 if(err)1212 Print "DataFolder kill err = ",err1213 endif1210 // err = V_KillNamedDataFolder(fname) 1211 // if(err) 1212 // Print "DataFolder kill err = ",err 1213 // endif 1214 1214 return(err) 1215 1215 end … … 1233 1233 endif 1234 1234 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1235 err = V_KillNamedDataFolder(fname)1236 if(err)1237 Print "DataFolder kill err = ",err1238 endif1235 // err = V_KillNamedDataFolder(fname) 1236 // if(err) 1237 // Print "DataFolder kill err = ",err 1238 // endif 1239 1239 return(err) 1240 1240 end … … 1258 1258 endif 1259 1259 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1260 err = V_KillNamedDataFolder(fname)1261 if(err)1262 Print "DataFolder kill err = ",err1263 endif1260 // err = V_KillNamedDataFolder(fname) 1261 // if(err) 1262 // Print "DataFolder kill err = ",err 1263 // endif 1264 1264 return(err) 1265 1265 end … … 1283 1283 endif 1284 1284 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1285 err = V_KillNamedDataFolder(fname)1286 if(err)1287 Print "DataFolder kill err = ",err1288 endif1285 // err = V_KillNamedDataFolder(fname) 1286 // if(err) 1287 // Print "DataFolder kill err = ",err 1288 // endif 1289 1289 return(err) 1290 1290 end … … 1308 1308 endif 1309 1309 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1310 err = V_KillNamedDataFolder(fname)1311 if(err)1312 Print "DataFolder kill err = ",err1313 endif1310 // err = V_KillNamedDataFolder(fname) 1311 // if(err) 1312 // Print "DataFolder kill err = ",err 1313 // endif 1314 1314 return(err) 1315 1315 end … … 1333 1333 endif 1334 1334 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1335 err = V_KillNamedDataFolder(fname)1336 if(err)1337 Print "DataFolder kill err = ",err1338 endif1335 // err = V_KillNamedDataFolder(fname) 1336 // if(err) 1337 // Print "DataFolder kill err = ",err 1338 // endif 1339 1339 return(err) 1340 1340 end … … 1357 1357 1358 1358 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1359 err = V_KillNamedDataFolder(fname)1360 if(err)1361 Print "DataFolder kill err = ",err1362 endif1359 // err = V_KillNamedDataFolder(fname) 1360 // if(err) 1361 // Print "DataFolder kill err = ",err 1362 // endif 1363 1363 1364 1364 return(err) … … 1382 1382 1383 1383 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1384 err = V_KillNamedDataFolder(fname)1385 if(err)1386 Print "DataFolder kill err = ",err1387 endif1384 // err = V_KillNamedDataFolder(fname) 1385 // if(err) 1386 // Print "DataFolder kill err = ",err 1387 // endif 1388 1388 1389 1389 return(err) … … 1410 1410 endif 1411 1411 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1412 err = V_KillNamedDataFolder(fname)1413 if(err)1414 Print "DataFolder kill err = ",err1415 endif1412 // err = V_KillNamedDataFolder(fname) 1413 // if(err) 1414 // Print "DataFolder kill err = ",err 1415 // endif 1416 1416 return(err) 1417 1417 end … … 1435 1435 endif 1436 1436 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1437 err = V_KillNamedDataFolder(fname)1438 if(err)1439 Print "DataFolder kill err = ",err1440 endif1437 // err = V_KillNamedDataFolder(fname) 1438 // if(err) 1439 // Print "DataFolder kill err = ",err 1440 // endif 1441 1441 return(err) 1442 1442 end … … 1459 1459 1460 1460 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1461 err = V_KillNamedDataFolder(fname)1462 if(err)1463 Print "DataFolder kill err = ",err1464 endif1461 // err = V_KillNamedDataFolder(fname) 1462 // if(err) 1463 // Print "DataFolder kill err = ",err 1464 // endif 1465 1465 1466 1466 return(err) … … 1485 1485 endif 1486 1486 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1487 err = V_KillNamedDataFolder(fname)1488 if(err)1489 Print "DataFolder kill err = ",err1490 endif1487 // err = V_KillNamedDataFolder(fname) 1488 // if(err) 1489 // Print "DataFolder kill err = ",err 1490 // endif 1491 1491 return(err) 1492 1492 end … … 1509 1509 1510 1510 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1511 err = V_KillNamedDataFolder(fname)1512 if(err)1513 Print "DataFolder kill err = ",err1514 endif1511 // err = V_KillNamedDataFolder(fname) 1512 // if(err) 1513 // Print "DataFolder kill err = ",err 1514 // endif 1515 1515 1516 1516 return(err) … … 1535 1535 1536 1536 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1537 err = V_KillNamedDataFolder(fname)1538 if(err)1539 Print "DataFolder kill err = ",err1540 endif1537 // err = V_KillNamedDataFolder(fname) 1538 // if(err) 1539 // Print "DataFolder kill err = ",err 1540 // endif 1541 1541 1542 1542 return(err) … … 1561 1561 endif 1562 1562 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1563 err = V_KillNamedDataFolder(fname)1564 if(err)1565 Print "DataFolder kill err = ",err1566 endif1563 // err = V_KillNamedDataFolder(fname) 1564 // if(err) 1565 // Print "DataFolder kill err = ",err 1566 // endif 1567 1567 return(err) 1568 1568 end … … 1586 1586 endif 1587 1587 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1588 err = V_KillNamedDataFolder(fname)1589 if(err)1590 Print "DataFolder kill err = ",err1591 endif1588 // err = V_KillNamedDataFolder(fname) 1589 // if(err) 1590 // Print "DataFolder kill err = ",err 1591 // endif 1592 1592 return(err) 1593 1593 end … … 1612 1612 endif 1613 1613 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1614 err = V_KillNamedDataFolder(fname)1615 if(err)1616 Print "DataFolder kill err = ",err1617 endif1614 // err = V_KillNamedDataFolder(fname) 1615 // if(err) 1616 // Print "DataFolder kill err = ",err 1617 // endif 1618 1618 return(err) 1619 1619 end … … 1637 1637 endif 1638 1638 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1639 err = V_KillNamedDataFolder(fname)1640 if(err)1641 Print "DataFolder kill err = ",err1642 endif1639 // err = V_KillNamedDataFolder(fname) 1640 // if(err) 1641 // Print "DataFolder kill err = ",err 1642 // endif 1643 1643 return(err) 1644 1644 end … … 1662 1662 endif 1663 1663 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1664 err = V_KillNamedDataFolder(fname)1665 if(err)1666 Print "DataFolder kill err = ",err1667 endif1664 // err = V_KillNamedDataFolder(fname) 1665 // if(err) 1666 // Print "DataFolder kill err = ",err 1667 // endif 1668 1668 return(err) 1669 1669 end … … 1687 1687 endif 1688 1688 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1689 err = V_KillNamedDataFolder(fname)1690 if(err)1691 Print "DataFolder kill err = ",err1692 endif1689 // err = V_KillNamedDataFolder(fname) 1690 // if(err) 1691 // Print "DataFolder kill err = ",err 1692 // endif 1693 1693 return(err) 1694 1694 end … … 1712 1712 endif 1713 1713 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1714 err = V_KillNamedDataFolder(fname)1715 if(err)1716 Print "DataFolder kill err = ",err1717 endif1714 // err = V_KillNamedDataFolder(fname) 1715 // if(err) 1716 // Print "DataFolder kill err = ",err 1717 // endif 1718 1718 return(err) 1719 1719 end … … 1737 1737 endif 1738 1738 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1739 err = V_KillNamedDataFolder(fname)1740 if(err)1741 Print "DataFolder kill err = ",err1742 endif1739 // err = V_KillNamedDataFolder(fname) 1740 // if(err) 1741 // Print "DataFolder kill err = ",err 1742 // endif 1743 1743 return(err) 1744 1744 end … … 1762 1762 endif 1763 1763 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1764 err = V_KillNamedDataFolder(fname)1765 if(err)1766 Print "DataFolder kill err = ",err1767 endif1764 // err = V_KillNamedDataFolder(fname) 1765 // if(err) 1766 // Print "DataFolder kill err = ",err 1767 // endif 1768 1768 return(err) 1769 1769 end … … 1786 1786 1787 1787 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1788 err = V_KillNamedDataFolder(fname)1789 if(err)1790 Print "DataFolder kill err = ",err1791 endif1788 // err = V_KillNamedDataFolder(fname) 1789 // if(err) 1790 // Print "DataFolder kill err = ",err 1791 // endif 1792 1792 1793 1793 return(err) … … 1812 1812 endif 1813 1813 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1814 err = V_KillNamedDataFolder(fname)1815 if(err)1816 Print "DataFolder kill err = ",err1817 endif1814 // err = V_KillNamedDataFolder(fname) 1815 // if(err) 1816 // Print "DataFolder kill err = ",err 1817 // endif 1818 1818 return(err) 1819 1819 end … … 1837 1837 endif 1838 1838 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1839 err = V_KillNamedDataFolder(fname)1840 if(err)1841 Print "DataFolder kill err = ",err1842 endif1839 // err = V_KillNamedDataFolder(fname) 1840 // if(err) 1841 // Print "DataFolder kill err = ",err 1842 // endif 1843 1843 return(err) 1844 1844 end … … 1862 1862 endif 1863 1863 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1864 err = V_KillNamedDataFolder(fname)1865 if(err)1866 Print "DataFolder kill err = ",err1867 endif1864 // err = V_KillNamedDataFolder(fname) 1865 // if(err) 1866 // Print "DataFolder kill err = ",err 1867 // endif 1868 1868 return(err) 1869 1869 end … … 1887 1887 endif 1888 1888 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1889 err = V_KillNamedDataFolder(fname)1890 if(err)1891 Print "DataFolder kill err = ",err1892 endif1889 // err = V_KillNamedDataFolder(fname) 1890 // if(err) 1891 // Print "DataFolder kill err = ",err 1892 // endif 1893 1893 return(err) 1894 1894 end … … 1912 1912 endif 1913 1913 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1914 err = V_KillNamedDataFolder(fname)1915 if(err)1916 Print "DataFolder kill err = ",err1917 endif1914 // err = V_KillNamedDataFolder(fname) 1915 // if(err) 1916 // Print "DataFolder kill err = ",err 1917 // endif 1918 1918 return(err) 1919 1919 end … … 1938 1938 endif 1939 1939 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1940 err = V_KillNamedDataFolder(fname)1941 if(err)1942 Print "DataFolder kill err = ",err1943 endif1940 // err = V_KillNamedDataFolder(fname) 1941 // if(err) 1942 // Print "DataFolder kill err = ",err 1943 // endif 1944 1944 return(err) 1945 1945 end … … 1963 1963 endif 1964 1964 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1965 err = V_KillNamedDataFolder(fname)1966 if(err)1967 Print "DataFolder kill err = ",err1968 endif1965 // err = V_KillNamedDataFolder(fname) 1966 // if(err) 1967 // Print "DataFolder kill err = ",err 1968 // endif 1969 1969 return(err) 1970 1970 end … … 1987 1987 1988 1988 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 1989 err = V_KillNamedDataFolder(fname)1990 if(err)1991 Print "DataFolder kill err = ",err1992 endif1989 // err = V_KillNamedDataFolder(fname) 1990 // if(err) 1991 // Print "DataFolder kill err = ",err 1992 // endif 1993 1993 1994 1994 return(err) … … 2015 2015 endif 2016 2016 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2017 err = V_KillNamedDataFolder(fname)2018 if(err)2019 Print "DataFolder kill err = ",err2020 endif2017 // err = V_KillNamedDataFolder(fname) 2018 // if(err) 2019 // Print "DataFolder kill err = ",err 2020 // endif 2021 2021 return(err) 2022 2022 end … … 2041 2041 endif 2042 2042 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2043 err = V_KillNamedDataFolder(fname)2044 if(err)2045 Print "DataFolder kill err = ",err2046 endif2043 // err = V_KillNamedDataFolder(fname) 2044 // if(err) 2045 // Print "DataFolder kill err = ",err 2046 // endif 2047 2047 return(err) 2048 2048 end … … 2066 2066 endif 2067 2067 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2068 err = V_KillNamedDataFolder(fname)2069 if(err)2070 Print "DataFolder kill err = ",err2071 endif2068 // err = V_KillNamedDataFolder(fname) 2069 // if(err) 2070 // Print "DataFolder kill err = ",err 2071 // endif 2072 2072 return(err) 2073 2073 end … … 2091 2091 endif 2092 2092 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2093 err = V_KillNamedDataFolder(fname)2094 if(err)2095 Print "DataFolder kill err = ",err2096 endif2093 // err = V_KillNamedDataFolder(fname) 2094 // if(err) 2095 // Print "DataFolder kill err = ",err 2096 // endif 2097 2097 return(err) 2098 2098 end … … 2116 2116 endif 2117 2117 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2118 err = V_KillNamedDataFolder(fname)2119 if(err)2120 Print "DataFolder kill err = ",err2121 endif2118 // err = V_KillNamedDataFolder(fname) 2119 // if(err) 2120 // Print "DataFolder kill err = ",err 2121 // endif 2122 2122 return(err) 2123 2123 end … … 2141 2141 2142 2142 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2143 err = V_KillNamedDataFolder(fname)2144 if(err)2145 Print "DataFolder kill err = ",err2146 endif2143 // err = V_KillNamedDataFolder(fname) 2144 // if(err) 2145 // Print "DataFolder kill err = ",err 2146 // endif 2147 2147 2148 2148 return(err) … … 2167 2167 endif 2168 2168 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2169 err = V_KillNamedDataFolder(fname)2170 if(err)2171 Print "DataFolder kill err = ",err2172 endif2169 // err = V_KillNamedDataFolder(fname) 2170 // if(err) 2171 // Print "DataFolder kill err = ",err 2172 // endif 2173 2173 return(err) 2174 2174 end … … 2192 2192 endif 2193 2193 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2194 err = V_KillNamedDataFolder(fname)2195 if(err)2196 Print "DataFolder kill err = ",err2197 endif2194 // err = V_KillNamedDataFolder(fname) 2195 // if(err) 2196 // Print "DataFolder kill err = ",err 2197 // endif 2198 2198 return(err) 2199 2199 end … … 2217 2217 2218 2218 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2219 err = V_KillNamedDataFolder(fname)2220 if(err)2221 Print "DataFolder kill err = ",err2222 endif2219 // err = V_KillNamedDataFolder(fname) 2220 // if(err) 2221 // Print "DataFolder kill err = ",err 2222 // endif 2223 2223 2224 2224 return(err) … … 2243 2243 endif 2244 2244 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2245 err = V_KillNamedDataFolder(fname)2246 if(err)2247 Print "DataFolder kill err = ",err2248 endif2245 // err = V_KillNamedDataFolder(fname) 2246 // if(err) 2247 // Print "DataFolder kill err = ",err 2248 // endif 2249 2249 return(err) 2250 2250 end … … 2267 2267 2268 2268 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2269 err = V_KillNamedDataFolder(fname)2270 if(err)2271 Print "DataFolder kill err = ",err2272 endif2269 // err = V_KillNamedDataFolder(fname) 2270 // if(err) 2271 // Print "DataFolder kill err = ",err 2272 // endif 2273 2273 2274 2274 return(err) … … 2292 2292 2293 2293 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2294 err = V_KillNamedDataFolder(fname)2295 if(err)2296 Print "DataFolder kill err = ",err2297 endif2294 // err = V_KillNamedDataFolder(fname) 2295 // if(err) 2296 // Print "DataFolder kill err = ",err 2297 // endif 2298 2298 2299 2299 return(err) … … 2319 2319 endif 2320 2320 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2321 err = V_KillNamedDataFolder(fname)2322 if(err)2323 Print "DataFolder kill err = ",err2324 endif2321 // err = V_KillNamedDataFolder(fname) 2322 // if(err) 2323 // Print "DataFolder kill err = ",err 2324 // endif 2325 2325 return(err) 2326 2326 End … … 2343 2343 2344 2344 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2345 err = V_KillNamedDataFolder(fname)2346 if(err)2347 Print "DataFolder kill err = ",err2348 endif2345 // err = V_KillNamedDataFolder(fname) 2346 // if(err) 2347 // Print "DataFolder kill err = ",err 2348 // endif 2349 2349 2350 2350 return(err) … … 2371 2371 endif 2372 2372 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2373 err = V_KillNamedDataFolder(fname)2374 if(err)2375 Print "DataFolder kill err = ",err2376 endif2373 // err = V_KillNamedDataFolder(fname) 2374 // if(err) 2375 // Print "DataFolder kill err = ",err 2376 // endif 2377 2377 return(err) 2378 2378 End … … 2396 2396 endif 2397 2397 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2398 err = V_KillNamedDataFolder(fname)2399 if(err)2400 Print "DataFolder kill err = ",err2401 endif2398 // err = V_KillNamedDataFolder(fname) 2399 // if(err) 2400 // Print "DataFolder kill err = ",err 2401 // endif 2402 2402 return(err) 2403 2403 End … … 2421 2421 endif 2422 2422 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2423 err = V_KillNamedDataFolder(fname)2424 if(err)2425 Print "DataFolder kill err = ",err2426 endif2423 // err = V_KillNamedDataFolder(fname) 2424 // if(err) 2425 // Print "DataFolder kill err = ",err 2426 // endif 2427 2427 return(err) 2428 2428 End … … 2446 2446 endif 2447 2447 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2448 err = V_KillNamedDataFolder(fname)2449 if(err)2450 Print "DataFolder kill err = ",err2451 endif2448 // err = V_KillNamedDataFolder(fname) 2449 // if(err) 2450 // Print "DataFolder kill err = ",err 2451 // endif 2452 2452 return(err) 2453 2453 End … … 2470 2470 2471 2471 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2472 err = V_KillNamedDataFolder(fname)2473 if(err)2474 Print "DataFolder kill err = ",err2475 endif2472 // err = V_KillNamedDataFolder(fname) 2473 // if(err) 2474 // Print "DataFolder kill err = ",err 2475 // endif 2476 2476 2477 2477 return(err) … … 2500 2500 endif 2501 2501 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2502 err = V_KillNamedDataFolder(fname)2503 if(err)2504 Print "DataFolder kill err = ",err2505 endif2502 // err = V_KillNamedDataFolder(fname) 2503 // if(err) 2504 // Print "DataFolder kill err = ",err 2505 // endif 2506 2506 return(err) 2507 2507 End … … 2525 2525 endif 2526 2526 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2527 err = V_KillNamedDataFolder(fname)2528 if(err)2529 Print "DataFolder kill err = ",err2530 endif2527 // err = V_KillNamedDataFolder(fname) 2528 // if(err) 2529 // Print "DataFolder kill err = ",err 2530 // endif 2531 2531 return(err) 2532 2532 End … … 2550 2550 endif 2551 2551 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2552 err = V_KillNamedDataFolder(fname)2553 if(err)2554 Print "DataFolder kill err = ",err2555 endif2552 // err = V_KillNamedDataFolder(fname) 2553 // if(err) 2554 // Print "DataFolder kill err = ",err 2555 // endif 2556 2556 return(err) 2557 2557 End … … 2575 2575 endif 2576 2576 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2577 err = V_KillNamedDataFolder(fname)2578 if(err)2579 Print "DataFolder kill err = ",err2580 endif2577 // err = V_KillNamedDataFolder(fname) 2578 // if(err) 2579 // Print "DataFolder kill err = ",err 2580 // endif 2581 2581 return(err) 2582 2582 End … … 2599 2599 2600 2600 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2601 err = V_KillNamedDataFolder(fname)2602 if(err)2603 Print "DataFolder kill err = ",err2604 endif2601 // err = V_KillNamedDataFolder(fname) 2602 // if(err) 2603 // Print "DataFolder kill err = ",err 2604 // endif 2605 2605 2606 2606 return(err) … … 2626 2626 endif 2627 2627 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2628 err = V_KillNamedDataFolder(fname)2629 if(err)2630 Print "DataFolder kill err = ",err2631 endif2628 // err = V_KillNamedDataFolder(fname) 2629 // if(err) 2630 // Print "DataFolder kill err = ",err 2631 // endif 2632 2632 return(err) 2633 2633 End … … 2651 2651 endif 2652 2652 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2653 err = V_KillNamedDataFolder(fname)2654 if(err)2655 Print "DataFolder kill err = ",err2656 endif2653 // err = V_KillNamedDataFolder(fname) 2654 // if(err) 2655 // Print "DataFolder kill err = ",err 2656 // endif 2657 2657 return(err) 2658 2658 End … … 2676 2676 endif 2677 2677 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2678 err = V_KillNamedDataFolder(fname)2679 if(err)2680 Print "DataFolder kill err = ",err2681 endif2678 // err = V_KillNamedDataFolder(fname) 2679 // if(err) 2680 // Print "DataFolder kill err = ",err 2681 // endif 2682 2682 return(err) 2683 2683 End … … 2701 2701 endif 2702 2702 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2703 err = V_KillNamedDataFolder(fname)2704 if(err)2705 Print "DataFolder kill err = ",err2706 endif2703 // err = V_KillNamedDataFolder(fname) 2704 // if(err) 2705 // Print "DataFolder kill err = ",err 2706 // endif 2707 2707 return(err) 2708 2708 End … … 2725 2725 2726 2726 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2727 err = V_KillNamedDataFolder(fname)2728 if(err)2729 Print "DataFolder kill err = ",err2730 endif2727 // err = V_KillNamedDataFolder(fname) 2728 // if(err) 2729 // Print "DataFolder kill err = ",err 2730 // endif 2731 2731 2732 2732 return(err) … … 2751 2751 2752 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 = ",err2756 endif2753 // err = V_KillNamedDataFolder(fname) 2754 // if(err) 2755 // Print "DataFolder kill err = ",err 2756 // endif 2757 2757 2758 2758 return(err) … … 2777 2777 endif 2778 2778 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2779 err = V_KillNamedDataFolder(fname)2780 if(err)2781 Print "DataFolder kill err = ",err2782 endif2779 // err = V_KillNamedDataFolder(fname) 2780 // if(err) 2781 // Print "DataFolder kill err = ",err 2782 // endif 2783 2783 return(err) 2784 2784 End … … 2802 2802 endif 2803 2803 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2804 err = V_KillNamedDataFolder(fname)2805 if(err)2806 Print "DataFolder kill err = ",err2807 endif2804 // err = V_KillNamedDataFolder(fname) 2805 // if(err) 2806 // Print "DataFolder kill err = ",err 2807 // endif 2808 2808 return(err) 2809 2809 End … … 2827 2827 endif 2828 2828 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2829 err = V_KillNamedDataFolder(fname)2830 if(err)2831 Print "DataFolder kill err = ",err2832 endif2829 // err = V_KillNamedDataFolder(fname) 2830 // if(err) 2831 // Print "DataFolder kill err = ",err 2832 // endif 2833 2833 return(err) 2834 2834 End … … 2854 2854 endif 2855 2855 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2856 err = V_KillNamedDataFolder(fname)2857 if(err)2858 Print "DataFolder kill err = ",err2859 endif2856 // err = V_KillNamedDataFolder(fname) 2857 // if(err) 2858 // Print "DataFolder kill err = ",err 2859 // endif 2860 2860 return(err) 2861 2861 End … … 2880 2880 2881 2881 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2882 err = V_KillNamedDataFolder(fname)2883 if(err)2884 Print "DataFolder kill err = ",err2885 endif2882 // err = V_KillNamedDataFolder(fname) 2883 // if(err) 2884 // Print "DataFolder kill err = ",err 2885 // endif 2886 2886 2887 2887 return(err) … … 2907 2907 endif 2908 2908 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2909 err = V_KillNamedDataFolder(fname)2910 if(err)2911 Print "DataFolder kill err = ",err2912 endif2909 // err = V_KillNamedDataFolder(fname) 2910 // if(err) 2911 // Print "DataFolder kill err = ",err 2912 // endif 2913 2913 return(err) 2914 2914 End … … 2932 2932 2933 2933 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2934 err = V_KillNamedDataFolder(fname)2935 if(err)2936 Print "DataFolder kill err = ",err2937 endif2934 // err = V_KillNamedDataFolder(fname) 2935 // if(err) 2936 // Print "DataFolder kill err = ",err 2937 // endif 2938 2938 2939 2939 return(err) … … 2970 2970 endif 2971 2971 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 2972 err = V_KillNamedDataFolder(fname)2973 if(err)2974 Print "DataFolder kill err = ",err2975 endif2972 // err = V_KillNamedDataFolder(fname) 2973 // if(err) 2974 // Print "DataFolder kill err = ",err 2975 // endif 2976 2976 return(err) 2977 2977 else … … 3003 3003 endif 3004 3004 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3005 err = V_KillNamedDataFolder(fname)3006 if(err)3007 Print "DataFolder kill err = ",err3008 endif3005 // err = V_KillNamedDataFolder(fname) 3006 // if(err) 3007 // Print "DataFolder kill err = ",err 3008 // endif 3009 3009 return(err) 3010 3010 else … … 3034 3034 endif 3035 3035 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3036 err = V_KillNamedDataFolder(fname)3037 if(err)3038 Print "DataFolder kill err = ",err3039 endif3036 // err = V_KillNamedDataFolder(fname) 3037 // if(err) 3038 // Print "DataFolder kill err = ",err 3039 // endif 3040 3040 return(err) 3041 3041 End … … 3063 3063 endif 3064 3064 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3065 err = V_KillNamedDataFolder(fname)3066 if(err)3067 Print "DataFolder kill err = ",err3068 endif3065 // err = V_KillNamedDataFolder(fname) 3066 // if(err) 3067 // Print "DataFolder kill err = ",err 3068 // endif 3069 3069 return(err) 3070 3070 End … … 3089 3089 endif 3090 3090 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3091 err = V_KillNamedDataFolder(fname)3092 if(err)3093 Print "DataFolder kill err = ",err3094 endif3091 // err = V_KillNamedDataFolder(fname) 3092 // if(err) 3093 // Print "DataFolder kill err = ",err 3094 // endif 3095 3095 return(err) 3096 3096 End … … 3114 3114 endif 3115 3115 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3116 err = V_KillNamedDataFolder(fname)3117 if(err)3118 Print "DataFolder kill err = ",err3119 endif3116 // err = V_KillNamedDataFolder(fname) 3117 // if(err) 3118 // Print "DataFolder kill err = ",err 3119 // endif 3120 3120 return(err) 3121 3121 End … … 3141 3141 endif 3142 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 = ",err3146 endif3143 // err = V_KillNamedDataFolder(fname) 3144 // if(err) 3145 // Print "DataFolder kill err = ",err 3146 // endif 3147 3147 return(err) 3148 3148 else … … 3169 3169 endif 3170 3170 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3171 err = V_KillNamedDataFolder(fname) 3172 if(err) 3173 Print "DataFolder kill err = ",err 3174 endif 3175 return(err) 3171 // err = V_KillNamedDataFolder(fname) 3172 // if(err) 3173 // Print "DataFolder kill err = ",err 3174 // endif 3175 return(err) 3176 End 3177 3178 // fname is a local WORK folder 3179 Function V_putDet_beam_center_x(fname,detStr,val) 3180 String fname,detStr 3181 Variable val 3182 3183 //root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_FB:beam_center_x 3184 String path = "root:Packages:NIST:VSANS:"+fname+":entry:" 3185 path += "entry:instrument:detector_"+detStr+":beam_center_x" 3186 3187 Wave/Z w = $path 3188 if(waveExists(w) == 0) 3189 return(1) 3190 else 3191 w[0] = val 3192 return(0) 3193 endif 3194 3176 3195 End 3177 3196 … … 3194 3213 endif 3195 3214 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3196 err = V_KillNamedDataFolder(fname) 3197 if(err) 3198 Print "DataFolder kill err = ",err 3199 endif 3200 return(err) 3201 End 3215 // err = V_KillNamedDataFolder(fname) 3216 // if(err) 3217 // Print "DataFolder kill err = ",err 3218 // endif 3219 return(err) 3220 End 3221 3222 3223 // fname is a local WORK folder 3224 Function V_putDet_beam_center_y(fname,detStr,val) 3225 String fname,detStr 3226 Variable val 3227 3228 //root:Packages:NIST:VSANS:RAW:entry:entry:instrument:detector_FB:beam_center_y 3229 String path = "root:Packages:NIST:VSANS:"+fname+":entry:" 3230 path += "entry:instrument:detector_"+detStr+":beam_center_y" 3231 3232 Wave/Z w = $path 3233 if(waveExists(w) == 0) 3234 return(1) 3235 else 3236 w[0] = val 3237 return(0) 3238 endif 3239 3240 End 3241 3202 3242 3203 3243 // TODO -- write this function to return a WAVE with the data … … 3223 3263 endif 3224 3264 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3225 err = V_KillNamedDataFolder(fname)3226 if(err)3227 Print "DataFolder kill err = ",err3228 endif3265 // err = V_KillNamedDataFolder(fname) 3266 // if(err) 3267 // Print "DataFolder kill err = ",err 3268 // endif 3229 3269 return(err) 3230 3270 End … … 3255 3295 endif 3256 3296 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3257 err = V_KillNamedDataFolder(fname)3258 if(err)3259 Print "DataFolder kill err = ",err3260 endif3297 // err = V_KillNamedDataFolder(fname) 3298 // if(err) 3299 // Print "DataFolder kill err = ",err 3300 // endif 3261 3301 return(err) 3262 3302 End … … 3280 3320 3281 3321 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3282 err = V_KillNamedDataFolder(fname)3283 if(err)3284 Print "DataFolder kill err = ",err3285 endif3322 // err = V_KillNamedDataFolder(fname) 3323 // if(err) 3324 // Print "DataFolder kill err = ",err 3325 // endif 3286 3326 3287 3327 return(err) … … 3306 3346 endif 3307 3347 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3308 err = V_KillNamedDataFolder(fname)3309 if(err)3310 Print "DataFolder kill err = ",err3311 endif3348 // err = V_KillNamedDataFolder(fname) 3349 // if(err) 3350 // Print "DataFolder kill err = ",err 3351 // endif 3312 3352 return(err) 3313 3353 End … … 3333 3373 endif 3334 3374 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3335 err = V_KillNamedDataFolder(fname)3336 if(err)3337 Print "DataFolder kill err = ",err3338 endif3375 // err = V_KillNamedDataFolder(fname) 3376 // if(err) 3377 // Print "DataFolder kill err = ",err 3378 // endif 3339 3379 return(err) 3340 3380 else … … 3360 3400 3361 3401 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3362 err = V_KillNamedDataFolder(fname)3363 if(err)3364 Print "DataFolder kill err = ",err3365 endif3402 // err = V_KillNamedDataFolder(fname) 3403 // if(err) 3404 // Print "DataFolder kill err = ",err 3405 // endif 3366 3406 3367 3407 return(err) … … 3386 3426 endif 3387 3427 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3388 err = V_KillNamedDataFolder(fname)3389 if(err)3390 Print "DataFolder kill err = ",err3391 endif3428 // err = V_KillNamedDataFolder(fname) 3429 // if(err) 3430 // Print "DataFolder kill err = ",err 3431 // endif 3392 3432 return(err) 3393 3433 End … … 3411 3451 endif 3412 3452 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3413 err = V_KillNamedDataFolder(fname)3414 if(err)3415 Print "DataFolder kill err = ",err3416 endif3453 // err = V_KillNamedDataFolder(fname) 3454 // if(err) 3455 // Print "DataFolder kill err = ",err 3456 // endif 3417 3457 return(err) 3418 3458 End … … 3436 3476 endif 3437 3477 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3438 err = V_KillNamedDataFolder(fname)3439 if(err)3440 Print "DataFolder kill err = ",err3441 endif3478 // err = V_KillNamedDataFolder(fname) 3479 // if(err) 3480 // Print "DataFolder kill err = ",err 3481 // endif 3442 3482 return(err) 3443 3483 End … … 3463 3503 endif 3464 3504 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3465 err = V_KillNamedDataFolder(fname)3466 if(err)3467 Print "DataFolder kill err = ",err3468 endif3505 // err = V_KillNamedDataFolder(fname) 3506 // if(err) 3507 // Print "DataFolder kill err = ",err 3508 // endif 3469 3509 return(err) 3470 3510 else … … 3493 3533 endif 3494 3534 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3495 err = V_KillNamedDataFolder(fname)3496 if(err)3497 Print "DataFolder kill err = ",err3498 endif3535 // err = V_KillNamedDataFolder(fname) 3536 // if(err) 3537 // Print "DataFolder kill err = ",err 3538 // endif 3499 3539 return(err) 3500 3540 else … … 3520 3560 3521 3561 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3522 err = V_KillNamedDataFolder(fname)3523 if(err)3524 Print "DataFolder kill err = ",err3525 endif3562 // err = V_KillNamedDataFolder(fname) 3563 // if(err) 3564 // Print "DataFolder kill err = ",err 3565 // endif 3526 3566 3527 3567 return(err) … … 3547 3587 endif 3548 3588 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3549 err = V_KillNamedDataFolder(fname)3550 if(err)3551 Print "DataFolder kill err = ",err3552 endif3589 // err = V_KillNamedDataFolder(fname) 3590 // if(err) 3591 // Print "DataFolder kill err = ",err 3592 // endif 3553 3593 return(err) 3554 3594 End … … 3571 3611 3572 3612 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3573 err = V_KillNamedDataFolder(fname)3574 if(err)3575 Print "DataFolder kill err = ",err3576 endif3613 // err = V_KillNamedDataFolder(fname) 3614 // if(err) 3615 // Print "DataFolder kill err = ",err 3616 // endif 3577 3617 3578 3618 return(err) … … 3597 3637 endif 3598 3638 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3599 err = V_KillNamedDataFolder(fname)3600 if(err)3601 Print "DataFolder kill err = ",err3602 endif3639 // err = V_KillNamedDataFolder(fname) 3640 // if(err) 3641 // Print "DataFolder kill err = ",err 3642 // endif 3603 3643 return(err) 3604 3644 End … … 3622 3662 endif 3623 3663 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3624 err = V_KillNamedDataFolder(fname)3625 if(err)3626 Print "DataFolder kill err = ",err3627 endif3664 // err = V_KillNamedDataFolder(fname) 3665 // if(err) 3666 // Print "DataFolder kill err = ",err 3667 // endif 3628 3668 return(err) 3629 3669 End … … 3652 3692 endif 3653 3693 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3654 err = V_KillNamedDataFolder(fname)3655 if(err)3656 Print "DataFolder kill err = ",err3657 endif3694 // err = V_KillNamedDataFolder(fname) 3695 // if(err) 3696 // Print "DataFolder kill err = ",err 3697 // endif 3658 3698 return(err) 3659 3699 endif … … 3682 3722 endif 3683 3723 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3684 err = V_KillNamedDataFolder(fname)3685 if(err)3686 Print "DataFolder kill err = ",err3687 endif3724 // err = V_KillNamedDataFolder(fname) 3725 // if(err) 3726 // Print "DataFolder kill err = ",err 3727 // endif 3688 3728 return(err) 3689 3729 endif … … 3715 3755 endif 3716 3756 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3717 err = V_KillNamedDataFolder(fname)3718 if(err)3719 Print "DataFolder kill err = ",err3720 endif3757 // err = V_KillNamedDataFolder(fname) 3758 // if(err) 3759 // Print "DataFolder kill err = ",err 3760 // endif 3721 3761 return(err) 3722 3762 endif … … 3745 3785 endif 3746 3786 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3747 err = V_KillNamedDataFolder(fname)3748 if(err)3749 Print "DataFolder kill err = ",err3750 endif3787 // err = V_KillNamedDataFolder(fname) 3788 // if(err) 3789 // Print "DataFolder kill err = ",err 3790 // endif 3751 3791 return(err) 3752 3792 endif … … 3773 3813 3774 3814 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3775 err = V_KillNamedDataFolder(fname)3776 if(err)3777 Print "DataFolder kill err = ",err3778 endif3815 // err = V_KillNamedDataFolder(fname) 3816 // if(err) 3817 // Print "DataFolder kill err = ",err 3818 // endif 3779 3819 3780 3820 return(err) … … 3805 3845 endif 3806 3846 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3807 err = V_KillNamedDataFolder(fname)3808 if(err)3809 Print "DataFolder kill err = ",err3810 endif3847 // err = V_KillNamedDataFolder(fname) 3848 // if(err) 3849 // Print "DataFolder kill err = ",err 3850 // endif 3811 3851 return(err) 3812 3852 endif … … 3836 3876 endif 3837 3877 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3838 err = V_KillNamedDataFolder(fname)3839 if(err)3840 Print "DataFolder kill err = ",err3841 endif3878 // err = V_KillNamedDataFolder(fname) 3879 // if(err) 3880 // Print "DataFolder kill err = ",err 3881 // endif 3842 3882 return(err) 3843 3883 End … … 3860 3900 3861 3901 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3862 err = V_KillNamedDataFolder(fname)3863 if(err)3864 Print "DataFolder kill err = ",err3865 endif3902 // err = V_KillNamedDataFolder(fname) 3903 // if(err) 3904 // Print "DataFolder kill err = ",err 3905 // endif 3866 3906 3867 3907 return(err) … … 3886 3926 endif 3887 3927 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3888 err = V_KillNamedDataFolder(fname)3889 if(err)3890 Print "DataFolder kill err = ",err3891 endif3928 // err = V_KillNamedDataFolder(fname) 3929 // if(err) 3930 // Print "DataFolder kill err = ",err 3931 // endif 3892 3932 return(err) 3893 3933 End … … 3910 3950 3911 3951 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3912 err = V_KillNamedDataFolder(fname)3913 if(err)3914 Print "DataFolder kill err = ",err3915 endif3952 // err = V_KillNamedDataFolder(fname) 3953 // if(err) 3954 // Print "DataFolder kill err = ",err 3955 // endif 3916 3956 3917 3957 return(err) … … 3935 3975 3936 3976 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3937 err = V_KillNamedDataFolder(fname)3938 if(err)3939 Print "DataFolder kill err = ",err3940 endif3977 // err = V_KillNamedDataFolder(fname) 3978 // if(err) 3979 // Print "DataFolder kill err = ",err 3980 // endif 3941 3981 3942 3982 return(err) … … 3961 4001 endif 3962 4002 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3963 err = V_KillNamedDataFolder(fname)3964 if(err)3965 Print "DataFolder kill err = ",err3966 endif4003 // err = V_KillNamedDataFolder(fname) 4004 // if(err) 4005 // Print "DataFolder kill err = ",err 4006 // endif 3967 4007 return(err) 3968 4008 End … … 3986 4026 endif 3987 4027 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 3988 err = V_KillNamedDataFolder(fname)3989 if(err)3990 Print "DataFolder kill err = ",err3991 endif4028 // err = V_KillNamedDataFolder(fname) 4029 // if(err) 4030 // Print "DataFolder kill err = ",err 4031 // endif 3992 4032 return(err) 3993 4033 End … … 4011 4051 endif 4012 4052 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4013 err = V_KillNamedDataFolder(fname)4014 if(err)4015 Print "DataFolder kill err = ",err4016 endif4053 // err = V_KillNamedDataFolder(fname) 4054 // if(err) 4055 // Print "DataFolder kill err = ",err 4056 // endif 4017 4057 return(err) 4018 4058 End … … 4035 4075 4036 4076 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4037 err = V_KillNamedDataFolder(fname)4038 if(err)4039 Print "DataFolder kill err = ",err4040 endif4077 // err = V_KillNamedDataFolder(fname) 4078 // if(err) 4079 // Print "DataFolder kill err = ",err 4080 // endif 4041 4081 4042 4082 return(err) … … 4061 4101 4062 4102 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4063 err = V_KillNamedDataFolder(fname)4064 if(err)4065 Print "DataFolder kill err = ",err4066 endif4103 // err = V_KillNamedDataFolder(fname) 4104 // if(err) 4105 // Print "DataFolder kill err = ",err 4106 // endif 4067 4107 4068 4108 return(err) … … 4089 4129 4090 4130 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4091 err = V_KillNamedDataFolder(fname)4092 if(err)4093 Print "DataFolder kill err = ",err4094 endif4131 // err = V_KillNamedDataFolder(fname) 4132 // if(err) 4133 // Print "DataFolder kill err = ",err 4134 // endif 4095 4135 4096 4136 return(err) … … 4115 4155 endif 4116 4156 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4117 err = V_KillNamedDataFolder(fname)4118 if(err)4119 Print "DataFolder kill err = ",err4120 endif4157 // err = V_KillNamedDataFolder(fname) 4158 // if(err) 4159 // Print "DataFolder kill err = ",err 4160 // endif 4121 4161 return(err) 4122 4162 End … … 4140 4180 4141 4181 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4142 err = V_KillNamedDataFolder(fname)4143 if(err)4144 Print "DataFolder kill err = ",err4145 endif4182 // err = V_KillNamedDataFolder(fname) 4183 // if(err) 4184 // Print "DataFolder kill err = ",err 4185 // endif 4146 4186 4147 4187 return(err) … … 4171 4211 endif 4172 4212 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4173 err = V_KillNamedDataFolder(fname)4174 if(err)4175 Print "DataFolder kill err = ",err4176 endif4213 // err = V_KillNamedDataFolder(fname) 4214 // if(err) 4215 // Print "DataFolder kill err = ",err 4216 // endif 4177 4217 return(err) 4178 4218 End … … 4198 4238 4199 4239 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4200 err = V_KillNamedDataFolder(fname)4201 if(err)4202 Print "DataFolder kill err = ",err4203 endif4240 // err = V_KillNamedDataFolder(fname) 4241 // if(err) 4242 // Print "DataFolder kill err = ",err 4243 // endif 4204 4244 4205 4245 return(err) … … 4224 4264 endif 4225 4265 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4226 err = V_KillNamedDataFolder(fname)4227 if(err)4228 Print "DataFolder kill err = ",err4229 endif4266 // err = V_KillNamedDataFolder(fname) 4267 // if(err) 4268 // Print "DataFolder kill err = ",err 4269 // endif 4230 4270 return(err) 4231 4271 End … … 4249 4289 4250 4290 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4251 err = V_KillNamedDataFolder(fname)4252 if(err)4253 Print "DataFolder kill err = ",err4254 endif4291 // err = V_KillNamedDataFolder(fname) 4292 // if(err) 4293 // Print "DataFolder kill err = ",err 4294 // endif 4255 4295 4256 4296 return(err) … … 4280 4320 endif 4281 4321 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4282 err = V_KillNamedDataFolder(fname)4283 if(err)4284 Print "DataFolder kill err = ",err4285 endif4322 // err = V_KillNamedDataFolder(fname) 4323 // if(err) 4324 // Print "DataFolder kill err = ",err 4325 // endif 4286 4326 return(err) 4287 4327 End … … 4307 4347 4308 4348 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4309 err = V_KillNamedDataFolder(fname)4310 if(err)4311 Print "DataFolder kill err = ",err4312 endif4349 // err = V_KillNamedDataFolder(fname) 4350 // if(err) 4351 // Print "DataFolder kill err = ",err 4352 // endif 4313 4353 4314 4354 return(err) … … 4335 4375 endif 4336 4376 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4337 err = V_KillNamedDataFolder(fname)4338 if(err)4339 Print "DataFolder kill err = ",err4340 endif4377 // err = V_KillNamedDataFolder(fname) 4378 // if(err) 4379 // Print "DataFolder kill err = ",err 4380 // endif 4341 4381 return(err) 4342 4382 End … … 4361 4401 4362 4402 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4363 err = V_KillNamedDataFolder(fname)4364 if(err)4365 Print "DataFolder kill err = ",err4366 endif4403 // err = V_KillNamedDataFolder(fname) 4404 // if(err) 4405 // Print "DataFolder kill err = ",err 4406 // endif 4367 4407 4368 4408 return(err) … … 4388 4428 endif 4389 4429 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4390 err = V_KillNamedDataFolder(fname)4391 if(err)4392 Print "DataFolder kill err = ",err4393 endif4430 // err = V_KillNamedDataFolder(fname) 4431 // if(err) 4432 // Print "DataFolder kill err = ",err 4433 // endif 4394 4434 return(err) 4395 4435 End … … 4413 4453 4414 4454 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4415 err = V_KillNamedDataFolder(fname)4416 if(err)4417 Print "DataFolder kill err = ",err4418 endif4455 // err = V_KillNamedDataFolder(fname) 4456 // if(err) 4457 // Print "DataFolder kill err = ",err 4458 // endif 4419 4459 4420 4460 return(err) … … 4439 4479 4440 4480 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4441 err = V_KillNamedDataFolder(fname)4442 if(err)4443 Print "DataFolder kill err = ",err4444 endif4481 // err = V_KillNamedDataFolder(fname) 4482 // if(err) 4483 // Print "DataFolder kill err = ",err 4484 // endif 4445 4485 4446 4486 return(err) … … 4467 4507 4468 4508 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4469 err = V_KillNamedDataFolder(fname)4470 if(err)4471 Print "DataFolder kill err = ",err4472 endif4509 // err = V_KillNamedDataFolder(fname) 4510 // if(err) 4511 // Print "DataFolder kill err = ",err 4512 // endif 4473 4513 4474 4514 return(err) … … 4493 4533 endif 4494 4534 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4495 err = V_KillNamedDataFolder(fname)4496 if(err)4497 Print "DataFolder kill err = ",err4498 endif4535 // err = V_KillNamedDataFolder(fname) 4536 // if(err) 4537 // Print "DataFolder kill err = ",err 4538 // endif 4499 4539 return(err) 4500 4540 End … … 4518 4558 4519 4559 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4520 err = V_KillNamedDataFolder(fname)4521 if(err)4522 Print "DataFolder kill err = ",err4523 endif4560 // err = V_KillNamedDataFolder(fname) 4561 // if(err) 4562 // Print "DataFolder kill err = ",err 4563 // endif 4524 4564 4525 4565 return(err) … … 4549 4589 endif 4550 4590 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4551 err = V_KillNamedDataFolder(fname)4552 if(err)4553 Print "DataFolder kill err = ",err4554 endif4591 // err = V_KillNamedDataFolder(fname) 4592 // if(err) 4593 // Print "DataFolder kill err = ",err 4594 // endif 4555 4595 return(err) 4556 4596 End … … 4583 4623 endif 4584 4624 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4585 err = V_KillNamedDataFolder(fname)4586 if(err)4587 Print "DataFolder kill err = ",err4588 endif4625 // err = V_KillNamedDataFolder(fname) 4626 // if(err) 4627 // Print "DataFolder kill err = ",err 4628 // endif 4589 4629 return(err) 4590 4630 end … … 4609 4649 4610 4650 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4611 err = V_KillNamedDataFolder(fname)4612 if(err)4613 Print "DataFolder kill err = ",err4614 endif4651 // err = V_KillNamedDataFolder(fname) 4652 // if(err) 4653 // Print "DataFolder kill err = ",err 4654 // endif 4615 4655 4616 4656 return(err) … … 4636 4676 endif 4637 4677 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4638 err = V_KillNamedDataFolder(fname)4639 if(err)4640 Print "DataFolder kill err = ",err4641 endif4678 // err = V_KillNamedDataFolder(fname) 4679 // if(err) 4680 // Print "DataFolder kill err = ",err 4681 // endif 4642 4682 return(err) 4643 4683 end … … 4663 4703 endif 4664 4704 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4665 err = V_KillNamedDataFolder(fname)4666 if(err)4667 Print "DataFolder kill err = ",err4668 endif4705 // err = V_KillNamedDataFolder(fname) 4706 // if(err) 4707 // Print "DataFolder kill err = ",err 4708 // endif 4669 4709 return(err) 4670 4710 end … … 4690 4730 endif 4691 4731 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4692 err = V_KillNamedDataFolder(fname)4693 if(err)4694 Print "DataFolder kill err = ",err4695 endif4732 // err = V_KillNamedDataFolder(fname) 4733 // if(err) 4734 // Print "DataFolder kill err = ",err 4735 // endif 4696 4736 return(err) 4697 4737 end … … 4716 4756 4717 4757 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4718 err = V_KillNamedDataFolder(fname)4719 if(err)4720 Print "DataFolder kill err = ",err4721 endif4758 // err = V_KillNamedDataFolder(fname) 4759 // if(err) 4760 // Print "DataFolder kill err = ",err 4761 // endif 4722 4762 4723 4763 return(err) … … 4744 4784 endif 4745 4785 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4746 err = V_KillNamedDataFolder(fname)4747 if(err)4748 Print "DataFolder kill err = ",err4749 endif4786 // err = V_KillNamedDataFolder(fname) 4787 // if(err) 4788 // Print "DataFolder kill err = ",err 4789 // endif 4750 4790 return(err) 4751 4791 end … … 4771 4811 endif 4772 4812 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4773 err = V_KillNamedDataFolder(fname)4774 if(err)4775 Print "DataFolder kill err = ",err4776 endif4813 // err = V_KillNamedDataFolder(fname) 4814 // if(err) 4815 // Print "DataFolder kill err = ",err 4816 // endif 4777 4817 return(err) 4778 4818 end … … 4797 4837 endif 4798 4838 // now be sure to kill the data folder to force a re-read of the data next time this file is read in 4799 err = V_KillNamedDataFolder(fname)4800 if(err)4801 Print "DataFolder kill err = ",err4802 endif4839 // err = V_KillNamedDataFolder(fname) 4840 //&