Ignore:
Timestamp:
Feb 26, 2019 3:36:45 PM (4 years ago)
Author:
srkline
Message:

more additions to VCALC functionality and bug fixes

Location:
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS
Files:
4 edited

Legend:

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

    r1128 r1129  
    9696        // do the q-binning for each of the panels to get I(Q) 
    9797//      BinAllFrontPanels() 
     98 
    9899        String popStr 
    99         String collimationStr = "pinhole" 
    100         ControlInfo/W=VCALC popup_b 
    101         popStr = S_Value                // 
    102         V_QBinAllPanels_Circular("VCALC",V_BinTypeStr2Num(popStr),collimationStr) 
     100//      String collimationStr = "pinhole" 
     101//      ControlInfo/W=VCALC popup_b 
     102//      popStr = S_Value                // 
     103//      V_QBinAllPanels_Circular("VCALC",V_BinTypeStr2Num(popStr),collimationStr) 
    103104 
    104105        // plot the results 
    105         String type = "VCALC" 
    106         String str,winStr="VCALC#Panels_IQ",workTypeStr 
    107         workTypeStr = "root:Packages:NIST:VSANS:"+type 
    108  
    109         ControlInfo/W=VCALC popup_b 
    110         popStr = S_Value                // 
    111          
    112         sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
    113  
    114         Execute ("V_Front_IQ_Graph"+str) 
     106//      String type = "VCALC" 
     107//      String str,winStr="VCALC#Panels_IQ",workTypeStr 
     108//      workTypeStr = "root:Packages:NIST:VSANS:"+type 
     109// 
     110//      ControlInfo/W=VCALC popup_b 
     111//      popStr = S_Value                // 
     112//       
     113//      sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
     114// 
     115//      Execute ("V_Front_IQ_Graph"+str) 
    115116                 
    116117//      Execute "Front_IQ_Graph()" 
     
    642643        // do the q-binning for each of the panels to get I(Q) 
    643644//      BinAllMiddlePanels() 
    644         String popStr 
    645         String collimationStr = "pinhole" 
    646         ControlInfo/W=VCALC popup_b 
    647         popStr = S_Value                // 
    648         V_QBinAllPanels_Circular("VCALC",V_BinTypeStr2Num(popStr),collimationStr) 
     645 
     646//      String popStr 
     647//      String collimationStr = "pinhole" 
     648//      ControlInfo/W=VCALC popup_b 
     649//      popStr = S_Value                // 
     650//      V_QBinAllPanels_Circular("VCALC",V_BinTypeStr2Num(popStr),collimationStr) 
    649651 
    650652        // plot the results 
    651         String type = "VCALC" 
    652         String str,winStr="VCALC#Panels_IQ",workTypeStr 
    653         workTypeStr = "root:Packages:NIST:VSANS:"+type 
    654  
    655         ControlInfo/W=VCALC popup_b 
    656         popStr = S_Value                // 
    657          
    658         sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
    659  
    660         Execute ("V_Middle_IQ_Graph"+str) 
     653//      String type = "VCALC" 
     654//      String str,winStr="VCALC#Panels_IQ",workTypeStr 
     655//      workTypeStr = "root:Packages:NIST:VSANS:"+type 
     656 
     657//      ControlInfo/W=VCALC popup_b 
     658//      popStr = S_Value                // 
     659         
     660//      sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
     661// 
     662//      Execute ("V_Middle_IQ_Graph"+str) 
    661663                 
    662664 
     
    12221224         
    12231225        // do the q-binning for each of the panels to get I(Q) 
    1224         BinAllBackPanels() 
     1226 
     1227//      BinAllBackPanels() 
    12251228 
    12261229        // plot the results 
    1227         String type = "VCALC" 
    1228         String str,winStr="VCALC#Panels_IQ",workTypeStr,popStr 
    1229         workTypeStr = "root:Packages:NIST:VSANS:"+type 
    1230  
    1231         ControlInfo/W=VCALC popup_b 
    1232         popStr = S_Value                // 
    1233          
    1234         sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
    1235  
    1236         Execute ("V_Back_IQ_Graph"+str) 
     1230//      String type = "VCALC" 
     1231//      String str,winStr="VCALC#Panels_IQ",workTypeStr,popStr 
     1232//      workTypeStr = "root:Packages:NIST:VSANS:"+type 
     1233 
     1234//      ControlInfo/W=VCALC popup_b 
     1235//      popStr = S_Value                // 
     1236         
     1237//      sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
     1238// 
     1239//      Execute ("V_Back_IQ_Graph"+str) 
    12371240                 
    12381241                 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_UtilityProcedures.ipf

    r1128 r1129  
    8989        ControlInfo/W=VCALC VCALCCtrl_0d 
    9090 
    91         return(V_Value) 
     91        return(str2num(S_Value)) 
    9292end 
    9393 
     
    293293        return(val) 
    294294End 
     295 
     296 
    295297/////////////////// 
    296298// 
     
    317319// 
    318320//  
    319 Function VC_FrontMiddlePreset() 
    320  
     321Function VC_Preset_FrontMiddle_Ng0() 
     322 
     323// set preference to ignore back detector 
     324        NVAR gIgnoreB = root:Packages:NIST:VSANS:Globals:gIgnoreDetB 
     325        gIgnoreB = 1 
     326         
    321327        // front carriage 
    322         SetVariable VCALCCtrl_2a,value=_NUM:-20         //Left offset 
    323         SetVariable VCALCCtrl_2aa,value=_NUM:20         //Right offset 
     328        SetVariable VCALCCtrl_2a,value=_NUM:-10         //Left offset 
     329        SetVariable VCALCCtrl_2aa,value=_NUM:10         //Right offset 
    324330        SetVariable VCALCCtrl_2b,value=_NUM:4                   //Top offset 
    325331        SetVariable VCALCCtrl_2bb,value=_NUM:-4         //Bottom offset 
    326332 
    327         SetVariable VCALCCtrl_2d,value=_NUM:120         //SDD 
     333        SetVariable VCALCCtrl_2d,value=_NUM:400         //SDD 
    328334 
    329335        // middle carriage 
     
    346352         
    347353        // wavelength 
    348         SetVariable VCALCCtrl_0b,value=_NUM:8,disable=0 ,noedit=0       // allow user editing again 
     354        SetVariable VCALCCtrl_0b,value=_NUM:6 
    349355 
    350356        //number of guides 
    351         Slider VCALCCtrl_0a,value= 0 
    352  
    353  
     357//      Slider VCALCCtrl_0a,value= 0 
     358        V_GuideSliderProc("VCALCCtrl_0a",0,1)           //Set Ng=0, resets the aperture string to the new string 
     359        Slider VCALCCtrl_0a,value=0 
     360 
     361         
     362// source aperture (+new string) 
     363        PopupMenu VCALCCtrl_0f,mode=3           //set the 3.0 cm aperture 
     364         
    354365// binning mode 
    355366        PopupMenu popup_b,mode=1,popValue="F2-M2xTB-B" 
     
    358369        return(0) 
    359370End 
     371 
     372 
     373Function VC_Preset_FrontMiddle_Ng2() 
     374 
     375        // front carriage 
     376        SetVariable VCALCCtrl_2a,value=_NUM:-10         //Left offset 
     377        SetVariable VCALCCtrl_2aa,value=_NUM:10         //Right offset 
     378        SetVariable VCALCCtrl_2b,value=_NUM:4                   //Top offset 
     379        SetVariable VCALCCtrl_2bb,value=_NUM:-4         //Bottom offset 
     380 
     381        SetVariable VCALCCtrl_2d,value=_NUM:350         //SDD 
     382 
     383        // middle carriage 
     384        SetVariable VCALCCtrl_3a,value=_NUM:-10         //Left offset 
     385        SetVariable VCALCCtrl_3aa,value=_NUM:-10                //Right offset 
     386        SetVariable VCALCCtrl_3b,value=_NUM:4                   //Top offset (doesn't matter) 
     387        SetVariable VCALCCtrl_3bb,value=_NUM:-4         //Bottom offset (doesn't matter) 
     388 
     389        SetVariable VCALCCtrl_3d,value=_NUM:1600                //SDD 
     390         
     391         
     392        // monochromator 
     393        PopupMenu VCALCCtrl_0c,mode=1,popvalue="Velocity Selector" 
     394         
     395        // wavelength spread 
     396        SVAR DLStr = root:Packages:NIST:VSANS:VCALC:gDeltaLambda 
     397        DLStr = "0.12;" 
     398//      PopupMenu VCALCCtrl_0d,mode=1,popvalue="0.12",value= root:Packages:NIST:VSANS:VCALC:gDeltaLambda 
     399        PopupMenu VCALCCtrl_0d,mode=1,popvalue="0.12" 
     400         
     401        // wavelength 
     402        SetVariable VCALCCtrl_0b,value=_NUM:6 
     403 
     404        //number of guides 
     405//      Slider VCALCCtrl_0a,value= 0 
     406        V_GuideSliderProc("VCALCCtrl_0a",2,1)           //Set Ng=2, resets the aperture string to the new string 
     407        Slider VCALCCtrl_0a,value=2 
     408         
     409// source aperture (+new string) 
     410        PopupMenu VCALCCtrl_0f,mode=1           //6.0 cm aperture 
     411         
     412 
     413// binning mode 
     414        PopupMenu popup_b,mode=1,popValue="F2-M2xTB-B" 
     415 
     416 
     417        return(0) 
     418End 
     419 
     420Function VC_Preset_FrontMiddle_Ng7() 
     421 
     422        // front carriage 
     423        SetVariable VCALCCtrl_2a,value=_NUM:-10         //Left offset 
     424        SetVariable VCALCCtrl_2aa,value=_NUM:10         //Right offset 
     425        SetVariable VCALCCtrl_2b,value=_NUM:4                   //Top offset 
     426        SetVariable VCALCCtrl_2bb,value=_NUM:-4         //Bottom offset 
     427 
     428        SetVariable VCALCCtrl_2d,value=_NUM:230         //SDD 
     429 
     430        // middle carriage 
     431        SetVariable VCALCCtrl_3a,value=_NUM:-10         //Left offset 
     432        SetVariable VCALCCtrl_3aa,value=_NUM:-10                //Right offset 
     433        SetVariable VCALCCtrl_3b,value=_NUM:4                   //Top offset (doesn't matter) 
     434        SetVariable VCALCCtrl_3bb,value=_NUM:-4         //Bottom offset (doesn't matter) 
     435 
     436        SetVariable VCALCCtrl_3d,value=_NUM:1100                //SDD 
     437         
     438         
     439        // monochromator 
     440        PopupMenu VCALCCtrl_0c,mode=1,popvalue="Velocity Selector" 
     441         
     442        // wavelength spread 
     443        SVAR DLStr = root:Packages:NIST:VSANS:VCALC:gDeltaLambda 
     444        DLStr = "0.12;" 
     445//      PopupMenu VCALCCtrl_0d,mode=1,popvalue="0.12",value= root:Packages:NIST:VSANS:VCALC:gDeltaLambda 
     446        PopupMenu VCALCCtrl_0d,mode=1,popvalue="0.12" 
     447         
     448        // wavelength 
     449        SetVariable VCALCCtrl_0b,value=_NUM:6 
     450 
     451        //number of guides 
     452//      Slider VCALCCtrl_0a,value= 0 
     453        V_GuideSliderProc("VCALCCtrl_0a",7,1)           //Set Ng=7, resets the aperture string to the new string 
     454        Slider VCALCCtrl_0a,value=7 
     455 
     456// source aperture (+new string) 
     457        PopupMenu VCALCCtrl_0f,mode=1           //6.0 cm aperture 
     458 
     459 
     460// binning mode 
     461        PopupMenu popup_b,mode=1,popValue="F2-M2xTB-B" 
     462 
     463 
     464        return(0) 
     465End 
     466 
     467Function VC_Preset_FrontMiddle_Ng9() 
     468 
     469        // front carriage 
     470        SetVariable VCALCCtrl_2a,value=_NUM:-10         //Left offset 
     471        SetVariable VCALCCtrl_2aa,value=_NUM:10         //Right offset 
     472        SetVariable VCALCCtrl_2b,value=_NUM:4                   //Top offset 
     473        SetVariable VCALCCtrl_2bb,value=_NUM:-4         //Bottom offset 
     474 
     475        SetVariable VCALCCtrl_2d,value=_NUM:100         //SDD 
     476 
     477        // middle carriage 
     478        SetVariable VCALCCtrl_3a,value=_NUM:-10         //Left offset 
     479        SetVariable VCALCCtrl_3aa,value=_NUM:-10                //Right offset 
     480        SetVariable VCALCCtrl_3b,value=_NUM:4                   //Top offset (doesn't matter) 
     481        SetVariable VCALCCtrl_3bb,value=_NUM:-4         //Bottom offset (doesn't matter) 
     482 
     483        SetVariable VCALCCtrl_3d,value=_NUM:450         //SDD 
     484         
     485         
     486         
     487        // monochromator 
     488        PopupMenu VCALCCtrl_0c,mode=1,popvalue="Velocity Selector" 
     489         
     490        // wavelength spread 
     491        SVAR DLStr = root:Packages:NIST:VSANS:VCALC:gDeltaLambda 
     492        DLStr = "0.12;" 
     493//      PopupMenu VCALCCtrl_0d,mode=1,popvalue="0.12",value= root:Packages:NIST:VSANS:VCALC:gDeltaLambda 
     494        PopupMenu VCALCCtrl_0d,mode=1,popvalue="0.12" 
     495         
     496        // wavelength 
     497        SetVariable VCALCCtrl_0b,value=_NUM:6 
     498 
     499        //number of guides 
     500//      Slider VCALCCtrl_0a,value= 0 
     501        V_GuideSliderProc("VCALCCtrl_0a",9,1)           //Set Ng=9, resets the aperture string to the new string 
     502        Slider VCALCCtrl_0a,value=9 
     503 
     504// source aperture (+new string) 
     505        PopupMenu VCALCCtrl_0f,mode=1           //6.0 cm aperture 
     506 
     507 
     508// binning mode 
     509        PopupMenu popup_b,mode=1,popValue="F2-M2xTB-B" 
     510 
     511 
     512        return(0) 
     513End 
     514 
     515 
    360516 
    361517 
     
    364520// - disregard the back detector (set as front/middle) 
    365521// 
    366 Function VC_WhiteBeamPreset() 
    367  
    368         VC_FrontMiddlePreset()          // moves Middle into contact (but w/ wrong lambda) 
     522Function VC_Preset_WhiteBeam() 
     523 
     524        VC_Preset_FrontMiddle_Ng0()             // moves Middle into contact (but w/ wrong lambda) 
    369525        // monochromator 
    370526        PopupMenu VCALCCtrl_0c,mode=1,popvalue="White Beam" 
     
    387543// - uses the back detector (set as front/middle) 
    388544// 
    389 Function VC_GraphiteMonoPreset() 
     545Function VC_Preset_GraphiteMono() 
    390546 
    391547        // front carriage 
     
    594750     
    595751        // sample aperture diam [cm] 
    596         ControlInfo VCALCCtrl_1c 
    597         a2 = V_Value 
     752        a2 = VC_sampleApertureDiam() 
    598753     
    599754//      alpha = (a1+a2)/(2*l1)  //angular divergence of beam 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_VCALCPanel_MockUp.ipf

    r1128 r1129  
    7070 
    7171        PopupMenu popup_a,pos={50,40},size={142,20},title="Presets" 
    72         PopupMenu popup_a,mode=1,popvalue="Low Q",value= root:Packages:NIST:VSANS:VCALC:gPresetPopStr 
     72        PopupMenu popup_a,mode=1,popvalue="F+M Ng0 Low Q",value= root:Packages:NIST:VSANS:VCALC:gPresetPopStr 
    7373        PopupMenu popup_a,proc=VC_PresetConfigPopup 
    7474 
     
    235235 
    236236// 
    237 // just recalculates the detector panels, doesn't adjust the views 
     237// recalculates the detector panels, doesn't adjust the views 
    238238// 
    239239Function Recalculate_AllDetectors() 
    240240 
     241// calculates Q for each panel 
     242// and fills 2D panels with model data 
    241243        fPlotBackPanels() 
    242244        fPlotMiddlePanels() 
    243245        fPlotFrontPanels() 
    244246 
     247        String popStr 
     248        String collimationStr = "pinhole" 
     249        ControlInfo/W=VCALC popup_b 
     250        popStr = S_Value                // 
     251        V_QBinAllPanels_Circular("VCALC",V_BinTypeStr2Num(popStr),collimationStr) 
     252 
     253 
     254        // plot the results (1D) 
     255        String type = "VCALC" 
     256        String str,winStr="VCALC#Panels_IQ",workTypeStr 
     257        workTypeStr = "root:Packages:NIST:VSANS:"+type 
     258         
     259        sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
     260        Execute ("V_Back_IQ_Graph"+str) 
     261                 
     262        Execute ("V_Middle_IQ_Graph"+str) 
     263         
     264        Execute ("V_Front_IQ_Graph"+str) 
     265 
     266 
     267 
     268 
     269         
    245270        V_beamIntensity() 
    246271         
     
    259284        V_QMin_withBeamStop("MR")               //TODO -- hard-wired here as the middle carriage and MR panel 
    260285         
    261          
    262         // 
    263 //      Print "Still need to truncate the plotted data for Low Q that is behind the beam stop" 
    264286        // multiply the averaged data by the shadow factor to simulate a beamstop 
    265287        V_IQ_BeamstopShadow() 
     
    508530End 
    509531 
    510  
     532// 
     533// 
     534// "F+M Ng0 Low Q;F+M Ng2 Mid Q;F+M Ng7 Mid Q;F+M Ng9 High Q;Converging Pinholes;Narrow Slit;White Beam;Graphite;Polarizer;" 
     535// 
    511536Function VC_PresetConfigPopup(pa) : PopupMenuControl 
    512537        STRUCT WMPopupAction &pa 
     
    520545                 
    521546                        strswitch(popStr) 
    522                                 case "Low Q": 
     547                                case "F+M Ng0 Low Q": 
     548                                        VC_Preset_FrontMiddle_Ng0() 
     549                                        break 
     550                                case "F+M Ng2 Mid Q": 
     551                                        VC_Preset_FrontMiddle_Ng2() 
     552                                        break 
     553                                case "F+M Ng7 Mid Q": 
     554                                        VC_Preset_FrontMiddle_Ng7() 
     555                                        break 
     556                                case "F+M Ng9 High Q": 
     557                                        VC_Preset_FrontMiddle_Ng9() 
     558                                        break 
    523559                                         
    524                                         break 
    525                                 case "High Q": 
    526                                          
    527                                         break 
    528560                                case "White Beam": 
    529                                         VC_WhiteBeamPreset() 
    530                                         binStr = "F4-M4-B" 
     561                                        VC_Preset_WhiteBeam() 
    531562                                        break    
    532563                                case "Graphite": 
    533                                         VC_GraphiteMonoPreset() 
    534                                         binStr = "F4-M4-B" 
     564                                        VC_Preset_GraphiteMono() 
    535565                                        break 
    536566                                case "Narrow Slit": 
    537567                                         
    538                                         break 
    539                                 case "Front+Middle Only": 
    540                                         VC_FrontMiddlePreset() 
    541                                         binStr = "F2-M2xTB-B" 
    542568                                        break 
    543569                                case "Converging Pinholes": 
     
    557583                         
    558584                        // a recalculation is needed after the change 
     585                        // this re-bins the data too 
    559586                        Recalculate_AllDetectors() 
    560587                         
    561588                        // re-bin the data? 
    562                         VC_RebinIQ_PopProc("",0,binStr) 
     589//                      VC_RebinIQ_PopProc("",0,binStr) 
    563590                                         
    564591                        break 
     
    649676//                      // don't need to recalculate the views, but need to recalculate the detectors 
    650677 
    651                         Recalculate_AllDetectors()               
     678//                      Recalculate_AllDetectors()               
    652679                                 
    653680                        break 
     
    675702//                      // don't need to recalculate the views, but need to recalculate the detectors 
    676703 
    677                         Recalculate_AllDetectors()               
     704//                      Recalculate_AllDetectors()               
    678705                                 
    679706                        break 
     
    12161243// to fill in: 
    12171244// values for always-visible items 
    1218         String/G gPresetPopStr = "Low Q;High Q;Front+Middle Only;Converging Pinholes;Narrow Slit;White Beam;Graphite;Polarizer;" 
     1245        String/G gPresetPopStr = "F+M Ng0 Low Q;F+M Ng2 Mid Q;F+M Ng7 Mid Q;F+M Ng9 High Q;Converging Pinholes;Narrow Slit;White Beam;Graphite;Polarizer;" 
    12191246        String/G gBinTypeStr = ksBinTypeStr 
    12201247        Variable/G gBeamIntensity= 0 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_DataPlotting.ipf

    r1108 r1129  
    896896                        if(V_flag==0) 
    897897                                AppendtoGraph/W=$winNameStr iBin_qxqy_B vs qBin_qxqy_B 
     898 
    898899                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B Y,wave=(:eBin_qxqy_B,:eBin_qxqy_B) 
    899900                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B)=4 
Note: See TracChangeset for help on using the changeset viewer.