Changeset 1081 for sans/Dev/trunk


Ignore:
Timestamp:
Feb 2, 2018 8:26:07 AM (5 years ago)
Author:
srkline
Message:

additions to VCALC procedures to correctly account for panel motion (individual, not symmetric). Updated the plotting routines to all (mostly) pass through the same subroutines so that additional averaging modes will be easier to add.

Location:
sans/Dev/trunk/NCNR_User_Procedures/Reduction
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/NCNR_Utils.ipf

    r1017 r1081  
    9696Function/S getResolution(inQ,lambda,lambdaWidth,DDet,apOff,S1,S2,L1,L2,BS,del_r,usingLenses,SigmaQ,QBar,fSubS) 
    9797        Variable inQ, lambda, lambdaWidth, DDet, apOff, S1, S2, L1, L2, BS, del_r,usingLenses 
    98         Variable &fSubS, &QBar, &SigmaQ         //these are the output quantities at the input Q value 
     98        Variable &SigmaQ, &QBar, &fSubS //these are the output quantities at the input Q value 
    9999         
    100100        //lots of calculation variables 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_DetectorBinning_Q.ipf

    r1063 r1081  
    9595         
    9696        // do the q-binning for each of the panels to get I(Q) 
    97         Execute "BinAllFrontPanels()" 
     97        BinAllFrontPanels() 
     98 
    9899 
    99100        // plot the results 
    100         Execute "Front_IQ_Graph()" 
     101        String type = "VCALC" 
     102        String str,winStr="VCALC#Panels_IQ",workTypeStr,popStr 
     103        workTypeStr = "root:Packages:NIST:VSANS:"+type 
     104 
     105        ControlInfo/W=VCALC popup_b 
     106        popStr = S_Value                // 
     107         
     108        sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
     109 
     110        Execute ("V_Front_IQ_Graph"+str) 
     111                 
     112//      Execute "Front_IQ_Graph()" 
     113 
    101114        FrontPanels_AsQ() 
    102115         
     
    125138 
    126139        Variable xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY,nPix_X,nPix_Y 
    127         Variable F_LR_sep,F_TB_sep,F_offset,F_sdd_setback 
     140        Variable F_L_sep,F_R_sep,F_T_sep,F_B_sep,F_sdd_setback 
    128141 
    129142        String folderPath = "root:Packages:NIST:VSANS:VCALC" 
     
    132145 
    133146// get the values from the panel + constants     
    134         F_LR_sep = VCALC_getPanelSeparation("FLR") 
    135         F_TB_sep = VCALC_getPanelSeparation("FTB") 
    136         F_offset = VCALC_getLateralOffset("FL") 
     147        F_L_sep = VCALC_getPanelTranslation("FL") 
     148        F_R_sep = VCALC_getPanelTranslation("FR") 
     149        F_T_sep = VCALC_getPanelTranslation("FT") 
     150        F_B_sep = VCALC_getPanelTranslation("FB") 
    137151         
    138152        SDD = VCALC_getSDD("FL")                //nominal SDD [cm] - need offset for TB 
     
    182196                yCtr = 0                        //values in cm 
    183197        else     
    184                 xCtr = nPix_X+(F_LR_sep/2/pixSizeX)             // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)?? 
     198                xCtr = nPix_X-(F_L_sep/pixSizeX)                // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)?? 
    185199                yCtr = nPix_Y/2  
    186200        endif 
     
    225239                yCtr = 0                        //values in cm 
    226240        else     
    227                 xCtr = -(F_LR_sep/2/pixSizeX)-1          
     241                xCtr = -(F_R_sep/pixSizeX)-1             
    228242                yCtr = nPix_Y/2  
    229243        endif 
     
    265279        else     
    266280                xCtr = nPix_X/2 
    267                 yCtr = -(F_TB_sep/2/pixSizeY)-1  
     281                yCtr = -(F_T_sep/2/pixSizeY)-1  
    268282        endif    
    269283 
     
    306320        else     
    307321                xCtr = nPix_X/2 
    308                 yCtr = nPix_Y+(F_TB_sep/2/pixSizeY)             // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)?? 
     322                yCtr = nPix_Y+(F_B_sep/2/pixSizeY)              // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)?? 
    309323        endif    
    310324                         
     
    335349        String folderStr,type 
    336350         
    337         Variable LR_sep,nPix,xCtr,ii,jj,numCol,pixSizeX,pixSizeY,nPix_X,nPix_Y 
     351        Variable L_sep,R_sep,nPix_L,nPix_R,xCtr,ii,jj,numCol,pixSizeX,pixSizeY,nPix_X,nPix_Y 
    338352 
    339353/// !! type passed in will be FT, FB, MT, MB, so I can't ask for the panel separation -- or I'll get the TB separation... 
    340         if(cmpstr(type[0],"F")==0) 
    341                 //front 
    342                 ControlInfo/W=VCALC VCALCCtrl_2a 
    343                 LR_sep = V_Value         
     354// translation in [cm] 
     355        if(cmpstr("F",type[0]) == 0)            // FT or FB passed in 
     356                L_sep = VCALC_getPanelTranslation("FL") 
     357                R_sep = VCALC_getPanelTranslation("FR") 
    344358        else 
    345                 //middle 
    346                 ControlInfo/W=VCALC VCALCCtrl_3a 
    347                 LR_sep = V_Value         
    348         endif            
    349 //separations on panel are in cm -- need to watch the units, convert to cm 
    350 //      LR_sep /= 10 
     359                L_sep = VCALC_getPanelTranslation("ML") 
     360                R_sep = VCALC_getPanelTranslation("MR")  
     361        endif 
     362 
    351363 
    352364//detector data 
     
    365377        //TODO -- get this from a global 
    366378        xCtr = nPix_X/2 
    367         nPix = trunc(LR_sep/2/pixSizeX)         // approx # of pixels Left/right of center that are not obscured by L/R panels 
     379        nPix_L = trunc(abs(L_sep)/pixSizeX)             // approx # of pixels Left of center that are not obscured by L/R panels 
     380        nPix_R = trunc(abs(R_sep)/pixSizeX)             // approx # of pixels Right of center that are not obscured by L/R panels 
    368381         
    369382        numCol = DimSize(det,0)         // x dim (columns) 
    370         for(ii=0;ii<(xCtr-nPix-4);ii+=1) 
     383        for(ii=0;ii<(xCtr-nPix_L-4);ii+=1) 
    371384                det[ii][] = NaN 
    372385        endfor 
    373         for(ii=(xCtr+nPix+6);ii<numCol;ii+=1) 
     386        for(ii=(xCtr+nPix_R+6);ii<numCol;ii+=1) 
    374387                det[ii][] = NaN 
    375388        endfor 
     
    446459// the results are in iBin_qxqy, qBin_qxqy, and eBin_qxqy, in the folder passed 
    447460//  
    448 Proc BinAllFrontPanels() 
     461// TODO -- this is a (partial) duplicated routine... I need to  
     462// **** COPY the logic from V_QBinAllPanels_Circular every time I add a new bin type 
     463// 
     464// -- see also BinAllMiddlePanels() 
     465// -- BinAllBackPanels() 
     466// 
     467Function BinAllFrontPanels() 
    449468 
    450469        SetDeltaQ("VCALC","FL") 
     
    457476        binType = V_Value               // V_value counts menu items from 1, so 1=1, 2=2, 3=4 
    458477 
    459         if(binType == 1) 
    460                 VC_BinQxQy_to_1D("VCALC","FL") 
    461                 VC_BinQxQy_to_1D("VCALC","FR") 
    462                 VC_BinQxQy_to_1D("VCALC","FT") 
    463                 VC_BinQxQy_to_1D("VCALC","FB") 
    464         endif 
    465          
    466         if(binType == 2)         
    467                 VC_BinQxQy_to_1D("VCALC","FLR") 
    468                 VC_BinQxQy_to_1D("VCALC","FTB") 
    469         endif 
    470  
    471         if(binType == 3) 
    472                 VC_BinQxQy_to_1D("VCALC","FLRTB") 
    473         endif 
    474  
    475 // TODO -- this is only a temporary fix for slit mode    
    476         if(binType == 4) 
    477                 /// this is for a tall, narrow slit mode         
    478                 VC_fBinDetector_byRows("VCALC","FL") 
    479                 VC_fBinDetector_byRows("VCALC","FR") 
    480                 VC_fBinDetector_byRows("VCALC","FT") 
    481                 VC_fBinDetector_byRows("VCALC","FB") 
    482         endif 
     478        String folderStr = "VCALC" 
     479         
     480        switch(binType) 
     481                case 1: 
     482                        VC_fDoBinning_QxQy2D(folderStr,"FL") 
     483                        VC_fDoBinning_QxQy2D(folderStr,"FR") 
     484                        VC_fDoBinning_QxQy2D(folderStr,"FT") 
     485                        VC_fDoBinning_QxQy2D(folderStr,"FB") 
     486//                      VC_fDoBinning_QxQy2D(folderStr,"ML") 
     487//                      VC_fDoBinning_QxQy2D(folderStr,"MR") 
     488//                      VC_fDoBinning_QxQy2D(folderStr,"MT") 
     489//                      VC_fDoBinning_QxQy2D(folderStr,"MB")                     
     490//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     491 
     492                        break 
     493                case 2: 
     494                        VC_fDoBinning_QxQy2D(folderStr,"FLR") 
     495                        VC_fDoBinning_QxQy2D(folderStr,"FTB") 
     496//                      VC_fDoBinning_QxQy2D(folderStr,"MLR") 
     497//                      VC_fDoBinning_QxQy2D(folderStr,"MTB") 
     498//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     499 
     500                        break 
     501                case 3: 
     502//                      VC_fDoBinning_QxQy2D(folderStr,"MLRTB") 
     503                        VC_fDoBinning_QxQy2D(folderStr,"FLRTB") 
     504//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     505                         
     506                        break 
     507                case 4:                         /// this is for a tall, narrow slit mode         
     508                        VC_fBinDetector_byRows(folderStr,"FL") 
     509                        VC_fBinDetector_byRows(folderStr,"FR") 
     510//                      VC_fBinDetector_byRows(folderStr,"ML") 
     511//                      VC_fBinDetector_byRows(folderStr,"MR") 
     512//                      VC_fBinDetector_byRows(folderStr,"B") 
     513 
     514                        break 
     515                case 5: 
     516                        VC_fDoBinning_QxQy2D(folderStr,"FTB") 
     517                        VC_fDoBinning_QxQy2D(folderStr,"FLR") 
     518//                      VC_fDoBinning_QxQy2D(folderStr,"MLRTB") 
     519//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     520                 
     521                        break 
     522                case 6: 
     523                        VC_fDoBinning_QxQy2D(folderStr,"FLRTB") 
     524//                      VC_fDoBinning_QxQy2D(folderStr,"MLR") 
     525//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     526                 
     527                        break 
     528                case 7: 
     529                        VC_fDoBinning_QxQy2D(folderStr,"FTB") 
     530                        VC_fDoBinning_QxQy2D(folderStr,"FLR") 
     531//                      VC_fDoBinning_QxQy2D(folderStr,"MLR") 
     532//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     533                 
     534                        break 
     535                         
     536                default: 
     537                        Abort "Binning mode not found in BinAllFrontPanels "// when no case matches      
     538        endswitch 
     539         
     540 
     541//      if(binType == 1) 
     542//              VC_BinQxQy_to_1D("VCALC","FL") 
     543//              VC_BinQxQy_to_1D("VCALC","FR") 
     544//              VC_BinQxQy_to_1D("VCALC","FT") 
     545//              VC_BinQxQy_to_1D("VCALC","FB") 
     546//      endif 
     547//       
     548//      if(binType == 2)         
     549//              VC_BinQxQy_to_1D("VCALC","FLR") 
     550//              VC_BinQxQy_to_1D("VCALC","FTB") 
     551//      endif 
     552// 
     553//      if(binType == 3) 
     554//              VC_BinQxQy_to_1D("VCALC","FLRTB") 
     555//      endif 
     556// 
     557//// TODO -- this is only a temporary fix for slit mode  
     558//      if(binType == 4) 
     559//              /// this is for a tall, narrow slit mode         
     560//              VC_fBinDetector_byRows("VCALC","FL") 
     561//              VC_fBinDetector_byRows("VCALC","FR") 
     562//              VC_fBinDetector_byRows("VCALC","FT") 
     563//              VC_fBinDetector_byRows("VCALC","FB") 
     564//      endif 
    483565                 
    484566End 
     
    544626         
    545627        // do the q-binning for each of the panels to get I(Q) 
    546         Execute "BinAllMiddlePanels()" 
     628        BinAllMiddlePanels() 
    547629 
    548630        // plot the results 
    549         Execute "Middle_IQ_Graph()" 
     631        String type = "VCALC" 
     632        String str,winStr="VCALC#Panels_IQ",workTypeStr,popStr 
     633        workTypeStr = "root:Packages:NIST:VSANS:"+type 
     634 
     635        ControlInfo/W=VCALC popup_b 
     636        popStr = S_Value                // 
     637         
     638        sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
     639 
     640        Execute ("V_Middle_IQ_Graph"+str) 
     641                 
     642 
     643        // plot the results 
     644//      Execute "Middle_IQ_Graph()" 
     645 
     646 
    550647        MiddlePanels_AsQ() 
    551648         
     
    570667 
    571668        Variable xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY,nPix_X,nPix_Y 
    572         Variable M_LR_sep,M_TB_sep,M_offset, M_sdd_setback 
     669        Variable M_L_sep,M_R_sep,M_T_sep,M_B_sep, M_sdd_setback 
    573670 
    574671 
     
    577674        String detStr="" 
    578675         
    579         M_LR_sep = VCALC_getPanelSeparation("MLR") 
    580         M_TB_sep = VCALC_getPanelSeparation("MTB") 
    581         M_offset = VCALC_getLateralOffset("ML") 
     676        M_L_sep = VCALC_getPanelTranslation("ML") 
     677        M_R_sep = VCALC_getPanelTranslation("MR") 
     678        M_T_sep = VCALC_getPanelTranslation("MT") 
     679        M_B_sep = VCALC_getPanelTranslation("MB") 
    582680         
    583681        SDD = VCALC_getSDD("ML")                //nominal SDD [cm] - need offset for TB 
     
    624722                yCtr = 0                        //values in cm 
    625723        else     
    626                 xCtr = nPix_X+(M_LR_sep/2/pixSizeX)             // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)?? 
     724                xCtr = nPix_X+(M_L_sep/pixSizeX)                // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)?? 
    627725                yCtr = nPix_Y/2  
    628726        endif            
     
    671769                yCtr = 0                        //values in cm 
    672770        else     
    673                 xCtr = -(M_LR_sep/2/pixSizeX)-1          
     771                xCtr = -(M_R_sep/pixSizeX)-1             
    674772                yCtr = nPix_Y/2  
    675773        endif    
     
    713811        else     
    714812                xCtr = nPix_X/2 
    715                 yCtr = -(M_TB_sep/2/pixSizeY)-1  
     813                yCtr = -(M_T_sep/pixSizeY)-1  
    716814        endif 
    717815                 
     
    755853        else     
    756854                xCtr = nPix_X/2 
    757                 yCtr = nPix_Y+(M_TB_sep/2/pixSizeY)             // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)??  
     855                yCtr = nPix_Y+(M_B_sep/pixSizeY)                // TODO  -- check -- starting from 47 rather than 48 (but I'm in pixel units for centers)??  
    758856        endif            
    759857 
     
    846944// the results are in iBin_qxqy, qBin_qxqy, and eBin_qxqy, in the folder passed 
    847945//  
    848 Proc BinAllMiddlePanels() 
     946Function BinAllMiddlePanels() 
    849947 
    850948        SetDeltaQ("VCALC","ML") 
     
    857955        binType = V_Value               // V_value counts menu items from 1, so 1=1, 2=2, 3=4 
    858956 
    859         if(binType == 1) 
    860                 VC_BinQxQy_to_1D("VCALC","ML") 
    861                 VC_BinQxQy_to_1D("VCALC","MR") 
    862                 VC_BinQxQy_to_1D("VCALC","MT") 
    863                 VC_BinQxQy_to_1D("VCALC","MB") 
    864         endif 
    865          
    866         if(binType == 2)         
    867                 VC_BinQxQy_to_1D("VCALC","MLR") 
    868                 VC_BinQxQy_to_1D("VCALC","MTB") 
    869         endif 
    870  
    871         if(binType == 3) 
    872                 VC_BinQxQy_to_1D("VCALC","MLRTB") 
    873         endif 
    874          
    875         // TODO -- this is only a temporary fix for slit mode    
    876         if(binType == 4) 
    877                 /// this is for a tall, narrow slit mode         
    878                 VC_fBinDetector_byRows("VCALC","ML") 
    879                 VC_fBinDetector_byRows("VCALC","MR") 
    880                 VC_fBinDetector_byRows("VCALC","MT") 
    881                 VC_fBinDetector_byRows("VCALC","MB") 
    882         endif 
     957        String folderStr = "VCALC" 
     958 
     959        switch(binType) 
     960                case 1: 
     961//                      VC_fDoBinning_QxQy2D(folderStr,"FL") 
     962//                      VC_fDoBinning_QxQy2D(folderStr,"FR") 
     963//                      VC_fDoBinning_QxQy2D(folderStr,"FT") 
     964//                      VC_fDoBinning_QxQy2D(folderStr,"FB") 
     965                        VC_fDoBinning_QxQy2D(folderStr,"ML") 
     966                        VC_fDoBinning_QxQy2D(folderStr,"MR") 
     967                        VC_fDoBinning_QxQy2D(folderStr,"MT") 
     968                        VC_fDoBinning_QxQy2D(folderStr,"MB")                     
     969//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     970 
     971                        break 
     972                case 2: 
     973//                      VC_fDoBinning_QxQy2D(folderStr,"FLR") 
     974//                      VC_fDoBinning_QxQy2D(folderStr,"FTB") 
     975                        VC_fDoBinning_QxQy2D(folderStr,"MLR") 
     976                        VC_fDoBinning_QxQy2D(folderStr,"MTB") 
     977//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     978 
     979                        break 
     980                case 3: 
     981                        VC_fDoBinning_QxQy2D(folderStr,"MLRTB") 
     982//                      VC_fDoBinning_QxQy2D(folderStr,"FLRTB") 
     983//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     984                         
     985                        break 
     986                case 4:                         /// this is for a tall, narrow slit mode         
     987//                      VC_fBinDetector_byRows(folderStr,"FL") 
     988//                      VC_fBinDetector_byRows(folderStr,"FR") 
     989                        VC_fBinDetector_byRows(folderStr,"ML") 
     990                        VC_fBinDetector_byRows(folderStr,"MR") 
     991//                      VC_fBinDetector_byRows(folderStr,"B") 
     992 
     993                        break 
     994                case 5: 
     995//                      VC_fDoBinning_QxQy2D(folderStr,"FTB") 
     996//                      VC_fDoBinning_QxQy2D(folderStr,"FLR") 
     997                        VC_fDoBinning_QxQy2D(folderStr,"MLRTB") 
     998//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     999                 
     1000                        break 
     1001                case 6: 
     1002//                      VC_fDoBinning_QxQy2D(folderStr,"FLRTB") 
     1003                        VC_fDoBinning_QxQy2D(folderStr,"MLR") 
     1004//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     1005                 
     1006                        break 
     1007                case 7: 
     1008//                      VC_fDoBinning_QxQy2D(folderStr,"FTB") 
     1009//                      VC_fDoBinning_QxQy2D(folderStr,"FLR") 
     1010                        VC_fDoBinning_QxQy2D(folderStr,"MLR") 
     1011//                      VC_fDoBinning_QxQy2D(folderStr, "B")             
     1012                 
     1013                        break 
     1014                         
     1015                default: 
     1016                        Abort "Binning mode not found in BinAllFrontPanels "// when no case matches      
     1017        endswitch 
     1018         
     1019 
     1020 
     1021//      if(binType == 1) 
     1022//              VC_BinQxQy_to_1D("VCALC","ML") 
     1023//              VC_BinQxQy_to_1D("VCALC","MR") 
     1024//              VC_BinQxQy_to_1D("VCALC","MT") 
     1025//              VC_BinQxQy_to_1D("VCALC","MB") 
     1026//      endif 
     1027//       
     1028//      if(binType == 2)         
     1029//              VC_BinQxQy_to_1D("VCALC","MLR") 
     1030//              VC_BinQxQy_to_1D("VCALC","MTB") 
     1031//      endif 
     1032// 
     1033//      if(binType == 3) 
     1034//              VC_BinQxQy_to_1D("VCALC","MLRTB") 
     1035//      endif 
     1036//       
     1037//      // TODO -- this is only a temporary fix for slit mode    
     1038//      if(binType == 4) 
     1039//              /// this is for a tall, narrow slit mode         
     1040//              VC_fBinDetector_byRows("VCALC","ML") 
     1041//              VC_fBinDetector_byRows("VCALC","MR") 
     1042//              VC_fBinDetector_byRows("VCALC","MT") 
     1043//              VC_fBinDetector_byRows("VCALC","MB") 
     1044//      endif 
    8831045End 
    8841046 
     
    10321194         
    10331195        // do the q-binning for each of the panels to get I(Q) 
    1034         Execute "BinAllBackPanels()" 
     1196        BinAllBackPanels() 
    10351197 
    10361198        // plot the results 
    1037         Execute "Back_IQ_Graph()" 
     1199        String type = "VCALC" 
     1200        String str,winStr="VCALC#Panels_IQ",workTypeStr,popStr 
     1201        workTypeStr = "root:Packages:NIST:VSANS:"+type 
     1202 
     1203        ControlInfo/W=VCALC popup_b 
     1204        popStr = S_Value                // 
     1205         
     1206        sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
     1207 
     1208        Execute ("V_Back_IQ_Graph"+str) 
     1209                 
     1210                 
     1211        // plot the results 
     1212//      Execute "Back_IQ_Graph()" 
     1213 
     1214 
     1215 
    10381216        Execute "BackPanels_AsQ()" 
    10391217 
     
    10651243        String detStr = "" 
    10661244         
    1067         B_offset = VCALC_getLateralOffset("B") 
     1245        ControlInfo/W=VCALC VCALCCtrl_4a 
     1246        B_offset = V_Value 
    10681247         
    10691248        SDD = VCALC_getSDD("B")         //nominal SDD - need offset for TB 
     
    11651344// the results are in iBin_qxqy, qBin_qxqy, and eBin_qxqy, in the folder passed 
    11661345//  
    1167 Proc BinAllBackPanels() 
     1346Function BinAllBackPanels() 
    11681347 
    11691348        SetDeltaQ("VCALC","B") 
     
    11721351        ControlInfo/W=VCALC popup_b 
    11731352        binType = V_Value               // V_value counts menu items from 1, so 1=1, 2=2, 3=4 
    1174          
    1175         VC_BinQxQy_to_1D("VCALC","B") 
    1176  
    1177 // TODO -- this is only a temporary fix for slit mode    
    1178         if(binType == 4) 
    1179                 /// this is for a tall, narrow slit mode         
    1180                 VC_fBinDetector_byRows("VCALC","B") 
    1181         endif    
     1353 
     1354        String folderStr = "VCALC" 
     1355 
     1356        switch(binType) 
     1357                case 1: 
     1358//                      VC_fDoBinning_QxQy2D(folderStr,"FL") 
     1359//                      VC_fDoBinning_QxQy2D(folderStr,"FR") 
     1360//                      VC_fDoBinning_QxQy2D(folderStr,"FT") 
     1361//                      VC_fDoBinning_QxQy2D(folderStr,"FB") 
     1362//                      VC_fDoBinning_QxQy2D(folderStr,"ML") 
     1363//                      VC_fDoBinning_QxQy2D(folderStr,"MR") 
     1364//                      VC_fDoBinning_QxQy2D(folderStr,"MT") 
     1365//                      VC_fDoBinning_QxQy2D(folderStr,"MB")                     
     1366                        VC_fDoBinning_QxQy2D(folderStr, "B")             
     1367 
     1368                        break 
     1369                case 2: 
     1370//                      VC_fDoBinning_QxQy2D(folderStr,"FLR") 
     1371//                      VC_fDoBinning_QxQy2D(folderStr,"FTB") 
     1372//                      VC_fDoBinning_QxQy2D(folderStr,"MLR") 
     1373//                      VC_fDoBinning_QxQy2D(folderStr,"MTB") 
     1374                        VC_fDoBinning_QxQy2D(folderStr, "B")             
     1375 
     1376                        break 
     1377                case 3: 
     1378//                      VC_fDoBinning_QxQy2D(folderStr,"MLRTB") 
     1379//                      VC_fDoBinning_QxQy2D(folderStr,"FLRTB") 
     1380                        VC_fDoBinning_QxQy2D(folderStr, "B")             
     1381                         
     1382                        break 
     1383                case 4:                         /// this is for a tall, narrow slit mode         
     1384//                      VC_fBinDetector_byRows(folderStr,"FL") 
     1385//                      VC_fBinDetector_byRows(folderStr,"FR") 
     1386//                      VC_fBinDetector_byRows(folderStr,"ML") 
     1387//                      VC_fBinDetector_byRows(folderStr,"MR") 
     1388                        VC_fBinDetector_byRows(folderStr,"B") 
     1389 
     1390                        break 
     1391                case 5: 
     1392//                      VC_fDoBinning_QxQy2D(folderStr,"FTB") 
     1393//                      VC_fDoBinning_QxQy2D(folderStr,"FLR") 
     1394//                      VC_fDoBinning_QxQy2D(folderStr,"MLRTB") 
     1395                        VC_fDoBinning_QxQy2D(folderStr, "B")             
     1396                 
     1397                        break 
     1398                case 6: 
     1399//                      VC_fDoBinning_QxQy2D(folderStr,"FLRTB") 
     1400//                      VC_fDoBinning_QxQy2D(folderStr,"MLR") 
     1401                        VC_fDoBinning_QxQy2D(folderStr, "B")             
     1402                 
     1403                        break 
     1404                case 7: 
     1405//                      VC_fDoBinning_QxQy2D(folderStr,"FTB") 
     1406//                      VC_fDoBinning_QxQy2D(folderStr,"FLR") 
     1407//                      VC_fDoBinning_QxQy2D(folderStr,"MLR") 
     1408                        VC_fDoBinning_QxQy2D(folderStr, "B")             
     1409                 
     1410                        break 
     1411                         
     1412                default: 
     1413                        Abort "Binning mode not found in BinAllFrontPanels "// when no case matches      
     1414        endswitch 
     1415                 
     1416//      VC_BinQxQy_to_1D("VCALC","B") 
     1417// 
     1418//// TODO -- this is only a temporary fix for slit mode  
     1419//      if(binType == 4) 
     1420//              /// this is for a tall, narrow slit mode         
     1421//              VC_fBinDetector_byRows("VCALC","B") 
     1422//      endif    
    11821423         
    11831424End 
     
    13811622        Variable ii 
    13821623         
    1383         for(ii=0;ii<ItemsInList(ksWorkFolderListShort);ii+=1) 
    1384                 fldr = StringFromList(ii, ksWorkFolderListShort, ";") 
     1624        String folderList_plus = ksWorkFolderListShort+";VCALC" 
     1625         
     1626        for(ii=0;ii<ItemsInList(folderList_plus);ii+=1) 
     1627                fldr = StringFromList(ii, folderList_plus, ";") 
    13851628                ClearIQIfDisplayed(fldr,type,winNameStr) 
    13861629        endfor 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_FrontView_Deg.ipf

    r1062 r1081  
    3636 
    3737// get the values from the panel 
    38         Variable F_LR_sep,F_TB_sep, F_SDD, F_offset 
    39         Variable M_LR_sep,M_TB_sep, M_SDD, M_offset 
     38        Variable F_L_sep,F_R_sep,F_T_sep, F_B_sep,F_SDD 
     39        Variable M_L_sep,M_R_sep,M_T_sep, M_B_sep, M_SDD 
    4040        Variable B_SDD, B_offset 
    4141        Variable axisRange 
     
    4949        //front 
    5050        ControlInfo/W=VCALC VCALCCtrl_2a 
    51         F_LR_sep = V_Value 
     51        F_L_sep = V_Value 
     52        ControlInfo/W=VCALC VCALCCtrl_2aa 
     53        F_R_sep = V_Value 
    5254        ControlInfo/W=VCALC VCALCCtrl_2b 
    53         F_TB_sep = V_Value 
    54         ControlInfo/W=VCALC VCALCCtrl_2c 
    55         F_offset = V_Value 
     55        F_T_sep = V_Value 
     56        ControlInfo/W=VCALC VCALCCtrl_2bb 
     57        F_B_sep = V_Value 
     58 
    5659        ControlInfo/W=VCALC VCALCCtrl_2d 
    5760        F_SDD = V_Value 
     
    5962        //middle 
    6063        ControlInfo/W=VCALC VCALCCtrl_3a 
    61         M_LR_sep = V_Value 
     64        M_L_sep = V_Value 
     65        ControlInfo/W=VCALC VCALCCtrl_3aa 
     66        M_R_sep = V_Value 
    6267        ControlInfo/W=VCALC VCALCCtrl_3b 
    63         M_TB_sep = V_Value 
    64         ControlInfo/W=VCALC VCALCCtrl_3c 
    65         M_offset = V_Value 
     68        M_T_sep = V_Value 
     69        ControlInfo/W=VCALC VCALCCtrl_3bb 
     70        M_B_sep = V_Value 
     71         
    6672        ControlInfo/W=VCALC VCALCCtrl_3d 
    6773        M_SDD = V_Value 
     
    115121        tmp_x1 = -atan(M_TB_w/2/(M_SDD+middle_SDDsetback))*(180/pi)             // x symmetric y is not 
    116122        tmp_x2 = -tmp_x1 
    117         tmp_y1 = atan(M_TB_sep/2/(M_SDD+middle_SDDsetback))*(180/pi) 
    118         tmp_y2 = atan((M_TB_sep/2+M_TB_h)/(M_SDD+middle_SDDsetback))*(180/pi) 
     123        tmp_y1 = atan(M_T_sep/(M_SDD+middle_SDDsetback))*(180/pi) 
     124        tmp_y2 = atan((M_T_sep+M_TB_h)/(M_SDD+middle_SDDsetback))*(180/pi) 
    119125         
    120126//      Print tmp_x1,tmp_x2,tmp_y1,tmp_y2 
     
    124130                 
    125131// BOTTOM (x unchanged, negate and swap y1,y2) 
    126         tmp_y1 = -atan((M_TB_sep/2+M_TB_h)/(M_SDD+middle_SDDsetback))*(180/pi) 
    127         tmp_y2 = -atan(M_TB_sep/2/(M_SDD+middle_SDDsetback))*(180/pi) 
     132        tmp_y1 = atan((M_B_sep-M_TB_h)/(M_SDD+middle_SDDsetback))*(180/pi) 
     133        tmp_y2 = atan(M_B_sep/(M_SDD+middle_SDDsetback))*(180/pi) 
    128134        SetDrawEnv/W=VCALC#FrontView xcoord= bottom,ycoord= left,fillfgc= (1,16019,65535) 
    129135        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1           
    130136         
    131137// LEFT 
    132         tmp_x1 = -atan((M_LR_w+M_LR_sep/2)/(M_SDD))*(180/pi)            // y symmetric x is not 
    133         tmp_x2 = -atan((M_LR_sep/2)/(M_SDD))*(180/pi) 
     138        tmp_x1 = atan((M_L_sep-M_LR_w)/(M_SDD))*(180/pi)                // y symmetric x is not 
     139        tmp_x2 = atan((M_L_sep)/(M_SDD))*(180/pi) 
    134140        tmp_y1 = atan(M_LR_h/2/(M_SDD))*(180/pi) 
    135141        tmp_y2 = -tmp_y1 
     
    137143        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1                   
    138144// RIGHT (x changes, y the same) 
    139         tmp_x1 = atan((M_LR_sep/2)/(M_SDD))*(180/pi)            // y symmetric x is not 
    140         tmp_x2 = atan((M_LR_w+M_LR_sep/2)/(M_SDD))*(180/pi) 
     145        tmp_x1 = atan((M_R_sep)/(M_SDD))*(180/pi)               // y symmetric x is not 
     146        tmp_x2 = atan((M_LR_w+M_R_sep)/(M_SDD))*(180/pi) 
    141147        SetDrawEnv/W=VCALC#FrontView xcoord= bottom,ycoord= left,fillfgc= (65535,0,0) 
    142148        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1   
     
    150156        tmp_x1 = -atan(F_TB_w/2/(F_SDD+front_SDDsetback))*(180/pi)              // x symmetric y is not 
    151157        tmp_x2 = -tmp_x1 
    152         tmp_y1 = atan(F_TB_sep/2/(F_SDD+front_SDDsetback))*(180/pi) 
    153         tmp_y2 = atan((F_TB_sep/2+F_TB_h)/(F_SDD+front_SDDsetback))*(180/pi) 
     158        tmp_y1 = atan(F_T_sep/(F_SDD+front_SDDsetback))*(180/pi) 
     159        tmp_y2 = atan((F_T_sep+F_TB_h)/(F_SDD+front_SDDsetback))*(180/pi) 
    154160         
    155161//      Print tmp_x1,tmp_x2,tmp_y1,tmp_y2 
     
    159165                 
    160166// BOTTOM (x unchanged, negate and swap y1,y2) 
    161         tmp_y1 = -atan((F_TB_sep/2+F_TB_h)/(F_SDD+front_SDDsetback))*(180/pi) 
    162         tmp_y2 = -atan(F_TB_sep/2/(F_SDD+front_SDDsetback))*(180/pi) 
     167        tmp_y1 = atan((F_B_sep-F_TB_h)/(F_SDD+front_SDDsetback))*(180/pi) 
     168        tmp_y2 = atan(F_B_sep/(F_SDD+front_SDDsetback))*(180/pi) 
    163169        SetDrawEnv/W=VCALC#FrontView xcoord= bottom,ycoord= left,fillfgc= (1,52428,26586) 
    164170        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1           
    165171         
    166172// LEFT 
    167         tmp_x1 = -atan((F_LR_w+F_LR_sep/2)/(F_SDD))*(180/pi)            // y symmetric x is not 
    168         tmp_x2 = -atan((F_LR_sep/2)/(F_SDD))*(180/pi) 
     173        tmp_x1 = atan((F_L_sep-F_LR_w)/(F_SDD))*(180/pi)                // y symmetric x is not 
     174        tmp_x2 = atan((F_L_sep)/(F_SDD))*(180/pi) 
    169175        tmp_y1 = atan(F_LR_h/2/(F_SDD))*(180/pi) 
    170176        tmp_y2 = -tmp_y1 
     
    172178        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1                   
    173179// RIGHT (x changes, y the same) 
    174         tmp_x1 = atan((F_LR_sep/2)/(F_SDD))*(180/pi)            // y symmetric x is not 
    175         tmp_x2 = atan((F_LR_w+F_LR_sep/2)/(F_SDD))*(180/pi) 
     180        tmp_x1 = atan((F_R_sep)/(F_SDD))*(180/pi)               // y symmetric x is not 
     181        tmp_x2 = atan((F_LR_w+F_R_sep)/(F_SDD))*(180/pi) 
    176182        SetDrawEnv/W=VCALC#FrontView xcoord= bottom,ycoord= left,fillfgc= (39321,26208,1) 
    177183        DrawRect/W=VCALC#FrontView tmp_x1,tmp_y2,tmp_x2,tmp_y1   
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_SideView.ipf

    r1062 r1081  
    4545 
    4646// TODO:  
    47 // -x account for the 30cm SDD offset for the T/B detectors. These are only seen in the side view. 
     47// -x account for the 41cm SDD setback for the T/B detectors. These are only seen in the side view. 
    4848// 
    4949Function UpdateSideView() 
     
    7777 
    7878// get the values from the panel 
    79         Variable F_LR_sep,F_TB_sep, F_SDD, F_offset 
    80         Variable M_LR_sep,M_TB_sep, M_SDD, M_offset 
     79        Variable F_LR_sep,F_T_sep, F_B_sep ,F_SDD 
     80        Variable M_LR_sep,M_T_sep, M_B_sep, M_SDD 
    8181        Variable B_SDD, B_offset 
    8282 
     
    8484         
    8585        //front 
    86 //      ControlInfo VCALCCtrl_2a 
    87 //      F_LR_sep = V_Value 
     86// separations are [cm] translation from zero (center) position 
    8887        ControlInfo VCALCCtrl_2b 
    89         F_TB_sep = V_Value 
    90         ControlInfo VCALCCtrl_2c 
    91         F_offset = V_Value 
     88        F_T_sep = V_Value 
     89        ControlInfo VCALCCtrl_2bb 
     90        F_B_sep = V_Value 
    9291        ControlInfo VCALCCtrl_2d 
    9392        F_SDD = V_Value 
     
    9796//      M_LR_sep = V_Value 
    9897        ControlInfo VCALCCtrl_3b 
    99         M_TB_sep = V_Value 
    100         ControlInfo VCALCCtrl_3c 
    101         M_offset = V_Value 
     98        M_T_sep = V_Value 
     99        ControlInfo VCALCCtrl_3bb 
     100        M_B_sep = V_Value 
    102101        ControlInfo VCALCCtrl_3d 
    103102        M_SDD = V_Value 
     
    118117        FB_profileX = FT_profileX 
    119118         
    120         FT_profileY[0] = F_TB_sep               // separation in cm 
     119        FT_profileY[0] = F_T_sep                // edge closest to zero position [cm] 
    121120        FT_profileY[1] = FT_profileY[0] + F_TB_h        // add in height of T/B panel in cm 
    122121         
    123         FB_profileY = -FT_profileY 
     122        FB_profileY[0] = F_B_sep 
     123        FB_profileY[1] = F_B_sep - F_TB_h                       // height of B panel, negative Y 
    124124 
    125125        //angles (not calculating anything, just connect the dots) 
     
    150150        MB_profileX = MT_profileX 
    151151         
    152         MT_profileY[0] = M_TB_sep               // separation in cm 
     152        MT_profileY[0] = M_T_sep                // separation in cm 
    153153        MT_profileY[1] = MT_profileY[0] + M_TB_h        // add in height of T/B panel in cm 
    154          
    155         MB_profileY = -MT_profileY 
     154 
     155        MB_profileY[0] = M_B_sep 
     156        MB_profileY[1] = M_B_sep - M_TB_h                       // height of B panel, negative Y         
    156157 
    157158        //angles (not calculating anything, just connect the dots) 
     
    302303 
    303304// get the values from the panel 
    304         Variable F_LR_sep,F_TB_sep, F_SDD, F_offset 
    305         Variable M_LR_sep,M_TB_sep, M_SDD, M_offset 
     305        Variable F_L_sep,F_R_sep, F_TB_sep, F_SDD 
     306        Variable M_L_sep,M_R_sep, M_TB_sep, M_SDD 
    306307        Variable B_SDD, B_offset 
    307308        //front 
    308309        ControlInfo VCALCCtrl_2a 
    309         F_LR_sep = V_Value 
    310 //      ControlInfo VCALCCtrl_2b 
    311 //      F_TB_sep = V_Value 
    312         ControlInfo VCALCCtrl_2c 
    313         F_offset = V_Value 
     310        F_L_sep = V_Value 
     311        ControlInfo VCALCCtrl_2aa 
     312        F_R_sep = V_Value 
    314313        ControlInfo VCALCCtrl_2d 
    315314        F_SDD = V_Value 
     
    317316        //middle 
    318317        ControlInfo VCALCCtrl_3a 
    319         M_LR_sep = V_Value 
    320 //      ControlInfo VCALCCtrl_3b 
    321 //      M_TB_sep = V_Value 
    322         ControlInfo VCALCCtrl_3c 
    323         M_offset = V_Value 
     318        M_L_sep = V_Value 
     319        ControlInfo VCALCCtrl_3aa 
     320        M_R_sep = V_Value 
    324321        ControlInfo VCALCCtrl_3d 
    325322        M_SDD = V_Value 
     
    340337        FR_profileX = FL_profileX 
    341338         
    342         FL_profileY[0] = F_LR_sep               // separation in cm 
    343         FL_profileY[1] = FL_profileY[0] + F_LR_w        // add in width of L/R panel in cm 
    344          
    345         FR_profileY = -FL_profileY 
     339        FL_profileY[0] = F_L_sep                // translation from zero in cm 
     340        FL_profileY[1] = F_L_sep - F_LR_w               // subtract width of L/R panel in cm 
     341         
     342        FR_profileY[0] = F_R_sep                // translation from zero in cm 
     343        FR_profileY[1] = F_R_sep + F_LR_w               // add width of L/R panel in cm 
    346344 
    347345        //angles (not calculating anything, just connect the dots) 
     
    372370        MR_profileX = ML_profileX 
    373371         
    374         ML_profileY[0] = M_LR_sep               // separation in cm 
    375         ML_profileY[1] = ML_profileY[0] + M_LR_w        // add in width of L/R panel in cm 
    376          
    377         MR_profileY = -ML_profileY 
     372        ML_profileY[0] = M_L_sep                // translation in cm 
     373        ML_profileY[1] = M_L_sep - M_LR_w               // subtract width of L/R panel in cm 
     374         
     375        MR_profileY[0] = M_R_sep                // translation in cm 
     376        MR_profileY[1] = M_R_sep + M_LR_w               // add width of L/R panel in cm 
    378377 
    379378        //angles (not calculating anything, just connect the dots) 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_UtilityProcedures.ipf

    r1062 r1081  
    6363 
    6464// returns the panel separation [cm] 
    65 Function VCALC_getPanelSeparation(type) 
     65Function VCALC_getPanelTranslation(type) 
    6666        String type 
    6767         
     
    7070        strswitch(type)  
    7171                case "FL": 
     72                        ControlInfo/W=VCALC VCALCCtrl_2a 
     73                        sep = V_Value 
     74                        break 
    7275                case "FR": 
    73                 case "FLR":              
    74                         ControlInfo/W=VCALC VCALCCtrl_2a 
     76                        ControlInfo/W=VCALC VCALCCtrl_2aa 
    7577                        sep = V_Value 
    7678                        break 
    7779                case "FT": 
    78                 case "FB": 
    79                 case "FTB":              
    8080                        ControlInfo/W=VCALC VCALCCtrl_2b 
    8181                        sep = V_Value    
    8282                        break 
     83                case "FB": 
     84                        ControlInfo/W=VCALC VCALCCtrl_2bb 
     85                        sep = V_Value    
     86                        break 
    8387 
    8488                case "ML": 
     89                        ControlInfo/W=VCALC VCALCCtrl_3a 
     90                        sep = V_Value 
     91                        break 
    8592                case "MR": 
    86                 case "MLR":              
    87                         ControlInfo/W=VCALC VCALCCtrl_3a 
     93                        ControlInfo/W=VCALC VCALCCtrl_3aa 
    8894                        sep = V_Value 
    8995                        break 
    9096                case "MT": 
     97                        ControlInfo/W=VCALC VCALCCtrl_3b 
     98                        sep = V_Value 
     99                        break    
    91100                case "MB": 
    92                 case "MTB": 
    93                         ControlInfo/W=VCALC VCALCCtrl_3b 
     101                        ControlInfo/W=VCALC VCALCCtrl_3bb 
    94102                        sep = V_Value 
    95103                        break    
     
    107115end 
    108116 
    109 // returns the lateral panel offset [cm] 
    110 Function VCALC_getLateralOffset(type) 
    111         String type 
    112          
    113         Variable offset 
    114          
    115         strswitch(type)  
    116                 case "FL": 
    117                 case "FR": 
    118                 case "FLR": 
    119                 case "FT": 
    120                 case "FB": 
    121                 case "FTB":              
    122                         ControlInfo/W=VCALC VCALCCtrl_2c 
    123                         offset = V_Value         
    124                         break 
    125  
    126                 case "ML": 
    127                 case "MR": 
    128                 case "MLR": 
    129                 case "MT": 
    130                 case "MB": 
    131                 case "MTB": 
    132                         ControlInfo/W=VCALC VCALCCtrl_3c 
    133                         offset = V_Value 
    134                         break    
    135                                                  
    136                 case "B":                
    137                         ControlInfo/W=VCALC VCALCCtrl_4a 
    138                         offset = V_Value 
    139                         break 
    140                          
    141                 default: 
    142                         Print "Error -- type not found in        VCALC_getLateralOffset(type)"                                   
    143                         offset = NaN            //no match for type              
    144         endswitch 
    145          
    146         return(offset) 
    147 end 
     117 
    148118 
    149119// returns the (mean) wavelength from the panel -- value is angstroms 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_VCALCPanel_MockUp.ipf

    r1062 r1081  
    7373 
    7474        PopupMenu popup_b,pos={690,310},size={142,20},title="Binning type",proc=VC_RebinIQ_PopProc 
    75         PopupMenu popup_b,mode=1,popvalue="One",value= root:Packages:NIST:VSANS:VCALC:gBinTypeStr 
     75        PopupMenu popup_b,mode=1,value= root:Packages:NIST:VSANS:VCALC:gBinTypeStr 
    7676         
    7777        SetVariable setVar_a,pos={476,26},size={120,15},title="axis degrees",proc=FrontView_Range_SetVarProc 
     
    139139 
    140140         
    141 // all controls are named VCALCCtrl_NA where N is the tab number and A is the letter denoting 
     141// all controls are named VCALCCtrl_NA where N is the tab number and A is the letter indexing items on tab 
    142142 
    143143         
     
    166166 
    167167// tab(2) - Front detector panels, initially not visible 
    168         SetVariable VCALCCtrl_2a,pos={30,260},size={150,15},title="L/R Separation (cm)",proc=VC_FDet_LR_SetVarProc 
    169         SetVariable VCALCCtrl_2a,limits={0,40,1},disable=1,value=_NUM:20 
    170         SetVariable VCALCCtrl_2b,pos={30,290},size={150,15},title="T/B Separation (cm)",proc=VC_FDet_LR_SetVarProc 
    171         SetVariable VCALCCtrl_2b,limits={0,40,1},disable=1,value=_NUM:20 
    172 //      SetVariable VCALCCtrl_2c,pos={205,290},size={150,15},title="Lateral Offset (cm)" 
    173 //      SetVariable VCALCCtrl_2c,limits={0,20,0.1},disable=1,value=_NUM:0 
     168        SetVariable VCALCCtrl_2a,pos={30,260},size={150,15},title="LEFT Offset (cm)",proc=VC_FDet_LR_SetVarProc 
     169        SetVariable VCALCCtrl_2a,limits={-20,19,0.1},disable=1,value=_NUM:-10 
     170        SetVariable VCALCCtrl_2aa,pos={30,290},size={150,15},title="RIGHT Offset (cm)",proc=VC_FDet_LR_SetVarProc 
     171        SetVariable VCALCCtrl_2aa,limits={-19,20,0.1},disable=1,value=_NUM:10 
     172         
     173        SetVariable VCALCCtrl_2b,pos={30,330},size={150,15},title="TOP Offset (cm)",proc=VC_FDet_LR_SetVarProc 
     174        SetVariable VCALCCtrl_2b,limits={0,18,0.1},disable=1,value=_NUM:10 
     175        SetVariable VCALCCtrl_2bb,pos={30,360},size={150,15},title="BOTTOM Offset (cm)",proc=VC_FDet_LR_SetVarProc 
     176        SetVariable VCALCCtrl_2bb,limits={-18,0,0.1},disable=1,value=_NUM:-10 
     177         
    174178        SetVariable VCALCCtrl_2d,pos={205,260},size={230,15},title="Sample to Detector Distance (cm)",proc=VC_FDet_SDD_SetVarProc 
    175179        SetVariable VCALCCtrl_2d,limits={100,800,1},disable=1   ,value=_NUM:150 
     
    177181 
    178182// tab(3) - Middle detector panels, initially not visible 
    179         SetVariable VCALCCtrl_3a,pos={30,260},size={150,15},title="L/R Separation (cm)",proc=VC_MDet_LR_SetVarProc 
    180         SetVariable VCALCCtrl_3a,limits={0,40.0,1},disable=1,value=_NUM:20 
    181         SetVariable VCALCCtrl_3b,pos={30,290},size={150,15},title="T/B Separation (cm)",proc=VC_MDet_LR_SetVarProc 
    182         SetVariable VCALCCtrl_3b,limits={0,40.0,1},disable=1,value=_NUM:20 
    183 //      SetVariable VCALCCtrl_3c,pos={205,290},size={150,15},title="Lateral Offset (cm)" 
    184 //      SetVariable VCALCCtrl_3c,limits={0,20,0.1},disable=1,value=_NUM:0 
     183        SetVariable VCALCCtrl_3a,pos={30,260},size={150,15},title="LEFT Offset (cm)",proc=VC_MDet_LR_SetVarProc 
     184        SetVariable VCALCCtrl_3a,limits={-20,19,0.1},disable=1,value=_NUM:-6 
     185        SetVariable VCALCCtrl_3aa,pos={30,290},size={150,15},title="RIGHT Offset (cm)",proc=VC_MDet_LR_SetVarProc 
     186        SetVariable VCALCCtrl_3aa,limits={-19,20,0.1},disable=1,value=_NUM:6 
     187                 
     188        SetVariable VCALCCtrl_3b,pos={30,330},size={150,15},title="TOP Offset (cm)",proc=VC_MDet_LR_SetVarProc 
     189        SetVariable VCALCCtrl_3b,limits={0,18,0.1},disable=1,value=_NUM:6 
     190        SetVariable VCALCCtrl_3bb,pos={30,360},size={150,15},title="BOTTOM Offset (cm)",proc=VC_MDet_LR_SetVarProc 
     191        SetVariable VCALCCtrl_3bb,limits={-18,0,0.1},disable=1,value=_NUM:-6 
     192 
    185193        SetVariable VCALCCtrl_3d,pos={205,260},size={230,15},title="Sample to Detector Distance (cm)",proc=VC_MDet_SDD_SetVarProc 
    186194        SetVariable VCALCCtrl_3d,limits={800,2000,1},disable=1,value=_NUM:1500 
     195 
    187196         
    188197// tab(4) - Back detector panel 
     
    312321// just rebin 
    313322// 
     323// this is for the VCALC 1-D plot subwindow only. so it is set up to  
     324// operate on that window - but uses the same binning and plotting routines 
     325// as the regualr VSANS data display 
     326// 
    314327Function VC_RebinIQ_PopProc(ctrlName,popNum,popStr) : PopupMenuControl 
    315328        String ctrlName 
     
    317330        String popStr           // contents of current popup item as string 
    318331 
    319         // do the q-binning for front panels to get I(Q) 
    320         Execute "BinAllFrontPanels()" 
    321         Execute "Front_IQ_Graph()" 
    322  
    323         // do the q-binning for middle panels to get I(Q) 
    324         Execute "BinAllMiddlePanels()" 
    325         Execute "Middle_IQ_Graph()" 
    326          
    327         // do the q-binning for the back panel to get I(Q) 
    328         Execute "BinAllBackPanels()" 
    329         Execute "Back_IQ_Graph()" 
    330          
     332 
     333        String type = "VCALC" 
     334        String str,winStr="VCALC#Panels_IQ",workTypeStr 
     335        workTypeStr = "root:Packages:NIST:VSANS:"+type 
     336         
     337// dispatch based on the string, not on the number of selection in the pop string 
     338        V_QBinAllPanels_Circular(type,V_BinTypeStr2Num(popStr)) 
     339         
     340        sprintf str,"(\"%s\",%d,\"%s\")",workTypeStr,V_BinTypeStr2Num(popStr),winStr 
     341 
     342        Execute ("V_Back_IQ_Graph"+str) 
     343        Execute ("V_Middle_IQ_Graph"+str) 
     344        Execute ("V_Front_IQ_Graph"+str) 
     345 
     346// OLD - do not use 
     347//      // do the q-binning for front panels to get I(Q) 
     348//      Execute "BinAllFrontPanels()" 
     349//      Execute "Front_IQ_Graph()" 
     350// 
     351//      // do the q-binning for middle panels to get I(Q) 
     352//      Execute "BinAllMiddlePanels()" 
     353//      Execute "Middle_IQ_Graph()" 
     354//       
     355//      // do the q-binning for the back panel to get I(Q) 
     356//      Execute "BinAllBackPanels()" 
     357//      Execute "Back_IQ_Graph()" 
     358//       
    331359        return(0)        
    332360End 
     
    560588                        String sval = sva.sval 
    561589                         
    562                         Variable LR_sep,TB_sep 
    563                         // don't know if LR or TB called, so get the explicit values 
    564                         // 
    565                         ControlInfo VCALCCtrl_2a 
    566                         LR_sep = V_Value 
    567                         ControlInfo VCALCCtrl_2b 
    568                         TB_sep = V_Value 
    569                          
     590//                      Variable LR_sep,TB_sep 
     591//                      // don't know if LR or TB called, so get the explicit values 
     592//                      // 
     593//                      ControlInfo VCALCCtrl_2a 
     594//                      LR_sep = V_Value 
     595//                      ControlInfo VCALCCtrl_2b 
     596//                      TB_sep = V_Value 
     597//                       
    570598//                      UpdateFrontDetector(LR_sep,TB_sep) 
    571599                         
     
    598626                        String sval = sva.sval 
    599627                         
    600                         Variable LR_sep,TB_sep 
    601                         // don't know if LR or TB called, so get the explicit values 
    602                         // 
    603                         ControlInfo VCALCCtrl_3a 
    604                         LR_sep = V_Value 
    605                         ControlInfo VCALCCtrl_3b 
    606                         TB_sep = V_Value 
     628//                      Variable LR_sep,TB_sep 
     629//                      // don't know if LR or TB called, so get the explicit values 
     630//                      // 
     631//                      ControlInfo VCALCCtrl_3a 
     632//                      LR_sep = V_Value 
     633//                      ControlInfo VCALCCtrl_3b 
     634//                      TB_sep = V_Value 
    607635                         
    608636//                      UpdateMiddleDetector(LR_sep,TB_sep) 
     
    697725        Make/O/D/N=1 :entry:instrument:detector_FB:y_pixel_size = 0.84 
    698726         
    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) 
    708          
     727 
    709728// number of pixels in each bank (this can be modified at acquisition time, so it must be adjustable here) 
    710729        Make/O/D/N=1 :entry:instrument:detector_FL:pixel_num_x = 48     // == number of tubes 
     
    717736        Make/O/D/N=1 :entry:instrument:detector_FB:pixel_num_y = 48     // == number of tubes 
    718737 
    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 
     738 
    727739 
    728740// pixel beam center - HDF style 
     
    761773        Make/O/D/N=1 :entry:instrument:detector_MB:y_pixel_size = 0.84 
    762774 
    763 //      Variable/G gMiddle_L_pixelX = 0.84              // (cm)         these tubes are vertical 
    764 //      Variable/G gMiddle_L_pixelY = 0.8               // (cm) 
    765 //      Variable/G gMiddle_R_pixelX = 0.84              // (cm) 
    766 //      Variable/G gMiddle_R_pixelY = 0.8               // (cm) 
    767 //       
    768 //      Variable/G gMiddle_T_pixelX = 0.4                       // (cm)         these tubes are horizontal 
    769 //      Variable/G gMiddle_T_pixelY = 0.84                      // (cm) 
    770 //      Variable/G gMiddle_B_pixelX = 0.4                       // (cm) 
    771 //      Variable/G gMiddle_B_pixelY = 0.84              // (cm) 
     775 
    772776 
    773777// number of pixels in each bank (this can be modified at acquisition time, so it must be adjustable here) 
     
    781785        Make/O/D/N=1 :entry:instrument:detector_MB:pixel_num_y = 48     // == number of tubes 
    782786         
    783 //      Variable/G gMiddle_L_nPix_X = 48                // == number of tubes 
    784 //      Variable/G gMiddle_L_nPix_Y = 128               // == pixels in vertical direction (was 256, John says likely will run @ 128 9/2015) 
    785 //      Variable/G gMiddle_R_nPix_X = 48                // == number of tubes 
    786 //      Variable/G gMiddle_R_nPix_Y = 128               // == pixels in vertical direction  
    787 //      Variable/G gMiddle_T_nPix_X = 128               // == pixels in horizontal direction 
    788 //      Variable/G gMiddle_T_nPix_Y = 48                // == number of tubes 
    789 //      Variable/G gMiddle_B_nPix_X = 128               // == pixels in horizontal direction 
    790 //      Variable/G gMiddle_B_nPix_Y = 48                // == number of tubes 
     787 
    791788 
    792789// pixel beam center - HDF style 
     
    809806        Make/O/D/N=1 :entry:instrument:detector_B:x_pixel_size = 0.1            // 1 mm resolution (units of cm here) 
    810807        Make/O/D/N=1 :entry:instrument:detector_B:y_pixel_size = 0.1             
    811 //      Variable/G gBack_pixelX = 0.1            
    812 //      Variable/G gBack_pixelY = 0.1 
     808 
    813809 
    814810        Make/O/D/N=1 :entry:instrument:detector_B:pixel_num_x = 150     // detector pixels in x-direction 
    815811        Make/O/D/N=1 :entry:instrument:detector_B:pixel_num_y = 150 
    816 //      Variable/G gBack_nPix_X = 150            
    817 //      Variable/G gBack_nPix_Y = 150    
     812         
    818813 
    819814// pixel beam center - HDF style 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_DataPlotting.ipf

    r1074 r1081  
    482482                        AppendToGraph/W=$winNameStr iBin_qxqy_MT vs qBin_qxqy_MT 
    483483                        AppendToGraph/W=$winNameStr iBin_qxqy_MB vs qBin_qxqy_MB 
    484                         ErrorBars/T=0 iBin_qxqy_ML Y,wave=(:eBin_qxqy_ML,:eBin_qxqy_ML) 
    485                         ErrorBars/T=0 iBin_qxqy_MR Y,wave=(:eBin_qxqy_MR,:eBin_qxqy_MR) 
    486                         ErrorBars/T=0 iBin_qxqy_MT Y,wave=(:eBin_qxqy_MT,:eBin_qxqy_MT) 
    487                         ErrorBars/T=0 iBin_qxqy_MB Y,wave=(:eBin_qxqy_MB,:eBin_qxqy_MB) 
     484                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_ML Y,wave=(:eBin_qxqy_ML,:eBin_qxqy_ML) 
     485                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MR Y,wave=(:eBin_qxqy_MR,:eBin_qxqy_MR) 
     486                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MT Y,wave=(:eBin_qxqy_MT,:eBin_qxqy_MT) 
     487                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MB Y,wave=(:eBin_qxqy_MB,:eBin_qxqy_MB) 
    488488                         
    489489                        ModifyGraph/W=$winNameStr mode=4 
     
    505505                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR vs qBin_qxqy_MLR 
    506506                        AppendToGraph/W=$winNameStr iBin_qxqy_MTB vs qBin_qxqy_MTB 
    507                         ErrorBars/T=0 iBin_qxqy_MLR Y,wave=(:eBin_qxqy_MLR,:eBin_qxqy_MLR) 
    508                         ErrorBars/T=0 iBin_qxqy_MTB Y,wave=(:eBin_qxqy_MTB,:eBin_qxqy_MTB) 
     507 
     508                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MTB Y,wave=(:eBin_qxqy_MTB,:eBin_qxqy_MTB) 
    509509                         
    510510                        ModifyGraph/W=$winNameStr mode=4 
     
    529529                if(V_flag==0) 
    530530                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLRTB vs qBin_qxqy_MLRTB 
    531                         ErrorBars/T=0 iBin_qxqy_MLRTB Y,wave=(:eBin_qxqy_MLRTB,:eBin_qxqy_MLRTB) 
     531                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLRTB Y,wave=(:eBin_qxqy_MLRTB,:eBin_qxqy_MLRTB) 
    532532                         
    533533                        ModifyGraph/W=$winNameStr mode=4 
     
    554554//                      AppendToGraph/W=$winNameStr iBin_qxqy_MT vs qBin_qxqy_MT 
    555555//                      AppendToGraph/W=$winNameStr iBin_qxqy_MB vs qBin_qxqy_MB 
    556                         ErrorBars/T=0 iBin_qxqy_ML Y,wave=(:eBin_qxqy_ML,:eBin_qxqy_ML) 
    557                         ErrorBars/T=0 iBin_qxqy_MR Y,wave=(:eBin_qxqy_MR,:eBin_qxqy_MR) 
     556                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_ML Y,wave=(:eBin_qxqy_ML,:eBin_qxqy_ML) 
     557                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MR Y,wave=(:eBin_qxqy_MR,:eBin_qxqy_MR) 
    558558//                      ErrorBars/T=0 iBin_qxqy_MT Y,wave=(:eBin_qxqy_MT,:eBin_qxqy_MT) 
    559559//                      ErrorBars/T=0 iBin_qxqy_MB Y,wave=(:eBin_qxqy_MB,:eBin_qxqy_MB) 
     
    580580                if(V_flag==0) 
    581581                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLRTB vs qBin_qxqy_MLRTB 
    582                         ErrorBars/T=0 iBin_qxqy_MLRTB Y,wave=(:eBin_qxqy_MLRTB,:eBin_qxqy_MLRTB) 
     582                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLRTB Y,wave=(:eBin_qxqy_MLRTB,:eBin_qxqy_MLRTB) 
    583583                         
    584584                        ModifyGraph/W=$winNameStr mode=4 
     
    602602                if(V_flag==0) 
    603603                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR vs qBin_qxqy_MLR 
    604                         ErrorBars/T=0 iBin_qxqy_MLR Y,wave=(:eBin_qxqy_MLR,:eBin_qxqy_MLR) 
     604                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLR Y,wave=(:eBin_qxqy_MLR,:eBin_qxqy_MLR) 
    605605                         
    606606                        ModifyGraph/W=$winNameStr mode=4 
     
    624624                if(V_flag==0) 
    625625                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR vs qBin_qxqy_MLR 
    626                         ErrorBars/T=0 iBin_qxqy_MLR Y,wave=(:eBin_qxqy_MLR,:eBin_qxqy_MLR) 
     626                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLR Y,wave=(:eBin_qxqy_MLR,:eBin_qxqy_MLR) 
    627627                         
    628628                        ModifyGraph/W=$winNameStr mode=4 
     
    683683                        AppendToGraph/W=$winNameStr iBin_qxqy_FT vs qBin_qxqy_FT 
    684684                        AppendToGraph/W=$winNameStr iBin_qxqy_FB vs qBin_qxqy_FB 
    685                         ErrorBars/T=0 iBin_qxqy_FL Y,wave=(:eBin_qxqy_FL,:eBin_qxqy_FL) 
    686                         ErrorBars/T=0 iBin_qxqy_FR Y,wave=(:eBin_qxqy_FR,:eBin_qxqy_FR) 
    687                         ErrorBars/T=0 iBin_qxqy_FT Y,wave=(:eBin_qxqy_FT,:eBin_qxqy_FT) 
    688                         ErrorBars/T=0 iBin_qxqy_FB Y,wave=(:eBin_qxqy_FB,:eBin_qxqy_FB) 
     685                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FL Y,wave=(:eBin_qxqy_FL,:eBin_qxqy_FL) 
     686                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FR Y,wave=(:eBin_qxqy_FR,:eBin_qxqy_FR) 
     687                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FT Y,wave=(:eBin_qxqy_FT,:eBin_qxqy_FT) 
     688                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FB Y,wave=(:eBin_qxqy_FB,:eBin_qxqy_FB) 
    689689 
    690690                        ModifyGraph/W=$winNameStr mode=4 
     
    709709                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR vs qBin_qxqy_FLR 
    710710                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB vs qBin_qxqy_FTB 
    711                         ErrorBars/T=0 iBin_qxqy_FLR Y,wave=(:eBin_qxqy_FLR,:eBin_qxqy_FLR) 
    712                         ErrorBars/T=0 iBin_qxqy_FTB Y,wave=(:eBin_qxqy_FTB,:eBin_qxqy_FTB) 
     711                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR Y,wave=(:eBin_qxqy_FLR,:eBin_qxqy_FLR) 
     712                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB Y,wave=(:eBin_qxqy_FTB,:eBin_qxqy_FTB) 
    713713 
    714714                        ModifyGraph/W=$winNameStr mode=4 
     
    733733                if(V_flag==0) 
    734734                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLRTB vs qBin_qxqy_FLRTB 
    735                         ErrorBars/T=0 iBin_qxqy_FLRTB Y,wave=(:eBin_qxqy_FLRTB,:eBin_qxqy_FLRTB) 
     735                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLRTB Y,wave=(:eBin_qxqy_FLRTB,:eBin_qxqy_FLRTB) 
    736736 
    737737                        ModifyGraph/W=$winNameStr mode=4 
     
    758758//                      AppendToGraph/W=$winNameStr iBin_qxqy_FT vs qBin_qxqy_FT 
    759759//                      AppendToGraph/W=$winNameStr iBin_qxqy_FB vs qBin_qxqy_FB 
    760                         ErrorBars/T=0 iBin_qxqy_FL Y,wave=(:eBin_qxqy_FL,:eBin_qxqy_FL) 
    761                         ErrorBars/T=0 iBin_qxqy_FR Y,wave=(:eBin_qxqy_FR,:eBin_qxqy_FR) 
     760                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FL Y,wave=(:eBin_qxqy_FL,:eBin_qxqy_FL) 
     761                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FR Y,wave=(:eBin_qxqy_FR,:eBin_qxqy_FR) 
    762762//                      ErrorBars/T=0 iBin_qxqy_FT Y,wave=(:eBin_qxqy_FT,:eBin_qxqy_FT) 
    763763//                      ErrorBars/T=0 iBin_qxqy_FB Y,wave=(:eBin_qxqy_FB,:eBin_qxqy_FB) 
     
    785785                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR vs qBin_qxqy_FLR 
    786786                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB vs qBin_qxqy_FTB 
    787                         ErrorBars/T=0 iBin_qxqy_FLR Y,wave=(:eBin_qxqy_FLR,:eBin_qxqy_FLR) 
    788                         ErrorBars/T=0 iBin_qxqy_FTB Y,wave=(:eBin_qxqy_FTB,:eBin_qxqy_FTB) 
     787                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR Y,wave=(:eBin_qxqy_FLR,:eBin_qxqy_FLR) 
     788                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB Y,wave=(:eBin_qxqy_FTB,:eBin_qxqy_FTB) 
    789789 
    790790                        ModifyGraph/W=$winNameStr mode=4 
     
    809809                if(V_flag==0) 
    810810                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLRTB vs qBin_qxqy_FLRTB 
    811                         ErrorBars/T=0 iBin_qxqy_FLRTB Y,wave=(:eBin_qxqy_FLRTB,:eBin_qxqy_FLRTB) 
     811                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLRTB Y,wave=(:eBin_qxqy_FLRTB,:eBin_qxqy_FLRTB) 
    812812 
    813813                        ModifyGraph/W=$winNameStr mode=4 
     
    832832                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR vs qBin_qxqy_FLR 
    833833                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB vs qBin_qxqy_FTB 
    834                         ErrorBars/T=0 iBin_qxqy_FLR Y,wave=(:eBin_qxqy_FLR,:eBin_qxqy_FLR) 
    835                         ErrorBars/T=0 iBin_qxqy_FTB Y,wave=(:eBin_qxqy_FTB,:eBin_qxqy_FTB) 
     834                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR Y,wave=(:eBin_qxqy_FLR,:eBin_qxqy_FLR) 
     835                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB Y,wave=(:eBin_qxqy_FTB,:eBin_qxqy_FTB) 
    836836 
    837837                        ModifyGraph/W=$winNameStr mode=4 
     
    878878        ClearIQIfDisplayed_AllFldr("B",winNameStr) 
    879879 
    880  
    881         SetDataFolder $(fullPathToFolder)        
    882  
    883 //      if(binType==1 || binType==2 || binType==3) 
    884         if(binType==1 || binType==2 || binType==3) 
     880// skip everything if back detector is ignored 
     881        if(!root:Packages:NIST:VSANS:Globals:gIgnoreDetB) 
    885882         
    886883                SetDataFolder $(fullPathToFolder)        
    887                 CheckDisplayed/W=$winNameStr iBin_qxqy_B 
    888                  
    889                 if(V_flag==0) 
    890                         AppendtoGraph/W=$winNameStr iBin_qxqy_B vs qBin_qxqy_B 
    891                         ErrorBars/T=0 iBin_qxqy_B Y,wave=(:eBin_qxqy_B,:eBin_qxqy_B) 
    892                         ModifyGraph/W=$winNameStr mode(iBin_qxqy_B)=4 
    893                         ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B)=(1,52428,52428) 
    894                         ModifyGraph/W=$winNameStr grid=1 
    895                         ModifyGraph/W=$winNameStr log=1 
    896                         ModifyGraph/W=$winNameStr mirror=2 
    897                         ModifyGraph/W=$winNameStr marker(iBin_qxqy_B)=19,msize(iBin_qxqy_B)=2 
    898 //                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_B)=3,textMarker(iBin_qxqy_B)={"B","default",1,0,5,0.00,0.00} 
    899  
     884         
     885                if(binType==1 || binType==2 || binType==3) 
     886                 
     887                        SetDataFolder $(fullPathToFolder)        
     888                        CheckDisplayed/W=$winNameStr iBin_qxqy_B 
     889                         
     890                        if(V_flag==0) 
     891                                AppendtoGraph/W=$winNameStr iBin_qxqy_B vs qBin_qxqy_B 
     892                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B Y,wave=(:eBin_qxqy_B,:eBin_qxqy_B) 
     893                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B)=4 
     894                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B)=(1,52428,52428) 
     895                                ModifyGraph/W=$winNameStr grid=1 
     896                                ModifyGraph/W=$winNameStr log=1 
     897                                ModifyGraph/W=$winNameStr mirror=2 
     898                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B)=19,msize(iBin_qxqy_B)=2 
     899        //                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_B)=3,textMarker(iBin_qxqy_B)={"B","default",1,0,5,0.00,0.00} 
     900                        endif 
     901                         
    900902                endif 
    901                  
    902         endif 
    903  
    904         //nothing different here since there is ony a single detector to display, but for the future... 
    905         if(binType==4) 
    906          
    907                 SetDataFolder $(fullPathToFolder)                               // ClearIQIfDisplayed_AllFldr() resets to root: 
    908                 CheckDisplayed/W=$winNameStr iBin_qxqy_B 
    909                  
    910                 if(V_flag==0) 
    911                         AppendtoGraph/W=$winNameStr iBin_qxqy_B vs qBin_qxqy_B 
    912                         ModifyGraph/W=$winNameStr mode(iBin_qxqy_B)=4 
    913                         ModifyGraph/W=$winNameStr marker(iBin_qxqy_B)=19 
    914                         ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B)=(1,52428,52428) 
    915                         ModifyGraph/W=$winNameStr msize(iBin_qxqy_B)=2 
    916                         ModifyGraph/W=$winNameStr grid=1 
    917                         ModifyGraph/W=$winNameStr log=1 
    918                         ModifyGraph/W=$winNameStr mirror=2 
     903         
     904                //nothing different here since there is ony a single detector to display, but for the future... 
     905                if(binType==4) 
     906                 
     907                        SetDataFolder $(fullPathToFolder)                               // ClearIQIfDisplayed_AllFldr() resets to root: 
     908                        CheckDisplayed/W=$winNameStr iBin_qxqy_B 
     909                         
     910                        if(V_flag==0) 
     911                                AppendtoGraph/W=$winNameStr iBin_qxqy_B vs qBin_qxqy_B 
     912                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B Y,wave=(:eBin_qxqy_B,:eBin_qxqy_B) 
     913                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B)=4 
     914                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B)=19 
     915                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B)=(1,52428,52428) 
     916                                ModifyGraph/W=$winNameStr msize(iBin_qxqy_B)=2 
     917                                ModifyGraph/W=$winNameStr grid=1 
     918                                ModifyGraph/W=$winNameStr log=1 
     919                                ModifyGraph/W=$winNameStr mirror=2 
     920                        endif 
    919921                endif 
    920         endif 
    921  
    922         if(binType==5 || binType==6 || binType==7) 
    923          
    924                 SetDataFolder $(fullPathToFolder)        
    925                 CheckDisplayed/W=$winNameStr iBin_qxqy_B 
    926                  
    927                 if(V_flag==0) 
    928                         AppendtoGraph/W=$winNameStr iBin_qxqy_B vs qBin_qxqy_B 
    929                         ErrorBars/T=0 iBin_qxqy_B Y,wave=(:eBin_qxqy_B,:eBin_qxqy_B) 
    930                         ModifyGraph/W=$winNameStr mode(iBin_qxqy_B)=4 
    931                         ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B)=(1,52428,52428) 
    932                         ModifyGraph/W=$winNameStr grid=1 
    933                         ModifyGraph/W=$winNameStr log=1 
    934                         ModifyGraph/W=$winNameStr mirror=2 
    935                         ModifyGraph/W=$winNameStr marker(iBin_qxqy_B)=19,msize(iBin_qxqy_B)=2 
    936 //                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_B)=3,textMarker(iBin_qxqy_B)={"B","default",1,0,5,0.00,0.00} 
    937  
     922         
     923                if(binType==5 || binType==6 || binType==7) 
     924                 
     925                        SetDataFolder $(fullPathToFolder)        
     926                        CheckDisplayed/W=$winNameStr iBin_qxqy_B 
     927                         
     928                        if(V_flag==0) 
     929                                AppendtoGraph/W=$winNameStr iBin_qxqy_B vs qBin_qxqy_B 
     930                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B Y,wave=(:eBin_qxqy_B,:eBin_qxqy_B) 
     931                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B)=4 
     932                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B)=(1,52428,52428) 
     933                                ModifyGraph/W=$winNameStr grid=1 
     934                                ModifyGraph/W=$winNameStr log=1 
     935                                ModifyGraph/W=$winNameStr mirror=2 
     936                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B)=19,msize(iBin_qxqy_B)=2 
     937        //                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_B)=3,textMarker(iBin_qxqy_B)={"B","default",1,0,5,0.00,0.00} 
     938                        endif 
     939                         
    938940                endif 
    939                  
    940         endif 
    941  
     941 
     942        endif           // if (don't ignore back detector) 
    942943         
    943944        SetDataFolder root: 
     
    964965        ClearIQIfDisplayed_AllFldr("B_trim",winNameStr) 
    965966 
    966  
    967         SetDataFolder $(fullPathToFolder)        
    968  
    969         if(binType==1 || binType==2 || binType==3) 
     967// skip everything if back detector is ignored 
     968        if(!root:Packages:NIST:VSANS:Globals:gIgnoreDetB) 
    970969         
    971970                SetDataFolder $(fullPathToFolder)        
    972                 CheckDisplayed/W=$winNameStr iBin_qxqy_B_trim 
    973                  
    974                 if(V_flag==0) 
    975                         AppendtoGraph/W=$winNameStr iBin_qxqy_B_trim vs qBin_qxqy_B_trim 
    976                         ErrorBars/T=0 iBin_qxqy_B_trim Y,wave=(:eBin_qxqy_B_trim,:eBin_qxqy_B_trim) 
    977                         ModifyGraph/W=$winNameStr mode(iBin_qxqy_B_trim)=4 
    978                         ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B_trim)=(1,52428,52428) 
    979                         ModifyGraph/W=$winNameStr grid=1 
    980                         ModifyGraph/W=$winNameStr log=1 
    981                         ModifyGraph/W=$winNameStr mirror=2 
    982                         ModifyGraph/W=$winNameStr marker(iBin_qxqy_B_trim)=19,msize(iBin_qxqy_B_trim)=3 
    983 //                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_B_trim)=3,textMarker(iBin_qxqy_B_trim)={"B","default",1,0,5,0.00,0.00} 
    984  
     971         
     972                if(binType==1 || binType==2 || binType==3) 
     973                 
     974                        SetDataFolder $(fullPathToFolder)        
     975                        CheckDisplayed/W=$winNameStr iBin_qxqy_B_trim 
     976                         
     977                        if(V_flag==0) 
     978                                AppendtoGraph/W=$winNameStr iBin_qxqy_B_trim vs qBin_qxqy_B_trim 
     979                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B_trim Y,wave=(:eBin_qxqy_B_trim,:eBin_qxqy_B_trim) 
     980                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B_trim)=4 
     981                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B_trim)=(1,52428,52428) 
     982                                ModifyGraph/W=$winNameStr grid=1 
     983                                ModifyGraph/W=$winNameStr log=1 
     984                                ModifyGraph/W=$winNameStr mirror=2 
     985                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B_trim)=19,msize(iBin_qxqy_B_trim)=3 
     986        //                      ModifyGraph/W=$winNameStr msize(iBin_qxqy_B_trim)=3,textMarker(iBin_qxqy_B_trim)={"B","default",1,0,5,0.00,0.00} 
     987         
     988                        endif 
     989                         
    985990                endif 
    986                  
    987         endif 
    988  
    989         //nothing different here since there is ony a single detector to display, but for the future... 
    990         if(binType==4) 
    991          
     991         
     992                //nothing different here since there is ony a single detector to display, but for the future... 
     993                if(binType==4) 
     994                 
     995                        SetDataFolder $(fullPathToFolder)        
     996                        CheckDisplayed/W=$winNameStr iBin_qxqy_B_trim 
     997                         
     998                        if(V_flag==0) 
     999                                AppendtoGraph/W=$winNameStr iBin_qxqy_B_trim vs qBin_qxqy_B_trim 
     1000                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B_trim Y,wave=(:eBin_qxqy_B_trim,:eBin_qxqy_B_trim) 
     1001                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B_trim)=4 
     1002                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B_trim)=19 
     1003                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B_trim)=(1,52428,52428) 
     1004                                ModifyGraph/W=$winNameStr msize(iBin_qxqy_B_trim)=3 
     1005                                ModifyGraph/W=$winNameStr grid=1 
     1006                                ModifyGraph/W=$winNameStr log=1 
     1007                                ModifyGraph/W=$winNameStr mirror=2 
     1008                        endif 
     1009                endif 
     1010         
     1011                if(binType==5 || binType==6 || binType==7) 
     1012                 
    9921013                SetDataFolder $(fullPathToFolder)        
    993                 CheckDisplayed/W=$winNameStr iBin_qxqy_B_trim 
    994                  
    995                 if(V_flag==0) 
    996                         AppendtoGraph/W=$winNameStr iBin_qxqy_B_trim vs qBin_qxqy_B_trim 
    997                         ModifyGraph/W=$winNameStr mode(iBin_qxqy_B_trim)=4 
    998                         ModifyGraph/W=$winNameStr marker(iBin_qxqy_B_trim)=19 
    999                         ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B_trim)=(1,52428,52428) 
    1000                         ModifyGraph/W=$winNameStr msize(iBin_qxqy_B_trim)=3 
    1001                         ModifyGraph/W=$winNameStr grid=1 
    1002                         ModifyGraph/W=$winNameStr log=1 
    1003                         ModifyGraph/W=$winNameStr mirror=2 
     1014                                CheckDisplayed/W=$winNameStr iBin_qxqy_B_trim 
     1015                         
     1016                        if(V_flag==0) 
     1017                                AppendtoGraph/W=$winNameStr iBin_qxqy_B_trim vs qBin_qxqy_B_trim 
     1018                                ErrorBars/T=0/W=$winNameStr iBin_qxqy_B_trim Y,wave=(:eBin_qxqy_B_trim,:eBin_qxqy_B_trim) 
     1019                                ModifyGraph/W=$winNameStr mode(iBin_qxqy_B_trim)=4 
     1020                                ModifyGraph/W=$winNameStr marker(iBin_qxqy_B_trim)=19 
     1021                                ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B_trim)=(1,52428,52428) 
     1022                                ModifyGraph/W=$winNameStr msize(iBin_qxqy_B_trim)=3 
     1023                                ModifyGraph/W=$winNameStr grid=1 
     1024                                ModifyGraph/W=$winNameStr log=1 
     1025                                ModifyGraph/W=$winNameStr mirror=2 
     1026                        endif 
    10041027                endif 
    1005         endif 
    1006  
    1007         if(binType==5 || binType==6 || binType==7) 
    1008          
    1009         SetDataFolder $(fullPathToFolder)        
    1010                         CheckDisplayed/W=$winNameStr iBin_qxqy_B_trim 
    1011                  
    1012                 if(V_flag==0) 
    1013                         AppendtoGraph/W=$winNameStr iBin_qxqy_B_trim vs qBin_qxqy_B_trim 
    1014                         ModifyGraph/W=$winNameStr mode(iBin_qxqy_B_trim)=4 
    1015                         ModifyGraph/W=$winNameStr marker(iBin_qxqy_B_trim)=19 
    1016                         ModifyGraph/W=$winNameStr rgb(iBin_qxqy_B_trim)=(1,52428,52428) 
    1017                         ModifyGraph/W=$winNameStr msize(iBin_qxqy_B_trim)=3 
    1018                         ModifyGraph/W=$winNameStr grid=1 
    1019                         ModifyGraph/W=$winNameStr log=1 
    1020                         ModifyGraph/W=$winNameStr mirror=2 
    1021                 endif 
    1022         endif 
     1028         
     1029        endif // if (don't ignore back detector) 
    10231030         
    10241031        SetDataFolder root: 
     
    10741081                        AppendToGraph/W=$winNameStr iBin_qxqy_MT_trim vs qBin_qxqy_MT_trim 
    10751082                        AppendToGraph/W=$winNameStr iBin_qxqy_MB_trim vs qBin_qxqy_MB_trim 
    1076                         ErrorBars/T=0 iBin_qxqy_ML_trim Y,wave=(:eBin_qxqy_ML_trim,:eBin_qxqy_ML_trim) 
    1077                         ErrorBars/T=0 iBin_qxqy_MR_trim Y,wave=(:eBin_qxqy_MR_trim,:eBin_qxqy_MR_trim) 
    1078                         ErrorBars/T=0 iBin_qxqy_MT_trim Y,wave=(:eBin_qxqy_MT_trim,:eBin_qxqy_MT_trim) 
    1079                         ErrorBars/T=0 iBin_qxqy_MB_trim Y,wave=(:eBin_qxqy_MB_trim,:eBin_qxqy_MB_trim) 
     1083                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_ML_trim Y,wave=(:eBin_qxqy_ML_trim,:eBin_qxqy_ML_trim) 
     1084                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MR_trim Y,wave=(:eBin_qxqy_MR_trim,:eBin_qxqy_MR_trim) 
     1085                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MT_trim Y,wave=(:eBin_qxqy_MT_trim,:eBin_qxqy_MT_trim) 
     1086                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MB_trim Y,wave=(:eBin_qxqy_MB_trim,:eBin_qxqy_MB_trim) 
    10801087                         
    10811088                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_ML_trim)=4 
     
    11181125                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR_trim vs qBin_qxqy_MLR_trim 
    11191126                        AppendToGraph/W=$winNameStr iBin_qxqy_MTB_trim vs qBin_qxqy_MTB_trim 
    1120                         ErrorBars/T=0 iBin_qxqy_MLR_trim Y,wave=(:eBin_qxqy_MLR_trim,:eBin_qxqy_MLR_trim) 
    1121                         ErrorBars/T=0 iBin_qxqy_MTB_trim Y,wave=(:eBin_qxqy_MTB_trim,:eBin_qxqy_MTB_trim) 
     1127                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLR_trim Y,wave=(:eBin_qxqy_MLR_trim,:eBin_qxqy_MLR_trim) 
     1128                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MTB_trim Y,wave=(:eBin_qxqy_MTB_trim,:eBin_qxqy_MTB_trim) 
    11221129                         
    11231130                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MLR_trim)=4 
     
    11561163                if(V_flag==0) 
    11571164                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLRTB_trim vs qBin_qxqy_MLRTB_trim 
    1158                         ErrorBars/T=0 iBin_qxqy_MLRTB_trim Y,wave=(:eBin_qxqy_MLRTB_trim,:eBin_qxqy_MLRTB_trim) 
     1165                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLRTB_trim Y,wave=(:eBin_qxqy_MLRTB_trim,:eBin_qxqy_MLRTB_trim) 
    11591166                         
    11601167                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MLRTB_trim)=4 
     
    11931200//                      AppendToGraph/W=$winNameStr iBin_qxqy_MT_trim vs qBin_qxqy_MT_trim 
    11941201//                      AppendToGraph/W=$winNameStr iBin_qxqy_MB_trim vs qBin_qxqy_MB_trim 
    1195                         ErrorBars/T=0 iBin_qxqy_ML_trim Y,wave=(:eBin_qxqy_ML_trim,:eBin_qxqy_ML_trim) 
    1196                         ErrorBars/T=0 iBin_qxqy_MR_trim Y,wave=(:eBin_qxqy_MR_trim,:eBin_qxqy_MR_trim) 
     1202                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_ML_trim Y,wave=(:eBin_qxqy_ML_trim,:eBin_qxqy_ML_trim) 
     1203                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MR_trim Y,wave=(:eBin_qxqy_MR_trim,:eBin_qxqy_MR_trim) 
    11971204//                      ErrorBars/T=0 iBin_qxqy_MT_trim Y,wave=(:eBin_qxqy_MT_trim,:eBin_qxqy_MT_trim) 
    11981205//                      ErrorBars/T=0 iBin_qxqy_MB_trim Y,wave=(:eBin_qxqy_MB_trim,:eBin_qxqy_MB_trim) 
     
    12391246                if(V_flag==0) 
    12401247                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLRTB_trim vs qBin_qxqy_MLRTB_trim 
    1241                         ErrorBars/T=0 iBin_qxqy_MLRTB_trim Y,wave=(:eBin_qxqy_MLRTB_trim,:eBin_qxqy_MLRTB_trim) 
     1248                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLRTB_trim Y,wave=(:eBin_qxqy_MLRTB_trim,:eBin_qxqy_MLRTB_trim) 
    12421249                         
    12431250                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MLRTB_trim)=4 
     
    12721279                if(V_flag==0) 
    12731280                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR_trim vs qBin_qxqy_MLR_trim 
    1274                         ErrorBars/T=0 iBin_qxqy_MLR_trim Y,wave=(:eBin_qxqy_MLR_trim,:eBin_qxqy_MLR_trim) 
     1281                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLR_trim Y,wave=(:eBin_qxqy_MLR_trim,:eBin_qxqy_MLR_trim) 
    12751282                         
    12761283                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MLR_trim)=4 
     
    13061313                if(V_flag==0) 
    13071314                        AppendtoGraph/W=$winNameStr iBin_qxqy_MLR_trim vs qBin_qxqy_MLR_trim 
    1308                         ErrorBars/T=0 iBin_qxqy_MLR_trim Y,wave=(:eBin_qxqy_MLR_trim,:eBin_qxqy_MLR_trim) 
     1315                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_MLR_trim Y,wave=(:eBin_qxqy_MLR_trim,:eBin_qxqy_MLR_trim) 
    13091316                         
    13101317                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_MLR_trim)=4 
     
    13651372                        AppendToGraph/W=$winNameStr iBin_qxqy_FT_trim vs qBin_qxqy_FT_trim 
    13661373                        AppendToGraph/W=$winNameStr iBin_qxqy_FB_trim vs qBin_qxqy_FB_trim 
    1367                         ErrorBars/T=0 iBin_qxqy_FL_trim Y,wave=(:eBin_qxqy_FL_trim,:eBin_qxqy_FL_trim) 
    1368                         ErrorBars/T=0 iBin_qxqy_FR_trim Y,wave=(:eBin_qxqy_FR_trim,:eBin_qxqy_FR_trim) 
    1369                         ErrorBars/T=0 iBin_qxqy_FT_trim Y,wave=(:eBin_qxqy_FT_trim,:eBin_qxqy_FT_trim) 
    1370                         ErrorBars/T=0 iBin_qxqy_FB_trim Y,wave=(:eBin_qxqy_FB_trim,:eBin_qxqy_FB_trim) 
     1374                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FL_trim Y,wave=(:eBin_qxqy_FL_trim,:eBin_qxqy_FL_trim) 
     1375                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FR_trim Y,wave=(:eBin_qxqy_FR_trim,:eBin_qxqy_FR_trim) 
     1376                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FT_trim Y,wave=(:eBin_qxqy_FT_trim,:eBin_qxqy_FT_trim) 
     1377                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FB_trim Y,wave=(:eBin_qxqy_FB_trim,:eBin_qxqy_FB_trim) 
    13711378 
    13721379                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FL_trim)=4 
     
    14001407                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR_trim vs qBin_qxqy_FLR_trim 
    14011408                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB_trim vs qBin_qxqy_FTB_trim 
    1402                         ErrorBars/T=0 iBin_qxqy_FLR_trim Y,wave=(:eBin_qxqy_FLR_trim,:eBin_qxqy_FLR_trim) 
    1403                         ErrorBars/T=0 iBin_qxqy_FTB_trim Y,wave=(:eBin_qxqy_FTB_trim,:eBin_qxqy_FTB_trim) 
     1409                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR_trim Y,wave=(:eBin_qxqy_FLR_trim,:eBin_qxqy_FLR_trim) 
     1410                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB_trim Y,wave=(:eBin_qxqy_FTB_trim,:eBin_qxqy_FTB_trim) 
    14041411 
    14051412                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FLR_trim)=4 
     
    14271434                if(V_flag==0) 
    14281435                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLRTB_trim vs qBin_qxqy_FLRTB_trim 
    1429                         ErrorBars/T=0 iBin_qxqy_FLRTB_trim Y,wave=(:eBin_qxqy_FLRTB_trim,:eBin_qxqy_FLRTB_trim) 
     1436                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLRTB_trim Y,wave=(:eBin_qxqy_FLRTB_trim,:eBin_qxqy_FLRTB_trim) 
    14301437 
    14311438                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FLRTB_trim)=4 
     
    14521459//                      AppendToGraph/W=$winNameStr iBin_qxqy_FT_trim vs qBin_qxqy_FT_trim 
    14531460//                      AppendToGraph/W=$winNameStr iBin_qxqy_FB_trim vs qBin_qxqy_FB_trim 
    1454                         ErrorBars/T=0 iBin_qxqy_FL_trim Y,wave=(:eBin_qxqy_FL_trim,:eBin_qxqy_FL_trim) 
    1455                         ErrorBars/T=0 iBin_qxqy_FR_trim Y,wave=(:eBin_qxqy_FR_trim,:eBin_qxqy_FR_trim) 
     1461                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FL_trim Y,wave=(:eBin_qxqy_FL_trim,:eBin_qxqy_FL_trim) 
     1462                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FR_trim Y,wave=(:eBin_qxqy_FR_trim,:eBin_qxqy_FR_trim) 
    14561463//                      ErrorBars/T=0 iBin_qxqy_FT_trim Y,wave=(:eBin_qxqy_FT_trim,:eBin_qxqy_FT_trim) 
    14571464//                      ErrorBars/T=0 iBin_qxqy_FB_trim Y,wave=(:eBin_qxqy_FB_trim,:eBin_qxqy_FB_trim) 
     
    14891496                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR_trim vs qBin_qxqy_FLR_trim 
    14901497                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB_trim vs qBin_qxqy_FTB_trim 
    1491                         ErrorBars/T=0 iBin_qxqy_FLR_trim Y,wave=(:eBin_qxqy_FLR_trim,:eBin_qxqy_FLR_trim) 
    1492                         ErrorBars/T=0 iBin_qxqy_FTB_trim Y,wave=(:eBin_qxqy_FTB_trim,:eBin_qxqy_FTB_trim) 
     1498                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR_trim Y,wave=(:eBin_qxqy_FLR_trim,:eBin_qxqy_FLR_trim) 
     1499                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB_trim Y,wave=(:eBin_qxqy_FTB_trim,:eBin_qxqy_FTB_trim) 
    14931500 
    14941501                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FLR_trim)=4 
     
    15161523                if(V_flag==0) 
    15171524                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLRTB_trim vs qBin_qxqy_FLRTB_trim 
    1518                         ErrorBars/T=0 iBin_qxqy_FLRTB_trim Y,wave=(:eBin_qxqy_FLRTB_trim,:eBin_qxqy_FLRTB_trim) 
     1525                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLRTB_trim Y,wave=(:eBin_qxqy_FLRTB_trim,:eBin_qxqy_FLRTB_trim) 
    15191526 
    15201527 
     
    15401547                        AppendtoGraph/W=$winNameStr iBin_qxqy_FLR_trim vs qBin_qxqy_FLR_trim 
    15411548                        AppendToGraph/W=$winNameStr iBin_qxqy_FTB_trim vs qBin_qxqy_FTB_trim 
    1542                         ErrorBars/T=0 iBin_qxqy_FLR_trim Y,wave=(:eBin_qxqy_FLR_trim,:eBin_qxqy_FLR_trim) 
    1543                         ErrorBars/T=0 iBin_qxqy_FTB_trim Y,wave=(:eBin_qxqy_FTB_trim,:eBin_qxqy_FTB_trim) 
     1549                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FLR_trim Y,wave=(:eBin_qxqy_FLR_trim,:eBin_qxqy_FLR_trim) 
     1550                        ErrorBars/T=0/W=$winNameStr iBin_qxqy_FTB_trim Y,wave=(:eBin_qxqy_FTB_trim,:eBin_qxqy_FTB_trim) 
    15441551 
    15451552                        ModifyGraph/W=$winNameStr mode(iBin_qxqy_FLR_trim)=4 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_DetectorCorrections.ipf

    r1080 r1081  
    160160// both beam conditions (+/- 0.0 mm). FTB was +/- 0.8 mm, MTB +/- 2 mm 
    161161        if(cmpstr(detStr,"FL") == 0 || cmpstr(detStr,"FR") == 0) 
    162                 gap = 3.8               //mm (measured, JB 1/4/18) 
     162                gap = 3.5               //mm (measured, JB 1/4/18) 
    163163        endif 
    164164        if(cmpstr(detStr,"FT") == 0 || cmpstr(detStr,"FB") == 0) 
    165                 gap = 8         //mm 
     165                gap = 3.3               //mm (measured, JB 2/1/18) 
    166166        endif 
    167167        if(cmpstr(detStr,"ML") == 0 || cmpstr(detStr,"MR") == 0) 
     
    169169        endif 
    170170        if(cmpstr(detStr,"MT") == 0 || cmpstr(detStr,"MB") == 0) 
    171                 gap = 5         //mm 
     171                gap = 18.3              //mm (measured, JB 2/1/18) 
    172172        endif 
    173173// TODO: this is the line to keep, to replace the hard-wired values 
     
    179179                // adjust the x postion based on the beam center being nominally (0,0) in units of cm, not pixels 
    180180                if(cmpstr(fname,"VCALC")== 0 ) 
    181                         offset = VCALC_getPanelSeparation(detStr) 
     181                        offset = VCALC_getPanelTranslation(detStr) 
    182182                        offset *= 10                    // convert to units of mm 
    183                         offset /= 2                     // 1/2 the total separation 
    184                         if(cmpstr("L",detStr[1]) == 0) 
    185                                 offset *= -1            //negative value for L 
    186                         endif 
     183//                      if(cmpstr("L",detStr[1]) == 0) 
     184//                              offset *= -1            //negative value for L 
     185//                      endif 
    187186                else 
    188187                        //normal case 
     
    213212 
    214213                if(cmpstr(fname,"VCALC")== 0 ) 
    215                         offset = VCALC_getPanelSeparation(detStr) 
     214                        offset = VCALC_getPanelTranslation(detStr) 
    216215                        offset *= 10                    // convert to units of mm 
    217                         offset /= 2                     // 1/2 the total separation 
    218                         if(cmpstr("B",detStr[1]) == 0) 
    219                                 offset *= -1    // negative value for Bottom det 
    220                         endif 
     216//                      if(cmpstr("B",detStr[1]) == 0) 
     217//                              offset *= -1    // negative value for Bottom det 
     218//                      endif 
    221219                else 
    222220                        //normal case 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Instrument_Resolution.ipf

    r1073 r1081  
    5454// - Aug 07 - added input to switch calculation based on lenses (==1 if in) 
    5555// 
    56 // - called by CircSectAvg.ipf and RectAnnulAvg.ipf 
    57 // 
    58 // passed values are read from RealsRead 
    59 // except DDet and apOff, which are set from globals before passing 
     56// - SANS -- called by CircSectAvg.ipf and RectAnnulAvg.ipf 
     57// 
     58// - VSANS -- called in VC_fDoBinning_QxQy2D(folderStr, binningType) 
    6059// 
    6160// DDet is the detector pixel resolution 
     
    8584Function V_getResolution(inQ,lambda,lambdaWidth,DDet,apOff,S1,S2,L1,L2,BS,del_r,usingLenses,SigmaQ,QBar,fSubS) 
    8685        Variable inQ, lambda, lambdaWidth, DDet, apOff, S1, S2, L1, L2, BS, del_r,usingLenses 
    87         Variable &fSubS, &QBar, &SigmaQ         //these are the output quantities at the input Q value 
     86        Variable &SigmaQ, &QBar, &fSubS         //these are the output quantities at the input Q value 
    8887         
    8988        //lots of calculation variables 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Menu.ipf

    r1073 r1081  
    1818        "Data Display",DoWindow/F VSANS_Data 
    1919        "VCALC",VCALC_Panel() 
     20        "VSANS Preferences",Show_VSANSPreferences_Panel() 
    2021        "-" 
    2122        Submenu "In Progress Panels" 
    22                 "VSANS Preferences",Show_VSANSPreferences_Panel() 
    2323                "Beam Center Panel",V_FindBeamCenter() 
    2424                "Patch Beam Center XY",V_PatchDet_xyCenters_Panel() 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Testing_Data_Procs.ipf

    r1062 r1081  
    6161                 
    6262                // returns the total separation (assumed symmetric) in cm 
    63                 val = VCALC_getPanelSeparation(detStr)           
    64                 val /= 2                // to get half of the separation, and cm for the data file 
     63                val = VCALC_getPanelTranslation(detStr)          
    6564                // it's OK to call both of these. these functions check detStr for the correct value 
    66                 if(cmpstr("L",detStr[1]) == 0 || cmpstr("B",detStr[1]) == 0) 
    67                         val *= -1       // negative separation position for L and Bottom 
    68                 endif 
    69                 V_writeDet_LateralOffset(fileName,detStr,val) 
    70                 V_writeDet_VerticalOffset(fileName,detStr,val) 
    71  
     65                if(cmpstr("T",detStr[1]) == 0 || cmpstr("B",detStr[1]) == 0) 
     66                        V_writeDet_LateralOffset(fileName,detStr,val)           // T/B panels 
     67                else 
     68                        V_writeDet_VerticalOffset(fileName,detStr,val)          //  L/R panels, or back detector 
     69                endif 
    7270                // x and y pixel sizes for each detector should be correct in the "base" file - but if not... 
    7371                //Function VCALC_getPixSizeX(type)              // returns the pixel X size, in [cm] 
Note: See TracChangeset for help on using the changeset viewer.