Ignore:
Timestamp:
Feb 25, 2016 4:30:38 PM (7 years ago)
Author:
srkline
Message:

more changes and additons to display VSANS data

adding functions for IvsQ plotting

coverted much of VCALC to have similar folder structure as HDF to allow re-use of the Q-binning procedures from VCALC with real data in work files.

re-working the beam center finder to get it to work with work file data rather then only VCALC.

new plotting routines for the panels to rescale to the beam center (still in pixels, though)

File:
1 edited

Legend:

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

    r963 r982  
    4747        // space is allocated for all of the detectors and Q's on initialization 
    4848        // calculate Qtot, qxqyqz arrays from geometry 
    49         V_CalculateQFrontPanels() 
     49        VC_CalculateQFrontPanels() 
    5050         
    5151        // fill the panels with fake sphere scattering data 
    5252        // TODO: am I in the right data folder?? 
    53         SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
    54  
    55         WAVE det_FL = det_FL 
    56         WAVE det_FR = det_FR 
    57         WAVE det_FT = det_FT 
    58         WAVE det_FB = det_FB 
    59          
    60         WAVE qTot_FL = qTot_FL 
    61         WAVE qTot_FR = qTot_FR 
    62         WAVE qTot_FT = qTot_FT 
    63         WAVE qTot_FB = qTot_FB 
     53//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
     54 
     55        String folderStr = "VCALC" 
     56        String detStr = "" 
     57 
     58        String folderPath = "root:Packages:NIST:VSANS:"+folderStr 
     59        String instPath = ":entry:entry:instrument:detector_"    
     60 
     61        detStr = "FL" 
     62        WAVE det_FL = $(folderPath+instPath+detStr+":det_"+detStr)       
     63        WAVE qTot_FL = $(folderPath+instPath+detStr+":qTot_"+detStr) 
     64         
     65        detStr = "FR" 
     66        WAVE det_FR = $(folderPath+instPath+detStr+":det_"+detStr)       
     67        WAVE qTot_FR = $(folderPath+instPath+detStr+":qTot_"+detStr) 
     68         
     69        detStr = "FT" 
     70        WAVE det_FT = $(folderPath+instPath+detStr+":det_"+detStr)       
     71        WAVE qTot_FT = $(folderPath+instPath+detStr+":qTot_"+detStr) 
     72         
     73        detStr = "FB" 
     74        WAVE det_FB = $(folderPath+instPath+detStr+":det_"+detStr)       
     75        WAVE qTot_FB = $(folderPath+instPath+detStr+":qTot_"+detStr) 
    6476 
    6577        FillPanel_wModelData(det_FL,qTot_FL,"FL") 
     
    7486        // -- I can get the separation L/R from the panel - only this "open" width is visible. 
    7587        //TODO - make this a proper shadow - TB extent of the LR panels matters too, not just the LR separation 
    76         V_SetShadow_TopBottom("Front","FT")             // TODO: -- be sure the data folder is properly set (within the function...) 
    77         V_SetShadow_TopBottom("Front","FB") 
     88        VC_SetShadow_TopBottom("VCALC","FT")            // TODO: -- be sure the data folder is properly set (within the function...) 
     89        VC_SetShadow_TopBottom("VCALC","FB") 
    7890         
    7991        // do the q-binning for each of the panels to get I(Q) 
     
    8294        // plot the results 
    8395        Execute "Front_IQ_Graph()" 
    84         Execute "FrontPanels_AsQ()" 
     96        FrontPanels_AsQ() 
    8597         
    8698        return(0) 
     
    102114//     when anything changes 
    103115// 
    104 Function V_CalculateQFrontPanels() 
     116// TODO 
     117// NOTE -- this is VCALC ONLY. data is not referenced for hdf here, and data is rescaled based on VCALC assumptions 
     118// 
     119Function VC_CalculateQFrontPanels() 
    105120 
    106121        Variable xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY,nPix_X,nPix_Y 
    107122        Variable F_LR_sep,F_TB_sep,F_offset,F_sdd_offset 
     123 
     124        String folderPath = "root:Packages:NIST:VSANS:VCALC" 
     125        String instPath = ":entry:entry:instrument:detector_" 
     126        String detStr="" 
    108127 
    109128// get the values from the panel + constants     
     
    125144        F_sdd_offset = VCALC_getTopBottomSDDOffset("FT")        //T/B are 300 mm farther back  //TODO: make all detector parameters global, not hard-wired 
    126145 
    127         SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
    128         Wave det_FL,det_FR                      // these are (48,128)           (nominal, may change) 
    129         Wave det_FT,det_FB                      // these are (128,48) 
    130  
    131 //FRONT/LEFT     
    132         WAVE qTot_FL,qx_FL,qy_FL,qz_FL 
     146// detector data to bin 
     147//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
     148        Wave det_FL = $(folderPath+instPath+"FL"+":det_FL") 
     149        Wave det_FR = $(folderPath+instPath+"FR"+":det_FR")             // these are (48,128)           (nominal, may change) 
     150 
     151        Wave det_FT = $(folderPath+instPath+"FT"+":det_FT") 
     152        Wave det_FB = $(folderPath+instPath+"FB"+":det_FB")             // these are (128,48) 
     153 
     154//FRONT/LEFT 
     155        detStr = "FL" 
     156        Wave qTot_FL = $(folderPath+instPath+detStr+":qTot_"+detStr)                    // 2D q-values 
     157        Wave qx_FL = $(folderPath+instPath+detStr+":qx_"+detStr) 
     158        Wave qy_FL = $(folderPath+instPath+detStr+":qy_"+detStr)         
     159        Wave qz_FL = $(folderPath+instPath+detStr+":qz_"+detStr)         
     160 
    133161        qTot_FL = 0 
    134162        qx_FL = 0 
     
    147175        xCtr = nPix_X+(F_LR_sep/2/pixSizeX)             // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)?? 
    148176        yCtr = nPix_Y/2  
    149         V_Detector_2Q(det_FL,qTot_FL,qx_FL,qy_FL,qz_FL,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
     177        VC_Detector_2Q(det_FL,qTot_FL,qx_FL,qy_FL,qz_FL,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
    150178//      Print "xy for FL = ",xCtr,yCtr 
    151179         
     
    159187 
    160188//FRONT/RIGHT 
    161         SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
    162         WAVE qTot_FR,qx_FR,qy_FR,qz_FR 
     189//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
     190        detStr = "FR" 
     191        Wave qTot_FR = $(folderPath+instPath+detStr+":qTot_"+detStr)                    // 2D q-values 
     192        Wave qx_FR = $(folderPath+instPath+detStr+":qx_"+detStr) 
     193        Wave qy_FR = $(folderPath+instPath+detStr+":qy_"+detStr)         
     194        Wave qz_FR = $(folderPath+instPath+detStr+":qz_"+detStr)         
     195         
    163196        qTot_FR = 0 
    164197        qx_FR = 0 
     
    175208        xCtr = -(F_LR_sep/2/pixSizeX)-1          
    176209        yCtr = nPix_Y/2  
    177         V_Detector_2Q(det_FR,qTot_FR,qx_FR,qy_FR,qz_FR,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
     210        VC_Detector_2Q(det_FR,qTot_FR,qx_FR,qy_FR,qz_FR,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
    178211//      Print "xy for FR = ",xCtr,yCtr 
    179212        SetScale/I x WaveMin(qx_FR),WaveMax(qx_FR),"", det_FR           //this sets the left and right ends of the data scaling 
     
    182215 
    183216//FRONT/TOP 
    184         SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
    185         WAVE qTot_FT,qx_FT,qy_FT,qz_FT 
     217//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
     218        detStr = "FT" 
     219        Wave qTot_FT = $(folderPath+instPath+detStr+":qTot_"+detStr)                    // 2D q-values 
     220        Wave qx_FT = $(folderPath+instPath+detStr+":qx_"+detStr) 
     221        Wave qy_FT = $(folderPath+instPath+detStr+":qy_"+detStr)         
     222        Wave qz_FT = $(folderPath+instPath+detStr+":qz_"+detStr)         
     223 
    186224        qTot_FT = 0 
    187225        qx_FT = 0 
     
    199237        yCtr = -(F_TB_sep/2/pixSizeY)-1    
    200238        // global sdd_offset is in (mm), convert to meters here for the Q-calculation 
    201         V_Detector_2Q(det_FT,qTot_FT,qx_FT,qy_FT,qz_FT,xCtr,yCtr,sdd+F_sdd_offset/1000,lam,pixSizeX,pixSizeY) 
     239        VC_Detector_2Q(det_FT,qTot_FT,qx_FT,qy_FT,qz_FT,xCtr,yCtr,sdd+F_sdd_offset/1000,lam,pixSizeX,pixSizeY) 
    202240//      Print "xy for FT = ",xCtr,yCtr 
    203241        SetScale/I x WaveMin(qx_FT),WaveMax(qx_FT),"", det_FT           //this sets the left and right ends of the data scaling 
     
    206244 
    207245//FRONT/BOTTOM 
    208         SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
    209         WAVE qTot_FB,qx_FB,qy_FB,qz_FB 
     246//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
     247        detStr = "FB" 
     248        Wave qTot_FB = $(folderPath+instPath+detStr+":qTot_"+detStr)                    // 2D q-values 
     249        Wave qx_FB = $(folderPath+instPath+detStr+":qx_"+detStr) 
     250        Wave qy_FB = $(folderPath+instPath+detStr+":qy_"+detStr)         
     251        Wave qz_FB = $(folderPath+instPath+detStr+":qz_"+detStr)         
     252 
    210253        qTot_FB = 0 
    211254        qx_FB = 0 
     
    223266        yCtr = nPix_Y+(F_TB_sep/2/pixSizeY)             // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)?? 
    224267        // global sdd_offset is in (mm), convert to meters here for the Q-calculation 
    225         V_Detector_2Q(det_FB,qTot_FB,qx_FB,qy_FB,qz_FB,xCtr,yCtr,sdd+F_sdd_offset/1000,lam,pixSizeX,pixSizeY) 
     268        VC_Detector_2Q(det_FB,qTot_FB,qx_FB,qy_FB,qz_FB,xCtr,yCtr,sdd+F_sdd_offset/1000,lam,pixSizeX,pixSizeY) 
    226269//      Print "xy for FB = ",xCtr,yCtr 
    227270        SetScale/I x WaveMin(qx_FB),WaveMax(qx_FB),"", det_FB           //this sets the left and right ends of the data scaling 
     
    239282// ? skip the masking? but then I bin the detector data directly to get I(q), skipping the masked NaN values... 
    240283// 
    241 Function V_SetShadow_TopBottom(folderStr,type) 
     284Function VC_SetShadow_TopBottom(folderStr,type) 
    242285        String folderStr,type 
    243286         
     
    258301 
    259302//detector data 
    260         Wave det = $("root:Packages:NIST:VSANS:VCALC:"+folderStr+":det_"+type) 
     303        Wave det = $("root:Packages:NIST:VSANS:"+folderStr+":entry:entry:instrument:detector_"+type+":det_"+type) 
    261304 
    262305// TODO - these are to be set from globals, not hard-wired 
     
    290333// are rescaled as needed 
    291334// 
    292 Window FrontPanels_AsQ() : Graph 
    293  
    294         SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
    295  
     335Function FrontPanels_AsQ() 
     336 
     337        String frontStr = "root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:" 
     338//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
     339        SetDataFolder $(frontStr+"detector_FB") 
     340        Wave det_FB = det_FB 
     341        SetDataFolder $(frontStr+"detector_FT") 
     342        Wave det_FT = det_FT 
     343        SetDataFolder $(frontStr+"detector_FL") 
     344        Wave det_FL = det_FL 
     345        SetDataFolder $(frontStr+"detector_FR") 
     346        Wave det_FR = det_FR 
     347         
    296348        CheckDisplayed /W=VCALC#Panels_Q det_FB 
    297349        if(V_flag == 0) 
     
    346398Proc BinAllFrontPanels() 
    347399 
    348         SetDeltaQ("Front","FL") 
    349         SetDeltaQ("Front","FT") 
     400        SetDeltaQ("VCALC","FL") 
     401        SetDeltaQ("VCALC","FR") 
     402        SetDeltaQ("VCALC","FT") 
     403        SetDeltaQ("VCALC","FB") 
    350404 
    351405        Variable binType         
     
    354408 
    355409        if(binType == 1) 
    356                 V_BinQxQy_to_1D("","FL") 
    357                 V_BinQxQy_to_1D("","FR") 
    358                 V_BinQxQy_to_1D("","FT") 
    359                 V_BinQxQy_to_1D("","FB") 
     410                VC_BinQxQy_to_1D("VCALC","FL") 
     411                VC_BinQxQy_to_1D("VCALC","FR") 
     412                VC_BinQxQy_to_1D("VCALC","FT") 
     413                VC_BinQxQy_to_1D("VCALC","FB") 
    360414        endif 
    361415         
    362416        if(binType == 2)         
    363                 V_BinQxQy_to_1D("","FLR") 
    364                 V_BinQxQy_to_1D("","FTB") 
     417                VC_BinQxQy_to_1D("VCALC","FLR") 
     418                VC_BinQxQy_to_1D("VCALC","FTB") 
    365419        endif 
    366420 
    367421        if(binType == 3) 
    368                 V_BinQxQy_to_1D("","FLRTB") 
     422                VC_BinQxQy_to_1D("VCALC","FLRTB") 
    369423        endif 
    370424 
     
    372426        if(binType == 4) 
    373427                /// this is for a tall, narrow slit mode         
    374                 V_fBinDetector_byRows("Front","FL") 
    375                 V_fBinDetector_byRows("Front","FR") 
    376                 V_fBinDetector_byRows("Front","FT") 
    377                 V_fBinDetector_byRows("Front","FB") 
     428                VC_fBinDetector_byRows("VCALC","FL") 
     429                VC_fBinDetector_byRows("VCALC","FR") 
     430                VC_fBinDetector_byRows("VCALC","FT") 
     431                VC_fBinDetector_byRows("VCALC","FB") 
    378432        endif 
    379433                 
     
    398452        // space is allocated for all of the detectors and Q's on initialization 
    399453        // calculate Qtot, qxqyqz arrays from geometry 
    400         V_CalculateQMiddlePanels() 
     454        VC_CalculateQMiddlePanels() 
    401455         
    402456        // fill the panels with fake sphere scattering data 
    403457        // TODO: am I in the right data folder?? 
    404         SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
    405  
    406         WAVE det_ML = det_ML 
    407         WAVE det_MR = det_MR 
    408         WAVE det_MT = det_MT 
    409         WAVE det_MB = det_MB 
    410          
    411         WAVE qTot_ML = qTot_ML 
    412         WAVE qTot_MR = qTot_MR 
    413         WAVE qTot_MT = qTot_MT 
    414         WAVE qTot_MB = qTot_MB 
     458//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
     459 
     460        String folderStr = "VCALC" 
     461        String detStr = "" 
     462 
     463        String folderPath = "root:Packages:NIST:VSANS:"+folderStr 
     464        String instPath = ":entry:entry:instrument:detector_"    
     465 
     466        detStr = "ML" 
     467        WAVE det_ML = $(folderPath+instPath+detStr+":det_"+detStr)       
     468        WAVE qTot_ML = $(folderPath+instPath+detStr+":qTot_"+detStr) 
     469 
     470        detStr = "MR" 
     471        WAVE det_MR = $(folderPath+instPath+detStr+":det_"+detStr)       
     472        WAVE qTot_MR = $(folderPath+instPath+detStr+":qTot_"+detStr) 
     473 
     474        detStr = "MT" 
     475        WAVE det_MT = $(folderPath+instPath+detStr+":det_"+detStr)       
     476        WAVE qTot_MT = $(folderPath+instPath+detStr+":qTot_"+detStr) 
     477 
     478        detStr = "MB" 
     479        WAVE det_MB = $(folderPath+instPath+detStr+":det_"+detStr)       
     480        WAVE qTot_MB = $(folderPath+instPath+detStr+":qTot_"+detStr) 
    415481 
    416482        FillPanel_wModelData(det_ML,qTot_ML,"ML") 
     
    424490        // view of how much of the detectors are actually collecting data 
    425491        // -- I can get the separation L/R from the panel - only this "open" width is visible. 
    426         V_SetShadow_TopBottom("Middle","MT")            // TODO: -- be sure the data folder is properly set (within the function...) 
    427         V_SetShadow_TopBottom("Middle","MB") 
     492        VC_SetShadow_TopBottom("VCALC","MT")            // TODO: -- be sure the data folder is properly set (within the function...) 
     493        VC_SetShadow_TopBottom("VCALC","MB") 
    428494         
    429495        // do the q-binning for each of the panels to get I(Q) 
     
    432498        // plot the results 
    433499        Execute "Middle_IQ_Graph()" 
    434         Execute "MiddlePanels_AsQ()" 
     500        MiddlePanels_AsQ() 
    435501         
    436502        return(0) 
     
    451517//     when anything changes 
    452518// 
    453 Function V_CalculateQMiddlePanels() 
     519Function VC_CalculateQMiddlePanels() 
    454520 
    455521        Variable xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY,nPix_X,nPix_Y 
    456522        Variable M_LR_sep,M_TB_sep,M_offset, M_sdd_offset 
    457523 
     524 
     525        String folderPath = "root:Packages:NIST:VSANS:VCALC" 
     526        String instPath = ":entry:entry:instrument:detector_" 
     527        String detStr="" 
     528         
    458529        M_LR_sep = VCALC_getPanelSeparation("MLR") 
    459530        M_TB_sep = VCALC_getPanelSeparation("MTB") 
     
    472543        M_sdd_offset = VCALC_getTopBottomSDDOffset("MT")        //T/B are 30 cm farther back  //TODO: make all detector parameters global, not hard-wired 
    473544 
    474         SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
    475         Wave det_ML,det_MR                      // these are (48,128)           nominal, may change 
    476         Wave det_MT,det_MB                      // these are (128,48) 
    477  
    478 //Middle/LEFT    
    479         WAVE qTot_ML,qx_ML,qy_ML,qz_ML 
     545 
     546//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
     547        Wave det_ML = $(folderPath+instPath+"ML"+":det_ML") 
     548        Wave det_MR = $(folderPath+instPath+"MR"+":det_MR")             // these are (48,128)           (nominal, may change) 
     549 
     550        Wave det_MT = $(folderPath+instPath+"MT"+":det_MT") 
     551        Wave det_MB = $(folderPath+instPath+"MB"+":det_MB")             // these are (128,48) 
     552 
     553//Middle/LEFT 
     554        detStr = "ML" 
     555        Wave qTot_ML = $(folderPath+instPath+detStr+":qTot_"+detStr)                    // 2D q-values 
     556        Wave qx_ML = $(folderPath+instPath+detStr+":qx_"+detStr) 
     557        Wave qy_ML = $(folderPath+instPath+detStr+":qy_"+detStr)         
     558        Wave qz_ML = $(folderPath+instPath+detStr+":qz_"+detStr)         
     559         
    480560        qTot_ML = 0 
    481561        qx_ML = 0 
     
    492572        xCtr = nPix_X+(M_LR_sep/2/pixSizeX)             // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)?? 
    493573        yCtr = nPix_Y/2  
    494         V_Detector_2Q(det_ML,qTot_ML,qx_ML,qy_ML,qz_ML,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
     574        VC_Detector_2Q(det_ML,qTot_ML,qx_ML,qy_ML,qz_ML,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
    495575//      Print "xy for ML = ",xCtr,yCtr 
    496576         
     
    505585 
    506586//Middle/RIGHT 
    507         SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
    508         WAVE qTot_MR,qx_MR,qy_MR,qz_MR 
     587//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
     588        detStr = "MR" 
     589        Wave qTot_MR = $(folderPath+instPath+detStr+":qTot_"+detStr)                    // 2D q-values 
     590        Wave qx_MR = $(folderPath+instPath+detStr+":qx_"+detStr) 
     591        Wave qy_MR = $(folderPath+instPath+detStr+":qy_"+detStr)         
     592        Wave qz_MR = $(folderPath+instPath+detStr+":qz_"+detStr) 
     593         
    509594        qTot_MR = 0 
    510595        qx_MR = 0 
     
    522607        xCtr = -(M_LR_sep/2/pixSizeX)-1          
    523608        yCtr = nPix_Y/2 
    524         V_Detector_2Q(det_MR,qTot_MR,qx_MR,qy_MR,qz_MR,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
     609        VC_Detector_2Q(det_MR,qTot_MR,qx_MR,qy_MR,qz_MR,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
    525610//      Print "xy for MR = ",xCtr,yCtr 
    526611        SetScale/I x WaveMin(qx_MR),WaveMax(qx_MR),"", det_MR           //this sets the left and right ends of the data scaling 
     
    529614 
    530615//Middle/TOP 
    531         SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
    532         WAVE qTot_MT,qx_MT,qy_MT,qz_MT 
     616//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
     617        detStr = "MT" 
     618        Wave qTot_MT = $(folderPath+instPath+detStr+":qTot_"+detStr)                    // 2D q-values 
     619        Wave qx_MT = $(folderPath+instPath+detStr+":qx_"+detStr) 
     620        Wave qy_MT = $(folderPath+instPath+detStr+":qy_"+detStr)         
     621        Wave qz_MT = $(folderPath+instPath+detStr+":qz_"+detStr) 
     622 
    533623        qTot_MT = 0 
    534624        qx_MT = 0 
     
    545635        xCtr = nPix_X/2 
    546636        yCtr = -(M_TB_sep/2/pixSizeY)-1  
    547                 // global sdd_offset is in (mm), convert to meters here for the Q-calculation   
    548         V_Detector_2Q(det_MT,qTot_MT,qx_MT,qy_MT,qz_MT,xCtr,yCtr,sdd+M_sdd_offset/1000,lam,pixSizeX,pixSizeY) 
     637        // global sdd_offset is in (mm), convert to meters here for the Q-calculation   
     638        VC_Detector_2Q(det_MT,qTot_MT,qx_MT,qy_MT,qz_MT,xCtr,yCtr,sdd+M_sdd_offset/1000,lam,pixSizeX,pixSizeY) 
    549639//      Print "xy for MT = ",xCtr,yCtr 
    550         SetScale/I x WaveMin(qx_MT),WaveMax(qx_MT),"", det_MT           //this sets the leMT and right ends of the data scaling 
     640        SetScale/I x WaveMin(qx_MT),WaveMax(qx_MT),"", det_MT           //this sets the left and right ends of the data scaling 
    551641        SetScale/I y WaveMin(qy_MT),WaveMax(qy_MT),"", det_MT 
    552642////////////////// 
    553643 
    554644//Middle/BOTTOM 
    555         SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
    556         WAVE qTot_MB,qx_MB,qy_MB,qz_MB 
     645//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
     646        detStr = "MB" 
     647        Wave qTot_MB = $(folderPath+instPath+detStr+":qTot_"+detStr)                    // 2D q-values 
     648        Wave qx_MB = $(folderPath+instPath+detStr+":qx_"+detStr) 
     649        Wave qy_MB = $(folderPath+instPath+detStr+":qy_"+detStr)         
     650        Wave qz_MB = $(folderPath+instPath+detStr+":qz_"+detStr) 
     651 
    557652        qTot_MB = 0 
    558653        qx_MB = 0 
     
    570665        yCtr = nPix_Y+(M_TB_sep/2/pixSizeY)             // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)?? 
    571666                // global sdd_offset is in (mm), convert to meters here for the Q-calculation 
    572         V_Detector_2Q(det_MB,qTot_MB,qx_MB,qy_MB,qz_MB,xCtr,yCtr,sdd+M_sdd_offset/1000,lam,pixSizeX,pixSizeY) 
     667        VC_Detector_2Q(det_MB,qTot_MB,qx_MB,qy_MB,qz_MB,xCtr,yCtr,sdd+M_sdd_offset/1000,lam,pixSizeX,pixSizeY) 
    573668//      Print "xy for MB = ",xCtr,yCtr 
    574669        SetScale/I x WaveMin(qx_MB),WaveMax(qx_MB),"", det_MB           //this sets the left and right ends of the data scaling 
     
    582677 
    583678 
    584 Window MiddlePanels_AsQ() : Graph 
     679Function MiddlePanels_AsQ() 
    585680//      DoWindow/F MiddlePanels_AsQ 
    586681//      if(V_flag == 0) 
     
    588683//      Display /W=(1477,44,1978,517) 
    589684 
    590         SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
     685        String midStr = "root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:" 
     686//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Middle 
     687        SetDataFolder $(midStr+"detector_MB") 
     688        Wave det_MB = det_MB 
     689        SetDataFolder $(midStr+"detector_MT") 
     690        Wave det_MT = det_MT 
     691        SetDataFolder $(midStr+"detector_ML") 
     692        Wave det_ML = det_ML 
     693        SetDataFolder $(midStr+"detector_MR") 
     694        Wave det_MR = det_MR 
    591695 
    592696        CheckDisplayed /W=VCALC#Panels_Q det_MB 
     697         
    593698        if(V_flag == 0) 
    594699                AppendImage/W=VCALC#Panels_Q det_MB 
     
    643748Proc BinAllMiddlePanels() 
    644749 
    645         SetDeltaQ("Middle","ML") 
    646         SetDeltaQ("Middle","MT") 
     750        SetDeltaQ("VCALC","ML") 
     751        SetDeltaQ("VCALC","MR") 
     752        SetDeltaQ("VCALC","MT") 
     753        SetDeltaQ("VCALC","MB") 
    647754 
    648755        Variable binType         
     
    651758 
    652759        if(binType == 1) 
    653                 V_BinQxQy_to_1D("","ML") 
    654                 V_BinQxQy_to_1D("","MR") 
    655                 V_BinQxQy_to_1D("","MT") 
    656                 V_BinQxQy_to_1D("","MB") 
     760                VC_BinQxQy_to_1D("VCALC","ML") 
     761                VC_BinQxQy_to_1D("VCALC","MR") 
     762                VC_BinQxQy_to_1D("VCALC","MT") 
     763                VC_BinQxQy_to_1D("VCALC","MB") 
    657764        endif 
    658765         
    659766        if(binType == 2)         
    660                 V_BinQxQy_to_1D("","MLR") 
    661                 V_BinQxQy_to_1D("","MTB") 
     767                VC_BinQxQy_to_1D("VCALC","MLR") 
     768                VC_BinQxQy_to_1D("VCALC","MTB") 
    662769        endif 
    663770 
    664771        if(binType == 3) 
    665                 V_BinQxQy_to_1D("","MLRTB") 
     772                VC_BinQxQy_to_1D("VCALC","MLRTB") 
    666773        endif 
    667774         
     
    669776        if(binType == 4) 
    670777                /// this is for a tall, narrow slit mode         
    671                 V_fBinDetector_byRows("Middle","ML") 
    672                 V_fBinDetector_byRows("Middle","MR") 
    673                 V_fBinDetector_byRows("Middle","MT") 
    674                 V_fBinDetector_byRows("Middle","MB") 
     778                VC_fBinDetector_byRows("VCALC","ML") 
     779                VC_fBinDetector_byRows("VCALC","MR") 
     780                VC_fBinDetector_byRows("VCALC","MT") 
     781                VC_fBinDetector_byRows("VCALC","MB") 
    675782        endif 
    676783End 
     
    687794 
    688795        if(binType==1) 
    689                 ClearIQIfDisplayed("MLRTB") 
    690                 ClearIQIfDisplayed("MLR") 
    691                 ClearIQIfDisplayed("MTB") 
     796                ClearIQIfDisplayed("VCALC","MLRTB") 
     797                ClearIQIfDisplayed("VCALC","MLR") 
     798                ClearIQIfDisplayed("VCALC","MTB") 
    692799                 
    693800                SetDataFolder root:Packages:NIST:VSANS:VCALC 
     
    711818         
    712819        if(binType==2) 
    713                 ClearIQIfDisplayed("MLRTB") 
    714                 ClearIQIfDisplayed("MT")         
    715                 ClearIQIfDisplayed("ML")         
    716                 ClearIQIfDisplayed("MR")         
    717                 ClearIQIfDisplayed("MB") 
     820                ClearIQIfDisplayed("VCALC","MLRTB") 
     821                ClearIQIfDisplayed("VCALC","MT")         
     822                ClearIQIfDisplayed("VCALC","ML")         
     823                ClearIQIfDisplayed("VCALC","MR")         
     824                ClearIQIfDisplayed("VCALC","MB") 
    718825         
    719826 
     
    739846         
    740847        if(binType==3) 
    741                 ClearIQIfDisplayed("MLR") 
    742                 ClearIQIfDisplayed("MTB")        
    743                 ClearIQIfDisplayed("MT")         
    744                 ClearIQIfDisplayed("ML")         
    745                 ClearIQIfDisplayed("MR")         
    746                 ClearIQIfDisplayed("MB")         
     848                ClearIQIfDisplayed("VCALC","MLR") 
     849                ClearIQIfDisplayed("VCALC","MTB")        
     850                ClearIQIfDisplayed("VCALC","MT")         
     851                ClearIQIfDisplayed("VCALC","ML")         
     852                ClearIQIfDisplayed("VCALC","MR")         
     853                ClearIQIfDisplayed("VCALC","MB")         
    747854         
    748855                SetDataFolder root:Packages:NIST:VSANS:VCALC 
     
    765872 
    766873        if(binType==4)          // slit aperture binning - Mt, ML, MR, MB are averaged 
    767                 ClearIQIfDisplayed("MLRTB") 
    768                 ClearIQIfDisplayed("MLR") 
    769                 ClearIQIfDisplayed("MTB") 
     874                ClearIQIfDisplayed("VCALC","MLRTB") 
     875                ClearIQIfDisplayed("VCALC","MLR") 
     876                ClearIQIfDisplayed("VCALC","MTB") 
    770877                 
    771878                SetDataFolder root:Packages:NIST:VSANS:VCALC 
     
    805912        // space is allocated for all of the detectors and Q's on initialization 
    806913        // calculate Qtot, qxqyqz arrays from geometry 
    807         V_CalculateQBackPanels() 
     914        VC_CalculateQBackPanels() 
    808915         
    809916        // fill the panels with fake sphere scattering data 
    810917        // TODO: am I in the right data folder?? 
    811         SetDataFolder root:Packages:NIST:VSANS:VCALC:Back 
     918        SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_B 
    812919 
    813920        WAVE det_B = det_B 
     
    821928        // view of how much of the detectors are actually collecting data 
    822929        // -- I can get the separation L/R from the panel - only this "open" width is visible. 
    823 //      V_SetShadow_TopBottom("","MT")          // TODO: -- be sure the data folder is properly set (within the function...) 
    824 //      V_SetShadow_TopBottom("","MB") 
     930//      VC_SetShadow_TopBottom("","MT")         // TODO: -- be sure the data folder is properly set (within the function...) 
     931//      VC_SetShadow_TopBottom("","MB") 
    825932         
    826933        // do the q-binning for each of the panels to get I(Q) 
     
    849956//     when anything changes 
    850957// 
    851 Function V_CalculateQBackPanels() 
     958Function VC_CalculateQBackPanels() 
    852959 
    853960        Variable xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY 
    854961        Variable B_offset 
    855962 
     963        String folderPath = "root:Packages:NIST:VSANS:VCALC" 
     964        String instPath = ":entry:entry:instrument:detector_" 
     965        String detStr = "" 
     966         
    856967        B_offset = VCALC_getLateralOffset("B") 
    857968         
     
    860971 
    861972// TODO (make the N along the tube length a variable, since this can be reset @ acquisition) 
    862         SetDataFolder root:Packages:NIST:VSANS:VCALC:Back 
    863         Wave det_B                      // this is (320,320) 
     973//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Back 
     974        WAVE det_B = $(folderPath+instPath+"B"+":det_B")                        // this is nominally (320,320) 
    864975 
    865976//Back detector 
    866         WAVE qTot_B,qx_B,qy_B,qz_B 
     977//root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_B:qTot_B 
     978        detStr = "B" 
     979        Wave qTot_B = $(folderPath+instPath+detStr+":qTot_"+detStr)                     // 2D q-values 
     980        Wave qx_B = $(folderPath+instPath+detStr+":qx_"+detStr) 
     981        Wave qy_B = $(folderPath+instPath+detStr+":qy_"+detStr)  
     982        Wave qz_B = $(folderPath+instPath+detStr+":qz_"+detStr) 
     983 
    867984        qTot_B = 0 
    868985        qx_B = 0 
     
    877994        xCtr = trunc( DimSize(det_B,0)/2 )              //should be 160 
    878995        yCtr = trunc( DimSize(det_B,1)/2 )              //should be 160  
    879         V_Detector_2Q(det_B,qTot_B,qx_B,qy_B,qz_B,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
     996        VC_Detector_2Q(det_B,qTot_B,qx_B,qy_B,qz_B,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
    880997         
    881998        //set the wave scaling for the detector image so that it can be plotted in q-space 
     
    8981015//      Display /W=(1477,44,1978,517) 
    8991016 
    900         SetDataFolder root:Packages:NIST:VSANS:VCALC:Back 
     1017        SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_B 
    9011018 
    9021019        CheckDisplayed /W=VCALC#Panels_Q det_B 
     
    9431060Proc BinAllBackPanels() 
    9441061 
    945         SetDeltaQ("Back","B") 
     1062        SetDeltaQ("VCALC","B") 
    9461063 
    9471064        Variable binType         
     
    9491066        binType = V_Value               // V_value counts menu items from 1, so 1=1, 2=2, 3=4 
    9501067         
    951         V_BinQxQy_to_1D("","B") 
     1068        VC_BinQxQy_to_1D("VCALC","B") 
    9521069 
    9531070// TODO -- this is only a temporary fix for slit mode    
    9541071        if(binType == 4) 
    9551072                /// this is for a tall, narrow slit mode         
    956                 V_fBinDetector_byRows("Back","B") 
     1073                VC_fBinDetector_byRows("VCALC","B") 
    9571074        endif    
    9581075         
     
    9621079Window Back_IQ_Graph() : Graph 
    9631080 
    964         SetDataFolder root:Packages:NIST:VSANS:VCALC 
     1081        SetDataFolder root:Packages:NIST:VSANS:VCALC:entry:entry:instrument:detector_B 
    9651082 
    9661083        Variable binType 
     
    10221139 
    10231140        Variable binType 
     1141        String fldr = "VCALC" 
    10241142         
    10251143        ControlInfo/W=VCALC popup_b 
     
    10291147 
    10301148        if(binType==1) 
    1031                 ClearIQIfDisplayed("FLRTB") 
    1032                 ClearIQIfDisplayed("FLR") 
    1033                 ClearIQIfDisplayed("FTB") 
     1149                ClearIQIfDisplayed("VCALC","FLRTB") 
     1150                ClearIQIfDisplayed("VCALC","FLR") 
     1151                ClearIQIfDisplayed("VCALC","FTB") 
    10341152                 
    10351153                SetDataFolder root:Packages:NIST:VSANS:VCALC 
     
    10561174 
    10571175        if(binType==2) 
    1058                 ClearIQIfDisplayed("FLRTB") 
    1059                 ClearIQIfDisplayed("FT")         
    1060                 ClearIQIfDisplayed("FL")         
    1061                 ClearIQIfDisplayed("FR")         
    1062                 ClearIQIfDisplayed("FB") 
     1176                ClearIQIfDisplayed("VCALC","FLRTB") 
     1177                ClearIQIfDisplayed("VCALC","FT")         
     1178                ClearIQIfDisplayed("VCALC","FL")         
     1179                ClearIQIfDisplayed("VCALC","FR")         
     1180                ClearIQIfDisplayed("VCALC","FB") 
    10631181         
    10641182 
     
    10841202         
    10851203        if(binType==3) 
    1086                 ClearIQIfDisplayed("FLR") 
    1087                 ClearIQIfDisplayed("FTB")        
    1088                 ClearIQIfDisplayed("FT")         
    1089                 ClearIQIfDisplayed("FL")         
    1090                 ClearIQIfDisplayed("FR")         
    1091                 ClearIQIfDisplayed("FB")         
     1204                ClearIQIfDisplayed("VCALC","FLR") 
     1205                ClearIQIfDisplayed("VCALC","FTB")        
     1206                ClearIQIfDisplayed("VCALC","FT")         
     1207                ClearIQIfDisplayed("VCALC","FL")         
     1208                ClearIQIfDisplayed("VCALC","FR")         
     1209                ClearIQIfDisplayed("VCALC","FB")         
    10921210         
    10931211                SetDataFolder root:Packages:NIST:VSANS:VCALC 
     
    11111229 
    11121230        if(binType==4)          //slit mode 
    1113                 ClearIQIfDisplayed("FLRTB") 
    1114                 ClearIQIfDisplayed("FLR") 
    1115                 ClearIQIfDisplayed("FTB") 
     1231                ClearIQIfDisplayed("VCALC","FLRTB") 
     1232                ClearIQIfDisplayed("VCALC","FLR") 
     1233                ClearIQIfDisplayed("VCALC","FTB") 
    11161234                 
    11171235                SetDataFolder root:Packages:NIST:VSANS:VCALC 
     
    11421260EndMacro 
    11431261 
    1144 Function        ClearIQIfDisplayed(type) 
    1145         String type 
    1146          
    1147         SetDataFolder root:Packages:NIST:VSANS:VCALC 
    1148         CheckDisplayed/W=VCALC#Panels_IQ $("iBin_qxqy_"+type) 
    1149         if(V_flag==1) 
    1150                 RemoveFromGraph/W=VCALC#Panels_IQ $("iBin_qxqy_"+type) 
    1151         endif 
     1262 
     1263Function ClearIQIfDisplayed(fldr,type) 
     1264        String fldr,type 
     1265 
     1266        SetDataFolder $("root:Packages:NIST:VSANS:"+fldr) 
     1267 
     1268        if(cmpstr(fldr,"VCALC") == 0) 
     1269                CheckDisplayed/W=VCALC#Panels_IQ $("iBin_qxqy_"+type) 
     1270                if(V_flag==1) 
     1271                        RemoveFromGraph/W=VCALC#Panels_IQ $("iBin_qxqy_"+type) 
     1272                endif 
     1273        else 
     1274                CheckDisplayed/W=V_1D_Data $("iBin_qxqy_"+type) 
     1275                if(V_flag==1) 
     1276                        RemoveFromGraph/W=V_1D_Data $("iBin_qxqy_"+type) 
     1277                endif 
     1278        endif 
     1279 
    11521280        SetDataFolder root: 
    11531281         
Note: See TracChangeset for help on using the changeset viewer.