# scan-varying crystal parameterisations det_param = DetectorParameterisationSinglePanel(mydetector) s0_param = BeamParameterisation(mybeam, mygonio) xlo_param = ScanVaryingCrystalOrientationParameterisation( mycrystal, myscan.get_array_range(), 5) xluc_param = ScanVaryingCrystalUnitCellParameterisation( mycrystal, myscan.get_array_range(), 5) #### Cause the crystal U and B to vary over the scan # Vary orientation angles by ~1.0 mrad each checkpoint p_vals = xlo_param.get_param_vals() sigmas = [1.0] * len(p_vals) new_vals = random_param_shift(p_vals, sigmas) xlo_param.set_param_vals(new_vals) # Vary unit cell parameters, on order of 1% of the initial metrical # matrix parameters p_vals = xluc_param.get_param_vals() sigmas = [0.01 * p for p in p_vals] new_vals = random_param_shift(p_vals, sigmas) xluc_param.set_param_vals(new_vals) # Generate an ExperimentList experiments = ExperimentList() experiments.append(Experiment( beam=mybeam, detector=mydetector, goniometer=mygonio, scan=myscan, crystal=mycrystal, imageset=None)) sweep_range = myscan.get_oscillation_range(deg=False)