Ignore:
Timestamp:
Apr 29, 2016 5:04:20 PM (7 years ago)
Author:
srkline
Message:

more changes, bug fixes, detector dead time fix

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

Legend:

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

    r994 r995  
    597597// this works if the proper centers are in the file - otherwise, it's a mess     
    598598// "B" is skipped here, as it should be... 
    599         fname = "RAW" 
     599        SVAR type = root:Packages:NIST:VSANS:Globals:gCurDispType 
     600 
     601        fname = type 
    600602        for(ii=0;ii<ItemsInList(ksDetectorListNoB);ii+=1) 
    601603                detStr = StringFromList(ii, ksDetectorListNoB, ";") 
    602604                xCtr = V_getDet_beam_center_x(fname,detStr) 
    603605                yCtr = V_getDet_beam_center_y(fname,detStr) 
    604                 V_RescaleToBeamCenter("RAW",detStr,xCtr,yCtr) 
     606                V_RescaleToBeamCenter(type,detStr,xCtr,yCtr) 
    605607        endfor 
    606608                 
     
    620622Function V_SpreadOutPanels() 
    621623 
    622         V_RescaleToBeamCenter("RAW","MB",64,78) 
    623         V_RescaleToBeamCenter("RAW","MT",64,-30) 
    624         V_RescaleToBeamCenter("RAW","MR",-30,64) 
    625         V_RescaleToBeamCenter("RAW","ML",78,64) 
    626         V_RescaleToBeamCenter("RAW","FB",64,78) 
    627         V_RescaleToBeamCenter("RAW","FT",64,-30) 
    628         V_RescaleToBeamCenter("RAW","FR",-30,64) 
    629         V_RescaleToBeamCenter("RAW","FL",78,64) 
     624        SVAR type = root:Packages:NIST:VSANS:Globals:gCurDispType 
     625 
     626        V_RescaleToBeamCenter(type,"MB",64,78) 
     627        V_RescaleToBeamCenter(type,"MT",64,-30) 
     628        V_RescaleToBeamCenter(type,"MR",-30,64) 
     629        V_RescaleToBeamCenter(type,"ML",78,64) 
     630        V_RescaleToBeamCenter(type,"FB",64,78) 
     631        V_RescaleToBeamCenter(type,"FT",64,-30) 
     632        V_RescaleToBeamCenter(type,"FR",-30,64) 
     633        V_RescaleToBeamCenter(type,"FL",78,64) 
    630634        return(0) 
    631635end 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VC_DetectorBinning_Q.ipf

    r993 r995  
    13171317 
    13181318 
     1319// for a given detector binning type ("B", "FLTB", "MTB" etc) 
     1320// all of the work folders will be checked to see if the data is on the graph 
     1321// and if it is, it will be removed 
     1322// 
     1323Function ClearAllIQIfDisplayed(type) 
     1324        String type 
     1325 
     1326//      String folderList = ksWorkFolderListShort 
     1327        String fldr 
     1328        Variable ii 
     1329         
     1330        for(ii=0;ii<ItemsInList(ksWorkFolderListShort);ii+=1) 
     1331                fldr = StringFromList(ii, ksWorkFolderListShort, ";") 
     1332                ClearIQIfDisplayed(fldr,type) 
     1333        endfor 
     1334        // just in case 
     1335        SetDataFolder root: 
     1336         
     1337        return(0) 
     1338end 
     1339 
    13191340Function ClearIQIfDisplayed(fldr,type) 
    13201341        String fldr,type 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_DataPlotting.ipf

    r993 r995  
    164164        SetDataFolder $("root:Packages:NIST:VSANS:"+type) 
    165165 
     166// clear EVERYTHING 
     167                ClearAllIQIfDisplayed("MLRTB") 
     168                ClearAllIQIfDisplayed("MLR") 
     169                ClearAllIQIfDisplayed("MTB")            //this returns to root: 
     170                ClearAllIQIfDisplayed("MT")      
     171                ClearAllIQIfDisplayed("ML")      
     172                ClearAllIQIfDisplayed("MR")      
     173                ClearAllIQIfDisplayed("MB")      
     174 
    166175        if(binType==1) 
    167                 ClearIQIfDisplayed(type,"MLRTB") 
    168                 ClearIQIfDisplayed(type,"MLR") 
    169                 ClearIQIfDisplayed(type,"MTB")          //this returns to root: 
    170                  
     176//              ClearAllIQIfDisplayed("MLRTB") 
     177//              ClearAllIQIfDisplayed("MLR") 
     178//              ClearAllIQIfDisplayed("MTB")            //this returns to root: 
     179//              ClearAllIQIfDisplayed("MT")      
     180//              ClearAllIQIfDisplayed("ML")      
     181//              ClearAllIQIfDisplayed("MR")      
     182//              ClearAllIQIfDisplayed("MB")                      
    171183                SetDataFolder $("root:Packages:NIST:VSANS:"+type) 
    172184                CheckDisplayed/W=V_1D_Data iBin_qxqy_ML 
     
    189201         
    190202        if(binType==2) 
    191                 ClearIQIfDisplayed(type,"MLRTB") 
    192                 ClearIQIfDisplayed(type,"MT")    
    193                 ClearIQIfDisplayed(type,"ML")    
    194                 ClearIQIfDisplayed(type,"MR")    
    195                 ClearIQIfDisplayed(type,"MB") 
     203//              ClearAllIQIfDisplayed("MLRTB") 
     204//              ClearAllIQIfDisplayed("MT")      
     205//              ClearAllIQIfDisplayed("ML")      
     206//              ClearAllIQIfDisplayed("MR")      
     207//              ClearAllIQIfDisplayed("MB") 
    196208         
    197209 
     
    217229         
    218230        if(binType==3) 
    219                 ClearIQIfDisplayed(type,"MLR") 
    220                 ClearIQIfDisplayed(type,"MTB")   
    221                 ClearIQIfDisplayed(type,"MT")    
    222                 ClearIQIfDisplayed(type,"ML")    
    223                 ClearIQIfDisplayed(type,"MR")    
    224                 ClearIQIfDisplayed(type,"MB")    
     231//              ClearAllIQIfDisplayed("MLR") 
     232//              ClearAllIQIfDisplayed("MTB")     
     233//              ClearAllIQIfDisplayed("MT")      
     234//              ClearAllIQIfDisplayed("ML")      
     235//              ClearAllIQIfDisplayed("MR")      
     236//              ClearAllIQIfDisplayed("MB")      
    225237         
    226238                SetDataFolder $("root:Packages:NIST:VSANS:"+type) 
     
    243255 
    244256        if(binType==4)          // slit aperture binning - Mt, ML, MR, MB are averaged 
    245                 ClearIQIfDisplayed(type,"MLRTB") 
    246                 ClearIQIfDisplayed(type,"MLR") 
    247                 ClearIQIfDisplayed(type,"MTB") 
     257//              ClearAllIQIfDisplayed("MLRTB") 
     258//              ClearAllIQIfDisplayed("MLR") 
     259//              ClearAllIQIfDisplayed("MTB") 
    248260                 
    249261//              SetDataFolder root:Packages:NIST:VSANS:VCALC 
     
    292304        SetDataFolder $("root:Packages:NIST:VSANS:"+type) 
    293305 
     306// clear EVERYTHING 
     307                ClearAllIQIfDisplayed("FLRTB") 
     308                 
     309                ClearAllIQIfDisplayed("FLR") 
     310                ClearAllIQIfDisplayed("FTB") 
     311 
     312                ClearAllIQIfDisplayed("FT")      
     313                ClearAllIQIfDisplayed("FL")      
     314                ClearAllIQIfDisplayed("FR")      
     315                ClearAllIQIfDisplayed("FB") 
     316                 
    294317        if(binType==1) 
    295                 ClearIQIfDisplayed(type,"FLRTB") 
    296                 ClearIQIfDisplayed(type,"FLR") 
    297                 ClearIQIfDisplayed(type,"FTB")          //this returns to root: 
    298                  
     318//              ClearAllIQIfDisplayed("FLRTB") 
     319//               
     320//              ClearAllIQIfDisplayed("FLR") 
     321//              ClearAllIQIfDisplayed("FTB") 
     322// 
     323//              ClearAllIQIfDisplayed("FT")      
     324//              ClearAllIQIfDisplayed("FL")      
     325//              ClearAllIQIfDisplayed("FR")      
     326//              ClearAllIQIfDisplayed("FB") 
     327                                 
    299328                SetDataFolder $("root:Packages:NIST:VSANS:"+type) 
    300329                CheckDisplayed/W=V_1D_Data iBin_qxqy_FL 
     
    317346         
    318347        if(binType==2) 
    319                 ClearIQIfDisplayed(type,"FLRTB") 
    320                 ClearIQIfDisplayed(type,"FT")    
    321                 ClearIQIfDisplayed(type,"FL")    
    322                 ClearIQIfDisplayed(type,"FR")    
    323                 ClearIQIfDisplayed(type,"FB") 
    324          
     348//              ClearAllIQIfDisplayed("FLRTB") 
     349//              ClearAllIQIfDisplayed("FT")      
     350//              ClearAllIQIfDisplayed("FL")      
     351//              ClearAllIQIfDisplayed("FR")      
     352//              ClearAllIQIfDisplayed("FB") 
     353//       
    325354 
    326355                SetDataFolder $("root:Packages:NIST:VSANS:"+type) 
     
    345374         
    346375        if(binType==3) 
    347                 ClearIQIfDisplayed(type,"FLR") 
    348                 ClearIQIfDisplayed(type,"FTB")   
    349                 ClearIQIfDisplayed(type,"FT")    
    350                 ClearIQIfDisplayed(type,"FL")    
    351                 ClearIQIfDisplayed(type,"FR")    
    352                 ClearIQIfDisplayed(type,"FB")    
     376//              ClearAllIQIfDisplayed("FLR") 
     377//              ClearAllIQIfDisplayed("FTB")     
     378//              ClearAllIQIfDisplayed("FT")      
     379//              ClearAllIQIfDisplayed("FL")      
     380//              ClearAllIQIfDisplayed("FR")      
     381//              ClearAllIQIfDisplayed("FB")      
    353382         
    354383                SetDataFolder $("root:Packages:NIST:VSANS:"+type) 
     
    371400 
    372401        if(binType==4)          // slit aperture binning - Mt, ML, MR, MB are averaged 
    373                 ClearIQIfDisplayed(type,"FLRTB") 
    374                 ClearIQIfDisplayed(type,"FLR") 
    375                 ClearIQIfDisplayed(type,"FTB") 
     402//              ClearAllIQIfDisplayed("FLRTB") 
     403//              ClearAllIQIfDisplayed("FLR") 
     404//              ClearAllIQIfDisplayed("FTB") 
    376405                 
    377406//              SetDataFolder root:Packages:NIST:VSANS:VCALC 
     
    419448 
    420449        if(binType==1 || binType==2 || binType==3) 
    421                  
     450         
     451                ClearAllIQIfDisplayed("B") 
     452                SetDataFolder $("root:Packages:NIST:VSANS:"+type)        
    422453                CheckDisplayed/W=V_1D_Data iBin_qxqy_B 
    423454                 
     
    436467        //nothing different here since there is ony a single detector to display, but for the future... 
    437468        if(binType==4) 
    438                  
     469         
     470                ClearAllIQIfDisplayed("B") 
     471                SetDataFolder $("root:Packages:NIST:VSANS:"+type)        
    439472                CheckDisplayed/W=V_1D_Data iBin_qxqy_B 
    440473                 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_DetectorCorrections.ipf

    r994 r995  
    3434// -- clean up when done 
    3535// -- calculate + return the error contribution? 
    36 // 
     36// -- verify the error propagation 
    3737Function DeadTimeCorrectionTubes(dataW,data_errW,dtW,ctTime) 
    3838        Wave dataW,data_errW,dtW 
     
    6060                 
    6161                dataW[][] = dataW[p][q]/(1-sumTubes[p]*dtW[p])          //correct the data 
     62                data_errW[][] = data_errW[p][q]/(1-sumTubes[p]*dtW[p])          // propagate the error wave 
    6263 
    6364        elseif(cmpstr(orientation,"horizontal")==0) 
     
    6869                 
    6970                dataW[][] = dataW[p][q]/(1-sumTubes[q]*dtW[q]) 
     71                data_errW[][] = data_errW[p][q]/(1-sumTubes[q]*dtW[q]) 
    7072         
    7173        else             
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_HDF5_RW_Utils.ipf

    r994 r995  
    2323// the list of WORK Folders 
    2424Strconstant ksWorkFolderList = "RAW;SAM;EMP;BGD;COR;DIV;ABS;MSK;CAL;STO;SUB;DRK;ADJ;VCALC;RawVSANS;" 
     25Strconstant ksWorkFolderListShort = "RAW;SAM;EMP;BGD;COR;DIV;ABS;MSK;CAL;STO;SUB;DRK;ADJ;" 
    2526 
    2627 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Test_RAW_Panel.ipf

    r994 r995  
    655655                        endif 
    656656                        FakeTabClick(V_Value) 
    657                          
     657 
     658// update the status when the tab is clicked                     
     659                        STRUCT WMButtonAction sa 
     660                        sa.eventCode = 2 
     661                        StatusButtonProc(sa) 
     662 
    658663                        break 
    659664                case -1: // control being killed 
     
    885890                        // click code here 
    886891                        V_SpreadOutPanels() 
     892                         
    887893                        break 
    888894                case -1: // control being killed 
     
    904910                        // click code here 
    905911                        V_RestorePanels() 
     912                                 
    906913                        break 
    907914                case -1: // control being killed 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Testing_Data_Procs.ipf

    r994 r995  
    4343                V_writeDetectorData(fileName,detStr,tmpData) 
    4444                 
    45                 val = VCALC_getTopBottomSDDOffset(detStr)/10 + VCALC_getSDD(detStr)*100         // make sure value is in cm 
     45                val = VCALC_getSDD(detStr)*100          // make sure value is in cm 
    4646                print val 
    4747                V_writeDet_distance(fileName,detStr,val) 
     48                 
     49                val = VCALC_getTopBottomSDDOffset(detStr)               //val is in mm, as for data file 
     50                if(val != 0) 
     51                        V_writeDet_TBSetback(fileName,detStr,val) 
     52                endif 
    4853                 
    4954                // x and y pixel sizes for each detector should be correct in the "base" file - but if not... 
     
    5863                 
    5964                 
    60          
    6165                // the calibration data for each detector (except B) is already correct in the "base" file 
    6266                //V_writeDetTube_spatialCalib(fname,detStr,inW) 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_WorkFolderUtils.ipf

    r994 r995  
    472472                        Wave w = V_getDetectorDataW(fname,detStr) 
    473473                        Wave w_err = V_getDetectorDataErrW(fname,detStr) 
    474 //                      Wave w_dt = V_getDetector_deadtime(fname,detStr) 
     474                        // any other dimensions to pass in? 
    475475//                      SolidAngleCorrection(fill this in) 
    476476                         
     
    485485        // -- loop over all of the detectors 
    486486        // -- B detector is a special case (do separately, then loop over NoB) 
     487        // -- this DOES alter the data 
     488        // -- verify the error propagation 
     489        // 
     490        Variable countRate 
    487491        NVAR gDoDeadTimeCor = root:Packages:NIST:VSANS:Globals:gDoDeadTimeCor 
    488492        if (gDoDeadTimeCor == 1) 
     
    497501                                Variable b_dt = V_getDetector_deadtime_B(fname,detStr) 
    498502                                // do the correction for the back panel 
    499                                  
    500                                 //      itim = integersread[2] 
    501                                 //      cntrate = sum(data,-inf,inf)/itim               //use sum of detector counts rather than scaler value 
    502                                 //      //TODO - do correct dead time correction for tubes 
    503                                 //      deadtime = 1//DetectorDeadtime(textread[3],textread[9],dateAndTimeStr=textRead[1],dtime=realsRead[48])  //pick the correct deadtime 
    504                                 //      dscale = 1/(1-deadTime*cntrate) 
    505                                 //       
    506                                          
    507                                 // dead time correction 
    508                                 //      data *= dscale          //deadtime correction for everyone else, including NCNR 
    509                                 //      data_err *= dscale 
    510                                  
    511                                  
     503                                countRate = sum(w,-inf,inf)/ctTime              //use sum of detector counts 
     504 
     505                                w = w/(1-countRate*b_dt) 
     506                                w_err = w_err/(1-countRate*b_dt) 
     507                                                                 
    512508                        else 
    513509                                // do the corrections for 8 tube panels 
    514  
    515510                                Wave w_dt = V_getDetector_deadtime(fname,detStr) 
    516                                 //                      DeadTimeCorrectionTubes(w,w_err,w_dt,ctTime) 
    517  
    518  
     511                                DeadTimeCorrectionTubes(w,w_err,w_dt,ctTime) 
     512                                 
    519513                        endif 
    520514                endfor 
Note: See TracChangeset for help on using the changeset viewer.