def get_optTrEr(self, wavefront): if self.orientation_of_reflection_plane == Orientation.LEFT or self.orientation_of_reflection_plane == Orientation.RIGHT: dim = 'x' elif self.orientation_of_reflection_plane == Orientation.UP or self.orientation_of_reflection_plane == Orientation.DOWN: dim = 'y' if self.height_profile_data_file_dimension == 1: height_profile_data = srwl_uti_read_data_cols( self.height_profile_data_file, _str_sep='\t', _i_col_start=0, _i_col_end=1) optTrEr = srwl_opt_setup_surf_height_1d( _height_prof_data=height_profile_data, _ang=self.grazing_angle, _ang_r=self.get_deflection_angle( wavefront.get_photon_energy()), _dim=dim, _amp_coef=self.height_amplification_coefficient) elif self.height_profile_data_file_dimension == 2: height_profile_data = srwl_uti_read_data_cols( self.height_profile_data_file, _str_sep='\t') optTrEr = srwl_opt_setup_surf_height_2d( _height_prof_data=height_profile_data, _ang=self.grazing_angle, _ang_r=self.get_deflection_angle( wavefront.get_photon_energy()), _dim=dim, _amp_coef=self.height_amplification_coefficient) return optTrEr
def set_optics(v=None): el = [] el.append(srwlib.SRWLOptD(1e-16)) el.append(srwlib.SRWLOptD(6.866)) ifnMirror1 = "mirror_1d.dat" if ifnMirror1: hProfDataMirror1 = srwlib.srwl_uti_read_data_cols(ifnMirror1, "\t", 0, 1) el.append(srwlib.srwl_opt_setup_surf_height_1d(hProfDataMirror1, _dim="x", _ang=0.0436332, _amp_coef=1.0, _size_x=0.001, _size_y=0.001)) el.append(srwlib.SRWLOptD(20.634)) el.append(srwlib.SRWLOptG(_mirSub=srwlib.SRWLOptMirPl(_size_tang=0.2, _size_sag=0.015, _nvx=0.0, _nvy=0.99991607766, _nvz=-0.0129552165771, _tvx=0.0, _tvy=0.0129552165771), _m=1.0, _grDen=1800.0, _grDen1=0.08997, _grDen2=3.004e-06, _grDen3=9.73e-11, _grDen4=0.0)) el.append(srwlib.SRWLOptA("r", "a", 0.015, 0.00259104331543, 0.0, 0.0)) el.append(srwlib.SRWLOptD(34.63)) el.append(srwlib.SRWLOptA("r", "a", 0.01832012956, 0.02, 0.0, 0.0)) el.append(srwlib.SRWLOptMirEl(_p=89.63, _q=8.006, _ang_graz=0.0436332, _size_tang=0.42, _size_sag=0.02, _nvx=0.999048222947, _nvy=0.0, _nvz=-0.0436193560953, _tvx=-0.0436193560953, _tvy=0.0)) el.append(srwlib.SRWLOptD(8.006)) el.append(srwlib.SRWLOptA("r", "a", 0.0015, 0.0015, 0.0, 0.0)) el.append(srwlib.SRWLOptD(6.01)) el.append(srwlib.SRWLOptA("r", "a", 0.0130858068286, 0.003, 0.0, 0.0)) el.append(srwlib.SRWLOptMirEl(_p=6.01, _q=0.911, _ang_graz=0.0872665, _size_tang=0.3, _size_sag=0.05, _nvx=0.996194694832, _nvy=0.0, _nvz=-0.0871557800056, _tvx=-0.0871557800056, _tvy=0.0)) el.append(srwlib.SRWLOptD(0.5)) el.append(srwlib.SRWLOptMirEl(_p=6.51, _q=0.411, _ang_graz=0.0872665, _size_tang=0.3, _size_sag=0.05, _nvx=0.0, _nvy=0.996194694832, _nvz=-0.0871557800056, _tvx=0.0, _tvy=-0.0871557800056)) el.append(srwlib.SRWLOptD(0.411)) pp = [] pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) if ifnMirror1: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.2, 3.5, 1.2, 3.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 3.0, 1.0, 3.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 0.4, 1.0, 0.4, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 2.0, 1.0, 2.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 1, 0.07, 1.5, 0.07, 6.0]) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] el.append(srwlib.SRWLOptA("r", "a", 0.0002, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(6.9)) ifnMirror1 = "mirror_1d.dat" if ifnMirror1: hProfDataMirror1 = srwlib.srwl_uti_read_data_cols(ifnMirror1, "\t", 0, 1) el.append(srwlib.srwl_opt_setup_surf_height_1d(hProfDataMirror1, _dim="x", _ang=0.0031415926, _amp_coef=1.0, _size_x=0.00094, _size_y=0.001)) el.append(srwlib.SRWLOptD(2.5)) el.append(srwlib.SRWLOptA("r", "a", 0.0002, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(4.4)) el.append(srwlib.SRWLOptA("r", "a", 5e-05, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(1.1)) el.append(srwlib.srwl_opt_setup_CRL(2, 4.20756805e-06, 0.00731294, 1, 0.001, 0.0024, 0.0015, 1, 8e-05, 0, 0)) el.append(srwlib.srwl_opt_setup_CRL(2, 4.20756805e-06, 0.00731294, 1, 0.001, 0.0014, 0.0005, 6, 8e-05, 0, 0)) el.append(srwlib.SRWLOptD(9.1)) el.append(srwlib.SRWLOptA("r", "a", 0.0014, 0.0002, 0.0, 0.0)) el.append(srwlib.SRWLOptL(3.24479, 1e+23, 0.0, 0.0)) el.append(srwlib.SRWLOptD(3.5)) el.append(srwlib.SRWLOptA("r", "a", 1e-05, 1e-05, 0.0, 0.0)) el.append(srwlib.SRWLOptD(0.7)) pp = [] pp.append([0, 0, 1.0, 0, 0, 2.5, 5.0, 1.5, 2.5]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) if ifnMirror1: pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 0.3, 2.0, 0.5, 1.0]) return srwlib.SRWLOptC(el, pp)
def _mirror_plot(model_data): mirror = model_data['models']['mirrorReport'] element = srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror['heightProfileFile'], "\t", 0, 1), _dim=mirror['orientation'], _ang=float(mirror['grazingAngle']) / 1e3, _amp_coef=float(mirror['heightAmplification'])) #_size_x=float(mirror['horizontalTransverseSize']) / 1e3, #_size_y=float(mirror['verticalTransverseSize']) / 1e3) transmission_data = element.get_data(3, 3) srwlib.srwl_uti_save_intens_ascii( transmission_data, element.mesh, 'res_mirror.dat', 0, ['', 'Horizontal Position', 'Vertical Position', 'Optical Path Difference'], _arUnits=['', 'm', 'm', '']) return 'res_mirror.dat'
def _mirror_plot(model_data): mirror = model_data['models']['mirrorReport'] element = srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror['heightProfileFile'], "\t", 0, 1), _dim=mirror['orientation'], _ang=float(mirror['grazingAngle']) / 1e3, _amp_coef=float(mirror['heightAmplification'])) #_size_x=float(mirror['horizontalTransverseSize']) / 1e3, #_size_y=float(mirror['verticalTransverseSize']) / 1e3) transmission_data = element.get_data(3, 3) srwlib.srwl_uti_save_intens_ascii( transmission_data, element.mesh, 'res_mirror.dat', 0, [ '', 'Horizontal Position', 'Vertical Position', 'Optical Path Difference' ], _arUnits=['', 'm', 'm', '']) return 'res_mirror.dat'
def set_optics(v=None): el = [] pp = [] names = [ 'Fixed_Mask', 'Fixed_Mask_M1A', 'M1A', 'M1A_Watchpoint', 'Watchpoint', 'M2A_VDM', 'M2A_VDM_Grating', 'Grating', 'Grating_Aperture', 'Aperture', 'Watchpoint2', 'M3A_HFM', 'M3A_HFM_Watchpoint3', 'Watchpoint3', 'Pinhole', 'Watchpoint4', 'Watchpoint4_Sample', 'Sample' ] for el_name in names: if el_name == 'Fixed_Mask': # Fixed_Mask: aperture 26.2m el.append( srwlib.SRWLOptA( _shape=v.op_Fixed_Mask_shape, _ap_or_ob='a', _Dx=v.op_Fixed_Mask_Dx, _Dy=v.op_Fixed_Mask_Dy, _x=v.op_Fixed_Mask_x, _y=v.op_Fixed_Mask_y, )) pp.append(v.op_Fixed_Mask_pp) elif el_name == 'Fixed_Mask_M1A': # Fixed_Mask_M1A: drift 26.2m el.append(srwlib.SRWLOptD(_L=v.op_Fixed_Mask_M1A_L, )) pp.append(v.op_Fixed_Mask_M1A_pp) elif el_name == 'M1A': # M1A: mirror 27.2m mirror_file = v.op_M1A_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by M1A beamline element'.format(mirror_file) el.append( srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_M1A_dim, _ang=abs(v.op_M1A_ang), _amp_coef=v.op_M1A_amp_coef, _size_x=v.op_M1A_size_x, _size_y=v.op_M1A_size_y, )) pp.append(v.op_M1A_pp) elif el_name == 'M1A_Watchpoint': # M1A_Watchpoint: drift 27.2m el.append(srwlib.SRWLOptD(_L=v.op_M1A_Watchpoint_L, )) pp.append(v.op_M1A_Watchpoint_pp) elif el_name == 'Watchpoint': # Watchpoint: watch 40.4m pass elif el_name == 'M2A_VDM': # M2A_VDM: mirror 40.4m mirror_file = v.op_M2A_VDM_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by M2A_VDM beamline element'.format(mirror_file) el.append( srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_M2A_VDM_dim, _ang=abs(v.op_M2A_VDM_ang), _amp_coef=v.op_M2A_VDM_amp_coef, _size_x=v.op_M2A_VDM_size_x, _size_y=v.op_M2A_VDM_size_y, )) pp.append(v.op_M2A_VDM_pp) elif el_name == 'M2A_VDM_Grating': # M2A_VDM_Grating: drift 40.4m el.append(srwlib.SRWLOptD(_L=v.op_M2A_VDM_Grating_L, )) pp.append(v.op_M2A_VDM_Grating_pp) elif el_name == 'Grating': # Grating: grating 40.46m mirror = srwlib.SRWLOptMirPl( _size_tang=v.op_Grating_size_tang, _size_sag=v.op_Grating_size_sag, _nvx=v.op_Grating_nvx, _nvy=v.op_Grating_nvy, _nvz=v.op_Grating_nvz, _tvx=v.op_Grating_tvx, _tvy=v.op_Grating_tvy, _x=v.op_Grating_x, _y=v.op_Grating_y, ) el.append( srwlib.SRWLOptG( _mirSub=mirror, _m=v.op_Grating_m, _grDen=v.op_Grating_grDen, _grDen1=v.op_Grating_grDen1, _grDen2=v.op_Grating_grDen2, _grDen3=v.op_Grating_grDen3, _grDen4=v.op_Grating_grDen4, )) pp.append(v.op_Grating_pp) elif el_name == 'Grating_Aperture': # Grating_Aperture: drift 40.46m el.append(srwlib.SRWLOptD(_L=v.op_Grating_Aperture_L, )) pp.append(v.op_Grating_Aperture_pp) elif el_name == 'Aperture': # Aperture: aperture 42.46m el.append( srwlib.SRWLOptA( _shape=v.op_Aperture_shape, _ap_or_ob='a', _Dx=v.op_Aperture_Dx, _Dy=v.op_Aperture_Dy, _x=v.op_Aperture_x, _y=v.op_Aperture_y, )) pp.append(v.op_Aperture_pp) elif el_name == 'Watchpoint2': # Watchpoint2: watch 42.46m pass elif el_name == 'M3A_HFM': # M3A_HFM: sphericalMirror 42.46m el.append( srwlib.SRWLOptMirSph( _r=v.op_M3A_HFM_r, _size_tang=v.op_M3A_HFM_size_tang, _size_sag=v.op_M3A_HFM_size_sag, _nvx=v.op_M3A_HFM_nvx, _nvy=v.op_M3A_HFM_nvy, _nvz=v.op_M3A_HFM_nvz, _tvx=v.op_M3A_HFM_tvx, _tvy=v.op_M3A_HFM_tvy, _x=v.op_M3A_HFM_x, _y=v.op_M3A_HFM_y, )) pp.append(v.op_M3A_HFM_pp) elif el_name == 'M3A_HFM_Watchpoint3': # M3A_HFM_Watchpoint3: drift 42.46m el.append(srwlib.SRWLOptD(_L=v.op_M3A_HFM_Watchpoint3_L, )) pp.append(v.op_M3A_HFM_Watchpoint3_pp) elif el_name == 'Watchpoint3': # Watchpoint3: watch 54.36m pass elif el_name == 'Pinhole': # Pinhole: aperture 54.36m el.append( srwlib.SRWLOptA( _shape=v.op_Pinhole_shape, _ap_or_ob='a', _Dx=v.op_Pinhole_Dx, _Dy=v.op_Pinhole_Dy, _x=v.op_Pinhole_x, _y=v.op_Pinhole_y, )) pp.append(v.op_Pinhole_pp) elif el_name == 'Watchpoint4': # Watchpoint4: watch 54.36m pass elif el_name == 'Watchpoint4_Sample': # Watchpoint4_Sample: drift 54.36m el.append(srwlib.SRWLOptD(_L=v.op_Watchpoint4_Sample_L, )) pp.append(v.op_Watchpoint4_Sample_pp) elif el_name == 'Sample': # Sample: watch 55.5m pass pp.append(v.op_fin_pp) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] pp = [] names = [ 'M1', 'M1_Grating', 'Grating', 'GA', 'GA_M3A', 'M3A', 'M3', 'M3_SSA', 'SSA', 'SSA_KBAperture', 'KBAperture', 'KBh', 'KBh_KBv', 'KBv', 'KBv_Sample', 'Sample' ] for el_name in names: if el_name == 'M1': # M1: mirror 34.366m mirror_file = v.op_M1_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by M1 beamline element'.format(mirror_file) el.append( srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_M1_dim, _ang=abs(v.op_M1_ang), _amp_coef=v.op_M1_amp_coef, _size_x=v.op_M1_size_x, _size_y=v.op_M1_size_y, )) pp.append(v.op_M1_pp) elif el_name == 'M1_Grating': # M1_Grating: drift 34.366m el.append(srwlib.SRWLOptD(_L=v.op_M1_Grating_L, )) pp.append(v.op_M1_Grating_pp) elif el_name == 'Grating': # Grating: grating 55.0m mirror = srwlib.SRWLOptMirPl( _size_tang=v.op_Grating_size_tang, _size_sag=v.op_Grating_size_sag, _nvx=v.op_Grating_nvx, _nvy=v.op_Grating_nvy, _nvz=v.op_Grating_nvz, _tvx=v.op_Grating_tvx, _tvy=v.op_Grating_tvy, _x=v.op_Grating_x, _y=v.op_Grating_y, ) el.append( srwlib.SRWLOptG( _mirSub=mirror, _m=v.op_Grating_m, _grDen=v.op_Grating_grDen, _grDen1=v.op_Grating_grDen1, _grDen2=v.op_Grating_grDen2, _grDen3=v.op_Grating_grDen3, _grDen4=v.op_Grating_grDen4, )) pp.append(v.op_Grating_pp) elif el_name == 'GA': # GA: aperture 55.0m el.append( srwlib.SRWLOptA( _shape=v.op_GA_shape, _ap_or_ob='a', _Dx=v.op_GA_Dx, _Dy=v.op_GA_Dy, _x=v.op_GA_x, _y=v.op_GA_y, )) pp.append(v.op_GA_pp) elif el_name == 'GA_M3A': # GA_M3A: drift 55.0m el.append(srwlib.SRWLOptD(_L=v.op_GA_M3A_L, )) pp.append(v.op_GA_M3A_pp) elif el_name == 'M3A': # M3A: aperture 89.63m el.append( srwlib.SRWLOptA( _shape=v.op_M3A_shape, _ap_or_ob='a', _Dx=v.op_M3A_Dx, _Dy=v.op_M3A_Dy, _x=v.op_M3A_x, _y=v.op_M3A_y, )) pp.append(v.op_M3A_pp) elif el_name == 'M3': # M3: ellipsoidMirror 89.63m el.append( srwlib.SRWLOptMirEl( _p=v.op_M3_p, _q=v.op_M3_q, _ang_graz=v.op_M3_ang, _size_tang=v.op_M3_size_tang, _size_sag=v.op_M3_size_sag, _nvx=v.op_M3_nvx, _nvy=v.op_M3_nvy, _nvz=v.op_M3_nvz, _tvx=v.op_M3_tvx, _tvy=v.op_M3_tvy, _x=v.op_M3_x, _y=v.op_M3_y, )) pp.append(v.op_M3_pp) elif el_name == 'M3_SSA': # M3_SSA: drift 89.63m el.append(srwlib.SRWLOptD(_L=v.op_M3_SSA_L, )) pp.append(v.op_M3_SSA_pp) elif el_name == 'SSA': # SSA: aperture 97.636m el.append( srwlib.SRWLOptA( _shape=v.op_SSA_shape, _ap_or_ob='a', _Dx=v.op_SSA_Dx, _Dy=v.op_SSA_Dy, _x=v.op_SSA_x, _y=v.op_SSA_y, )) pp.append(v.op_SSA_pp) elif el_name == 'SSA_KBAperture': # SSA_KBAperture: drift 97.636m el.append(srwlib.SRWLOptD(_L=v.op_SSA_KBAperture_L, )) pp.append(v.op_SSA_KBAperture_pp) elif el_name == 'KBAperture': # KBAperture: aperture 103.646m el.append( srwlib.SRWLOptA( _shape=v.op_KBAperture_shape, _ap_or_ob='a', _Dx=v.op_KBAperture_Dx, _Dy=v.op_KBAperture_Dy, _x=v.op_KBAperture_x, _y=v.op_KBAperture_y, )) pp.append(v.op_KBAperture_pp) elif el_name == 'KBh': # KBh: ellipsoidMirror 103.646m el.append( srwlib.SRWLOptMirEl( _p=v.op_KBh_p, _q=v.op_KBh_q, _ang_graz=v.op_KBh_ang, _size_tang=v.op_KBh_size_tang, _size_sag=v.op_KBh_size_sag, _nvx=v.op_KBh_nvx, _nvy=v.op_KBh_nvy, _nvz=v.op_KBh_nvz, _tvx=v.op_KBh_tvx, _tvy=v.op_KBh_tvy, _x=v.op_KBh_x, _y=v.op_KBh_y, )) pp.append(v.op_KBh_pp) elif el_name == 'KBh_KBv': # KBh_KBv: drift 103.646m el.append(srwlib.SRWLOptD(_L=v.op_KBh_KBv_L, )) pp.append(v.op_KBh_KBv_pp) elif el_name == 'KBv': # KBv: ellipsoidMirror 104.146m el.append( srwlib.SRWLOptMirEl( _p=v.op_KBv_p, _q=v.op_KBv_q, _ang_graz=v.op_KBv_ang, _size_tang=v.op_KBv_size_tang, _size_sag=v.op_KBv_size_sag, _nvx=v.op_KBv_nvx, _nvy=v.op_KBv_nvy, _nvz=v.op_KBv_nvz, _tvx=v.op_KBv_tvx, _tvy=v.op_KBv_tvy, _x=v.op_KBv_x, _y=v.op_KBv_y, )) pp.append(v.op_KBv_pp) elif el_name == 'KBv_Sample': # KBv_Sample: drift 104.146m el.append(srwlib.SRWLOptD(_L=v.op_KBv_Sample_L, )) pp.append(v.op_KBv_Sample_pp) elif el_name == 'Sample': # Sample: watch 104.557m pass pp.append(v.op_fin_pp) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] pp = [] names = [ 'MOAT_1', 'MOAT_1_MOAT_2', 'MOAT_2', 'MOAT_2_HFM', 'HFM', 'HFM_VFM', 'VFM', 'VFM_VDM', 'VDM', 'VDM_SSA', 'SSA', 'SSA_ES1', 'ES1', 'ES1_CRL', 'CRL', 'CRL_ES2', 'ES2' ] for el_name in names: if el_name == 'MOAT_1': # MOAT_1: crystal 31.94m crystal = srwlib.SRWLOptCryst( _d_sp=v.op_MOAT_1_d_sp, _psi0r=v.op_MOAT_1_psi0r, _psi0i=v.op_MOAT_1_psi0i, _psi_hr=v.op_MOAT_1_psiHr, _psi_hi=v.op_MOAT_1_psiHi, _psi_hbr=v.op_MOAT_1_psiHBr, _psi_hbi=v.op_MOAT_1_psiHBi, _tc=v.op_MOAT_1_tc, _ang_as=v.op_MOAT_1_ang_as, ) crystal.set_orient( _nvx=v.op_MOAT_1_nvx, _nvy=v.op_MOAT_1_nvy, _nvz=v.op_MOAT_1_nvz, _tvx=v.op_MOAT_1_tvx, _tvy=v.op_MOAT_1_tvy, ) el.append(crystal) pp.append(v.op_MOAT_1_pp) mirror_file = v.op_MOAT_1_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by MOAT_1 beamline element'.format(mirror_file) el.append( srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_MOAT_1_dim, _ang=abs(v.op_MOAT_1_ang), _amp_coef=v.op_MOAT_1_amp_coef, )) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) elif el_name == 'MOAT_1_MOAT_2': # MOAT_1_MOAT_2: drift 31.94m el.append(srwlib.SRWLOptD(_L=v.op_MOAT_1_MOAT_2_L, )) pp.append(v.op_MOAT_1_MOAT_2_pp) elif el_name == 'MOAT_2': # MOAT_2: crystal 31.99m crystal = srwlib.SRWLOptCryst( _d_sp=v.op_MOAT_2_d_sp, _psi0r=v.op_MOAT_2_psi0r, _psi0i=v.op_MOAT_2_psi0i, _psi_hr=v.op_MOAT_2_psiHr, _psi_hi=v.op_MOAT_2_psiHi, _psi_hbr=v.op_MOAT_2_psiHBr, _psi_hbi=v.op_MOAT_2_psiHBi, _tc=v.op_MOAT_2_tc, _ang_as=v.op_MOAT_2_ang_as, ) crystal.set_orient( _nvx=v.op_MOAT_2_nvx, _nvy=v.op_MOAT_2_nvy, _nvz=v.op_MOAT_2_nvz, _tvx=v.op_MOAT_2_tvx, _tvy=v.op_MOAT_2_tvy, ) el.append(crystal) pp.append(v.op_MOAT_2_pp) elif el_name == 'MOAT_2_HFM': # MOAT_2_HFM: drift 31.99m el.append(srwlib.SRWLOptD(_L=v.op_MOAT_2_HFM_L, )) pp.append(v.op_MOAT_2_HFM_pp) elif el_name == 'HFM': # HFM: sphericalMirror 34.88244m el.append( srwlib.SRWLOptMirSph( _r=v.op_HFM_r, _size_tang=v.op_HFM_size_tang, _size_sag=v.op_HFM_size_sag, _nvx=v.op_HFM_nvx, _nvy=v.op_HFM_nvy, _nvz=v.op_HFM_nvz, _tvx=v.op_HFM_tvx, _tvy=v.op_HFM_tvy, _x=v.op_HFM_x, _y=v.op_HFM_y, )) pp.append(v.op_HFM_pp) mirror_file = v.op_HFM_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by HFM beamline element'.format(mirror_file) el.append( srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_HFM_dim, _ang=abs(v.op_HFM_ang), _amp_coef=v.op_HFM_amp_coef, )) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) elif el_name == 'HFM_VFM': # HFM_VFM: drift 34.88244m el.append(srwlib.SRWLOptD(_L=v.op_HFM_VFM_L, )) pp.append(v.op_HFM_VFM_pp) elif el_name == 'VFM': # VFM: sphericalMirror 38.30244m el.append( srwlib.SRWLOptMirSph( _r=v.op_VFM_r, _size_tang=v.op_VFM_size_tang, _size_sag=v.op_VFM_size_sag, _nvx=v.op_VFM_nvx, _nvy=v.op_VFM_nvy, _nvz=v.op_VFM_nvz, _tvx=v.op_VFM_tvx, _tvy=v.op_VFM_tvy, _x=v.op_VFM_x, _y=v.op_VFM_y, )) pp.append(v.op_VFM_pp) mirror_file = v.op_VFM_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by VFM beamline element'.format(mirror_file) el.append( srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_VFM_dim, _ang=abs(v.op_VFM_ang), _amp_coef=v.op_VFM_amp_coef, )) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) elif el_name == 'VFM_VDM': # VFM_VDM: drift 38.30244m el.append(srwlib.SRWLOptD(_L=v.op_VFM_VDM_L, )) pp.append(v.op_VFM_VDM_pp) elif el_name == 'VDM': # VDM: sphericalMirror 39.0m el.append( srwlib.SRWLOptMirSph( _r=v.op_VDM_r, _size_tang=v.op_VDM_size_tang, _size_sag=v.op_VDM_size_sag, _nvx=v.op_VDM_nvx, _nvy=v.op_VDM_nvy, _nvz=v.op_VDM_nvz, _tvx=v.op_VDM_tvx, _tvy=v.op_VDM_tvy, _x=v.op_VDM_x, _y=v.op_VDM_y, )) pp.append(v.op_VDM_pp) mirror_file = v.op_VDM_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by VDM beamline element'.format(mirror_file) el.append( srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_VDM_dim, _ang=abs(v.op_VDM_ang), _amp_coef=v.op_VDM_amp_coef, )) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) elif el_name == 'VDM_SSA': # VDM_SSA: drift 39.0m el.append(srwlib.SRWLOptD(_L=v.op_VDM_SSA_L, )) pp.append(v.op_VDM_SSA_pp) elif el_name == 'SSA': # SSA: aperture 47.00244m el.append( srwlib.SRWLOptA( _shape=v.op_SSA_shape, _ap_or_ob='a', _Dx=v.op_SSA_Dx, _Dy=v.op_SSA_Dy, _x=v.op_SSA_x, _y=v.op_SSA_y, )) pp.append(v.op_SSA_pp) elif el_name == 'SSA_ES1': # SSA_ES1: drift 47.00244m el.append(srwlib.SRWLOptD(_L=v.op_SSA_ES1_L, )) pp.append(v.op_SSA_ES1_pp) elif el_name == 'ES1': # ES1: watch 50.9m pass elif el_name == 'ES1_CRL': # ES1_CRL: drift 50.9m el.append(srwlib.SRWLOptD(_L=v.op_ES1_CRL_L, )) pp.append(v.op_ES1_CRL_pp) elif el_name == 'CRL': # CRL: crl 57.335m el.append( srwlib.srwl_opt_setup_CRL( _foc_plane=v.op_CRL_foc_plane, _delta=v.op_CRL_delta, _atten_len=v.op_CRL_atten_len, _shape=v.op_CRL_shape, _apert_h=v.op_CRL_apert_h, _apert_v=v.op_CRL_apert_v, _r_min=v.op_CRL_r_min, _n=v.op_CRL_n, _wall_thick=v.op_CRL_wall_thick, _xc=v.op_CRL_x, _yc=v.op_CRL_y, )) pp.append(v.op_CRL_pp) elif el_name == 'CRL_ES2': # CRL_ES2: drift 57.335m el.append(srwlib.SRWLOptD(_L=v.op_CRL_ES2_L, )) pp.append(v.op_CRL_ES2_pp) elif el_name == 'ES2': # ES2: watch 59.0m pass pp.append(v.op_fin_pp) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] pp = [] names = ['M1', 'M1_Grating', 'Grating', 'GA', 'GA_M3A', 'M3A', 'M3', 'M3_SSA', 'SSA', 'SSA_KBAperture', 'KBAperture', 'KBh', 'KBh_KBv', 'KBv', 'KBv_Sample', 'Sample'] for el_name in names: if el_name == 'M1': # M1: mirror 34.366m mirror_file = v.op_M1_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by M1 beamline element'.format(mirror_file) el.append(srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_M1_dim, _ang=v.op_M1_ang, _amp_coef=v.op_M1_amp_coef, _size_x=v.op_M1_size_x, _size_y=v.op_M1_size_y, )) pp.append(v.op_M1_pp) elif el_name == 'M1_Grating': # M1_Grating: drift 34.366m el.append(srwlib.SRWLOptD( _L=v.op_M1_Grating_L, )) pp.append(v.op_M1_Grating_pp) elif el_name == 'Grating': # Grating: grating 55.0m mirror = srwlib.SRWLOptMirPl( _size_tang=v.op_Grating_size_tang, _size_sag=v.op_Grating_size_sag, _nvx=v.op_Grating_nvx, _nvy=v.op_Grating_nvy, _nvz=v.op_Grating_nvz, _tvx=v.op_Grating_tvx, _tvy=v.op_Grating_tvy, _x=v.op_Grating_x, _y=v.op_Grating_y, ) el.append(srwlib.SRWLOptG( _mirSub=mirror, _m=v.op_Grating_m, _grDen=v.op_Grating_grDen, _grDen1=v.op_Grating_grDen1, _grDen2=v.op_Grating_grDen2, _grDen3=v.op_Grating_grDen3, _grDen4=v.op_Grating_grDen4, )) pp.append(v.op_Grating_pp) elif el_name == 'GA': # GA: aperture 55.0m el.append(srwlib.SRWLOptA( _shape=v.op_GA_shape, _ap_or_ob='a', _Dx=v.op_GA_Dx, _Dy=v.op_GA_Dy, _x=v.op_GA_x, _y=v.op_GA_y, )) pp.append(v.op_GA_pp) elif el_name == 'GA_M3A': # GA_M3A: drift 55.0m el.append(srwlib.SRWLOptD( _L=v.op_GA_M3A_L, )) pp.append(v.op_GA_M3A_pp) elif el_name == 'M3A': # M3A: aperture 89.63m el.append(srwlib.SRWLOptA( _shape=v.op_M3A_shape, _ap_or_ob='a', _Dx=v.op_M3A_Dx, _Dy=v.op_M3A_Dy, _x=v.op_M3A_x, _y=v.op_M3A_y, )) pp.append(v.op_M3A_pp) elif el_name == 'M3': # M3: ellipsoidMirror 89.63m el.append(srwlib.SRWLOptMirEl( _p=v.op_M3_p, _q=v.op_M3_q, _ang_graz=v.op_M3_ang, _size_tang=v.op_M3_size_tang, _size_sag=v.op_M3_size_sag, _nvx=v.op_M3_nvx, _nvy=v.op_M3_nvy, _nvz=v.op_M3_nvz, _tvx=v.op_M3_tvx, _tvy=v.op_M3_tvy, _x=v.op_M3_x, _y=v.op_M3_y, )) pp.append(v.op_M3_pp) elif el_name == 'M3_SSA': # M3_SSA: drift 89.63m el.append(srwlib.SRWLOptD( _L=v.op_M3_SSA_L, )) pp.append(v.op_M3_SSA_pp) elif el_name == 'SSA': # SSA: aperture 97.636m el.append(srwlib.SRWLOptA( _shape=v.op_SSA_shape, _ap_or_ob='a', _Dx=v.op_SSA_Dx, _Dy=v.op_SSA_Dy, _x=v.op_SSA_x, _y=v.op_SSA_y, )) pp.append(v.op_SSA_pp) elif el_name == 'SSA_KBAperture': # SSA_KBAperture: drift 97.636m el.append(srwlib.SRWLOptD( _L=v.op_SSA_KBAperture_L, )) pp.append(v.op_SSA_KBAperture_pp) elif el_name == 'KBAperture': # KBAperture: aperture 103.646m el.append(srwlib.SRWLOptA( _shape=v.op_KBAperture_shape, _ap_or_ob='a', _Dx=v.op_KBAperture_Dx, _Dy=v.op_KBAperture_Dy, _x=v.op_KBAperture_x, _y=v.op_KBAperture_y, )) pp.append(v.op_KBAperture_pp) elif el_name == 'KBh': # KBh: ellipsoidMirror 103.646m el.append(srwlib.SRWLOptMirEl( _p=v.op_KBh_p, _q=v.op_KBh_q, _ang_graz=v.op_KBh_ang, _size_tang=v.op_KBh_size_tang, _size_sag=v.op_KBh_size_sag, _nvx=v.op_KBh_nvx, _nvy=v.op_KBh_nvy, _nvz=v.op_KBh_nvz, _tvx=v.op_KBh_tvx, _tvy=v.op_KBh_tvy, _x=v.op_KBh_x, _y=v.op_KBh_y, )) pp.append(v.op_KBh_pp) elif el_name == 'KBh_KBv': # KBh_KBv: drift 103.646m el.append(srwlib.SRWLOptD( _L=v.op_KBh_KBv_L, )) pp.append(v.op_KBh_KBv_pp) elif el_name == 'KBv': # KBv: ellipsoidMirror 104.146m el.append(srwlib.SRWLOptMirEl( _p=v.op_KBv_p, _q=v.op_KBv_q, _ang_graz=v.op_KBv_ang, _size_tang=v.op_KBv_size_tang, _size_sag=v.op_KBv_size_sag, _nvx=v.op_KBv_nvx, _nvy=v.op_KBv_nvy, _nvz=v.op_KBv_nvz, _tvx=v.op_KBv_tvx, _tvy=v.op_KBv_tvy, _x=v.op_KBv_x, _y=v.op_KBv_y, )) pp.append(v.op_KBv_pp) elif el_name == 'KBv_Sample': # KBv_Sample: drift 104.146m el.append(srwlib.SRWLOptD( _L=v.op_KBv_Sample_L, )) pp.append(v.op_KBv_Sample_pp) elif el_name == 'Sample': # Sample: watch 104.557m pass pp.append(v.op_fin_pp) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] pp = [] names = [ 'ApM1', 'M1', 'M1_Watchpoint', 'Watchpoint', 'ApKB', 'VFM', 'VFM_HFM', 'HFM', 'HFM_Sample', 'Sample' ] for el_name in names: if el_name == 'ApM1': # ApM1: aperture 270.0m el.append( srwlib.SRWLOptA( _shape=v.op_ApM1_shape, _ap_or_ob='a', _Dx=v.op_ApM1_Dx, _Dy=v.op_ApM1_Dy, _x=v.op_ApM1_x, _y=v.op_ApM1_y, )) pp.append(v.op_ApM1_pp) elif el_name == 'M1': # M1: mirror 270.0m mirror_file = v.op_M1_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by M1 beamline element'.format(mirror_file) el.append( srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_M1_dim, _ang=abs(v.op_M1_ang), _amp_coef=v.op_M1_amp_coef, _size_x=v.op_M1_size_x, _size_y=v.op_M1_size_y, )) pp.append(v.op_M1_pp) elif el_name == 'M1_Watchpoint': # M1_Watchpoint: drift 270.0m el.append(srwlib.SRWLOptD(_L=v.op_M1_Watchpoint_L, )) pp.append(v.op_M1_Watchpoint_pp) elif el_name == 'Watchpoint': # Watchpoint: watch 928.3m pass elif el_name == 'ApKB': # ApKB: aperture 928.3m el.append( srwlib.SRWLOptA( _shape=v.op_ApKB_shape, _ap_or_ob='a', _Dx=v.op_ApKB_Dx, _Dy=v.op_ApKB_Dy, _x=v.op_ApKB_x, _y=v.op_ApKB_y, )) pp.append(v.op_ApKB_pp) elif el_name == 'VFM': # VFM: ellipsoidMirror 928.3m el.append( srwlib.SRWLOptMirEl( _p=v.op_VFM_p, _q=v.op_VFM_q, _ang_graz=v.op_VFM_ang, _size_tang=v.op_VFM_size_tang, _size_sag=v.op_VFM_size_sag, _nvx=v.op_VFM_nvx, _nvy=v.op_VFM_nvy, _nvz=v.op_VFM_nvz, _tvx=v.op_VFM_tvx, _tvy=v.op_VFM_tvy, _x=v.op_VFM_x, _y=v.op_VFM_y, )) pp.append(v.op_VFM_pp) mirror_file = v.op_VFM_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by VFM beamline element'.format(mirror_file) el.append( srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_VFM_dim, _ang=abs(v.op_VFM_ang), _amp_coef=v.op_VFM_amp_coef, )) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) elif el_name == 'VFM_HFM': # VFM_HFM: drift 928.3m el.append(srwlib.SRWLOptD(_L=v.op_VFM_HFM_L, )) pp.append(v.op_VFM_HFM_pp) elif el_name == 'HFM': # HFM: ellipsoidMirror 928.9m el.append( srwlib.SRWLOptMirEl( _p=v.op_HFM_p, _q=v.op_HFM_q, _ang_graz=v.op_HFM_ang, _size_tang=v.op_HFM_size_tang, _size_sag=v.op_HFM_size_sag, _nvx=v.op_HFM_nvx, _nvy=v.op_HFM_nvy, _nvz=v.op_HFM_nvz, _tvx=v.op_HFM_tvx, _tvy=v.op_HFM_tvy, _x=v.op_HFM_x, _y=v.op_HFM_y, )) pp.append(v.op_HFM_pp) mirror_file = v.op_HFM_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by HFM beamline element'.format(mirror_file) el.append( srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_HFM_dim, _ang=abs(v.op_HFM_ang), _amp_coef=v.op_HFM_amp_coef, )) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) elif el_name == 'HFM_Sample': # HFM_Sample: drift 928.9m el.append(srwlib.SRWLOptD(_L=v.op_HFM_Sample_L, )) pp.append(v.op_HFM_Sample_pp) elif el_name == 'Sample': # Sample: watch 930.0m pass pp.append(v.op_fin_pp) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] # MOAT 1: crystal 31.94m opCr = srwlib.SRWLOptCryst(_d_sp=3.13557135638, _psi0r=-2.33400050166e-06, _psi0i=8.59790386417e-09, _psi_hr=-1.22944507993e-06, _psi_hi=6.00282990962e-09, _psi_hbr=-1.22944507993e-06, _psi_hbi=6.00282990962e-09, _tc=0.01, _ang_as=0.0) # Set crystal orientation: opCr.set_orient(-0.0966554453406, 0.990567587399, -0.0971266167475, -0.00943241252825, 0.0966675192333) el.append(opCr) ifnCryst1 = "Si_heat204.dat" if ifnCryst1: assert os.path.isfile( ifnCryst1 ), "Missing input file Si_heat204.dat, required by MOAT 1 beamline element" hProfDataCryst1 = srwlib.srwl_uti_read_data_cols(ifnCryst1, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataCryst1, _dim="y", _ang=0.0972679033965, _amp_coef=1.0)) el.append(srwlib.SRWLOptD(0.05)) # MOAT 2: crystal 31.99m opCr = srwlib.SRWLOptCryst(_d_sp=3.13557135638, _psi0r=-2.33400050166e-06, _psi0i=8.59790386417e-09, _psi_hr=-1.22944507993e-06, _psi_hi=6.00282990962e-09, _psi_hbr=-1.22944507993e-06, _psi_hbi=6.00282990962e-09, _tc=0.01, _ang_as=0.0) # Set crystal orientation: opCr.set_orient(0.0966554453406, 0.990567587399, -0.0971266167475, 0.00943241252825, 0.0966675192333) el.append(opCr) el.append(srwlib.SRWLOptD(2.89244)) # HFM: sphericalMirror 34.88244m el.append( srwlib.SRWLOptMirSph(_r=7100.0, _size_tang=0.5, _size_sag=0.04, _nvx=0.999995065202, _nvy=0.0, _nvz=-0.00314158748629, _tvx=0.00314158748629, _tvy=0.0, _x=0.0, _y=0.0)) ifnSphMirror2 = "HFM_Rh7.6km.dat" if ifnSphMirror2: assert os.path.isfile( ifnSphMirror2 ), "Missing input file HFM_Rh7.6km.dat, required by HFM beamline element" hProfDataSphMirror2 = srwlib.srwl_uti_read_data_cols( ifnSphMirror2, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataSphMirror2, _dim="x", _ang=0.003141592654, _amp_coef=1.0)) el.append(srwlib.SRWLOptD(3.42)) # VFM: sphericalMirror 38.30244m el.append( srwlib.SRWLOptMirSph(_r=6100.0, _size_tang=0.4, _size_sag=0.04, _nvx=0.0, _nvy=0.999995065202, _nvz=-0.00314158748629, _tvx=0.0, _tvy=0.00314158748629, _x=0.0, _y=0.0)) ifnSphMirror3 = "VFM_Rh5.4km.dat" if ifnSphMirror3: assert os.path.isfile( ifnSphMirror3 ), "Missing input file VFM_Rh5.4km.dat, required by VFM beamline element" hProfDataSphMirror3 = srwlib.srwl_uti_read_data_cols( ifnSphMirror3, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataSphMirror3, _dim="y", _ang=0.003141592654, _amp_coef=1.0)) el.append(srwlib.SRWLOptD(0.69756)) # VDM: sphericalMirror 39.0m el.append( srwlib.SRWLOptMirSph(_r=300000.0, _size_tang=0.4, _size_sag=0.04, _nvx=0.0, _nvy=0.999995065202, _nvz=-0.00314158743229, _tvx=0.0, _tvy=0.00314158743229, _x=0.0, _y=0.0)) ifnSphMirror4 = "VDM.dat" if ifnSphMirror4: assert os.path.isfile( ifnSphMirror4 ), "Missing input file VDM.dat, required by VDM beamline element" hProfDataSphMirror4 = srwlib.srwl_uti_read_data_cols( ifnSphMirror4, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataSphMirror4, _dim="y", _ang=0.0031415926, _amp_coef=1.0)) el.append(srwlib.SRWLOptD(8.00244)) # SSA: aperture 47.00244m el.append(srwlib.SRWLOptA("r", "a", 0.0004, 0.0004, 0.0, 0.0)) el.append(srwlib.SRWLOptD(3.89756)) # ES1: watch 50.9m el.append(srwlib.SRWLOptD(6.435)) # CRL: crl 57.335m el.append( srwlib.srwl_opt_setup_CRL(3, 8.211821e-07, 0.028541, 1, 0.001, 0.001, 5e-05, 23, 3.24e-05, 0.0, 0.0)) el.append(srwlib.SRWLOptD(1.665)) # ES2: watch 59.0m pp = [] # MOAT 1 pp.append([ 0, 0, 1.0, 0, 0, 3.0, 1.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) if ifnCryst1: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # MOAT 2 pp.append([ 0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # HFM pp.append([ 0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) if ifnSphMirror2: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # VFM pp.append([ 0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) if ifnSphMirror3: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # VDM pp.append([ 0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) if ifnSphMirror4: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # SSA pp.append([ 0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) pp.append([ 0, 0, 1.0, 1, 0, 0.5, 5.0, 0.5, 5.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # ES1 pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # CRL pp.append([ 0, 0, 1.0, 2, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # ES2 # final post-propagation pp.append([ 0, 0, 1.0, 0, 0, 0.4, 3.0, 0.4, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] pp = [] names = ['S0', 'S0_HDM', 'HDM', 'HDM_S1', 'S1', 'S1_S2', 'S2', 'S2_CRL1', 'CRL1', 'CRL2', 'CRL2_KLA', 'KLA', 'KL', 'KL_S3', 'S3', 'S3_Sample', 'Sample'] for el_name in names: if el_name == 'S0': # S0: aperture 20.5m el.append(srwlib.SRWLOptA( _shape=v.op_S0_shape, _ap_or_ob='a', _Dx=v.op_S0_Dx, _Dy=v.op_S0_Dy, _x=v.op_S0_x, _y=v.op_S0_y, )) pp.append(v.op_S0_pp) elif el_name == 'S0_HDM': # S0_HDM: drift 20.5m el.append(srwlib.SRWLOptD( _L=v.op_S0_HDM_L, )) pp.append(v.op_S0_HDM_pp) elif el_name == 'HDM': # HDM: mirror 27.4m mirror_file = v.op_HDM_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by HDM beamline element'.format(mirror_file) el.append(srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_HDM_dim, _ang=v.op_HDM_ang, _amp_coef=v.op_HDM_amp_coef, _size_x=v.op_HDM_size_x, _size_y=v.op_HDM_size_y, )) pp.append(v.op_HDM_pp) elif el_name == 'HDM_S1': # HDM_S1: drift 27.4m el.append(srwlib.SRWLOptD( _L=v.op_HDM_S1_L, )) pp.append(v.op_HDM_S1_pp) elif el_name == 'S1': # S1: aperture 29.9m el.append(srwlib.SRWLOptA( _shape=v.op_S1_shape, _ap_or_ob='a', _Dx=v.op_S1_Dx, _Dy=v.op_S1_Dy, _x=v.op_S1_x, _y=v.op_S1_y, )) pp.append(v.op_S1_pp) elif el_name == 'S1_S2': # S1_S2: drift 29.9m el.append(srwlib.SRWLOptD( _L=v.op_S1_S2_L, )) pp.append(v.op_S1_S2_pp) elif el_name == 'S2': # S2: aperture 34.3m el.append(srwlib.SRWLOptA( _shape=v.op_S2_shape, _ap_or_ob='a', _Dx=v.op_S2_Dx, _Dy=v.op_S2_Dy, _x=v.op_S2_x, _y=v.op_S2_y, )) pp.append(v.op_S2_pp) elif el_name == 'S2_CRL1': # S2_CRL1: drift 34.3m el.append(srwlib.SRWLOptD( _L=v.op_S2_CRL1_L, )) pp.append(v.op_S2_CRL1_pp) elif el_name == 'CRL1': # CRL1: crl 35.4m el.append(srwlib.srwl_opt_setup_CRL( _foc_plane=v.op_CRL1_foc_plane, _delta=v.op_CRL1_delta, _atten_len=v.op_CRL1_atten_len, _shape=v.op_CRL1_shape, _apert_h=v.op_CRL1_apert_h, _apert_v=v.op_CRL1_apert_v, _r_min=v.op_CRL1_r_min, _n=v.op_CRL1_n, _wall_thick=v.op_CRL1_wall_thick, _xc=v.op_CRL1_x, _yc=v.op_CRL1_y, )) pp.append(v.op_CRL1_pp) elif el_name == 'CRL2': # CRL2: crl 35.4m el.append(srwlib.srwl_opt_setup_CRL( _foc_plane=v.op_CRL2_foc_plane, _delta=v.op_CRL2_delta, _atten_len=v.op_CRL2_atten_len, _shape=v.op_CRL2_shape, _apert_h=v.op_CRL2_apert_h, _apert_v=v.op_CRL2_apert_v, _r_min=v.op_CRL2_r_min, _n=v.op_CRL2_n, _wall_thick=v.op_CRL2_wall_thick, _xc=v.op_CRL2_x, _yc=v.op_CRL2_y, )) pp.append(v.op_CRL2_pp) elif el_name == 'CRL2_KLA': # CRL2_KLA: drift 35.4m el.append(srwlib.SRWLOptD( _L=v.op_CRL2_KLA_L, )) pp.append(v.op_CRL2_KLA_pp) elif el_name == 'KLA': # KLA: aperture 44.5m el.append(srwlib.SRWLOptA( _shape=v.op_KLA_shape, _ap_or_ob='a', _Dx=v.op_KLA_Dx, _Dy=v.op_KLA_Dy, _x=v.op_KLA_x, _y=v.op_KLA_y, )) pp.append(v.op_KLA_pp) elif el_name == 'KL': # KL: lens 44.5m el.append(srwlib.SRWLOptL( _Fx=v.op_KL_Fx, _Fy=v.op_KL_Fy, _x=v.op_KL_x, _y=v.op_KL_y, )) pp.append(v.op_KL_pp) elif el_name == 'KL_S3': # KL_S3: drift 44.5m el.append(srwlib.SRWLOptD( _L=v.op_KL_S3_L, )) pp.append(v.op_KL_S3_pp) elif el_name == 'S3': # S3: aperture 48.0m el.append(srwlib.SRWLOptA( _shape=v.op_S3_shape, _ap_or_ob='a', _Dx=v.op_S3_Dx, _Dy=v.op_S3_Dy, _x=v.op_S3_x, _y=v.op_S3_y, )) pp.append(v.op_S3_pp) elif el_name == 'S3_Sample': # S3_Sample: drift 48.0m el.append(srwlib.SRWLOptD( _L=v.op_S3_Sample_L, )) pp.append(v.op_S3_Sample_pp) elif el_name == 'Sample': # Sample: watch 48.7m pass pp.append(v.op_fin_pp) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] # M1: mirror 34.366m ifnMirror1 = "mirror_1d.dat" if ifnMirror1: assert os.path.isfile(ifnMirror1), "Missing input file mirror_1d.dat, required by M1 beamline element" hProfDataMirror1 = srwlib.srwl_uti_read_data_cols(ifnMirror1, "\t", 0, 1) el.append(srwlib.srwl_opt_setup_surf_height_1d(hProfDataMirror1, _dim="x", _ang=0.0436332, _amp_coef=1.0, _size_x=0.001, _size_y=0.001)) el.append(srwlib.SRWLOptD(20.634)) # Grating: grating 55.0m el.append(srwlib.SRWLOptG(_mirSub=srwlib.SRWLOptMirPl(_size_tang=0.2, _size_sag=0.015, _nvx=0.0, _nvy=0.99991607766, _nvz=-0.0129552165771, _tvx=0.0, _tvy=0.0129552165771, _x=0.0, _y=0.0), _m=1.0, _grDen=1800.0, _grDen1=0.08997, _grDen2=3.004e-06, _grDen3=9.73e-11, _grDen4=0.0)) # GA: aperture 55.0m el.append(srwlib.SRWLOptA("r", "a", 0.015, 0.00259104331543, 0.0, 0.0)) el.append(srwlib.SRWLOptD(34.63)) # M3A: aperture 89.63m el.append(srwlib.SRWLOptA("r", "a", 0.01832012956, 0.02, 0.0, 0.0)) # M3: ellipsoidMirror 89.63m el.append(srwlib.SRWLOptMirEl(_p=89.63, _q=8.006, _ang_graz=0.0436332, _size_tang=0.42, _size_sag=0.02, _nvx=0.999048222947, _nvy=0.0, _nvz=-0.0436193560953, _tvx=-0.0436193560953, _tvy=0.0, _x=0.0, _y=0.0)) el.append(srwlib.SRWLOptD(8.006)) # SSA: aperture 97.636m el.append(srwlib.SRWLOptA("r", "a", 0.0015, 0.0015, 0.0, 0.0)) el.append(srwlib.SRWLOptD(6.01)) # KBAperture: aperture 103.646m el.append(srwlib.SRWLOptA("r", "a", 0.0130858068286, 0.003, 0.0, 0.0)) # KBh: ellipsoidMirror 103.646m el.append(srwlib.SRWLOptMirEl(_p=6.01, _q=0.911, _ang_graz=0.0872665, _size_tang=0.3, _size_sag=0.05, _nvx=0.996194694832, _nvy=0.0, _nvz=-0.0871557800056, _tvx=-0.0871557800056, _tvy=0.0, _x=0.0, _y=0.0)) el.append(srwlib.SRWLOptD(0.5)) # KBv: ellipsoidMirror 104.146m el.append(srwlib.SRWLOptMirEl(_p=6.51, _q=0.411, _ang_graz=0.0872665, _size_tang=0.3, _size_sag=0.05, _nvx=0.0, _nvy=0.996194694832, _nvz=-0.0871557800056, _tvx=0.0, _tvy=-0.0871557800056, _x=0.0, _y=0.0)) el.append(srwlib.SRWLOptD(0.411)) # Sample: watch 104.557m pp = [] # M1 if ifnMirror1: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.2, 3.5, 1.2, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # Grating pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # GA pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # M3A pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # M3 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 3.0, 1.0, 3.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # SSA pp.append([0, 0, 1.0, 0, 0, 0.4, 1.0, 0.4, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # KBAperture pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # KBh pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 2.0, 1.0, 2.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # KBv pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # Sample # final post-propagation pp.append([0, 0, 1.0, 0, 1, 0.07, 1.5, 0.07, 6.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] # S0: aperture 31.5m el.append(srwlib.SRWLOptA("r", "a", 0.001, 0.00042, 0.0, 0.0)) el.append(srwlib.SRWLOptD(1.5)) # VCM: sphericalMirror 33.0m el.append( srwlib.SRWLOptMirSph(_r=19000.0, _size_tang=0.5, _size_sag=0.01, _nvx=0.0, _nvy=0.99999846875, _nvz=-0.00174999910677, _tvx=0.0, _tvy=0.00174999910677, _x=0.0, _y=0.0)) ifnSphMirror1 = "LCLS_SOMS_height_prof_1d_3x_ns.dat" if ifnSphMirror1: assert os.path.isfile( ifnSphMirror1 ), "Missing input file LCLS_SOMS_height_prof_1d_3x_ns.dat, required by VCM beamline element" hProfDataSphMirror1 = srwlib.srwl_uti_read_data_cols( ifnSphMirror1, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataSphMirror1, _dim="y", _ang=0.00175, _amp_coef=0.9999)) el.append(srwlib.SRWLOptD(21.0)) # S0H: aperture 54.0m el.append(srwlib.SRWLOptA("r", "a", 6e-05, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(1.0)) # Watchpoint: watch 55.0m # HCM: sphericalMirror 55.0m el.append( srwlib.SRWLOptMirSph(_r=14000.0, _size_tang=0.5, _size_sag=0.01, _nvx=0.99999846875, _nvy=0.0, _nvz=-0.00174999910677, _tvx=0.00174999910677, _tvy=0.0, _x=0.0, _y=0.0)) ifnSphMirror2 = "LCLS_SOMS_height_prof_1d_3x_ns.dat" if ifnSphMirror2: assert os.path.isfile( ifnSphMirror2 ), "Missing input file LCLS_SOMS_height_prof_1d_3x_ns.dat, required by HCM beamline element" hProfDataSphMirror2 = srwlib.srwl_uti_read_data_cols( ifnSphMirror2, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataSphMirror2, _dim="x", _ang=0.00175, _amp_coef=1.0)) el.append(srwlib.SRWLOptD(40.0)) # Ap. KB: aperture 95.0m el.append(srwlib.SRWLOptA("r", "a", 0.001, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(2.4)) # VKB: ellipsoidMirror 97.4m el.append( srwlib.SRWLOptMirEl(_p=32.0, _q=2.6, _ang_graz=0.003, _size_tang=0.4, _size_sag=0.01, _nvx=0.0, _nvy=0.999995500003, _nvz=-0.0029999955, _tvx=0.0, _tvy=0.0029999955, _x=0.0, _y=0.0)) ifnElMirror3 = "LCLS_SOMS_height_prof_1d_3x_ns.dat" if ifnElMirror3: assert os.path.isfile( ifnElMirror3 ), "Missing input file LCLS_SOMS_height_prof_1d_3x_ns.dat, required by VKB beamline element" hProfDataElMirror3 = srwlib.srwl_uti_read_data_cols( ifnElMirror3, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataElMirror3, _dim="y", _ang=0.003, _amp_coef=1.0)) el.append(srwlib.SRWLOptD(0.6)) # Watchpoint: watch 98.0m # HKB: ellipsoidMirror 98.0m el.append( srwlib.SRWLOptMirEl(_p=38.0, _q=2.0, _ang_graz=0.003, _size_tang=0.3, _size_sag=0.01, _nvx=0.999995500003, _nvy=0.0, _nvz=-0.0029999955, _tvx=-0.0029999955, _tvy=0.0, _x=0.0, _y=0.0)) ifnElMirror4 = "LCLS_SOMS_height_prof_1d_3x_ns.dat" if ifnElMirror4: assert os.path.isfile( ifnElMirror4 ), "Missing input file LCLS_SOMS_height_prof_1d_3x_ns.dat, required by HKB beamline element" hProfDataElMirror4 = srwlib.srwl_uti_read_data_cols( ifnElMirror4, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataElMirror4, _dim="x", _ang=0.003, _amp_coef=1.0)) el.append(srwlib.SRWLOptD(2.0)) # Sample: watch 100.0m pp = [] # S0 pp.append([ 0, 0, 1.0, 0, 0, 4.0, 30.0, 1.3, 8.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # VCM pp.append([ 0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) if ifnSphMirror1: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # S0H pp.append([ 0, 0, 1.0, 0, 0, 0.5, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # Watchpoint # HCM pp.append([ 0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) if ifnSphMirror2: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # Ap. KB pp.append([ 0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # VKB pp.append([ 0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) if ifnElMirror3: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # Watchpoint # HKB pp.append([ 0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) if ifnElMirror4: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([ 0, 0, 1.0, 1, 0, 0.2, 6.0, 1.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # Sample # final post-propagation pp.append([ 0, 0, 1.0, 0, 0, 0.1, 1.0, 0.15, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] # S0: aperture 20.5m el.append(srwlib.SRWLOptA("r", "a", 0.0002, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(6.9)) # HDM: mirror 27.4m ifnMirror1 = "mirror_1d.dat" if ifnMirror1: assert os.path.isfile(ifnMirror1), "Missing input file mirror_1d.dat, required by HDM beamline element" hProfDataMirror1 = srwlib.srwl_uti_read_data_cols(ifnMirror1, "\t", 0, 1) el.append(srwlib.srwl_opt_setup_surf_height_1d(hProfDataMirror1, _dim="x", _ang=0.0031415926, _amp_coef=1.0, _size_x=0.00094, _size_y=0.001)) el.append(srwlib.SRWLOptD(2.5)) # S1: aperture 29.9m el.append(srwlib.SRWLOptA("r", "a", 0.0002, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(4.4)) # S2: aperture 34.3m el.append(srwlib.SRWLOptA("r", "a", 5e-05, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(1.1)) # CRL1: crl 35.4m el.append(srwlib.srwl_opt_setup_CRL(2, 4.207568e-06, 0.007313, 1, 0.001, 0.0024, 0.0015, 1, 8e-05, 0.0, 0.0)) # CRL2: crl 35.4m el.append(srwlib.srwl_opt_setup_CRL(2, 4.207568e-06, 0.007313, 1, 0.001, 0.0014, 0.0005, 6, 8e-05, 0.0, 0.0)) el.append(srwlib.SRWLOptD(9.1)) # KLA: aperture 44.5m el.append(srwlib.SRWLOptA("r", "a", 0.0014, 0.0002, 0.0, 0.0)) # KL: lens 44.5m el.append(srwlib.SRWLOptL(3.24479, 1e+23, 0.0, 0.0)) el.append(srwlib.SRWLOptD(3.5)) # S3: aperture 48.0m el.append(srwlib.SRWLOptA("r", "a", 1e-05, 1e-05, 0.0, 0.0)) el.append(srwlib.SRWLOptD(0.7)) # Sample: watch 48.7m pp = [] # S0 pp.append([0, 0, 1.0, 0, 0, 2.5, 5.0, 1.5, 2.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # HDM if ifnMirror1: pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # S1 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # S2 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # CRL1 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # CRL2 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # KLA pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # KL pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # S3 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # Sample # final post-propagation pp.append([0, 0, 1.0, 0, 0, 0.3, 2.0, 0.5, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] # ApM1: aperture 270.0m el.append(srwlib.SRWLOptA("r", "a", 0.01, 0.0009, 0.0, 0.0)) # M1: mirror 270.0m ifnMirror1 = "mirror2_1d.dat" if ifnMirror1: assert os.path.isfile( ifnMirror1 ), "Missing input file mirror2_1d.dat, required by M1 beamline element" hProfDataMirror1 = srwlib.srwl_uti_read_data_cols( ifnMirror1, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataMirror1, _dim="y", _ang=0.0018, _amp_coef=1.0, _size_x=0.0, _size_y=0.0)) el.append(srwlib.SRWLOptD(658.3)) # Watchpoint: watch 928.3m # ApKB: aperture 928.3m el.append(srwlib.SRWLOptA("r", "a", 0.0018, 0.0018, 0.0, 0.0)) # VFM: ellipsoidMirror 928.3m el.append( srwlib.SRWLOptMirEl(_p=928.3, _q=1.7, _ang_graz=0.0036, _size_tang=0.5, _size_sag=0.01, _nvx=0.0, _nvy=0.999993520007, _nvz=-0.00359999222401, _tvx=0.0, _tvy=-0.00359999222401, _x=0.0, _y=0.0)) ifnElMirror2 = "mirror2_1d.dat" if ifnElMirror2: assert os.path.isfile( ifnElMirror2 ), "Missing input file mirror2_1d.dat, required by VFM beamline element" hProfDataElMirror2 = srwlib.srwl_uti_read_data_cols( ifnElMirror2, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataElMirror2, _dim="y", _ang=0.0036, _amp_coef=1.0)) el.append(srwlib.SRWLOptD(0.6)) # HFM: ellipsoidMirror 928.9m el.append( srwlib.SRWLOptMirEl(_p=928.9, _q=1.1, _ang_graz=0.0036, _size_tang=0.5, _size_sag=0.01, _nvx=0.999993520007, _nvy=0.0, _nvz=-0.00359999222401, _tvx=-0.00359999222401, _tvy=0.0, _x=0.0, _y=0.0)) ifnElMirror3 = "mirror2_1d.dat" if ifnElMirror3: assert os.path.isfile( ifnElMirror3 ), "Missing input file mirror2_1d.dat, required by HFM beamline element" hProfDataElMirror3 = srwlib.srwl_uti_read_data_cols( ifnElMirror3, "\t", 0, 1) el.append( srwlib.srwl_opt_setup_surf_height_1d(hProfDataElMirror3, _dim="x", _ang=0.0036, _amp_coef=1.0)) el.append(srwlib.SRWLOptD(1.1)) # Sample: watch 930.0m pp = [] # ApM1 pp.append([ 0, 0, 1.0, 1, 0, 2.0, 5.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # M1 if ifnMirror1: pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # Watchpoint # ApKB pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # VFM pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) if ifnElMirror2: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # HFM pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) if ifnElMirror3: pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([ 0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) # Sample # final post-propagation pp.append([ 0, 0, 1.0, 1, 0, 0.06, 3.0, 0.1, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]) return srwlib.SRWLOptC(el, pp)