Ignore:
Timestamp:
Feb 9, 2018 3:47:28 PM (5 years ago)
Author:
srkline
Message:

minor changes to allow patching of more incorrect metadata

added simple way to estimate beam centers from a single measurement (stiil to be thoroughly verified!)

File:
1 edited

Legend:

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

    r1079 r1083  
    23542354end 
    23552355 
    2356  
     2356Proc V_PatchDet_Gap(lo,hi) 
     2357        Variable lo,hi 
     2358         
     2359        V_fPatchDet_Gap(lo,hi) 
     2360End 
     2361 
     2362Proc V_ReadDet_Gap(lo,hi) 
     2363        Variable lo,hi 
     2364         
     2365        V_fReadDet_Gap(lo,hi) 
     2366 
     2367Proc V_PatchDet_Distance(lo,hi,dist_f,dist_m,dist_b) 
     2368        Variable lo,hi,dist_f=400,dist_m=1900,dist_b=2200 
     2369         
     2370        V_fPatchDet_distance(lo,hi,dist_f,dist_m,dist_b) 
     2371End 
    23572372// simple utility to patch the offset values in the file headers 
    23582373// 
     
    24982513        return(0) 
    24992514End 
     2515 
     2516 
     2517 
     2518// simple utility to patch the detector gap values in the file headers 
     2519// 
     2520// values are measured values in [mm], not estimated 
     2521// 
     2522// lo is the first file number 
     2523// hi is the last file number (inclusive) 
     2524// 
     2525Function V_fPatchDet_Gap(lo,hi) 
     2526        Variable lo,hi 
     2527 
     2528         
     2529        Variable ii,jj 
     2530        String fname,detStr 
     2531                 
     2532        //loop over all files 
     2533        for(jj=lo;jj<=hi;jj+=1) 
     2534                fname = V_FindFileFromRunNumber(jj) 
     2535                if(strlen(fname) != 0) 
     2536                 
     2537                // write gap values 
     2538                        V_writeDet_panel_gap(fname,"FL",3.5) 
     2539                        V_writeDet_panel_gap(fname,"FR",3.5) 
     2540 
     2541                        V_writeDet_panel_gap(fname,"FT",3.3) 
     2542                        V_writeDet_panel_gap(fname,"FB",3.3) 
     2543 
     2544                        V_writeDet_panel_gap(fname,"ML",5.9) 
     2545                        V_writeDet_panel_gap(fname,"MR",5.9) 
     2546 
     2547                        V_writeDet_panel_gap(fname,"MT",18.3) 
     2548                        V_writeDet_panel_gap(fname,"MB",18.3)            
     2549                 
     2550                else 
     2551                        printf "run number %d not found\r",jj 
     2552                endif 
     2553        endfor 
     2554         
     2555        return(0) 
     2556End 
     2557 
     2558// simple utility to read the detector gap values stored in the file header 
     2559Function V_fReadDet_Gap(lo,hi) 
     2560        Variable lo,hi 
     2561 
     2562        String fname,detStr 
     2563        Variable jj 
     2564        Variable gap_FL,gap_FR,gap_FT,gap_FB,gap_ML,gap_MR,gap_MT,gap_MB 
     2565         
     2566        for(jj=lo;jj<=hi;jj+=1) 
     2567                fname = V_FindFileFromRunNumber(jj) 
     2568                if(strlen(fname) != 0) 
     2569                 
     2570                        gap_FL = V_getDet_panel_gap(fname,"FL") 
     2571                        gap_FR = V_getDet_panel_gap(fname,"FR") 
     2572                        gap_FT = V_getDet_panel_gap(fname,"FT") 
     2573                        gap_FB = V_getDet_panel_gap(fname,"FB") 
     2574 
     2575                        gap_ML = V_getDet_panel_gap(fname,"ML") 
     2576                        gap_MR = V_getDet_panel_gap(fname,"MR") 
     2577                        gap_MT = V_getDet_panel_gap(fname,"MT") 
     2578                        gap_MB = V_getDet_panel_gap(fname,"MB") 
     2579                         
     2580                        print fname      
     2581                        Print "FL, FR, FT, FB = ",gap_FL,gap_FR,gap_FT,gap_FB 
     2582                        Print "ML, MR, MT, MB = ",gap_ML,gap_MR,gap_MT,gap_MB 
     2583                 
     2584                 
     2585                else 
     2586                        printf "run number %d not found\r",jj 
     2587                endif 
     2588                 
     2589        endfor 
     2590 
     2591         
     2592        return(0) 
     2593End 
     2594 
     2595 
     2596// simple utility to patch the detector distance values in the file headers 
     2597// 
     2598// values are in [cm] 
     2599// 
     2600// lo is the first file number 
     2601// hi is the last file number (inclusive) 
     2602// 
     2603Function V_fPatchDet_distance(lo,hi,d_f,d_m,d_b) 
     2604        Variable lo,hi,d_f,d_m,d_b 
     2605 
     2606         
     2607        Variable ii,jj 
     2608        String fname,detStr 
     2609                 
     2610        //loop over all files 
     2611        for(jj=lo;jj<=hi;jj+=1) 
     2612                fname = V_FindFileFromRunNumber(jj) 
     2613                if(strlen(fname) != 0) 
     2614                 
     2615                // write gap values 
     2616                        V_writeDet_distance(fname,"FL",d_f) 
     2617                        V_writeDet_distance(fname,"FR",d_f) 
     2618                        V_writeDet_distance(fname,"FT",d_f) 
     2619                        V_writeDet_distance(fname,"FB",d_f) 
     2620 
     2621                        V_writeDet_distance(fname,"ML",d_m) 
     2622                        V_writeDet_distance(fname,"MR",d_m) 
     2623                        V_writeDet_distance(fname,"MT",d_m) 
     2624                        V_writeDet_distance(fname,"MB",d_m)              
     2625 
     2626                        V_writeDet_distance(fname,"B",d_b)               
     2627                 
     2628                else 
     2629                        printf "run number %d not found\r",jj 
     2630                endif 
     2631        endfor 
     2632         
     2633        return(0) 
     2634End 
Note: See TracChangeset for help on using the changeset viewer.