| 1 | import numpy as np |
|---|
| 2 | |
|---|
| 3 | run ='9356' |
|---|
| 4 | |
|---|
| 5 | mask_folder = '/SNS/SNAP/IPTS-6996/shared/Masks/' |
|---|
| 6 | |
|---|
| 7 | cal_file = '/SNS/SNAP/IPTS-6996/shared/calibration/SNAP_calibrate_d9352_2012_10_24.cal' |
|---|
| 8 | |
|---|
| 9 | #The naming convention for the masks was "mask_0_5.xml" where "0_5" is the frame that STARTS at 0.5 d_spacing , note the underscore instead of dot |
|---|
| 10 | |
|---|
| 11 | scales = dict(zip(['0.5','0.6','0.7','0.8','0.9','1.0','1.1','1.2','1.3','1.4','1.5','1.6','1.7','1.8','1.9','2.0','2.1'], [1.008757, 1.024455, 1.031911, 1.054462, 1.002775, 1.007764, 1.014643, 1.077643, 1.049419, 1.029146, 1.00,1.00,1.00,1.00,1.00,1.00,1.00])) |
|---|
| 12 | |
|---|
| 13 | initial_range = 0.5 |
|---|
| 14 | final_diamond_range = 2.1 |
|---|
| 15 | final_range = 4.0 |
|---|
| 16 | step = 0.005 |
|---|
| 17 | |
|---|
| 18 | masking_step = 0.1 |
|---|
| 19 | |
|---|
| 20 | # I need to make masks "masking = 0"; I already made masks = "masking = 1" |
|---|
| 21 | masking = 1 |
|---|
| 22 | |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | |
|---|
| 26 | #My naming convention was "mask_0_5.xml" where "0_5" is the frame that STARTS at 0.5, note the underscore instead of dot |
|---|
| 27 | #you should not need to edit below here |
|---|
| 28 | |
|---|
| 29 | |
|---|
| 30 | |
|---|
| 31 | bin_params = str(initial_range)+','+str(step)+','+str(final_range) |
|---|
| 32 | |
|---|
| 33 | ### run this part to generate summed neighbors to define masks #################### |
|---|
| 34 | |
|---|
| 35 | |
|---|
| 36 | |
|---|
| 37 | while 1: |
|---|
| 38 | if masking == 1 : break |
|---|
| 39 | LoadSNSEventNexus(Filename=run ,OutputWorkspace='data_%s' %run) |
|---|
| 40 | CompressEvents(InputWorkspace='data_%s' %run,OutputWorkspace='data_%s' %run) |
|---|
| 41 | AlignDetectors(InputWorkspace='data_%s' %run, CalibrationFile= cal_file, OutputWorkspace='data_d_%s' %run) |
|---|
| 42 | Rebin(InputWorkspace='data_d_%s' %run,OutputWorkspace='data_d_%s' %run,Params=bin_params,PreserveEvents='1') |
|---|
| 43 | SumSpectra(Inputworkspace='data_d_%s' %run, OutputWorkspace='raw_run_%s'%run) |
|---|
| 44 | SumNeighbours(InputWorkspace='data_d_%s' %run,OutputWorkspace='data_d_8_%s' %run,SumX='8',SumY='8') |
|---|
| 45 | Rebin(InputWorkspace='data_d_8_%s' %run,OutputWorkspace='data_d_8_%s' %run,Params=bin_params,PreserveEvents='0') |
|---|
| 46 | |
|---|
| 47 | |
|---|
| 48 | |
|---|
| 49 | |
|---|
| 50 | for d_range in np.arange(initial_range, final_diamond_range+masking_step, masking_step): |
|---|
| 51 | print d_range, d_range+masking_step |
|---|
| 52 | binning='%s,%s, %s' %(d_range, step, d_range+masking_step) |
|---|
| 53 | Rebin(InputWorkspace='data_d_8_%s' %run, Params=binning, OutputWorkspace='data_d_8_%s_%s' %(run, d_range)) |
|---|
| 54 | SumSpectra(Inputworkspace='data_d_8_%s_%s' %(run, d_range), OutputWorkspace='data_d_8_%s_%s_sum' %(run, d_range)) |
|---|
| 55 | |
|---|
| 56 | break |
|---|
| 57 | |
|---|
| 58 | ### run this part to load and apply the masks #################### |
|---|
| 59 | |
|---|
| 60 | LoadSNSEventNexus(Filename=run ,OutputWorkspace='data_%s' %run) |
|---|
| 61 | CompressEvents(InputWorkspace='data_%s' %run,OutputWorkspace='data_%s' %run) |
|---|
| 62 | AlignDetectors(InputWorkspace='data_%s' %run, CalibrationFile= cal_file, OutputWorkspace='data_d_%s' %run) |
|---|
| 63 | Rebin(InputWorkspace='data_d_%s' %run,OutputWorkspace='data_d_%s' %run,Params=bin_params,PreserveEvents='0') |
|---|
| 64 | SumSpectra(Inputworkspace='data_d_%s' %run, OutputWorkspace='raw_run_%s'%run) |
|---|
| 65 | |
|---|
| 66 | count = 0 |
|---|
| 67 | |
|---|
| 68 | #for d_range in np.arange(initial_range, final_diamond_range+masking_step, masking_step): |
|---|
| 69 | # LoadMask(InputFile= mask_folder + 'mask_'+ str(d_range).replace('.','_') +'.xml', Instrument='SNAP', OutputWorkspace='mask_%s'%d_range) |
|---|
| 70 | |
|---|
| 71 | for d_range in np.arange(initial_range, final_diamond_range+masking_step, masking_step): |
|---|
| 72 | print d_range, d_range+masking_step |
|---|
| 73 | binning='%s,%s, %s' %(d_range, step, d_range+masking_step) |
|---|
| 74 | Rebin(InputWorkspace='data_d_%s' %run, Params=binning, OutputWorkspace='temp',PreserveEvents='0') |
|---|
| 75 | #CloneWorkspace(InputWorkspace='temp', OutputWorkspace='pre_masked_%s'%d_range) |
|---|
| 76 | LoadMask(InputFile= mask_folder + 'mask_'+ str(d_range).replace('.','_') +'.xml', Instrument='SNAP', OutputWorkspace='mask_%s'%d_range) |
|---|
| 77 | MaskDetectors(Workspace='temp', MaskedWorkSpace='mask_%s'%d_range) |
|---|
| 78 | #CloneWorkspace(InputWorkspace='temp', OutputWorkspace='masked_%s'%d_range) |
|---|
| 79 | key='%.1f'%d_range |
|---|
| 80 | Scale(InputWorkspace='temp',OutputWorkspace='temp',Factor=scales[key],Operation='Multiply') |
|---|
| 81 | SumNeighbours(InputWorkspace='temp',OutputWorkspace='temp',SumX='8',SumY='8') |
|---|
| 82 | #CloneWorkspace(InputWorkspace='temp', OutputWorkspace='masked_8_%s'%d_range) |
|---|
| 83 | Rebin(InputWorkspace='temp', OutputWorkspace='test_d_%s'%d_range, Params=bin_params) |
|---|
| 84 | if count == 0 : CloneWorkspace(InputWorkspace='test_d_%s'%d_range, OutputWorkspace='CleanOutput') |
|---|
| 85 | if count != 0 : Plus(LHSWorkspace='CleanOutput',RHSWorkspace='test_d_%s'%d_range,OutputWorkspace='CleanOutput') |
|---|
| 86 | SumSpectra(Inputworkspace='test_d_%s'%d_range, OutputWorkspace='test_d_%s_sum'%d_range) |
|---|
| 87 | |
|---|
| 88 | |
|---|
| 89 | count = count+1 |
|---|
| 90 | |
|---|
| 91 | |
|---|
| 92 | end_bin=str(final_diamond_range+masking_step) + ',' + str(step) + ',' + str(final_range) |
|---|
| 93 | |
|---|
| 94 | |
|---|
| 95 | SumNeighbours(InputWorkspace='data_d_%s' %run,OutputWorkspace='temp',SumX='8',SumY='8') |
|---|
| 96 | Rebin(InputWorkspace='temp', Params=end_bin, OutputWorkspace='temp',PreserveEvents='0') |
|---|
| 97 | Rebin(InputWorkspace='temp', Params=bin_params, OutputWorkspace='temp',PreserveEvents='0') |
|---|
| 98 | Plus(LHSWorkspace='CleanOutput',RHSWorkspace='temp',OutputWorkspace='CleanOutput') |
|---|
| 99 | SumSpectra(Inputworkspace='CleanOutput', OutputWorkspace='Clean_run_%s'%run) |
|---|