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

more changes and additons to display VSANS data

adding functions for IvsQ plotting

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

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

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

File:
1 edited

Legend:

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

    r955 r982  
    1515// TODO: hard wired for a sphere - change this to allow minimal selections and altering of coefficients 
    1616// TODO: add the "fake" 2D simulation to fill the panels which are then later averaged as I(Q) 
     17// 
     18// NOTE - this is a VCALC only routine, so it's not been made completely generic 
     19// 
    1720Function FillPanel_wModelData(det,qTot,type) 
    1821        Wave det,qTot 
    1922        String type 
    2023 
    21         SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
     24//      SetDataFolder root:Packages:NIST:VSANS:VCALC:Front 
    2225 
    2326        // q-values and detector arrays already allocated and calculated 
     
    2629        Variable imon,trans,thick,sdd,pixSizeX,pixSizeY,sdd_offset 
    2730 
    28         //imon = V_BeamIntensity()*CountTime 
     31        //imon = VC_BeamIntensity()*CountTime 
    2932        imon = VCALC_getImon()          //TODO: currently from the panel, not calculated 
    3033        trans = 0.8 
     
    5053        strswitch(funcStr) 
    5154                case "Big Debye": 
    52                         tmpInten = V_Debye(10,3000,0.0001,qTot[p][q]) 
     55                        tmpInten = VC_Debye(10,3000,0.0001,qTot[p][q]) 
    5356                        break 
    5457                case "Big Sphere": 
    55                         tmpInten = V_SphereForm(1,900,1e-6,0.01,qTot[p][q])      
     58                        tmpInten = VC_SphereForm(1,900,1e-6,0.01,qTot[p][q])     
    5659                        break 
    5760                case "Debye": 
    58                         tmpInten = V_Debye(10,300,0.0001,qTot[p][q]) 
     61                        tmpInten = VC_Debye(10,300,0.0001,qTot[p][q]) 
    5962                        break 
    6063                case "Sphere": 
    61                         tmpInten = V_SphereForm(1,60,1e-6,0.001,qTot[p][q])      
     64                        tmpInten = VC_SphereForm(1,60,1e-6,0.001,qTot[p][q])     
    6265                        break 
    6366                case "AgBeh": 
    64                         tmpInten = V_BroadPeak(1e-9,3,20,100.0,0.1,3,0.1,qTot[p][q]) 
     67                        tmpInten = VC_BroadPeak(1e-9,3,20,100.0,0.1,3,0.1,qTot[p][q]) 
    6568                        break 
    6669                case "Vycor": 
    67                         tmpInten = V_BroadPeak(1e-9,3,20,500.0,0.015,3,0.1,qTot[p][q]) 
     70                        tmpInten = VC_BroadPeak(1e-9,3,20,500.0,0.015,3,0.1,qTot[p][q]) 
    6871                        break    
    6972                case "Empty Cell": 
    70                         tmpInten = V_EC_Empirical(2.2e-8,3.346,0.0065,9.0,0.016,qTot[p][q]) 
     73                        tmpInten = VC_EC_Empirical(2.2e-8,3.346,0.0065,9.0,0.016,qTot[p][q]) 
    7174                        break 
    7275                case "Blocked Beam": 
    73                         tmpInten = V_BlockedBeam(1,qTot[p][q]) 
     76                        tmpInten = VC_BlockedBeam(1,qTot[p][q]) 
    7477                        break 
    7578                default: 
    76                         tmpInten = V_Debye(10,300,0.1,qTot[p][q]) 
     79                        tmpInten = VC_Debye(10,300,0.1,qTot[p][q]) 
    7780        endswitch 
    7881 
     
    154157// -- sdd in meters 
    155158// -- lambda in Angstroms 
    156 Function V_Detector_2Q(data,qTot,qx,qy,qz,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
     159Function VC_Detector_2Q(data,qTot,qx,qy,qz,xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY) 
    157160        Wave data,qTot,qx,qy,qz 
    158161        Variable xCtr,yCtr,sdd,lam,pixSizeX,pixSizeY 
     
    160163        // loop over the array and calculate the values - this is done as a wave assignment 
    161164// TODO -- be sure that it's p,q -- or maybe p+1,q+1 as used in WriteQIS.ipf     
    162         qTot = V_CalcQval(p,q,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    163         qx = V_CalcQX(p,q,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    164         qy = V_CalcQY(p,q,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    165         qz = V_CalcQZ(p,q,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     165        qTot = VC_CalcQval(p,q,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     166        qx = VC_CalcQX(p,q,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     167        qy = VC_CalcQY(p,q,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     168        qz = VC_CalcQZ(p,q,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    166169         
    167170        return(0) 
     
    183186//returned magnitude of Q is in 1/Angstroms 
    184187// 
    185 Function V_CalcQval(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     188Function VC_CalcQval(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    186189        Variable xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY 
    187190         
     
    210213// now properly accounts for qz 
    211214// 
    212 Function V_CalcQX(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     215Function VC_CalcQX(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    213216        Variable xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY 
    214217 
    215218        Variable qx,qval,phi,dx,dy,dist,two_theta 
    216219         
    217         qval = V_CalcQval(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     220        qval = VC_CalcQval(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    218221         
    219222        sdd *=100               //convert to cm 
     
    240243// now properly accounts for qz 
    241244// 
    242 Function V_CalcQY(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     245Function VC_CalcQY(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    243246        Variable xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY 
    244247         
    245248        Variable dy,qval,dx,phi,qy,dist,two_theta 
    246249         
    247         qval = V_CalcQval(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     250        qval = VC_CalcQval(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    248251         
    249252        sdd *=100               //convert to cm 
     
    269272// not actually used, but here for completeness if anyone asks 
    270273// 
    271 Function V_CalcQZ(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     274Function VC_CalcQZ(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    272275        Variable xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY 
    273276         
    274277        Variable dy,qval,dx,phi,qz,dist,two_theta 
    275278         
    276         qval = V_CalcQval(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
     279        qval = VC_CalcQval(xaxval,yaxval,xctr,yctr,sdd,lam,pixSizeX,pixSizeY) 
    277280         
    278281        sdd *=100               //convert to cm 
     
    328331end 
    329332 
    330 Function V_SphereForm(scale,radius,delrho,bkg,x)                                 
     333Function VC_SphereForm(scale,radius,delrho,bkg,x)                                
    331334        Variable scale,radius,delrho,bkg 
    332335        Variable x 
     
    369372End 
    370373 
    371 Function V_Debye(scale,rg,bkg,x) 
     374Function VC_Debye(scale,rg,bkg,x) 
    372375        Variable scale,rg,bkg 
    373376        Variable x 
     
    394397//      make/O/D coef_ECEmp = {2.2e-8,3.346,0.0065,9.0,0.016} 
    395398// 
    396 Function V_EC_Empirical(aa,mm,scale,rg,bkg,x) 
     399Function VC_EC_Empirical(aa,mm,scale,rg,bkg,x) 
    397400        Variable aa,mm,scale,rg,bkg 
    398401        Variable x 
     
    427430// blocked beam 
    428431// 
    429 Function V_BlockedBeam(bkg,x) 
     432Function VC_BlockedBeam(bkg,x) 
    430433        Variable bkg 
    431434        Variable x 
     
    446449// 
    447450// 
    448 Function V_BroadPeak(aa,nn,cc,LL,Qzero,mm,bgd,x) 
     451Function VC_BroadPeak(aa,nn,cc,LL,Qzero,mm,bgd,x) 
    449452        Variable aa,nn,cc,LL,Qzero,mm,bgd 
    450453        Variable x 
     
    471474End 
    472475 
    473  
    474  
    475 Function SetDeltaQ(folderStr,type) 
    476         String folderStr,type 
    477  
    478         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + folderStr + ":det_"+type)            // 2D detector data 
     476// 
     477// updated to new folder structure Feb 2016 
     478// folderStr = RAW,SAM, VCALC or other 
     479// detStr is the panel identifer "ML", etc. 
     480// 
     481Function SetDeltaQ(folderStr,detStr) 
     482        String folderStr,detStr 
     483 
     484        Variable isVCALC 
     485        if(cmpstr(folderStr,"VCALC") == 0) 
     486                isVCALC = 1 
     487        endif 
     488         
     489        String folderPath = "root:Packages:NIST:VSANS:"+folderStr 
     490        String instPath = ":entry:entry:instrument:detector_" 
     491                 
     492        if(isVCALC) 
     493                WAVE inten = $(folderPath+instPath+detStr+":det_"+detStr)               // 2D detector data 
     494        else 
     495                Wave inten = V_getDetectorDataW(folderStr,detStr) 
     496        endif 
     497 
     498        Wave qx = $(folderPath+instPath+detStr+":qx_"+detStr) 
     499        Wave qy = $(folderPath+instPath+detStr+":qy_"+detStr) 
    479500         
    480501        Variable xDim,yDim,delQ 
     
    484505         
    485506        if(xDim<yDim) 
    486                 WAVE qx = $("root:Packages:NIST:VSANS:VCALC:" + folderStr + ":qx_"+type) 
    487507                delQ = abs(qx[0][0] - qx[1][0])/2 
    488508        else 
    489                 WAVE qy = $("root:Packages:NIST:VSANS:VCALC:" + folderStr + ":qy_"+type) 
    490509                delQ = abs(qy[0][1] - qy[0][0])/2 
    491510        endif 
    492511         
    493512        // set the global 
    494         Variable/G $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_"+type) = delQ 
     513        Variable/G $(folderPath+instPath+detStr+":gDelQ_"+detStr) = delQ 
    495514//      Print "SET delQ = ",delQ," for ",type 
    496515         
    497         return(0) 
     516        return(delQ) 
    498517end 
    499518 
    500519 
    501520//TODO -- need a switch here to dispatch to the averaging type 
    502 Proc V_BinQxQy_to_1D(folderStr,type) 
     521Proc VC_BinQxQy_to_1D(folderStr,type) 
    503522        String folderStr 
    504523        String type 
     
    507526 
    508527 
    509         V_fDoBinning_QxQy2D(folderStr, type) 
     528        VC_fDoBinning_QxQy2D(folderStr, type) 
    510529 
    511530 
    512531/// this is for a tall, narrow slit mode         
    513 //      V_fBinDetector_byRows(folderStr,type) 
    514          
    515 End 
    516  
    517  
    518 Proc V_Graph_1D_detType(folderStr,type) 
     532//      VC_fBinDetector_byRows(folderStr,type) 
     533         
     534End 
     535 
     536 
     537// folderStr is RAW, VCALC, SAM, etc. 
     538// type is "B", "FL" for single binning, "FLR", or "MLRTB" or similar if multiple panels are combined 
     539// 
     540Proc VC_Graph_1D_detType(folderStr,type) 
    519541        String folderStr,type 
    520542         
    521         SetDataFolder root:Packages:NIST:VSANS:VCALC 
     543        SetDataFolder $("root:Packages:NIST:VSANS:"+folderStr) 
    522544         
    523545        Display $("iBin_qxqy"+"_"+type) vs $("qBin_qxqy"+"_"+type) 
     
    551573// TODO "iErr" is not always defined correctly since it doesn't really apply here for data that is not 2D simulation 
    552574// 
    553 Function V_fDoBinning_QxQy2D(folderStr,type) 
     575// 
     576// updated Feb2016 to take new folder structure 
     577// TODO 
     578// -- VERIFY 
     579// -- figure out what the best location is to put the averaged data? currently @ top level of WORK folder 
     580//    but this is a lousy choice. 
     581// 
     582Function VC_fDoBinning_QxQy2D(folderStr,type) 
    554583        String folderStr,type 
    555584         
     
    558587        Variable ii,jj 
    559588        Variable qVal,nq,var,avesq,aveisq 
    560         Variable binIndex,val 
    561  
    562          
    563         SetDataFolder root:Packages:NIST:VSANS:VCALC 
     589        Variable binIndex,val,isVCALC=0 
     590 
     591        String folderPath = "root:Packages:NIST:VSANS:"+folderStr 
     592        String instPath = ":entry:entry:instrument:detector_" 
     593        String detStr 
     594                 
     595        if(cmpstr(folderStr,"VCALC") == 0) 
     596                isVCALC = 1 
     597        endif 
    564598         
    565599// now switch on the type to determine which waves to declare and create 
     
    570604                case "FL":              // execute if case matches expression 
    571605                case "FR": 
    572                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_FL") 
    573                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Front" + ":det_"+type)              // 2D detector data 
    574                         WAVE/Z iErr = $("iErr_"+type)                   // 2D errors -- may not exist, especially for simulation 
    575                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Front" +":qTot_"+type)                     // 2D q-values 
     606                        detStr = type 
     607                        if(isVCALC) 
     608                                WAVE inten = $(folderPath+instPath+detStr+":det_"+detStr) 
     609                                WAVE/Z iErr = $("iErr_"+detStr)                 // 2D errors -- may not exist, especially for simulation 
     610                        else 
     611                                Wave inten = V_getDetectorDataW(folderStr,detStr) 
     612                                Wave iErr = V_getDetectorDataErrW(folderStr,detStr) 
     613                        endif 
     614                        NVAR delQ = $(folderPath+instPath+detStr+":gDelQ_"+detStr) 
     615                        Wave qTotal = $(folderPath+instPath+detStr+":qTot_"+detStr)                     // 2D q-values 
    576616                        nSets = 1 
    577617                        break    
     
    579619                case "FT":               
    580620                case "FB": 
    581                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_FT") 
    582                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Front" + ":det_"+type)              // 2D detector data 
    583                         WAVE/Z iErr = $("iErr_"+type)                   // 2D errors -- may not exist, especially for simulation 
    584                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Front" +":qTot_"+type)                     // 2D q-values 
     621                        detStr = type 
     622                        if(isVCALC) 
     623                                WAVE inten = $(folderPath+instPath+detStr+":det_"+detStr) 
     624                                WAVE/Z iErr = $("iErr_"+detStr)                 // 2D errors -- may not exist, especially for simulation                 
     625                        else 
     626                                Wave inten = V_getDetectorDataW(folderStr,detStr) 
     627                                Wave iErr = V_getDetectorDataErrW(folderStr,detStr) 
     628                        endif 
     629                        NVAR delQ = $(folderPath+instPath+detStr+":gDelQ_"+detStr) 
     630                        Wave qTotal = $(folderPath+instPath+detStr+":qTot_"+detStr)                     // 2D q-values 
    585631                        nSets = 1 
    586632                        break 
    587633                         
    588634                case "ML":               
    589                 case "MR":               
    590                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_ML") 
    591                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" + ":det_"+type)             // 2D detector data 
    592                         WAVE/Z iErr = $("iErr_"+type)                   // 2D errors -- may not exist, especially for simulation 
    593                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" +":qTot_"+type)                    // 2D q-values 
     635                case "MR": 
     636                        detStr = type 
     637                        if(isVCALC) 
     638                                WAVE inten = $(folderPath+instPath+detStr+":det_"+detStr) 
     639                                WAVE/Z iErr = $("iErr_"+detStr)                 // 2D errors -- may not exist, especially for simulation                 
     640                        else 
     641                                Wave inten = V_getDetectorDataW(folderStr,detStr) 
     642                                Wave iErr = V_getDetectorDataErrW(folderStr,detStr) 
     643                        endif    
     644                        //TODO: 
     645                        // -- decide on the proper deltaQ for binning. either nominal value for LR, or one  
     646                        //    determined specifically for that panel (currently using one tube width as deltaQ) 
     647                        // -- this is repeated multiple times in this switch 
     648                        NVAR delQ = $(folderPath+instPath+detStr+":gDelQ_"+detStr) 
     649//                      NVAR delQ = $(folderPath+instPath+"ML"+":gDelQ_ML") 
     650                        Wave qTotal = $(folderPath+instPath+detStr+":qTot_"+detStr)                     // 2D q-values 
    594651                        nSets = 1 
    595652                        break    
    596653                                         
    597654                case "MT":               
    598                 case "MB":               
    599                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_MT") 
    600                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" + ":det_"+type)             // 2D detector data 
    601                         WAVE/Z iErr = $("iErr_"+type)                   // 2D errors -- may not exist, especially for simulation 
    602                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" +":qTot_"+type)                    // 2D q-values 
     655                case "MB": 
     656                        detStr = type 
     657                        if(isVCALC) 
     658                                WAVE inten = $(folderPath+instPath+detStr+":det_"+detStr) 
     659                                WAVE/Z iErr = $("iErr_"+detStr)                 // 2D errors -- may not exist, especially for simulation                 
     660                        else 
     661                                Wave inten = V_getDetectorDataW(folderStr,detStr) 
     662                                Wave iErr = V_getDetectorDataErrW(folderStr,detStr) 
     663                        endif    
     664                        NVAR delQ = $(folderPath+instPath+detStr+":gDelQ_"+detStr) 
     665                        Wave qTotal = $(folderPath+instPath+detStr+":qTot_"+detStr)                     // 2D q-values 
    603666                        nSets = 1 
    604667                        break    
    605668                                         
    606                 case "B":                
    607                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_B") 
    608                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Back" + ":det_"+type)               // 2D detector data 
    609                         WAVE/Z iErr = $("iErr_"+type)                   // 2D errors -- may not exist, especially for simulation 
    610                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Back" +":qTot_"+type)                      // 2D q-values 
     669                case "B":        
     670                        detStr = type 
     671                        if(isVCALC) 
     672                                WAVE inten = $(folderPath+instPath+detStr+":det_"+detStr) 
     673                                WAVE/Z iErr = $("iErr_"+detStr)                 // 2D errors -- may not exist, especially for simulation                 
     674                        else 
     675                                Wave inten = V_getDetectorDataW(folderStr,detStr) 
     676                                Wave iErr = V_getDetectorDataErrW(folderStr,detStr) 
     677                        endif    
     678                        NVAR delQ = $(folderPath+instPath+detStr+":gDelQ_B") 
     679                        Wave qTotal = $(folderPath+instPath+detStr+":qTot_"+detStr)                     // 2D q-values   
    611680                        nSets = 1 
    612681                        break    
    613682                         
    614683                case "FLR": 
    615                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_FL") 
    616                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Front" + ":det_"+"FL")              // 2D detector data 
    617                         WAVE/Z iErr = $("iErr_"+"FL")                   // 2D errors -- may not exist, especially for simulation 
    618                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Front" +":qTot_"+"FL")                     // 2D q-values 
    619                         WAVE inten2 = $("root:Packages:NIST:VSANS:VCALC:" + "Front" + ":det_"+"FR")             // 2D detector data 
    620                         WAVE/Z iErr2 = $("iErr_"+"FR")                  // 2D errors -- may not exist, especially for simulation 
    621                         Wave qTotal2 = $("root:Packages:NIST:VSANS:VCALC:" + "Front" +":qTot_"+"FR")                    // 2D q-values 
     684                // detStr has multiple values now, so unfortuntely, I'm hard-wiring things... 
     685                // TODO 
     686                // -- see if I can un-hard-wire some of this below when more than one panel is combined 
     687                        if(isVCALC) 
     688                                WAVE inten = $(folderPath+instPath+"FL"+":det_"+"FL") 
     689                                WAVE/Z iErr = $("iErr_"+"FL")                   // 2D errors -- may not exist, especially for simulation                 
     690                                WAVE inten2 = $(folderPath+instPath+"FR"+":det_"+"FR") 
     691                                WAVE/Z iErr2 = $("iErr_"+"FR")                  // 2D errors -- may not exist, especially for simulation         
     692                        else 
     693                                Wave inten = V_getDetectorDataW(folderStr,"FL") 
     694                                Wave iErr = V_getDetectorDataErrW(folderStr,"FL") 
     695                                Wave inten2 = V_getDetectorDataW(folderStr,"FR") 
     696                                Wave iErr2 = V_getDetectorDataErrW(folderStr,"FR") 
     697                        endif    
     698                        NVAR delQ = $(folderPath+instPath+"FL"+":gDelQ_FL") 
     699                         
     700                        Wave qTotal = $(folderPath+instPath+"FL"+":qTot_"+"FL")                 // 2D q-values   
     701                        Wave qTotal2 = $(folderPath+instPath+"FR"+":qTot_"+"FR")                        // 2D q-values   
     702                 
    622703                        nSets = 2 
    623704                        break                    
    624705                 
    625706                case "FTB": 
    626                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_FT") 
    627                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Front" + ":det_"+"FT")              // 2D detector data 
    628                         WAVE/Z iErr = $("iErr_"+"FT")                   // 2D errors -- may not exist, especially for simulation 
    629                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Front" +":qTot_"+"FT")                     // 2D q-values 
    630                         WAVE inten2 = $("root:Packages:NIST:VSANS:VCALC:" + "Front" + ":det_"+"FB")             // 2D detector data 
    631                         WAVE/Z iErr2 = $("iErr_"+"FB")                  // 2D errors -- may not exist, especially for simulation 
    632                         Wave qTotal2 = $("root:Packages:NIST:VSANS:VCALC:" + "Front" +":qTot_"+"FB")                    // 2D q-values 
     707                        if(isVCALC) 
     708                                WAVE inten = $(folderPath+instPath+"FT"+":det_"+"FT") 
     709                                WAVE/Z iErr = $("iErr_"+"FT")                   // 2D errors -- may not exist, especially for simulation                 
     710                                WAVE inten2 = $(folderPath+instPath+"FB"+":det_"+"FB") 
     711                                WAVE/Z iErr2 = $("iErr_"+"FB")                  // 2D errors -- may not exist, especially for simulation         
     712                        else 
     713                                Wave inten = V_getDetectorDataW(folderStr,"FT") 
     714                                Wave iErr = V_getDetectorDataErrW(folderStr,"FT") 
     715                                Wave inten2 = V_getDetectorDataW(folderStr,"FB") 
     716                                Wave iErr2 = V_getDetectorDataErrW(folderStr,"FB") 
     717                        endif    
     718                        NVAR delQ = $(folderPath+instPath+"FT"+":gDelQ_FT") 
     719                         
     720                        Wave qTotal = $(folderPath+instPath+"FT"+":qTot_"+"FT")                 // 2D q-values   
     721                        Wave qTotal2 = $(folderPath+instPath+"FB"+":qTot_"+"FB")                        // 2D q-values   
     722         
    633723                        nSets = 2 
    634724                        break            
    635725                 
    636726                case "FLRTB": 
    637                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_FL") 
    638                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Front" + ":det_"+"FL")              // 2D detector data 
    639                         WAVE/Z iErr = $("iErr_"+"FL")                   // 2D errors -- may not exist, especially for simulation 
    640                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Front" +":qTot_"+"FL")                     // 2D q-values 
    641                         WAVE inten2 = $("root:Packages:NIST:VSANS:VCALC:" + "Front" + ":det_"+"FR")             // 2D detector data 
    642                         WAVE/Z iErr2 = $("iErr_"+"FR")                  // 2D errors -- may not exist, especially for simulation 
    643                         Wave qTotal2 = $("root:Packages:NIST:VSANS:VCALC:" + "Front" +":qTot_"+"FR")                    // 2D q-values 
    644                         WAVE inten3 = $("root:Packages:NIST:VSANS:VCALC:" + "Front" + ":det_"+"FT")             // 2D detector data 
    645                         WAVE/Z iErr3 = $("iErr_"+"FT")                  // 2D errors -- may not exist, especially for simulation 
    646                         Wave qTotal3 = $("root:Packages:NIST:VSANS:VCALC:" + "Front" +":qTot_"+"FT")                    // 2D q-values 
    647                         WAVE inten4 = $("root:Packages:NIST:VSANS:VCALC:" + "Front" + ":det_"+"FB")             // 2D detector data 
    648                         WAVE/Z iErr4 = $("iErr_"+"FB")                  // 2D errors -- may not exist, especially for simulation 
    649                         Wave qTotal4 = $("root:Packages:NIST:VSANS:VCALC:" + "Front" +":qTot_"+"FB")                    // 2D q-values 
     727                        if(isVCALC) 
     728                                WAVE inten = $(folderPath+instPath+"FL"+":det_"+"FL") 
     729                                WAVE/Z iErr = $("iErr_"+"FL")                   // 2D errors -- may not exist, especially for simulation                 
     730                                WAVE inten2 = $(folderPath+instPath+"FR"+":det_"+"FR") 
     731                                WAVE/Z iErr2 = $("iErr_"+"FR")                  // 2D errors -- may not exist, especially for simulation         
     732                                WAVE inten3 = $(folderPath+instPath+"FT"+":det_"+"FT") 
     733                                WAVE/Z iErr3 = $("iErr_"+"FT")                  // 2D errors -- may not exist, especially for simulation                 
     734                                WAVE inten4 = $(folderPath+instPath+"FB"+":det_"+"FB") 
     735                                WAVE/Z iErr4 = $("iErr_"+"FB")                  // 2D errors -- may not exist, especially for simulation         
     736                        else 
     737                                Wave inten = V_getDetectorDataW(folderStr,"FL") 
     738                                Wave iErr = V_getDetectorDataErrW(folderStr,"FL") 
     739                                Wave inten2 = V_getDetectorDataW(folderStr,"FR") 
     740                                Wave iErr2 = V_getDetectorDataErrW(folderStr,"FR") 
     741                                Wave inten3 = V_getDetectorDataW(folderStr,"FT") 
     742                                Wave iErr3 = V_getDetectorDataErrW(folderStr,"FT") 
     743                                Wave inten4 = V_getDetectorDataW(folderStr,"FB") 
     744                                Wave iErr4 = V_getDetectorDataErrW(folderStr,"FB") 
     745                        endif    
     746                        NVAR delQ = $(folderPath+instPath+"FL"+":gDelQ_FL") 
     747                         
     748                        Wave qTotal = $(folderPath+instPath+"FL"+":qTot_"+"FL")                 // 2D q-values   
     749                        Wave qTotal2 = $(folderPath+instPath+"FR"+":qTot_"+"FR")                        // 2D q-values   
     750                        Wave qTotal3 = $(folderPath+instPath+"FT"+":qTot_"+"FT")                        // 2D q-values   
     751                        Wave qTotal4 = $(folderPath+instPath+"FB"+":qTot_"+"FB")                        // 2D q-values   
     752                 
    650753                        nSets = 4 
    651754                        break            
    652755                         
    653  
    654756                case "MLR": 
    655                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_ML") 
    656                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" + ":det_"+"ML")             // 2D detector data 
    657                         WAVE/Z iErr = $("iErr_"+"ML")                   // 2D errors -- may not exist, especially for simulation 
    658                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" +":qTot_"+"ML")                    // 2D q-values 
    659                         WAVE inten2 = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" + ":det_"+"MR")            // 2D detector data 
    660                         WAVE/Z iErr2 = $("iErr_"+"MR")                  // 2D errors -- may not exist, especially for simulation 
    661                         Wave qTotal2 = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" +":qTot_"+"MR")                   // 2D q-values 
     757                        if(isVCALC) 
     758                                WAVE inten = $(folderPath+instPath+"ML"+":det_"+"ML") 
     759                                WAVE/Z iErr = $("iErr_"+"ML")                   // 2D errors -- may not exist, especially for simulation                 
     760                                WAVE inten2 = $(folderPath+instPath+"MR"+":det_"+"MR") 
     761                                WAVE/Z iErr2 = $("iErr_"+"MR")                  // 2D errors -- may not exist, especially for simulation         
     762                        else 
     763                                Wave inten = V_getDetectorDataW(folderStr,"ML") 
     764                                Wave iErr = V_getDetectorDataErrW(folderStr,"ML") 
     765                                Wave inten2 = V_getDetectorDataW(folderStr,"MR") 
     766                                Wave iErr2 = V_getDetectorDataErrW(folderStr,"MR") 
     767                        endif    
     768                        NVAR delQ = $(folderPath+instPath+"ML"+":gDelQ_ML") 
     769                         
     770                        Wave qTotal = $(folderPath+instPath+"ML"+":qTot_"+"ML")                 // 2D q-values   
     771                        Wave qTotal2 = $(folderPath+instPath+"MR"+":qTot_"+"MR")                        // 2D q-values   
     772                 
    662773                        nSets = 2 
    663774                        break                    
    664775                 
    665776                case "MTB": 
    666                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_MT") 
    667                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" + ":det_"+"MT")             // 2D detector data 
    668                         WAVE/Z iErr = $("iErr_"+"MT")                   // 2D errors -- may not exist, especially for simulation 
    669                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" +":qTot_"+"MT")                    // 2D q-values 
    670                         WAVE inten2 = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" + ":det_"+"MB")            // 2D detector data 
    671                         WAVE/Z iErr2 = $("iErr_"+"MB")                  // 2D errors -- may not exist, especially for simulation 
    672                         Wave qTotal2 = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" +":qTot_"+"MB")                   // 2D q-values 
     777                        if(isVCALC) 
     778                                WAVE inten = $(folderPath+instPath+"MT"+":det_"+"MT") 
     779                                WAVE/Z iErr = $("iErr_"+"MT")                   // 2D errors -- may not exist, especially for simulation                 
     780                                WAVE inten2 = $(folderPath+instPath+"MB"+":det_"+"MB") 
     781                                WAVE/Z iErr2 = $("iErr_"+"MB")                  // 2D errors -- may not exist, especially for simulation         
     782                        else 
     783                                Wave inten = V_getDetectorDataW(folderStr,"MT") 
     784                                Wave iErr = V_getDetectorDataErrW(folderStr,"MT") 
     785                                Wave inten2 = V_getDetectorDataW(folderStr,"MB") 
     786                                Wave iErr2 = V_getDetectorDataErrW(folderStr,"MB") 
     787                        endif    
     788                        NVAR delQ = $(folderPath+instPath+"MT"+":gDelQ_MT") 
     789                         
     790                        Wave qTotal = $(folderPath+instPath+"MT"+":qTot_"+"MT")                 // 2D q-values   
     791                        Wave qTotal2 = $(folderPath+instPath+"MB"+":qTot_"+"MB")                        // 2D q-values   
     792                 
    673793                        nSets = 2 
    674794                        break                            
    675795                 
    676796                case "MLRTB": 
    677                         NVAR delQ = $("root:Packages:NIST:VSANS:VCALC:" + "gDelQ_ML") 
    678                         WAVE inten = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" + ":det_"+"ML")             // 2D detector data 
    679                         WAVE/Z iErr = $("iErr_"+"ML")                   // 2D errors -- may not exist, especially for simulation 
    680                         Wave qTotal = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" +":qTot_"+"ML")                    // 2D q-values 
    681                         WAVE inten2 = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" + ":det_"+"MR")            // 2D detector data 
    682                         WAVE/Z iErr2 = $("iErr_"+"MR")                  // 2D errors -- may not exist, especially for simulation 
    683                         Wave qTotal2 = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" +":qTot_"+"MR")                   // 2D q-values 
    684                         WAVE inten3 = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" + ":det_"+"MT")            // 2D detector data 
    685                         WAVE/Z iErr3 = $("iErr_"+"MT")                  // 2D errors -- may not exist, especially for simulation 
    686                         Wave qTotal3 = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" +":qTot_"+"MT")                   // 2D q-values 
    687                         WAVE inten4 = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" + ":det_"+"MB")            // 2D detector data 
    688                         WAVE/Z iErr4 = $("iErr_"+"MB")                  // 2D errors -- may not exist, especially for simulation 
    689                         Wave qTotal4 = $("root:Packages:NIST:VSANS:VCALC:" + "Middle" +":qTot_"+"MB")                   // 2D q-values 
     797                        if(isVCALC) 
     798                                WAVE inten = $(folderPath+instPath+"ML"+":det_"+"ML") 
     799                                WAVE/Z iErr = $("iErr_"+"ML")                   // 2D errors -- may not exist, especially for simulation                 
     800                                WAVE inten2 = $(folderPath+instPath+"MR"+":det_"+"MR") 
     801                                WAVE/Z iErr2 = $("iErr_"+"MR")                  // 2D errors -- may not exist, especially for simulation         
     802                                WAVE inten3 = $(folderPath+instPath+"MT"+":det_"+"MT") 
     803                                WAVE/Z iErr3 = $("iErr_"+"MT")                  // 2D errors -- may not exist, especially for simulation                 
     804                                WAVE inten4 = $(folderPath+instPath+"MB"+":det_"+"MB") 
     805                                WAVE/Z iErr4 = $("iErr_"+"MB")                  // 2D errors -- may not exist, especially for simulation         
     806                        else 
     807                                Wave inten = V_getDetectorDataW(folderStr,"ML") 
     808                                Wave iErr = V_getDetectorDataErrW(folderStr,"ML") 
     809                                Wave inten2 = V_getDetectorDataW(folderStr,"MR") 
     810                                Wave iErr2 = V_getDetectorDataErrW(folderStr,"MR") 
     811                                Wave inten3 = V_getDetectorDataW(folderStr,"MT") 
     812                                Wave iErr3 = V_getDetectorDataErrW(folderStr,"MT") 
     813                                Wave inten4 = V_getDetectorDataW(folderStr,"MB") 
     814                                Wave iErr4 = V_getDetectorDataErrW(folderStr,"MB") 
     815                        endif    
     816                        NVAR delQ = $(folderPath+instPath+"ML"+":gDelQ_ML") 
     817                         
     818                        Wave qTotal = $(folderPath+instPath+"ML"+":qTot_"+"ML")                 // 2D q-values   
     819                        Wave qTotal2 = $(folderPath+instPath+"MR"+":qTot_"+"MR")                        // 2D q-values   
     820                        Wave qTotal3 = $(folderPath+instPath+"MT"+":qTot_"+"MT")                        // 2D q-values   
     821                        Wave qTotal4 = $(folderPath+instPath+"MB"+":qTot_"+"MB")                        // 2D q-values   
     822                 
    690823                        nSets = 4 
    691824                        break                                                                    
     
    699832 
    700833        if(nSets == 0) 
     834                SetDataFolder root: 
    701835                return(0) 
    702836        endif 
     
    736870//******TODO****** -- where to put the averaged data -- right now, folderStr is forced to ""     
    737871//      SetDataFolder $("root:"+folderStr)              //should already be here, but make sure...       
    738         Make/O/D/N=(nq)  $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"iBin_qxqy"+"_"+type) 
    739         Make/O/D/N=(nq)  $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"qBin_qxqy"+"_"+type) 
    740         Make/O/D/N=(nq)  $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"nBin_qxqy"+"_"+type) 
    741         Make/O/D/N=(nq)  $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"iBin2_qxqy"+"_"+type) 
    742         Make/O/D/N=(nq)  $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"eBin_qxqy"+"_"+type) 
    743         Make/O/D/N=(nq)  $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"eBin2D_qxqy"+"_"+type) 
    744          
    745         Wave iBin_qxqy = $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"iBin_qxqy_"+type) 
    746         Wave qBin_qxqy = $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"qBin_qxqy"+"_"+type) 
    747         Wave nBin_qxqy = $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"nBin_qxqy"+"_"+type) 
    748         Wave iBin2_qxqy = $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"iBin2_qxqy"+"_"+type) 
    749         Wave eBin_qxqy = $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"eBin_qxqy"+"_"+type) 
    750         Wave eBin2D_qxqy = $("root:Packages:NIST:VSANS:VCALC:"+folderStr+"eBin2D_qxqy"+"_"+type) 
     872        Make/O/D/N=(nq)  $(folderPath+":"+"iBin_qxqy"+"_"+type) 
     873        Make/O/D/N=(nq)  $(folderPath+":"+"qBin_qxqy"+"_"+type) 
     874        Make/O/D/N=(nq)  $(folderPath+":"+"nBin_qxqy"+"_"+type) 
     875        Make/O/D/N=(nq)  $(folderPath+":"+"iBin2_qxqy"+"_"+type) 
     876        Make/O/D/N=(nq)  $(folderPath+":"+"eBin_qxqy"+"_"+type) 
     877        Make/O/D/N=(nq)  $(folderPath+":"+"eBin2D_qxqy"+"_"+type) 
     878         
     879        Wave iBin_qxqy = $(folderPath+":"+"iBin_qxqy_"+type) 
     880        Wave qBin_qxqy = $(folderPath+":"+"qBin_qxqy"+"_"+type) 
     881        Wave nBin_qxqy = $(folderPath+":"+"nBin_qxqy"+"_"+type) 
     882        Wave iBin2_qxqy = $(folderPath+":"+"iBin2_qxqy"+"_"+type) 
     883        Wave eBin_qxqy = $(folderPath+":"+"eBin_qxqy"+"_"+type) 
     884        Wave eBin2D_qxqy = $(folderPath+":"+"eBin2D_qxqy"+"_"+type) 
    751885         
    752886         
     
    818952        endif 
    819953 
    820 // add in set 3 and 4 (set 1 and 2already done) 
     954// add in set 3 and 4 (set 1 and 2 already done) 
    821955        if(nSets == 4) 
    822956                xDim=DimSize(inten3,0) 
Note: See TracChangeset for help on using the changeset viewer.