def main(input_file, output_dir): validate(input_file, output_dir) params = web_var.standard_vars mapping_file = r"/archive/NDXGEM/user/scripts/autoreduction/gem_cycle_mapping.yaml" calib_dir = r"/archive/NDXGEM/user/scripts/autoreduction/Calibration" user = "******" if params['mode'] == '' or params['mode'] == None: ws = Load(input_file) mode = determine_mode(ws) if mode: print("Using {} mode for reduction.".format(mode)) params['mode'] = mode else: raise ValueError( "No mode supplied and unable to determine from logs please ensure " "Phase T0, 6m and 9m are expected. " "Re-run and manually supply mode in the parameters.") cropping_values = [ (550, 19900), # Bank 1 (550, 19900), # Bank 2 (550, 19900), # Bank 3 (550, 19900), # Bank 4 (550, 18500), # Bank 5 (550, 16750) # Bank 6 ] if params['mode'] == 'Rietveld': cropping_values = [ (700, 19500), # Bank 1 (1000, 19500), # Bank 2 (1000, 19500), # Bank 3 (1000, 19500), # Bank 4 (1000, 18500), # Bank 5 (1000, 18000) # Bank 6 ] gem = Gem( user_name=user, calibration_directory=calib_dir, output_directory=output_dir, calibration_mapping_file=mapping_file, do_absorb_corrections=params['do_absorb_corrections'], vanadium_normalisation=params['vanadium_normalisation'], input_mode=params['input_mode'], mode=params['mode'], multiple_scattering=params['multiple_scattering'], focused_cropping_values=cropping_values, ) # Prior to running this script, you need to have created a vanadium for cycle 17_2 like so: #gem.create_vanadium(do_absorb_corrections=True, # mode="PDF", # first_cycle_run_no=87568) # Focus run run_num = get_run_number(input_file) gem.focus(run_number=run_num, do_absorb_corrections=False)
def setup_inst_object(mode): inst_obj = Gem(user_name=user_name, calibration_mapping_file=calibration_map_path, calibration_directory=calibration_dir, output_directory=output_dir, mode=mode) return inst_obj