Changeset 1151


Ignore:
Timestamp:
May 22, 2019 2:36:28 PM (3 years ago)
Author:
srkline
Message:

some addtions:

DIV file generation is now aware of the High resolution detector, but the procedures are still awaiting data for testing.

Read Noise file can now be read in and stored in the (RAW) folder ReadNoise?. This is not a work folder and the data isnot changed from the RAW state. This image is then subtracted from other raw data as it is converted to a work file (SAM, EMP, etc.) Previously, only a constant value was subtracted. If the ReadNoise? data is not present, the constant will be subtracted. There is a menu option to load the ReadNoise? data.

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

Legend:

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

    r1124 r1151  
    5858        Button button1_2,pos={54.00,70.00},size={120.00,20.00},proc=V_DIVMaskButtonProc,title="Mask for DIV" 
    5959 
    60         DrawText 36,130,"Reduce data for one carriage"   
    61         DrawText 36,200,"Repeat for the other carriage" 
     60        DrawText 32,130,"Reduce data for one carriage"   
     61        DrawText 32,200,"Repeat for the other carriage(s)" 
    6262         
    6363        Button button2,pos={54.00,145.00},size={120.00,20.00},proc=V_DIVNormalizeButtonProc,title="Normalize+Copy" 
    6464 
    65         DrawText 36,290,"Once data for both carriages has\rbeen normalized, save the file"       
     65        DrawText 32,290,"Once data for both (or 3) carriages\rhas been normalized, save the file"        
    6666         
    6767        Button button3,pos={54.00,300.00},size={120.00,20.00},proc=V_DIVSaveButtonProc,title="Save DIV" 
     
    163163Proc V_NormalizeDIV_proc(reducedFolderType,carriageStr) 
    164164        String reducedFolderType="COR",carriageStr="F" 
    165         if(cmpstr(carriageStr,"F")==0) 
     165         
     166        if (cmpstr(carriageStr,"B")==0) 
     167                V_NormalizeDIV_onePanel(reducedFolderType,"B") 
     168        elseif (cmpstr(carriageStr,"F")==0) 
    166169                V_NormalizeDIV_onePanel(reducedFolderType,"FL") 
    167170                V_NormalizeDIV_onePanel(reducedFolderType,"FR") 
     
    503506 
    504507        PopupMenu popup0,pos={17.00,10.00},size={77.00,23.00},proc=V_DispCarriagePopMenuProc,title="Carriage" 
    505         PopupMenu popup0,mode=1,value= #"\"F;M;\"" 
     508        PopupMenu popup0,mode=1,value= #"\"F;M;B;\"" 
    506509        PopupMenu popup1,pos={134.00,10.00},size={68.00,23.00},proc=V_DispFolderPopMenuProc,title="Folder" 
    507510        PopupMenu popup1,mode=1,popvalue="RAW",value= #"\"SAM;EMP;BGD;DIV;COR;CAL;RAW;ABS;STO;SUB;DRK;MSK;ADJ;\"" 
     
    598601 
    599602// called by the "update" button 
    600 Proc V_UpdatePanelDisp() 
     603Function V_UpdatePanelDisp() 
    601604 
    602605        ControlInfo popup0 
     
    606609        String folder = S_Value 
    607610         
    608         // remove the image 
     611        string tmpStr="" 
     612        Variable isVCALC=0 
     613        if(cmpstr("VCALC",folder)==0) 
     614                isVCALC=1 
     615        endif 
     616                 
     617        // remove everything from each of the 4 panels 
     618        tmpStr = ImageNameList("VSANS_DIVPanels#Panel_L",";") 
     619        if(ItemsInList(tmpStr) > 0) 
     620                do 
     621                        RemoveImage /W=VSANS_DIVPanels#Panel_L $(StringFromList(0,tmpStr,";"))          //get 1st item 
     622                        tmpStr = ImageNameList("VSANS_DIVPanels#Panel_L",";")                                                           //refresh list 
     623                while(ItemsInList(tmpStr) > 0) 
     624        endif 
     625         
     626        tmpStr = ImageNameList("VSANS_DIVPanels#Panel_R",";") 
     627        if(ItemsInList(tmpStr) > 0) 
     628                do 
     629                        RemoveImage /W=VSANS_DIVPanels#Panel_R $(StringFromList(0,tmpStr,";"))          //get 1st item 
     630                        tmpStr = ImageNameList("VSANS_DIVPanels#Panel_R",";")                                                           //refresh list 
     631                while(ItemsInList(tmpStr) > 0) 
     632        endif 
     633         
     634        tmpStr = ImageNameList("VSANS_DIVPanels#Panel_T",";") 
     635        if(ItemsInList(tmpStr) > 0) 
     636                do 
     637                        RemoveImage /W=VSANS_DIVPanels#Panel_T $(StringFromList(0,tmpStr,";"))          //get 1st item 
     638                        tmpStr = ImageNameList("VSANS_DIVPanels#Panel_T",";")                                                           //refresh list 
     639                while(ItemsInList(tmpStr) > 0) 
     640        endif 
     641         
     642        tmpStr = ImageNameList("VSANS_DIVPanels#Panel_B",";") 
     643        if(ItemsInList(tmpStr) > 0) 
     644                do 
     645                        RemoveImage /W=VSANS_DIVPanels#Panel_B $(StringFromList(0,tmpStr,";"))          //get 1st item 
     646                        tmpStr = ImageNameList("VSANS_DIVPanels#Panel_B",";")                                                           //refresh list 
     647                while(ItemsInList(tmpStr) > 0) 
     648        endif 
     649         
     650 
    609651        // append the new image 
    610         RemoveImage/Z/W=VSANS_DIVPanels#Panel_L data 
    611         AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_L $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"L:data")                 
    612         SetActiveSubwindow VSANS_DIVPanels#Panel_L 
    613         ModifyImage data ctab= {*,*,ColdWarm,0} 
    614         ModifyImage data ctabAutoscale=3 
     652        // if back, put this in the "left" postion, and nothing else 
     653        if(cmpstr("B",carrStr)==0) 
     654                if(isVCALC) 
     655                        AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_L $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+":det_"+carrStr)          
     656                        SetActiveSubwindow VSANS_DIVPanels#Panel_L 
     657                        ModifyImage ''#0 ctab= {*,*,ColdWarm,0} 
     658                        ModifyImage ''#0 ctabAutoscale=3 
     659                else 
     660                        AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_L $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+":data")          
     661                        SetActiveSubwindow VSANS_DIVPanels#Panel_L 
     662                        ModifyImage data ctab= {*,*,ColdWarm,0} 
     663                        ModifyImage data ctabAutoscale=3         
     664                endif 
     665                ModifyGraph margin(left)=14,margin(bottom)=14,margin(top)=14,margin(right)=14 
     666                ModifyGraph mirror=2 
     667                ModifyGraph nticks=4 
     668                ModifyGraph minor=1 
     669                ModifyGraph fSize=9 
     670                ModifyGraph standoff=0 
     671                ModifyGraph tkLblRot(left)=90 
     672                ModifyGraph btLen=3 
     673                ModifyGraph tlOffset=-2 
     674                SetActiveSubwindow ## 
     675                return(0) 
     676        endif 
     677         
     678//      RemoveImage/Z/W=VSANS_DIVPanels#Panel_L data 
     679        if(isVCALC) 
     680                AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_L $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"L:det_"+carrStr+"L")             
     681                SetActiveSubwindow VSANS_DIVPanels#Panel_L 
     682                ModifyImage ''#0 ctab= {*,*,ColdWarm,0} 
     683                ModifyImage ''#0 ctabAutoscale=3 
     684        else 
     685                AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_L $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"L:data")                 
     686                SetActiveSubwindow VSANS_DIVPanels#Panel_L 
     687                ModifyImage data ctab= {*,*,ColdWarm,0} 
     688                ModifyImage data ctabAutoscale=3         
     689        endif 
    615690        ModifyGraph margin(left)=14,margin(bottom)=14,margin(top)=14,margin(right)=14 
    616691        ModifyGraph mirror=2 
     
    625700 
    626701 
    627         RemoveImage/Z/W=VSANS_DIVPanels#Panel_T data 
    628         AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_T $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"T:data")                 
    629         SetActiveSubwindow VSANS_DIVPanels#Panel_T 
    630         ModifyImage data ctab= {*,*,ColdWarm,0} 
    631         ModifyImage data ctabAutoscale=3 
     702//      RemoveImage/Z/W=VSANS_DIVPanels#Panel_T data 
     703        if(isVCALC) 
     704                AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_T $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"T:det_"+carrStr+"T")             
     705                SetActiveSubwindow VSANS_DIVPanels#Panel_T 
     706                ModifyImage ''#0 ctab= {*,*,ColdWarm,0} 
     707                ModifyImage ''#0 ctabAutoscale=3 
     708        else 
     709                AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_T $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"T:data")                 
     710                SetActiveSubwindow VSANS_DIVPanels#Panel_T 
     711                ModifyImage data ctab= {*,*,ColdWarm,0} 
     712                ModifyImage data ctabAutoscale=3 
     713        endif 
    632714        ModifyGraph margin(left)=14,margin(bottom)=14,margin(top)=14,margin(right)=14 
    633715        ModifyGraph mirror=2 
     
    641723        SetActiveSubwindow ## 
    642724         
    643         RemoveImage/Z/W=VSANS_DIVPanels#Panel_B data 
    644         AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_B $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"B:data")                 
    645         SetActiveSubwindow VSANS_DIVPanels#Panel_B 
    646         ModifyImage data ctab= {*,*,ColdWarm,0} 
    647         ModifyImage data ctabAutoscale=3 
     725//      RemoveImage/Z/W=VSANS_DIVPanels#Panel_B data 
     726        if(isVCALC) 
     727                AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_B $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"B:det_"+carrStr+"B")             
     728                SetActiveSubwindow VSANS_DIVPanels#Panel_B 
     729                ModifyImage ''#0 ctab= {*,*,ColdWarm,0} 
     730                ModifyImage ''#0 ctabAutoscale=3 
     731        else 
     732                AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_B $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"B:data")                 
     733                SetActiveSubwindow VSANS_DIVPanels#Panel_B 
     734                ModifyImage data ctab= {*,*,ColdWarm,0} 
     735                ModifyImage data ctabAutoscale=3 
     736        endif 
    648737        ModifyGraph margin(left)=14,margin(bottom)=14,margin(top)=14,margin(right)=14 
    649738        ModifyGraph mirror=2 
     
    657746        SetActiveSubwindow ## 
    658747 
    659         RemoveImage/Z/W=VSANS_DIVPanels#Panel_R data 
    660         AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_R $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"R:data")                 
    661         SetActiveSubwindow VSANS_DIVPanels#Panel_R 
    662         ModifyImage data ctab= {*,*,ColdWarm,0} 
    663         ModifyImage data ctabAutoscale=3 
     748//      RemoveImage/Z/W=VSANS_DIVPanels#Panel_R data 
     749        if(isVCALC) 
     750                AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_R $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"R:det_"+carrStr+"R")             
     751                SetActiveSubwindow VSANS_DIVPanels#Panel_R 
     752                ModifyImage ''#0 ctab= {*,*,ColdWarm,0} 
     753                ModifyImage ''#0 ctabAutoscale=3 
     754        else 
     755                AppendImage/T/G=1/W=VSANS_DIVPanels#Panel_R $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"R:data")                 
     756                SetActiveSubwindow VSANS_DIVPanels#Panel_R 
     757                ModifyImage data ctab= {*,*,ColdWarm,0} 
     758                ModifyImage data ctabAutoscale=3 
     759        endif 
    664760        ModifyGraph margin(left)=14,margin(bottom)=14,margin(top)=14,margin(right)=14 
    665761        ModifyGraph mirror=2 
     
    673769        SetActiveSubwindow ## 
    674770 
     771        return(0) 
    675772End 
    676773 
     
    734831                         
    735832                        // update the data that is displayed 
    736                         Execute "V_UpdatePanelDisp()" 
     833                        V_UpdatePanelDisp() 
    737834                         
    738835                         
     
    763860         
    764861        String  formatStr="Avg = %g +/- %g\rMin = %g, Max = %g" 
    765          
     862 
     863        if(cmpstr(carrStr,"B")==0) 
     864                WaveStats/Q $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_B:data") 
     865                sprintf gDIVstr0,formatStr,V_avg,V_sdev,V_min,V_max 
     866                gDIVStr1 = "" 
     867                gDIVStr2 = "" 
     868                gDIVStr3 = "" 
     869                TitleBox title0 title=gDIVstr0 
     870                TitleBox title1 title=gDIVstr1 
     871                TitleBox title2 title=gDIVstr2 
     872                TitleBox title3 title=gDIVstr3 
     873                return(0) 
     874        endif 
     875                 
    766876        WaveStats/Q $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+carrStr+"L:data") 
    767877        sprintf gDIVstr0,formatStr,V_avg,V_sdev,V_min,V_max 
     
    808918        V_CopyHDFToWorkFolder("STO","ADJ") 
    809919 
    810         WAVE w_sto_L = $("root:Packages:NIST:VSANS:STO:entry:instrument:detector_"+carrStr+"L:data") 
    811         WAVE w_sub_L = $("root:Packages:NIST:VSANS:SUB:entry:instrument:detector_"+carrStr+"L:data") 
    812         Duplicate/O w_sto_L $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"L:data") 
    813         WAVE w_adj_L = $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"L:data") 
    814  
    815         WAVE w_sto_R = $("root:Packages:NIST:VSANS:STO:entry:instrument:detector_"+carrStr+"R:data") 
    816         WAVE w_sub_R = $("root:Packages:NIST:VSANS:SUB:entry:instrument:detector_"+carrStr+"R:data") 
    817         Duplicate/O w_sto_R $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"R:data") 
    818         WAVE w_adj_R = $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"R:data") 
    819  
    820         WAVE w_sto_T = $("root:Packages:NIST:VSANS:STO:entry:instrument:detector_"+carrStr+"T:data") 
    821         WAVE w_sub_T = $("root:Packages:NIST:VSANS:SUB:entry:instrument:detector_"+carrStr+"T:data") 
    822         Duplicate/O w_sto_T $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"T:data") 
    823         WAVE w_adj_T = $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"T:data") 
    824  
    825         WAVE w_sto_B = $("root:Packages:NIST:VSANS:STO:entry:instrument:detector_"+carrStr+"B:data") 
    826         WAVE w_sub_B = $("root:Packages:NIST:VSANS:SUB:entry:instrument:detector_"+carrStr+"B:data") 
    827         Duplicate/O w_sto_B $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"B:data") 
    828         WAVE w_adj_B = $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"B:data") 
    829  
    830          
     920 
     921        if(cmpstr(carrStr,"B")==0) 
     922                WAVE w_sto_B = $("root:Packages:NIST:VSANS:STO:entry:instrument:detector_B:data") 
     923                WAVE w_sub_B = $("root:Packages:NIST:VSANS:SUB:entry:instrument:detector_B:data") 
     924                Duplicate/O w_sto_B $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_B:data") 
     925                WAVE w_adj_B = $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_B:data")  
     926        else 
     927                WAVE w_sto_L = $("root:Packages:NIST:VSANS:STO:entry:instrument:detector_"+carrStr+"L:data") 
     928                WAVE w_sub_L = $("root:Packages:NIST:VSANS:SUB:entry:instrument:detector_"+carrStr+"L:data") 
     929                Duplicate/O w_sto_L $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"L:data") 
     930                WAVE w_adj_L = $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"L:data") 
     931         
     932                WAVE w_sto_R = $("root:Packages:NIST:VSANS:STO:entry:instrument:detector_"+carrStr+"R:data") 
     933                WAVE w_sub_R = $("root:Packages:NIST:VSANS:SUB:entry:instrument:detector_"+carrStr+"R:data") 
     934                Duplicate/O w_sto_R $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"R:data") 
     935                WAVE w_adj_R = $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"R:data") 
     936         
     937                WAVE w_sto_T = $("root:Packages:NIST:VSANS:STO:entry:instrument:detector_"+carrStr+"T:data") 
     938                WAVE w_sub_T = $("root:Packages:NIST:VSANS:SUB:entry:instrument:detector_"+carrStr+"T:data") 
     939                Duplicate/O w_sto_T $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"T:data") 
     940                WAVE w_adj_T = $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"T:data") 
     941         
     942                WAVE w_sto_B = $("root:Packages:NIST:VSANS:STO:entry:instrument:detector_"+carrStr+"B:data") 
     943                WAVE w_sub_B = $("root:Packages:NIST:VSANS:SUB:entry:instrument:detector_"+carrStr+"B:data") 
     944                Duplicate/O w_sto_B $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"B:data") 
     945                WAVE w_adj_B = $("root:Packages:NIST:VSANS:ADJ:entry:instrument:detector_"+carrStr+"B:data") 
     946        endif 
     947 
     948 
     949//handle the back detector separately, then exit 
     950        if(cmpstr(carrStr,"B")==0) 
     951                if(cmpstr(opStr,"ADJ=STO/SUB")==0) 
     952                        w_adj_B = w_sto_B/w_sub_B 
     953                else 
     954                        w_adj_B = w_sto_B - w_sub_B 
     955                endif 
     956                return(0) 
     957        endif 
     958 
     959 
     960// M or F carriages      
    831961        if(cmpstr(opStr,"ADJ=STO/SUB")==0) 
    832962                w_adj_L = w_sto_L/w_sub_L 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_HDF5_RW_Utils.ipf

    r1128 r1151  
    1818 
    1919 
     20 
     21// loads a raw data set into RAW, then copies into the ReadNoise folder 
     22// all I really need from this set is the data from the back detector, nothing else. 
     23Proc LoadHighResReadNoiseData() 
     24        V_LoadHDF5Data("","RAW") 
     25        V_CopyHDFToWorkFolder("RAW","ReadNoise") 
     26End 
    2027 
    2128 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Initialize.ipf

    r1149 r1151  
    7777Strconstant ksBinTrimEndDefault = "B=10;FT=5;FB=5;FL=5;FR=5;MT=5;MB=5;ML=5;MR=5;FTB=4;FLR=4;MTB=4;MLR=4;FLRTB=3;MLRTB=3;" 
    7878 
     79 
     80 
     81//////// HIGH RESOLUTION DETECTOR  /////////////// 
     82 
     83 
     84// 
     85// In May 2019 - after testing with Phil's procesing, the data from the detector has a 
     86// larger read noise value. It can also no longer be treated  as a constant value, but rather  
     87// a detector file that is read in and subtracted pixel-by-pixel.  
     88// 
     89 
     90 
    7991// the average read noise level of the back detector 
    8092// taken from multiple runs with the beam off, 6-28-18 
     
    111123Constant                kShift_BottomX_bin1 = 20 
    112124Constant                kShift_BottomY_bin1 = 130 
     125 
     126 
     127 
     128 
     129 
    113130 
    114131 
     
    193210        NewDataFolder/O root:Packages:NIST:VSANS:RealTime 
    194211        NewDataFolder/O root:Packages:NIST:VSANS:VCALC 
     212        NewDataFolder/O root:Packages:NIST:VSANS:ReadNoise 
    195213 
    196214 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Menu.ipf

    r1148 r1151  
    5757        End 
    5858        SubMenu "File Tests" 
     59                "Load High Res Read Noise Data" 
     60                "-" 
    5961                "Copy_VCALC_to_VSANSFile",Copy_VCALC_to_VSANSFile() 
    6062                "-" 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_PatchFiles.ipf

    r1150 r1151  
    22642264// hi is the last file number (inclusive) 
    22652265// 
     2266// 
     2267//              added in May 2019 -- kill the same numbered files from RawVSANS to force a re-read since the XY 
     2268//  has been changed 
    22662269Function V_fPatchDet_xyCenters(lo,hi) 
    22672270        Variable lo,hi 
     
    22912294                        endfor   
    22922295                 
     2296                // then delete the file from RawVSANS 
     2297                        V_KillNamedDataFolder(fname) 
     2298                         
    22932299                else 
    22942300                        printf "run number %d not found\r",jj 
     
    24372443                        Variable hi=V_Value 
    24382444//                      Wave deadTimeW = root:Packages:NIST:VSANS:Globals:Patch:deadTimeWave 
    2439                          
     2445 
     2446// this function will write the new centers to the file and then delete the file from 
     2447// RawVSANS to force a re-read of the data                       
    24402448                        V_fPatchDet_xyCenters(lo,hi) 
    2441                          
     2449 
    24422450                        break 
    24432451                case -1: // control being killed 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_WorkFolderUtils.ipf

    r1145 r1151  
    470470//  or count dependent). It does not appear to be dependent on gain, and is hoepfully stable over time. 
    471471// 
     472// May 2019 
     473// If present, a detector image of the back detector containing the read noise (non-uniform values) 
     474//  is subtracted rather than a single constant value. 
     475// 
    472476//the current display type is updated to newType (global) 
    473477// 
     
    513517        if(gIgnoreDetB == 0) 
    514518                Wave w = V_getDetectorDataW(fname,"B") 
    515                  
    516                 NVAR gHighResBinning = root:Packages:NIST:VSANS:Globals:gHighResBinning 
    517                  
    518                 switch(gHighResBinning) 
    519                         case 1: 
    520                                 w -= kReadNoiseLevel_bin1               // a constant value 
    521                                  
    522 //                              MatrixFilter /N=11 /P=1 median w                        //              /P=n flag sets the number of passes (default is 1 pass)                  
    523 //                              Print "*** median noise filter 11x11 applied to the back detector (1 pass) ***" 
    524                                 Print "*** 1x1 binning - subtracted ReadNoise - No Filter ***" 
    525                                 break 
    526                         case 4: 
    527                                 w -= kReadNoiseLevel_bin4               // a constant value 
    528                                  
    529 //                              MatrixFilter /N=3 /P=3 median w                 //              /P=n flag sets the number of passes (default is 1 pass)                          
    530 //                              Print "*** median noise filter 3x3 applied to the back detector (3 passes) ***" 
    531                                 Print "*** 4x4 binning - subtracted ReadNoise - No Filter ***" 
    532                                 break 
    533                         default: 
    534                                 Abort "No binning case matches in V_Raw_to_Work" 
    535                 endswitch        
    536  
    537         endif 
     519                // I hate to hard-wire this, but the data must be in this specific location... 
     520                Wave/Z w_ReadNoise = $("root:Packages:NIST:VSANS:ReadNoise:entry:instrument:detector_B:data") 
     521//              Wave/Z w_ReadNoise = V_getDetectorDataW("ReadNoise","B") 
     522                 
     523                if(WaveExists(w_ReadNoise)) 
     524                        w -= w_ReadNoise 
     525                        Print "Subtracting ReadNoise Array" 
     526                else 
     527                        NVAR gHighResBinning = root:Packages:NIST:VSANS:Globals:gHighResBinning 
     528                         
     529                        switch(gHighResBinning) 
     530                                case 1: 
     531                                        w -= kReadNoiseLevel_bin1               // a constant value 
     532                                         
     533        //                              MatrixFilter /N=11 /P=1 median w                        //              /P=n flag sets the number of passes (default is 1 pass)                  
     534        //                              Print "*** median noise filter 11x11 applied to the back detector (1 pass) ***" 
     535                                        Print "*** 1x1 binning - subtracted ReadNoise Constant - No Filter ***" 
     536                                        break 
     537                                case 4: 
     538                                        w -= kReadNoiseLevel_bin4               // a constant value 
     539                                         
     540        //                              MatrixFilter /N=3 /P=3 median w                 //              /P=n flag sets the number of passes (default is 1 pass)                          
     541        //                              Print "*** median noise filter 3x3 applied to the back detector (3 passes) ***" 
     542                                        Print "*** 4x4 binning - subtracted ReadNoise Constant - No Filter ***" 
     543                                        break 
     544                                default: 
     545                                        Abort "No binning case matches in V_Raw_to_Work" 
     546                        endswitch        
     547                endif           //waveExists 
     548        endif           // using det B 
    538549         
    539550         
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Write_VSANS_QIS.ipf

    r1128 r1151  
    466466                labelWave[12] = "Average Choices: "+proto[5] 
    467467                labelWave[13] = "Collimation type: "+proto[9] 
    468                 labelWave[14] = "Panel = "+detStr 
     468                labelWave[14] = "Panel="+detStr 
    469469                labelWave[15] = "NumXPixels="+num2str(pixX) 
    470470                labelWave[16] = "XPixelSize_mm="+num2str(pixSizeX) 
     
    552552// find some way to speed this up! 
    553553// MultiThreading will be difficult as it requires all the dependent functions (HDF5 reads, etc.) to be threadsafe as well 
    554 // and there are a lot of them... 
     554// and there are a lot of them... and I don't know if opening a file multiple times is a threadsafe operation?  
     555//  -- multiple open attempts seems like a bad idea. 
    555556                //type = work folder 
    556557                 
Note: See TracChangeset for help on using the changeset viewer.