Ignore:
Timestamp:
Mar 1, 2017 2:04:12 PM (6 years ago)
Author:
srkline
Message:

many changes to get the basics of a reduction protocol working

Location:
sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS
Files:
1 added
10 edited

Legend:

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

    r1022 r1025  
    648648        NewDataFolder/O root:Packages:NIST:VSANS:VCALC 
    649649        NewDataFolder/O root:Packages:NIST:VSANS:VCALC:entry 
    650         NewDataFolder/O root:Packages:NIST:VSANS:VCALC:entry 
    651650        NewDataFolder/O root:Packages:NIST:VSANS:VCALC:entry:instrument 
    652651        NewDataFolder/O root:Packages:NIST:VSANS:VCALC:entry:instrument:detector_B 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/VSANS_Includes.ipf

    r1023 r1025  
    8888#include "V_Correct" 
    8989#include "V_Detector_Isolate" 
     90#include "V_Protocol_Reduction" 
    9091 
     92 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_DIVUtils.ipf

    r1019 r1025  
    8080 
    8181        NewDataFolder/O/S root:VSANS_DIV_file:entry      
    82                 Make/O/T/N=1    title   = "This is a fake DIV file for VSANS" 
     82                Make/O/T/N=1    title   = "This is a DIV file for VSANS: VSANS_DIV" 
    8383                Make/O/T/N=1    start_date      = "2015-02-28T08:15:30-5:00" 
    8484                NewDataFolder/O/S root:VSANS_DIV_file:entry:instrument           
     
    8888                        Make/O/D/N=(150,150)    linear_data_error       = 0.01*abs(gnoise(1)) 
    8989                NewDataFolder/O/S root:VSANS_DIV_file:entry:instrument:detector_MR               
    90                         Make/O/D/N=(48,128)     data    = 1 + (enoise(0.1)) 
     90                        Make/O/D/N=(48,128)     data 
     91                        data[][0] = 1+enoise(0.1) 
     92                        data[][] = data[p][0] 
    9193                        Make/O/D/N=(48,128)     linear_data_error       = 0.01*abs(gnoise(1)) 
    9294                NewDataFolder/O/S root:VSANS_DIV_file:entry:instrument:detector_ML               
    93                         Make/O/D/N=(48,128)     data    = 1 + (enoise(0.1)) 
     95                        Make/O/D/N=(48,128)     data 
     96                        data[][0] = 1+enoise(0.1) 
     97                        data[][] = data[p][0] 
    9498                        Make/O/D/N=(48,128)     linear_data_error       = 0.01*abs(gnoise(1)) 
    9599                NewDataFolder/O/S root:VSANS_DIV_file:entry:instrument:detector_MT               
     
    100104                        Make/O/D/N=(128,48)     linear_data_error       = 0.01*abs(gnoise(1)) 
    101105                NewDataFolder/O/S root:VSANS_DIV_file:entry:instrument:detector_FR               
    102                         Make/O/D/N=(48,128)     data    = 1 + (enoise(0.1)) 
     106                        Make/O/D/N=(48,128)     data 
     107                        data[][0] = 1+enoise(0.1) 
     108                        data[][] = data[p][0] 
    103109                        Make/O/D/N=(48,128)     linear_data_error       = 0.01*abs(gnoise(1)) 
    104110                NewDataFolder/O/S root:VSANS_DIV_file:entry:instrument:detector_FL               
    105                         Make/O/D/N=(48,128)     data    = 1 + (enoise(0.1)) 
     111                        Make/O/D/N=(48,128)     data 
     112                        data[][0] = 1+enoise(0.1) 
     113                        data[][] = data[p][0] 
    106114                        Make/O/D/N=(48,128)     linear_data_error       = 0.01*abs(gnoise(1)) 
    107115                NewDataFolder/O/S root:VSANS_DIV_file:entry:instrument:detector_FT               
     
    111119                        Make/O/D/N=(128,48)     data    = 1 + (enoise(0.1)) 
    112120                        Make/O/D/N=(128,48)     linear_data_error       = 0.01*abs(gnoise(1)) 
     121                 
     122                // fake, empty folders so that the generic loaders can be used 
     123                NewDataFolder/O root:VSANS_DIV_file:entry:DAS_logs 
     124                NewDataFolder/O root:VSANS_DIV_file:entry:control 
     125                NewDataFolder/O root:VSANS_DIV_file:entry:reduction 
     126                NewDataFolder/O root:VSANS_DIV_file:entry:sample 
     127                NewDataFolder/O root:VSANS_DIV_file:entry:user 
     128 
    113129                         
    114130        SetDataFolder root: 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Detector_Isolate.ipf

    r1024 r1025  
    4343        DoWindow/F IsolateDetector 
    4444        if(V_flag==0) 
     45         
     46                Execute "VC_Initialize_Space()"         // initializes VCALC space, so that dummy values are present for MSK and DIV 
     47         
    4548                Execute "V_IsolateDetectorPanel()" 
    4649        endif 
     
    6467//      PopupMenu popup_1,mode=1,popvalue="BroadPeak",value= #"\"BroadPeak;other;\"" 
    6568        PopupMenu popup_2,pos={20,18},size={109,20},title="Data Source",proc=V_SetFldrPopMenuProc 
    66         PopupMenu popup_2,mode=1,popvalue="RAW",value= #"\"RAW;VCALC;\"" 
     69        PopupMenu popup_2,mode=1,popvalue="RAW",value= #"\"RAW;SAM;EMP;BGD;DIV;MSK;\"" 
    6770                 
    6871        Button button_0,pos={541,79},size={130,20},proc=V_isoCorrectButtonProc,title="Apply Corrections" 
     
    159162// 
    160163// -- need to adjust the size of the image subwindows to keep the model 
    161 //    calculation from spillon over onto the table (maybe just move the table) 
     164//    calculation from spilling over onto the table (maybe just move the table) 
    162165// -- need to do something for panel "B". currently ignored 
    163166// -- currently the pixel sizes for "real" data is incorrect in the file 
    164167//     and this is why the plots are incorrectly sized 
     168// -- need to be able to display MASK and DIV data (or any data without a full set of metadata) 
     169// 
    165170// 
    166171// draw the selected panel and the model calculation, adjusting for the  
    167172// orientation of the panel and the number of pixels, and pixel sizes 
     173// 
     174// str input is the panelStr ("FL" for example) 
    168175Function V_isoDrawDetPanel(str) 
    169176        String str 
     
    195202        folder = S_Value 
    196203 
     204        Variable VC_nPix_X,VC_nPix_Y,VC_pixSize_X,VC_pixSize_Y 
    197205        // TODO -- fix all of this mess 
    198         if(cmpstr(folder,"VCALC") == 0) 
    199                 // panel-specific values 
    200                 Variable VC_nPix_X = VCALC_get_nPix_X(str) 
    201                 Variable VC_nPix_Y = VCALC_get_nPix_Y(str) 
    202                 Variable VC_pixSize_X = VCALC_getPixSizeX(str) 
    203                 Variable VC_pixSize_Y = VCALC_getPixSizeY(str) 
    204  
    205          
    206         // if VCALC declare this way     
    207                 wave dispW = $("root:Packages:NIST:VSANS:VCALC:entry:instrument:detector_"+str+":det_"+str) 
    208                 nPix_X = VC_nPix_X 
    209                 nPix_Y = VC_nPix_Y 
    210                 pixSize_X = VC_pixSize_X 
    211                 pixSize_Y = VC_pixSize_Y 
    212          
    213         else 
    214         // TODO: if real data, need new declaration w/ data as the wave name 
    215                 wave dispW = $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+str+":data") 
    216  
    217                 nPix_X = V_getDet_pixel_num_x(folder,str) 
    218                 nPix_Y = V_getDet_pixel_num_Y(folder,str) 
    219                 pixSize_X = V_getDet_x_pixel_size(folder,str)/10 
    220                 pixSize_Y = V_getDet_y_pixel_size(folder,str)/10 
    221         endif 
     206        strswitch(folder) 
     207                case "VCALC": 
     208//                      VC_nPix_X = VCALC_get_nPix_X(str) 
     209//                      VC_nPix_Y = VCALC_get_nPix_Y(str) 
     210//                      VC_pixSize_X = VCALC_getPixSizeX(str) 
     211//                      VC_pixSize_Y = VCALC_getPixSizeY(str) 
     212//                      wave dispW = $("root:Packages:NIST:VSANS:VCALC:entry:instrument:detector_"+str+":det_"+str) 
     213//                      nPix_X = VC_nPix_X 
     214//                      nPix_Y = VC_nPix_Y 
     215//                      pixSize_X = VC_pixSize_X 
     216//                      pixSize_Y = VC_pixSize_Y 
     217         
     218                        break 
     219                         
     220                case "DIV": 
     221                case "MSK": 
     222                // TODO 
     223                // -- this takes fake data from VCALC, which is very likely wrong for DIV data 
     224                        VC_nPix_X = VCALC_get_nPix_X(str) 
     225                        VC_nPix_Y = VCALC_get_nPix_Y(str) 
     226                        VC_pixSize_X = VCALC_getPixSizeX(str) 
     227                        VC_pixSize_Y = VCALC_getPixSizeY(str) 
     228                        wave dispW = $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+str+":data") 
     229                        nPix_X = VC_nPix_X 
     230                        nPix_Y = VC_nPix_Y 
     231                        pixSize_X = VC_pixSize_X 
     232                        pixSize_Y = VC_pixSize_Y 
     233                        break 
     234 
     235                case "RAW": 
     236                case "ADJ": 
     237                        wave dispW = $("root:Packages:NIST:VSANS:"+folder+":entry:instrument:detector_"+str+":data") 
     238         
     239                        nPix_X = V_getDet_pixel_num_x(folder,str) 
     240                        nPix_Y = V_getDet_pixel_num_Y(folder,str) 
     241                        pixSize_X = V_getDet_x_pixel_size(folder,str)/10 
     242                        pixSize_Y = V_getDet_y_pixel_size(folder,str)/10 
     243                        break 
     244                                 
     245                default: 
     246                        return(0) 
     247        endswitch 
     248 
    222249 
    223250        // and the ADJusted wave to display      
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_FileCatalog.ipf

    r1024 r1025  
    278278                                                 
    279279                                                // this (in SANS) just passes directly to fRawWindowHook() 
    280                                                 Execute "V_UpdateDisplayInformation(\"RAW\")"           // plot the data in whatever folder type 
    281                                                  
    282                                                 V_FakeRestorePanelsButtonClick()                //so the panels display correctly 
    283                                                  
     280                                                V_UpdateDisplayInformation("RAW")               // plot the data in whatever folder type 
     281                                                                                                 
    284282                                                // set the global to display ONLY if the load was called from here, not from the  
    285283                                                // other routines that load data (to read in values) 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_MainPanel.ipf

    r1024 r1025  
    6464                 
    6565                // this (in SANS) just passes directly to fRawWindowHook() 
    66                 UpdateDisplayInformation("RAW")         // plot the data in whatever folder type 
    67                  
    68                 FakeRestorePanelsButtonClick()          //so the panels display correctly 
    69                  
     66                V_UpdateDisplayInformation("RAW")               // plot the data in whatever folder type 
     67                                 
    7068                // set the global to display ONLY if the load was called from here, not from the  
    7169                // other routines that load data (to read in values) 
     
    9088        String ctrlName 
    9189 
    92         ReductionProtocolPanel() 
     90        V_ReductionProtocolPanel() 
    9391End 
    9492 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_MaskUtils.ipf

    r1024 r1025  
    449449// 
    450450// -- need to adjust the size of the image subwindows to keep the model 
    451 //    calculation from spillon over onto the table (maybe just move the table) 
     451//    calculation from spilling over onto the table (maybe just move the table) 
    452452// -- need to do something for panel "B". currently ignored 
    453453// -- currently the pixel sizes for "real" data is incorrect in the file 
    454454//     and this is why the plots are incorrectly sized 
     455// -- error checking if the data does not exist in selected work folder 
    455456// 
    456457// draw the selected panel and the model calculation, adjusting for the  
     
    766767                        data[78,127][] = 1 
    767768                        data[50,77][] = 0 
    768                          
     769 
     770 
     771                // fake, empty folders so that the generic loaders can be used 
     772                NewDataFolder/O root:VSANS_MASK_file:entry:DAS_logs 
     773                NewDataFolder/O root:VSANS_MASK_file:entry:control 
     774                NewDataFolder/O root:VSANS_MASK_file:entry:reduction 
     775                NewDataFolder/O root:VSANS_MASK_file:entry:sample 
     776                NewDataFolder/O root:VSANS_MASK_file:entry:user                  
    769777        SetDataFolder root: 
    770778 
     
    778786 
    779787        NewDataFolder/O/S root:Packages:NIST:VSANS:MSK:entry     
    780                 Make/O/T/N=1    title   = "This is a fake MASK file for VSANS" 
     788                Make/O/T/N=1    title   = "This is a MASK file for VSANS: VSANS_MASK" 
    781789                Make/O/T/N=1    start_date      = "2015-02-28T08:15:30-5:00" 
    782790                NewDataFolder/O/S root:Packages:NIST:VSANS:MSK:entry:instrument          
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Menu.ipf

    r1022 r1025  
    2727        End 
    2828        Submenu "Work Files" 
    29                 "Convert to WORK",Convert_to_Workfile() 
     29                "Convert to WORK",V_Convert_to_Workfile() 
    3030                "Load Fake DIV Data" 
    31                 "DIV a work file",DIV_a_Workfile() 
     31                "DIV a work file",V_DIV_a_Workfile() 
    3232                "Load Fake MASK Data" 
    3333                "Correct Data",V_CorrectData() 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Test_RAW_Panel.ipf

    r1024 r1025  
    3333// -- add a procedure to define the global variables for pos, counts, QxQy, etc. 
    3434// 
    35 Proc V_UpdateDisplayInformation(type) 
     35Function V_UpdateDisplayInformation(type) 
    3636        String type  
    3737         
     
    4242                VSANSDataPanelGlobals() 
    4343                 
    44                 VSANS_DataPanel()               //draws the panel 
     44                Execute "VSANS_DataPanel()"             //draws the panel 
    4545 
    4646        endif 
     
    6161 
    6262        V_FakeStatusButtonClick() 
     63 
     64        V_FakeRestorePanelsButtonClick()                //so the panels display correctly 
    6365 
    6466         
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Utilities_General.ipf

    r1024 r1025  
    460460                 
    461461                // this (in SANS) just passes directly to fRawWindowHook() 
    462                 Execute "V_UpdateDisplayInformation(\"RAW\")"   // plot the data in whatever folder type 
     462                V_UpdateDisplayInformation("RAW")       // plot the data in whatever folder type 
    463463                 
    464                 V_FakeRestorePanelsButtonClick()                //so the panels display correctly 
    465464                // set the global to display ONLY if the load was called from here, not from the  
    466465                // other routines that load data (to read in values) 
     
    870869End 
    871870 
     871// 
     872// TODO: 
     873// -- does this need to be more sophisticated? 
     874// 
     875// simple "not" of V_GetRawDataFileList() 
     876Function/S V_Get_NotRawDataFileList() 
     877         
     878        //make sure that path exists 
     879        PathInfo catPathName 
     880        if (V_flag == 0) 
     881                Abort "Folder path does not exist - use Pick Path button on Main Panel" 
     882        Endif 
     883        String path = S_Path 
     884         
     885        String list=IndexedFile(catPathName,-1,"????") 
     886        String newList="",item="",validName="",fullName="" 
     887        Variable num=ItemsInList(list,";"),ii 
     888         
     889        for(ii=0;ii<num;ii+=1) 
     890                item = StringFromList(ii, list  ,";") 
     891 
     892                validName = V_FindValidFileName(item) 
     893                if(strlen(validName) != 0)              //non-null return from FindValidFileName() 
     894                        fullName = path + validName              
     895 
     896        //method (1)                     
     897//                      if(V_CheckIfRawData(item)) 
     898//                              newlist += item + ";" 
     899//                      endif 
     900 
     901        //method (2)                     
     902                        if( !stringmatch(item,"*.nxs.ngv*") ) 
     903                                newlist += item + ";" 
     904                        endif 
     905 
     906                         
     907                endif 
     908                //print "ii=",ii 
     909        endfor 
     910        newList = SortList(newList,";",0) 
     911        return(newList) 
     912End 
     913 
    872914 
    873915//the following is a WaveMetrics procedure from <StrMatchList> 
Note: See TracChangeset for help on using the changeset viewer.